[
  {
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "lib/binding.js",
    "memberof": null,
    "longname": "lib/binding.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import {ResolvedBinding} from './resolvedBinding'\n\n/**\n* @class Binding\n*/\nexport class Binding{\n\n  /**\n  * This is a Binding\n  * @constructor\n  * @param {String} token - This is the token of the Binding\n  * @param {Object} object - This if the object concerned, can be toClass, toValue, toFactory\n  */\n  constructor(token, object){\n    this.token = token;\n    this.object = object;\n  }\n\n  /**\n  * Create a ResolvedBinding from the current Binding\n  * @returns {ResolvedBinding} The resolvedBinding generated\n  */\n  resolve(){\n    let factory = null;\n    let deps = null;\n    if(this.object){\n      deps = this.object.deps;\n      if(this.object.toClass){\n        factory = (a,b,c,d,e,f,g,h,i,j)=>{\n          return new this.object.toClass(a,b,c,d,e,f,g,h,i,j);\n        }\n      }else{\n        if(this.object.toFactory){\n          factory = this.object.toFactory\n        }else{\n          if(this.object.toValue){\n            factory = () =>{\n              return this.object.toValue\n            }\n          }\n        }\n      }\n    }else{\n      factory = ()=>{\n        return null;\n      }\n    }\n\n    return new ResolvedBinding(this.token, factory, deps);\n  }\n}\n"
  },
  {
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Binding",
    "memberof": "lib/binding.js",
    "longname": "lib/binding.js~Binding",
    "access": null,
    "export": true,
    "importPath": "injector/lib/binding.js",
    "importStyle": "{Binding}",
    "description": null,
    "lineNumber": 6,
    "unknown": [
      {
        "tagName": "@class",
        "tagValue": "Binding"
      }
    ],
    "interface": false
  },
  {
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "lib/binding.js~Binding",
    "longname": "lib/binding.js~Binding#constructor",
    "access": null,
    "description": "This is a Binding",
    "lineNumber": 14,
    "unknown": [
      {
        "tagName": "@constructor",
        "tagValue": ""
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "token",
        "description": "This is the token of the Binding"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "object",
        "description": "This if the object concerned, can be toClass, toValue, toFactory"
      }
    ],
    "generator": false
  },
  {
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "token",
    "memberof": "lib/binding.js~Binding",
    "longname": "lib/binding.js~Binding#token",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "object",
    "memberof": "lib/binding.js~Binding",
    "longname": "lib/binding.js~Binding#object",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "resolve",
    "memberof": "lib/binding.js~Binding",
    "longname": "lib/binding.js~Binding#resolve",
    "access": null,
    "description": "Create a ResolvedBinding from the current Binding",
    "lineNumber": 23,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{ResolvedBinding} The resolvedBinding generated"
      }
    ],
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "ResolvedBinding"
      ],
      "spread": false,
      "description": "The resolvedBinding generated"
    },
    "generator": false
  },
  {
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "lib/injector.js",
    "memberof": null,
    "longname": "lib/injector.js",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "content": "/**\n* @class Injector\n*/\nexport class Injector{\n\n  /**\n  * This is an Injector\n  * @constructor\n  * @param {ResolvedBinding} resolvedBindings - The resolved binding of the injector\n  * @param {Injector} parent - The parent injector\n  */\n  constructor(resolvedBindings, parent){\n    this.resolvedBindings = resolvedBindings;\n    this.parent = parent;\n  }\n\n  /**\n  * This is an injector Factory\n  * @param {Binding} bindings - List of the bindings to resolve\n  * @Optionnal {Injector} injector - Optionnal parent injector\n  * @returns {Injector} The new injector created\n  */\n  static resolveAndCreate(bindings, injector){\n    return new Injector(Injector.resolve(bindings), injector);\n  }\n\n  /**\n  * Start the binding resolution\n  * @param {Binding} bindings - An array of bindings to resolve\n  * @returns {ResolvedBinding} The array of resolvedBinding obtained\n  */\n  static resolve(bindings){\n    let resolvedBindings = [];\n    for(var b of bindings){\n      resolvedBindings.push(b.resolve());\n    }\n    return resolvedBindings;\n  }\n\n  /**\n  * Return the factory execution value if the key matches\n  * @param {String} token - The key of the resolvedBinding factory to get\n  * @returns {Object} The value corresponding to the factory execution\n  */\n  get(token){\n    for(var rb of this.resolvedBindings){\n      if(rb.key === token){\n        return this.resolveDependencies(rb);\n      }\n    }\n    return token;\n  }\n\n  /**\n  * Resolve the dependencies of the resolvedBinding\n  * @param {ResolvedBinding} resolvedBinding - The resolved binding concerned\n  * @returns {Object} The factory execution loaded\n  */\n  resolveDependencies(resolvedBinding){\n    let dependencyArray = this.parseDependencies(resolvedBinding.dependencies);\n    let newInstance = this.resolveConstructor(resolvedBinding, dependencyArray.inConstructor);\n    newInstance = this.resolveProperty(newInstance, dependencyArray.inProperty);\n    newInstance = this.resolveSetters(newInstance, dependencyArray.inSetter);\n    return newInstance;\n  }\n\n  /**\n  * Split dependencies in an array of object\n  * @param {Object} dependencies - An array of dependencies\n  * @returns {Object} An array of dependencies splitted into 3 category\n  * inConstructor, inProperty, inSetter\n  */\n  parseDependencies(dependencies){\n    let dependencyArray = {inConstructor:[], inProperty:[], inSetter:[]}\n    for(var d of dependencies){\n      if(d.inSetter){\n        dependencyArray.inSetter.push(d);\n      }else{\n        if(d.inProperty){\n          dependencyArray.inProperty.push(d);\n        }else{\n          dependencyArray.inConstructor.push(d);\n        }\n      }\n    }\n    return dependencyArray;\n  }\n\n  /**\n  * Resolve the constructor injector\n  * @param {ResolvedBinding} resolvedBinding - The resolved binding to loaded\n  * @param {Object} dependencies - The dependencies to inject\n  * @returns {Object} Return the object instance with constructor dependencies\n  */\n  resolveConstructor(resolvedBinding, dependencies){\n    let newInstance = null;\n    switch(dependencies.length){\n      case 0:\n        newInstance = resolvedBinding.factory();\n      break;\n\n      case 1:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]));\n      break;\n\n      case 2:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]));\n      break;\n\n      case 3:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]));\n      break;\n\n      case 4:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]),\n        this.get(dependencies[3]));\n      break;\n\n      case 5:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]),\n        this.get(dependencies[3]), this.get(dependencies[4]));\n      break;\n\n      case 6:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]),\n        this.get(dependencies[3]), this.get(dependencies[4]), this.get(dependencies[5]));\n      break;\n\n      case 7:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]),\n        this.get(dependencies[3]), this.get(dependencies[4]), this.get(dependencies[5]), this.get(dependencies[6]));\n      break;\n\n      case 8:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]),\n        this.get(dependencies[3]), this.get(dependencies[4]), this.get(dependencies[5]), this.get(dependencies[6]),\n        this.get(dependencies[7]));\n      break;\n\n      case 9:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]),\n        this.get(dependencies[3]), this.get(dependencies[4]), this.get(dependencies[5]), this.get(dependencies[6]),\n        this.get(dependencies[7]), this.get(dependencies[8]));\n      break;\n\n      case 10:\n        newInstance = resolvedBinding.factory(this.get(dependencies[0]), this.get(dependencies[1]), this.get(dependencies[2]),\n        this.get(dependencies[3]), this.get(dependencies[4]), this.get(dependencies[5]), this.get(dependencies[6]),\n        this.get(dependencies[7]), this.get(dependencies[8]), this.get(dependencies[9]));\n      break;\n    }\n    return newInstance;\n  }\n\n  /**\n  * Resolve properties injection\n  * @param {Object} newInstance - The object instance where to inject properties\n  * @params {Object} dependencies - The property dependencies to inject\n  * @returns {Object} The object with property injected\n  */\n  resolveProperty(newInstance, dependencies){\n    for(var d of dependencies){\n      newInstance[d.ref[0].toLowerCase() + d.ref.substring(1)] = this.get(d.ref);\n    }\n    return newInstance;\n  }\n\n  /**\n  * Resolve setters injection\n  * @param {Object} newInstance - The object where to make setter injection\n  * @params {Object} dependencies - The setter dependencies to inject\n  * @returns {Object} The object with setters injected\n  */\n  resolveSetters(newInstance, dependencies){\n    for(var d of dependencies){\n      newInstance['set'+d.ref] = this.get(d.ref);\n    }\n    return newInstance;\n  }\n}\n"
  },
  {
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Injector",
    "memberof": "lib/injector.js",
    "longname": "lib/injector.js~Injector",
    "access": null,
    "export": true,
    "importPath": "injector/lib/injector.js",
    "importStyle": "{Injector}",
    "description": null,
    "lineNumber": 4,
    "unknown": [
      {
        "tagName": "@class",
        "tagValue": "Injector"
      }
    ],
    "interface": false
  },
  {
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#constructor",
    "access": null,
    "description": "This is an Injector",
    "lineNumber": 12,
    "unknown": [
      {
        "tagName": "@constructor",
        "tagValue": ""
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "ResolvedBinding"
        ],
        "spread": false,
        "optional": false,
        "name": "resolvedBindings",
        "description": "The resolved binding of the injector"
      },
      {
        "nullable": null,
        "types": [
          "Injector"
        ],
        "spread": false,
        "optional": false,
        "name": "parent",
        "description": "The parent injector"
      }
    ],
    "generator": false
  },
  {
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "resolvedBindings",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#resolvedBindings",
    "access": null,
    "description": null,
    "lineNumber": 13,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "parent",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#parent",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "kind": "method",
    "static": true,
    "variation": null,
    "name": "resolveAndCreate",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector.resolveAndCreate",
    "access": null,
    "description": "This is an injector Factory",
    "lineNumber": 23,
    "unknown": [
      {
        "tagName": "@Optionnal",
        "tagValue": "{Injector} injector - Optionnal parent injector"
      },
      {
        "tagName": "@returns",
        "tagValue": "{Injector} The new injector created"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "Binding"
        ],
        "spread": false,
        "optional": false,
        "name": "bindings",
        "description": "List of the bindings to resolve"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Injector"
      ],
      "spread": false,
      "description": "The new injector created"
    },
    "generator": false
  },
  {
    "kind": "method",
    "static": true,
    "variation": null,
    "name": "resolve",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector.resolve",
    "access": null,
    "description": "Start the binding resolution",
    "lineNumber": 32,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{ResolvedBinding} The array of resolvedBinding obtained"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "Binding"
        ],
        "spread": false,
        "optional": false,
        "name": "bindings",
        "description": "An array of bindings to resolve"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "ResolvedBinding"
      ],
      "spread": false,
      "description": "The array of resolvedBinding obtained"
    },
    "generator": false
  },
  {
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "get",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#get",
    "access": null,
    "description": "Return the factory execution value if the key matches",
    "lineNumber": 45,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{Object} The value corresponding to the factory execution"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "token",
        "description": "The key of the resolvedBinding factory to get"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "The value corresponding to the factory execution"
    },
    "generator": false
  },
  {
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "resolveDependencies",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#resolveDependencies",
    "access": null,
    "description": "Resolve the dependencies of the resolvedBinding",
    "lineNumber": 59,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{Object} The factory execution loaded"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "ResolvedBinding"
        ],
        "spread": false,
        "optional": false,
        "name": "resolvedBinding",
        "description": "The resolved binding concerned"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "The factory execution loaded"
    },
    "generator": false
  },
  {
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "parseDependencies",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#parseDependencies",
    "access": null,
    "description": "Split dependencies in an array of object",
    "lineNumber": 73,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{Object} An array of dependencies splitted into 3 category\ninConstructor, inProperty, inSetter"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "dependencies",
        "description": "An array of dependencies"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "An array of dependencies splitted into 3 category\ninConstructor, inProperty, inSetter"
    },
    "generator": false
  },
  {
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "resolveConstructor",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#resolveConstructor",
    "access": null,
    "description": "Resolve the constructor injector",
    "lineNumber": 95,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{Object} Return the object instance with constructor dependencies"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "ResolvedBinding"
        ],
        "spread": false,
        "optional": false,
        "name": "resolvedBinding",
        "description": "The resolved binding to loaded"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "dependencies",
        "description": "The dependencies to inject"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "Return the object instance with constructor dependencies"
    },
    "generator": false
  },
  {
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "resolveProperty",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#resolveProperty",
    "access": null,
    "description": "Resolve properties injection",
    "lineNumber": 161,
    "unknown": [
      {
        "tagName": "@params",
        "tagValue": "{Object} dependencies - The property dependencies to inject"
      },
      {
        "tagName": "@returns",
        "tagValue": "{Object} The object with property injected"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "newInstance",
        "description": "The object instance where to inject properties"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "The object with property injected"
    },
    "generator": false
  },
  {
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "resolveSetters",
    "memberof": "lib/injector.js~Injector",
    "longname": "lib/injector.js~Injector#resolveSetters",
    "access": null,
    "description": "Resolve setters injection",
    "lineNumber": 174,
    "unknown": [
      {
        "tagName": "@params",
        "tagValue": "{Object} dependencies - The setter dependencies to inject"
      },
      {
        "tagName": "@returns",
        "tagValue": "{Object} The object with setters injected"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "newInstance",
        "description": "The object where to make setter injection"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "The object with setters injected"
    },
    "generator": false
  },
  {
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "lib/resolvedBinding.js",
    "memberof": null,
    "longname": "lib/resolvedBinding.js",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "content": "/**\n* @class ResolvedBinding\n*/\nexport class ResolvedBinding{\n\n  /**\n  * This is a ResolvedBinding\n  * @constructor\n  * @param {String} key - The key to search the resolvedBinding\n  * @param {Object} factory - This if the factory to call to get the wanted value\n  * @param {Object} dependencies - The dependencies of the ResolvedBinding\n  */\n  constructor(key, factory, dependencies){\n    this.key = key;\n    this.factory = factory;\n    this.dependencies = dependencies ? dependencies : [];\n  }\n}\n"
  },
  {
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "ResolvedBinding",
    "memberof": "lib/resolvedBinding.js",
    "longname": "lib/resolvedBinding.js~ResolvedBinding",
    "access": null,
    "export": true,
    "importPath": "injector/lib/resolvedBinding.js",
    "importStyle": "{ResolvedBinding}",
    "description": null,
    "lineNumber": 4,
    "unknown": [
      {
        "tagName": "@class",
        "tagValue": "ResolvedBinding"
      }
    ],
    "interface": false
  },
  {
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "lib/resolvedBinding.js~ResolvedBinding",
    "longname": "lib/resolvedBinding.js~ResolvedBinding#constructor",
    "access": null,
    "description": "This is a ResolvedBinding",
    "lineNumber": 13,
    "unknown": [
      {
        "tagName": "@constructor",
        "tagValue": ""
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "String"
        ],
        "spread": false,
        "optional": false,
        "name": "key",
        "description": "The key to search the resolvedBinding"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "factory",
        "description": "This if the factory to call to get the wanted value"
      },
      {
        "nullable": null,
        "types": [
          "Object"
        ],
        "spread": false,
        "optional": false,
        "name": "dependencies",
        "description": "The dependencies of the ResolvedBinding"
      }
    ],
    "generator": false
  },
  {
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "key",
    "memberof": "lib/resolvedBinding.js~ResolvedBinding",
    "longname": "lib/resolvedBinding.js~ResolvedBinding#key",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "factory",
    "memberof": "lib/resolvedBinding.js~ResolvedBinding",
    "longname": "lib/resolvedBinding.js~ResolvedBinding#factory",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "dependencies",
    "memberof": "lib/resolvedBinding.js~ResolvedBinding",
    "longname": "lib/resolvedBinding.js~ResolvedBinding#dependencies",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Infinity",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Infinity",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "NaN",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~NaN",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "undefined",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~undefined",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "null",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~null",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Object",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Object",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "object",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~object",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Function",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Function",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "function",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~function",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Boolean",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Boolean",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "boolean",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~boolean",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Symbol",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Symbol",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Error",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Error",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "EvalError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~EvalError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "InternalError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/InternalError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~InternalError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "RangeError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~RangeError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "ReferenceError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~ReferenceError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "SyntaxError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~SyntaxError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "TypeError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~TypeError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "URIError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~URIError",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Number",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Number",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "number",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~number",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Date",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Date",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "String",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~String",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "string",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~string",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "RegExp",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~RegExp",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int8Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int8Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint8Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint8ClampedArray",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8ClampedArray",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int16Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int16Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint16Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint16Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int32Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint32Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Float32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Float32Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Float64Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Float64Array",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Map",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Map",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Set",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Set",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "WeakMap",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakMap",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "WeakSet",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakSet",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "ArrayBuffer",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~ArrayBuffer",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "DataView",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~DataView",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "JSON",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~JSON",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Promise",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Promise",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Generator",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Generator",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "GeneratorFunction",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~GeneratorFunction",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Reflect",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Reflect",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Proxy",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Proxy",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "CanvasRenderingContext2D",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~CanvasRenderingContext2D",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "DocumentFragment",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~DocumentFragment",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Element",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Element",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Element",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Event",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Event",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Event",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Node",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Node",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Node",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "NodeList",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/NodeList",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~NodeList",
    "access": null,
    "description": null,
    "builtinExternal": true
  },
  {
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "XMLHttpRequest",
    "externalLink": "https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~XMLHttpRequest",
    "access": null,
    "description": null,
    "builtinExternal": true
  }
]