/*
 * Top-level keys are tablenames
 * Top-level value is one of:
 *    a string list to just add read-only global values
 *    a map with single key 'readable'.  Equivalent to previous.
 *    a map with single key 'writable'.  Map map value is a string list of writable globals
 *    a map with single key 'iifeParams'.
 *        Map map value is a string list of required IIFE parameers 
 */
{
  "sa_pattern_prepost_script": ["patternId", "payload"],
  "sys_web_service": { "iifeParams": ["request", "response"] },
  "sys_ws_operation": { "iifeParams": ["request", "response"] },
  "sys_script": { "iifeParams": ["current", "previous"], "readable": ["g_scratchpad", "action"] },
  "sys_processor": { "iifeParams": ["g_request", "g_response", "g_processor"] },
  "sysevent_script_action": ["event"],
  "sc_cat_item_producer": ["producer"],
  "sys_script_email": { "iifeParams":  ["current", "template", "email", "email_action", "event"] },

  // Prod. doc page 'Transformation script variables' does not specify which variables should be
  // accessibly by which of the 3 transform script types.  Therefore I'm allowing in all of them.
  "sys_transform_map": {
    "iifeParams": ["source", "target", "map", "log"],
    "readable": [""],
    "writable": ["ignore", "error", "error_message", "status_message"]
  },
  "sys_transform_script": {
    "iifeParams": ["source", "map", "log", "target"],
    "readable": [""],
    "writable": ["ignore", "error", "error_message", "status_message"]
  },
  "sys_transform_entry": {
    "writable": ["answer", "ignore", "error", "error_message", "status_message"],
    "readable": ["source", "target", "map", "log", "action"]
  },
  "sys_security_acl": { "writable": ["answer"], "readable": ["previous"] },
  "sys_script_client": ["nowapi"],
  "catalog_script_client": ["nowapi"],
  "sp_widget.client_script": ["api", "$injector"],
  "sp_widget.link": ["api", "$injector"],
  "sp_widget.script": { "iifeParams": [], "readable": ["options", "input", "data", "$sp"] },
  /*"sys_ui_action": [ "action" ]  sys_ui_action hard-coded in 'exports.js' because the globals
   * are dependent upon altscope not just table name */
  "sys_script_validator": ["g_validation_script_field_count"],
  "sys_ui_context_menu": ["g_list", "g_fieldName", "g_sysId"],
  "sysevent_in_email_action": {
    "iifeParams": ["current", "event", "email", "logger", "classifier"]
  },
  "sys_atf_step_config.description_generator": ["step"],
  "sys_atf_step_config.step_execution_generator": {
    "iifeParams": ["inputs", "outputs", "stepResult", "timeout"]
  },
  "sys_variable_value": {
    "iifeParams": ["outputs", "steps", "params", "stepResult", "assertEqual"],
    "readable": [
      "jasmine", "describe", "xdescribe", "fdescribe", "it", "xit", "fit", "beforeEach",
      "beforeAll", "afterEach", "afterAll", "expect", "fail", "pending", "spyOn"
    ]
  }
}
