[
  {
    "__docId__": 0,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/app/client/index.js",
    "memberof": null,
    "longname": "src/app/client/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/* global __DIST__ __TEST__ HAS_CLIENT_LOADING ROC_CLIENT_LOADING ROC_PATH */\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n\nimport createHistory from 'history/lib/createBrowserHistory';\nimport useBasename from 'history/lib/useBasename';\nimport { Router } from 'react-router';\n\nimport { Provider } from 'react-redux';\nimport { syncReduxAndRouter } from 'redux-simple-router';\nimport debug from 'debug';\n\nimport { rocConfig } from '../shared/universal-config';\n\nconst clientDebug = debug('roc:client');\n\nconst basename = ROC_PATH === '/' ? null : ROC_PATH;\n\n/**\n * Client entry point for React applications.\n *\n * @example\n * import { createClient } from 'roc-web-react/app/client';\n *\n * const server = createClient({\n *     createRoutes: routes,\n *     createStore: store,\n *     mountNode: 'application'\n * });\n *\n * @param {rocClientOptions} options - Options for the client\n */\nexport default function createClient({ createRoutes, createStore, mountNode }) {\n    if (!createRoutes) {\n        throw new Error(`createRoutes needs to be defined`);\n    }\n\n    if (!mountNode) {\n        throw new Error(`mountNode needs to be defined`);\n    }\n\n    if (rocConfig) {\n        debug.enable(rocConfig.runtime.debug.client);\n    }\n\n    if (!__DIST__ && rocConfig.dev.a11y) {\n        if (rocConfig.runtime.ssr) {\n            clientDebug('You will see a \"Warning: React attempted to reuse markup in a container but the checksum was' +\n                ' invalid.\" message. That\\'s because a11y is enabled.');\n        }\n\n        require('react-a11y')(React);\n    }\n\n    const render = () => {\n        const node = document.getElementById(mountNode);\n\n        let component;\n        const history = useBasename(createHistory)({ basename });\n\n        if (createStore) {\n            const store = createStore(window.FLUX_STATE);\n\n            const ReduxContext = require('./redux-context');\n\n            let initalClientLoading = null;\n            if (HAS_CLIENT_LOADING) {\n                initalClientLoading = require(ROC_CLIENT_LOADING);\n            }\n\n            component = (\n                <Router\n                    history={ history }\n                    routes={ createRoutes(store) }\n                    RoutingContext={ ReduxContext }\n                    store={ store }\n                    blocking={ rocConfig.runtime.clientBlocking }\n                    initalClientLoading={ initalClientLoading }\n                />\n            );\n\n            syncReduxAndRouter(history, store);\n\n            if (!__DIST__) {\n                if (rocConfig.dev.reduxDevtools.enabled) {\n                    const DevTools = require('./dev-tools');\n\n                    if (rocConfig.runtime.ssr) {\n                        clientDebug('You will see a \"Warning: React attempted to reuse markup in a container but the ' +\n                            'checksum was invalid.\" message. That\\'s because the redux-devtools are enabled.');\n                    }\n\n                    component = (\n                        <div>\n                            { component }\n                            <DevTools />\n                        </div>\n                    );\n                }\n\n                if (rocConfig.dev.yellowbox.enabled) {\n                    const YellowBox = require('yellowbox-react').default;\n\n                    /* eslint-disable no-console */\n                    console.ignoredYellowBox = rocConfig.dev.yellowbox.ignore;\n                    /* eslint-enable */\n\n                    if (rocConfig.runtime.ssr) {\n                        clientDebug('You will see a \"Warning: React attempted to reuse markup in a container but the ' +\n                            'checksum was invalid.\" message. That\\'s because the YellowBox is enabled.');\n                    }\n\n                    component = (\n                        <div>\n                            { component }\n                            <YellowBox />\n                        </div>\n                    );\n                }\n            }\n\n            component = (\n                <Provider store={ store }>\n                    { component }\n                </Provider>\n            );\n        } else {\n            component = (\n                <Router\n                    history={ history }\n                    routes={ createRoutes() }\n                />\n            );\n        }\n\n        ReactDom.render(component, node);\n    };\n\n    // FIXME\n    if (!__TEST__) {\n        render();\n    }\n}\n"
  },
  {
    "__docId__": 1,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "clientDebug",
    "memberof": "src/app/client/index.js",
    "longname": "src/app/client/index.js~clientDebug",
    "access": null,
    "export": false,
    "importPath": "roc-web-react/src/app/client/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 2,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "basename",
    "memberof": "src/app/client/index.js",
    "longname": "src/app/client/index.js~basename",
    "access": null,
    "export": false,
    "importPath": "roc-web-react/src/app/client/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 18,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 3,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "createClient",
    "memberof": "src/app/client/index.js",
    "longname": "src/app/client/index.js~createClient",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/src/app/client/index.js",
    "importStyle": "createClient",
    "description": "Client entry point for React applications.",
    "examples": [
      "import { createClient } from 'roc-web-react/app/client';\n\nconst server = createClient({\n    createRoutes: routes,\n    createStore: store,\n    mountNode: 'application'\n});"
    ],
    "lineNumber": 34,
    "params": [
      {
        "nullable": null,
        "types": [
          "rocClientOptions"
        ],
        "spread": false,
        "optional": false,
        "name": "options",
        "description": "Options for the client"
      }
    ],
    "generator": false
  },
  {
    "__docId__": 4,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/app/server/index.js",
    "memberof": null,
    "longname": "src/app/server/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "// FIXME Remove when updating to Babel 6.0\nimport 'babel/polyfill';\n\nimport readStats from 'roc-web-react/lib/helpers/read-stats';\nimport routes from './router';\n\n/**\n * Enhances a server instance with React support.\n *\n * Extends the options object from _roc-web_. See {@link rocServerOptions} for what the new options are.\n *\n * @example\n * import { createServer } from 'roc-web/app';\n * import { useReact } from 'roc-web-react/app/server';\n *\n * const server = useReact(createServer)({\n *     serve: 'files',\n *     createRoutes: routes,\n *     createStore: store,\n *     stats: './stats.json'\n * });\n\n * server.start();\n *\n * @param {function} createServer - A createServer function to wrap and add extra functionallity to\n * @returns {function} Returns a new createServer that can be used to create server instances that can manage React\n * applications\n */\nexport default function useReact(createServer) {\n    return function(options = {}, beforeUserMiddlewares = []) {\n        const { stats, createRoutes, createStore, ...serverOptions } = options;\n\n        return createServer(serverOptions, beforeUserMiddlewares.concat(routes({\n            createRoutes,\n            createStore,\n            stats: readStats(stats)\n        })));\n    };\n}\n"
  },
  {
    "__docId__": 5,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "useReact",
    "memberof": "src/app/server/index.js",
    "longname": "src/app/server/index.js~useReact",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/src/app/server/index.js",
    "importStyle": "useReact",
    "description": "Enhances a server instance with React support.\n\nExtends the options object from _roc-web_. See {@link rocServerOptions} for what the new options are.",
    "examples": [
      "import { createServer } from 'roc-web/app';\nimport { useReact } from 'roc-web-react/app/server';\n\nconst server = useReact(createServer)({\n    serve: 'files',\n    createRoutes: routes,\n    createStore: store,\n    stats: './stats.json'\n});\n\nserver.start();"
    ],
    "lineNumber": 29,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{function} Returns a new createServer that can be used to create server instances that can manage React\napplications"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "function"
        ],
        "spread": false,
        "optional": false,
        "name": "createServer",
        "description": "A createServer function to wrap and add extra functionallity to"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "function"
      ],
      "spread": false,
      "description": "Returns a new createServer that can be used to create server instances that can manage React\napplications"
    },
    "generator": false
  },
  {
    "__docId__": 6,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/app/shared/create-routes.js",
    "memberof": null,
    "longname": "src/app/shared/create-routes.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import React from 'react';\nimport { Route } from 'react-router';\n\nimport Application from './application';\n\n/**\n * Route creator\n *\n * @param {!function} routes - A function that takes a reference to potential store and returns a React Router route\n * @returns {function} A function that takes a reference to a potential store, runs the `routes` function and wrapps the\n * result in a _Application component_ wrapper. See the README.md for more information on what it does.\n */\nexport default function createRoutes(routes) {\n    return store => {\n        const appRoutes = routes(store);\n\n        return (\n            <Route path=\"/\" component={ Application }>\n                { appRoutes }\n            </Route>\n        );\n    };\n}\n"
  },
  {
    "__docId__": 7,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "createRoutes",
    "memberof": "src/app/shared/create-routes.js",
    "longname": "src/app/shared/create-routes.js~createRoutes",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/src/app/shared/create-routes.js",
    "importStyle": "createRoutes",
    "description": "Route creator",
    "lineNumber": 13,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{function} A function that takes a reference to a potential store, runs the `routes` function and wrapps the\nresult in a _Application component_ wrapper. See the README.md for more information on what it does."
      }
    ],
    "params": [
      {
        "nullable": false,
        "types": [
          "function"
        ],
        "spread": false,
        "optional": false,
        "name": "routes",
        "description": "A function that takes a reference to potential store and returns a React Router route"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "function"
      ],
      "spread": false,
      "description": "A function that takes a reference to a potential store, runs the `routes` function and wrapps the\nresult in a _Application component_ wrapper. See the README.md for more information on what it does."
    },
    "generator": false
  },
  {
    "__docId__": 8,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/app/shared/flux/create-store.js",
    "memberof": null,
    "longname": "src/app/shared/flux/create-store.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/* global __DEV__ __CLIENT__ */\n\nimport { createStore, applyMiddleware, combineReducers, compose } from 'redux';\nimport { routeReducer } from 'redux-simple-router';\n\nimport { rocConfig } from '../universal-config';\n\n/**\n * Redux store creator\n *\n * @param {!object} reducers - Reducers that should be added to the store\n * @param {...function} middlewares - Redux middlewares that should be added to the store\n * @returns {function} A function that has the following interface:\n * `(callback) => (reduxReactRouter, getRoutes, createHistory, initialState)`.\n * The callback will be called when the application is in _DEV_ mode on the client as a way to add hot module update of\n * the reducers. The callback itself will take a function as the parameter that in turn takes the reducers to update.\n */\nexport function createReduxStore(reducers, ...middlewares) {\n    return (callback) =>\n        (initialState) => {\n            let finalCreateStore;\n\n            if (__DEV__ && __CLIENT__) {\n                const { persistState } = require('redux-devtools');\n                const { instrument } = require('../../client/dev-tools');\n                const createLogger = require('redux-logger');\n                const logger = createLogger({\n                    level: rocConfig.dev.reduxLogger.level,\n                    collapsed: rocConfig.dev.reduxLogger.collapsed,\n                    duration: rocConfig.dev.reduxLogger.duration,\n                    timestamp: rocConfig.dev.reduxLogger.timestamp\n                });\n\n                const debugMiddlewares = [logger];\n\n                finalCreateStore = compose(\n                    applyMiddleware(...middlewares, ...debugMiddlewares),\n                    instrument(),\n                    persistState(window.location.href.match(/[?&]debug_session=([^&]+)\\b/))\n                )(createStore);\n            } else {\n                finalCreateStore = compose(\n                    applyMiddleware(...middlewares)\n                )(createStore);\n            }\n\n            const reducer = combineReducers({\n                routing: routeReducer,\n                ...reducers\n            });\n\n            const store = finalCreateStore(reducer, initialState);\n\n            if (__DEV__ && __CLIENT__ && module.hot) {\n                // Enable Webpack hot module replacement for reducers\n                callback((newReducers) => {\n                    const nextRootReducer = combineReducers({\n                        routing: routeReducer,\n                        ...newReducers\n                    });\n                    store.replaceReducer(nextRootReducer);\n                });\n            }\n\n            return store;\n        };\n}\n"
  },
  {
    "__docId__": 9,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "createReduxStore",
    "memberof": "src/app/shared/flux/create-store.js",
    "longname": "src/app/shared/flux/create-store.js~createReduxStore",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/src/app/shared/flux/create-store.js",
    "importStyle": "{createReduxStore}",
    "description": "Redux store creator",
    "lineNumber": 18,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{function} A function that has the following interface:\n`(callback) => (reduxReactRouter, getRoutes, createHistory, initialState)`.\nThe callback will be called when the application is in _DEV_ mode on the client as a way to add hot module update of\nthe reducers. The callback itself will take a function as the parameter that in turn takes the reducers to update."
      }
    ],
    "params": [
      {
        "nullable": false,
        "types": [
          "object"
        ],
        "spread": false,
        "optional": false,
        "name": "reducers",
        "description": "Reducers that should be added to the store"
      },
      {
        "nullable": null,
        "types": [
          "...function"
        ],
        "spread": true,
        "optional": false,
        "name": "middlewares",
        "description": "Redux middlewares that should be added to the store"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "function"
      ],
      "spread": false,
      "description": "A function that has the following interface:\n`(callback) => (reduxReactRouter, getRoutes, createHistory, initialState)`.\nThe callback will be called when the application is in _DEV_ mode on the client as a way to add hot module update of\nthe reducers. The callback itself will take a function as the parameter that in turn takes the reducers to update."
    },
    "generator": false
  },
  {
    "__docId__": 10,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/app/shared/universal-config.js",
    "memberof": null,
    "longname": "src/app/shared/universal-config.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "const universalConfig = () => {\n    if (typeof window !== 'undefined') {\n        return {\n            rocConfig: window.ROC_CONFIG,\n            appConfig: window.APP_CONFIG\n        };\n    }\n\n    const rocConfig = require('roc').getSettings();\n    const appConfig = rocConfig.runtime.configWhitelistProperty ?\n        require('config')[rocConfig.runtime.configWhitelistProperty] :\n        undefined;\n\n    return {\n        rocConfig,\n        appConfig\n    };\n}();\n\n/**\n * Universal Configuration Manager\n *\n * Manages both __application__ configuration and __Roc__ configuration.\n * On the server the configurations will be fetched directly and on the client it's expected that the configuration\n * is available on `window` as `ROC_CONFIG` and `APP_CONFIG`.\n *\n * appConfig will only contain what has been selected by `runtime.configWhitelistProperty`. That means if you want\n * to read the full configuration on the server you will need to read it directly from node-config.\n */\nexport default universalConfig;\n"
  },
  {
    "__docId__": 11,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "universalConfig",
    "memberof": "src/app/shared/universal-config.js",
    "longname": "src/app/shared/universal-config.js~universalConfig",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/src/app/shared/universal-config.js",
    "importStyle": "universalConfig",
    "description": "Universal Configuration Manager\n\nManages both __application__ configuration and __Roc__ configuration.\nOn the server the configurations will be fetched directly and on the client it's expected that the configuration\nis available on `window` as `ROC_CONFIG` and `APP_CONFIG`.\n\nappConfig will only contain what has been selected by `runtime.configWhitelistProperty`. That means if you want\nto read the full configuration on the server you will need to read it directly from node-config.",
    "lineNumber": 1,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 12,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/bin/index.js",
    "memberof": null,
    "longname": "src/roc/bin/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "#! /usr/bin/env node\n\nimport { runCli } from 'roc';\n\nconst pkg = require('../../package.json');\n\nrunCli({\n    version: pkg.version,\n    name: pkg.name\n});\n"
  },
  {
    "__docId__": 13,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "pkg",
    "memberof": "src/roc/bin/index.js",
    "longname": "src/roc/bin/index.js~pkg",
    "access": null,
    "export": false,
    "importPath": "roc-web-react/lib/bin/index.js",
    "importStyle": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 14,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/builder/index.js",
    "memberof": null,
    "longname": "src/roc/builder/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import 'source-map-support/register';\n\nimport fs from 'fs';\nimport path from 'path';\nimport { getAbsolutePath } from 'roc';\nimport { createBuilder as createBuilderBase } from 'roc-web';\nimport { getSettings, appendSettings } from 'roc';\n\n/**\n * Creates a builder.\n *\n * @param {!string} target - a target: should be either \"client\" or \"server\"\n * @param {rocBuilder} rocBuilder - A rocBuilder to base everything on.\n * @param {!string} [resolver=roc-web-react/lib/helpers/get-resolve-path] - Path to the resolver for the server side\n * {@link getResolvePath}\n * @returns {rocBuilder}\n */\nexport default function createBuilder(target, rocBuilder, resolver = 'roc-web-react/lib/helpers/get-resolve-path') {\n    const allowedTargets = ['server', 'client'];\n\n    if (allowedTargets.indexOf(target) === -1) {\n        throw new Error(`Invalid target, must be one of ${allowedTargets}. Was instead ${target}.`);\n    }\n\n    let settings = getSettings('build');\n\n    const DEV = (settings.mode === 'dev');\n\n    const SERVER = (target === 'server');\n    const CLIENT = (target === 'client');\n\n    const newEntry = {\n        ...settings.entry\n    };\n    if (!newEntry[target] && CLIENT) {\n        newEntry[target] = require.resolve('../../src/default/client');\n    } else if (!newEntry[target] && SERVER) {\n        newEntry[target] = require.resolve('../../src/default/server');\n    }\n\n    appendSettings({build: {entry: newEntry}});\n    settings = getSettings('build');\n\n    // Update reference to internal base styles\n    if (settings.assets.length > 0) {\n        const updatedAssets = settings.assets.map((asset) => {\n            const matches = /^roc-web-react\\/(.*)/.exec(asset);\n            if (matches && matches[1]) {\n                return require.resolve(`../../${matches[1]}`);\n            }\n\n            return asset;\n        });\n\n        appendSettings({build: {assets: updatedAssets}});\n    }\n    settings = getSettings('build');\n\n    let { buildConfig, builder } = createBuilderBase(target, {}, resolver);\n\n    if (SERVER) {\n        buildConfig.externals = [].concat([\n            {\n                'roc-web-react/lib/helpers/read-stats': true,\n                'roc-web-react/lib/helpers/my-path': true\n            }\n        ], buildConfig.externals);\n    }\n\n    if (CLIENT) {\n        buildConfig.plugins.push(\n            new builder.IgnorePlugin(/^roc$/)\n        );\n    }\n\n    if (CLIENT && DEV) {\n        buildConfig.module.loaders.forEach(loader => {\n            if (loader.loader === 'babel-loader') {\n                loader.query = {\n                    cacheDirectory: true,\n                    plugins: [require.resolve('babel-plugin-react-transform')],\n                    extra: {\n                        'react-transform': {\n                            transforms: [{\n                                transform: require.resolve('react-transform-hmr'),\n                                imports: [require.resolve('react')],\n                                locals: ['module']\n                            }, {\n                                transform: require.resolve('react-transform-catch-errors'),\n                                imports: [require.resolve('react'), require.resolve('redbox-react')]\n                            }]\n                        }\n                    }\n                };\n            }\n        });\n    }\n\n    buildConfig.resolveLoader.root.push(path.join(__dirname, '../../node_modules'));\n\n    buildConfig.resolve.fallback.push(\n        path.join(__dirname, '../../node_modules')\n    );\n\n    if (settings.routes) {\n        const routes = getAbsolutePath(settings.routes);\n\n        buildConfig.plugins.push(\n            new builder.DefinePlugin({\n                REACT_ROUTER_ROUTES: JSON.stringify(routes)\n            })\n        );\n    }\n\n    const fileExists = (filepath) => {\n        filepath = getAbsolutePath(filepath);\n        try {\n            return fs.statSync(filepath).isFile();\n        } catch (error) {\n            return false;\n        }\n    };\n\n    const hasReducers = !!(settings.reducers && fileExists(settings.reducers));\n    const hasMiddlewares = !!(settings.reduxMiddlewares && fileExists(settings.reduxMiddlewares));\n    const hasClientLoading = !!(settings.clientLoading && fileExists(settings.clientLoading));\n\n    if (hasReducers) {\n        const reducers = getAbsolutePath(settings.reducers);\n\n        buildConfig.plugins.push(\n            new builder.DefinePlugin({\n                REDUX_REDUCERS: JSON.stringify(reducers)\n            })\n        );\n    }\n\n    if (hasMiddlewares) {\n        const middlewares = getAbsolutePath(settings.reduxMiddlewares);\n\n        buildConfig.plugins.push(\n            new builder.DefinePlugin({\n                REDUX_MIDDLEWARES: JSON.stringify(middlewares)\n            })\n        );\n    }\n\n    if (hasClientLoading) {\n        const clientLoading = getAbsolutePath(settings.clientLoading);\n\n        buildConfig.plugins.push(\n            new builder.DefinePlugin({\n                ROC_CLIENT_LOADING: JSON.stringify(clientLoading)\n            })\n        );\n    }\n\n    buildConfig.plugins.push(\n        new builder.DefinePlugin({\n            USE_DEFAULT_REDUX_REDUCERS: settings.useDefaultReducers,\n            USE_DEFAULT_REDUX_MIDDLEWARES: settings.useDefaultReduxMiddlewares,\n            USE_DEFAULT_REACT_ROUTER_ROUTES: settings.useDefaultRoutes,\n\n            HAS_REDUX_REDUCERS: hasReducers,\n            HAS_REDUX_MIDDLEWARES: hasMiddlewares,\n            HAS_CLIENT_LOADING: hasClientLoading\n        })\n    );\n\n    return {\n        buildConfig,\n        builder\n    };\n}\n"
  },
  {
    "__docId__": 15,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "createBuilder",
    "memberof": "src/roc/builder/index.js",
    "longname": "src/roc/builder/index.js~createBuilder",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/lib/builder/index.js",
    "importStyle": "createBuilder",
    "description": "Creates a builder.",
    "lineNumber": 18,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{rocBuilder}"
      }
    ],
    "params": [
      {
        "nullable": false,
        "types": [
          "string"
        ],
        "spread": false,
        "optional": false,
        "name": "target",
        "description": "a target: should be either \"client\" or \"server\""
      },
      {
        "nullable": null,
        "types": [
          "rocBuilder"
        ],
        "spread": false,
        "optional": false,
        "name": "rocBuilder",
        "description": "A rocBuilder to base everything on."
      },
      {
        "nullable": false,
        "types": [
          "string"
        ],
        "spread": false,
        "optional": true,
        "defaultValue": "roc-web-react/lib/helpers/get-resolve-path",
        "defaultRaw": "roc-web-react/lib/helpers/get-resolve-path",
        "name": "resolver",
        "description": "Path to the resolver for the server side\n{@link getResolvePath}"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "rocBuilder"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 16,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/config/roc.config.js",
    "memberof": null,
    "longname": "src/roc/config/roc.config.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "const config = {\n    settings: {\n        runtime: {\n            stats: 'build/client/webpack-stats.json',\n            applicationName: '',\n            meta: [{\n                name: 'viewport',\n                content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'\n            }],\n            link: [{\n                rel: 'icon',\n                href: 'favicon.png'\n            }],\n            // ROC_PATH will be replaced with what is defined in build.path\n            base: {\n                href: 'ROC_PATH',\n                target: ''\n            },\n            script: [],\n            ssr: true,\n            clientBlocking: false,\n            template: {\n                path: '',\n                name: 'main.html'\n            },\n            debug: {\n                client: 'roc:*'\n            },\n            configWhitelistProperty: 'DANGEROUSLY_EXPOSE_TO_CLIENT'\n        },\n\n        dev: {\n            // FIXME Does not play nice with Redux Devtools, a11y\n            a11y: false,\n            reduxDevtools: {\n                enabled: true,\n                position: 'right',\n                size: 0.3,\n                visibilityKey: 'H',\n                positionKey: 'Q',\n                defaultVisible: false,\n                theme: 'ocean'\n            },\n\n            reduxLogger: {\n                level: 'info',\n                collapsed: true,\n                duration: true,\n                timestamp: true\n            },\n\n            yellowbox: {\n                enabled: true,\n                ignore: ['[HMR]', 'Warning: React attempted to reuse markup in a container']\n            }\n        },\n\n        build: {\n            entry: { client: '', server: ''},\n\n            reducers: 'reducers.js',\n            useDefaultReducers: true,\n\n            routes: 'routes.js',\n            useDefaultRoutes: true,\n\n            reduxMiddlewares: 'redux-middlewares.js',\n            useDefaultReduxMiddlewares: true,\n\n            clientLoading: '',\n            assets: ['roc-web-react/styles/base.scss']\n        }\n    },\n\n    plugins: {\n        createBuilder: {\n            default: require('../builder')\n        }\n    }\n};\n\n/**\n * Exports the default `roc.config.js`.\n *\n * @return {object} The default `roc.config.js`.\n */\nexport default config;\n"
  },
  {
    "__docId__": 17,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "config",
    "memberof": "src/roc/config/roc.config.js",
    "longname": "src/roc/config/roc.config.js~config",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/lib/config/roc.config.js",
    "importStyle": "config",
    "description": "Exports the default `roc.config.js`.",
    "lineNumber": 1,
    "return": {
      "nullable": null,
      "types": [
        "object"
      ],
      "spread": false,
      "description": "The default `roc.config.js`."
    },
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 18,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/config/roc.config.meta.js",
    "memberof": null,
    "longname": "src/roc/config/roc.config.meta.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { isString, isBoolean, isPath, isArray, isObject, required } from 'roc/validators';\n\nconst configMeta = {\n    settings: {\n        groups: {\n            runtime: {\n                base: 'Base tag to be used in <head>, ' +\n                    'see https://github.com/nfl/react-helmet.'\n            }\n        },\n        descriptions: {\n            runtime: {\n                stats: 'Path to client stats file from build.',\n                applicationName: 'Application name to use for <title>.',\n                meta: 'Meta tags to be used in <head>, should be formatted as objects, ' +\n                    'see https://github.com/nfl/react-helmet.',\n                link: 'Link tags to be used in <head>, should be formatted as objects, ' +\n                    'See https://github.com/nfl/react-helmet.',\n                base: {\n                    href: 'The document base address from which relative links are made.',\n                    target: 'The browsing context in which the links should open.'\n                },\n                script: 'Script tags to be used in <head>, should be formatted as objects, ' +\n                    'See https://github.com/nfl/react-helmet.',\n                ssr: 'If server side rendering should be enabled.',\n                clientBlocking: 'If \"prefetch\" should block a route transition on the client.',\n                template: {\n                    path: 'A directory where the template for the application can be found. Will default to internal ' +\n                        'path.',\n                    name: 'Name of the template file that will be used. Uses Nunjucks, please see documentaion for ' +\n                        'more info.'\n                },\n                debug: {\n                    client: 'Filter for debug messages that should be shown for the client, see ' +\n                        'https://npmjs.com/package/debug.'\n                },\n                configWhitelistProperty: 'A single property to expose to the client from node-config. Make sure that ' +\n                    'this property does NOT contain any secrets that should not be exposed to the world.'\n            },\n\n            dev: {\n                a11y: 'If A11Y validation should be active. Currently it´s suggested to not enable reduxDevtools ' +\n                    'with this.',\n                reduxDevtools: {\n                    enabled: 'If Redux Devtools should be enabled.',\n                    position: 'Starting position of the Devtools, can be left, right, top or bottom.',\n                    size: 'Default size of the Devtools, should be a number between 0 and 1.',\n                    visibilityKey: 'The key that should toogle the Redux Devtools, will be combine with CTRL.',\n                    positionKey: 'The key that should change position of the Redux Devtools, will be combine with ' +\n                        'CTRL.',\n                    defaultVisible: 'If the Redux Devtools should be shown by default.',\n                    theme: 'The theme to use for the Redux Devtools, see ' +\n                        'https://github.com/gaearon/redux-devtools-themes.'\n                },\n                reduxLogger: {\n                    level: 'The logging level for Redux Logger, can be either warn, error or info.',\n                    collapsed: 'If the logged actions by Redux Logger should be collapsed by default.',\n                    duration: 'If Redux Logger should print the duration of each action.',\n                    timestamp: 'If Redux Logger should print the timestamp with each action.'\n                },\n                yellowbox: {\n                    enabled: 'If YellowBox should be enabled.',\n                    ignore: 'Array of prefix strings that should be ignored by YelloBox.'\n                }\n            },\n\n            build: {\n                routes: 'The routes to use if no entry file is given, will use default entry files internally.',\n                useDefaultRoutes: 'If Roc should use an internal wrapper around the routes, please look at the ' +\n                    'documentation for more details.',\n\n                reducers: 'The reducers to use if no entry file is given, will use default entry files internally.',\n                useDefaultReducers: 'If Roc should use internally defined reducers, please look at the documentation ' +\n                    ' for what reducers that are included.',\n\n                reduxMiddlewares: 'The middlewares to use if no entry file is given, will use default entry files ' +\n                    'internally.',\n                useDefaultReduxMiddlewares: 'If Roc should use internally defined middlewares, please look at the ' +\n                    ' documentation for what middlewares that are included.',\n\n                clientLoading: 'The React component to use on the first client load while fetching data, will only ' +\n                    'be used if clientBlocking is set to true.'\n            }\n        },\n\n        validations: {\n            runtime: {\n                stats: isPath,\n                applicationName: required(isString),\n                meta: isArray(isObject(isString)),\n                link: isArray(isObject(isString)),\n                base: {\n                    href: isString,\n                    target: isString\n                },\n                script: isArray(isObject(isString)),\n                ssr: isBoolean,\n                clientBlocking: isBoolean,\n                template: {\n                    path: isPath,\n                    name: isString\n                },\n                debug: {\n                    client: isString\n                },\n                configWhitelistProperty: isString\n            },\n\n            dev: {\n                a11y: isBoolean,\n                reduxDevtools: {\n                    enabled: isBoolean,\n                    position: /^left|right|top|bottom$/,\n                    size: (input) => input >= 0 && input <= 1,\n                    visibilityKey: isString,\n                    positionKey: isString,\n                    defaultVisible: isBoolean,\n                    theme: isString\n                },\n                reduxLogger: {\n                    level: /^warn|error|info$/,\n                    collapsed: isBoolean,\n                    duration: isBoolean,\n                    timestamp: isBoolean\n                },\n                yellowbox: {\n                    enabled: isBoolean,\n                    ignore: isArray(isString)\n                }\n            },\n\n            build: {\n                routes: isPath,\n                useDefaultRoutes: isBoolean,\n\n                reducers: isPath,\n                useDefaultReducers: isBoolean,\n\n                reduxMiddlewares: isPath,\n                useDefaultReduxMiddlewares: isBoolean,\n\n                clientLoading: isPath\n            }\n        }\n    }\n};\n\n/**\n * Exports the `roc.config.meta.js`.\n *\n * @return {object} The `roc.config.meta.js`.\n */\nexport default configMeta;\n"
  },
  {
    "__docId__": 19,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "configMeta",
    "memberof": "src/roc/config/roc.config.meta.js",
    "longname": "src/roc/config/roc.config.meta.js~configMeta",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/lib/config/roc.config.meta.js",
    "importStyle": "configMeta",
    "description": "Exports the `roc.config.meta.js`.",
    "lineNumber": 3,
    "return": {
      "nullable": null,
      "types": [
        "object"
      ],
      "spread": false,
      "description": "The `roc.config.meta.js`."
    },
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 20,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/helpers/config.js",
    "memberof": null,
    "longname": "src/roc/helpers/config.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import 'source-map-support/register';\n\nimport { merge } from 'roc';\nimport { baseConfig as baseConfigRocWeb, metaConfig as metaConfigRocWeb } from 'roc-web';\n\n/**\n * Gives the base configuration.\n *\n * @returns {object} Returns the base configuration\n */\nexport const baseConfig = merge(baseConfigRocWeb, require('../config/roc.config.js'));\n\n/**\n * Gives the meta configuration.\n *\n * @returns {object} Returns the meta configuration\n */\nexport const metaConfig = merge(metaConfigRocWeb, require('../config/roc.config.meta.js'));\n"
  },
  {
    "__docId__": 21,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "baseConfig",
    "memberof": "src/roc/helpers/config.js",
    "longname": "src/roc/helpers/config.js~baseConfig",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/lib/helpers/config.js",
    "importStyle": "{baseConfig}",
    "description": "Gives the base configuration.",
    "lineNumber": 11,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{object} Returns the base configuration"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "object"
      ],
      "spread": false,
      "description": "Returns the base configuration"
    },
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 22,
    "kind": "variable",
    "static": true,
    "variation": null,
    "name": "metaConfig",
    "memberof": "src/roc/helpers/config.js",
    "longname": "src/roc/helpers/config.js~metaConfig",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/lib/helpers/config.js",
    "importStyle": "{metaConfig}",
    "description": "Gives the meta configuration.",
    "lineNumber": 18,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{object} Returns the meta configuration"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "object"
      ],
      "spread": false,
      "description": "Returns the meta configuration"
    },
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 23,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/helpers/get-resolve-path.js",
    "memberof": null,
    "longname": "src/roc/helpers/get-resolve-path.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import path from 'path';\nimport { getResolvePath as getResolvePathRocWeb } from 'roc-web';\n\n/**\n * Used on the server to find all dependecies.\n *\n * When creating a extension of this project this needs to be extended.\n *\n * @param {...string} resolvePaths - Paths to be resolved.\n * @returns {string} Path that can be used with `Module._initPaths()`.\n */\nexport default function getResolvePath(...resolvePaths) {\n    return getResolvePathRocWeb(path.join(__dirname, '..', '..', 'node_modules'), ...resolvePaths);\n}\n"
  },
  {
    "__docId__": 24,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "getResolvePath",
    "memberof": "src/roc/helpers/get-resolve-path.js",
    "longname": "src/roc/helpers/get-resolve-path.js~getResolvePath",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/lib/helpers/get-resolve-path.js",
    "importStyle": "getResolvePath",
    "description": "Used on the server to find all dependecies.\n\nWhen creating a extension of this project this needs to be extended.",
    "lineNumber": 12,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{string} Path that can be used with `Module._initPaths()`."
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "...string"
        ],
        "spread": true,
        "optional": false,
        "name": "resolvePaths",
        "description": "Paths to be resolved."
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "string"
      ],
      "spread": false,
      "description": "Path that can be used with `Module._initPaths()`."
    },
    "generator": false
  },
  {
    "__docId__": 25,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/helpers/my-path.js",
    "memberof": null,
    "longname": "src/roc/helpers/my-path.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import 'source-map-support/register';\n\nimport path from 'path';\n\n/**\n * Exports the path to the root of the project\n */\nexport default path.join(__dirname, '..', '..');\n"
  },
  {
    "__docId__": 26,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/helpers/read-stats.js",
    "memberof": null,
    "longname": "src/roc/helpers/read-stats.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import { getSettings, getAbsolutePath } from 'roc';\n\n/**\n * Read stats from build\n *\n * @param {string} stats - Path to a stats file from the client build\n * @returns {object} The stats object in the stats file\n */\nexport default function readStats(stats) {\n    const settings = getSettings('runtime');\n\n    return require(getAbsolutePath(stats || settings.stats));\n}\n"
  },
  {
    "__docId__": 27,
    "kind": "function",
    "static": true,
    "variation": null,
    "name": "readStats",
    "memberof": "src/roc/helpers/read-stats.js",
    "longname": "src/roc/helpers/read-stats.js~readStats",
    "access": null,
    "export": true,
    "importPath": "roc-web-react/lib/helpers/read-stats.js",
    "importStyle": "readStats",
    "description": "Read stats from build",
    "lineNumber": 9,
    "unknown": [
      {
        "tagName": "@returns",
        "tagValue": "{object} The stats object in the stats file"
      }
    ],
    "params": [
      {
        "nullable": null,
        "types": [
          "string"
        ],
        "spread": false,
        "optional": false,
        "name": "stats",
        "description": "Path to a stats file from the client build"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "object"
      ],
      "spread": false,
      "description": "The stats object in the stats file"
    },
    "generator": false
  },
  {
    "__docId__": 28,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/roc/index.js",
    "memberof": null,
    "longname": "src/roc/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import 'source-map-support/register';\n\n// Builder\nexport createBuilder from './builder';\n\n// Helpers\nexport getResolvePath from './helpers/get-resolve-path';\n\n// Configuration\nexport configFile from './config/roc.config.js';\nexport { baseConfig } from './helpers/config';\nexport { metaConfig } from './helpers/config';\n"
  },
  {
    "__docId__": 29,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/typedef/index.js",
    "memberof": null,
    "longname": "src/typedef/index.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "/**\n * Roc builder object.\n *\n * @typedef {Object} rocBuilder\n * @property {object} buildConfig - Webpack config object, can be used to extend the configuration.\n * @property {object} builder - Webpack instance.\n * @see https://webpack.github.io/\n */\n\n /**\n * Roc server options.\n *\n * Used in {@link useReact}.\n *\n * For example of createRoutes see {@link createRoutes}.\n *\n * For example of createStore {@link createReduxStore}.\n *\n * The __stats__ property can also be set in `roc.config.js` however the value here will override it if provided.\n *\n * @typedef {Object} rocServerOptions\n * @property {!function} createRoutes - A function that will return a valid route object, is given the store instance\n * in the case that there is on that can be used.\n * @property {!function} [createStore] - A function that return a Redux store instance. The interface for it is:\n * `(reduxRouter, createRoutes, history) => reduxStoreInstance`. If it's not defined the application will not use\n * Redux.\n * @property {!string} stats - A path to a stats JSON file. Should match the following pattern\n * `{script: string[], css: string[]}`\n */\n\n /**\n * Roc client options.\n *\n * Used in {@link createClient}.\n *\n * For example of createRoutes see {@link createRoutes}.\n *\n * For example of createStore {@link createReduxStore}.\n * *\n * @typedef {Object} rocClientOptions\n * @property {!function} createRoutes - A function that will return a valid route object, is given the store instance\n * in the case that there is on that can be used.\n * @property {!function} [createStore] - A function that return a Redux store instance. The interface for it is:\n * `(reduxRouter, createRoutes, history) => reduxStoreInstance`. If it's not defined the application will not use\n * Redux.\n * @property {!string} mountNode - The id for the DOM node to mount the React application inside of.\n */\n"
  },
  {
    "__docId__": 30,
    "kind": "typedef",
    "static": true,
    "variation": null,
    "name": "rocBuilder",
    "memberof": "src/typedef/index.js",
    "longname": "src/typedef/index.js~rocBuilder",
    "access": null,
    "description": "Roc builder object.",
    "see": [
      "https://webpack.github.io/"
    ],
    "properties": [
      {
        "nullable": null,
        "types": [
          "object"
        ],
        "spread": false,
        "optional": false,
        "name": "buildConfig",
        "description": "Webpack config object, can be used to extend the configuration."
      },
      {
        "nullable": null,
        "types": [
          "object"
        ],
        "spread": false,
        "optional": false,
        "name": "builder",
        "description": "Webpack instance."
      }
    ],
    "type": {
      "types": [
        "Object"
      ],
      "optional": false,
      "name": "rocBuilder"
    }
  },
  {
    "__docId__": 31,
    "kind": "typedef",
    "static": true,
    "variation": null,
    "name": "rocServerOptions",
    "memberof": "src/typedef/index.js",
    "longname": "src/typedef/index.js~rocServerOptions",
    "access": null,
    "description": "Roc server options.\n\nUsed in {@link useReact}.\n\nFor example of createRoutes see {@link createRoutes}.\n\nFor example of createStore {@link createReduxStore}.\n\nThe __stats__ property can also be set in `roc.config.js` however the value here will override it if provided.",
    "properties": [
      {
        "nullable": false,
        "types": [
          "function"
        ],
        "spread": false,
        "optional": false,
        "name": "createRoutes",
        "description": "A function that will return a valid route object, is given the store instance\nin the case that there is on that can be used."
      },
      {
        "nullable": false,
        "types": [
          "function"
        ],
        "spread": false,
        "optional": true,
        "name": "createStore",
        "description": "A function that return a Redux store instance. The interface for it is:\n`(reduxRouter, createRoutes, history) => reduxStoreInstance`. If it's not defined the application will not use\nRedux."
      },
      {
        "nullable": false,
        "types": [
          "string"
        ],
        "spread": false,
        "optional": false,
        "name": "stats",
        "description": "A path to a stats JSON file. Should match the following pattern\n`{script: string[], css: string[]}`"
      }
    ],
    "type": {
      "types": [
        "Object"
      ],
      "optional": false,
      "name": "rocServerOptions"
    }
  },
  {
    "__docId__": 32,
    "kind": "typedef",
    "static": true,
    "variation": null,
    "name": "rocClientOptions",
    "memberof": "src/typedef/index.js",
    "longname": "src/typedef/index.js~rocClientOptions",
    "access": null,
    "description": "Roc client options.\n\nUsed in {@link createClient}.\n\nFor example of createRoutes see {@link createRoutes}.\n\nFor example of createStore {@link createReduxStore}.\n*",
    "properties": [
      {
        "nullable": false,
        "types": [
          "function"
        ],
        "spread": false,
        "optional": false,
        "name": "createRoutes",
        "description": "A function that will return a valid route object, is given the store instance\nin the case that there is on that can be used."
      },
      {
        "nullable": false,
        "types": [
          "function"
        ],
        "spread": false,
        "optional": true,
        "name": "createStore",
        "description": "A function that return a Redux store instance. The interface for it is:\n`(reduxRouter, createRoutes, history) => reduxStoreInstance`. If it's not defined the application will not use\nRedux."
      },
      {
        "nullable": false,
        "types": [
          "string"
        ],
        "spread": false,
        "optional": false,
        "name": "mountNode",
        "description": "The id for the DOM node to mount the React application inside of."
      }
    ],
    "type": {
      "types": [
        "Object"
      ],
      "optional": false,
      "name": "rocClientOptions"
    }
  },
  {
    "__docId__": 34,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 35,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 36,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 37,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 38,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 39,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 40,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 41,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 42,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 43,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 44,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 45,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 46,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 47,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 48,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 49,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 50,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 51,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 52,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 53,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 54,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 55,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 56,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 57,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 58,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 59,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 60,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 61,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 62,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 63,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 64,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 65,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 66,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 67,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 68,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 69,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 70,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 71,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 72,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 73,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 74,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 75,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 76,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 77,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 78,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 79,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 80,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 82,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 83,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 84,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 85,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 86,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 87,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 88,
    "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": "",
    "builtinExternal": true
  },
  {
    "__docId__": 89,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "AudioContext",
    "externalLink": "https://developer.mozilla.org/en/docs/Web/API/AudioContext",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~AudioContext",
    "access": null,
    "description": "",
    "builtinExternal": true
  }
]