[
  {
    "path": ".changeset/README.md",
    "content": "# Changesets\n\nHello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works\nwith multi-package repos, or single-package repos to help you version and publish your code. You can\nfind the full documentation for it [in our repository](https://github.com/changesets/changesets)\n\nWe have a quick list of common questions to get you started engaging with this project in\n[our documentation](https://github.com/changesets/changesets/blob/master/docs/common-questions.md)\n"
  },
  {
    "path": ".changeset/config.json",
    "content": "{\n    \"$schema\": \"https://unpkg.com/@changesets/config@1.4.0/schema.json\",\n    \"changelog\": \"@changesets/cli/changelog\",\n    \"commit\": false,\n    \"linked\": [],\n    \"access\": \"public\",\n    \"baseBranch\": \"master\",\n    \"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH\": {\n        \"onlyUpdatePeerDependentsWhenOutOfRange\": true\n    },\n    \"updateInternalDependencies\": \"patch\"\n}\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: Npm Package\n\non:\n  push:\n    branches:\n      - master\n\njobs:\n  build:\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        os:\n          - macos-latest\n          - windows-latest\n    steps:\n      - uses: actions/checkout@v2\n        with:\n          fetch-depth: 0\n      - uses: actions/setup-node@v1\n        with:\n          node-version: 12\n          registry-url: https://registry.npmjs.org/\n      # caching\n      - name: Get yarn cache directory path\n        id: yarn-cache-dir-path\n        run: echo \"::set-output name=dir::$(yarn cache dir)\"\n      - uses: actions/cache@v2\n        id: yarn-cache\n        with:\n          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}\n          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}\n          restore-keys: |\n            ${{ runner.os }}-yarn-\n      - uses: actions/cache@v2\n        with:\n          path: ~/.npm\n          key: ${{ runner.os }}-npm-\n          restore-keys: |\n            ${{ runner.os }}-npm-\n      # scripts\n      - run: yarn\n      - run: yarn ultra --rebuild -r --filter '@bundless/*' build\n      - run: yarn test tests && yarn test ./bundless/src\n      - run: git diff\n      # - name: Create Release\n      #   id: changesets\n      #   uses: changesets/action@master\n      # with:\n      #   publish: yarn release\n      # env:\n      #   GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      #   NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\ndist\nesm\n.DS_Store\n*.tsbuildinfo\n.ultra.cache.json\n**/web_modules/deps_hash\n**/web_modules/**/**.js\n**/web_modules/**/**.js.map\nout\ntemp\nfixtures/with-pages/node_dist\n*_out\nwith-pages/web_modules\nwith-pages/out\n*_dist\n_hmr_client.js\n.bundless\nscripts/metafile.json"
  },
  {
    "path": ".prettierrc",
    "content": "{\n    \"arrowParens\": \"always\",\n    \"jsxSingleQuote\": true,\n    \"tabWidth\": 4,\n    \"semi\": false,\n    \"singleQuote\": true,\n    \"trailingComma\": \"all\"\n  }\n  "
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n    \"todo-tree.filtering.excludeGlobs\": [\n        \"**/web_modules/**\",\n        \"**/web_modules/**\",\n        \"**/fixtures/**\"\n    ]\n}\n"
  },
  {
    "path": "README.md",
    "content": "<div align='center'>\n    <br/>\n    <br/>\n    <h3>bundless</h3>\n    <p>Next gen dev server and bundler</p>\n    <p>this project was a Vite alternative with many improvements like plugins, monorepo support, etc, most of them were added back to Vite 2, use Vite instead</p>\n    <br/>\n</div>\n\n# Features\n\n-   10x faster than traditional bundlers\n-   Error panel with sourcemap support\n-   jsx, typescript out of the box\n-   import assets, import css\n\n### What's the difference with traditional tools like Webpack?\n\n-   Faster dev server times and faster build speeds (thanks to [esbuild](https://esbuild.github.io))\n-   Bundless serves native ES modules to the browser, removing the overhead of parsing each module before serving\n-   Bundless uses a superset of [esbuild plugin system](https://esbuild.github.io/plugins/) to let users enrich its capabilities\n\n### What's the difference with tools like vite?\n\nBundless is very similar to vite, both serve native es modules to the browser and build a bundled version for production.\n\nAlso both are based on a plugin system that can be shared between the dev server and the bundler.\n\nSome differences are:\n\n-   Bundless uses the esbuild plugin system instead of rollup\n-   Bundless uses esbuild instead of rollup for the production bundle\n-   Bundless still lacks some features like css modules (depends on [esbuild](https://github.com/evanw/esbuild/issues/20)) and more framework support (coming soon)\n"
  },
  {
    "path": "TODOS.md",
    "content": "-   fix stack trace parsing in client, use https://github.com/marvinhagemeister/errorstacks\n-   make node polyfills an optional plugins list, but include it by default on default config\n-   add support for multiple errors in error panel\n-   check that inline sourcemaps are used by esbuild transformer\n-   add crypto polyfill\n-   when there is an error and using HMR, do not refresh, instead try to run react refresh and see if it works\n-   ~~use data url for loading svgs~~\n-   ~~resolved paths that map from a real file to a fake file won't receive HMR updates because there is no way to resolve them during file change~~\n-   ~~make a config for assetExtensions, to let user import any file and return its path~~\n-   ~~put the onResolve function in the plugins executor, this way it does not depend on the presence of node-resolve plugin~~\n-   ~~replace node-resolve in the traversal with bare imports plugin~~\n-   ~~add a way to order plugins after or before the builtin plugins~~\n-   ~~do not rely on the node resolve package for anything, add an additional plugin and add node-resolve only when in yarn pnp~~\n-   ~~replace external but in meta with a dummy plugin that registers imports~~\n-   ~~do not run esbuild transform if loader is already js~~\n-   ~~run all user plugins first, make react refresh use the js loader as output~~\n-   only use sourcemaps on user packages, npm packages seem to not publish src directory\n-   ~~dynamic imports should not reorder exports, depend on esbuild~~\n-   add warning for multiple node modules paths for same package when this package is peer of something\n-   remove require warnings from paged (only use require when platform is node)\n-   ~~investigate if using new extensions in a plugins require you to add a resolver, maybe add a universal resolver that resolves all extensions (if they are present in the import path)~~\n-   think about core feature for bundless for promotion in twitter (esbuild plugins, benchmarks, ssr, meta framework, build speed, monorepo support, hmr fixes, multiple entrypoints,)\n-   how to make project sustainable? offer migration support for react-scripts and stuff like that?\n-   ~~makes bundless internal stuff paths start with .bundless, makes easier to analyze network requests~~\n-   ~~put everything inside .bundless, make this directory path configurable, this way tools like vitro can use .vitro~~\n-   use basePath to change the index.html page relative urls, this way there is no need to %PUBLIC_URL% need, / -> /base-path/\n-   more tests for hmr, using puppeteer\n-   test sourcemaps are correct, throwing errors and checking the browser error line\n-   test the html entries resolution (public, name.html, html paths in entries, ...)\n-   implement postcss processing to enable sass, tailwind, ...\n"
  },
  {
    "path": "bundless/CHANGELOG.md",
    "content": "# @bundless/cli\n\n## 0.6.0\n\n### Minor Changes\n\n-   Fixed problems with yarn berry and missing prebundled packages, better console messages\n\n## 0.5.1\n\n### Patch Changes\n\n-   Fix dead lock when not passing entries during prebundle\n\n## 0.5.0\n\n### Minor Changes\n\n-   Implemented immutable cache for all files, much faster refresh speed\n\n## 0.4.0\n\n### Minor Changes\n\n-   Cache dependencies, fix NODE_ENV variable always in production when prebundling\n\n## 0.3.0\n\n### Minor Changes\n\n-   Many improvements\n\n## 0.2.6\n\n### Patch Changes\n\n-   Updated esbuild\n\n## 0.2.5\n\n### Patch Changes\n\n-   Added support for importableAssetsExtensions\n\n## 0.2.4\n\n### Patch Changes\n\n-   717a68e: Fix npm release, removed bin\n\n## 0.2.3\n\n### Patch Changes\n\n-   bd7ed34: Added enforce option to plugins\n\n## 0.2.2\n\n### Patch Changes\n\n-   709ef96: Fix define assignments in client template\n\n## 0.2.1\n\n### Patch Changes\n\n-   ca42b40: Fix define runtime error in client code\n\n## 0.2.0\n\n### Minor Changes\n\n-   9a0b4e5: Do not use esbuild when loader is js, inject defines in window\n\n## 0.1.9\n\n### Patch Changes\n\n-   0c5c9b2: Store web_modules inside .bundless\n\n## 0.1.8\n\n### Patch Changes\n\n-   bbbd527: Bump\n\n## 0.1.7\n\n### Patch Changes\n\n-   325516d: rename dotdot encondig to **..**\n-   f7684e8: Added basepath support\n\n## 0.1.6\n\n### Patch Changes\n\n-   3541033: Added includeWorkspacePackages option\n\n## 0.1.5\n\n### Patch Changes\n\n-   2e6022f: Small improvements\n\n## 0.1.4\n\n### Patch Changes\n\n-   9c57b90: Better build logs\n\n## 0.1.3\n\n### Patch Changes\n\n-   1b976b6: Less noise in logs, prebundle at start\n\n## 0.1.2\n\n### Patch Changes\n\n-   410f40a: Better logs on nonResolved\n\n## 0.1.1\n\n### Patch Changes\n\n-   7eaff10: Export babelParserOptions\n\n## 0.1.0\n\n### Minor Changes\n\n-   81c8e26: First release\n"
  },
  {
    "path": "bundless/bin.js",
    "content": "#!/usr/bin/env node\nrequire('./dist/cli')\n"
  },
  {
    "path": "bundless/package.json",
    "content": "{\n    \"name\": \"@bundless/cli\",\n    \"version\": \"0.6.0\",\n    \"description\": \"\",\n    \"main\": \"dist/index.js\",\n    \"module\": \"esm/index.js\",\n    \"types\": \"dist/index.d.ts\",\n    \"repository\": \"https://github.com/remorses/esbuild-plugins.git\",\n    \"scripts\": {\n        \"build\": \"tsc && tsc -m esnext --outDir esm\",\n        \"watch:esm\": \"tsc -w -m esnext --outDir esm\",\n        \"watch:cjs\": \"tsc -w\",\n        \"watch\": \"run-p watch:esm watch:cjs\",\n        \"local\": \"yarn publish --force --registry http://localhost:4873 --access restricted --no-git-tag-version --patch --message 'Local registry publish'\",\n        \"cli\": \"node bin.js\"\n    },\n    \"files\": [\n        \"dist\",\n        \"src\",\n        \"esm\",\n        \"bin.js\"\n    ],\n    \"bin\": {\n        \"bundless\": \"bin.js\"\n    },\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@babel/core\": \"^7.12.10\",\n        \"@types/chokidar\": \"^2.1.3\",\n        \"@types/dotenv\": \"^8.2.0\",\n        \"@types/es-module-lexer\": \"^0.3.0\",\n        \"@types/find-up\": \"^4.0.0\",\n        \"@types/fs-extra\": \"^9.0.5\",\n        \"@types/koa\": \"^2.11.6\",\n        \"@types/koa-send\": \"^4.1.2\",\n        \"@types/node\": \"^14.14.13\",\n        \"@types/prompts\": \"^2.0.9\",\n        \"@types/qs\": \"^6.9.5\",\n        \"@types/ws\": \"^7.4.0\",\n        \"@types/yargs\": \"^15.0.11\",\n        \"npm-run-all\": \"^4.1.5\",\n        \"qs\": \"^6.9.4\"\n    },\n    \"dependencies\": {\n        \"@babel/parser\": \"^7.12.11\",\n        \"@babel/types\": \"^7.12.10\",\n        \"@esbuild-plugins/all\": \"^0.0.27\",\n        \"@koa/cors\": \"^3.1.0\",\n        \"chalk\": \"^4.1.0\",\n        \"chokidar\": \"^3.5.1\",\n        \"deepmerge\": \"^4.2.2\",\n        \"degit\": \"^2.8.0\",\n        \"dotenv\": \"^8.2.0\",\n        \"dotenv-expand\": \"^5.1.0\",\n        \"@esbuild-plugins/node-globals-polyfill\": \"^0.1.0\",\n        \"es-module-lexer\": \"^0.3.26\",\n        \"esbuild\": \"^0.11.3\",\n        \"escape-string-regexp\": \"^4.0.0\",\n        \"find-up\": \"^5.0.0\",\n        \"fromentries\": \"^1.3.2\",\n        \"fs-extra\": \"^9.0.1\",\n        \"get-port-please\": \"^2.1.0\",\n        \"hash-sum\": \"^2.0.0\",\n        \"koa\": \"^2.13.0\",\n        \"koa-etag\": \"^4.0.0\",\n        \"koa-send\": \"^5.0.1\",\n        \"launch-editor\": \"^2.2.1\",\n        \"lodash\": \"^4.17.20\",\n        \"lru-cache\": \"^6.0.0\",\n        \"magic-string\": \"^0.25.7\",\n        \"merge-source-map\": \"^1.1.0\",\n        \"micro-memoize\": \"^4.0.9\",\n        \"mime-types\": \"^2.1.29\",\n        \"ora\": \"^5.2.0\",\n        \"picomatch\": \"^2.2.2\",\n        \"posthtml\": \"^0.15.1\",\n        \"prompts\": \"^2.4.0\",\n        \"qs\": \"^6.9.4\",\n        \"simple-statistics\": \"^7.4.0\",\n        \"slash\": \"^3.0.0\",\n        \"source-map\": \"^0.7.3\",\n        \"source-map-support\": \"^0.5.19\",\n        \"strip-ansi\": \"^6.0.0\",\n        \"tmpfile\": \"^0.2.0\",\n        \"ws\": \"^7.4.1\",\n        \"yargs\": \"^16.2.0\"\n    },\n    \"peerDependencies\": {}\n}\n"
  },
  {
    "path": "bundless/src/build/index.ts",
    "content": "import deepmerge from 'deepmerge'\nimport * as esbuild from 'esbuild'\nimport fromEntries from 'fromentries'\nimport fs from 'fs-extra'\nimport path from 'path'\nimport { Plugin } from '../plugins-executor'\nimport posthtml, { Node } from 'posthtml'\nimport slash from 'slash'\nimport { Config, defaultConfig, getEntries, normalizeConfig } from '../config'\nimport { MAIN_FIELDS } from '../constants'\nimport { Logger } from '../logger'\nimport * as plugins from '../plugins'\nimport { PluginsExecutor } from '../plugins-executor'\nimport {\n    commonEsbuildOptions,\n    generateDefineObject,\n    metafileToBundleMap,\n    metafileToStats,\n    defaultResolvableExtensions,\n} from '../prebundle/esbuild'\nimport { printStats } from '../prebundle/stats'\nimport { isUrl, runFunctionOnPaths, stripColon } from '../prebundle/support'\nimport { metaToTraversalResult } from '../prebundle/traverse'\nimport {\n    cleanUrl,\n    computeDuration,\n    osAgnosticPath,\n    partition,\n    removeLeadingSlash,\n} from '../utils'\n\ninterface OwnArgs {\n    logger?: Logger\n    incremental?: boolean\n}\n\n// how to get entrypoints? to support multi entry i should let the user pass them, for the single entry i can just get public/index.html or index.html\n// TODO add watch feature for build\nexport async function build({\n    logger = new Logger(),\n    incremental,\n    ...config\n}: Config & OwnArgs): Promise<{\n    bundleMap\n    traversalGraph\n    rebuild?: esbuild.BuildInvalidate\n}> {\n    config = normalizeConfig(config)\n\n    const {\n        minify = false,\n        outDir = 'out',\n        jsTarget = 'es2018',\n        basePath = '/',\n    } = config.build || {}\n\n    const startTime = Date.now()\n\n    const { platform = 'browser', root = '' } = config\n    const isBrowser = platform === 'browser'\n    const userPlugins = config.plugins || []\n    await fs.remove(outDir)\n    await fs.ensureDir(outDir)\n    const publicDir = path.resolve(root, 'public')\n    const esbuildCwd = process.cwd()\n    if (fs.existsSync(publicDir)) {\n        await fs.copy(publicDir, outDir)\n    }\n\n    const mainFields = isBrowser ? MAIN_FIELDS : ['main', 'module']\n\n    const initialOptions: esbuild.BuildOptions = {\n        ...commonEsbuildOptions(config),\n        incremental,\n        metafile: true,\n        logLevel: 'warning',\n        bundle: true,\n        platform,\n        target: jsTarget,\n        publicPath: basePath,\n        splitting: isBrowser,\n        // external: externalPackages,\n        minifyIdentifiers: Boolean(minify),\n        minifySyntax: Boolean(minify),\n        minifyWhitespace: Boolean(minify),\n        mainFields,\n        define: {\n            ...generateDefineObject({ config, platform, isProd: true }),\n        },\n\n        // tsconfig: tsconfigTempFile,\n        format: isBrowser ? 'esm' : 'cjs',\n        write: true,\n        outdir: outDir,\n        minify: Boolean(minify),\n    }\n\n    const allPlugins: Plugin[] = [\n        ...userPlugins,\n        plugins.HtmlResolverPlugin(),\n        plugins.HtmlIngestPlugin({\n            root,\n            name: 'html-ingest',\n            transformImportPath: cleanUrl,\n        }),\n        plugins.UrlResolverPlugin(),\n        plugins.NodeResolvePlugin({\n            name: 'node-resolve',\n            onNonResolved: (p) => {\n                // throw new Error(`Cannot resolve '${p}'`)\n            },\n            onResolved: (p) => {\n                if (platform !== 'node') {\n                    return\n                }\n                // needed for linked workspaces\n                // const isOutside = path.relative(root, p).startsWith('..')\n                // TODO should i bundle linked dependencies in ssr build?\n                if (p.endsWith('.js') && p.includes('node_modules')) {\n                    return {\n                        path: p,\n                        external: true,\n                    }\n                }\n            },\n            mainFields,\n            extensions: [\n                ...defaultResolvableExtensions,\n                ...(Object.keys(config.loader || {}) || []),\n            ],\n        }),\n        ...(isBrowser\n            ? [\n                  plugins.NodeModulesPolyfillPlugin(),\n                  plugins.NodeGlobalsPolyfillPlugin({\n                      buffer: true,\n                      process: true,\n                      define: initialOptions.define,\n                  }),\n              ]\n            : []),\n        // html ingest should override other html plugins in build, this is because html is transformed to js\n    ]\n\n    const pluginsExecutor = new PluginsExecutor({\n        plugins: allPlugins,\n        initialOptions,\n        isProfiling: config.printStats,\n        ctx: { config, isBuild: true, root },\n    })\n\n    const initialEntries = await getEntries(pluginsExecutor, config)\n    const entryPoints = await Promise.all(\n        initialEntries.map(async (x) => {\n            const resolved = await pluginsExecutor.resolve({\n                path: x,\n                resolveDir: root,\n            })\n            if (!resolved || !resolved.path) {\n                throw new Error(`Cannot resolve entry ${x} with plugins`)\n            }\n            return resolved.path\n        }),\n    )\n\n    logger.log(\n        `Building with esbuild ${entryPoints\n            .filter((f) => fs.existsSync(f))\n            .map((x) => osAgnosticPath(x, root))\n            .join(', ')}\\n`,\n    )\n\n    let { rebuild, metafile } = await esbuild.build({\n        ...initialOptions,\n        entryPoints,\n        plugins: pluginsExecutor.esbuildPlugins(),\n    })\n\n    let meta: esbuild.Metafile = metafile!\n\n    if (config.printStats && !logger.silent) {\n        console.info(pluginsExecutor.printProfilingResult())\n    }\n\n    logger.debug('finished esbuild build')\n\n    meta = runFunctionOnPaths(meta!, (p) => {\n        p = stripColon(p) // namespace:/path/to/file -> /path/to/file\n        return p\n    })\n\n    const bundleMap = metafileToBundleMap({\n        esbuildCwd,\n        meta,\n        root,\n    })\n\n    const traversalGraph = await metaToTraversalResult({\n        meta,\n        entryPoints,\n        root,\n        esbuildCwd,\n    })\n\n    // no outputs?\n    if (!Object.keys(bundleMap).length) {\n        return {\n            bundleMap,\n            traversalGraph,\n            rebuild: rebuild,\n        }\n    }\n\n    const cssToPreload: Record<string, string[]> = fromEntries(\n        entryPoints.map((x) => osAgnosticPath(x, root)).map((k) => [k, []]),\n    )\n\n    // find all the css files, for every entry file traverse its imports and collect all css files, add the css outputs to cssToInject\n    for (let entry of entryPoints.map((x) => osAgnosticPath(x, root))) {\n        traverseGraphDown({\n            entryPoints: [entry],\n            traversalGraph,\n            onNode(imported) {\n                if (cleanUrl(imported).endsWith('.css')) {\n                    const abs = path.resolve(root, imported)\n                    let output = Object.keys(meta.outputs).find((x) => {\n                        if (!x.endsWith('.css')) {\n                            return\n                        }\n                        const info = meta.outputs[x]\n                        const absInputs = new Set(\n                            Object.keys(info.inputs).map((x) =>\n                                path.resolve(esbuildCwd, x),\n                            ),\n                        )\n                        if (absInputs.has(abs)) {\n                            return true\n                        }\n                    })\n                    if (!output) {\n                        throw new Error(`Cannot find output for '${imported}'`)\n                    }\n                    output = path.resolve(esbuildCwd, output)\n                    cssToPreload[entry].push(output)\n                }\n            },\n        })\n    }\n\n    // TODO remove complete css injection after esbuild has css code splitting via js\n    const cssToInject = Object.keys(meta.outputs).filter((x) =>\n        x.endsWith('.css'),\n    )\n\n    // needed to run the onTransform on html entries\n    const htmlPluginsExecutor = new PluginsExecutor({\n        initialOptions: initialOptions,\n        plugins: [plugins.HtmlResolverPlugin(), ...userPlugins],\n        ctx: pluginsExecutor.ctx,\n    })\n\n    for (let entry of entryPoints) {\n        if (path.extname(entry) === '.html') {\n            const relativePath = osAgnosticPath(entry, root)\n            if (!bundleMap[relativePath]) {\n                throw new Error(\n                    `Cannot find output for '${relativePath}' in ${JSON.stringify(\n                        bundleMap,\n                        null,\n                        4,\n                    )}`,\n                )\n            }\n            let outputJs = path.resolve(root, bundleMap[relativePath]!)\n            // let outputHtmlPath = path.resolve(\n            //     root,\n            //     path.dirname(bundleMap[relativePath]!),\n            //     path.basename(entry),\n            // )\n            // await fs.copyFile(entry, outputHtmlPath)\n            const {\n                contents: html = '',\n            } = await htmlPluginsExecutor.resolveLoadTransform({ path: entry })\n            if (!html) {\n                throw new Error(`Cannot load html for ${entry}`)\n            }\n            const transformer = posthtml(\n                [\n                    (tree) => {\n                        // remove previous script tags\n                        tree.walk((node) => {\n                            if (\n                                node &&\n                                node.tag === 'script' &&\n                                node.attrs &&\n                                node.attrs['type'] === 'module' &&\n                                node.attrs['src'] &&\n                                !isUrl(node.attrs['src'])\n                            ) {\n                                // TODO maybe leave script tags that are not resolved by plugin executor, maybe they are loaded from some cdn or who knows what, resolver should be able to resolve relative urls\n                                node.tag = false as any\n                                node.content = []\n                            }\n                            return node\n                        })\n                        // add new output files back to html\n                        tree.match({ tag: 'body' }, (node) => {\n                            const jsSrc = path.posix.join(\n                                basePath,\n                                slash(path.relative(outDir, outputJs)),\n                            )\n                            node.content = [\n                                MyNode({\n                                    tag: 'script',\n                                    attrs: { type: 'module', src: jsSrc },\n                                }),\n\n                                ...(node.content || []),\n                            ]\n                            return node\n                        })\n\n                        // insert head if missing\n                        if (!/<head\\b/.test(html)) {\n                            if (/<html\\b/.test(html)) {\n                                tree.match({ tag: 'html' }, (html) => {\n                                    html.content = insertAfterStrings(\n                                        html.content,\n                                        MyNode({ tag: 'head', content: [] }),\n                                    )\n                                    return html\n                                })\n                            } else {\n                                if (Array.isArray(tree)) {\n                                    tree = Object.assign(\n                                        tree,\n                                        insertAfterStrings(\n                                            tree,\n                                            MyNode({\n                                                tag: 'head',\n                                                content: [],\n                                            }),\n                                        ),\n                                    )\n                                }\n                            }\n                        }\n\n                        tree.match({ tag: 'head' }, (node) => {\n                            const cssPreloadHrefs =\n                                cssToPreload[osAgnosticPath(entry, root)] || []\n                            node.content = [\n                                // TODO maybe include imported fonts as links?\n                                ...cssPreloadHrefs.map((href) => {\n                                    href = path.posix.join(\n                                        basePath,\n                                        slash(path.relative(outDir, href)),\n                                    )\n\n                                    return MyNode({\n                                        tag: 'link',\n                                        attrs: {\n                                            href,\n                                            rel: 'preload',\n                                            as: 'style',\n                                        },\n                                    })\n                                }),\n                                ...cssToInject.map((href) => {\n                                    href = path.posix.join(\n                                        basePath,\n                                        slash(path.relative(outDir, href)),\n                                    )\n                                    return MyNode({\n                                        tag: 'link',\n                                        attrs: {\n                                            href,\n                                            rel: 'stylesheet',\n                                        },\n                                    })\n                                }),\n                                ...(node.content || []),\n                            ]\n                            return node\n                        })\n                    },\n                    // !minify && beautify({ rules: { indent: 2 } }),\n                ].filter(Boolean),\n            )\n\n            const result = await transformer.process(html).catch((e) => {\n                throw new Error(\n                    `Cannot process html with posthtml: ${e}\\n${html}`,\n                )\n            })\n            let htmlOutputDirname = path.normalize(\n                path.dirname(path.relative(root, entry)),\n            )\n            // remove `public` from entry path\n            if (htmlOutputDirname.startsWith('public')) {\n                htmlOutputDirname = htmlOutputDirname.replace(\n                    /public(\\/|\\\\)?/,\n                    '',\n                )\n            }\n\n            const outputHtmlPath = path.resolve(\n                outDir,\n                htmlOutputDirname,\n                path.basename(entry),\n            )\n            await fs.ensureDir(path.dirname(outputHtmlPath))\n            await fs.writeFile(outputHtmlPath, result.html)\n\n            // emit html to dist directory, in dirname same as the output files corresponding to html entries\n        } else {\n            // if entry is not html, create an html file that imports the js output bundle\n        }\n    }\n\n    logger.log(`Saved files to ./${osAgnosticPath(outDir, process.cwd())}`)\n\n    if (!logger.silent) {\n        console.info(\n            printStats({\n                dependencyStats: metafileToStats({ meta, destLoc: outDir }),\n                destLoc: path.basename(outDir),\n            }),\n        )\n    }\n\n    logger.log(\n        `Built to ${\n            /^\\w/.test(outDir) ? './' + outDir : outDir\n        } in ${computeDuration(startTime)}`,\n    )\n\n    return {\n        bundleMap,\n        // TODO rebuild should also trigger index.html rewrite, wrap rebuild function\n        rebuild,\n        traversalGraph,\n    }\n}\n\nfunction insertAfterStrings(items, node) {\n    const [strings, nonStrings] = partition(items, (x) => typeof x === 'string')\n    return [...strings, node, ...nonStrings]\n}\n\nfunction MyNode(x: Partial<Node>): Node {\n    return x as any\n}\n\nfunction traverseGraphDown(args: {\n    traversalGraph: Record<string, string[]>\n    entryPoints: string[]\n    onNode\n}) {\n    const { entryPoints, traversalGraph, onNode } = args\n    const toVisit: string[] = entryPoints\n    const visited = new Set<string>()\n    while (toVisit.length) {\n        const entry = toVisit.shift()\n        if (!entry || visited.has(entry)) {\n            break\n        }\n        visited.add(entry)\n        const imports = traversalGraph[entry]\n        if (!imports) {\n            throw new Error(\n                `Node for '${entry}' not found in graph: ${JSON.stringify(\n                    JSON.stringify(Object.keys(traversalGraph), null, 4),\n                )}`,\n            )\n        }\n        if (onNode) {\n            onNode(entry)\n        }\n        toVisit.push(...imports)\n    }\n}\n"
  },
  {
    "path": "bundless/src/cli.ts",
    "content": "#!/usr/bin/env node\nrequire('source-map-support').install()\nif (process.argv.includes('--debug')) {\n    process.env.DEBUG_BUNDLESS = 'true'\n}\n\nimport degit from 'degit'\nimport prompts from 'prompts'\nimport deepMerge from 'deepmerge'\nimport yargs, { CommandModule } from 'yargs'\nimport { build } from './build'\nimport { Config, loadConfig } from './config'\nimport { CONFIG_NAME, EXAMPLES_FOLDERS } from './constants'\nimport { serve } from './serve'\nimport { logger } from './logger'\nimport path from 'path'\n\nconst serveCommand: CommandModule = {\n    command: ['dev', 'serve', '*'],\n    builder: (argv) => {\n        argv.option('port', {\n            alias: 'p',\n            type: 'number',\n            description: 'The port for the dev server',\n        })\n        argv.option('force', {\n            alias: 'f',\n            type: 'boolean',\n            description:\n                'Force prebundling even if dependencies did not change',\n        })\n        return argv\n    },\n    handler: prettyPrintErrors(async (argv: any) => {\n        const loadedConfig = loadConfig(process.cwd(), argv.config)\n        const configFromArgv: Config = {\n            prebundle: { force: argv.force },\n            server: {\n                port: argv.port,\n            },\n            printStats: argv.stats,\n        }\n        let config: Config = deepMerge(loadedConfig, configFromArgv)\n        return await serve(config)\n    }),\n}\n\nconst buildCommand: CommandModule = {\n    command: ['build'],\n    builder: (argv) => {\n        argv.option('outDir', {\n            alias: 'o',\n            type: 'string',\n            description: 'The output directory',\n        })\n\n        return argv\n    },\n    handler: prettyPrintErrors(async (argv: any) => {\n        let config = loadConfig(process.cwd(), argv.config)\n        const configFromArgv: Config = {\n            build: {\n                outDir: argv.outDir,\n            },\n            printStats: argv.stats,\n        }\n        config = deepMerge(config, configFromArgv)\n        return await build({\n            ...config,\n        })\n    }),\n}\n\nconst quickstartCommand: CommandModule = {\n    command: ['quickstart <outDir>'],\n    builder: (argv) => {\n        argv.positional('outDir', { type: 'string' })\n        return argv\n    },\n    handler: prettyPrintErrors(async (argv: any) => {\n        const exampleDir = await prompts({\n            type: 'select',\n            name: 'value',\n            message: 'What example do you want to use?',\n            choices: EXAMPLES_FOLDERS.map(\n                (message: string): prompts.Choice => ({\n                    title: message,\n                    value: message,\n                }),\n            ),\n        })\n        if (!exampleDir.value) {\n            logger.log(`Nothing done`)\n            return\n        }\n        logger.log(`Downloading ${exampleDir.value} example to ${argv.outDir}`)\n        const emitter = degit(\n            path.posix.join('remorses/bundless/examples', exampleDir.value),\n            {\n                verbose: true,\n            },\n        )\n\n        emitter.on('info', (info) => {\n            logger.debug(info.message)\n        })\n\n        await emitter.clone(argv.outDir)\n        logger.log(`Downloaded example to ./${path.normalize(argv.outDir)}`)\n    }),\n}\n\nyargs\n    .scriptName('bundless')\n    .locale('en')\n    .option('config', {\n        alias: 'c',\n        type: 'string',\n        default: CONFIG_NAME,\n        description: `The config path to use`,\n    })\n    .option('debug', {\n        type: 'boolean',\n        description: `Enables debug logging`,\n    })\n    .option('stats', {\n        type: 'boolean',\n        description: 'Show profiling stats',\n    })\n    .command(serveCommand)\n    .command(buildCommand)\n    .command(quickstartCommand)\n    .version()\n    .help('help', 'h').argv\n\nfunction prettyPrintErrors(fn) {\n    return async (...args) => {\n        try {\n            return await fn(...args)\n        } catch (e) {\n            logger.error(e.message)\n            logger.error(e.stack)\n        }\n    }\n}\n"
  },
  {
    "path": "bundless/src/client/template.ts",
    "content": "// This file runs in the browser.\n\n// injected by serverPluginClient when served\ndeclare const sourceMapSupport: any\ndeclare const __HMR_PROTOCOL__: string\ndeclare const __HMR_HOSTNAME__: string\ndeclare const __HMR_PORT__: string\ndeclare const __HMR_TIMEOUT__: number\n\ndeclare const __HMR_ENABLE_OVERLAY__: boolean\ndeclare const __DEFINES__: Record<string, any>\n\nconst defines = __DEFINES__\nObject.keys(defines).forEach((key) => {\n    const segs = key.split('.')\n    let target = window as any\n    for (let i = 0; i < segs.length; i++) {\n        const seg = segs[i]\n        if (i === segs.length - 1) {\n            target[seg] = defines[key]\n        } else {\n            target = target[seg] || (target[seg] = {})\n        }\n    }\n})\n\nimport {\n    OverlayErrorPayload,\n    HMRPayload,\n    UpdatePayload,\n    OverlayInfoOpenPayload,\n} from './types'\n\n// use server configuration, then fallback to inference\nconst socketProtocol =\n    __HMR_PROTOCOL__ || (location.protocol === 'https:' ? 'wss' : 'ws')\nconst socketHost = `${__HMR_HOSTNAME__ || location.hostname}:${__HMR_PORT__}`\nconst socketURL = `${socketProtocol}://${socketHost}`\n\nconst isWindowDefined = typeof window !== 'undefined'\n\nfunction log(...args) {\n    console.info('[ESM-HMR]', ...args)\n}\n\nfunction reload() {\n    if (!isWindowDefined) {\n        return\n    }\n    location.reload(true)\n}\n\nlet SOCKET_MESSAGE_QUEUE: HMRPayload[] = []\nlet connected = false\nfunction _sendSocketMessage(msg) {\n    socket.send(JSON.stringify(msg))\n}\nfunction sendSocketMessage(msg: HMRPayload) {\n    if (!connected) {\n        SOCKET_MESSAGE_QUEUE.push(msg)\n    } else {\n        _sendSocketMessage(msg)\n    }\n}\n\nconst socket = new WebSocket(socketURL, 'esm-hmr')\n\nconst REGISTERED_MODULES: { [path: string]: HotModuleState } = {}\nclass HotModuleState {\n    data = {}\n    isLocked = false\n    isDeclined = false\n    isAccepted = false\n    acceptCallbacks: { deps: string[]; callback: Function }[] = []\n    disposeCallbacks: Function[] = []\n    path = ''\n    constructor(path) {\n        this.path = path\n    }\n    lock() {\n        this.isLocked = true\n    }\n    dispose(callback) {\n        this.disposeCallbacks.push(callback)\n    }\n    invalidate() {\n        reload()\n    }\n    decline() {\n        this.isDeclined = true\n    }\n    accept(_deps, callback: Function | true = true) {\n        if (this.isLocked) {\n            return\n        }\n        if (!this.isAccepted) {\n            sendSocketMessage({ path: this.path, type: 'hotAccept' })\n            this.isAccepted = true\n        }\n        if (!Array.isArray(_deps)) {\n            callback = _deps || callback\n            _deps = []\n        }\n        if (callback === true) {\n            callback = () => {}\n        }\n        const deps = _deps.map((dep) => {\n            return new URL(dep, `${window.location.origin}${this.path}`)\n                .pathname\n        })\n        this.acceptCallbacks.push({\n            deps,\n            callback,\n        })\n    }\n}\nexport function createHotContext(fullUrl) {\n    const id = new URL(fullUrl).pathname\n    const existing = REGISTERED_MODULES[id]\n    if (existing) {\n        existing.lock()\n        runModuleDispose(id)\n        return existing\n    }\n    const state = new HotModuleState(id)\n    REGISTERED_MODULES[id] = state\n    return state\n}\n\n/** Called when a new module is loaded, to pass the updated module to the \"active\" module */\n// uses the graph lastUsedTimestamp to make the new timestamp to fetch, pass this in the hmr message?\nasync function runModuleAccept({ path, namespace, updateID }: UpdatePayload) {\n    const state = REGISTERED_MODULES[path]\n    if (!state) {\n        log(`${path} has not been registered, reloading`)\n        log(Object.keys(REGISTERED_MODULES))\n        return false\n    }\n    if (state.isDeclined) {\n        log(`${path} has declined HMR, reloading`)\n        return false\n    }\n    const acceptCallbacks = state.acceptCallbacks\n\n    for (const { deps, callback: acceptCallback } of acceptCallbacks) {\n        const encodedNamespace = encodeURIComponent(namespace || 'file')\n        const [module, ...depModules] = await Promise.all([\n            import(\n                appendQuery(path, `namespace=${encodedNamespace}&t=${updateID}`)\n            ),\n            ...deps.map(\n                (d) => import(appendQuery(d, `t=${Date.now()}&namespace=file`)),\n            ), // TODO deps should have the namespace and their update ids too, how?\n        ])\n        acceptCallback({ module, deps: depModules })\n    }\n    return true\n}\n\n/** Called when a new module is loaded, to run cleanup on the old module (if needed) */\nasync function runModuleDispose(id) {\n    const state = REGISTERED_MODULES[id]\n    if (!state) {\n        return false\n    }\n    if (state.isDeclined) {\n        return false\n    }\n    const disposeCallbacks = state.disposeCallbacks\n    state.disposeCallbacks = []\n    state.data = {}\n    disposeCallbacks.map((callback) => callback())\n    return true\n}\n\nfunction getErrorMessageMappedSource(message) {\n    if (typeof sourceMapSupport !== 'undefined') {\n        return (\n            sourceMapSupport.getErrorSource({\n                message,\n                name: '',\n                stack: '',\n            }) || message\n        )\n    }\n    return message\n}\nfunction getErrorStackMappedSource(stack) {\n    if (typeof sourceMapSupport !== 'undefined') {\n        return (\n            sourceMapSupport\n                .getErrorSource({\n                    stack,\n                    message: '',\n                    name: '',\n                })\n                ?.trim?.() || stack\n        )\n    }\n    return stack\n}\n\nsocket.addEventListener('message', ({ data: _data }) => {\n    if (!_data) {\n        return\n    }\n    const data: HMRPayload = JSON.parse(_data)\n    if (data.type === 'connected') {\n        connected = true\n        SOCKET_MESSAGE_QUEUE.forEach(_sendSocketMessage)\n        SOCKET_MESSAGE_QUEUE = []\n        setInterval(() => {\n            try {\n                socket.send(JSON.stringify({ type: 'ping' }))\n            } catch {}\n        }, __HMR_TIMEOUT__)\n        return\n    }\n    if (data.type === 'reload') {\n        log('message: reload')\n        reload()\n        return\n    }\n    if (data.type === 'overlay-error') {\n        log('message: error')\n        InfoOverlay.clear()\n        ErrorOverlay.show(data.err)\n        return\n    }\n    if (data.type === 'overlay-info-open') {\n        log('message: info open')\n        ErrorOverlay.clear()\n        InfoOverlay.show({ ...data.info, stack: '' })\n        return\n    }\n    if (data.type === 'overlay-info-close') {\n        log('message: info close')\n        InfoOverlay.clear()\n        return\n    }\n    if (data.type === 'update') {\n        if (ErrorOverlay.isOpen()) {\n            log(`error overlay is open: reloading`)\n            return reload()\n        }\n        log('message: update', data)\n        runModuleAccept(data)\n            .then((ok) => {\n                if (ok) {\n                    ErrorOverlay.clear()\n                    InfoOverlay.clear()\n                } else {\n                    reload()\n                }\n            })\n            .catch((err) => {\n                console.error('[ESM-HMR] Hot Update Error', err)\n                // A failed import gives a TypeError, but invalid ESM imports/exports give a SyntaxError.\n                // Failed build results already get reported via a better WebSocket update.\n                // We only want to report invalid code like a bad import that doesn't exist.\n                if (err instanceof SyntaxError) {\n                    ErrorOverlay.show({\n                        message: `Hot Update Error for ${data.path}: ${err.message}`,\n                        stack: err.stack || '',\n                    })\n                }\n            })\n        return\n    }\n    log('message: unknown', data)\n})\nlog('listening for file changes...')\n\n/** Runtime error reporting: If a runtime error occurs, show it in an overlay. */\nif (isWindowDefined) {\n    window.addEventListener('error', function (event) {\n        const err: OverlayErrorPayload['err'] = {\n            message: `${event.message}`,\n            stack: event.error ? event.error.stack : '',\n        }\n        ErrorOverlay.show(err)\n    })\n}\n\nconst enableOverlay = __HMR_ENABLE_OVERLAY__\n\nfunction appendQuery(url: string, query: string) {\n    if (query.startsWith('?')) {\n        query = query.slice(1)\n    }\n    if (url.includes('?')) {\n        return url + query\n    }\n    return `${url}?${query}`\n}\n\nconst template = ({ mainColor, tip = '' }) => /*html*/ `\n<style>\n:host {\n  position: fixed;\n  z-index: 1000001;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  overflow-y: scroll;\n  margin: 0;\n  background: rgba(0, 0, 0, 0.66);\n  --monospace: 'SFMono-Regular', Consolas,\n              'Liberation Mono', Menlo, Courier, monospace;\n  --red: #ff5555;\n  --yellow: #e2aa53;\n  --purple: #cfa4ff;\n  --cyan: #2dd9da;\n  --dim: #c9c9c9;\n}\n\n.window {\n  font-family: var(--monospace);\n  line-height: 1.5;\n  width: 800px;\n  color: #d8d8d8;\n  margin: 30px auto;\n  padding: 25px 40px;\n  position: relative;\n  background: #000;\n  border-radius: 6px 6px 8px 8px;\n  box-shadow: 0 19px 38px rgba(0,0,20,0.01), 0 15px 12px rgba(0,0,20,0.1);\n  overflow: hidden;\n  border-top: 8px solid var(${mainColor});\n  min-height: 200px;\n}\n\npre {\n  font-family: var(--monospace);\n  font-size: 16px;\n  margin-top: 0;\n  margin-bottom: 1em;\n  overflow-x: scroll;\n  scrollbar-width: none;\n}\n\npre::-webkit-scrollbar {\n  display: none;\n}\n\n.message {\n  line-height: 1.3;\n  font-weight: 600;\n  white-space: pre-wrap;\n}\n\n.message-body {\n  color: var(${mainColor});\n}\n\n.plugin {\n  color: var(--purple);\n}\n\n.file {\n  color: var(--cyan);\n  margin-bottom: 0;\n  white-space: pre-wrap;\n  word-break: break-all;\n}\n\n.frame {\n  color: var(--yellow);\n}\n\n.stack {\n  font-size: 13px;\n  color: var(--dim);\n}\n\n.tip {\n  font-size: 13px;\n  color: #999;\n  border-top: 1px dotted #999;\n  padding-top: 13px;\n}\n\ncode {\n  font-size: 13px;\n  font-family: var(--monospace);\n  color: var(--yellow);\n}\n\n.file-link {\n  text-decoration: underline;\n  cursor: pointer;\n}\n</style>\n<div class=\"window\">\n  <pre class=\"message\">\n    <span class=\"plugin\"></span><span class=\"message-body\"></span>\n  </pre>\n  <pre class=\"file\"></pre>\n  <pre class=\"frame\"></pre>\n  <pre class=\"stack\"></pre>\n  ${\n      tip &&\n      `<div class=\"tip\">\n        ${tip}\n        </div>\n  `\n  }\n</div>\n`\n\nclass CommonOverlay extends HTMLElement {\n    root?: ShadowRoot\n    static overlayId: string = 'overlay'\n\n    static isOpen() {\n        const elements = document.querySelectorAll(this.overlayId)\n        return elements.length > 0\n    }\n\n    static show(arg) {\n        if (!enableOverlay) return\n        this.clear()\n\n        // @ts-ignore\n        const instance = new this(arg)\n        document.body.appendChild(instance)\n    }\n\n    static clear() {\n        document\n            .querySelectorAll(this.overlayId)\n            .forEach((n) => (n as ErrorOverlay).close())\n    }\n\n    close() {\n        this.parentNode?.removeChild(this)\n    }\n\n    displayText(selector: string, text: string, linkFiles = false) {\n        const el = this.root!.querySelector(selector)!\n        if (!linkFiles) {\n            el.textContent = text\n        } else {\n            // TODO also match normal file paths\n            const matches = getAllMatches(text, /(https?:\\/\\/.*)/g)\n            for (let { frag, matched } of matches) {\n                el.appendChild(document.createTextNode(frag))\n                const link = document.createElement('a')\n                link.textContent = matched\n                link.className = 'file-link'\n                const isUrl = /https?:\\/\\//.test(matched)\n                let path = isUrl ? new URL(matched).pathname : matched\n                const fileLocationRegex = /(:\\d+:\\d+)$/\n                if (!fileLocationRegex.test(path)) {\n                    const lineNumAndCol =\n                        fileLocationRegex.exec(matched)?.[1] || ''\n                    path += lineNumAndCol\n                }\n                link.onclick = () => {\n                    console.info(`Opening ${path} in editor`)\n                    fetch('/__open-in-editor?file=' + encodeURIComponent(path))\n                }\n                el.appendChild(link)\n            }\n        }\n    }\n}\n\nfunction getAllMatches(text: string, regex: RegExp) {\n    let curIndex = 0\n    let match\n    const matches: { frag: string; matched: string }[] = []\n    while ((match = regex.exec(text))) {\n        let { 0: matched, index } = match\n        matched = matched.trim()\n        if (index != null) {\n            const frag = text.slice(curIndex, index)\n            matches.push({ frag, matched })\n            curIndex += frag.length + matched.length\n        }\n    }\n    return matches\n}\n\nexport class ErrorOverlay extends CommonOverlay {\n    root: ShadowRoot\n\n    static overlayId = 'bundless-error-overlay'\n\n    constructor(err: OverlayErrorPayload['err']) {\n        console.log({ err })\n        super()\n        this.root = this.attachShadow({ mode: 'open' })\n        this.root.innerHTML = template({\n            mainColor: '--red',\n            tip: `Click outside or fix the code to dismiss.<br>`,\n        })\n\n        if (err.plugin) {\n            this.displayText('.plugin', `[plugin:${err.plugin}] `)\n        }\n        const message = getErrorMessageMappedSource(err.message)\n        this.displayText('.message-body', message.trim())\n\n        const stack = getErrorStackMappedSource(err.stack)\n        this.displayText('.stack', stack.trim(), true)\n\n        this.root.querySelector('.window')!.addEventListener('click', (e) => {\n            e.stopPropagation()\n        })\n        this.addEventListener('click', () => {\n            this.close()\n        })\n    }\n}\n\ncustomElements.define(ErrorOverlay.overlayId, ErrorOverlay)\n\nexport class InfoOverlay extends CommonOverlay {\n    root: ShadowRoot\n\n    static overlayId = 'bundless-info-overlay'\n\n    constructor(info: OverlayInfoOpenPayload['info']) {\n        super()\n        this.root = this.attachShadow({ mode: 'open' })\n        this.root.innerHTML = template({ mainColor: '--cyan' })\n\n        this.displayText('.message-body', info.message.trim())\n\n        this.root.querySelector('.window')!.addEventListener('click', (e) => {\n            e.stopPropagation()\n        })\n        // this.addEventListener('click', () => {\n        //     this.close()\n        // })\n    }\n}\ncustomElements.define(InfoOverlay.overlayId, InfoOverlay)\n\n// InfoOverlay.show({ message: 'Prebundling modules' })\n"
  },
  {
    "path": "bundless/src/client/types.ts",
    "content": "export type HMRPayload =\n    | ConnectedPayload\n    | UpdatePayload\n    | FullReloadPayload\n    | OverlayErrorPayload\n    | OverlayInfoOpenPayload\n    | OverlayInfoClosePayload\n    | HotAcceptPayload\n    | ConnectPayload\n\ninterface ConnectedPayload {\n    type: 'connected'\n}\n\nexport interface UpdatePayload {\n    type: 'update'\n    path: string\n    updateID: string\n    namespace: string\n    // changeSrcPath: string\n    // timestamp: number\n}\n\ninterface FullReloadPayload {\n    type: 'reload'\n}\n\ninterface HotAcceptPayload {\n    type: 'hotAccept'\n    path: string\n}\n\ninterface ConnectPayload {\n    type: 'connected'\n}\n\nexport interface OverlayErrorPayload {\n    type: 'overlay-error'\n    err: {\n        // [name: string]: any\n        message: string\n        stack: string\n        id?: string\n        frame?: string\n        plugin?: string\n        pluginCode?: string\n    }\n}\n\nexport interface OverlayInfoOpenPayload {\n    type: 'overlay-info-open'\n    info: {\n        [name: string]: any\n        message: string\n        showSpinner?: boolean\n    }\n}\n\nexport interface OverlayInfoClosePayload {\n    type: 'overlay-info-close'\n}\n"
  },
  {
    "path": "bundless/src/config.ts",
    "content": "import { CONFIG_NAME, DEFAULT_PORT } from './constants'\nimport findUp from 'find-up'\nimport fs from 'fs'\nimport { Plugin, PluginsExecutor } from './plugins-executor'\nimport path from 'path'\nimport * as esbuild from 'esbuild'\nimport deepmerge from 'deepmerge'\n\nexport async function getEntries(\n    pluginsExecutor: PluginsExecutor,\n    config: Config,\n) {\n    const root = pluginsExecutor.ctx.root\n    if (config.entries) {\n        // for (let entry of config.entries) {\n        //     if (config.platform === 'browser' && !entry.endsWith('.html')) {\n        //         throw new Error(\n        //             `When targeting browser config.entries can only contain html files: ${entry}`,\n        //         )\n        //     }\n        // }\n        return (\n            await Promise.all(\n                config.entries.map((x) =>\n                    pluginsExecutor\n                        .resolve({\n                            path: x,\n                            resolveDir: config.root,\n                            skipOnResolved: true,\n                        })\n                        .then((x) => x?.path || ''),\n                ),\n            )\n        )\n            .filter(Boolean)\n            .map((x) => path.resolve(root, x))\n    }\n\n    // public folder logic is already in the html resolver plugin\n    const index1 = await pluginsExecutor.resolve({\n        path: 'index.html',\n        skipOnResolved: true,\n        resolveDir: config.root,\n    })\n    if (index1?.path) {\n        return [path.resolve(root, index1.path)]\n    }\n\n    throw new Error(\n        `Cannot find entries, neither config.entries, index.html or public/index.html files are present\\n${JSON.stringify(\n            config,\n            null,\n            4,\n        )}`,\n    )\n}\n\nexport type Platform = 'node' | 'browser'\n\nexport function normalizeConfig(config: Config) {\n    config = deepmerge(defaultConfig, config)\n    config.plugins = (config.plugins || [])\n        .filter(Boolean)\n        .map((x) => ({ ...x, enforce: x.enforce || 'pre' }))\n    return config\n}\n\n// TODO add config.mainFields\n// TODO add config.build.chunkNames, assetNames, entryNames\n// TODO add config.inject\n// TODO add config.watch\n// TODO add config.resolveExtensions\n// TODO add config.jsxFactory, jsxFragment\n\nexport interface Config {\n    server?: ServerConfig\n    define?: Record<string, string>\n    prebundle?: PrebundlingConfig\n    build?: BuildConfig\n    printStats?: boolean\n    platform?: Platform\n    root?: string\n    // env?: Record<string, string>\n    entries?: string[]\n    plugins?: Plugin[]\n    // TODO rename to loader to stay closer to esbuild\n    loader?: Record<string, esbuild.Loader> // TODO support more than file\n    jsx?:\n        | 'vue'\n        | 'preact'\n        | 'react'\n        | {\n              factory?: string\n              fragment?: string\n          }\n}\n\nexport interface PrebundlingConfig {\n    force?: boolean\n    includeWorkspacePackages?: string[] | boolean // TODO if bundless is called on root this won't work (example is vitro), every path won't ever be outside root\n}\n\nexport interface ServerConfig {\n    openBrowser?: boolean\n    cors?: boolean\n    port?: number | string\n    hmr?: HmrConfig | boolean\n}\n\nexport const defaultConfig: Config = {\n    // entries: ['index.html'], // entry files\n    server: {\n        port: 3000,\n        hmr: true,\n        openBrowser: false, // opens browser on server start\n    },\n    prebundle: {\n        includeWorkspacePackages: false, // linked packages to prebundle\n        force: false, // forces prebundling dependencies on server start\n    },\n    build: {\n        basePath: '/',\n        jsTarget: 'es2018', // target es version\n        minify: true, // run esbuild minification\n        outDir: './out', // output directory\n    },\n    platform: 'browser', // target platform, browser or node\n    loader: {}, // extension that return their path when imported\n    jsx: 'react', // jsx preset\n    plugins: [],\n    define: {},\n}\n\nexport function loadConfig(from: string, name = CONFIG_NAME): Config {\n    const configPath = findUp.sync(name, { cwd: from })\n    let config: Config = {}\n    if (configPath) {\n        config = require(configPath)\n    }\n    if (!config.root) {\n        config = { ...config, root: process.cwd() }\n    }\n    return config\n}\n\nexport interface HmrConfig {\n    protocol?: string\n    hostname?: string\n    port?: number\n    path?: string\n    /**\n     * If you are using hmr ws proxy, it maybe timeout with your proxy program.\n     * You can set this option to let client send ping socket to keep connection alive.\n     * The option use `millisecond` as unit.\n     * @default 30000ms\n     */\n    timeout?: number\n}\n\nexport interface BuildConfig {\n    basePath?: string\n    outDir?: string\n    minify?: boolean\n    jsTarget?: string\n}\n"
  },
  {
    "path": "bundless/src/constants.ts",
    "content": "import { logger } from './logger'\nimport * as esbuild from 'esbuild'\n\nexport let isRunningWithYarnPnp: boolean = false\nexport let pnpapi: any\ntry {\n    pnpapi = require('pnpapi')\n    isRunningWithYarnPnp = Boolean(pnpapi)\n\n    logger.debug('Using Yarn PnP')\n} catch {}\n\nexport const hmrClientNamespace = 'hmr-client'\nexport const DEFAULT_PORT = 3000\nexport const CLIENT_PUBLIC_PATH = `/_hmr_client.js?namespace=${hmrClientNamespace}`\nexport const COMMONJS_ANALYSIS_PATH = '.bundless/commonjs.json'\nexport const WEB_MODULES_PATH = '.bundless/node_modules'\n\nexport const BUNDLE_MAP_PATH = '.bundless/bundleMap.json'\nexport const HMR_SERVER_NAME = 'esm-hmr'\nexport const CONFIG_NAME = 'bundless.config.js'\n\nexport const EXAMPLES_FOLDERS = [\n    'react-typescript',\n    'react-javascript',\n    'vanilla-javascript',\n    'svelte',\n]\n\nexport const MAIN_FIELDS = ['browser:module', 'browser', 'module', 'main']\n\nexport const showGraph = process.env.SHOW_HMR_GRAPH\n\nexport const JS_EXTENSIONS = ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.cjs']\n\nexport const defaultLoader: Record<string, esbuild.Loader> = {\n    '.jpg': 'file',\n    '.jpeg': 'file',\n    '.png': 'file',\n    '.svg': 'dataurl',\n    '.gif': 'file',\n    '.ico': 'file',\n    '.webp': 'file',\n    '.jp2': 'file',\n    '.avif': 'file',\n    '.woff': 'file',\n    '.woff2': 'file',\n    '.ttf': 'file',\n}\nexport const defaultImportableAssets = Object.keys(defaultLoader)\n\nexport const hmrPreamble = `import * as  __HMR__ from '${CLIENT_PUBLIC_PATH}'; import.meta.hot = __HMR__.createHotContext(import.meta.url); `\n"
  },
  {
    "path": "bundless/src/hmr-graph.ts",
    "content": "import path from 'path'\nimport WebSocket from 'ws'\nimport net from 'net'\nimport crypto from 'crypto'\nimport chalk from 'chalk'\nimport { osAgnosticPath } from './utils'\nimport { fileToImportPath, importPathToFile } from './utils'\nimport { HMRPayload } from './client/types'\nimport { logger } from './logger'\nimport { HMR_SERVER_NAME } from './constants'\nimport slash from 'slash'\nimport { PluginsExecutor } from './plugins-executor'\n\n// examples are ./main.js and ../folder/main.js\ntype OsAgnosticPath = string\n\n// examples are /path/file.js or /__..__/file.js\ntype ImportPath = string\nexport interface HmrNode {\n    hash: string\n    importers(): Set<OsAgnosticPath> // returns osAgnosticPaths\n    importees: Set<ImportPath>\n    dirtyImportersCount: number // modules that have imported this and have been updated\n    lastUsedTimestamp: number\n    isHmrEnabled?: boolean\n    hasHmrAccept?: boolean\n    computedModules?: Set<OsAgnosticPath>\n}\n\nexport class HmrGraph {\n    // keys are always os agnostic paths and not public paths\n    nodes: { [osAgnosticPath: string]: HmrNode } = {}\n    root\n    wss: WebSocket.Server\n    server: net.Server\n    realToFake: Record<string, Set<string>>\n\n    constructor({ root, server }: { root: string; server: net.Server }) {\n        this.realToFake = {}\n        this.nodes = {}\n        this.root = root\n        this.server = server\n\n        const wss = new WebSocket.Server({ noServer: true })\n        this.wss = wss\n        server.once('close', () => {\n            wss.close(() => logger.debug('closing wss'))\n            wss.clients.forEach((client) => {\n                client.close()\n            })\n        })\n        server.on('upgrade', (req, socket, head) => {\n            if (req.headers['sec-websocket-protocol'] === HMR_SERVER_NAME) {\n                wss.handleUpgrade(req, socket, head, (ws) => {\n                    wss.emit('connection', ws, req)\n                })\n            }\n        })\n\n        wss.on('connection', (socket) => {\n            socket.send(JSON.stringify({ type: 'connected' }))\n            socket.on('message', (data) => {\n                const message: HMRPayload = JSON.parse(data.toString())\n                if (message.type === 'hotAccept') {\n                    this.ensureEntry(importPathToFile(root, message.path), {\n                        hasHmrAccept: true,\n                        isHmrEnabled: true,\n                    })\n                }\n            })\n        })\n\n        wss.on('error', (e: Error & { code: string }) => {\n            if (e.code !== 'EADDRINUSE') {\n                console.error(chalk.red(`WebSocket server error:`))\n                console.error(e)\n            }\n        })\n    }\n\n    sendHmrMessage(payload: HMRPayload) {\n        if (!this.wss) {\n            throw new Error(`HMR Websocket server has not started yet`)\n        }\n        const stringified = JSON.stringify(payload, null, 4)\n        logger.debug(`hmr: ${stringified}`)\n        if (!this.wss.clients.size) {\n            logger.debug(`No clients listening for HMR message`)\n        }\n        let clientIndex = 1\n        for (let client of this.wss.clients.values()) {\n            if (client.readyState === WebSocket.OPEN) {\n                client.send(stringified)\n            } else {\n                logger.log(\n                    chalk.red(\n                        `Cannot send HMR message, hmr client ${clientIndex} is not open`,\n                    ),\n                )\n            }\n            clientIndex += 1\n        }\n    }\n\n    ensureEntry(path: string, newNode?: Partial<HmrNode>): HmrNode {\n        path = osAgnosticPath(path, this.root)\n        if (this.nodes[path]) {\n            Object.assign(this.nodes[path], newNode || {})\n            return this.nodes[path]\n        }\n\n        this.nodes[path] = {\n            hash:\n                process.env.BUNDLESS_CONSISTENT_HMR_GRAPH_HASH != null\n                    ? process.env.BUNDLESS_CONSISTENT_HMR_GRAPH_HASH\n                    : crypto.randomBytes(4).toString('hex'),\n            dirtyImportersCount: 0,\n            lastUsedTimestamp: 0,\n            hasHmrAccept: false,\n            isHmrEnabled: false,\n            importees: new Set(),\n            ...newNode,\n            importers: () => {\n                const importPath = fileToImportPath(this.root, path)\n                return new Set(\n                    Object.entries(this.nodes)\n                        .filter(([_, v]) => {\n                            return v.importees?.has(importPath)\n                        })\n                        .map(([k, _]) => k),\n                )\n            },\n        }\n        return this.nodes[path]\n    }\n    toString() {\n        const content = Object.keys(this.nodes)\n            .map((k) => {\n                const node = this.nodes[k]\n                let key = slash(path.relative(process.cwd(), k))\n\n                if (node.hasHmrAccept) {\n                    key = chalk.redBright(chalk.underline(key))\n                } else if (node.isHmrEnabled) {\n                    key = chalk.yellow(chalk.underline(key))\n                }\n\n                key += ' ' + chalk.cyan(node.dirtyImportersCount)\n                return `    ${key} -> ${JSON.stringify(\n                    [...node.importees],\n                    null,\n                    4,\n                )\n                    .split('\\n')\n                    .map((x) => '    ' + x)\n                    .join('\\n')\n                    .trim()}`\n            })\n            .join('\\n')\n        const legend =\n            `\\nLegend:\\n` +\n            // `${'[ ]'} has no HMR\\n` +\n            `${chalk.redBright('[ ]')} accepts HMR\\n` +\n            `${chalk.yellow('[ ]')} HMR enabled\\n\\n`\n        return legend + `ImportGraph {\\n${content}\\n}\\n`\n    }\n\n    // TODO maybe rewrite should happen before to prune the graph from removed imports? in case old imports remain in the graph what could happen? the hmr algo only depend on the importers, this means that the worst thing could be that a non importer could be updated, but this is impossible because the only changed imports can only be the ones in the updated file, this means that only the current file imports could be invalid, which means that changed files importers will always be valid\n    // TODO to make this work for vue and vite, i need to support virtual files?, vite files will be rewritten as js files with imports of virtual css files, the current implementation will see the change in the vite file, but it cannot know about changed virtual files, maybe i can put a property in the result of onTransform or onLoad to say `computedFiles: [virtualFile]`, save this info in graph (taken during rewrite) and in onChange i can send an update to these dependent modules too\n    // TODO batch changes? this way if user dopy pastes a directory i don't have to traverse the graph for every file\n    async onFileChange({ filePath }: { filePath: string }) {\n        const graph = this\n        const root = this.root\n        const resolvedPaths = this.realToFake[filePath]\n            ? [...this.realToFake[filePath]]\n            : [filePath]\n        const initialRelativePaths = resolvedPaths.map((resolvedPath) =>\n            osAgnosticPath(resolvedPath, root),\n        )\n\n        const messages: HMRPayload[] = []\n\n        const nodesToBeFetched: Set<string> = new Set([])\n        // update all importers query fetch to not use browser cached module\n        await this.traverseUpwards({\n            entries: initialRelativePaths,\n            onTraverse: async (\n                relativePath: string,\n                node: HmrNode,\n                importers: Set<string>,\n            ) => {\n                // can be a non js file, like index.html\n                if (!node) {\n                    return true\n                }\n\n                nodesToBeFetched.add(relativePath)\n\n                if (node.computedModules) {\n                    for (let computed of node.computedModules) {\n                        const node = graph.nodes[computed]\n                        node.lastUsedTimestamp++\n                    }\n                }\n\n                for (let importer of importers) {\n                    nodesToBeFetched.add(importer)\n                }\n                return true\n            },\n        })\n\n        for (const relativePath of nodesToBeFetched) {\n            const node = graph.ensureEntry(relativePath)\n            node.lastUsedTimestamp++\n        }\n\n        await this.traverseUpwards({\n            entries: initialRelativePaths,\n            onTraverse: async (\n                relativePath: string,\n                node: HmrNode,\n                importers: Set<string>,\n            ) => {\n                const importPath = fileToImportPath(root, relativePath)\n                // can be a non js file, like index.html\n                if (!node) {\n                    logger.log(\n                        `node for '${relativePath}' not found in graph, reloading`,\n                    )\n                    this.sendHmrMessage({ type: 'reload' })\n                    return\n                }\n                // trigger an update if the module is able to handle it\n                if (node.isHmrEnabled) {\n                    messages.push({\n                        type: 'update',\n                        namespace: 'file',\n                        path: importPath,\n                        updateID: node.hash + node.lastUsedTimestamp,\n                    })\n                    // computed nodes are virtual nodes whose code depends on another node\n                    if (node.computedModules) {\n                        for (let computed of node.computedModules) {\n                            const node = graph.nodes[computed]\n                            node.dirtyImportersCount++\n                            messages.push({\n                                type: 'update',\n                                namespace: 'file', // TODO do not hard code namespace for computed nodes\n                                path: fileToImportPath(root, computed),\n                                updateID: node.hash + node.lastUsedTimestamp,\n                            })\n                        }\n                    }\n                }\n                // reached a boundary, stop hmr propagation\n                if (node.hasHmrAccept) {\n                    return\n                }\n                // reached another boundary, reload\n                if (!importers.size) {\n                    logger.log(\n                        `reached top boundary '${relativePath}', reloading`,\n                    )\n                    this.sendHmrMessage({ type: 'reload' })\n                    return\n                }\n                for (let importer of importers) {\n                    graph.ensureEntry(importer)\n                    // mark module as dirty, importers will refetch this module to see updates\n                    node.dirtyImportersCount++ // TODO this means that the current node t must be changed, not the importer one, but given that now i include the t on every one maybe no nee d for this?\n                }\n                return true\n            },\n        })\n\n        messages.forEach((m) => this.sendHmrMessage(m))\n    }\n\n    async traverseUpwards({ onTraverse, entries }) {\n        const graph = this\n\n        const toVisit: string[] = [...entries]\n        const visited: string[] = []\n\n        while (toVisit.length) {\n            const relativePath = toVisit.shift()\n            if (!relativePath || visited.includes(relativePath)) {\n                continue\n            }\n\n            visited.push(relativePath)\n            // TODO if plugin resolver like css changes filename, it won't be found in graph\n            const node = graph.nodes[relativePath]\n            if (!node) {\n                return\n            }\n            const importers = node.importers()\n            const res = await onTraverse(relativePath, node, importers)\n            if (res) {\n                toVisit.push(...importers)\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "bundless/src/index.ts",
    "content": "export { serve } from './serve'\nexport { build } from './build'\nexport { Config, loadConfig } from './config'\nexport { Plugin, PluginsExecutor } from './plugins-executor'\nexport { logger, Logger } from './logger'\nexport { HmrGraph, HmrNode } from './hmr-graph'\nexport { MAIN_FIELDS } from './constants'\n"
  },
  {
    "path": "bundless/src/logger.ts",
    "content": "import chalk from 'chalk'\nimport ora, { Ora } from 'ora'\n\nconst defaultPrefix = '[bundless] '\n\nconst DEBUG = process.env.DEBUG_BUNDLESS\nexport class Logger {\n    prefix: string = ''\n    silent: boolean\n    constructor({ prefix = defaultPrefix, silent = false } = {}) {\n        this.prefix = prefix\n        this.silent = silent\n    }\n\n    private print(x) {\n        if (this.silent) {\n            return\n        }\n        if (this.spinner) {\n            this.spinner.info(x)\n        } else {\n            process.stderr.write(chalk.dim(this.prefix) + x + '\\n')\n        }\n    }\n    log(...x) {\n        this.print(x.join(' '))\n    }\n    warn(...x) {\n        this.print(chalk.yellow(x.join(' ')))\n    }\n    error(...x) {\n        this.print(chalk.red(x.join(' ')))\n    }\n\n    private spinner?: Ora\n\n    spinStart(text: string) {\n        if (this.silent) {\n            return\n        }\n        this.spinner = ora(text + '\\n\\n').start()\n    }\n    spinSucceed(text: string) {\n        if (this.spinner) {\n            this.spinner.succeed(text)\n        }\n        this.spinner = undefined\n    }\n    spinFail(text: string) {\n        if (this.spinner) {\n            this.spinner.fail(chalk.redBright(text))\n        }\n        this.spinner = undefined\n    }\n\n    debug = DEBUG\n        ? (...x) => {\n              if (this.spinner) {\n                  this.spinner.info(x.join(' ') + '\\n')\n              } else {\n                  process.stderr.write(\n                      chalk.dim(this.prefix + x.join(' ') + '\\n'),\n                  )\n              }\n          }\n        : () => {}\n}\n\nexport const logger = new Logger()\n"
  },
  {
    "path": "bundless/src/middleware/history-fallback.ts",
    "content": "import { Middleware } from 'koa'\nimport path from 'path'\nimport slash from 'slash'\nimport { logger } from '../logger'\nimport { PluginsExecutor } from '../plugins-executor'\nimport { cleanUrl, importPathToFile } from '../utils'\n\nexport function historyFallbackMiddleware({\n    root,\n    pluginsExecutor,\n}: {\n    root: string\n    pluginsExecutor: PluginsExecutor\n}): Middleware {\n    return async (ctx, next) => {\n        if (ctx.status !== 404) {\n            return next()\n        }\n\n        if (ctx.method !== 'GET') {\n            logger.debug(`not redirecting ${ctx.url} (not GET)`)\n            return next()\n        }\n\n        const accept = ctx.headers && ctx.headers.accept\n        if (typeof accept !== 'string') {\n            logger.debug(`not redirecting ${ctx.url} (no headers.accept)`)\n            return next()\n        }\n\n        if (accept.includes('application/json')) {\n            logger.debug(`not redirecting ${ctx.url} (json)`)\n            return next()\n        }\n\n        if (!accept.includes('text/html')) {\n            logger.debug(`not redirecting ${ctx.url} (not accepting html)`)\n            return next()\n        }\n        // use the executor to resolve virtual html files\n        // TODO decide if we want to pass to plugins the path with appended index.html or the normal path and let the plugins decide if they watn to serve html, the second way is harder because html should be served as last thing (fallback) but user plugins run first\n        let filePath = !cleanUrl(ctx.path).endsWith('.html')\n            ? path.posix.join(ctx.path, 'index.html')\n            : ctx.path\n\n        const {\n            contents: resolvedHtml,\n            path: resolveHtmlPath,\n        } = await pluginsExecutor.resolveLoadTransform({\n            path: importPathToFile(root, filePath),\n            skipOnResolved: true,\n            expectedExtensions: ['.html'],\n        })\n\n        if (resolvedHtml) {\n            send(\n                ctx,\n                resolvedHtml,\n                '/' + slash(path.relative(root, resolveHtmlPath || '')),\n            )\n            return next()\n        }\n        logger.debug(`fallback ${ctx.url} to html`)\n\n        // html resolver already search in public\n        const {\n            contents: resolvedTopHtml,\n        } = await pluginsExecutor.resolveLoadTransform({\n            path: path.resolve(root, 'index.html'),\n            skipOnResolved: true,\n            expectedExtensions: ['.html'],\n        })\n\n        if (resolvedTopHtml) {\n            send(ctx, resolvedTopHtml, '/index.html')\n            return next()\n        }\n\n        return next()\n        // return next()\n    }\n}\n\nfunction send(ctx, resolvedHtml, as = '') {\n    logger.debug(`Resolved html for ${ctx.path} as ${as}`)\n    ctx.body = resolvedHtml\n    ctx.status = 200\n    ctx.type = 'html'\n    // return next()\n}\n"
  },
  {
    "path": "bundless/src/middleware/index.ts",
    "content": "export { sourcemapMiddleware } from './sourcemap'\nexport { historyFallbackMiddleware } from './history-fallback'\nexport { staticServeMiddleware } from './static-serve'\nexport { openInEditorMiddleware } from './open-in-editor'\nexport { pluginsMiddleware } from './plugins'\n"
  },
  {
    "path": "bundless/src/middleware/open-in-editor.ts",
    "content": "import { logger } from '..'\nimport fs from 'fs'\nimport launchEditor from 'launch-editor'\nimport { importPathToFile } from '../utils'\nimport { Middleware } from 'koa'\n\nconst fileLocationRegex = /(:\\d+:\\d+)$/\n\nexport function openInEditorMiddleware({ root }): Middleware {\n    return function(ctx, next) {\n        if (ctx.path !== '/__open-in-editor') {\n            return next()\n        }\n        const { file = '' } = ctx.query || {}\n        if (!file) {\n            ctx.res.statusCode = 500\n            ctx.body = `launch-editor-middleware: required query param \"file\" is missing.`\n            return\n        }\n\n        let realPath = fs.existsSync(file.replace(fileLocationRegex, '')) ? file : importPathToFile(root, file)\n\n        logger.log(`Opening editor at ${realPath}`)\n        launchEditor(realPath)\n        ctx.res.statusCode = 200\n        ctx.body = `Opened ${realPath}`\n    }\n}\n"
  },
  {
    "path": "bundless/src/middleware/plugins.ts",
    "content": "import { FSWatcher } from 'chokidar'\nimport { Middleware } from 'koa'\nimport { WEB_MODULES_PATH } from '../constants'\nimport { logger } from '../logger'\nimport { PluginsExecutor } from '../plugins-executor'\nimport { importPathToFile, dotdotEncoding, genSourceMapString } from '../utils'\n\nexport function pluginsMiddleware({\n    root,\n    watcher,\n    pluginsExecutor,\n}: {\n    root: string\n    watcher: FSWatcher\n    pluginsExecutor: PluginsExecutor\n}): Middleware {\n    return async function pluginsMiddleware(ctx, next) {\n        if (\n            ctx.query.namespace == null ||\n            ctx.req.headers['accept'] !== '*/*'\n        ) {\n            return next()\n        }\n\n        if (ctx.path.startsWith('.')) {\n            throw new Error(\n                `All import paths should have been rewritten to absolute paths (start with /)\\n` +\n                    ` make sure import paths for '${ctx.path}' are statically analyzable`,\n            )\n        }\n\n        const isVirtual = ctx.query.namespace && ctx.query.namespace !== 'file'\n        // do not resolve virtual files like node builtins to an absolute path\n        const resolvedPath = isVirtual\n            ? ctx.path.slice(1) // remove leading /\n            : importPathToFile(root, ctx.path)\n\n        // watch files outside root\n        if (\n            ctx.path.startsWith('/' + dotdotEncoding) &&\n            !resolvedPath.includes('node_modules')\n        ) {\n            watcher.add(resolvedPath)\n        }\n\n        const namespace = ctx.query.namespace || 'file'\n        const loaded = await pluginsExecutor.load({\n            path: resolvedPath,\n            pluginData: undefined,\n            namespace,\n        })\n\n        if (loaded?.pluginData) {\n            logger.warn(\n                `esbuild pluginData is not supported by bundless, used by plugin ${loaded.pluginName}`,\n            )\n        }\n\n        if (loaded == null || loaded.contents == null) {\n            return next()\n        }\n        const transformed = await pluginsExecutor.transform({\n            path: resolvedPath,\n            loader: loaded.loader || 'default',\n            namespace,\n            contents: String(loaded.contents),\n        })\n        if (transformed == null) {\n            return next()\n        }\n\n        const sourcemap = transformed.map\n            ? genSourceMapString(transformed.map)\n            : ''\n\n        ctx.body = transformed.contents + sourcemap\n        ctx.status = 200\n        ctx.type = 'js'\n        const isDep = ctx.path.includes(WEB_MODULES_PATH)\n        const isCacheableModule = ctx.query.t != null\n        ctx.set(\n            'Cache-Control',\n            isDep || isCacheableModule\n                ? 'max-age=31536000,immutable'\n                : 'no-cache',\n        )\n        return next()\n    }\n}\n"
  },
  {
    "path": "bundless/src/middleware/sourcemap.ts",
    "content": "import chalk from 'chalk'\nimport { Middleware } from 'koa'\nimport path from 'path'\nimport { RawSourceMap } from 'source-map'\nimport { logger } from '../logger'\nimport { importPathToFile, readFile } from '../utils'\n\n// changes sourcemaps to point to right files\nexport const sourcemapMiddleware = ({ root }): Middleware => {\n    return async function sourcemap(ctx, next) {\n        if (!ctx.path.endsWith('.map')) {\n            return next()\n        }\n        logger.debug(`Handling sourcemap request for '${ctx.path}'`)\n        const filename = importPathToFile(root, ctx.path)\n        const content = await readFile(filename)\n        const map: RawSourceMap = JSON.parse(content)\n        if (!map.sources) {\n            logger.warn(`No sources found for sourcemap '${ctx.path}'`)\n            return next()\n        }\n        if (map.sourcesContent && map.sources.every(path.isAbsolute)) {\n            return next()\n        }\n        const sourcesContent = map.sourcesContent || []\n        const sourceRoot = path.resolve(\n            path.dirname(filename),\n            map.sourceRoot || '',\n        )\n        map.sources = await Promise.all(\n            map.sources.map(async (source, i) => {\n                const originalPath = path.resolve(sourceRoot, source)\n                if (!sourcesContent[i]) {\n                    try {\n                        sourcesContent[i] = await readFile(originalPath)\n                    } catch (err) {\n                        if (err.code === 'ENOENT') {\n                            console.error(\n                                chalk.red(\n                                    `Sourcemap \"${filename}\" points to non-existent source: \"${originalPath}\"`,\n                                ),\n                            )\n                            return source\n                        }\n                        throw err\n                    }\n                }\n                return originalPath\n            }),\n        )\n        map.sourcesContent = sourcesContent\n        const contents = JSON.stringify(map)\n        ctx.body = contents\n        ctx.status = 200\n        ctx.type = 'application/json'\n    }\n}\n"
  },
  {
    "path": "bundless/src/middleware/static-serve.ts",
    "content": "import { Middleware } from 'koa'\nimport send, { SendOptions } from 'koa-send'\nimport { WEB_MODULES_PATH } from '../constants'\nimport { logger } from '../logger'\n\n// like koa static but executes other middlewares after serving, needed to transform html afterwards\nexport function staticServeMiddleware(opts: SendOptions): Middleware {\n    opts.index = opts.index || 'index.html'\n    opts.hidden = opts.hidden || true\n    const cacheOptions: send.SendOptions = {\n        maxAge: 1000 * 60 * 60,\n        immutable: true,\n    }\n    return async function serve(ctx, next) {\n        if (ctx.method !== 'HEAD' && ctx.method !== 'GET') {\n            return next()\n        }\n        if (ctx.body) {\n            return next()\n        }\n\n        const isDep = ctx.path.includes(WEB_MODULES_PATH)\n        try {\n            logger.debug('Statically serving ' + ctx.path)\n            await send(ctx, ctx.path, { ...opts, ...(isDep && cacheOptions) })\n        } catch (err) {\n            if (err.status !== 404 && err.code !== 'ENOENT') {\n                throw new Error(`Cannot static serve ${ctx.path}: ${err}`)\n            }\n        }\n\n        await next()\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/assets.ts",
    "content": "import { NodeResolvePlugin } from '@esbuild-plugins/all'\nimport * as esbuild from 'esbuild'\nimport escapeStringRegexp from 'escape-string-regexp'\nimport fs from 'fs-extra'\nimport mime from 'mime-types'\nimport path from 'path'\nimport { defaultLoader } from '../constants'\nimport { PluginHooks } from '../plugins-executor'\nimport { fileToImportPath } from '../utils'\nimport { transform } from './esbuild'\n\nexport function AssetsPlugin({\n    loader: _loader,\n}: {\n    loader?: Record<string, esbuild.Loader>\n}) {\n    let loader = _loader || {}\n    loader = {\n        ...defaultLoader,\n        ...loader,\n    }\n    const extensions = Object.keys(loader)\n    const extensionsSet = new Set(extensions)\n    return {\n        name: 'assets',\n        setup: (hooks: PluginHooks) => {\n            const { onLoad, onResolve, ctx: { root, config } } = hooks\n            const filter = new RegExp(\n                '(' +\n                    extensions\n                        .filter((x) => x !== '.css') // css is handled in css plugin\n                        .map(escapeStringRegexp)\n                        .join('|') +\n                    ')$',\n            )\n            // what if an image is in another module and this resolver bypasses the node resolve plugin that runs the prebundle? maybe i need to throw? no because assets do not need to be optimized, i just need to make sure that node resolve is called before all other resolvers\n            NodeResolvePlugin({\n                name: 'assets-node-resolve',\n                isExtensionRequiredInImportPath: true,\n                extensions,\n            }).setup({\n                ...hooks,\n                onLoad() {},\n            })\n            onLoad({ filter }, async (args) => {\n                const extension = path.extname(args.path)\n                if (!extensionsSet.has(extension)) {\n                    return\n                }\n                const publicPath = fileToImportPath(root, args.path)\n                const loadedType = loader[extension]\n                if (loadedType === 'file') {\n                    return {\n                        contents: `export default ${JSON.stringify(\n                            publicPath,\n                        )}`,\n                    }\n                }\n                let data = await await fs.readFile(args.path)\n                if (loadedType === 'js') {\n                    return { contents: data.toString(), loader: 'js' }\n                }\n                if (\n                    loadedType === 'jsx' ||\n                    loadedType === 'ts' ||\n                    loadedType === 'tsx'\n                ) {\n                    const res = await transform({\n                        filePath: args.path,\n                        src: data.toString(),\n                        loader: loadedType,\n                        config,\n                    })\n                    return {\n                        contents: res.contents || '',\n                        loader: 'js',\n                    }\n                }\n                if (loadedType === 'base64') {\n                    return {\n                        contents: `export default \"${data.toString('base64')}`,\n                        loader: 'js',\n                    }\n                }\n                if (loadedType === 'dataurl') {\n                    const mimeType = mime.lookup(args.path)\n                    return {\n                        contents: `export default \"data:${mimeType};base64,${data.toString(\n                            'base64',\n                        )}\"`,\n                        loader: 'js',\n                    }\n                }\n                if (loadedType === 'text') {\n                    return {\n                        contents: `export default ${JSON.stringify(\n                            data.toString(),\n                        )}`,\n                        loader: 'js',\n                    }\n                }\n                if (loadedType === 'json') {\n                    const transformed = await esbuild.transform(\n                        data.toString(),\n                        {\n                            format: 'esm',\n                            loader: 'json',\n                            sourcefile: args.path,\n                        },\n                    )\n                    return {\n                        contents: transformed.code,\n                        loader: 'js',\n                    }\n                }\n                if (loadedType === 'binary') {\n                    return {\n                        contents: data.toString(), // how can i serve binary data to browser?\n                        loader: 'js',\n                    }\n                }\n\n                return null\n            })\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/buffer.ts",
    "content": "import * as esbuild from 'esbuild'\nimport { Plugin } from '../plugins-executor'\nimport { importPathToFile, readFile } from '../utils'\n\nconst BUFFER_PATH = '_bundless-node-buffer-polyfill_.js'\n\nexport function NodeBufferGlobal(): Plugin {\n    return {\n        name: 'buffer-global',\n        setup({ onResolve, onLoad, onTransform }) {\n            onTransform({ filter: /\\.html$/ }, (args) => {\n                const contents = args.contents.replace(\n                    /<body.*?>/,\n                    `$&\\n` +\n                        `<script type=\"module\" src=\"/${BUFFER_PATH}\"></script>\\n`,\n                )\n                return {\n                    contents,\n                }\n            })\n            onResolve({ filter: new RegExp(BUFFER_PATH) }, (arg) => {\n                return {\n                    path: BUFFER_PATH,\n                }\n            })\n            onLoad({ filter: new RegExp(BUFFER_PATH) }, async (arg) => {\n                const polyfill = await readFile(\n                    require.resolve(\n                        `@esbuild-plugins/node-globals-polyfill/Buffer.js`,\n                    ),\n                )\n                return {\n                    contents: polyfill + `\\nwindow.Buffer = Buffer;`,\n                    loader: 'js',\n                }\n            })\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/css.ts",
    "content": "import { NodeResolvePlugin, resolveAsync } from '@esbuild-plugins/all'\nimport { transform } from 'esbuild'\nimport escapeStringRegexp from 'escape-string-regexp'\nimport hash_sum from 'hash-sum'\nimport path from 'path'\nimport fs from 'fs-extra'\nimport { CLIENT_PUBLIC_PATH, hmrPreamble } from '../constants'\nimport { PluginHooks } from '../plugins-executor'\nimport { osAgnosticPath } from '../utils'\n\nconst CSS_UTILS_PATH = '_bundless_css_utils.js'\n\n/* \nimporting a css module file does 2 things\n- import a js file that calls ensureCssLink and exports the class names as js object\n- add the link in the html entry at build time\n\nThis way even if you load the app from a different entrypoint and you change location via history API, you get ensureCssLink that adds the link to the html\n\nGlobal css files instead must be all loaded at once because its classnames are not unique\n*/\n\nexport function CssPlugin({} = {}) {\n    return {\n        name: 'css',\n        setup: ({\n            ctx: { root, config, isBuild, graph },\n            onLoad,\n            onResolve,\n            onTransform,\n        }: PluginHooks) => {\n            // TODO use custom resolver that adds the .js extension to css paths?\n            async function cssResolver(args) {\n                try {\n                    const res = await resolveAsync(args.path, {\n                        basedir: args.resolveDir,\n                    })\n                    const virtualPath = res + '.cssjs'\n                    \n                    if (res) {\n                        return {\n                            path: virtualPath,\n                        }\n                    }\n                } catch {}\n            }\n            onResolve({ filter: /\\.css$/ }, cssResolver)\n            const cssExtensions = Object.keys(config.loader || {})\n                .filter((k) => config.loader?.[k] === 'css')\n                .map(escapeStringRegexp)\n            if (cssExtensions.length) {\n                onResolve(\n                    {\n                        filter: new RegExp(\n                            '(' + cssExtensions.join('|') + ')$',\n                        ),\n                    },\n                    cssResolver,\n                )\n            }\n            onLoad({ filter: /\\.cssjs$/ }, async (args) => {\n                try {\n                    const css = await (\n                        await fs.readFile(args.path.replace(/\\.cssjs$/, ''))\n                    ).toString()\n                    // const id = hash_sum(args.path)\n\n                    let contents = await codegenCssForDev(css, args.path)\n                    if (!isBuild) {\n                        contents = hmrPreamble + '\\n' + contents\n                    }\n                    return { contents, loader: 'js' }\n                } catch {}\n            })\n            // needed for other plugins that return css and are not resolved by this plugin\n            onTransform({ filter: /\\.css$/ }, async (args) => {\n                let contents = await codegenCssForDev(args.contents, args.path)\n                if (!isBuild) {\n                    contents = hmrPreamble + '\\n' + contents\n                }\n                return { contents, loader: 'js' }\n            })\n\n            onResolve(\n                { filter: new RegExp(escapeStringRegexp(CSS_UTILS_PATH)) },\n                (args) => {\n                    return {\n                        path: path.resolve(root, cssUtilsTemplate),\n                    }\n                },\n            )\n            onLoad(\n                { filter: new RegExp(escapeStringRegexp(CSS_UTILS_PATH)) },\n                (args) => {\n                    return {\n                        contents: cssUtilsTemplate,\n                        loader: 'js',\n                    }\n                },\n            )\n        },\n    }\n}\n\nconst cssUtilsTemplate = `\nfunction ensureCss(href) {\n    const existingLinkTags = document.getElementsByTagName('link')\n    for (let i = 0; i < existingLinkTags.length; i++) {\n        if (tag.rel === 'stylesheet' && tag.getAttribute('href') === href) {\n            return\n        }\n    }\n\n    const linkTag = document.createElement('link')\n    linkTag.rel = 'stylesheet'\n    linkTag.type = 'text/css'\n    linkTag.href = href\n\n    const head = document.getElementsByTagName('head')[0]\n    head.appendChild(linkTag)\n}\n`\n\nexport async function codegenCssForDev(\n    css: string,\n    sourcefile: string,\n    modules?: Record<string, string>,\n) {\n    let code = `\nconst css = ${JSON.stringify(css)};\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\n`\n    if (modules) {\n        const transformed = await transform(JSON.stringify(modules), {\n            format: 'esm',\n            loader: 'json',\n            sourcefile,\n        })\n        code += transformed.code\n    } else {\n        code += `export default css`\n    }\n    return code\n}\n\nexport function codegenCssForProduction(\n    cssPath: string,\n    modules?: Record<string, string>,\n): string {\n    let code =\n        hmrPreamble +\n        `\nimport { ensureCSS } from '${CSS_UTILS_PATH}'\nif (typeof window !== 'undefined') {\n    ensureCSS(${JSON.stringify(cssPath)})\n}\n`\n\n    return code\n}\n"
  },
  {
    "path": "bundless/src/plugins/env.ts",
    "content": "import dotenv from 'dotenv'\nimport dotenvExpand from 'dotenv-expand'\nimport findUp from 'find-up'\nimport fs from 'fs-extra'\nimport path from 'path'\nimport { logger } from '../logger'\nimport { PluginHooks } from '../plugins-executor'\n\nexport function EnvPlugin({\n    envFiles = [] as string[],\n    env = {} as Record<string, string>,\n    findUp: isFindUp = false,\n} = {}) {\n    return {\n        name: 'env',\n        setup: ({ initialOptions, ctx: { root } }: PluginHooks) => {\n            let define = {}\n            for (let _envFile of envFiles) {\n                let envFile\n                if (fs.existsSync(path.resolve(root, _envFile))) {\n                    envFile = path.resolve(root, _envFile)\n                } else if (isFindUp) {\n                    envFile = findUp.sync(_envFile, { cwd: root }) || ''\n                }\n                if (!envFile) {\n                    logger.warn(`Cannot find env file '${_envFile}'`)\n                    continue\n                }\n                const data = fs.readFileSync(envFile).toString()\n                const parsed = dotenv.parse(data, {\n                    debug: !!process.env.DEBUG || undefined,\n                })\n\n                // let environment variables use each other\n                dotenvExpand({\n                    parsed,\n                    // prevent process.env mutation\n                    ignoreProcessEnv: true,\n                } as any)\n\n                for (const k in parsed) {\n                    define[`process.env.${k}`] = JSON.stringify(parsed[k])\n                }\n            }\n            for (const k in env) {\n                define[`process.env.${k}`] = JSON.stringify(env[k])\n            }\n\n            Object.assign(initialOptions.define, define)\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/esbuild.ts",
    "content": "import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\nimport { Loader, Message, TransformOptions } from 'esbuild'\nimport path from 'path'\nimport { Config } from '../config'\nimport { OnTransformResult, PluginHooks } from '../plugins-executor'\nimport { generateDefineObject } from '../prebundle/esbuild'\nimport { generateCodeFrame } from '../utils'\n\nexport function EsbuildTransformPlugin({} = {}) {\n    return {\n        name: 'esbuild-transform',\n        setup: ({ onTransform, onClose, ctx: { config } }: PluginHooks) => {\n            onTransform({ filter: /\\.(tsx?|jsx)$/ }, async (args) => {\n                // do not transpile again if already transpiled\n                if (args.loader === 'js') {\n                    return\n                }\n                return transform({\n                    src: args.contents,\n                    filePath: args.path,\n                    config,\n                })\n            })\n        },\n    }\n}\n\nconst JsxPresets: Record<\n    string,\n    Pick<TransformOptions, 'jsxFactory' | 'jsxFragment'>\n> = {\n    vue: { jsxFactory: 'jsx', jsxFragment: 'Fragment' },\n    preact: { jsxFactory: 'h', jsxFragment: 'Fragment' },\n    react: {},\n    // react: { jsxFactory: 'React.createElement',  }, // use esbuild default\n}\n\nexport function resolveJsxOptions(options: Config['jsx'] = 'react') {\n    if (typeof options === 'string') {\n        if (!(options in JsxPresets)) {\n            console.error(`unknown jsx preset: '${options}'.`)\n        }\n        return JsxPresets[options] || {}\n    } else if (options) {\n        return {\n            jsxFactory: options.factory,\n            jsxFragment: options.fragment,\n        }\n    }\n}\n\n// transform used in server plugins with a more friendly API\nexport const transform = async ({\n    src,\n    filePath,\n    loader,\n    config,\n}: {\n    src: string\n    filePath: string\n    config?: Config\n    loader?: esbuild.Loader\n    exitOnFailure?: boolean\n}): Promise<OnTransformResult> => {\n    const options: TransformOptions = {\n        loader: loader || (path.extname(filePath).slice(1) as Loader),\n        logLevel: 'error',\n        sourcemap: true,\n        // format: 'esm', // passing format reorders exports https://github.com/evanw/esbuild/issues/710\n        // ensure source file name contains full query\n        sourcefile: filePath,\n        // TODO use define object here? this way it works the same as in build, but this way it won't work when using another transformer\n        target: 'es2020',\n        ...resolveJsxOptions(config?.jsx),\n    }\n    try {\n        const result = await esbuild.transform(src, options)\n        \n\n        let contents = result.code\n        // if transpiling (j|t)sx file, inject the imports for the jsx helper and\n        // Fragment.\n        if (filePath.endsWith('x')) {\n            // if (!jsxOption || jsxOption === 'vue') {\n            //     code +=\n            //         `\\nimport { jsx } from '${vueJsxPublicPath}'` +\n            //         `\\nimport { Fragment } from 'vue'`\n            // }\n            if (config?.jsx === 'preact') {\n                contents += `\\nimport { h, Fragment } from 'preact'`\n            }\n        }\n\n        return {\n            contents,\n            map: JSON.parse(result.map),\n        }\n    } catch (e) {\n        if (e.errors) {\n            e.errors.forEach((m: Message) => printMessage(m, src))\n        } else {\n            console.error(e)\n        }\n        throw new Error(\n            `Error while transforming ${filePath} with esbuild: ${e}`,\n        )\n    }\n}\n\nfunction printMessage(m: Message, code: string) {\n    console.error(chalk.yellow(m.text))\n    if (m.location) {\n        const lines = code.split(/\\r?\\n/g)\n        const line = Number(m.location.line)\n        const column = Number(m.location.column)\n        const offset =\n            lines\n                .slice(0, line - 1)\n                .map((l) => l.length)\n                .reduce((total, l) => total + l + 1, 0) + column\n        console.error(generateCodeFrame(code, offset, offset + 1))\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/hmr-client.ts",
    "content": "import fs from 'fs-extra'\nimport { CLIENT_PUBLIC_PATH, hmrClientNamespace } from '../constants'\nimport { PluginHooks } from '../plugins-executor'\nimport { generateDefineObject } from '../prebundle/esbuild'\n\nexport const clientFilePath = require.resolve('../../esm/client/template.js')\n\nexport const sourceMapSupportPath =\n    '__source-map-support.js?namespace=source-map-support'\n\nexport function HmrClientPlugin({ getPort }) {\n    return {\n        name: 'hmr-client',\n        setup: ({\n            onLoad,\n            onTransform,\n            ctx: { config, root },\n        }: PluginHooks) => {\n            onTransform({ filter: /\\.html$/ }, (args) => {\n                const contents = args.contents.replace(\n                    /<body.*?>/,\n                    `$&\\n` +\n                        `<script type=\"module\" src=\"${CLIENT_PUBLIC_PATH}\"></script>\\n`,\n                )\n                return {\n                    contents,\n                }\n            })\n\n            onLoad(\n                { filter: /.*/, namespace: 'source-map-support' },\n                async () => {\n                    return {\n                        contents: await fs.readFile(\n                            require.resolve(\n                                'source-map-support/browser-source-map-support.js',\n                            ),\n                        ),\n                    }\n                },\n            )\n\n            onLoad(\n                { filter: /.*/, namespace: hmrClientNamespace },\n                async (args) => {\n                    const defines = generateDefineObject({ config })\n                    const clientCode = fs\n                        .readFileSync(clientFilePath, 'utf-8')\n                        .replace(\n                            `__DEFINES__`,\n                            '{\\n' +\n                                Object.keys(defines)\n                                    .sort((a, b) => a.length - b.length)\n                                    .map(\n                                        (k) =>\n                                            `  ${JSON.stringify(k)}: ${\n                                                defines[k]\n                                            },`,\n                                    )\n                                    .join('\\n') +\n                                '\\n}',\n                        )\n                        .replace(`//# sourceMappingURL=`, '//')\n\n                    let socketPort: number | string = getPort()\n                    // infer on client by default\n                    let socketProtocol: any = null\n                    let socketHostname: any = null\n                    let socketTimeout = 30000\n                    const hmrConfig = config.server?.hmr || true\n                    if (hmrConfig && typeof hmrConfig === 'object') {\n                        // hmr option has highest priory\n                        socketProtocol = hmrConfig.protocol || null\n                        socketHostname = hmrConfig.hostname || null\n                        socketPort = hmrConfig.port || getPort()\n                        if (hmrConfig.timeout) {\n                            socketTimeout = hmrConfig.timeout\n                        }\n                        if (hmrConfig.path) {\n                            socketPort = `${socketPort}/${hmrConfig.path}`\n                        }\n                    }\n                    return {\n                        contents: clientCode\n                            .replace(\n                                `__HMR_PROTOCOL__`,\n                                JSON.stringify(socketProtocol),\n                            )\n                            .replace(\n                                `__HMR_HOSTNAME__`,\n                                JSON.stringify(socketHostname),\n                            )\n                            .replace(`__HMR_PORT__`, JSON.stringify(socketPort))\n                            .replace(\n                                `__HMR_ENABLE_OVERLAY__`,\n                                JSON.stringify(true),\n                            )\n                            .replace(\n                                `__HMR_TIMEOUT__`,\n                                JSON.stringify(socketTimeout),\n                            ),\n                    }\n                },\n            )\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/html-ingest.ts",
    "content": "import fs from 'fs'\nimport posthtml, { Node, Plugin as PosthtmlPlugin } from 'posthtml'\nimport path from 'path'\nimport { Plugin } from '../plugins-executor'\nimport { cleanUrl } from '../utils'\nimport slash from 'slash'\nconst NAME = 'html-ingest'\n\ninterface Options {\n    name?: string\n    root: string // to resolve paths in case the html page is not in root\n    transformImportPath?: (importPath: string) => string\n    // emitHtml?: (arg: { path: string; html: string }) => Promise<void>\n}\n\n/**\n * Let you use html files as entrypoints for esbuild\n */\nexport function HtmlIngestPlugin({\n    name = NAME,\n    root,\n    transformImportPath,\n}: Options): Plugin {\n    return {\n        name,\n        setup: function setup({ onLoad, onTransform, onResolve }) {\n            onTransform({ filter: /\\.html$/ }, async (args) => {\n                try {\n                    const html = args.contents\n\n                    const jsUrls = await getHtmlScriptsUrls(html)\n\n                    // const folder = path.relative(root, path.dirname(args.path))\n                    const pathToRoot = slash(\n                        path.relative(path.dirname(args.path), root),\n                    )\n\n                    const contents = jsUrls\n                        .map((importPath) => {\n                            // src='/file.js' -> ../../file.js\n                            if (importPath.startsWith('/')) {\n                                importPath = path.posix.join(\n                                    pathToRoot,\n                                    '.' + importPath,\n                                )\n                            }\n                            // src='file.js' -> ./file.js\n                            if (bareImportRE.test(importPath)) {\n                                importPath = './' + importPath\n                            }\n\n                            return importPath\n                        })\n                        .map((x) =>\n                            transformImportPath ? transformImportPath(x) : x,\n                        )\n                        .map((importPath) => `export * from '${importPath}'`)\n                        .join('\\n')\n\n                    return {\n                        loader: 'js',\n                        contents,\n                    }\n                } catch (e) {\n                    throw new Error(`Cannot transform html ${args.path}, ${e}`)\n                }\n            })\n        },\n    }\n}\n\nexport async function getHtmlScriptsUrls(html: string) {\n    const urls: string[] = []\n    const transformer = posthtml([\n        (tree) => {\n            tree.walk((node) => {\n                if (\n                    node &&\n                    node.tag === 'script' &&\n                    node.attrs &&\n                    node.attrs['type'] === 'module' &&\n                    node.attrs['src'] &&\n                    isRelative(node.attrs['src'])\n                ) {\n                    urls.push(node.attrs['src'])\n                }\n                return node\n            })\n        },\n    ])\n    try {\n        await transformer.process(html)\n    } catch (e) {\n        throw new Error(`Cannot process html with posthtml: ${e}\\n${html}`)\n    }\n    return urls.filter(Boolean)\n}\n\nconst bareImportRE = /^[^\\/\\.]/\nfunction isRelative(x: string) {\n    x = cleanUrl(x)\n    return bareImportRE.test(x) || x.startsWith('.') || x.startsWith('/')\n}\n"
  },
  {
    "path": "bundless/src/plugins/html-resolver.ts",
    "content": "import fs from 'fs-extra'\nimport path from 'path'\nimport { PluginHooks } from '../plugins-executor'\n\nexport function HtmlResolverPlugin({} = {}) {\n    return {\n        name: 'html-resolver',\n        setup: ({ ctx: { root }, onLoad, onResolve }: PluginHooks) => {\n            onResolve({ filter: /\\.html/ }, async (args) => {\n                args.path = path.resolve(root, args.path)\n\n                var resolved = path.resolve(args.resolveDir || root, args.path)\n                if (resolved && fs.existsSync(resolved)) {\n                    return {\n                        path: resolved,\n                    }\n                }\n                const relativePath = path.relative(root, args.path)\n                var resolved = path.resolve(\n                    path.resolve(root, path.join('public', relativePath)),\n                )\n                if (resolved && fs.existsSync(resolved)) {\n                    return {\n                        path: resolved,\n                    }\n                }\n                return null\n            })\n\n            onLoad({ filter: /\\.html$/ }, async (args) => {\n                try {\n                    const realFilePath = args.path // .replace('.html.js', '.html')\n                    const html = await (\n                        await fs.readFile(realFilePath, {\n                            encoding: 'utf-8',\n                        })\n                    ).toString()\n                    return {\n                        contents: html,\n                        loader: 'html' as any,\n                    }\n                } catch (e) {\n                    return null\n                    throw new Error(`Cannot load ${args.path}, ${e}`)\n                }\n            })\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/html-transform.ts",
    "content": "import posthtml, { Plugin } from 'posthtml'\nimport { PluginHooks } from '../plugins-executor'\nimport { cleanUrl } from '../utils'\n\nexport function HtmlTransformUrlsPlugin({\n    transforms,\n}: {\n    transforms: Plugin<any>[]\n}) {\n    return {\n        name: 'html-transform-urls',\n        setup: ({ onTransform }: PluginHooks) => {\n            onTransform({ filter: /\\.html$/ }, async (args) => {\n                const transformer = posthtml([...transforms])\n                const result = await transformer.process(args.contents)\n                const contents = result.html\n                return { contents }\n            })\n        },\n    }\n}\n\n// TODO transformer to rewrite inline script imports\n\n"
  },
  {
    "path": "bundless/src/plugins/index.ts",
    "content": "export { EsbuildTransformPlugin } from './esbuild'\nexport { RewritePlugin } from './rewrite'\nexport { CssPlugin } from './css'\nexport { ResolveSourcemapPlugin } from './resolve-sourcemaps'\nexport { HmrClientPlugin } from './hmr-client'\nexport { JSONPlugin } from './json'\nexport { AssetsPlugin } from './assets'\nexport { UrlResolverPlugin } from './url-resolver'\nexport { HtmlTransformUrlsPlugin } from './html-transform'\nexport { HtmlResolverPlugin } from './html-resolver'\nexport { HtmlIngestPlugin } from './html-ingest'\nexport { SourceMapSupportPlugin } from './source-map-support'\nexport { EnvPlugin } from './env'\nexport { NodeBufferGlobal } from './buffer'\nexport {\n    NodeModulesPolyfillPlugin,\n    NodeResolvePlugin,\n    NodeGlobalsPolyfillPlugin\n} from '@esbuild-plugins/all'\n"
  },
  {
    "path": "bundless/src/plugins/json.ts",
    "content": "import { NodeResolvePlugin } from '@esbuild-plugins/all'\nimport { transform } from 'esbuild'\nimport { PluginHooks } from '../plugins-executor'\nimport { readFile } from '../utils'\n\nexport function JSONPlugin({} = {}) {\n    return {\n        name: 'json',\n        setup: (hooks: PluginHooks) => {\n            const { onLoad, onResolve } = hooks\n            NodeResolvePlugin({\n                name: 'json-node-resolve',\n                isExtensionRequiredInImportPath: true,\n                extensions: ['.json'],\n            }).setup({\n                ...hooks,\n                onLoad() {},\n            })\n            onLoad({ filter: /\\.json$/ }, async (args) => {\n                const json = await readFile(args.path)\n                const transformed = await transform(json, {\n                    format: 'esm',\n                    loader: 'json',\n                    sourcefile: args.path,\n                })\n                const contents = transformed.code\n                return { contents }\n            })\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/resolve-sourcemaps.ts",
    "content": "import chalk from 'chalk'\nimport fs from 'fs'\nimport path from 'path'\nimport { RawSourceMap } from 'source-map'\nimport { PluginHooks } from '../plugins-executor'\nimport { fileToImportPath, jsTypeRegex, readFile } from '../utils'\n\nconst sourcemapRegex = /\\/\\/#\\ssourceMappingURL=([\\w\\d-_\\.]+)\\n*$/\n\nexport function ResolveSourcemapPlugin({} = {}) {\n    return {\n        name: 'resolve-sourcemaps',\n        setup: ({\n            onTransform,\n            pluginsExecutor,\n            ctx: { root },\n        }: PluginHooks) => {\n            onTransform({ filter: jsTypeRegex }, async (args) => {\n                let contents = args.contents\n                const match = contents.match(sourcemapRegex)\n\n                if (!match) {\n                    return\n                }\n                let filePath = match[1]\n                if (!filePath || filePath.startsWith('data:')) {\n                    // TODO skip other data: non base64 formats in sourcemaps\n                    return\n                }\n                if (!filePath.startsWith('.') && !filePath.startsWith('/')) {\n                    filePath = './' + filePath\n                }\n                const resolved = await pluginsExecutor.resolve({\n                    importer: args.path,\n                    path: filePath.trim(),\n                    namespace: '',\n                    resolveDir: path.dirname(args.path),\n                })\n                if (!resolved?.path) {\n                    return\n                }\n                contents = contents.replace(\n                    sourcemapRegex,\n                    `//# sourceMappingURL=${fileToImportPath(\n                        root,\n                        resolved?.path,\n                    )}`,\n                )\n\n                return {\n                    contents,\n                }\n            })\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/rewrite/__snapshots__/commonjs.test.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`rewrite commonjs imports 0 \"import React from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const React = react_cjsImport0 && react_cjsImport0.__esModule ? react_cjsImport0.default : react_cjsImport0;\"`;\n\nexports[`rewrite commonjs imports 1 \"import * as React from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const React = {default: react_cjsImport0, ...(typeof react_cjsImport0 === 'object' && react_cjsImport0)};\"`;\n\nexports[`rewrite commonjs imports 2 \"import React, { useState } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const React = react_cjsImport0 && react_cjsImport0.__esModule ? react_cjsImport0.default : react_cjsImport0; const useState = react_cjsImport0[\\\\\"useState\\\\\"];\"`;\n\nexports[`rewrite commonjs imports 3 \"import { useState } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const useState = react_cjsImport0[\\\\\"useState\\\\\"];\"`;\n\nexports[`rewrite commonjs imports 4 \"import { useState, useEffect } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const useState = react_cjsImport0[\\\\\"useState\\\\\"]; const useEffect = react_cjsImport0[\\\\\"useEffect\\\\\"];\"`;\n\nexports[`rewrite commonjs imports 5 \"import { useState as something } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const something = react_cjsImport0[\\\\\"useState\\\\\"];\"`;\n\nexports[`rewrite commonjs imports 6 \"import { useState as something, useEffect } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const something = react_cjsImport0[\\\\\"useState\\\\\"]; const useEffect = react_cjsImport0[\\\\\"useEffect\\\\\"];\"`;\n\nexports[`rewrite commonjs imports 7 \"import { useState as something, useEffect as alias } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const something = react_cjsImport0[\\\\\"useState\\\\\"]; const alias = react_cjsImport0[\\\\\"useEffect\\\\\"];\"`;\n\nexports[`rewrite commonjs imports 8 \"import { default as Default } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const Default = react_cjsImport0 && react_cjsImport0.__esModule ? react_cjsImport0.default : react_cjsImport0;\"`;\n\nexports[`rewrite commonjs imports 9 \"import { default as Default, useEffect } from 'react'\" 1`] = `\"import react_cjsImport0 from \\\\\"react\\\\\"; const Default = react_cjsImport0 && react_cjsImport0.__esModule ? react_cjsImport0.default : react_cjsImport0; const useEffect = react_cjsImport0[\\\\\"useEffect\\\\\"];\"`;\n"
  },
  {
    "path": "bundless/src/plugins/rewrite/commonjs.test.ts",
    "content": "import { parse } from '../../utils'\nimport { transformCjsImport } from './commonjs'\n\ndescribe('rewrite commonjs imports', () => {\n    const cases = [\n        `import React from 'react'`,\n        `import * as React from 'react'`,\n        `import React, { useState } from 'react'`,\n        `import { useState } from 'react'`,\n        `import { useState, useEffect } from 'react'`,\n        `import { useState as something } from 'react'`,\n        `import { useState as something, useEffect } from 'react'`,\n        `import { useState as something, useEffect as alias } from 'react'`,\n        `import { default as Default } from 'react'`,\n        `import { default as Default, useEffect } from 'react'`,\n    ]\n    for (let [i, testCase] of cases.entries()) {\n        test(`${i} \"${testCase}\"`, () => {\n            const res = transformCjsImport(testCase, 'react', 'react', 0)\n            expect(res).not.toContain('\\n')\n            parse(res) // check that it's valid code\n            expect(res).toMatchSnapshot()\n        })\n    }\n})\n"
  },
  {
    "path": "bundless/src/plugins/rewrite/commonjs.ts",
    "content": "import { ImportDeclaration } from '@babel/types'\nimport fs from 'fs-extra'\nimport { isPlainObject } from 'lodash'\nimport memoize from 'micro-memoize'\nimport path from 'path'\nimport { COMMONJS_ANALYSIS_PATH, WEB_MODULES_PATH } from '../../constants'\nimport { logger } from '../../logger'\nimport { onResolveLock } from '../../serve'\nimport { makeLegalIdentifier, osAgnosticPath, parse } from '../../utils'\n\nexport interface OptimizeAnalysisResult {\n    isCommonjs: { [name: string]: true }\n}\n\n/**\n * read analysis result from optimize step\n * If we can't find analysis result, return null\n * (maybe because user set optimizeDeps.auto to false)\n */\nexport const getAnalysis = memoize(function getAnalysis(\n    root: string,\n): OptimizeAnalysisResult | null {\n    let analysis: OptimizeAnalysisResult | null\n    try {\n        analysis = fs.readJsonSync(path.resolve(root, COMMONJS_ANALYSIS_PATH))\n    } catch (error) {\n        logger.debug(\n            `Cannot find commonjs analysis at ${path.resolve(\n                root,\n                COMMONJS_ANALYSIS_PATH,\n            )}`,\n        )\n        analysis = null\n    }\n    if (analysis && !isPlainObject(analysis.isCommonjs)) {\n        throw new Error(`invalid ${COMMONJS_ANALYSIS_PATH}`)\n    }\n    logger.debug(\n        `Got new commonjs analysis: ${JSON.stringify(\n            analysis?.isCommonjs,\n            null,\n            4,\n        )}`,\n    )\n    return analysis\n})\n\nexport function clearCommonjsAnalysisCache() {\n    logger.debug(`Invalidating commonjs cache`)\n    getAnalysis.cache.keys.length = 0\n    getAnalysis.cache.values.length = 0\n}\n\nexport function isOptimizedCjs(root: string, filename: string) {\n    if (!onResolveLock.isReady) {\n        throw new Error(\n            `Cannot call isOptimizedCjs when onResolveLock is locked!`,\n        )\n    }\n    const analysis = getAnalysis(root)\n    if (!analysis) {\n        return false\n    }\n    const isCommonjs = !!analysis.isCommonjs[osAgnosticPath(filename, root)]\n    return isCommonjs\n}\n\ntype ImportNameSpecifier = { importedName: string; localName: string }\n\n// todo if module has __esModule and there is only a default import, transform to .default, -> const imported = realImport.__esModule ? realImport.default : realImport\nexport function transformCjsImport(\n    exp: string,\n    id: string,\n    resolvedPath: string,\n    importIndex: number,\n): string {\n    const ast = parse(exp)[0] as ImportDeclaration\n    const importNames = getImportNames(ast)\n    return generateCjsImport(importNames, id, resolvedPath, importIndex)\n}\n\nfunction getImportNames(ast: ImportDeclaration) {\n    const importNames: ImportNameSpecifier[] = []\n\n    ast.specifiers.forEach((obj) => {\n        if (\n            obj.type === 'ImportSpecifier' &&\n            obj.imported.type === 'Identifier'\n        ) {\n            const importedName = obj.imported.name\n            const localName = obj.local.name\n            importNames.push({ importedName, localName })\n        } else if (obj.type === 'ImportDefaultSpecifier') {\n            importNames.push({\n                importedName: 'default',\n                localName: obj.local.name,\n            })\n        } else if (obj.type === 'ImportNamespaceSpecifier') {\n            importNames.push({ importedName: '*', localName: obj.local.name })\n        }\n    })\n    return importNames\n}\n\nfunction generateCjsImport(\n    importNames: ImportNameSpecifier[],\n    id: string,\n    resolvedPath: string,\n    importIndex: number,\n): string {\n    // If there is multiple import for same id in one file,\n    // importIndex will prevent the cjsModuleName to be duplicate\n    const cjsModuleName = makeLegalIdentifier(`${id}_cjsImport${importIndex}`)\n    const lines: string[] = [`import ${cjsModuleName} from \"${resolvedPath}\";`]\n    importNames.forEach(({ importedName, localName }) => {\n        // __esModule means the module has been compiled from ESM: ESM -> commonjs -> ESM\n        // we consider commonjs all modules with only a default export, but if the module has been compiled from ESM, it will contain double default export: default.default\n        if (importedName === 'default') {\n            lines.push(\n                `const ${localName} = ${cjsModuleName} && ${cjsModuleName}.__esModule ? ${cjsModuleName}.default : ${cjsModuleName};`,\n            )\n        } else if (importedName === '*') {\n            lines.push(\n                `const ${localName} = {default: ${cjsModuleName}, ...(typeof ${cjsModuleName} === 'object' && ${cjsModuleName})};`,\n            )\n        } else {\n            lines.push(\n                `const ${localName} = ${cjsModuleName}[\"${importedName}\"];`,\n            )\n        }\n    })\n    return lines.join(' ')\n}\n\n// adds the default export to the namespace in case this is an iterable object, this is to support the case `import * as namespace from 'mod'; namespace.default()`\n// TODO namespace imports can be polluted in case default import is an object and user is doing import * on a ES module with only a default export, this can be solved adding isCommonjs to esbuild metafile\nexport function generateNamespaceExport(mId: string) {\n    return `({...${mId}, ...(${mId}.default instanceof Object && ${mId}.default.constructor === Object && m.default)})`\n}\n"
  },
  {
    "path": "bundless/src/plugins/rewrite/index.ts",
    "content": "export * from './rewrite'\n"
  },
  {
    "path": "bundless/src/plugins/rewrite/rewrite.ts",
    "content": "import chalk from 'chalk'\nimport { ImportSpecifier, parse as parseImports } from 'es-module-lexer'\nimport MagicString from 'magic-string'\nimport path from 'path'\nimport { CLIENT_PUBLIC_PATH, hmrPreamble } from '../../constants'\nimport { HmrGraph } from '../../hmr-graph'\nimport { logger } from '../../logger'\nimport { PluginHooks, PluginsExecutor } from '../../plugins-executor'\nimport { onResolveLock } from '../../serve'\nimport {\n    appendQuery,\n    cleanUrl,\n    fileToImportPath,\n    isExternalUrl,\n    jsTypeRegex,\n    osAgnosticPath,\n} from '../../utils'\nimport {\n    generateNamespaceExport,\n    isOptimizedCjs,\n    transformCjsImport,\n} from './commonjs'\n\nexport function RewritePlugin({ filter = jsTypeRegex } = {}) {\n    return {\n        name: 'rewrite',\n        setup: ({\n            onTransform,\n            pluginsExecutor,\n            ctx: { graph, config, root, isBuild },\n        }: PluginHooks) => {\n            if (config.platform !== 'browser') {\n                return\n            }\n            if (isBuild || !graph) {\n                return\n            }\n            onTransform({ filter }, async (args) => {\n                const { contents, map } = await rewriteImports({\n                    graph,\n                    namespace: args.namespace || 'file',\n                    importer: args.path,\n                    root,\n                    pluginsExecutor,\n                    source: args.contents,\n                })\n                return {\n                    contents, // TODO module rewrite needs not need sourcemaps? How?\n                    map,\n                }\n            })\n        },\n    }\n}\n\nexport async function rewriteImports({\n    source,\n    importer,\n    graph,\n    pluginsExecutor,\n    namespace,\n    root,\n}: {\n    source: string\n    namespace: string\n    importer: string\n    pluginsExecutor: PluginsExecutor\n    root: string\n    graph: HmrGraph\n}): Promise<{ contents: string; map?: any }> {\n    // strip UTF-8 BOM\n    if (source.charCodeAt(0) === 0xfeff) {\n        source = source.slice(1)\n    }\n    const relativeImporter = osAgnosticPath(importer, root)\n    // TODO how are computed files path removed?\n    graph.ensureEntry(importer)\n    try {\n        await onResolveLock.wait()\n        let imports: ImportSpecifier[] = []\n        try {\n            imports = parseImports(source)[0]\n        } catch (e) {\n            throw new Error(\n                `Failed to parse ${chalk.cyan(\n                    importer,\n                )} for import rewrite.\\nIf you are using ` +\n                    `JSX, make sure to named the file with the .jsx extension.`,\n            )\n        }\n\n        const isHmrEnabled = source.includes('import.meta.hot')\n        const hasEnv = source.includes('import.meta.env')\n\n        if (!imports.length && !isHmrEnabled && !hasEnv) {\n            return { contents: source }\n        }\n\n        const magicString = new MagicString(source)\n\n        if (isHmrEnabled) {\n            magicString.prepend(hmrPreamble)\n        }\n        const currentNode = graph.ensureEntry(importer, {\n            isHmrEnabled,\n            importees: new Set(),\n        })\n\n        for (let i = 0; i < imports.length; i++) {\n            const {\n                s: start,\n                e: end,\n                d: dynamicIndex,\n                ss: expStart,\n                se: expEnd,\n            } = imports[i]\n            let id = source.substring(start, end)\n            const hasIgnore = /\\/\\*\\s*@bundless-ignore\\s*\\*\\//.test(id)\n            let hasLiteralDynamicId = false\n            const isDynamicImport = dynamicIndex >= 0\n            if (isDynamicImport) {\n                id = id.replace(/\\/\\*[\\s\\S]*?\\*\\/|([^\\\\:]|^)\\/\\/.*$/gm, '')\n                const literalIdMatch = id.match(\n                    /^\\s*(?:'([^']+)'|\"([^\"]+)\")\\s*$/,\n                )\n                if (literalIdMatch) {\n                    hasLiteralDynamicId = true\n                    id = literalIdMatch[1] || literalIdMatch[2]\n                }\n            }\n            if (dynamicIndex === -1 || hasLiteralDynamicId) {\n                // do not rewrite external imports\n                if (isExternalUrl(id)) {\n                    continue\n                }\n\n                const resolveResult = await pluginsExecutor.resolve({\n                    importer,\n                    namespace,\n                    resolveDir: path.dirname(importer),\n                    path: id,\n                })\n\n                if (!resolveResult || !resolveResult.path) {\n                    // do not fail on unresolved dynamic imports\n                    if (isDynamicImport) {\n                        logger.log(\n                            `Cannot resolve '${id}' from '${relativeImporter}'`,\n                        )\n                        continue\n                    }\n                    throw new Error(\n                        `Cannot resolve '${id}' from '${relativeImporter}'`,\n                    )\n                }\n\n                if (resolveResult?.pluginData) {\n                    logger.warn(\n                        `esbuild pluginData is not supported by bundless, used by plugin ${resolveResult.pluginName}`,\n                    )\n                }\n\n                let resolvedImportPath = ''\n                const isVirtual =\n                    resolveResult.namespace &&\n                    resolveResult.namespace !== 'file'\n                // handle bare imports like node builtins, virtual files, ...\n                if (isVirtual || !path.isAbsolute(resolveResult.path || '')) {\n                    resolvedImportPath = '/' + resolveResult.path\n                } else {\n                    resolvedImportPath = fileToImportPath(\n                        root,\n                        resolveResult?.path || '',\n                    )\n                }\n\n                const newNamespace = encodeURIComponent(\n                    resolveResult.namespace || namespace,\n                )\n                resolvedImportPath = appendQuery(\n                    resolvedImportPath,\n                    `namespace=${newNamespace}`,\n                )\n\n                // TODO maybe also register virtual files, ok onFileChange will never get triggered but maybe there is virtual css file or stuff like that that needs to be updated?\n                if (!isVirtual) {\n                    const importeeNode = graph.ensureEntry(resolveResult.path)\n\n                    // do not use stale modules\n                    resolvedImportPath = appendQuery(\n                        resolvedImportPath,\n                        `t=${\n                            importeeNode.hash + importeeNode.lastUsedTimestamp\n                        }`,\n                    )\n                }\n\n                if (resolvedImportPath !== id) {\n                    if (isOptimizedCjs(root, resolveResult.path || '')) {\n                        if (dynamicIndex === -1) {\n                            const exp = source.substring(expStart, expEnd)\n                            const replacement = transformCjsImport(\n                                exp,\n                                id,\n                                resolvedImportPath,\n                                i,\n                            )\n                            magicString.overwrite(expStart, expEnd, replacement)\n                        } else if (hasLiteralDynamicId) {\n                            // rewrite `import('package')` to\n                            // import('/package').then(m=>({...((m.default instanceof Object && m.default.constructor === Object) && m.default), ...m})));\n                            magicString.overwrite(\n                                dynamicIndex,\n                                end + 1,\n                                `import('${resolvedImportPath}').then(m=>${generateNamespaceExport(\n                                    'm',\n                                )})`,\n                            )\n                        }\n                    } else {\n                        magicString.overwrite(\n                            start,\n                            end,\n                            hasLiteralDynamicId\n                                ? `'${resolvedImportPath}'`\n                                : resolvedImportPath,\n                        )\n                    }\n                }\n\n                // save the import chain for hmr analysis\n                const cleanImportee = cleanUrl(resolvedImportPath)\n                if (\n                    // no need to track hmr client or module dependencies\n                    cleanImportee !== CLIENT_PUBLIC_PATH\n                ) {\n                    currentNode.importees.add(cleanImportee)\n                }\n            } else if (id !== 'import.meta' && !hasIgnore) {\n                logger.log(\n                    chalk.yellow(\n                        `Cannot rewrite dynamic import(${id}) in ${relativeImporter}.`,\n                    ),\n                )\n            }\n        }\n\n        return {\n            contents: magicString.toString(),\n            map: undefined, // do i really need sourcemaps? code is readable enough\n        }\n    } catch (e) {\n        e.message = `Invalid module ${relativeImporter}\\n` + e\n        throw e\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/source-map-support.ts",
    "content": "import fs from 'fs-extra'\nimport { CLIENT_PUBLIC_PATH } from '../constants'\nimport { PluginHooks } from '../plugins-executor'\n\nexport const sourceMapSupportPath =\n    '__source-map-support.js?namespace=source-map-support'\n\nexport function SourceMapSupportPlugin({} = {}) {\n    return {\n        name: 'hmr-client',\n        setup: ({\n            onLoad,\n            onTransform,\n            ctx: { config, root },\n        }: PluginHooks) => {\n            // TODO reenable source map support\n            return\n            onTransform({ filter: /\\.html$/ }, (args) => {\n                const contents = args.contents.replace(\n                    /<body.*?>/,\n                    `$&\\n` +\n                        `<script src=\"/${sourceMapSupportPath}\"></script>\\n` +\n                        `<script>window.sourceMapSupport = sourceMapSupport; sourceMapSupport.install();</script>\\n`,\n                )\n                return {\n                    contents,\n                }\n            })\n\n            onLoad(\n                { filter: /.*/, namespace: 'source-map-support' },\n                async () => {\n                    return {\n                        contents: await fs.readFile(\n                            require.resolve(\n                                'source-map-support/browser-source-map-support.js',\n                            ),\n                        ),\n                    }\n                },\n            )\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins/url-resolver.ts",
    "content": "import { NodeResolvePlugin } from '@esbuild-plugins/all'\nimport { PluginHooks } from '../plugins-executor'\nimport { importPathToFile, readFile } from '../utils'\nimport url from 'url'\nimport { logger } from '../logger'\nimport qs from 'qs'\n\nexport function UrlResolverPlugin({} = {}) {\n    return {\n        name: 'url-resolver',\n        setup: ({ ctx: { root }, onResolve }: PluginHooks) => {\n            onResolve({ filter: /\\?/ }, async (arg) => {\n                if (!arg.path.includes('?')) {\n                    return\n                }\n                const parsed = url.parse(arg.path)\n                if (!parsed.pathname) {\n                    throw new Error('no pathname in ' + arg.path)\n                }\n                const query = qs.parse(parsed.query || '')\n                if (\n                    query.namespace &&\n                    typeof query.namespace === 'string' &&\n                    query.namespace !== 'file'\n                ) {\n                    // logger.log(`Removed query from path ${arg.path}`)\n                    return {\n                        path: parsed.pathname.slice(1), // TODO write a spec for virtual files in url behaviour\n                        namespace: query.namespace,\n                    }\n                }\n\n                return {\n                    path: importPathToFile(root, parsed.pathname),\n                }\n            })\n        },\n    }\n}\n"
  },
  {
    "path": "bundless/src/plugins-executor.ts",
    "content": "import { O_TRUNC } from 'constants'\nimport * as esbuild from 'esbuild'\nimport { cloneDeep } from 'lodash'\nimport { promises } from 'fs-extra'\nimport { Config } from './config'\nimport url from 'url'\nimport fs from 'fs-extra'\nimport { HmrGraph } from './hmr-graph'\nimport { logger } from './logger'\nimport { flatten, osAgnosticPath } from './utils'\nimport qs from 'qs'\nimport { mergeSourceMap } from './utils/sourcemaps'\nimport path from 'path'\nimport { ansiChart } from './utils/profiling'\nimport { FSWatcher } from 'chokidar'\nimport { resolveAsync } from '@esbuild-plugins/all'\nimport { MAIN_FIELDS } from './constants'\n\nexport interface Plugin {\n    name: string\n    modulesToPrebundle?: string[]\n    enforce?: 'pre' | 'post'\n    setup: (build: PluginHooks) => void\n}\n\ntype OnResolveCallback = (\n    args: esbuild.OnResolveArgs,\n) => Maybe<esbuild.OnResolveResult | Promise<Maybe<esbuild.OnResolveResult>>>\n\ntype OnLoadCallback = (\n    args: esbuild.OnLoadArgs,\n) => Maybe<esbuild.OnLoadResult | Promise<Maybe<esbuild.OnLoadResult>>>\n\ntype OnTransformCallback = (\n    args: OnTransformArgs,\n) => Maybe<OnTransformResult | Promise<Maybe<OnTransformResult>>>\n\ntype OnCloseCallback = () => void | Promise<void>\n\nexport interface PluginsExecutorCtx {\n    config: Config\n    root: string\n    graph?: HmrGraph\n    isBuild: boolean\n    watcher?: FSWatcher\n}\nexport interface PluginHooks extends esbuild.PluginBuild {\n    ctx: PluginsExecutorCtx\n    pluginsExecutor: PluginsExecutor\n    onResolve(\n        options: esbuild.OnResolveOptions,\n        callback: OnResolveCallback,\n    ): void\n    onLoad(options: esbuild.OnLoadOptions, callback: OnLoadCallback): void\n    onTransform(\n        options: esbuild.OnLoadOptions,\n        callback: OnTransformCallback,\n    ): void\n    onClose(options: any, callback: OnCloseCallback): void\n}\n\nexport interface OnTransformArgs {\n    path: string\n    loader: esbuild.Loader\n    namespace?: string\n    contents: string\n}\n\nexport interface OnTransformResult {\n    contents: string\n    map?: any\n    loader?: esbuild.Loader\n}\n\ntype Maybe<x> = x | undefined | null\n\ntype PluginInternalObject<CB> = {\n    name: string\n    options: { filter: RegExp; namespace?: string }\n    callback: CB\n}\n\nexport type OnResolved = (\n    result: esbuild.OnResolveResult & { importer: string },\n) => Promise<Maybe<esbuild.OnResolveResult>> | Maybe<esbuild.OnResolveResult>\n\n// TODO let plugins modify the options, pass an esbuild options as argument and you can access the mutated version as class instance\nexport class PluginsExecutor {\n    ctx: PluginsExecutorCtx\n    plugins: Plugin[]\n    isProfiling: boolean\n    onResolved?: OnResolved\n    initialOptions: esbuild.BuildOptions\n    private startingInitialOptions: esbuild.BuildOptions\n\n    private transforms: PluginInternalObject<OnTransformCallback>[] = []\n    private resolvers: PluginInternalObject<OnResolveCallback>[] = []\n    private loaders: PluginInternalObject<OnLoadCallback>[] = []\n    private closers: PluginInternalObject<OnCloseCallback>[] = []\n\n    constructor(_args: {\n        plugins: Array<Plugin | esbuild.Plugin>\n        ctx: PluginsExecutorCtx\n        initialOptions: esbuild.BuildOptions\n        isProfiling?: boolean\n        onResolved?: OnResolved\n    }) {\n        const {\n            ctx,\n            plugins,\n            isProfiling = false,\n            onResolved,\n            initialOptions,\n        } = _args\n\n        this.ctx = ctx\n        this.initialOptions = initialOptions\n        this.startingInitialOptions = cloneDeep(initialOptions)\n        this.onResolved = onResolved\n        this.plugins = plugins\n        this.isProfiling = isProfiling\n\n        for (let plugin of plugins) {\n            if (isProfiling) {\n                plugin = this.wrapPluginForProfiling(plugin)\n            }\n            const { name, setup } = plugin\n            setup({\n                ctx,\n                initialOptions,\n                pluginsExecutor: this,\n                onLoad: (options, callback) => {\n                    this.loaders.push({ options, callback, name })\n                },\n                onResolve: (options, callback) => {\n                    this.resolvers.push({ options, callback, name })\n                },\n                onTransform: (options, callback) => {\n                    this.transforms.push({ options, callback, name })\n                },\n                onClose: (options, callback) => {\n                    this.closers.push({ options, callback, name })\n                },\n            })\n        }\n    }\n\n    modulesToPrebundle() {\n        return flatten(this.plugins.map((p) => p.modulesToPrebundle || []))\n    }\n\n    private matches(\n        options: { filter: RegExp; namespace?: string },\n        arg: { path?: string; namespace?: string },\n    ) {\n        if (!arg.path) {\n            return false\n        }\n        if (options.filter && !options.filter.test(arg.path)) {\n            return false\n        }\n        const optsNamespace = options.namespace || 'file'\n        const argNamespace = arg.namespace || 'file'\n        if (argNamespace !== optsNamespace) {\n            return false\n        }\n        return true\n    }\n\n    async load(arg: esbuild.OnLoadArgs): Promise<Maybe<esbuild.OnLoadResult>> {\n        let result\n        for (let { callback, options, name } of this.loaders) {\n            if (this.matches(options, arg)) {\n                try {\n                    logger.debug(\n                        `loading '${osAgnosticPath(\n                            arg.path,\n                            this.ctx.root,\n                        )}' with '${name}'`,\n                    )\n                    const newResult = await callback(arg)\n                    if (newResult) {\n                        result = newResult\n                        if (!result.pluginName) {\n                            result.pluginName = name\n                        }\n                        break\n                    }\n                } catch (e) {\n                    if (e && e?.message) {\n                        e.plugin = name\n                    }\n                    throw e\n                }\n            }\n        }\n\n        if (result) {\n            return { ...result, namespace: result.namespace || 'file' }\n        }\n    }\n    async transform(arg: OnTransformArgs): Promise<OnTransformResult> {\n        let result: OnTransformResult = { contents: arg.contents }\n        for (let { callback, options, name } of this.transforms) {\n            try {\n                if (this.matches(options, arg)) {\n                    logger.debug(`transforming '${arg.path}' with '${name}'`)\n                    const newResult = await callback(arg)\n                    if (newResult?.contents != null) {\n                        arg.contents = newResult.contents\n                        result.contents = newResult.contents\n                    }\n                    if (newResult?.loader) {\n                        arg.loader = newResult.loader\n                        result.loader = newResult.loader\n                    }\n                    // merge with previous source maps\n                    if (newResult?.map) {\n                        if (result.map) {\n                            result.map = mergeSourceMap(\n                                result.map,\n                                newResult.map,\n                            )\n                        } else {\n                            result.map = newResult.map\n                        }\n                    }\n                }\n            } catch (e) {\n                if (e && e?.message) {\n                    e.plugin = name\n                }\n                throw e\n            }\n        }\n        return result\n    }\n\n    /**\n     * Resolve filter should match on basename and not rely on absolute path, \"virtual\" could be passed as absolute paths from root: /path/to/virtual_file\n     */\n    async resolve(\n        arg: Partial<esbuild.OnResolveArgs> & { skipOnResolved?: boolean },\n    ): Promise<Maybe<esbuild.OnResolveResult>> {\n        let result\n        // support for resolving paths with queries\n\n        for (let { callback, options, name } of this.resolvers) {\n            if (this.matches(options, arg)) {\n                logger.debug(`resolving '${arg.path}' with '${name}'`)\n                const newResult = await callback({\n                    importer: '',\n                    namespace: 'file',\n                    pluginData: undefined,\n                    resolveDir: '',\n                    path: '',\n                    kind: 'import-statement', // TODO fix wrong kind in resolve\n                    ...arg,\n                })\n                if (newResult && newResult.path) {\n                    logger.debug(\n                        `resolved '${\n                            arg.path\n                        }' with '${name}' as '${osAgnosticPath(\n                            newResult.path,\n                            this.ctx.root,\n                        )}'`,\n                    )\n                    result = newResult\n                    if (!result.pluginName) {\n                        result.pluginName = name\n                    }\n                    break\n                }\n                // break\n            }\n        }\n        if (result) {\n            result = { ...result, namespace: result.namespace || 'file' }\n\n            // register resolved modules that do not exist to real file paths, so that i can resolve them in onFileChange\n            if (this.ctx?.graph && arg.path && !fs.existsSync(result.path)) {\n                try {\n                    const realPath = await resolveAsync(arg.path, {\n                        basedir: arg.resolveDir || arg.importer,\n                        mainFields: MAIN_FIELDS,\n                    })\n                    if (realPath) {\n                        if (this.ctx.graph.realToFake[realPath]) {\n                            this.ctx.graph.realToFake[realPath].add(result.path)\n                        } else {\n                            this.ctx.graph.realToFake[realPath] = new Set([\n                                result.path,\n                            ])\n                        }\n                    }\n                } catch {}\n            }\n\n            if (!arg.skipOnResolved && this.onResolved) {\n                const newResult = await this.onResolved({\n                    ...result,\n                    importer: arg.importer,\n                })\n\n                if (newResult) {\n                    return newResult\n                }\n            }\n            return result\n        }\n    }\n\n    async close() {\n        let result\n        for (let { callback, options, name } of this.closers) {\n            logger.debug(`cleaning resources for '${name}'`)\n            await callback()\n        }\n        return result\n    }\n\n    async resolveLoadTransform({\n        path: p,\n        importer = '',\n        namespace = 'file',\n        expectedExtensions,\n        skipOnResolved,\n    }: {\n        path: string\n        importer?: string\n        namespace?: string\n        skipOnResolved?: boolean\n        expectedExtensions?: string[]\n    }): Promise<{ path?: string; contents?: string }> {\n        let resolveDir = path.dirname(p)\n        if (resolveDir === '/' || resolveDir === '.') {\n            resolveDir = ''\n        }\n        const resolved = await this.resolve({\n            importer,\n            namespace,\n            path: p,\n            resolveDir,\n            skipOnResolved,\n        })\n        if (resolved?.pluginData) {\n            logger.warn(\n                `pluginData is not supported by bundless, used by plugin ${resolved.pluginName}`,\n            )\n        }\n        if (!resolved || !resolved.path) {\n            return {}\n        }\n\n        if (\n            expectedExtensions &&\n            !expectedExtensions.includes(path.extname(resolved.path))\n        ) {\n            return {}\n        }\n        const loaded = await this.load({\n            namespace: resolved.namespace || 'file',\n            path: resolved.path,\n            pluginData: undefined,\n        })\n        if (loaded?.pluginData) {\n            logger.warn(\n                `esbuild pluginData is not supported by bundless, used by plugin ${loaded.pluginName}`,\n            )\n        }\n        if (!loaded) {\n            return {}\n        }\n        const transformed = await this.transform({\n            contents: String(loaded.contents),\n            path: resolved.path,\n            loader: loaded.loader || 'default',\n            namespace: resolved.namespace || 'file',\n        })\n        if (!transformed) {\n            return { contents: String(loaded.contents), path: resolved.path }\n        }\n        return { contents: String(transformed.contents), path: resolved.path }\n    }\n\n    esbuildPlugins() {\n        return this.plugins.map((plugin, index) =>\n            this.wrapPluginForEsbuild(plugin),\n        )\n    }\n\n    profilingData: {\n        resolvers: Record<string, number>\n        loaders: Record<string, number>\n        transforms: Record<string, number>\n    } = {\n        resolvers: {},\n        loaders: {},\n        transforms: {},\n    }\n\n    printProfilingResult() {\n        let str = '\\n\\nProfiling data:\\n\\n'\n        // console.log(this.profilingData)\n        const data = Object.keys(this.profilingData).map((k) => {\n            const timeConsume: number = Object.values(\n                this.profilingData[k],\n            ).reduce(sum, 0) as any\n            return {\n                path: k,\n                timeConsume,\n            }\n        })\n        if (data.map((x) => x.timeConsume).reduce(sum, 0) === 0) {\n            return ''\n        }\n        str += ansiChart(data)\n        str += '\\n\\nResolvers\\n\\n'\n        const resolversData = Object.keys(this.profilingData.resolvers).map(\n            (pluginName) => {\n                return {\n                    path: pluginName,\n                    timeConsume: this.profilingData.resolvers[pluginName],\n                }\n            },\n        )\n        const opts = { limit: 3 }\n        str += ansiChart(resolversData, opts)\n        str += '\\n\\nLoaders\\n\\n'\n        const loadersData = Object.keys(this.profilingData.loaders).map(\n            (pluginName) => {\n                return {\n                    path: pluginName,\n                    timeConsume: this.profilingData.loaders[pluginName],\n                }\n            },\n        )\n        str += ansiChart(loadersData, opts)\n        str += '\\n\\nTransforms\\n\\n'\n        const transformsData = Object.keys(this.profilingData.transforms).map(\n            (pluginName) => {\n                return {\n                    path: pluginName,\n                    timeConsume: this.profilingData.transforms[pluginName],\n                }\n            },\n        )\n        str += ansiChart(transformsData, opts)\n        str += '\\n'\n        return str\n    }\n\n    private wrapPluginForProfiling(plugin: Plugin): Plugin {\n        const pluginsExecutor: PluginsExecutor = this\n        const { profilingData: profiledData } = this\n        const { name } = plugin\n\n        function wrapMethod(method, type: string) {\n            return async (...args) => {\n                const timeStart = Date.now()\n                const res = await method(...args)\n                const delta = Date.now() - timeStart\n                profiledData[type][name] =\n                    (profiledData[type][name] || 0) + delta\n                return res\n            }\n        }\n\n        return {\n            name,\n\n            setup(hooks) {\n                plugin.setup({\n                    ...hooks,\n                    pluginsExecutor,\n                    // wrap onLoad to execute other plugins transforms\n                    onLoad: wrapMethod(hooks.onLoad, 'loaders'),\n                    onResolve: wrapMethod(hooks.onResolve, 'resolvers'),\n                    onTransform: wrapMethod(hooks.onTransform, 'transforms'),\n                })\n            },\n        }\n    }\n\n    private wrapPluginForEsbuild(plugin: Plugin): esbuild.Plugin {\n        const pluginsExecutor: PluginsExecutor = this\n        const ctx = this.ctx\n        const executor = this\n        return {\n            name: plugin.name,\n            setup({ onLoad, onResolve }) {\n                // TODO running setup 2 times\n                plugin.setup({\n                    onResolve,\n                    // the plugin transform is already inside pluginsExecutor\n                    onTransform() {},\n                    onClose() {},\n                    ctx,\n                    pluginsExecutor,\n                    initialOptions: executor.startingInitialOptions,\n                    // wrap onLoad to execute other plugins transforms\n                    onLoad(options, callback) {\n                        onLoad(options, async (args) => {\n                            const result = await callback(args)\n                            if (!result) {\n                                return\n                            }\n                            // run all transforms from other plugins\n                            const transformed = await pluginsExecutor.transform(\n                                {\n                                    path: args.path,\n                                    contents: String(result?.contents),\n                                    loader: result.loader || 'default',\n                                },\n                            )\n                            if (!transformed) {\n                                return result\n                            }\n                            return {\n                                ...result,\n                                contents: transformed.contents,\n                                loader: transformed.loader || result.loader,\n                                resolveDir: result.resolveDir,\n                            }\n                        })\n                    },\n                })\n            },\n        }\n    }\n}\n\nconst sum = (a, b): number => a + b\n\nexport function sortPlugins(plugins?: Plugin[]): [Plugin[], Plugin[]] {\n    if (!plugins) {\n        return [[], []]\n    }\n    const [pre, post]: Plugin[][] = [[], []]\n    for (let plugin of plugins) {\n        if (plugin.enforce === 'pre') {\n            pre.push(plugin)\n        } else if (plugin.enforce === 'post') {\n            post.push(plugin)\n        } else {\n            pre.push(plugin)\n        }\n    }\n    return [pre, post]\n}\n"
  },
  {
    "path": "bundless/src/prebundle/__snapshots__/prebundle.test.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`traverseWithEsbuild 1`] = `\nArray [\n  \"index.html\",\n  \"main.js\",\n  \"../../node_modules/slash/index.js\",\n  \"../../node_modules/react/index.js\",\n  \"node_modules/preact/hooks/dist/hooks.module.js\",\n  \"../../node_modules/react-dom/index.js\",\n]\n`;\n"
  },
  {
    "path": "bundless/src/prebundle/esbuild.ts",
    "content": "import * as esbuild from 'esbuild'\nimport { Metafile } from 'esbuild'\nimport fromEntries from 'fromentries'\nimport fs from 'fs-extra'\nimport path from 'path'\nimport slash from 'slash'\nimport tmpfile from 'tmpfile'\nimport { Config, Platform } from '../config'\nimport { osAgnosticPath } from '../utils'\nimport * as plugins from '../plugins'\nimport {\n    defaultImportableAssets as defaultImportableAssets,\n    defaultLoader,\n    isRunningWithYarnPnp,\n    JS_EXTENSIONS,\n    MAIN_FIELDS,\n} from '../constants'\nimport { logger } from '../logger'\nimport { DependencyStatsOutput } from './stats'\nimport {\n    OptimizeAnalysisResult,\n    runFunctionOnPaths,\n    stripColon,\n} from './support'\nimport { PluginsExecutor } from '../plugins-executor'\n\nexport const commonEsbuildOptions = (\n    config: Config = {},\n): esbuild.BuildOptions => {\n    const omitHashes = process.env.BUNDLESS_CONSISTENT_HMR_GRAPH_HASH != null\n    return {\n        target: 'es2020',\n        entryNames: !omitHashes ? '[dir]/[name]-[hash]' : '[dir]/[name]',\n        chunkNames: 'chunks/[name]-[hash]',\n        minify: false,\n        minifyIdentifiers: false,\n        minifySyntax: false,\n        metafile: true,\n        minifyWhitespace: false,\n        mainFields: MAIN_FIELDS,\n        sourcemap: false,\n        bundle: true,\n        platform: 'browser',\n        format: 'esm',\n        write: true,\n        logLevel: 'error',\n        loader: {\n            '.js': 'jsx',\n            '.cjs': 'js',\n            // '.svg': 'dataurl', // TODO enable svg as data uri in development and in build\n            ...defaultLoader,\n            ...config.loader,\n        },\n        define: generateDefineObject({ config }),\n    }\n}\n\nexport function generateDefineObject({\n    config = {} as Config,\n    platform = 'browser' as Platform,\n    isProd = false,\n}) {\n    if (platform === 'node') {\n        return {\n            'process.browser': 'false',\n            ...config.define, // TODO mock browser stuff like fetch? this allows me to target other platform like cloudflare workers ...\n        }\n    }\n    const noop = 'String'\n    const nodeEnv =\n        process.env.NODE_ENV || (isProd ? 'production' : 'development')\n    return {\n        'process.env.NODE_ENV': JSON.stringify(nodeEnv),\n        // ...generateEnvReplacements(config.env || {}),\n        'process.pid': '0',\n        // global: 'window',\n        __filename: '\"\"',\n        __dirname: '\"\"',\n        // TODO remove defines and use inject instead\n        // TODO use the process inject instead of define\n        // process: '{}',\n        global: 'window',\n        // 'process.env': '{}',\n        'process.browser': 'true',\n        'process.version': '\"\"',\n        // 'process.argv': '[]',\n        // module: '{}',\n        // Buffer: noop,\n        // 'process.cwd': noop,\n        // 'process.chdir': noop,\n        clearImmediate: noop,\n        setImmediate: noop,\n        ...config.define,\n    }\n}\n\nexport const defaultResolvableExtensions = [\n    ...JS_EXTENSIONS,\n    ...defaultImportableAssets,\n    '.json',\n    '.css',\n]\n\nexport async function bundleWithEsBuild({\n    entryPoints,\n    root,\n    dest: destLoc,\n    config,\n    ...options\n}) {\n    const { alias = {}, externalPackages = [], minify = false } = options\n\n    const tsconfigTempFile = tmpfile('.json')\n    await fs.promises.writeFile(tsconfigTempFile, makeTsConfig({ alias }))\n\n    // rimraf.sync(destLoc) // do not delete or on flight imports will return 404\n\n    const initialOptions: esbuild.BuildOptions = {\n        entryPoints,\n        ...commonEsbuildOptions(config),\n        splitting: true, // needed to dedupe modules\n        external: externalPackages,\n        minify: Boolean(minify),\n        minifyIdentifiers: Boolean(minify),\n        minifySyntax: Boolean(minify),\n        minifyWhitespace: Boolean(minify),\n        mainFields: MAIN_FIELDS,\n        tsconfig: tsconfigTempFile,\n        sourcemap: 'inline',\n        bundle: true,\n        write: true,\n        outdir: destLoc,\n        metafile: true,\n    }\n\n    const executor = new PluginsExecutor({\n        initialOptions,\n        ctx: {\n            config: { root },\n            isBuild: true,\n            root,\n        },\n        plugins: [\n            ...(config.plugins || []),\n            plugins.NodeGlobalsPolyfillPlugin({\n                buffer: true,\n                process: true,\n                define: initialOptions.define,\n            }),\n            plugins.NodeModulesPolyfillPlugin({\n                namespace: 'node-modules-polyfills',\n            }),\n            plugins.CssPlugin(),\n            plugins.NodeResolvePlugin({\n                name: 'prebundle-node-resolve',\n                mainFields: MAIN_FIELDS,\n                extensions: [\n                    ...defaultResolvableExtensions,\n                    ...(Object.keys(config.loader || {}) || []),\n                ],\n                onNonResolved: (p, importer, e) => {\n                    logger.debug(e.message + '\\n' + e.stack)\n                    // logger.warn(\n                    //     `Cannot resolve '${p}' from '${importer}' during traversal, using yarn pnp: ${isRunningWithYarnPnp}`,\n                    // )\n                },\n            }),\n            plugins.UrlResolverPlugin(),\n        ],\n    })\n\n    const buildResult = await esbuild.build({\n        ...initialOptions,\n        plugins: executor.esbuildPlugins(),\n    })\n\n    await fs.promises.unlink(tsconfigTempFile)\n\n    let meta = buildResult.metafile!\n    meta = runFunctionOnPaths(meta, (p) => {\n        p = stripColon(p) // namespace:/path/to/file -> /path/to/file\n        return p\n    })\n    const esbuildCwd = process.cwd()\n    const bundleMap = metafileToBundleMap({\n        meta,\n        esbuildCwd,\n        root,\n    })\n\n    const analysis = metafileToAnalysis({ meta, root, esbuildCwd })\n\n    const stats = metafileToStats({ meta, destLoc })\n\n    return { stats, bundleMap, analysis }\n}\n\nfunction makeTsConfig({ alias }) {\n    const aliases = Object.keys(alias || {}).map((k) => {\n        return {\n            [k]: [alias[k]],\n        }\n    })\n    const tsconfig = {\n        compilerOptions: { baseUrl: '.', paths: Object.assign({}, ...aliases) },\n    }\n\n    return JSON.stringify(tsconfig)\n}\n\nexport type BundleMap = Partial<Record<string, string>>\n\n/**\n * Returns aon object that maps from entry (relative path from root) to output (relative path from root too)\n */\nexport function metafileToBundleMap(_options: {\n    root: string\n    esbuildCwd: string\n    meta: Metafile\n}): BundleMap {\n    const { meta, root, esbuildCwd } = _options\n\n    const maps: Array<[string, string]> = Object.keys(meta.outputs)\n        .map((output): [string, string] | undefined => {\n            // chunks cannot be entrypoints\n            const entry = meta.outputs[output].entryPoint\n            if (!entry) {\n                return\n            }\n            return [\n                osAgnosticPath(path.resolve(esbuildCwd, entry), root),\n                osAgnosticPath(path.resolve(esbuildCwd, output), root),\n            ]\n        })\n        .filter(Boolean) as any\n\n    const bundleMap = fromEntries(maps)\n\n    return bundleMap\n}\n\nfunction metafileToAnalysis(_options: {\n    meta: Metafile\n    root: string\n    esbuildCwd: string\n}): OptimizeAnalysisResult {\n    const { meta, root, esbuildCwd } = _options\n    const analysis: OptimizeAnalysisResult = {\n        isCommonjs: fromEntries(\n            Object.keys(meta.outputs)\n                .map((output): [string, true] | undefined => {\n                    if (path.basename(output).startsWith('chunk.')) {\n                        return\n                    }\n                    const info = meta.outputs[output]\n                    if (!info) {\n                        throw new Error(`cannot find output info for ${output}`)\n                    }\n                    const isCommonjs =\n                        info.exports?.length === 1 &&\n                        info.exports?.[0] === 'default'\n                    if (!isCommonjs) {\n                        return\n                    }\n                    // what if imported path ahs not yet been converted by prebundler? then prebundler should lock server, it's impossible\n                    return [\n                        osAgnosticPath(path.resolve(esbuildCwd, output), root),\n                        isCommonjs,\n                    ]\n                })\n                .filter(Boolean) as any,\n        ),\n    }\n    return analysis\n}\n\nexport function metafileToStats(_options: {\n    meta: Metafile\n    destLoc: string\n}): DependencyStatsOutput {\n    const { meta, destLoc } = _options\n    const stats = Object.keys(meta.outputs).map((output) => {\n        const value = meta.outputs[output]\n        // const inputs = meta.outputs[output].bytes;\n        return {\n            path: output,\n            isCommon: ['chunk.'].some((x) =>\n                path.basename(output).startsWith(x),\n            ),\n            bytes: value.bytes,\n        }\n    })\n\n    function makeStatObject(value) {\n        const relativePath = slash(path.relative(destLoc, value.path))\n        return {\n            [relativePath]: {\n                size: value.bytes,\n                // gzip: zlib.gzipSync(contents).byteLength,\n                // brotli: zlib.brotliCompressSync ? zlib.brotliCompressSync(contents).byteLength : 0,\n            },\n        }\n    }\n\n    return {\n        common: Object.assign(\n            {},\n            ...stats.filter((x) => x.isCommon).map(makeStatObject),\n        ),\n        direct: Object.assign(\n            {},\n            ...stats.filter((x) => !x.isCommon).map(makeStatObject),\n        ),\n    }\n}\n"
  },
  {
    "path": "bundless/src/prebundle/index.ts",
    "content": "export { prebundle } from './prebundle'\n"
  },
  {
    "path": "bundless/src/prebundle/prebundle.test.ts",
    "content": "import memoize from 'micro-memoize'\nimport path from 'path'\nimport { makeEntryObject } from './prebundle'\nimport { traverseWithEsbuild } from './traverse'\n\ntest('traverseWithEsbuild', async () => {\n    const entry = path.resolve('fixtures/with-many-dependencies/index.html')\n    const deps = await traverseWithEsbuild({\n        entryPoints: [entry],\n        // esbuildCwd: process.cwd(),\n        config: {},\n        root: path.dirname(entry),\n    })\n    expect(deps).toMatchSnapshot()\n})\n\ntest('memoize', () => {\n    let i = 0\n    const fn = memoize((x) => {\n        return i++\n    })\n    fn(1)\n    fn(1)\n    fn.cache.keys = []\n    fn.cache.values = []\n    fn(1)\n    fn(1)\n    fn(1)\n    expect(i).toBe(2)\n})\n\ntest('makeEntryObject', () => {\n    const deps = ['xxx', 'xxx', 'xxx', 'yyy', 'aaa']\n    const obj = makeEntryObject(deps)\n    console.log(obj)\n    expect(Object.keys(obj).length).toBe(deps.length)\n})\n"
  },
  {
    "path": "bundless/src/prebundle/prebundle.ts",
    "content": "import fs from 'fs-extra'\nimport path from 'path'\nimport chalk from 'chalk'\nimport {\n    BUNDLE_MAP_PATH,\n    COMMONJS_ANALYSIS_PATH,\n    pnpapi,\n    WEB_MODULES_PATH,\n} from '../constants'\nimport { logger } from '../logger'\nimport { clearCommonjsAnalysisCache } from '../plugins/rewrite/commonjs'\nimport { bundleWithEsBuild, generateDefineObject } from './esbuild'\nimport { printStats } from './stats'\nimport { isEmpty, needsPrebundle, osAgnosticPath } from '../utils'\nimport { traverseWithEsbuild } from './traverse'\n\nexport async function prebundle({ entryPoints, config, root, dest }) {\n    try {\n        logger.spinStart(`Prebundling modules in '${WEB_MODULES_PATH}'`)\n        const traversalResult = await traverseWithEsbuild({\n            entryPoints,\n            root,\n            config,\n            filter: /^[\\w@][^:]/, // bare name imports (no relative imports)\n        })\n        logger.debug(`traversed files`)\n\n        const dependenciesPaths = traversalResult.filter((p) =>\n            needsPrebundle(config, p),\n        )\n\n        await fs.remove(dest)\n\n        if (!dependenciesPaths.length) {\n            logger.log(`No dependencies to prebundle found`)\n            return {}\n        }\n\n        logger.log(\n            `Prebundling \\n    ${dependenciesPaths\n                .map((x) => getClearDependencyPath(x))\n                .map((x) => (path.isAbsolute(x) ? osAgnosticPath(x, root) : x))\n                .map((x) => chalk.cyanBright(x))\n                .join('\\n    ')}\\n`,\n        )\n\n        // TODO separate build for workspaces and dependencies, build workspaces in watch mode, also pass user plugins\n        // TODO do not stop traversal on workspaces, grab all dependencies including inside workspaces (to node duplicate deps)\n        // TODO build workspaces in separate build step, make external dependencies using the needsPrebundle logic\n        let { bundleMap, analysis, stats } = await bundleWithEsBuild({\n            dest,\n            root,\n            config,\n            entryPoints: makeEntryObject(\n                dependenciesPaths.map((x) => path.resolve(root, x)),\n            ),\n        })\n\n        logger.spinSucceed('\\nFinish')\n\n        const analysisFile = path.resolve(root, COMMONJS_ANALYSIS_PATH)\n        await fs.createFile(analysisFile)\n\n        await fs.writeFile(analysisFile, JSON.stringify(analysis, null, 4))\n        console.info(\n            printStats({ dependencyStats: stats, destLoc: WEB_MODULES_PATH }),\n        )\n        if (!isEmpty(bundleMap)) {\n            const bundleMapCachePath = path.resolve(root, BUNDLE_MAP_PATH)\n            await fs.writeJSON(bundleMapCachePath, bundleMap, { spaces: 4 })\n        }\n        return bundleMap\n    } catch (e) {\n        logger.spinFail('Cannot prebundle\\n')\n        throw e\n    } finally {\n        clearCommonjsAnalysisCache()\n    }\n}\n\nfunction getClearDependencyPath(p: string) {\n    const index = p.lastIndexOf('node_modules')\n    if (index === -1) {\n        return p\n    }\n    let dependencySubPath = p.slice(index).replace(/\\/?node_modules(\\/|\\\\)/, '')\n    return dependencySubPath\n}\n\nfunction getScopedPackageName(path: string): any {\n    return path.match(/(@[\\w-_\\.]+\\/[\\w-_\\.]+)/)?.[1] || ''\n}\n\nfunction getPackageName(p: string) {\n    const dependencySubPath = getClearDependencyPath(p)\n    let dependency = ''\n    if (dependencySubPath.startsWith('@')) {\n        dependency = getScopedPackageName(dependencySubPath) || ''\n    } else {\n        const lastIndex = dependencySubPath.indexOf('/')\n        dependency = dependencySubPath.slice(\n            0,\n            lastIndex === -1 ? undefined : lastIndex,\n        )\n    }\n    return dependency\n}\n\nexport function makeEntryObject(dependenciesPaths: string[]) {\n    const names: Record<string, number> = {}\n    return Object.assign(\n        {},\n        ...dependenciesPaths.map((f) => {\n            let outputPath = getClearDependencyPath(f) || 'unknown'\n            const sameNamesCount = names[outputPath]\n            if (sameNamesCount) {\n                names[outputPath] += 1\n                outputPath += String(sameNamesCount)\n            } else {\n                names[outputPath] = 1\n            }\n\n            return {\n                [outputPath]: f,\n            }\n        }),\n    )\n}\n"
  },
  {
    "path": "bundless/src/prebundle/stats.ts",
    "content": "import chalk from 'chalk'\n\nexport type DependencyType = 'direct' | 'common'\n\nexport type DependencyStatsMap = {\n    [filePath: string]: DependencyStats\n}\n\ntype DependencyStats = { size: number }\n\nexport type DependencyStatsOutput = Record<DependencyType, DependencyStatsMap>\n\nexport function printStats(_args: {\n    dependencyStats: DependencyStatsOutput\n    destLoc: string\n}): string {\n    const { dependencyStats, destLoc } = _args\n    let output = ''\n    const { direct, common } = dependencyStats\n    const allDirect = Object.entries(direct).sort(entriesSort)\n    const allCommon = Object.entries(common).sort(entriesSort)\n    const maxFileNameLength =\n        [...allCommon, ...allDirect].reduce(\n            (max, [filename]) => Math.max(filename.length, max),\n            destLoc.length,\n        ) + 1\n    output +=\n        `  ⦿ ${chalk.bold(destLoc.padEnd(maxFileNameLength + 4))}` +\n        chalk.bold(chalk.underline('size'.padEnd(SIZE_COLUMN_WIDTH - 2))) +\n        '  ' +\n        // chalk.bold(chalk.underline('gzip'.padEnd(SIZE_COLUMN_WIDTH - 2))) +\n        // '  ' +\n        // chalk.bold(chalk.underline('brotli'.padEnd(SIZE_COLUMN_WIDTH - 2))) +\n        `\\n`\n    output += `${formatFiles(allDirect, maxFileNameLength)}\\n`\n    if (Object.values(common).length > 0) {\n        output += `  ⦿ ${chalk.bold('chunks (Shared)')}\\n`\n        output += `${formatFiles(allCommon, maxFileNameLength)}`\n    }\n    return `\\n${output}\\n`\n}\n\n/** The minimum width, in characters, of each size column */\nconst SIZE_COLUMN_WIDTH = 11\n\n/** Generic Object.entries() alphabetical sort by keys. */\nfunction entriesSort([filenameA]: [string, any], [filenameB]: [string, any]) {\n    return filenameA.localeCompare(filenameB)\n}\n\n/** Pretty-prints number of bytes as \"XXX KB\" */\nfunction formatSize(size) {\n    let kb = Math.round((size / 1000) * 100) / 100\n    if (kb >= 1000) {\n        kb = Math.floor(kb)\n    }\n    let color\n    if (kb < 15) {\n        color = 'green'\n    } else if (kb < 30) {\n        color = 'yellow'\n    } else {\n        color = 'red'\n    }\n    return chalk[color](`${kb} KB`.padEnd(SIZE_COLUMN_WIDTH))\n}\n\nfunction formatDelta(delta) {\n    const kb = Math.round(delta * 100) / 100\n    const color = delta > 0 ? 'red' : 'green'\n    return chalk[color](`Δ ${delta > 0 ? '+' : ''}${kb} KB`)\n}\n\nfunction formatFileInfo(\n    filename: string,\n    stats: DependencyStats,\n    padEnd: number,\n    isLastFile: boolean,\n): string {\n    const lineGlyph = chalk.dim(isLastFile ? '└─' : '├─')\n    const lineName = filename.padEnd(padEnd)\n    const fileStat = formatSize(stats.size)\n    // const gzipStat = formatSize(stats.gzip)\n    // const brotliStat = formatSize(stats.brotli)\n    const lineStat = fileStat // + gzipStat + brotliStat\n    let lineDelta = ''\n    // if (stats.delta) {\n    //     lineDelta = chalk.dim('[') + formatDelta(stats.delta) + chalk.dim(']')\n    // }\n    // Trim trailing whitespace (can mess with formatting), but keep indentation.\n    return `    ` + `${lineGlyph} ${lineName} ${lineStat} ${lineDelta}`.trim()\n}\n\nfunction formatFiles(files: [string, DependencyStats][], padEnd: number) {\n    const strippedFiles = files.map(([filename, stats]) => [\n        filename.replace(/^common\\//, ''),\n        stats,\n    ]) as [string, DependencyStats][]\n    return strippedFiles\n        .map(([filename, stats], index) =>\n            formatFileInfo(filename, stats, padEnd, index >= files.length - 1),\n        )\n        .join('\\n')\n}\n"
  },
  {
    "path": "bundless/src/prebundle/support.ts",
    "content": "import { Metafile } from 'esbuild'\nimport { forOwn, isPlainObject } from 'lodash'\n\nexport function isUrl(req: string) {\n    return (\n        req.startsWith('http://') ||\n        req.startsWith('https://') ||\n        req.startsWith('//')\n    )\n}\nexport interface OptimizeAnalysisResult {\n    isCommonjs: { [name: string]: true }\n}\n\nexport function unique<T>(array: T[], key = (x: T): any => x): T[] {\n    const cache: Record<any, boolean> = {}\n    return array.filter(function (a) {\n        const keyed = key(a)\n        if (!cache[keyed]) {\n            cache[keyed] = true\n            return true\n        }\n        return false\n    }, {})\n}\n\n// namespace:/path/to/file -> /path/to/file\nexport function stripColon(input?: string) {\n    if (!input) {\n        return ''\n    }\n    const index = input.indexOf(':')\n    if (index === -1) {\n        return input\n    }\n    const clean = input.slice(index + 1)\n    return clean\n}\n\nfunction convertKeys<T>(obj: T, cb: (k: string) => string): T {\n    const x: T = Array.isArray(obj) ? ([] as any) : {}\n\n    forOwn(obj, (v, k) => {\n        if (isPlainObject(v) || Array.isArray(v)) v = convertKeys(v, cb)\n\n        x[cb(k)] = v\n    })\n\n    return x\n}\n\nexport function runFunctionOnPaths(\n    x: Metafile,\n    func: (x: string) => string = stripColon,\n): Metafile {\n    x = convertKeys(x, func)\n    for (const input in x.inputs) {\n        const v = x.inputs[input]\n        x.inputs[input] = {\n            ...v,\n            imports: v.imports\n                ? v.imports.map((x) => ({ ...x, path: func(x.path) }))\n                : [],\n        }\n    }\n    for (const output in x.outputs) {\n        const v = x.outputs[output]\n        x.outputs[output] = {\n            ...v,\n            imports: v.imports\n                ? v.imports.map((x) => ({ ...x, path: func(x.path) }))\n                : [],\n        }\n    }\n\n    return x\n}\n"
  },
  {
    "path": "bundless/src/prebundle/traverse.ts",
    "content": "import deepmerge from 'deepmerge'\nimport * as esbuild from 'esbuild'\nimport { build, BuildOptions, Metafile, Plugin } from 'esbuild'\nimport fromEntries from 'fromentries'\nimport { promises as fsp } from 'fs'\nimport { resolveAsync } from '@esbuild-plugins/all'\nimport fsx from 'fs-extra'\nimport os from 'os'\nimport path from 'path'\nimport { isRunningWithYarnPnp, MAIN_FIELDS } from '../constants'\nimport { HmrGraph } from '../hmr-graph'\nimport { logger } from '../logger'\nimport { PluginsExecutor } from '../plugins-executor'\nimport * as plugins from '../plugins'\nimport { flatten, needsPrebundle, osAgnosticPath } from '../utils'\nimport {\n    commonEsbuildOptions,\n    generateDefineObject,\n    defaultResolvableExtensions,\n} from './esbuild'\n\nimport { runFunctionOnPaths, stripColon, unique } from './support'\nimport { rewriteScriptUrlsTransform } from '../serve'\n\nimport { Config } from '../config'\n\ntype Args = {\n    root: string\n    entryPoints: string[]\n    config: Config\n    filter?: RegExp\n    esbuildOptions?: Partial<BuildOptions>\n    // resolver?: (cwd: string, id: string) => string\n    stopTraversing?: (resolvedPath: string) => boolean\n}\n\nexport async function traverseWithEsbuild({\n    entryPoints,\n    filter,\n    root,\n    config,\n}: Args): Promise<string[]> {\n    const userPlugins = config.plugins || []\n    const destLoc = await fsp.realpath(\n        path.resolve(await fsp.mkdtemp(path.join(os.tmpdir(), 'dest'))),\n    )\n\n    for (let entry of entryPoints) {\n        if (!path.isAbsolute(entry)) {\n            throw new Error(\n                `All entryPoints of traverseWithEsbuild must be absolute: ${entry}`,\n            )\n        }\n    }\n\n    logger.debug(`Traversing entrypoints ${JSON.stringify(entryPoints, [], 4)}`)\n\n    const allPlugins = [\n        // TODO esbuild does not let overriding plugins, this means that if user is using plugin to alias a package to a file it will skip ExternalButInMetafile and break everything\n        ...(userPlugins || []),\n        plugins.NodeModulesPolyfillPlugin(),\n        plugins.HtmlResolverPlugin(),\n        plugins.HtmlTransformUrlsPlugin({\n            transforms: [rewriteScriptUrlsTransform],\n        }),\n        plugins.HtmlIngestPlugin({ root }),\n        plugins.NodeResolvePlugin({\n            name: 'traverse-node-resolve',\n            mainFields: MAIN_FIELDS,\n            extensions: [\n                ...defaultResolvableExtensions,\n                ...(Object.keys(config.loader || {}) || []),\n            ],\n            // TODO use different plugin that only runs on bare imports\n            onNonResolved: (p, importer, e) => {\n                logger.debug(e.message + '\\n' + e.stack)\n                // logger.warn(\n                //     `Cannot resolve '${p}' from '${importer}' during traversal, using yarn pnp: ${isRunningWithYarnPnp}`,\n                // )\n            },\n        }),\n\n        plugins.UrlResolverPlugin(),\n    ]\n    const initialOptions: esbuild.BuildOptions = {\n        ...commonEsbuildOptions(config),\n        entryPoints,\n        outdir: destLoc,\n    }\n    const pluginsExecutor = new PluginsExecutor({\n        plugins: allPlugins,\n        initialOptions,\n        ctx: {\n            isBuild: true,\n            config: { root },\n            root,\n        },\n    })\n    let graph: TraversalGraph = {}\n    try {\n        await build({\n            ...initialOptions,\n            plugins: [\n                traversalGraphPlugin({\n                    executor: pluginsExecutor,\n                    graph,\n                    filter,\n                    stopTraversing(p) {\n                        return needsPrebundle(config, p)\n                    },\n                }),\n                ...pluginsExecutor.esbuildPlugins(),\n            ],\n        })\n\n        // console.log(JSON.stringify(meta, null, 4))\n        let knownModules = pluginsExecutor.modulesToPrebundle()\n        knownModules = await Promise.all(\n            knownModules.map((x) =>\n                resolveAsync(x, {\n                    basedir: root,\n                    mainFields: MAIN_FIELDS,\n                }).then((x) => x || ''),\n            ),\n        )\n        knownModules = knownModules.filter(Boolean)\n        return unique([...Object.keys(graph), ...knownModules])\n    } finally {\n        await fsx.remove(destLoc)\n    }\n}\n\nexport function traversalGraphPlugin({\n    filter,\n    graph,\n    executor,\n    stopTraversing,\n}: {\n    filter?: RegExp\n    graph: TraversalGraph\n    executor: PluginsExecutor\n    stopTraversing: Function\n}): esbuild.Plugin {\n    return {\n        name: 'register-modules',\n        setup({ onResolve }) {\n            onResolve({ filter: filter || /()/ }, async (args) => {\n                const res = await executor.resolve({\n                    importer: args.importer,\n                    path: args.path,\n                    namespace: 'file',\n                    resolveDir: args.importer\n                        ? path.dirname(args.importer)\n                        : args.resolveDir,\n                    skipOnResolved: true,\n                })\n                if (!res || !res.path) {\n                    return res\n                }\n\n                const importer = osAgnosticPath(\n                    args.importer,\n                    executor.ctx.root,\n                )\n                const importee = osAgnosticPath(res.path, executor.ctx.root)\n\n                if (importer) {\n                    if (!graph[importer]) {\n                        graph[importer] = [importee]\n                    } else {\n                        graph[importer].push(importee)\n                    }\n                }\n                if (!graph[importee]) {\n                    graph[importee] = []\n                }\n                if (stopTraversing(res.path)) {\n                    logger.debug(\n                        `Stopping traversing at ${res.path}, ${args.path}`,\n                    )\n                    return { external: true }\n                }\n            })\n        },\n    }\n}\n\ntype TraversalGraph = Record<string, string[]>\n\n/**\n * Returns a module graph implemented as an object, keys are modules (relative paths from root), values are arrays of key's imports (absolute paths)\n */\nexport function metaToTraversalResult({\n    meta,\n    entryPoints,\n    esbuildCwd,\n    root,\n}: {\n    meta: Metafile\n    esbuildCwd: string\n    root: string\n    entryPoints: string[]\n}): TraversalGraph {\n    if (!path.isAbsolute(esbuildCwd)) {\n        throw new Error('esbuildCwd must be an absolute path')\n    }\n    for (let entry of entryPoints) {\n        if (!path.isAbsolute(entry)) {\n            throw new Error('entry must be an absolute path')\n        }\n    }\n    const alreadyProcessed = new Set<string>()\n    // must be all absolute paths\n    let toProcess = entryPoints\n    const result: TraversalGraph = {}\n    // abs path -> input info\n    const inputs: Record<string, { imports: { path: string }[] }> = fromEntries(\n        Object.keys(meta.inputs).map((k) => {\n            const abs = path.resolve(esbuildCwd, k)\n            return [abs, meta.inputs[k]]\n        }),\n    )\n    while (toProcess.length) {\n        const newImports = flatten(\n            toProcess.map((absPath): string[] => {\n                if (alreadyProcessed.has(absPath)) {\n                    return []\n                }\n                alreadyProcessed.add(absPath)\n                // newEntry = path.posix.normalize(newEntry) // TODO does esbuild always use posix?\n                const input = inputs[absPath]\n                if (input == null) {\n                    throw new Error(\n                        `entry '${absPath}' is not present in esbuild metafile inputs ${JSON.stringify(\n                            Object.keys(inputs),\n                            null,\n                            2,\n                        )}`,\n                    )\n                }\n                // abs paths\n                const currentImports: string[] = input.imports\n                    ? input.imports\n                          .map((x) => x.path)\n                          .map((x) => {\n                              if (!path.isAbsolute(x)) {\n                                  return path.resolve(esbuildCwd, x)\n                              }\n                              return x\n                          })\n                          .filter((x) => Boolean(x))\n                    : []\n                // newImports.push(...currentImports)\n\n                const importer = osAgnosticPath(\n                    path.resolve(esbuildCwd, absPath),\n                    root,\n                )\n                if (!result[importer]) {\n                    result[importer] = []\n                }\n                for (let importee of currentImports) {\n                    if (!importee) {\n                        continue\n                    }\n                    importee = osAgnosticPath(importee, root)\n                    result[importer].push(importee)\n                }\n\n                return currentImports\n            }),\n        ).filter(Boolean)\n        toProcess = newImports\n    }\n    return result\n    // find the right output getting the key of the right output.inputs == input\n    // get the imports of the inputs.[entry].imports and attach them the importer\n    // do the same with the imports just found\n    // return the list of input files\n}\n"
  },
  {
    "path": "bundless/src/serve.ts",
    "content": "import chalk from 'chalk'\nimport chokidar, { FSWatcher } from 'chokidar'\nimport { createHash } from 'crypto'\nimport * as esbuild from 'esbuild'\nimport findUp from 'find-up'\nimport fs from 'fs-extra'\nimport { getPort } from 'get-port-please'\nimport { Server } from 'http'\nimport Koa, { DefaultContext, DefaultState } from 'koa'\nimport etagMiddleware from 'koa-etag'\nimport net from 'net'\nimport path from 'path'\nimport { Node } from 'posthtml'\nimport slash from 'slash'\nimport { promisify } from 'util'\nimport { HMRPayload } from './client/types'\nimport { Config, defaultConfig, getEntries, normalizeConfig } from './config'\nimport {\n    BUNDLE_MAP_PATH,\n    DEFAULT_PORT,\n    defaultImportableAssets,\n    JS_EXTENSIONS,\n    MAIN_FIELDS,\n    showGraph,\n    WEB_MODULES_PATH,\n    pnpapi,\n} from './constants'\nimport { HmrGraph } from './hmr-graph'\nimport { logger } from './logger'\nimport * as middlewares from './middleware'\nimport * as plugins from './plugins'\nimport {\n    OnResolved,\n    PluginsExecutor,\n    PluginsExecutorCtx,\n    sortPlugins,\n} from './plugins-executor'\nimport { prebundle } from './prebundle'\nimport { BundleMap, generateDefineObject } from './prebundle/esbuild'\nimport { isUrl } from './prebundle/support'\nimport {\n    appendQuery,\n    isEmpty,\n    Lock,\n    needsPrebundle,\n    osAgnosticPath,\n    parseWithQuery,\n    prepareError,\n} from './utils'\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development'\n\nexport interface ServerPluginContext {\n    root: string\n    app: Koa\n    graph: HmrGraph\n    pluginExecutor: PluginsExecutor\n    // server: Server\n    watcher: FSWatcher\n    server?: Server\n    config: Config\n    sendHmrMessage: (payload: HMRPayload) => void\n    port: number\n}\n\nexport type ServerMiddleware = (ctx: ServerPluginContext) => void\n\nexport async function serve(config: Config) {\n    config = normalizeConfig(config)\n\n    let server = new Server()\n\n    const { app } = await createDevApp(server, config)\n    server.on('request', app.callback())\n\n    const preferredServerPort = config.server?.port || DEFAULT_PORT\n    const port = await getPort(preferredServerPort)\n\n    if (Number(preferredServerPort) !== Number(port)) {\n        logger.warn(\n            `Using port ${port} because ${preferredServerPort} is already in use`,\n        )\n    }\n    await promisify(server.listen.bind(server) as any)(port)\n    process.stdout.write('\\n')\n    logger.log(\n        `Listening on ${chalk.cyan.underline(`http://localhost:${port}`)}`,\n    )\n    return server\n}\n\nexport const onResolveLock = new Lock()\n\nexport async function createDevApp(server: net.Server, config: Config) {\n    config = normalizeConfig(config)\n    if (!config.root) {\n        config.root = process.cwd()\n    }\n    const { root } = config\n\n    const app = new Koa<DefaultState, DefaultContext>()\n\n    const graph = new HmrGraph({ root, server })\n\n    const watcher = chokidar.watch(root, {\n        ignored: ['**/node_modules/**', '**/.git/**', '**/.bundless'],\n        useFsEvents: shouldUseFsEvents(),\n        ignoreInitial: true,\n        //   ...chokidarWatchOptions\n    })\n\n    const executorCtx: PluginsExecutorCtx = {\n        config,\n        isBuild: false,\n        graph,\n        root,\n        watcher,\n    }\n\n    // when resolving if we encounter a node_module run the prebundling phase and invalidate some caches\n    const onResolved: OnResolved = async function onResolved(arg) {\n        const { path: resolvedPath, importer } = arg\n        if (!resolvedPath) {\n            return\n        }\n        try {\n            // lock browser requests until not prebundled\n            await onResolveLock.wait()\n            if (!needsPrebundle(config, resolvedPath)) {\n                return\n            }\n            let relativePath = osAgnosticPath(resolvedPath, root)\n            if (bundleMap && bundleMap[relativePath]) {\n                const webBundle = bundleMap[relativePath]\n                return { ...arg, path: path.resolve(root, webBundle!) }\n            }\n            onResolveLock.lock()\n            // TODO do not rerun prebundle if file extension is an asset like css?\n            logger.log(\n                `Found still not bundled module '${relativePath}' imported by '${importer}', running prebundle phase:`,\n            )\n            logger.debug(resolvedPath)\n            graph.sendHmrMessage({\n                type: 'overlay-info-open',\n                info: {\n                    message: `Prebundling dependencies, please wait`,\n                    showSpinner: true,\n                },\n            })\n            // node module path not bundled, rerun bundling\n            const entryPoints = await getEntries(pluginsExecutor, config)\n            logger.debug(`got entries`)\n            // TODO make prebundled files cachable indefinitley given they are named with an hash\n            bundleMap = await prebundle({\n                entryPoints,\n                dest: path.resolve(root, WEB_MODULES_PATH),\n                config,\n                root,\n            }).catch((e) => {\n                graph.sendHmrMessage({\n                    type: 'overlay-info-close',\n                })\n                graph.sendHmrMessage({\n                    type: 'overlay-error',\n                    err: prepareError(e),\n                })\n                throw e\n            })\n            graph.sendHmrMessage({\n                type: 'overlay-info-close',\n            })\n            await updateHash(hashPath, depsHash)\n\n            graph.sendHmrMessage({ type: 'reload' })\n            const webBundle = bundleMap[relativePath]\n            if (!webBundle) {\n                throw new Error(\n                    `Bundle for '${relativePath}' was not generated in prebundling phase`,\n                )\n            }\n            return { ...arg, path: path.resolve(root, webBundle) }\n        } catch (e) {\n            throw e\n        } finally {\n            onResolveLock.ready()\n        }\n    }\n    const [prePlugins, postPlugins] = sortPlugins(config.plugins)\n\n    const initialOptions: esbuild.BuildOptions = {\n        loader: config.loader,\n        bundle: false,\n        minify: false,\n\n        define: config.define,\n    } // TODO better esbuild initialOptions for serve\n    // most of the logic is in plugins\n    const pluginsExecutor = new PluginsExecutor({\n        ctx: executorCtx,\n        isProfiling: config.printStats,\n        initialOptions,\n        onResolved,\n        plugins: [\n            ...prePlugins,\n            // TODO resolve `data:` imports, rollup emits imports with data: ...\n            plugins.HtmlResolverPlugin(),\n            plugins.UrlResolverPlugin(), // resolves urls with queries\n            plugins.HmrClientPlugin({\n                getPort: () => server.address()?.['port'],\n            }),\n            plugins.CssPlugin(),\n            // NodeResolvePlugin must be called first, to not skip prebundling\n            plugins.NodeResolvePlugin({\n                name: 'node-resolve',\n                mainFields: MAIN_FIELDS,\n                extensions: [...JS_EXTENSIONS],\n            }),\n            plugins.AssetsPlugin({\n                loader: config.loader,\n            }),\n            plugins.NodeModulesPolyfillPlugin({ namespace: 'node-builtins' }),\n            plugins.EsbuildTransformPlugin(),\n\n            plugins.JSONPlugin(),\n            plugins.ResolveSourcemapPlugin(),\n            plugins.HtmlTransformUrlsPlugin({\n                // must come before rewrite to not warn about the client script not having type=module\n                transforms: [rewriteScriptUrlsTransform],\n            }),\n            plugins.SourceMapSupportPlugin(), // adds source map to errors traces, must be after hmr client plugin\n            ...postPlugins,\n            plugins.RewritePlugin(),\n        ],\n    })\n\n    const bundleMapCachePath = path.resolve(root, BUNDLE_MAP_PATH)\n    const hashPath = path.resolve(root, WEB_MODULES_PATH, 'deps_hash')\n\n    const depsHash = await getDepsHash(root)\n    let prevHash = await fs\n        .readFile(hashPath)\n        .catch(() => '')\n        .then((x) => x.toString().trim())\n    const isHashDifferent = !depsHash || !prevHash || prevHash !== depsHash\n\n    if (config.prebundle?.force || isHashDifferent) {\n        if (isHashDifferent) {\n            logger.log(`Dependencies changed, running prebundle phase`)\n            logger.debug('isHashDifferent', isHashDifferent, prevHash, depsHash)\n        }\n        await fs.remove(path.resolve(root, '.bundless'))\n    }\n\n    let bundleMap: BundleMap = await fs\n        .readJSON(bundleMapCachePath)\n        .catch(() => {\n            return {}\n        })\n\n    if (isEmpty(bundleMap)) {\n        bundleMap = await prebundle({\n            entryPoints: await getEntries(pluginsExecutor, config),\n            config,\n            dest: path.resolve(root, WEB_MODULES_PATH),\n            root,\n        })\n        await updateHash(hashPath, depsHash)\n    }\n\n    server.once('close', async () => {\n        logger.debug('closing')\n        await Promise.all([watcher.close(), pluginsExecutor.close()])\n        app.emit('closed')\n    })\n\n    if (config.printStats) {\n        process.on('SIGINT', () => {\n            process.stdout.write('\\n')\n            console.info(pluginsExecutor.printProfilingResult())\n            process.exit(0)\n        })\n    }\n\n    app.on('error', (e: Error) => {\n        console.error(chalk.red(e.message))\n        console.error(chalk.red(e.stack))\n        graph.sendHmrMessage({ type: 'overlay-error', err: prepareError(e) })\n    })\n\n    server.once('listening', () => {\n        config.server = { ...config.server, port: server.address()?.['port'] }\n    })\n\n    if (config.server?.hmr) {\n        watcher.on('change', (filePath) => {\n            graph.onFileChange({\n                filePath,\n            })\n            if (showGraph) {\n                logger.log(graph.toString())\n            }\n        })\n    }\n\n    // only js ends up here\n\n    app.use(middlewares.openInEditorMiddleware({ root }))\n    app.use(middlewares.sourcemapMiddleware({ root }))\n    app.use(middlewares.pluginsMiddleware({ root, pluginsExecutor, watcher }))\n    app.use(middlewares.historyFallbackMiddleware({ root, pluginsExecutor }))\n    app.use(middlewares.staticServeMiddleware({ root }))\n    app.use(\n        middlewares.staticServeMiddleware({\n            root: path.resolve(root, 'public'),\n        }),\n    )\n\n    // app.use(etagMiddleware())\n\n    // cors\n    if (config.server?.cors) {\n        app.use(\n            require('@koa/cors')(\n                typeof config.server?.cors === 'boolean'\n                    ? {}\n                    : config.server?.cors,\n            ),\n        )\n    }\n\n    return { app, pluginsExecutor }\n}\n\n// hash assumes that import paths can only grow when installed dependencies grow, this is not the case for deep paths like `lodash/path`, in these cases you will need to use `--force`\n// TODO include config in hash\nasync function getDepsHash(root: string) {\n    const lockfileLoc = await findUp(\n        ['package-lock.json', 'yarn.lock', 'pnpm-lock.yaml'],\n        {\n            cwd: root,\n        },\n    )\n    if (!lockfileLoc) {\n        return ''\n    }\n    const content = await (await fs.readFile(lockfileLoc, 'utf-8')).toString()\n    return createHash('sha1').update(content).digest('base64').trim()\n}\n\nasync function updateHash(hashPath: string, newHash: string) {\n    await fs.createFile(hashPath)\n    await fs.writeFile(hashPath, newHash.trim())\n}\n\nexport const rewriteScriptUrlsTransform = (tree: Node) => {\n    let count = 0\n    tree.walk((node) => {\n        if (\n            node &&\n            node.tag === 'script' &&\n            node.attrs &&\n            node.attrs['src'] &&\n            !isUrl(node.attrs['src'])\n        ) {\n            count += 1\n            let importPath = node.attrs['src']\n            if (node.attrs['type'] !== 'module') {\n                logger.warn(\n                    `<script src=\"${importPath}\"> is missing type=\"module\". Only module scripts are processed by Bundless`,\n                )\n            }\n            const { query } = parseWithQuery(importPath)\n            if (query?.namespace != null) {\n                return node\n            }\n            node.attrs['src'] = appendQuery(importPath, `namespace=file`)\n        }\n        return node as any\n    })\n}\n\nfunction shouldUseFsEvents() {\n    try {\n        eval('require')('fsevents')\n        return true\n    } catch (e) {}\n    return false\n}\n"
  },
  {
    "path": "bundless/src/utils/index.ts",
    "content": "export * from './sourcemaps'\nexport * from './path'\nexport * from './utils'\n"
  },
  {
    "path": "bundless/src/utils/path.test.ts",
    "content": "import os from 'os'\nimport path from 'path'\nimport { fileToImportPath, importPathToFile } from './path'\n\nconst root = path.resolve(__dirname)\n\ndescribe('fileToImportPath and importPathToFile', () => {\n    const cases: {\n        path: string\n        expected: string\n        onlyWin?: boolean\n        onlyUnix?: true\n    }[] = [\n        { path: '../cosa/index.ts', expected: '/__..__/cosa/index.ts' },\n        {\n            path: '../cosa/folder/index.ts',\n            expected: '/__..__/cosa/folder/index.ts',\n        },\n        {\n            path: 'cosa/folder/../index.ts',\n            expected: '/cosa/index.ts',\n        },\n        {\n            path: 'cosa/folder/../../../../index.ts',\n            expected: '/__..__/__..__/index.ts',\n        },\n        {\n            path: path.posix.resolve(root, '../cosa/index.ts'),\n            expected: '/__..__/cosa/index.ts',\n            onlyUnix: true,\n        },\n        {\n            path: path.win32.resolve(root, '..\\\\cosa\\\\index.ts'),\n            expected: '/__..__/cosa/index.ts',\n            onlyWin: true,\n        },\n        {\n            path: `..\\\\cosa\\\\index.ts`,\n            expected: '/__..__/cosa/index.ts',\n            onlyWin: true,\n        },\n        {\n            path: path.win32.resolve(root, '..\\\\cosa\\\\index.ts'),\n            expected: '/__..__/cosa/index.ts',\n            onlyWin: true,\n        },\n    ]\n    for (let [i, testCase] of cases.entries()) {\n        test(i + ' ' + testCase.path, () => {\n            if (!testCase.onlyWin && os.platform() !== 'win32') {\n                const res1 = fileToImportPath(root, testCase.path, path.posix)\n                expect(res1).toBe(testCase.expected)\n                expect(importPathToFile(root, res1, path.posix)).toBe(\n                    path.posix.resolve(root, testCase.path),\n                )\n            }\n            if (!testCase.onlyUnix) {\n                const res2 = fileToImportPath(\n                    root,\n                    testCase.path.replace(/\\//g, '\\\\'),\n                    path.win32,\n                )\n                expect(res2).toBe(testCase.expected)\n                expect(importPathToFile(root, res2, path.win32)).toBe(\n                    path.win32.resolve(root, testCase.path),\n                )\n            }\n        })\n    }\n})\n"
  },
  {
    "path": "bundless/src/utils/path.ts",
    "content": "import path from 'path'\nimport defaultPathImpl from 'path'\nimport slash from 'slash'\n\nexport const dotdotEncoding = '__..__'\n\n// maybe keep track of namespace query here?\nexport function importPathToFile(\n    root: string,\n    request: string,\n    pathImpl = defaultPathImpl,\n) {\n    if (!request) {\n        return ''\n    }\n    request = decodeURIComponent(request)\n    request = cleanUrl(request)\n    request = removeLeadingSlash(request)\n    request = request.replace(/__\\.\\.__/g, '..')\n    request = pathImpl.resolve(root, request)\n    return request\n}\n\nexport function fileToImportPath(\n    root: string,\n    filePath: string,\n    pathImpl = defaultPathImpl,\n) {\n    filePath = filePath.replace(/\\//g, pathImpl.sep)\n    filePath = pathImpl.resolve(root, filePath)\n    const relative = pathImpl.relative(root, filePath)\n    filePath = slash(relative)\n    filePath = filePath.replace(/\\.\\.(\\/|\\\\)/g, dotdotEncoding + '$1')\n    filePath = '/' + filePath\n    return filePath\n}\n\nexport function osAgnosticPath(absPath: string | undefined, root: string) {\n    if (!root) {\n        throw new Error(\n            `root argument is required, cannot make os agnostic path for ${absPath}`,\n        )\n    }\n    if (!absPath) {\n        return ''\n    }\n    if (!path.isAbsolute(absPath)) {\n        absPath = path.resolve(root, absPath)\n    }\n    return slash(path.relative(root, absPath))\n}\n\nexport function removeLeadingSlash(p: string) {\n    return p.startsWith('/') ? p.slice(1) : p\n}\n\nexport const queryRE = /\\?.*$/\nexport const hashRE = /#.*$/\n\nexport const cleanUrl = (url: string) =>\n    url.replace(hashRE, '').replace(queryRE, '')\n"
  },
  {
    "path": "bundless/src/utils/profiling.test.ts",
    "content": "import { ansiChart, humanizeStats, stats } from './profiling'\n\ntest('ansiChart', () => {\n    const res = ansiChart(data, { limit: 4 })\n    console.log(res)\n})\ntest('humanizeStats', () => {\n    const res = humanizeStats({ context: stats(data) })\n    console.log(res)\n})\n\nconst data = [\n    { path: 'a', timeConsume: 100 },\n    { path: 'b', timeConsume: 1000 },\n    { path: 'c', timeConsume: 1000 },\n]\n"
  },
  {
    "path": "bundless/src/utils/profiling.ts",
    "content": "import chalk from 'chalk'\nimport { max, quantile } from 'simple-statistics'\n\nconst MS_IN_MINUTE = 60000\nconst MS_IN_SECOND = 1000\n\ntype Quantiles = [number, number, number] | null\n\ninterface StatsResult {\n    quantiles: Quantiles\n    max: number\n    outliers: FolderStats[]\n}\n\ninterface FolderStats {\n    path: string\n    timeConsume: number\n}\n\nfunction bg(text: string, fn = 'cyan') {\n    return chalk.bgBlack[fn](text)\n}\n\nfunction fg(text, time) {\n    let modifier = chalk.bold\n    if (time > 10000) {\n        modifier = modifier.red\n    } else if (time > 2000) {\n        modifier = modifier.yellow\n    } else {\n        modifier = modifier.green\n    }\n\n    return modifier(text)\n}\n\nexport function ansiChart(\n    data: FolderStats[],\n    options?: { limit: number },\n): string {\n    const highlights = stats(data)\n    const maxWidth = 10\n    const shortedData = data.sort(\n        (a, b) => Number(b['timeConsume']) - Number(a['timeConsume']),\n    )\n    const limitedData =\n        options && options.limit\n            ? shortedData.slice(0, options.limit)\n            : shortedData\n\n    return limitedData\n        .map((item) => {\n            const label = item['path']\n            const v = Number(item['timeConsume'])\n            const barLength =\n                Math.max(1, Math.round((v * maxWidth) / highlights.max)) || 0\n            const padLength = 10 - barLength\n            const barColor = highlights.outliers.find(\n                ({ path }) => path === label,\n            )\n                ? chalk.yellowBright\n                : chalk.greenBright\n            return [\n                '  ',\n                barColor(new Array(barLength).fill('▇').join('')),\n                new Array(padLength).fill(' ').join(''),\n                '    ',\n                `[${fg(humanizeDuration(v), v)}] - ${label}`,\n            ].join('')\n        })\n        .join('\\n')\n}\n\nfunction humanizeDuration(value: number) {\n    const mins = Math.floor(value / MS_IN_MINUTE)\n    const secondsRaw = (value - mins * MS_IN_MINUTE) / MS_IN_SECOND\n\n    const secondsWhole = Math.floor(secondsRaw)\n    const secondsRemainder = Math.min(secondsRaw - secondsWhole, 0.99)\n\n    let seconds = String(secondsWhole)\n\n    if (secondsRemainder) {\n        seconds += String(\n            secondsRemainder\n                .toPrecision(3)\n                .replace(/^0/u, '')\n                .replace(/0+$/u, '')\n                .replace(/^\\.$/u, '')\n                .padEnd(4, '0'),\n        )\n    }\n\n    const tokens: string[] = []\n\n    if (mins > 0) {\n        tokens.push(`${mins} min${mins > 1 ? 's' : ''}`)\n    }\n\n    tokens.push(`${seconds} secs`)\n\n    return tokens.join(' ')\n}\n\n/**\n * detect if value is an outlet value.\n *\n * if the value is over double inter quartile range\n * @param {number[]} quartiles\n * @param {number} value\n */\nfunction outlier(quartiles: Quantiles, value: number) {\n    if (!quartiles) {\n        return 0\n    }\n    const interQuartileRange = quartiles[2] - quartiles[0]\n    return value - quartiles[2] > interQuartileRange * 2\n}\n\n/**\n * generate stats from data\n * @param folderStats folder name and time consume\n * @returns quantiles, max and outliers from stats\n */\nexport function stats(folderStats: FolderStats[]): StatsResult {\n    if (!folderStats.length) {\n        return {\n            quantiles: null,\n            max: Infinity,\n            outliers: [],\n        }\n    }\n\n    const data = folderStats.map((v) => v.timeConsume)\n    const quantiles: Quantiles = [\n        quantile(data, 0.25),\n        quantile(data, 0.5),\n        quantile(data, 0.75),\n    ]\n\n    return {\n        quantiles,\n        max: max(data),\n        outliers: folderStats.filter((d) => outlier(quantiles, d.timeConsume)),\n    }\n}\n\nexport function humanizeStats(stats: { [key: string]: StatsResult }): string {\n    const result: string[] = []\n    for (const key in stats) {\n        const { outliers } = stats[key]\n        if (outliers.length) {\n            result.push(\n                `Slowest ${key} \\n\\t${outliers\n                    .sort((a, b) => b.timeConsume - a.timeConsume)\n                    .slice(0, 5)\n                    .map(\n                        (o) =>\n                            `${fg(\n                                humanizeDuration(o.timeConsume),\n                                o.timeConsume,\n                            )} \\t ${bg(o.path, 'whiteBright')}`,\n                    )\n                    .join(',\\n\\t')}`,\n            )\n        }\n    }\n\n    return result.join('\\n\\n')\n}\n"
  },
  {
    "path": "bundless/src/utils/sourcemaps.ts",
    "content": "import merge from 'merge-source-map'\nimport { RawSourceMap,  } from 'source-map'\n\nexport function mergeSourceMap(\n    oldMap: RawSourceMap | null | undefined,\n    newMap: RawSourceMap,\n): RawSourceMap {\n    if (!oldMap) {\n        return newMap\n    }\n    // merge-source-map will overwrite original sources if newMap also has\n    // sourcesContent\n\n    newMap.sourcesContent = []\n    return merge(oldMap, newMap) as RawSourceMap\n}\n\nexport function genSourceMapString(map: RawSourceMap | string | undefined) {\n    if (typeof map !== 'string') {\n        map = JSON.stringify(map)\n    }\n    return `\\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(\n        map,\n    ).toString('base64')}`\n}\n"
  },
  {
    "path": "bundless/src/utils/utils.ts",
    "content": "import { parse as _parse } from '@babel/parser'\nimport picomatch from 'picomatch'\nimport { ParserOptions } from '@babel/core'\nimport strip from 'strip-ansi'\nimport { Statement } from '@babel/types'\nimport escapeStringRegexp from 'escape-string-regexp'\nimport { EventEmitter, once } from 'events'\n\nimport fs from 'fs'\nimport path from 'path'\nimport qs, { ParsedQs } from 'qs'\nimport slash from 'slash'\nimport { Readable } from 'stream'\nimport { Config } from '../config'\nimport { cleanUrl, queryRE } from './path'\nimport { JS_EXTENSIONS } from '../constants'\n\nexport const jsSrcRE = /\\.(?:(?:j|t)sx?|vue)$|\\.mjs$/\nexport const urlRE = /url\\(\\s*('[^']+'|\"[^\"]+\"|[^'\")]+)\\s*\\)/\nexport const cssPreprocessLangRE = /\\.(less|sass|scss|styl|stylus|postcss)$/\nexport const cssModuleRE = /\\.module\\.(less|sass|scss|styl|stylus|postcss|css)$/\n\nexport const isCSSRequest = (file: string) =>\n    file.endsWith('.css') || cssPreprocessLangRE.test(file)\n\nconst externalRE = /^(https?:)?\\/\\//\nexport const isExternalUrl = (url: string) => externalRE.test(url)\n\n/**\n * Check if a request is an import from js instead of a native resource request\n * i.e. differentiate\n * `import('/style.css')`\n * from\n * `<link rel=\"stylesheet\" href=\"/style.css\">`\n *\n * The ?import query is injected by serverPluginModuleRewrite.\n */\nexport const isImportRequest = (ctx): boolean => {\n    return ctx.query.import != null\n}\n\nconst range: number = 2\n\nexport function generateCodeFrame(\n    source: string,\n    start: number = 0,\n    end: number = source.length,\n): string {\n    const lines = source.split(/\\r?\\n/)\n    let count = 0\n    const res: string[] = []\n    for (let i = 0; i < lines.length; i++) {\n        count += lines[i].length + 1\n        if (count >= start) {\n            for (let j = i - range; j <= i + range || end > count; j++) {\n                if (j < 0 || j >= lines.length) continue\n                res.push(\n                    `${j + 1}${' '.repeat(3 - String(j + 1).length)}|  ${\n                        lines[j]\n                    }`,\n                )\n                const lineLength = lines[j].length\n                if (j === i) {\n                    // push underline\n                    const pad = start - (count - lineLength) + 1\n                    const length = end > count ? lineLength - pad : end - start\n                    res.push(`   |  ` + ' '.repeat(pad) + '^'.repeat(length))\n                } else if (j > i) {\n                    if (end > count) {\n                        const length = Math.min(end - count, lineLength)\n                        res.push(`   |  ` + '^'.repeat(length))\n                    }\n                    count += lineLength + 1\n                }\n            }\n            break\n        }\n    }\n    return res.join('\\n')\n}\n\n/**\n * Read already set body on a Koa context and normalize it into a string.\n * Useful in post-processing middlewares.\n */\nexport async function readBody(\n    stream: Readable | Buffer | string | null,\n): Promise<string | null> {\n    try {\n        if (stream instanceof Readable) {\n            return new Promise((resolve, reject) => {\n                let res = ''\n                stream\n                    .on('data', (chunk) => (res += chunk))\n                    .on('error', reject)\n                    .on('end', () => {\n                        resolve(res)\n                    })\n            })\n        } else {\n            return !stream || typeof stream === 'string'\n                ? stream\n                : stream.toString()\n        }\n    } catch (e) {\n        throw new Error(`Cannot read body, ${e}`)\n    }\n}\n\nexport const parseWithQuery = (\n    id: string,\n): {\n    path: string\n    query: ParsedQs\n} => {\n    const queryMatch = id.match(queryRE)\n    if (queryMatch) {\n        return {\n            path: slash(cleanUrl(id)),\n            query: qs.parse(queryMatch[0].slice(1)),\n        }\n    }\n    return {\n        path: id,\n        query: {},\n    }\n}\n\nexport async function readFile(p: string) {\n    try {\n        return await (await fs.promises.readFile(p)).toString()\n    } catch (e) {\n        // maintains error.code property\n        e.message = `cannot read file ${p}, ${e.message}`\n        throw e\n    }\n}\n\nexport function flatten<T>(arr: T[][]): T[] {\n    return arr.reduce(function (flat, toFlatten) {\n        return flat.concat(\n            Array.isArray(toFlatten) ? flatten(toFlatten as any) : toFlatten,\n        )\n    }, [])\n}\n\nexport function needsPrebundle(config: Config, p: string) {\n    if (p.includes('node_modules') && !p.includes('.bundless')) {\n        return true\n    }\n    const includeWorkspacePackages = config.prebundle?.includeWorkspacePackages\n    if (includeWorkspacePackages != null) {\n        if (Array.isArray(includeWorkspacePackages)) {\n            const matchers = includeWorkspacePackages.map((g) => picomatch(g))\n            return matchers.some((fn) => fn(p))\n        }\n        if (includeWorkspacePackages === true) {\n            // for yarn berry\n            if (p.includes('/.yarn/') || p.includes('\\\\.yarn\\\\')) {\n                return true\n            }\n            const isOutside = path.relative(config.root!, p).startsWith('..')\n            if (isOutside) {\n                return true\n            }\n        }\n    }\n    return false\n}\n\nexport const babelParserOpts: ParserOptions = {\n    sourceType: 'module',\n    allowAwaitOutsideFunction: true,\n    plugins: [\n        // required for import.meta.hot\n        'importMeta',\n        'jsx',\n        // by default we enable proposals slated for ES2020.\n        // full list at https://babeljs.io/docs/en/next/babel-parser#plugins\n        // this should be kept in async with @vue/compiler-core's support range\n        'bigInt',\n        'optionalChaining',\n        'classProperties',\n        'nullishCoalescingOperator',\n    ],\n}\n\nexport function parse(\n    source: string,\n    sourceFilename: string = 'file.tsx',\n): Statement[] {\n    try {\n        return _parse(source, { ...babelParserOpts, sourceFilename }).program\n            .body\n    } catch (e) {\n        throw new Error(`Cannot parse with babel: ${e}`)\n    }\n}\n\nexport const jsTypeRegex = new RegExp(\n    '(' + [...JS_EXTENSIONS].map(escapeStringRegexp).join('|') + ')(\\\\?.*)?$',\n)\n\nexport function appendQuery(url: string, query: string) {\n    if (query.startsWith('?')) {\n        query = query.slice(1)\n    }\n    if (url.includes('?')) {\n        return `${url}&${query}`\n    }\n    return `${url}?${query}`\n}\n\nexport function partition<T>(\n    ary: T[],\n    callback: (x: T) => boolean,\n): [T[], T[]] {\n    const initial: [T[], T[]] = [[], []]\n    return ary.reduce((acc, e) => {\n        acc[callback(e) ? 0 : 1].push(e)\n        return acc\n    }, initial)\n}\n\nexport class Lock extends EventEmitter {\n    private READY_EVENT = 'READY_EVENT'\n    isReady = true\n    constructor() {\n        super()\n    }\n    ready() {\n        this.emit(this.READY_EVENT)\n    }\n    lock() {\n        this.isReady = false\n        this.once(this.READY_EVENT, () => {\n            this.isReady = true\n        })\n    }\n    async wait() {\n        if (this.isReady) {\n            return\n        }\n        return once(this, this.READY_EVENT)\n    }\n}\n\nexport function prepareError(err: Error) {\n    return {\n        ...err,\n        message: strip(err.message),\n        stack: strip(err.stack || ''),\n        // frame: strip(err?.frame || ''),\n    }\n}\n\nexport const sleep = (t) => new Promise((r) => setTimeout(() => r, t))\n\nexport function isEmpty(map) {\n    return !map || Object.keys(map).length === 0\n}\n\nexport function computeDuration(\n    startTime: number,\n    interval = 'seconds',\n): string {\n    const endTime = Date.now()\n    const delta = endTime - startTime\n    const intervalMap = {\n        seconds: 1000,\n    }\n    const seconds = delta / (intervalMap[interval] || 1000)\n    return seconds.toFixed(2) + ' ' + interval\n}\n\nconst reservedWords =\n    'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public'\nconst builtins =\n    'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl'\n\nconst forbiddenIdentifiers = new Set<string>(\n    `${reservedWords} ${builtins}`.split(' '),\n)\nforbiddenIdentifiers.add('')\n\nexport function makeLegalIdentifier(str) {\n    let identifier = str\n        .replace(/-(\\w)/g, (_, letter) => letter.toUpperCase())\n        .replace(/[^$_a-zA-Z0-9]/g, '_')\n\n    if (/\\d/.test(identifier[0]) || forbiddenIdentifiers.has(identifier)) {\n        identifier = `_${identifier}`\n    }\n\n    return identifier || '_'\n}\n"
  },
  {
    "path": "bundless/tsconfig.json",
    "content": "{\n    \"extends\": \"../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "examples/react-javascript/.gitignore",
    "content": ".bundless\nnode_modules\n.DS_Store\n"
  },
  {
    "path": "examples/react-javascript/bundless.config.js",
    "content": "const { ReactRefreshPlugin } = require('@bundless/plugin-react-refresh')\n\n/**\n * @type { import('@bundless/cli').Config }\n */\nmodule.exports = {\n    plugins: [ReactRefreshPlugin()],\n}\n"
  },
  {
    "path": "examples/react-javascript/package.json",
    "content": "{\n    \"name\": \"example-react-javascript\",\n    \"private\": true,\n    \"version\": \"1.0.0\",\n    \"scripts\": {\n        \"dev\": \"bundless dev\",\n        \"build\": \"bundless build\"\n    },\n    \"dependencies\": {\n        \"react\": \"experimental\",\n        \"react-dom\": \"experimental\"\n    },\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@bundless/plugin-react-refresh\": \"2.1.0\"\n    },\n    \"license\": \"MIT\"\n}\n"
  },
  {
    "path": "examples/react-javascript/public/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/src/index.jsx\"></script>\n        <div id=\"root\"></div>\n    </body>\n</html>\n"
  },
  {
    "path": "examples/react-javascript/src/app.jsx",
    "content": "import React from 'react'\n\nexport default function App() {\n    return (\n        <div className='App'>\n            <h1>Hello Bundless</h1>\n            <h2>Start editing to see some magic happen!</h2>\n        </div>\n    )\n}\n"
  },
  {
    "path": "examples/react-javascript/src/index.jsx",
    "content": "import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport App from './app'\n\nconst rootElement = document.getElementById('root')\nReactDOM.render(\n    <React.StrictMode>\n        <App />\n    </React.StrictMode>,\n    rootElement,\n)\n"
  },
  {
    "path": "examples/react-javascript/src/styles.css",
    "content": ".App {\n    font-family: sans-serif;\n    text-align: center;\n}\n"
  },
  {
    "path": "examples/react-typescript/.gitignore",
    "content": ".bundless\nnode_modules\n.DS_Store\n"
  },
  {
    "path": "examples/react-typescript/bundless.config.js",
    "content": "const { ReactRefreshPlugin } = require('@bundless/plugin-react-refresh')\n\n/**\n * @type { import('@bundless/cli').Config }\n */\nmodule.exports = {\n    plugins: [ReactRefreshPlugin()],\n}\n"
  },
  {
    "path": "examples/react-typescript/package.json",
    "content": "{\n    \"name\": \"example-react-typescript\",\n    \"private\": true,\n    \"version\": \"1.0.0\",\n    \"scripts\": {\n        \"dev\": \"bundless dev\",\n        \"build\": \"bundless build\"\n    },\n    \"dependencies\": {\n        \"react\": \"experimental\",\n        \"react-dom\": \"experimental\"\n    },\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@bundless/plugin-react-refresh\": \"2.1.0\"\n    },\n    \"license\": \"MIT\"\n}\n"
  },
  {
    "path": "examples/react-typescript/public/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/src/index.tsx\"></script>\n        <div id=\"root\"></div>\n    </body>\n</html>\n"
  },
  {
    "path": "examples/react-typescript/src/app.tsx",
    "content": "import React from 'react'\n\nexport default function App() {\n    return (\n        <div className='App'>\n            <h1>Hello Bundless</h1>\n            <h2>Start editing to see some magic happen!</h2>\n        </div>\n    )\n}\n"
  },
  {
    "path": "examples/react-typescript/src/index.tsx",
    "content": "import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport App from './app'\n\nconst rootElement = document.getElementById('root')\nReactDOM.render(\n    <React.StrictMode>\n        <App />\n    </React.StrictMode>,\n    rootElement,\n)\n"
  },
  {
    "path": "examples/react-typescript/src/styles.css",
    "content": ".App {\n    font-family: sans-serif;\n    text-align: center;\n}\n"
  },
  {
    "path": "examples/react-typescript/tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"esModuleInterop\": true,\n        \"skipLibCheck\": true,\n        \"noEmit\": true,\n        \"jsx\": \"react\",\n        \"moduleResolution\": \"Node\"\n    }\n}\n"
  },
  {
    "path": "examples/svelte/.gitignore",
    "content": "node_modules\nout\n.bundless\n.DS_Store\n"
  },
  {
    "path": "examples/svelte/bundless.config.js",
    "content": "const { SveltePlugin } = require('@bundless/plugin-svelte')\n\n/**\n * @type { import('@bundless/cli').Config }\n */\nmodule.exports = {\n    plugins: [SveltePlugin()],\n}\n"
  },
  {
    "path": "examples/svelte/package.json",
    "content": "{\n    \"name\": \"svelte-example\",\n    \"version\": \"1.0.0\",\n    \"private\": true,\n    \"scripts\": {\n        \"build\": \"bundless build\",\n        \"dev\": \"bundless dev\"\n    },\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@bundless/plugin-svelte\": \"^0.0.1\",\n        \"svelte\": \"^3.32.1\"\n    }\n}\n"
  },
  {
    "path": "examples/svelte/public/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n\n        <title>Svelte app</title>\n\n        <link rel=\"icon\" type=\"image/png\" href=\"/favicon.png\" />\n    </head>\n\n    <body>\n        <script type=\"module\" src=\"/src/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "examples/svelte/scripts/setupTypeScript.js",
    "content": "// @ts-check\n\n/** This script modifies the project to support TS code in .svelte files like:\n\n  <script lang=\"ts\">\n  \texport let name: string;\n  </script>\n \n  As well as validating the code for CI.\n  */\n\n/**  To work on this script:\n  rm -rf test-template template && git clone sveltejs/template test-template && node scripts/setupTypeScript.js test-template\n*/\n\nconst fs = require(\"fs\")\nconst path = require(\"path\")\nconst { argv } = require(\"process\")\n\nconst projectRoot = argv[2] || path.join(__dirname, \"..\")\n\n// Add deps to pkg.json\nconst packageJSON = JSON.parse(fs.readFileSync(path.join(projectRoot, \"package.json\"), \"utf8\"))\npackageJSON.devDependencies = Object.assign(packageJSON.devDependencies, {\n  \"svelte-check\": \"^1.0.0\",\n  \"svelte-preprocess\": \"^4.0.0\",\n  \"@rollup/plugin-typescript\": \"^6.0.0\",\n  \"typescript\": \"^3.9.3\",\n  \"tslib\": \"^2.0.0\",\n  \"@tsconfig/svelte\": \"^1.0.0\"\n})\n\n// Add script for checking\npackageJSON.scripts = Object.assign(packageJSON.scripts, {\n  \"validate\": \"svelte-check\"\n})\n\n// Write the package JSON\nfs.writeFileSync(path.join(projectRoot, \"package.json\"), JSON.stringify(packageJSON, null, \"  \"))\n\n// mv src/main.js to main.ts - note, we need to edit rollup.config.js for this too\nconst beforeMainJSPath = path.join(projectRoot, \"src\", \"main.js\")\nconst afterMainTSPath = path.join(projectRoot, \"src\", \"main.ts\")\nfs.renameSync(beforeMainJSPath, afterMainTSPath)\n\n// Switch the app.svelte file to use TS\nconst appSveltePath = path.join(projectRoot, \"src\", \"App.svelte\")\nlet appFile = fs.readFileSync(appSveltePath, \"utf8\")\nappFile = appFile.replace(\"<script>\", '<script lang=\"ts\">')\nappFile = appFile.replace(\"export let name;\", 'export let name: string;')\nfs.writeFileSync(appSveltePath, appFile)\n\n// Edit rollup config\nconst rollupConfigPath = path.join(projectRoot, \"rollup.config.js\")\nlet rollupConfig = fs.readFileSync(rollupConfigPath, \"utf8\")\n\n// Edit imports\nrollupConfig = rollupConfig.replace(`'rollup-plugin-terser';`, `'rollup-plugin-terser';\nimport sveltePreprocess from 'svelte-preprocess';\nimport typescript from '@rollup/plugin-typescript';`)\n\n// Replace name of entry point\nrollupConfig = rollupConfig.replace(`'src/main.js'`, `'src/main.ts'`)\n\n// Add preprocessor\nrollupConfig = rollupConfig.replace(\n  'compilerOptions:',\n  'preprocess: sveltePreprocess(),\\n\\t\\t\\tcompilerOptions:'\n);\n\n// Add TypeScript\nrollupConfig = rollupConfig.replace(\n  'commonjs(),',\n  'commonjs(),\\n\\t\\ttypescript({\\n\\t\\t\\tsourceMap: !production,\\n\\t\\t\\tinlineSources: !production\\n\\t\\t}),'\n);\nfs.writeFileSync(rollupConfigPath, rollupConfig)\n\n// Add TSConfig\nconst tsconfig = `{\n  \"extends\": \"@tsconfig/svelte/tsconfig.json\",\n\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"node_modules/*\", \"__sapper__/*\", \"public/*\"]\n}`\nconst tsconfigPath =  path.join(projectRoot, \"tsconfig.json\")\nfs.writeFileSync(tsconfigPath, tsconfig)\n\n// Delete this script, but not during testing\nif (!argv[2]) {\n  // Remove the script\n  fs.unlinkSync(path.join(__filename))\n\n  // Check for Mac's DS_store file, and if it's the only one left remove it\n  const remainingFiles = fs.readdirSync(path.join(__dirname))\n  if (remainingFiles.length === 1 && remainingFiles[0] === '.DS_store') {\n    fs.unlinkSync(path.join(__dirname, '.DS_store'))\n  }\n\n  // Check if the scripts folder is empty\n  if (fs.readdirSync(path.join(__dirname)).length === 0) {\n    // Remove the scripts folder\n    fs.rmdirSync(path.join(__dirname))\n  }\n}\n\n// Adds the extension recommendation\nfs.mkdirSync(path.join(projectRoot, \".vscode\"), { recursive: true })\nfs.writeFileSync(path.join(projectRoot, \".vscode\", \"extensions.json\"), `{\n  \"recommendations\": [\"svelte.svelte-vscode\"]\n}\n`)\n\nconsole.log(\"Converted to TypeScript.\")\n\nif (fs.existsSync(path.join(projectRoot, \"node_modules\"))) {\n  console.log(\"\\nYou will need to re-run your dependency manager to get started.\")\n}\n"
  },
  {
    "path": "examples/svelte/src/App.svelte",
    "content": "<script>\n    export let name\n</script>\n\n<main>\n    <h1>Hello {name}!</h1>\n    <p>\n        This is an example svelte application built with <a\n            href=\"https://github.com/remorses/bundless\">bundless</a\n        >\n    </p>\n</main>\n\n<style>\n    main {\n        text-align: center;\n        padding: 1em;\n        max-width: 240px;\n        margin: 0 auto;\n    }\n\n    h1 {\n        color: #ff3e00;\n        text-transform: uppercase;\n        font-size: 4em;\n        font-weight: 100;\n    }\n\n    @media (min-width: 640px) {\n        main {\n            max-width: none;\n        }\n    }\n</style>\n"
  },
  {
    "path": "examples/svelte/src/global.css",
    "content": "html, body {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\nbody {\n\tcolor: #333;\n\tmargin: 0;\n\tpadding: 8px;\n\tbox-sizing: border-box;\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n}\n\na {\n\tcolor: rgb(0,100,200);\n\ttext-decoration: none;\n}\n\na:hover {\n\ttext-decoration: underline;\n}\n\na:visited {\n\tcolor: rgb(0,80,160);\n}\n\nlabel {\n\tdisplay: block;\n}\n\ninput, button, select, textarea {\n\tfont-family: inherit;\n\tfont-size: inherit;\n\t-webkit-padding: 0.4em 0;\n\tpadding: 0.4em;\n\tmargin: 0 0 0.5em 0;\n\tbox-sizing: border-box;\n\tborder: 1px solid #ccc;\n\tborder-radius: 2px;\n}\n\ninput:disabled {\n\tcolor: #ccc;\n}\n\nbutton {\n\tcolor: #333;\n\tbackground-color: #f4f4f4;\n\toutline: none;\n}\n\nbutton:disabled {\n\tcolor: #999;\n}\n\nbutton:not(:disabled):active {\n\tbackground-color: #ddd;\n}\n\nbutton:focus {\n\tborder-color: #666;\n}\n"
  },
  {
    "path": "examples/svelte/src/main.js",
    "content": "import './global.css'\nimport App from './App.svelte'\n\nconst app = new App({\n    target: document.body,\n    props: {\n        name: 'world',\n    },\n})\n\nexport default app\n"
  },
  {
    "path": "examples/vanilla-javascript/.gitignore",
    "content": ".bundless\nnode_modules\n.DS_Store\n"
  },
  {
    "path": "examples/vanilla-javascript/bundless.config.js",
    "content": "/**\n * @type { import('@bundless/cli').Config }\n */\nmodule.exports = {}\n"
  },
  {
    "path": "examples/vanilla-javascript/package.json",
    "content": "{\n    \"name\": \"example-vanilla-javascript\",\n    \"private\": true,\n    \"version\": \"1.0.0\",\n    \"scripts\": {\n        \"dev\": \"bundless dev\",\n        \"build\": \"bundless build\"\n    },\n    \"dependencies\": {},\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@bundless/plugin-react-refresh\": \"2.1.0\"\n    },\n    \"license\": \"MIT\"\n}\n"
  },
  {
    "path": "examples/vanilla-javascript/public/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/src/index.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "examples/vanilla-javascript/src/index.js",
    "content": "var node = document.createElement('p')\nvar textnode = document.createTextNode('Hey!')\nnode.appendChild(textnode)\ndocument.body.appendChild(node)\n"
  },
  {
    "path": "examples/vanilla-javascript/src/styles.css",
    "content": "body {\n    font-family: sans-serif;\n    text-align: center;\n}\n"
  },
  {
    "path": "fixtures/html-page/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/html-page/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/html-page: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/html-page: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/html-page: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n]\n`;\n\nexports[`snapshots fixtures/html-page: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/html-page/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/outsider.js",
    "content": "export default 'Hi, i am outside of root'\n"
  },
  {
    "path": "fixtures/resolve-sourcemap/__mirror__/folder/main.js",
    "content": "console.log('Hello world!')\n\nvar node = document.createElement('LI') \nvar textnode = document.createTextNode('works!') \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n\n//# sourceMappingURL=/folder/main.js.map"
  },
  {
    "path": "fixtures/resolve-sourcemap/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/folder/main.js?namespace=file\"></script>\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/resolve-sourcemap/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/resolve-sourcemap: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/resolve-sourcemap: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/folder/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/resolve-sourcemap: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"folder/main.js\",\n  \"index.html\",\n]\n`;\n\nexports[`snapshots fixtures/resolve-sourcemap: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/folder/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/folder/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/resolve-sourcemap/folder/main.js",
    "content": "console.log('Hello world!')\n\nvar node = document.createElement('LI') \nvar textnode = document.createTextNode('works!') \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n\n//# sourceMappingURL=main.js.map"
  },
  {
    "path": "fixtures/resolve-sourcemap/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/folder/main.js\"></script>\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/serve-outside-root/__mirror__/__..__/outsider.js",
    "content": "export default 'Hi, i am outside of root'\n"
  },
  {
    "path": "fixtures/serve-outside-root/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/serve-outside-root/__mirror__/main.js",
    "content": "import text from '/__..__/outsider.js?namespace=file&t=0'\n\nconsole.log(text)\n\nvar node = document.createElement('pre') \nvar textnode = document.createTextNode(text) \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n"
  },
  {
    "path": "fixtures/serve-outside-root/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/serve-outside-root: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/serve-outside-root: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/__..__/outsider.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/serve-outside-root: mirror 1`] = `\nArray [\n  \"__..__/outsider.js\",\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/serve-outside-root: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/__..__/outsider.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/__..__/outsider.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/serve-outside-root/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/serve-outside-root/main.js",
    "content": "import text from '../outsider'\n\nconsole.log(text)\n\nvar node = document.createElement('pre') \nvar textnode = document.createTextNode(text) \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n"
  },
  {
    "path": "fixtures/simple-js/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/simple-js/__mirror__/main.js",
    "content": "console.log('Hello world!')\n\nvar node = document.createElement('LI') \nvar textnode = document.createTextNode('works!') \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n"
  },
  {
    "path": "fixtures/simple-js/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/simple-js: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/simple-js: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/simple-js: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/simple-js: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/simple-js/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/simple-js/main.js",
    "content": "console.log('Hello world!')\n\nvar node = document.createElement('LI') \nvar textnode = document.createTextNode('works!') \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n"
  },
  {
    "path": "fixtures/with-alias-plugin/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.tsx?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-alias-plugin/__mirror__/main.tsx",
    "content": "import {text} from \"/text.ts?namespace=file&t=0\";\nimport React from \"/.bundless/node_modules/preact/compat/dist/compat.module.js.js?namespace=file&t=0\";\nconst node = document.createElement(\"pre\");\nnode.appendChild(document.createTextNode(text));\ndocument.body.appendChild(node);\nconsole.log(React.cloneElement);\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLWFsaWFzLXBsdWdpbi9tYWluLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAanN4IGpzeFxuaW1wb3J0IHsgdGV4dCB9IGZyb20gJ0B2aXJ0dWFsJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJylcbm5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpXG5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5vZGUpXG5cbmNvbnNvbGUubG9nKFJlYWN0LmNsb25lRWxlbWVudClcbiJdLCJtYXBwaW5ncyI6IkFBQ0E7QUFDQTtBQUVBLE1BQU0sT0FBTyxTQUFTLGNBQWM7QUFDcEMsS0FBSyxZQUFZLFNBQVMsZUFBZTtBQUN6QyxTQUFTLEtBQUssWUFBWTtBQUUxQixRQUFRLElBQUksTUFBTTsiLCJuYW1lcyI6W119"
  },
  {
    "path": "fixtures/with-alias-plugin/__mirror__/text.ts",
    "content": "export const text = \"virtual\";\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLWFsaWFzLXBsdWdpbi90ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0ZXh0ID0gJ3ZpcnR1YWwnXG4iXSwibWFwcGluZ3MiOiJBQUFPLGFBQU0sT0FBTzsiLCJuYW1lcyI6W119"
  },
  {
    "path": "fixtures/with-alias-plugin/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-alias-plugin: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-alias-plugin: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/preact/compat/dist/compat.module.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.tsx?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-alias-plugin: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.tsx\",\n  \"text.ts\",\n]\n`;\n\nexports[`snapshots fixtures/with-alias-plugin: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/preact/compat/dist/compat.module.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/preact/compat/dist/compat.module.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.tsx?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.ts?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-alias-plugin/bundless.config.js",
    "content": "const path = require('path')\nconst { AliasPlugin } = require('@bundless/plugin-alias')\n\nmodule.exports = {\n    build: {\n        minify: false,\n    },\n    plugins: [\n        AliasPlugin({\n            entries: [\n                { find: 'react', replacement: 'preact/compat' },\n                { find: '@virtual', replacement: './text.ts' },\n            ],\n            // paths: {\n            //     'react/*': [require.resolve('preact/compat')],\n            //     react: [require.resolve('preact/compat')],\n            //     '@virtual': ['text.ts'],\n            // },\n        }),\n    ],\n}\n"
  },
  {
    "path": "fixtures/with-alias-plugin/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.tsx\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-alias-plugin/main.tsx",
    "content": "// @jsx jsx\nimport { text } from '@virtual'\nimport React from 'react'\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text))\ndocument.body.appendChild(node)\n\nconsole.log(React.cloneElement)\n"
  },
  {
    "path": "fixtures/with-alias-plugin/package.json",
    "content": "{\n    \"name\": \"fixtures-with-alias\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"dependencies\": {\n        \"preact\": \"*\",\n        \"react-dom\": \"experimental\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-alias-plugin/text.ts",
    "content": "export const text = 'virtual'\n"
  },
  {
    "path": "fixtures/with-assets-imports/__mirror__/dynamic-import.js",
    "content": "export default 'dynamic import'\n"
  },
  {
    "path": "fixtures/with-assets-imports/__mirror__/file.css.cssjs",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); \n\nconst css = \"body {\\n    background-color: aqua;\\n}\";\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\nexport default css"
  },
  {
    "path": "fixtures/with-assets-imports/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-assets-imports/__mirror__/main.js",
    "content": "import image from '/image.png?namespace=file&t=0'\nimport '/file.css.cssjs?namespace=file&t=0'\n\nconsole.log(image)\n\nconst node = document.createElement('div')\nvar img = document.createElement('img')\nimg.src = image\ndocument.body.appendChild(node.appendChild(img))\n\nimport('/dynamic-import.js?namespace=file&t=0').then(console.log)\n"
  },
  {
    "path": "fixtures/with-assets-imports/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-assets-imports: build 1`] = `\nArray [\n  \"chunks/dynamic-import-3I42H3S6.js\",\n  \"image-WYWSOB4S.png\",\n  \"index.css\",\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-assets-imports: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/dynamic-import.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.css.cssjs?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/image.png?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-assets-imports: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"dynamic-import.js\",\n  \"file.css.cssjs\",\n  \"image.png\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-assets-imports: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/file.css.cssjs?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/dynamic-import.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/dynamic-import.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.css.cssjs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.css.cssjs?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/image.png?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/image.png?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-assets-imports/bundless.config.js",
    "content": "module.exports = {\n    build: {\n        // basePath: '/base'\n    }\n}"
  },
  {
    "path": "fixtures/with-assets-imports/dynamic-import.js",
    "content": "export default 'dynamic import'\n"
  },
  {
    "path": "fixtures/with-assets-imports/file.css",
    "content": "body {\n    background-color: aqua;\n}"
  },
  {
    "path": "fixtures/with-assets-imports/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-assets-imports/main.js",
    "content": "import image from './image.png'\nimport './file.css'\n\nconsole.log(image)\n\nconst node = document.createElement('div')\nvar img = document.createElement('img')\nimg.src = image\ndocument.body.appendChild(node.appendChild(img))\n\nimport('./dynamic-import.js').then(console.log)\n"
  },
  {
    "path": "fixtures/with-babel-plugin/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.tsx?namespace=file\"></script>\n        <div id=\"main\"><div>\n    </div></div></body>\n</html>\n"
  },
  {
    "path": "fixtures/with-babel-plugin/__mirror__/main.tsx",
    "content": "import _styled from \"/.bundless/node_modules/styled-components/dist/styled-components.esm.js.js?namespace=file&t=0\";\nimport react_cjsImport1 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const React = react_cjsImport1 && react_cjsImport1.__esModule ? react_cjsImport1.default : react_cjsImport1;;\nimport reactDom_cjsImport2 from \"/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\"; const dom = reactDom_cjsImport2 && reactDom_cjsImport2.__esModule ? reactDom_cjsImport2.default : reactDom_cjsImport2;;\nconst ONE_DAY = 864e5;\nconst TWO_DAYS = 1728e5;\nconsole.log(TWO_DAYS);\nconst Heading = _styled.h1.withConfig({\n  displayName: \"main__Heading\",\n  componentId: \"p638xe-0\"\n})([\"font-size:2rem;color:red;\"]);\ndom.render(/* @__PURE__ */ React.createElement(Heading, null, \"ciao\"), document.getElementById(\"main\"));\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLWJhYmVsLXBsdWdpbi9tYWluLnRzeCJdLCJuYW1lcyI6WyJPTkVfREFZIiwiVFdPX0RBWVMiLCJjb25zb2xlIiwibG9nIiwiSGVhZGluZyIsInN0eWxlZCIsImgxIiwiZG9tIiwicmVuZGVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCJdLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFFQSxNQUFNQSxVQUFPO0FBQ2IsTUFBTUMsV0FBUTtBQUVkQyxRQUFRQyxJQUFJRjtBQUtaLE1BQU1HLFVBQVVDLFFBQU9DLEdBQVYsV0FBQTtBQUFBLEVBQUEsYUFBQTtBQUFBLEVBQUEsYUFBQTtBQUFBLEdBQUEsQ0FBQTtBQUtiQyxJQUFJQyxPQUFPLG9DQUFDLFNBQUQsTUFBUyxTQUFnQkMsU0FBU0MsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtcyBmcm9tICdtcy5tYWNybydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBkb20gZnJvbSAncmVhY3QtZG9tJ1xuXG5jb25zdCBPTkVfREFZID0gbXMoJzEgZGF5JylcbmNvbnN0IFRXT19EQVlTID0gbXMoJzIgZGF5cycpXG5cbmNvbnNvbGUubG9nKFRXT19EQVlTKVxuXG4vLyBzcmMvSGVhZGluZy9IZWFkaW5nLnRzXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJ1xuXG5jb25zdCBIZWFkaW5nID0gc3R5bGVkLmgxYFxuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBjb2xvcjogcmVkO1xuYFxuXG5kb20ucmVuZGVyKDxIZWFkaW5nPmNpYW88L0hlYWRpbmc+LCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbicpKVxuIl19"
  },
  {
    "path": "fixtures/with-babel-plugin/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-babel-plugin: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-babel-plugin: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-UALMCH24.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/styled-components/dist/styled-components.esm.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.tsx?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-babel-plugin: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.tsx\",\n]\n`;\n\nexports[`snapshots fixtures/with-babel-plugin: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-UALMCH24.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-UALMCH24.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-UALMCH24.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-UALMCH24.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-UALMCH24.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/styled-components/dist/styled-components.esm.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-UALMCH24.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/styled-components/dist/styled-components.esm.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/styled-components/dist/styled-components.esm.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.tsx?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-babel-plugin/bundless.config.js",
    "content": "const { BabelPlugin } = require('@bundless/plugin-babel')\n\nmodule.exports = {\n    plugins: [\n        BabelPlugin({\n            babelOptions: {\n                plugins: [require('babel-plugin-macros')],\n            },\n        }),\n    ],\n}\n"
  },
  {
    "path": "fixtures/with-babel-plugin/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.tsx\"></script>\n        <div id=\"main\" ><div/>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-babel-plugin/main.tsx",
    "content": "import ms from 'ms.macro'\nimport React from 'react'\nimport dom from 'react-dom'\n\nconst ONE_DAY = ms('1 day')\nconst TWO_DAYS = ms('2 days')\n\nconsole.log(TWO_DAYS)\n\n// src/Heading/Heading.ts\nimport styled from 'styled-components/macro'\n\nconst Heading = styled.h1`\n    font-size: 2rem;\n    color: red;\n`\n\ndom.render(<Heading>ciao</Heading>, document.getElementById('main'))\n"
  },
  {
    "path": "fixtures/with-babel-plugin/package.json",
    "content": "{\n    \"name\": \"fixtures-with-babel\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"dependencies\": {\n        \"babel-plugin-macros\": \"3.0.1\",\n        \"styled-components\": \"^5.2.1\",\n        \"ms.macro\": \"^2.0.0\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-commonjs-transform/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.jsx?namespace=file\"></script>\n        <div id=\"root\"></div>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-commonjs-transform/__mirror__/main.jsx",
    "content": "import react_cjsImport0 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const React = react_cjsImport0 && react_cjsImport0.__esModule ? react_cjsImport0.default : react_cjsImport0;;\nimport react_cjsImport1 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const ReactNamespace = {default: react_cjsImport1, ...(typeof react_cjsImport1 === 'object' && react_cjsImport1)};;\nimport react_cjsImport2 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const useState = react_cjsImport2[\"useState\"];;\nconsole.log(\"useState\", String(useState));\nconsole.log({ReactAll: ReactNamespace, Fragment: ReactNamespace.Fragment});\nvar node = document.createElement(\"pre\");\nvar textnode = document.createTextNode(String(useState));\nnode.appendChild(textnode);\ndocument.body.appendChild(node);\nimport('/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0').then(m=>({...m, ...(m.default instanceof Object && m.default.constructor === Object && m.default)})).then((react) => react.render(/* @__PURE__ */ React.createElement(\"div\", null), document.getElementById(\"root\")));\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLWNvbW1vbmpzLXRyYW5zZm9ybS9tYWluLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBSZWFjdE5hbWVzcGFjZSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmNvbnNvbGUubG9nKCd1c2VTdGF0ZScsIFN0cmluZyh1c2VTdGF0ZSkpXG5jb25zb2xlLmxvZyh7IFJlYWN0QWxsOiBSZWFjdE5hbWVzcGFjZSwgRnJhZ21lbnQ6IFJlYWN0TmFtZXNwYWNlLkZyYWdtZW50IH0pXG5cbnZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJylcbnZhciB0ZXh0bm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFN0cmluZyh1c2VTdGF0ZSkpXG5ub2RlLmFwcGVuZENoaWxkKHRleHRub2RlKVxuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub2RlKVxuXG5pbXBvcnQoJ3JlYWN0LWRvbScpLnRoZW4oKHJlYWN0KSA9PlxuICAgIHJlYWN0LnJlbmRlcig8ZGl2IC8+LCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpKSxcbilcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBRUEsUUFBUSxJQUFJLFlBQVksT0FBTztBQUMvQixRQUFRLElBQUksQ0FBRSxVQUFVLGdCQUFnQixVQUFVLGVBQWU7QUFFakUsSUFBSSxPQUFPLFNBQVMsY0FBYztBQUNsQyxJQUFJLFdBQVcsU0FBUyxlQUFlLE9BQU87QUFDOUMsS0FBSyxZQUFZO0FBQ2pCLFNBQVMsS0FBSyxZQUFZO0FBRTFCLE9BQU8sYUFBYSxLQUFLLENBQUMsVUFDdEIsTUFBTSxPQUFPLG9DQUFDLE9BQUQsT0FBUyxTQUFTLGVBQWU7IiwibmFtZXMiOltdfQ=="
  },
  {
    "path": "fixtures/with-commonjs-transform/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-commonjs-transform: build 1`] = `\nArray [\n  \"chunks/chunk-FL5OWIUE.js\",\n  \"chunks/react-dom-27POQ3ID.js\",\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-commonjs-transform: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.jsx?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-commonjs-transform: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.jsx\",\n]\n`;\n\nexports[`snapshots fixtures/with-commonjs-transform: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-4PPHFTU5.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.jsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.jsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.jsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.jsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.jsx?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.jsx?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-commonjs-transform/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.jsx\"></script>\n        <div id=\"root\"></div>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-commonjs-transform/main.jsx",
    "content": "import React from 'react'\nimport * as ReactNamespace from 'react'\nimport { useState } from 'react'\n\nconsole.log('useState', String(useState))\nconsole.log({ ReactAll: ReactNamespace, Fragment: ReactNamespace.Fragment })\n\nvar node = document.createElement('pre')\nvar textnode = document.createTextNode(String(useState))\nnode.appendChild(textnode)\ndocument.body.appendChild(node)\n\nimport('react-dom').then((react) =>\n    react.render(<div />, document.getElementById('root')),\n)\n"
  },
  {
    "path": "fixtures/with-commonjs-transform/package.json",
    "content": "{\n    \"name\": \"fixtures-with-commonjs-transform\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"dependencies\": {\n        \"react\": \"experimental\",\n        \"react-dom\": \"experimental\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-css/__mirror__/file.css.cssjs",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); \n\nconst css = \"body {\\n    background: lightcoral;\\n}\\n\\npre {\\n    background: white;\\n}\\n\\n\";\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\nexport default css"
  },
  {
    "path": "fixtures/with-css/__mirror__/file.js",
    "content": "export const text = 'This has been made in 2020, what a shitty year'\n\n"
  },
  {
    "path": "fixtures/with-css/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-css/__mirror__/main.js",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); import '/file.css.cssjs?namespace=file&t=0'\nimport { text } from '/file.js?namespace=file&t=0'\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text))\ndocument.body.appendChild(node)\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-css/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-css: build 1`] = `\nArray [\n  \"index.css\",\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-css: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.css.cssjs?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-css: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"file.css.cssjs\",\n  \"file.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-css: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/file.css.cssjs?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/file.css.cssjs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.css.cssjs?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-css/file.css",
    "content": "body {\n    background: lightcoral;\n}\n\npre {\n    background: white;\n}\n\n"
  },
  {
    "path": "fixtures/with-css/file.js",
    "content": "export const text = 'This has been made in 2020, what a shitty year'\n\n"
  },
  {
    "path": "fixtures/with-css/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-css/main.js",
    "content": "import './file.css'\nimport { text } from './file'\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text))\ndocument.body.appendChild(node)\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-css-modules/__mirror__/file.js",
    "content": "export const text = 'This has been made in 2020, what a shitty year'\n\n"
  },
  {
    "path": "fixtures/with-css-modules/__mirror__/file.module.css.cssjs",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); \n\nconst css = \".textLarge {\\n    font-size: 100px;\\n}\\n\";\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\nexport default css"
  },
  {
    "path": "fixtures/with-css-modules/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-css-modules/__mirror__/main.js",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); import classNames from '/file.module.css.cssjs?namespace=file&t=0'\nimport { text } from '/file.js?namespace=file&t=0'\n\nconsole.log({ classNames })\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text))\ndocument.body.appendChild(node)\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-css-modules/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-css-modules: build 1`] = `\nArray [\n  \"index.css\",\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-css-modules: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.module.css.cssjs?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-css-modules: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"file.js\",\n  \"file.module.css.cssjs\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-css-modules: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/file.module.css.cssjs?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/file.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.module.css.cssjs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.module.css.cssjs?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-css-modules/file.js",
    "content": "export const text = 'This has been made in 2020, what a shitty year'\n\n"
  },
  {
    "path": "fixtures/with-css-modules/file.module.css",
    "content": ".textLarge {\n    font-size: 100px;\n}\n"
  },
  {
    "path": "fixtures/with-css-modules/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-css-modules/main.js",
    "content": "import classNames from './file.module.css'\nimport { text } from './file'\n\nconsole.log({ classNames })\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text))\ndocument.body.appendChild(node)\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-custom-assets/__mirror__/file.fakecss.cssjs",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); \n\nconst css = \"body {\\n    background: blue;\\n}\";\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\nexport default css"
  },
  {
    "path": "fixtures/with-custom-assets/__mirror__/file.fakejs",
    "content": "export default \"i am file.fakejs\";\n"
  },
  {
    "path": "fixtures/with-custom-assets/__mirror__/file.js",
    "content": "import dat from '/file.dat?namespace=file&t=0'\nimport svg from '/file.svg?namespace=file&t=0'\n\nimport('/x.DAC?namespace=file&t=0').then(console.log)\nconsole.log({ dat })\n\nconst node = document.createElement('img')\nnode.setAttribute('src', svg)\ndocument.body.appendChild(node)\n\nexport const text = dat\n"
  },
  {
    "path": "fixtures/with-custom-assets/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-custom-assets/__mirror__/main.js",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); import { text } from '/file.js?namespace=file&t=0'\nimport '/file.fakecss.cssjs?namespace=file&t=0'\nimport fakejs from '/file.fakejs?namespace=file&t=0'\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text + ' ' + fakejs))\ndocument.body.appendChild(node)\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-custom-assets/__mirror__/x.DAC",
    "content": "export default \"/x.DAC\""
  },
  {
    "path": "fixtures/with-custom-assets/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-custom-assets: build 1`] = `\nArray [\n  \"chunks/x-3I42H3S6.js\",\n  \"file-3I42H3S6.dat\",\n  \"index.css\",\n  \"index.html\",\n  \"index.js\",\n  \"x-3I42H3S6.DAC\",\n]\n`;\n\nexports[`snapshots fixtures/with-custom-assets: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.dat?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.fakecss.cssjs?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.fakejs?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.svg?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/x.DAC?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-custom-assets: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"file.dat\",\n  \"file.fakecss.cssjs\",\n  \"file.fakejs\",\n  \"file.js\",\n  \"file.svg\",\n  \"index.html\",\n  \"main.js\",\n  \"x.DAC\",\n]\n`;\n\nexports[`snapshots fixtures/with-custom-assets: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/file.fakecss.cssjs?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/file.dat?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/file.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.dat?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.fakecss.cssjs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.fakecss.cssjs?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.fakejs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.fakejs?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.svg?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/file.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.svg?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/x.DAC?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/file.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/x.DAC?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-custom-assets/bundless.config.js",
    "content": "module.exports = {\n    loader: {\n        '.dat': 'file',\n        '.DAC': 'file',\n        '.svg': 'dataurl',\n        '.fakejs': 'ts',\n        '.fakecss': 'css',\n    },\n}\n"
  },
  {
    "path": "fixtures/with-custom-assets/file.fakecss",
    "content": "body {\n    background: blue;\n}"
  },
  {
    "path": "fixtures/with-custom-assets/file.fakejs",
    "content": "\nexport default 'i am file.fakejs'\n\nexport type x = string"
  },
  {
    "path": "fixtures/with-custom-assets/file.js",
    "content": "import dat from './file.dat'\nimport svg from './file.svg'\n\nimport('./x.DAC').then(console.log)\nconsole.log({ dat })\n\nconst node = document.createElement('img')\nnode.setAttribute('src', svg)\ndocument.body.appendChild(node)\n\nexport const text = dat\n"
  },
  {
    "path": "fixtures/with-custom-assets/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-custom-assets/main.js",
    "content": "import { text } from './file'\nimport './file.fakecss'\nimport fakejs from './file.fakejs'\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text + ' ' + fakejs))\ndocument.body.appendChild(node)\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-custom-assets/x.DAC",
    "content": ""
  },
  {
    "path": "fixtures/with-dependencies/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-dependencies/__mirror__/main.js",
    "content": "import slash_cjsImport0 from \"/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\"; const slash = slash_cjsImport0 && slash_cjsImport0.__esModule ? slash_cjsImport0.default : slash_cjsImport0;\n\nconsole.log('Hello world!')\n\nconst text = slash('.\\\\path\\\\to\\\\something')\n\nvar node = document.createElement('LI') \nvar textnode = document.createTextNode(text) \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n"
  },
  {
    "path": "fixtures/with-dependencies/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-dependencies: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-dependencies: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-dependencies: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-dependencies: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-dependencies/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-dependencies/main.js",
    "content": "import slash from 'slash'\n\nconsole.log('Hello world!')\n\nconst text = slash('.\\\\path\\\\to\\\\something')\n\nvar node = document.createElement('LI') \nvar textnode = document.createTextNode(text) \nnode.appendChild(textnode) \ndocument.body.appendChild(node) \n"
  },
  {
    "path": "fixtures/with-dependencies-assets/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-dependencies-assets/__mirror__/main.js",
    "content": "import tailwindcss_dist_base_css_cjsImport0 from \"/.bundless/node_modules/tailwindcss/dist/base.css.js?namespace=file&t=0\";\n\nconsole.log('Hello world!!!!!')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode('hello')))\n"
  },
  {
    "path": "fixtures/with-dependencies-assets/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-dependencies-assets: build 1`] = `\nArray [\n  \"index.css\",\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-dependencies-assets: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/tailwindcss/dist/base.css.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-dependencies-assets: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-dependencies-assets: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/tailwindcss/dist/base.css.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/tailwindcss/dist/base.css.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/tailwindcss/dist/base.css.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-dependencies-assets/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-dependencies-assets/main.js",
    "content": "import 'tailwindcss/dist/base.css'\n\nconsole.log('Hello world!!!!!')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode('hello')))\n"
  },
  {
    "path": "fixtures/with-dependencies-assets/package.json",
    "content": "{\n    \"name\": \"fixtures-with-dependencies-assets\",\n    \"version\": \"0.0.0\",\n    \"main\": \"main.js\",\n    \"private\": true,\n    \"dependencies\": {\n        \"tailwindcss\": \"^1.7.2\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-dynamic-import/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-dynamic-import/__mirror__/main.js",
    "content": "\nimport('/text.js?namespace=file&t=0').then(({ text }) => {\n    var node = document.createElement('LI')\n    var textNode = document.createTextNode(text)\n    node.appendChild(textNode)\n    document.body.appendChild(node)\n})\n"
  },
  {
    "path": "fixtures/with-dynamic-import/__mirror__/text.js",
    "content": "export const text = 'CIAO!'"
  },
  {
    "path": "fixtures/with-dynamic-import/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-dynamic-import: build 1`] = `\nArray [\n  \"chunks/text-3I42H3S6.js\",\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-dynamic-import: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-dynamic-import: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n  \"text.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-dynamic-import: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.js?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-dynamic-import/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-dynamic-import/main.js",
    "content": "\nimport('./text').then(({ text }) => {\n    var node = document.createElement('LI')\n    var textNode = document.createTextNode(text)\n    node.appendChild(textNode)\n    document.body.appendChild(node)\n})\n"
  },
  {
    "path": "fixtures/with-dynamic-import/text.js",
    "content": "export const text = 'CIAO!'"
  },
  {
    "path": "fixtures/with-env-plugin/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.tsx?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-env-plugin/__mirror__/main.tsx",
    "content": "const node = document.createElement(\"pre\");\nnode.appendChild(document.createTextNode(process.env.SOME_VAR));\ndocument.body.appendChild(node);\nconsole.log(process.env.SOME_VAR);\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLWVudi1wbHVnaW4vbWFpbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQGpzeCBqc3hcblxuY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ByZScpXG5ub2RlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHByb2Nlc3MuZW52LlNPTUVfVkFSKSlcbmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm9kZSlcblxuY29uc29sZS5sb2cocHJvY2Vzcy5lbnYuU09NRV9WQVIpXG4iXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxTQUFTLGNBQWM7QUFDcEMsS0FBSyxZQUFZLFNBQVMsZUFBZSxRQUFRLElBQUk7QUFDckQsU0FBUyxLQUFLLFlBQVk7QUFFMUIsUUFBUSxJQUFJLFFBQVEsSUFBSTsiLCJuYW1lcyI6W119"
  },
  {
    "path": "fixtures/with-env-plugin/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-env-plugin: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-env-plugin: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.tsx?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-env-plugin: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.tsx\",\n]\n`;\n\nexports[`snapshots fixtures/with-env-plugin: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.tsx?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-env-plugin/bundless.config.js",
    "content": "const path = require('path')\nconst { EnvPlugin } = require('@bundless/cli/dist/plugins')\n\nmodule.exports = {\n    build: {\n        minify: false,\n    },\n    plugins: [\n        EnvPlugin({\n            envFiles: ['envfile'],\n        }),\n    ],\n}\n"
  },
  {
    "path": "fixtures/with-env-plugin/envfile",
    "content": "SOME_VAR=\"ciao\""
  },
  {
    "path": "fixtures/with-env-plugin/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.tsx\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-env-plugin/main.tsx",
    "content": "// @jsx jsx\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(process.env.SOME_VAR))\ndocument.body.appendChild(node)\n\nconsole.log(process.env.SOME_VAR)\n"
  },
  {
    "path": "fixtures/with-esbuild-plugins/__mirror__/fake.js",
    "content": "export const text = './fake.js'"
  },
  {
    "path": "fixtures/with-esbuild-plugins/__mirror__/file.gql",
    "content": "export default \"interface Node {\\n    x: String\\n    y: String\\n}\""
  },
  {
    "path": "fixtures/with-esbuild-plugins/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-esbuild-plugins/__mirror__/main.js",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); import schema from '/file.gql?namespace=file&t=0'\nimport { text } from '/fake.js?namespace=file&t=0'\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(schema))\nnode.appendChild(document.createTextNode('\\n' + text))\ndocument.body.appendChild(node)\n\n\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n    import.meta.hot.dispose(() => {\n        document.body.removeChild(node)\n    })\n}\n"
  },
  {
    "path": "fixtures/with-esbuild-plugins/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-esbuild-plugins: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-esbuild-plugins: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/fake.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/file.gql?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-esbuild-plugins: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"fake.js\",\n  \"file.gql\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-esbuild-plugins: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/fake.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/fake.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/file.gql?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/file.gql?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-esbuild-plugins/bundless.config.js",
    "content": "const fs = require('fs')\nconst path = require('path')\n\n/**\n * @type { import('@bundless/cli').Config }\n */\nmodule.exports = {\n    plugins: [\n        {\n            name: 'onLoad',\n            setup({ onLoad }) {\n                onLoad({ filter: /\\.gql/ }, (arg) => {\n                    return {\n                        loader: 'js',\n                        contents: `export default ${JSON.stringify(\n                            fs.readFileSync(arg.path).toString(),\n                        )}`,\n                    }\n                })\n            },\n        },\n        {\n            name: 'onResolve',\n            setup({ onResolve }) {\n                onResolve({ filter: /\\.fake/ }, (arg) => {\n                    return {\n                        path: path.resolve(__dirname, 'fake.js'),\n                    }\n                })\n            },\n        },\n    ],\n}\n"
  },
  {
    "path": "fixtures/with-esbuild-plugins/fake.js",
    "content": "export const text = './fake.js'"
  },
  {
    "path": "fixtures/with-esbuild-plugins/file.gql",
    "content": "interface Node {\n    x: String\n    y: String\n}"
  },
  {
    "path": "fixtures/with-esbuild-plugins/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-esbuild-plugins/main.js",
    "content": "import schema from './file.gql'\nimport { text } from './file.fake'\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(schema))\nnode.appendChild(document.createTextNode('\\n' + text))\ndocument.body.appendChild(node)\n\n\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n    import.meta.hot.dispose(() => {\n        document.body.removeChild(node)\n    })\n}\n"
  },
  {
    "path": "fixtures/with-imports/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-imports/__mirror__/main.js",
    "content": "import { text } from '/text.js?namespace=file&t=0'\n\nconsole.log('Hello world!!!!!')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-imports/__mirror__/text.js",
    "content": "export const text = 'CIAO!'"
  },
  {
    "path": "fixtures/with-imports/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-imports: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-imports: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-imports: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n  \"text.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-imports: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.js?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-imports/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-imports/main.js",
    "content": "import { text } from './text'\n\nconsole.log('Hello world!!!!!')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-imports/text.js",
    "content": "export const text = 'CIAO!'"
  },
  {
    "path": "fixtures/with-json/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-json/__mirror__/main.js",
    "content": "import json from '/text.json?namespace=file&t=0'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(json.text)))\n"
  },
  {
    "path": "fixtures/with-json/__mirror__/text.json",
    "content": "var text = \"Hello World!\";\nvar text_default = {\n  text\n};\nexport {\n  text_default as default,\n  text\n};\n"
  },
  {
    "path": "fixtures/with-json/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-json: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-json: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.json?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-json: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n  \"text.json\",\n]\n`;\n\nexports[`snapshots fixtures/with-json: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.json?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.json?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-json/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-json/main.js",
    "content": "import json from './text.json'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(json.text)))\n"
  },
  {
    "path": "fixtures/with-json/text.json",
    "content": "{\n    \"text\": \"Hello World!\"\n}\n"
  },
  {
    "path": "fixtures/with-linked-workspace/__mirror__/__..__/with-many-dependencies/main.js",
    "content": "import slash_cjsImport0 from \"/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\"; const slash = slash_cjsImport0 && slash_cjsImport0.__esModule ? slash_cjsImport0.default : slash_cjsImport0;\nimport react_cjsImport1 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const React = react_cjsImport1 && react_cjsImport1.__esModule ? react_cjsImport1.default : react_cjsImport1;\nimport { useState } from '/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0'\nimport reactDom_cjsImport3 from \"/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\"; const ReactDom = reactDom_cjsImport3 && reactDom_cjsImport3.__esModule ? reactDom_cjsImport3.default : reactDom_cjsImport3;\n\nconsole.log('Hello world!')\nconsole.log(slash)\nconsole.log(React.useState)\nconsole.log(useState)\nconsole.log(ReactDom.render)\n\nexport const variable = 10\n\n"
  },
  {
    "path": "fixtures/with-linked-workspace/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-linked-workspace/__mirror__/main.js",
    "content": "import { variable } from '/__..__/with-many-dependencies/main.js?namespace=file&t=0'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(variable)))\n"
  },
  {
    "path": "fixtures/with-linked-workspace/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-linked-workspace: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-linked-workspace: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/__..__/with-many-dependencies/main.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-linked-workspace: mirror 1`] = `\nArray [\n  \"__..__/with-many-dependencies/main.js\",\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-linked-workspace: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/__..__/with-many-dependencies/main.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/__..__/with-many-dependencies/main.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/__..__/with-many-dependencies/main.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/__..__/with-many-dependencies/main.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/__..__/with-many-dependencies/main.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/__..__/with-many-dependencies/main.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-linked-workspace/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-linked-workspace/main.js",
    "content": "import { variable } from 'fixtures-with-many-dependencies'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(variable)))\n"
  },
  {
    "path": "fixtures/with-linked-workspace/package.json",
    "content": "{\n    \"name\": \"fixtures-with-linked-workspace\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"dependencies\": {\n        \"fixtures-with-many-dependencies\": \"*\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-links/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <head>\n        <link rel=\"stylesheet\" href=\"/styles1.css\">\n        <link rel=\"manifest\" href=\"/manifest.json\">\n        <link rel=\"stylesheet\" href=\"/styles2.css\">\n    </head>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-links/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-links: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n  \"manifest.json\",\n  \"styles1.css\",\n]\n`;\n\nexports[`snapshots fixtures/with-links: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-links: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n]\n`;\n\nexports[`snapshots fixtures/with-links: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-links/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <head>\n        <link rel=\"stylesheet\" href=\"/styles1.css\" />\n        <link rel=\"manifest\" href=\"/manifest.json\" />\n        <link rel=\"stylesheet\" href=\"/styles2.css\" />\n    </head>\n    <body>\n        <h1>My First Heading</h1>\n\n        <p>My first paragraph.</p>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-links/public/manifest.json",
    "content": "{}\n"
  },
  {
    "path": "fixtures/with-links/public/styles1.css",
    "content": ""
  },
  {
    "path": "fixtures/with-links/styles2.css",
    "content": ""
  },
  {
    "path": "fixtures/with-many-dependencies/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-many-dependencies/__mirror__/main.js",
    "content": "import slash_cjsImport0 from \"/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\"; const slash = slash_cjsImport0 && slash_cjsImport0.__esModule ? slash_cjsImport0.default : slash_cjsImport0;\nimport react_cjsImport1 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const React = react_cjsImport1 && react_cjsImport1.__esModule ? react_cjsImport1.default : react_cjsImport1;\nimport { useState } from '/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0'\nimport reactDom_cjsImport3 from \"/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\"; const ReactDom = reactDom_cjsImport3 && reactDom_cjsImport3.__esModule ? reactDom_cjsImport3.default : reactDom_cjsImport3;\n\nconsole.log('Hello world!')\nconsole.log(slash)\nconsole.log(React.useState)\nconsole.log(useState)\nconsole.log(ReactDom.render)\n\nexport const variable = 10\n\n"
  },
  {
    "path": "fixtures/with-many-dependencies/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-many-dependencies: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-many-dependencies: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-many-dependencies: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-many-dependencies: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-EB4LBFOO.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-NDNEY6GM.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/preact/hooks/dist/hooks.module.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react-dom/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/slash/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-many-dependencies/bundless.config.js",
    "content": "module.exports = {\n    build: {\n        minify: false,\n    },\n}\n"
  },
  {
    "path": "fixtures/with-many-dependencies/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-many-dependencies/main.js",
    "content": "import slash from 'slash'\nimport React from 'react'\nimport { useState } from 'preact/hooks'\nimport ReactDom from 'react-dom'\n\nconsole.log('Hello world!')\nconsole.log(slash)\nconsole.log(React.useState)\nconsole.log(useState)\nconsole.log(ReactDom.render)\n\nexport const variable = 10\n\n"
  },
  {
    "path": "fixtures/with-many-dependencies/package.json",
    "content": "{\n    \"name\": \"fixtures-with-many-dependencies\",\n    \"version\": \"0.0.0\",\n    \"main\": \"main.js\",\n    \"private\": true,\n    \"dependencies\": {\n        \"react\": \"experimental\",\n        \"slash\": \"^3.0.0\",\n        \"preact\": \"*\",\n        \"react-dom\": \"experimental\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-many-entries/__mirror__/a/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/a/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-many-entries/__mirror__/a/main.css.cssjs",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); \n\nconst css = \"body {\\n    background: lightcoral;\\n}\\n\";\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\nexport default css"
  },
  {
    "path": "fixtures/with-many-entries/__mirror__/a/main.js",
    "content": "import '/a/main.css.cssjs?namespace=file&t=0'\nimport '/common.css.cssjs?namespace=file&t=0'\n\nconst text = 'A'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-many-entries/__mirror__/b/index.html",
    "content": "<!DOCTYPE html>\n\n<body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n    <script type=\"module\" src=\"/b/main.js?namespace=file\"></script>\n</body>\n"
  },
  {
    "path": "fixtures/with-many-entries/__mirror__/b/main.js",
    "content": "import '/common.css.cssjs?namespace=file&t=0'\nimport { text } from '/b/text.js?namespace=file&t=0'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-many-entries/__mirror__/b/text.js",
    "content": "export const text = 'B'\n"
  },
  {
    "path": "fixtures/with-many-entries/__mirror__/common.css.cssjs",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); \n\nconst css = \"a {\\n    background: blue;\\n}\\n\";\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\nexport default css"
  },
  {
    "path": "fixtures/with-many-entries/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-many-entries: build 1`] = `\nArray [\n  \"a/index.css\",\n  \"a/index.html\",\n  \"a/index.js\",\n  \"b/index.html\",\n  \"b/index.js\",\n  \"chunks/chunk-6CZZJFZN.css\",\n  \"chunks/chunk-UNICZJVM.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-many-entries: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/a/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/a/main.css.cssjs?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/a/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/b/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/b/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/b/text.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/common.css.cssjs?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-many-entries: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"a/index.html\",\n  \"a/main.css.cssjs\",\n  \"a/main.js\",\n  \"b/index.html\",\n  \"b/main.js\",\n  \"b/text.js\",\n  \"common.css.cssjs\",\n]\n`;\n\nexports[`snapshots fixtures/with-many-entries: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/a/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/a/main.css.cssjs?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/b/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/common.css.cssjs?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/common.css.cssjs?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/a/main.css.cssjs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/a/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/a/main.css.cssjs?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/a/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/a/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/a/main.js?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/b/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/b/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/b/main.js?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/b/text.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/b/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/b/text.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/common.css.cssjs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/a/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/common.css.cssjs?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/common.css.cssjs?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/b/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/common.css.cssjs?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-many-entries/a/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/a/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-many-entries/a/main.css",
    "content": "body {\n    background: lightcoral;\n}\n"
  },
  {
    "path": "fixtures/with-many-entries/a/main.js",
    "content": "import './main.css'\nimport '../common.css'\n\nconst text = 'A'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-many-entries/b/index.html",
    "content": "<!DOCTYPE html>\n\n<body>\n    <script type=\"module\" src=\"/b/main.js\"></script>\n</body>\n"
  },
  {
    "path": "fixtures/with-many-entries/b/main.js",
    "content": "import '../common.css'\nimport { text } from './text'\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-many-entries/b/text.js",
    "content": "export const text = 'B'\n"
  },
  {
    "path": "fixtures/with-many-entries/bundless.config.js",
    "content": "/**\n * @type { import('@bundless/cli').Config }\n */\nconst config = {\n    entries: ['a/index.html', 'b/index.html'],\n}\n\nmodule.exports = config\n"
  },
  {
    "path": "fixtures/with-many-entries/common.css",
    "content": "a {\n    background: blue;\n}\n"
  },
  {
    "path": "fixtures/with-node-polyfills/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-node-polyfills/__mirror__/main.js",
    "content": "import path from '/path?namespace=node-builtins'\n\nconsole.log({ path })\n\nconst text = path.resolve('something')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-node-polyfills/__mirror__/path",
    "content": "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  // if the path tries to go above the root, `up` ends up > 0\n  var up = 0;\n  for (var i = parts.length - 1; i >= 0; i--) {\n    var last = parts[i];\n    if (last === '.') {\n      parts.splice(i, 1);\n    } else if (last === '..') {\n      parts.splice(i, 1);\n      up++;\n    } else if (up) {\n      parts.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (allowAboveRoot) {\n    for (; up--; up) {\n      parts.unshift('..');\n    }\n  }\n\n  return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n    /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n  return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexport function resolve() {\n  var resolvedPath = '',\n      resolvedAbsolute = false;\n\n  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    var path = (i >= 0) ? arguments[i] : '/';\n\n    // Skip empty and invalid entries\n    if (typeof path !== 'string') {\n      throw new TypeError('Arguments to path.resolve must be strings');\n    } else if (!path) {\n      continue;\n    }\n\n    resolvedPath = path + '/' + resolvedPath;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n    return !!p;\n  }), !resolvedAbsolute).join('/');\n\n  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexport function normalize(path) {\n  var isPathAbsolute = isAbsolute(path),\n      trailingSlash = substr(path, -1) === '/';\n\n  // Normalize the path\n  path = normalizeArray(filter(path.split('/'), function(p) {\n    return !!p;\n  }), !isPathAbsolute).join('/');\n\n  if (!path && !isPathAbsolute) {\n    path = '.';\n  }\n  if (path && trailingSlash) {\n    path += '/';\n  }\n\n  return (isPathAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexport function isAbsolute(path) {\n  return path.charAt(0) === '/';\n}\n\n// posix version\nexport function join() {\n  var paths = Array.prototype.slice.call(arguments, 0);\n  return normalize(filter(paths, function(p, index) {\n    if (typeof p !== 'string') {\n      throw new TypeError('Arguments to path.join must be strings');\n    }\n    return p;\n  }).join('/'));\n}\n\n\n// path.relative(from, to)\n// posix version\nexport function relative(from, to) {\n  from = resolve(from).substr(1);\n  to = resolve(to).substr(1);\n\n  function trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n      if (arr[start] !== '') break;\n    }\n\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n      if (arr[end] !== '') break;\n    }\n\n    if (start > end) return [];\n    return arr.slice(start, end - start + 1);\n  }\n\n  var fromParts = trim(from.split('/'));\n  var toParts = trim(to.split('/'));\n\n  var length = Math.min(fromParts.length, toParts.length);\n  var samePartsLength = length;\n  for (var i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  var outputParts = [];\n  for (var i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n}\n\nexport var sep = '/';\nexport var delimiter = ':';\n\nexport function dirname(path) {\n  var result = splitPath(path),\n      root = result[0],\n      dir = result[1];\n\n  if (!root && !dir) {\n    // No dirname whatsoever\n    return '.';\n  }\n\n  if (dir) {\n    // It has a dirname, strip trailing slash\n    dir = dir.substr(0, dir.length - 1);\n  }\n\n  return root + dir;\n}\n\nexport function basename(path, ext) {\n  var f = splitPath(path)[2];\n  // TODO: make this comparison case-insensitive on windows?\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n}\n\n\nexport function extname(path) {\n  return splitPath(path)[3];\n}\nexport default {\n  extname: extname,\n  basename: basename,\n  dirname: dirname,\n  sep: sep,\n  delimiter: delimiter,\n  relative: relative,\n  join: join,\n  isAbsolute: isAbsolute,\n  normalize: normalize,\n  resolve: resolve\n};\nfunction filter (xs, f) {\n    if (xs.filter) return xs.filter(f);\n    var res = [];\n    for (var i = 0; i < xs.length; i++) {\n        if (f(xs[i], i, xs)) res.push(xs[i]);\n    }\n    return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ?\n    function (str, start, len) { return str.substr(start, len) } :\n    function (str, start, len) {\n        if (start < 0) start = str.length + start;\n        return str.substr(start, len);\n    }\n;\n"
  },
  {
    "path": "fixtures/with-node-polyfills/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-node-polyfills: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-node-polyfills: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/path?namespace=node-builtins\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-node-polyfills: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.js\",\n  \"path\",\n]\n`;\n\nexports[`snapshots fixtures/with-node-polyfills: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/path?namespace=node-builtins\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/path?namespace=node-builtins\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-node-polyfills/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-node-polyfills/main.js",
    "content": "import path from 'path'\n\nconsole.log({ path })\n\nconst text = path.resolve('something')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n"
  },
  {
    "path": "fixtures/with-sourcemaps/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.ts?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-sourcemaps/__mirror__/js.js",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); import react_cjsImport0 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const React = react_cjsImport0 && react_cjsImport0.__esModule ? react_cjsImport0.default : react_cjsImport0; const createElement = react_cjsImport0[\"createElement\"];\nimport react_cjsImport1 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const useState = react_cjsImport1[\"useState\"];\nimport { text } from '/text.js?namespace=file&t=0'\n\nconsole.log('Hello world!!!!!')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n\nReact.createElement('div')\n\nfunction Comp() {\n    const [] = useState()\n    return createElement('div', {})\n}\n\nComp\n\n\n// throw new Error('I should be on line 20')\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-sourcemaps/__mirror__/main.ts",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); import react_cjsImport0 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const React = react_cjsImport0 && react_cjsImport0.__esModule ? react_cjsImport0.default : react_cjsImport0; const createElement = react_cjsImport0[\"createElement\"];;\nimport react_cjsImport1 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const useState = react_cjsImport1[\"useState\"];;\nimport \"/js.js?namespace=file&t=0\";\nimport {text} from \"/text.js?namespace=file&t=0\";\nimport sourceMapSupport_cjsImport4 from \"/.bundless/node_modules/source-map-support/source-map-support.js.js?namespace=file&t=0\"; const so = sourceMapSupport_cjsImport4 && sourceMapSupport_cjsImport4.__esModule ? sourceMapSupport_cjsImport4.default : sourceMapSupport_cjsImport4;;\nso.getErrorSource;\nconsole.log(\"Hello world!!!!!\");\nconst node = document.createElement(\"pre\");\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)));\nReact.createElement(\"div\");\nfunction Comp() {\n  const [] = useState();\n  return createElement(\"div\", {});\n}\nComp;\nconsole.log(new Error(\"I should be on line 22\"));\nthrow new Error(\"I should be on line 24\");\nif (import.meta.hot) {\n  import.meta.hot.accept();\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXNvdXJjZW1hcHMvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAnLi9qcy5qcydcbmltcG9ydCB7IHRleHQgfSBmcm9tICcuL3RleHQnXG5pbXBvcnQgc28gZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0J1xuc28uZ2V0RXJyb3JTb3VyY2VcblxuY29uc29sZS5sb2coJ0hlbGxvIHdvcmxkISEhISEnKVxuXG5jb25zdCBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJylcbmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSkpXG5cblJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG5cbmZ1bmN0aW9uIENvbXAoKSB7XG4gICAgY29uc3QgW10gPSB1c2VTdGF0ZSgpXG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHt9KVxufVxuXG5Db21wXG5cbmNvbnNvbGUubG9nKG5ldyBFcnJvcignSSBzaG91bGQgYmUgb24gbGluZSAyMicpKVxuXG50aHJvdyBuZXcgRXJyb3IoJ0kgc2hvdWxkIGJlIG9uIGxpbmUgMjQnKVxuXG5cbmlmIChpbXBvcnQubWV0YS5ob3QpIHtcbiAgICBpbXBvcnQubWV0YS5ob3QuYWNjZXB0KClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFFSCxRQUFRLElBQUk7QUFFWixNQUFNLE9BQU8sU0FBUyxjQUFjO0FBQ3BDLFNBQVMsS0FBSyxZQUFZLEtBQUssWUFBWSxTQUFTLGVBQWU7QUFFbkUsTUFBTSxjQUFjO0FBRXBCLGdCQUFnQjtBQUNaLFFBQU0sS0FBSztBQUNYLFNBQU8sY0FBYyxPQUFPO0FBQUE7QUFHaEM7QUFFQSxRQUFRLElBQUksSUFBSSxNQUFNO0FBRXRCLE1BQU0sSUFBSSxNQUFNO0FBR2hCLElBQUksWUFBWSxLQUFLO0FBQ2pCLGNBQVksSUFBSTtBQUFBOyIsIm5hbWVzIjpbXX0="
  },
  {
    "path": "fixtures/with-sourcemaps/__mirror__/text.js",
    "content": "export const text = 'CIAO!'"
  },
  {
    "path": "fixtures/with-sourcemaps/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-sourcemaps: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-sourcemaps: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-WGKZP7G7.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/source-map-support/source-map-support.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.ts?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-sourcemaps: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"js.js\",\n  \"main.ts\",\n  \"text.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-sourcemaps: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-WGKZP7G7.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-WGKZP7G7.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-WGKZP7G7.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-WGKZP7G7.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-WGKZP7G7.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/source-map-support/source-map-support.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-WGKZP7G7.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/source-map-support/source-map-support.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/source-map-support/source-map-support.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.ts?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/text.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.js?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-sourcemaps/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.ts\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-sourcemaps/js.js",
    "content": "import React, { createElement } from 'react'\nimport { useState } from 'react'\nimport { text } from './text'\n\nconsole.log('Hello world!!!!!')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n\nReact.createElement('div')\n\nfunction Comp() {\n    const [] = useState()\n    return createElement('div', {})\n}\n\nComp\n\n\n// throw new Error('I should be on line 20')\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-sourcemaps/main.ts",
    "content": "import React, { createElement } from 'react'\nimport { useState } from 'react'\nimport './js.js'\nimport { text } from './text'\nimport so from 'source-map-support'\nso.getErrorSource\n\nconsole.log('Hello world!!!!!')\n\nconst node = document.createElement('pre')\ndocument.body.appendChild(node.appendChild(document.createTextNode(text)))\n\nReact.createElement('div')\n\nfunction Comp() {\n    const [] = useState()\n    return createElement('div', {})\n}\n\nComp\n\nconsole.log(new Error('I should be on line 22'))\n\nthrow new Error('I should be on line 24')\n\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "fixtures/with-sourcemaps/package.json",
    "content": "{\n    \"name\": \"fixture-with-sourcemaps\",\n    \"version\": \"0.0.0\",\n    \"main\": \"main.js\",\n    \"private\": true,\n    \"dependencies\": {\n        \"react\": \"experimental\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-sourcemaps/text.js",
    "content": "export const text = 'CIAO!'"
  },
  {
    "path": "fixtures/with-svelte/App.svelte",
    "content": "<script lang=\"typescript\">\n    let count: number = 0\n    let increment = () => count++\n    let decrement = () => count--\n</script>\n\n<div>counts: {count}</div>\n<button on:click={increment}>increment</button>\n<button on:click={decrement}>decrement</button>\n\n<style>\n    div {\n        background-color: red;\n    }\n</style>\n"
  },
  {
    "path": "fixtures/with-svelte/__mirror__/App.svelte",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); import \"/App.svelte.css?namespace=file&t=0\";\n/* fixtures/with-svelte/App.svelte generated by Svelte v3.32.1 */\nimport {\n\tSvelteComponentDev,\n\tadd_location,\n\tappend_dev,\n\tattr_dev,\n\tdetach_dev,\n\tdispatch_dev,\n\telement,\n\tinit,\n\tinsert_dev,\n\tlisten_dev,\n\tnoop,\n\trun_all,\n\tsafe_not_equal,\n\tset_data_dev,\n\tspace,\n\ttext,\n\tvalidate_slots\n} from \"/.bundless/node_modules/svelte/internal/index.mjs.js?namespace=file&t=0\";\n\nconst file = \"fixtures/with-svelte/App.svelte\";\n\nfunction create_fragment(ctx) {\n\tlet div;\n\tlet t0;\n\tlet t1;\n\tlet t2;\n\tlet button0;\n\tlet t4;\n\tlet button1;\n\tlet mounted;\n\tlet dispose;\n\n\tconst block = {\n\t\tc: function create() {\n\t\t\tdiv = element(\"div\");\n\t\t\tt0 = text(\"counts: \");\n\t\t\tt1 = text(/*count*/ ctx[0]);\n\t\t\tt2 = space();\n\t\t\tbutton0 = element(\"button\");\n\t\t\tbutton0.textContent = \"increment\";\n\t\t\tt4 = space();\n\t\t\tbutton1 = element(\"button\");\n\t\t\tbutton1.textContent = \"decrement\";\n\t\t\tattr_dev(div, \"class\", \"svelte-1x83jhu\");\n\t\t\tadd_location(div, file, 5, 0, 114);\n\t\t\tadd_location(button0, file, 6, 0, 141);\n\t\t\tadd_location(button1, file, 7, 0, 189);\n\t\t},\n\t\tl: function claim(nodes) {\n\t\t\tthrow new Error(\"options.hydrate only works if the component was compiled with the `hydratable: true` option\");\n\t\t},\n\t\tm: function mount(target, anchor) {\n\t\t\tinsert_dev(target, div, anchor);\n\t\t\tappend_dev(div, t0);\n\t\t\tappend_dev(div, t1);\n\t\t\tinsert_dev(target, t2, anchor);\n\t\t\tinsert_dev(target, button0, anchor);\n\t\t\tinsert_dev(target, t4, anchor);\n\t\t\tinsert_dev(target, button1, anchor);\n\n\t\t\tif (!mounted) {\n\t\t\t\tdispose = [\n\t\t\t\t\tlisten_dev(button0, \"click\", /*increment*/ ctx[1], false, false, false),\n\t\t\t\t\tlisten_dev(button1, \"click\", /*decrement*/ ctx[2], false, false, false)\n\t\t\t\t];\n\n\t\t\t\tmounted = true;\n\t\t\t}\n\t\t},\n\t\tp: function update(ctx, [dirty]) {\n\t\t\tif (dirty & /*count*/ 1) set_data_dev(t1, /*count*/ ctx[0]);\n\t\t},\n\t\ti: noop,\n\t\to: noop,\n\t\td: function destroy(detaching) {\n\t\t\tif (detaching) detach_dev(div);\n\t\t\tif (detaching) detach_dev(t2);\n\t\t\tif (detaching) detach_dev(button0);\n\t\t\tif (detaching) detach_dev(t4);\n\t\t\tif (detaching) detach_dev(button1);\n\t\t\tmounted = false;\n\t\t\trun_all(dispose);\n\t\t}\n\t};\n\n\tdispatch_dev(\"SvelteRegisterBlock\", {\n\t\tblock,\n\t\tid: create_fragment.name,\n\t\ttype: \"component\",\n\t\tsource: \"\",\n\t\tctx\n\t});\n\n\treturn block;\n}\n\nfunction instance($$self, $$props, $$invalidate) {\n\tlet { $$slots: slots = {}, $$scope } = $$props;\n\tvalidate_slots(\"App\", slots, []);\n\tlet count = 0;\n\tlet increment = () => $$invalidate(0, count++, count);\n\tlet decrement = () => $$invalidate(0, count--, count);\n\tconst writable_props = [];\n\n\tObject.keys($$props).forEach(key => {\n\t\tif (!~writable_props.indexOf(key) && key.slice(0, 2) !== \"$$\") console.warn(`<App> was created with unknown prop '${key}'`);\n\t});\n\n\t$$self.$capture_state = () => ({ count, increment, decrement });\n\n\t$$self.$inject_state = $$props => {\n\t\tif (\"count\" in $$props) $$invalidate(0, count = $$props.count);\n\t\tif (\"increment\" in $$props) $$invalidate(1, increment = $$props.increment);\n\t\tif (\"decrement\" in $$props) $$invalidate(2, decrement = $$props.decrement);\n\t};\n\n\tif ($$props && \"$$inject\" in $$props) {\n\t\t$$self.$inject_state($$props.$$inject);\n\t}\n\n\treturn [count, increment, decrement];\n}\n\nclass App extends SvelteComponentDev {\n\tconstructor(options) {\n\t\tsuper(options);\n\t\tinit(this, options, instance, create_fragment, safe_not_equal, {});\n\n\t\tdispatch_dev(\"SvelteRegisterComponent\", {\n\t\t\tcomponent: this,\n\t\t\ttagName: \"App\",\n\t\t\toptions,\n\t\t\tid: create_fragment.name\n\t\t});\n\t}\n}\nimport * as ___SVELTE_HMR_HOT_API from '/.bundless/node_modules/svelte-hmr/runtime/hot-api-esm.js.js?namespace=file&t=0';import svelteHmr_runtime_proxyAdapterDom_js_cjsImport3 from \"/.bundless/node_modules/svelte-hmr/runtime/proxy-adapter-dom.js.js?namespace=file&t=0\"; const ___SVELTE_HMR_HOT_API_PROXY_ADAPTER = svelteHmr_runtime_proxyAdapterDom_js_cjsImport3 && svelteHmr_runtime_proxyAdapterDom_js_cjsImport3.__esModule ? svelteHmr_runtime_proxyAdapterDom_js_cjsImport3.default : svelteHmr_runtime_proxyAdapterDom_js_cjsImport3;;if (import.meta && import.meta.hot) { App = ___SVELTE_HMR_HOT_API.applyHmr({ m: import.meta, id: \"/Users/morse/Documents/GitHub/espack/fixtures/with-svelte/App.svelte\", hotOptions: {\"preserveLocalState\":true,\"noPreserveStateKey\":[\"@hmr:reset\",\"@!hmr\"],\"preserveAllLocalStateKey\":\"@hmr:keep-all\",\"preserveLocalStateKey\":\"@hmr:keep\",\"noReload\":false,\"optimistic\":true,\"acceptNamedExports\":true,\"acceptAccessors\":true,\"injectCss\":true,\"cssEjectDelay\":100,\"native\":false,\"compatVite\":false,\"importAdapterName\":\"___SVELTE_HMR_HOT_API_PROXY_ADAPTER\",\"absoluteImports\":false,\"noOverlay\":true}, Component: App, ProxyAdapter: ___SVELTE_HMR_HOT_API_PROXY_ADAPTER, acceptable: true, cssId: \"svelte-1x83jhu-style\", nonCssHash: \"564uli\", }); }\nexport default App;\n\nif (typeof add_css !== 'undefined' && !document.getElementById(\"svelte-1x83jhu-style\")) add_css();\n"
  },
  {
    "path": "fixtures/with-svelte/__mirror__/App.svelte.css",
    "content": "import * as  __HMR__ from '/_hmr_client.js?namespace=hmr-client'; import.meta.hot = __HMR__.createHotContext(import.meta.url); \n\nconst css = \"div.svelte-1x83jhu{background-color:red}\";\n\nif (typeof document !== 'undefined') {\n    import.meta.hot.accept();\n    import.meta.hot.dispose(() => {\n        document.head.removeChild(styleEl);\n    });\n    const styleEl = document.createElement(\"style\");\n    const codeEl = document.createTextNode(css);\n    styleEl.type = 'text/css';\n    styleEl.appendChild(codeEl);\n    document.head.appendChild(styleEl);\n}\nexport default css"
  },
  {
    "path": "fixtures/with-svelte/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-svelte/__mirror__/main.js",
    "content": "import App from '/App.svelte?namespace=file&t=0';\n\nnew App({ target: document.body });"
  },
  {
    "path": "fixtures/with-svelte/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-svelte: build 1`] = `\nArray [\n  \"index.css\",\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-svelte: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-2B7GGVDY.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/svelte-hmr/runtime/hot-api-esm.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/svelte-hmr/runtime/proxy-adapter-dom.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/.bundless/node_modules/svelte/internal/index.mjs.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/App.svelte.css?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/App.svelte?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-svelte: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"App.svelte\",\n  \"App.svelte.css\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-svelte: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/App.svelte?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/App.svelte.css?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-2B7GGVDY.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/svelte-hmr/runtime/hot-api-esm.js.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-2B7GGVDY.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/chunks/chunk-2B7GGVDY.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/.bundless/node_modules/svelte/internal/index.mjs.js?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/chunks/chunk-2B7GGVDY.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/svelte-hmr/runtime/hot-api-esm.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/App.svelte?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/svelte-hmr/runtime/hot-api-esm.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/svelte-hmr/runtime/proxy-adapter-dom.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/App.svelte?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/svelte-hmr/runtime/proxy-adapter-dom.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/svelte/internal/index.mjs.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/App.svelte?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/svelte/internal/index.mjs.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/App.svelte?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/App.svelte?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/App.svelte.css?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/App.svelte?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/App.svelte.css?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-svelte/bundless.config.js",
    "content": "module.exports = {\n    plugins: [require('@bundless/plugin-svelte').default({})],\n}\n"
  },
  {
    "path": "fixtures/with-svelte/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-svelte/main.js",
    "content": "import App from './App.svelte';\n\nnew App({ target: document.body });"
  },
  {
    "path": "fixtures/with-svelte/package.json",
    "content": "{\n    \"name\": \"fixtures-with-svelte\",\n    \"version\": \"0.0.0\",\n    \"main\": \"main.js\",\n    \"private\": true,\n    \"dependencies\": {\n        \"svelte\": \"^3.32.1\"\n    }\n}\n"
  },
  {
    "path": "fixtures/with-tsconfig-paths/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.tsx?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-tsconfig-paths/__mirror__/main.tsx",
    "content": "import {text} from \"/text.ts?namespace=file&t=0\";\nimport react_cjsImport1 from \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\"; const React = react_cjsImport1 && react_cjsImport1.__esModule ? react_cjsImport1.default : react_cjsImport1;;\nconst node = document.createElement(\"pre\");\nnode.appendChild(document.createTextNode(text));\ndocument.body.appendChild(node);\nconsole.log(React.cloneElement);\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXRzY29uZmlnLXBhdGhzL21haW4udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEBqc3gganN4XG5pbXBvcnQgeyB0ZXh0IH0gZnJvbSAnQHZpcnR1YWwnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKVxubm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSlcbmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm9kZSlcblxuY29uc29sZS5sb2coUmVhY3QuY2xvbmVFbGVtZW50KVxuIl0sIm1hcHBpbmdzIjoiQUFDQTtBQUNBO0FBRUEsTUFBTSxPQUFPLFNBQVMsY0FBYztBQUNwQyxLQUFLLFlBQVksU0FBUyxlQUFlO0FBQ3pDLFNBQVMsS0FBSyxZQUFZO0FBRTFCLFFBQVEsSUFBSSxNQUFNOyIsIm5hbWVzIjpbXX0="
  },
  {
    "path": "fixtures/with-tsconfig-paths/__mirror__/text.ts",
    "content": "export const text = \"virtual\";\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXRzY29uZmlnLXBhdGhzL3RleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRleHQgPSAndmlydHVhbCdcbiJdLCJtYXBwaW5ncyI6IkFBQU8sYUFBTSxPQUFPOyIsIm5hbWVzIjpbXX0="
  },
  {
    "path": "fixtures/with-tsconfig-paths/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-tsconfig-paths: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-tsconfig-paths: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.tsx?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-tsconfig-paths: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.tsx\",\n  \"text.ts\",\n]\n`;\n\nexports[`snapshots fixtures/with-tsconfig-paths: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/.bundless/node_modules/react/index.js.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.tsx?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.ts?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-tsconfig-paths/bundless.config.js",
    "content": "const path = require('path')\nconst { TsconfigPathsPlugin } = require('@bundless/plugin-tsconfig-paths')\n\nmodule.exports = {\n    build: {\n        minify: false,\n    },\n    plugins: [\n        TsconfigPathsPlugin({\n            paths: {\n                '@virtual': ['text.ts'],\n            },\n        }),\n    ],\n}\n"
  },
  {
    "path": "fixtures/with-tsconfig-paths/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.tsx\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-tsconfig-paths/main.tsx",
    "content": "// @jsx jsx\nimport { text } from '@virtual'\nimport React from 'react'\n\nconst node = document.createElement('pre')\nnode.appendChild(document.createTextNode(text))\ndocument.body.appendChild(node)\n\nconsole.log(React.cloneElement)\n"
  },
  {
    "path": "fixtures/with-tsconfig-paths/package.json",
    "content": "{\n    \"name\": \"fixtures-with-tsconfig-paths\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"dependencies\": {}\n}\n"
  },
  {
    "path": "fixtures/with-tsconfig-paths/text.ts",
    "content": "export const text = 'virtual'\n"
  },
  {
    "path": "fixtures/with-tsx/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.tsx?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-tsx/__mirror__/main.tsx",
    "content": "import {text} from \"/text.ts?namespace=file&t=0\";\nfunction jsx(t, p, children) {\n  var node = document.createElement(t);\n  var textNode = document.createTextNode(children || p.children);\n  node.appendChild(textNode);\n  document.body.appendChild(node);\n}\nlet x = /* @__PURE__ */ jsx(\"div\", null, text);\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXRzeC9tYWluLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAanN4IGpzeFxuaW1wb3J0IHsgdGV4dCB9IGZyb20gJy4vdGV4dCdcblxuZnVuY3Rpb24ganN4KHQsIHAsIGNoaWxkcmVuKSB7XG4gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpXG4gICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY2hpbGRyZW4gfHwgcC5jaGlsZHJlbilcbiAgICBub2RlLmFwcGVuZENoaWxkKHRleHROb2RlKVxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm9kZSlcbn1cblxuXG5sZXQgeCA9IDxkaXY+e3RleHR9PC9kaXY+XG4iXSwibWFwcGluZ3MiOiJBQUNBO0FBRUEsYUFBYSxHQUFHLEdBQUcsVUFBVTtBQUN6QixNQUFJLE9BQU8sU0FBUyxjQUFjO0FBQ2xDLE1BQUksV0FBVyxTQUFTLGVBQWUsWUFBWSxFQUFFO0FBQ3JELE9BQUssWUFBWTtBQUNqQixXQUFTLEtBQUssWUFBWTtBQUFBO0FBSTlCLElBQUksSUFBSSxvQkFBQyxPQUFELE1BQU07IiwibmFtZXMiOltdfQ=="
  },
  {
    "path": "fixtures/with-tsx/__mirror__/text.ts",
    "content": "import {allCaps} from \"/utils.ts?namespace=file&t=0\";\nexport const text = allCaps(\"works!\");\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXRzeC90ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFsbENhcHMgfSBmcm9tICcuL3V0aWxzJ1xuZXhwb3J0IGNvbnN0IHRleHQgPSBhbGxDYXBzKCd3b3JrcyEnKVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNPLGFBQU0sT0FBTyxRQUFROyIsIm5hbWVzIjpbXX0="
  },
  {
    "path": "fixtures/with-tsx/__mirror__/utils.ts",
    "content": "export function allCaps(x) {\n  return x.toUpperCase();\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXRzeC91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYWxsQ2Fwcyh4OiBzdHJpbmcpIHtcbiAgICByZXR1cm4geC50b1VwcGVyQ2FzZSgpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFPLHdCQUFpQixHQUFXO0FBQy9CLFNBQU8sRUFBRTtBQUFBOyIsIm5hbWVzIjpbXX0="
  },
  {
    "path": "fixtures/with-tsx/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-tsx: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-tsx: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.tsx?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/utils.ts?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-tsx: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.tsx\",\n  \"text.ts\",\n  \"utils.ts\",\n]\n`;\n\nexports[`snapshots fixtures/with-tsx: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.tsx?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.ts?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.tsx?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/utils.ts?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/utils.ts?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-tsx/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.tsx\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-tsx/main.tsx",
    "content": "// @jsx jsx\nimport { text } from './text'\n\nfunction jsx(t, p, children) {\n    var node = document.createElement(t)\n    var textNode = document.createTextNode(children || p.children)\n    node.appendChild(textNode)\n    document.body.appendChild(node)\n}\n\n\nlet x = <div>{text}</div>\n"
  },
  {
    "path": "fixtures/with-tsx/text.ts",
    "content": "import { allCaps } from './utils'\nexport const text = allCaps('works!')\n"
  },
  {
    "path": "fixtures/with-tsx/utils.ts",
    "content": "export function allCaps(x: string) {\n    return x.toUpperCase()\n}\n"
  },
  {
    "path": "fixtures/with-typescript/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.ts?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-typescript/__mirror__/main.ts",
    "content": "import {text} from \"/text.ts?namespace=file&t=0\";\nconsole.log(\"Hello world!\");\nvar node = document.createElement(\"h1\");\nvar textNode = document.createTextNode(text);\nnode.appendChild(textNode);\ndocument.body.appendChild(node);\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXR5cGVzY3JpcHQvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0ZXh0IH0gZnJvbSAnLi90ZXh0J1xuXG5jb25zb2xlLmxvZygnSGVsbG8gd29ybGQhJylcblxudmFyIG5vZGU6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJylcbnZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpXG5ub2RlLmFwcGVuZENoaWxkKHRleHROb2RlKVxuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub2RlKVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBLFFBQVEsSUFBSTtBQUVaLElBQUksT0FBWSxTQUFTLGNBQWM7QUFDdkMsSUFBSSxXQUFXLFNBQVMsZUFBZTtBQUN2QyxLQUFLLFlBQVk7QUFDakIsU0FBUyxLQUFLLFlBQVk7IiwibmFtZXMiOltdfQ=="
  },
  {
    "path": "fixtures/with-typescript/__mirror__/text.ts",
    "content": "import {allCaps} from \"/utils.ts?namespace=file&t=0\";\nexport const text = allCaps(\"works!\");\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXR5cGVzY3JpcHQvdGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbGxDYXBzIH0gZnJvbSAnLi91dGlscydcbmV4cG9ydCBjb25zdCB0ZXh0ID0gYWxsQ2Fwcygnd29ya3MhJylcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDTyxhQUFNLE9BQU8sUUFBUTsiLCJuYW1lcyI6W119"
  },
  {
    "path": "fixtures/with-typescript/__mirror__/utils.ts",
    "content": "export function allCaps(x) {\n  return x.toUpperCase();\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9tb3JzZS9Eb2N1bWVudHMvR2l0SHViL2VzcGFjay9maXh0dXJlcy93aXRoLXR5cGVzY3JpcHQvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFsbENhcHMoeDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHgudG9VcHBlckNhc2UoKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBTyx3QkFBaUIsR0FBVztBQUMvQixTQUFPLEVBQUU7QUFBQTsiLCJuYW1lcyI6W119"
  },
  {
    "path": "fixtures/with-typescript/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-typescript: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-typescript: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.ts?namespace=file\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/utils.ts?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-typescript: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"index.html\",\n  \"main.ts\",\n  \"text.ts\",\n  \"utils.ts\",\n]\n`;\n\nexports[`snapshots fixtures/with-typescript: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/main.ts?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n  },\n  Object {\n    \"importPath\": \"/text.ts?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.ts?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/utils.ts?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/text.ts?namespace=file&t=0\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/utils.ts?namespace=file&t=0\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-typescript/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.ts\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-typescript/main.ts",
    "content": "import { text } from './text'\n\nconsole.log('Hello world!')\n\nvar node: any = document.createElement('h1')\nvar textNode = document.createTextNode(text)\nnode.appendChild(textNode)\ndocument.body.appendChild(node)\n"
  },
  {
    "path": "fixtures/with-typescript/text.ts",
    "content": "import { allCaps } from './utils'\nexport const text = allCaps('works!')\n"
  },
  {
    "path": "fixtures/with-typescript/utils.ts",
    "content": "export function allCaps(x: string) {\n    return x.toUpperCase()\n}\n"
  },
  {
    "path": "fixtures/with-yarn-berry-paths/__mirror__/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n<script type=\"module\" src=\"/_hmr_client.js?namespace=hmr-client\"></script>\n\n        <script type=\"module\" src=\"/main.js?namespace=file\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-yarn-berry-paths/__mirror__/main.js",
    "content": "import { x } from '/$$virtual/react-dom-virtual-73426b59bc/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/react-dom/index.js?namespace=file&t=0'\n\n\n\nconst node = document.createElement('pre')\nconst text = node.appendChild(document.createTextNode(x))\ndocument.body.appendChild(text)\n"
  },
  {
    "path": "fixtures/with-yarn-berry-paths/__snapshots__",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`snapshots fixtures/with-yarn-berry-paths: build 1`] = `\nArray [\n  \"index.html\",\n  \"index.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-yarn-berry-paths: content-type headers 1`] = `\nObject {\n  \"http://127.0.0.1:9000/$$virtual/react-dom-virtual-73426b59bc/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/react-dom/index.js?namespace=file&t=0\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\": \"application/javascript; charset=utf-8\",\n  \"http://127.0.0.1:9000/index.html\": \"text/html; charset=utf-8\",\n  \"http://127.0.0.1:9000/main.js?namespace=file\": \"application/javascript; charset=utf-8\",\n}\n`;\n\nexports[`snapshots fixtures/with-yarn-berry-paths: mirror 1`] = `\nArray [\n  \"_hmr_client.js\",\n  \"$$virtual/react-dom-virtual-73426b59bc/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/react-dom/index.js\",\n  \"index.html\",\n  \"main.js\",\n]\n`;\n\nexports[`snapshots fixtures/with-yarn-berry-paths: traverse result 1`] = `\nArray [\n  Object {\n    \"importPath\": \"/_hmr_client.js?namespace=hmr-client\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/_hmr_client.js?namespace=hmr-client\",\n  },\n  Object {\n    \"importPath\": \"/$$virtual/react-dom-virtual-73426b59bc/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/react-dom/index.js?namespace=file&t=0\",\n    \"importer\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/$$virtual/react-dom-virtual-73426b59bc/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/react-dom/index.js?namespace=file&t=0\",\n  },\n  Object {\n    \"importPath\": \"/main.js?namespace=file\",\n    \"importer\": \"http://127.0.0.1:9000/index.html\",\n    \"resolvedImportPath\": \"http://127.0.0.1:9000/main.js?namespace=file\",\n  },\n]\n`;\n"
  },
  {
    "path": "fixtures/with-yarn-berry-paths/index.html",
    "content": "<!DOCTYPE html>\n<html>\n    <body>\n        <script type=\"module\" src=\"/main.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "fixtures/with-yarn-berry-paths/main.js",
    "content": "import { x } from './$$virtual/react-dom-virtual-73426b59bc/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/react-dom/index.js'\n\n\n\nconst node = document.createElement('pre')\nconst text = node.appendChild(document.createTextNode(x))\ndocument.body.appendChild(text)\n"
  },
  {
    "path": "hmr-test-app/__snapshots__/bundless",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`hmr 1 src/main.jsx bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/main.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 1 src/main.jsx bundless: urls 1`] = `Set {}`;\n\nexports[`hmr 2 src/file.jsx bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 2 src/file.jsx bundless: urls 1`] = `\nSet {\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file.jsx?namespace=file&t=1\",\n}\n`;\n\nexports[`hmr 3 src/file.css bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/file.css.cssjs\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 3 src/file.css bundless: urls 1`] = `\nSet {\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file.css.cssjs?namespace=file&t=1\",\n}\n`;\n\nexports[`hmr 4 src/file.module.css bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/file.module.css.cssjs\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 4 src/file.module.css bundless: urls 1`] = `\nSet {\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file.module.css.cssjs?namespace=file&t=1\",\n}\n`;\n\nexports[`hmr 5 src/file.json bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/bridge.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 5 src/file.json bundless: urls 1`] = `\nSet {\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file.json?namespace=file&t=1\",\n}\n`;\n\nexports[`hmr 6 src/file2.js bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 6 src/file2.js bundless: urls 1`] = `\nSet {\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file2.js?namespace=file&t=1\",\n}\n`;\n\nexports[`hmr 7 src/imported-many-times.js bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/main.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 7 src/imported-many-times.js bundless: urls 1`] = `\nSet {\n  \"http://127.0.0.1:4000/src/imported-many-times.js?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file.jsx?namespace=file&t=1\",\n}\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx bundless: messages 1`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"1\",\n  },\n]\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx bundless: messages 2`] = `\nArray [\n  Object {\n    \"namespace\": \"file\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"update\",\n    \"updateID\": \"2\",\n  },\n]\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx bundless: urls 1`] = `\nSet {\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file.jsx?namespace=file&t=1\",\n  \"http://127.0.0.1:4000/src/file2.js?namespace=file&t=1\",\n}\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx bundless: urls 2`] = `\nSet {\n  \"http://127.0.0.1:4000/src/bridge.jsx?namespace=file&t=2\",\n  \"http://127.0.0.1:4000/src/file.jsx?namespace=file&t=2\",\n  \"http://127.0.0.1:4000/src/file2.js?namespace=file&t=1\",\n}\n`;\n"
  },
  {
    "path": "hmr-test-app/__snapshots__/snowpack",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`hmr 1 src/main.jsx snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": false,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/main.js\",\n  },\n]\n`;\n\nexports[`hmr 1 src/main.jsx snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 2 src/file.jsx snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": false,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/file.js\",\n  },\n]\n`;\n\nexports[`hmr 2 src/file.jsx snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 3 src/file.css snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": false,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/file.css\",\n  },\n  Object {\n    \"bubbled\": false,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/file.css.proxy.js\",\n  },\n]\n`;\n\nexports[`hmr 3 src/file.css snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 4 src/file.module.css snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": true,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/bridge.js\",\n  },\n]\n`;\n\nexports[`hmr 4 src/file.module.css snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 5 src/file.json snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": true,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/bridge.js\",\n  },\n]\n`;\n\nexports[`hmr 5 src/file.json snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 6 src/file2.js snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": true,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/file.js\",\n  },\n]\n`;\n\nexports[`hmr 6 src/file2.js snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 7 src/imported-many-times.js snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": true,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/main.js\",\n  },\n  Object {\n    \"bubbled\": true,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/file.js\",\n  },\n]\n`;\n\nexports[`hmr 7 src/imported-many-times.js snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx snowpack: messages 1`] = `\nArray [\n  Object {\n    \"bubbled\": true,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/file.js\",\n  },\n]\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx snowpack: messages 2`] = `\nArray [\n  Object {\n    \"bubbled\": false,\n    \"type\": \"update\",\n    \"url\": \"/_dist_/file.js\",\n  },\n]\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx snowpack: urls 1`] = `Set {}`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx snowpack: urls 2`] = `Set {}`;\n"
  },
  {
    "path": "hmr-test-app/__snapshots__/vite",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`hmr 1 src/main.jsx vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/main.jsx\",\n    \"path\": \"/src/main.jsx\",\n    \"type\": \"js-update\",\n  },\n]\n`;\n\nexports[`hmr 1 src/main.jsx vite: urls 1`] = `Set {}`;\n\nexports[`hmr 2 src/file.jsx vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/file.jsx\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"js-update\",\n  },\n]\n`;\n\nexports[`hmr 2 src/file.jsx vite: urls 1`] = `Set {}`;\n\nexports[`hmr 3 src/file.css vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/file.css\",\n    \"path\": \"/src/file.css\",\n    \"type\": \"style-update\",\n  },\n]\n`;\n\nexports[`hmr 3 src/file.css vite: urls 1`] = `Set {}`;\n\nexports[`hmr 4 src/file.module.css vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/file.module.css\",\n    \"path\": \"/src/bridge.jsx\",\n    \"type\": \"js-update\",\n  },\n  Object {\n    \"changeSrcPath\": \"/src/file.module.css\",\n    \"path\": \"/src/file.module.css\",\n    \"type\": \"style-update\",\n  },\n]\n`;\n\nexports[`hmr 4 src/file.module.css vite: urls 1`] = `Set {}`;\n\nexports[`hmr 5 src/file.json vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/file.json\",\n    \"path\": \"/src/bridge.jsx\",\n    \"type\": \"js-update\",\n  },\n]\n`;\n\nexports[`hmr 5 src/file.json vite: urls 1`] = `Set {}`;\n\nexports[`hmr 6 src/file2.js vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/file2.js\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"js-update\",\n  },\n]\n`;\n\nexports[`hmr 6 src/file2.js vite: urls 1`] = `Set {}`;\n\nexports[`hmr 7 src/imported-many-times.js vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/imported-many-times.js\",\n    \"path\": \"/src/main.jsx\",\n    \"type\": \"js-update\",\n  },\n  Object {\n    \"changeSrcPath\": \"/src/imported-many-times.js\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"js-update\",\n  },\n]\n`;\n\nexports[`hmr 7 src/imported-many-times.js vite: urls 1`] = `Set {}`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx vite: messages 1`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/file2.js\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"js-update\",\n  },\n]\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx vite: messages 2`] = `\nArray [\n  Object {\n    \"changeSrcPath\": \"/src/file.jsx\",\n    \"path\": \"/src/file.jsx\",\n    \"type\": \"js-update\",\n  },\n]\n`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx vite: urls 1`] = `Set {}`;\n\nexports[`hmr 8 src/file2.js, src/file.jsx vite: urls 2`] = `Set {}`;\n"
  },
  {
    "path": "hmr-test-app/bundless.config.js",
    "content": "/** @type { import('@bundless/cli').Config } */\nmodule.exports = {\n    jsx: 'react',\n    entries: ['public/bundless/index.html'],\n    server: {\n        experimentalImmutableCache: false,\n    },\n    plugins: [require('@bundless/plugin-react-refresh').ReactRefreshPlugin()],\n}\n"
  },
  {
    "path": "hmr-test-app/index.test.ts",
    "content": "import { serve } from '@bundless/cli'\nimport { Config } from '@bundless/cli'\nimport { spawn } from 'child_process'\nimport {\n    readFromUrlOrPath,\n    traverseEsModules,\n    urlResolver,\n} from 'es-module-traversal'\nimport { once } from 'events'\nimport execa from 'execa'\nimport fs from 'fs-extra'\nimport * as failFast from 'jasmine-fail-fast'\nimport 'jest-specific-snapshot'\nimport path from 'path'\nimport url, { URL } from 'url'\nimport WebSocket from 'ws'\n\nconst jasmineEnv = (jasmine as any).getEnv()\njasmineEnv.addReporter(failFast.init())\n\nconst tempDir = path.resolve(__dirname, '../temp')\nconst fixtureDir = path.resolve(__dirname, '../hmr-test-app')\nconst testTargets = process.env.HRM_TESTS\n    ? ['snowpack', 'vite', 'bundless']\n    : ['bundless']\n\nconst PORT = 4000\n\nprocess.env.BUNDLESS_CONSISTENT_HMR_GRAPH_HASH = '' // makes all urls consistent in time\njest.setTimeout(100000)\n\ntype TestCase = {\n    path: string\n    replacer: (content: string) => string\n}\n\nprocess.env.NODE_ENV = 'development' // fix for snowpack that does not start in test env\n\nconst config: Config = {\n    ...require('./bundless.config'),\n    server: {\n        openBrowser: false,\n        port: PORT,\n    },\n    root: tempDir,\n}\n\n// test cases are arrays of arrays, this way i can test multiple messages cases, i can fetch between cases and snapshot the changed urls, this way i can test the timestamp queries\nconst testCases: Array<TestCase | TestCase[]> = [\n    {\n        path: 'src/main.jsx',\n        replacer: defaultJsReplacer,\n    },\n    {\n        path: 'src/file.jsx',\n        replacer: defaultJsReplacer,\n    },\n    {\n        path: 'src/file.css',\n        replacer: defaultCssReplacer,\n    },\n    {\n        path: 'src/file.module.css',\n        replacer: defaultCssReplacer,\n    },\n    {\n        path: 'src/file.json',\n        replacer: (x) => '{\"x\": 9}\\n',\n    },\n    {\n        path: 'src/file2.js',\n        replacer: defaultJsReplacer,\n    },\n    {\n        path: 'src/imported-many-times.js',\n        replacer: defaultJsReplacer,\n    },\n    // test 2 consecutive updates that resets the ?timestamp query and could cause a stale fetch\n    [\n        {\n            path: 'src/file2.js',\n            replacer: defaultJsReplacer,\n        },\n        {\n            path: 'src/file.jsx', // imports the first file, should use the last used timestamp query to not get the stale module\n            replacer: defaultJsReplacer,\n        },\n    ],\n    // TODO test hmr when removing an import\n    // TODO test hmr when adding an import\n]\n\nbeforeAll(async () => {\n    try {\n        await fs.remove(tempDir)\n    } catch (e) {}\n    await fs.ensureDir(tempDir)\n    await fs.copy(fixtureDir, tempDir, {\n        filter: (file) => !/dist|node_modules/.test(file),\n    })\n    const json = JSON.parse(\n        fs.readFileSync(path.resolve(fixtureDir, 'package.json')).toString(),\n    )\n    fs.writeFileSync(\n        path.resolve(tempDir, 'package.json'),\n        JSON.stringify({ ...json, name: 'temp' }, null, 4),\n    )\n    await execa('yarn', { cwd: tempDir, stdio: 'inherit' })\n})\n\nafterAll(async () => {\n    try {\n        await fs.remove(tempDir)\n    } catch (e) {}\n})\n\nasync function start(type) {\n    console.info('starting hmr tests')\n    let finish\n    let complete = new Promise((r) => {\n        finish = r\n    })\n    switch (type) {\n        case 'bundless': {\n            const server = await serve(config)\n            // await sleep(300)\n            return {\n                stop: () => server.close(),\n                entry: '/bundless/index.html',\n                hmrAgent: 'esm-hmr',\n            }\n        }\n        case 'snowpack': {\n            const p = spawn(`yarn snowpack dev --port ${PORT}`, {\n                cwd: tempDir,\n                stdio: 'pipe',\n                env: {\n                    ...process.env,\n                    NODE_ENV: 'development',\n                },\n                shell: true,\n            })\n            function onData(data) {\n                process.stdout.write(data + '\\n')\n                if (data.includes('Server started')) {\n                    finish()\n                }\n            }\n            p.stderr.on('data', onData)\n            p.stdout.on('data', onData)\n            await complete\n            await sleep(300)\n            return {\n                stop: () => p.kill('SIGTERM'),\n                entry: '/snowpack/index.html',\n                hmrAgent: 'esm-hmr',\n            }\n        }\n        case 'vite': {\n            const p = spawn(`yarn vite serve --port ${PORT}`, {\n                cwd: tempDir,\n                stdio: 'pipe',\n                env: {\n                    ...process.env,\n                    NODE_ENV: 'development',\n                },\n                shell: true,\n            })\n            function onData(data) {\n                process.stdout.write(data + '\\n')\n                if (data.includes('Dev server running at:')) {\n                    finish()\n                }\n            }\n            p.stderr.on('data', onData)\n            p.stdout.on('data', onData)\n            await complete\n            await sleep(400)\n            return {\n                stop: () => p.kill('SIGTERM'),\n                entry: '/vite/index.html',\n                hmrAgent: 'vite-hmr',\n            }\n        }\n        default: {\n            throw new Error(`${type} not handled`)\n        }\n    }\n}\n\ndescribe('hmr', () => {\n    const baseUrl = `http://127.0.0.1:${PORT}`\n\n    const root = tempDir\n\n    for (let testTarget of testTargets) {\n        for (let [i, testCase] of testCases.entries()) {\n            const name = Array.isArray(testCase)\n                ? testCase.map((x) => x.path).join(', ')\n                : testCase.path\n            test(`${i + 1} ${name} ${testTarget}`, async () => {\n                const { stop, entry, hmrAgent } = await start(testTarget)\n                try {\n                    const ws = new WebSocket(`ws://127.0.0.1:${PORT}`, hmrAgent)\n                    await once(ws, 'open')\n                    const cases = Array.isArray(testCase)\n                        ? testCase\n                        : [testCase]\n                    const snapshot = path.resolve(\n                        fixtureDir,\n                        '__snapshots__',\n                        testTarget,\n                    )\n\n                    // creates the module graph\n                    const traversedFiles = await traverseEsModules({\n                        entryPoints: [new URL(entry, baseUrl).toString()],\n                        onNonResolved: () => {},\n                        resolver: urlResolver({\n                            root,\n                            baseUrl,\n                        }),\n                    })\n                    // register hot modules in graph\n                    await registerHotModules(traversedFiles, ws)\n\n                    for (let c of cases) {\n                        const messages = await getWsMessages({\n                            ws,\n                            doing: async () => {\n                                await updateFile(\n                                    path.resolve(root, c.path),\n                                    c.replacer,\n                                )\n                            },\n                        })\n                        expect(\n                            messages.map(normalizeHmrMessage),\n                        ).toMatchSpecificSnapshot(snapshot, 'messages')\n\n                        const urls = new Set<string>()\n                        await traverseEsModules({\n                            entryPoints: [new URL(entry, baseUrl).toString()],\n                            onNonResolved: () => {},\n                            onEntry: (p, importer, contents) => {\n                                if (\n                                    (p.includes('t=') && !/t=.*0$/.test(p)) ||\n                                    p.includes('mtime=')\n                                ) {\n                                    urls.add(p)\n                                }\n                                // snapshot the fetched urls\n                            },\n                            resolver: urlResolver({\n                                root,\n                                baseUrl,\n                            }),\n                        })\n                        expect(urls).toMatchSpecificSnapshot(snapshot, 'urls')\n                    }\n                    ws.close()\n                    await once(ws, 'close')\n                } finally {\n                    if (stop) await stop()\n                    await sleep(300)\n                }\n            })\n        }\n    }\n})\n\nasync function updateFile(compPath, replacer) {\n    try {\n        const content = await fs.readFile(compPath, 'utf-8')\n        await fs.writeFile(compPath, replacer(content))\n    } catch (e) {\n        throw new Error(`could not update ${compPath}: ${e}`)\n    }\n}\n\nasync function getWsMessages({ doing, timeout = 2000, ws }) {\n    await doing()\n    const messages = []\n    ws.addEventListener('message', ({ data }) => {\n        const payload = JSON.parse(data)\n        if (payload.type === 'connected') return\n        // for vite\n        if (payload.type === 'multi') {\n            return messages.push(...payload.updates)\n        }\n        return messages.push(payload)\n    })\n    await Promise.race([\n        waitUntilCountStabilizes(() => messages.length),\n        sleep(timeout),\n    ])\n\n    return messages\n}\n\nasync function registerHotModules(traversedFiles, ws) {\n    // for bundless and snowpack, you need to mark modules as hot\n    const messages: string[] = await Promise.all(\n        traversedFiles.map(async ({ resolvedImportPath, importPath }) => {\n            const content = await readFromUrlOrPath(\n                resolvedImportPath,\n                importPath,\n            )\n            if (content.includes('import.meta.hot.accept')) {\n                const msg = JSON.stringify(\n                    {\n                        // id is for snowpack\n                        id: url.parse(resolvedImportPath).pathname,\n                        path: url.parse(resolvedImportPath).pathname,\n                        type: 'hotAccept',\n                    },\n                    null,\n                    4,\n                )\n\n                return msg\n            }\n            return ''\n        }),\n    )\n    messages.filter(Boolean).forEach((x) => ws.send(x))\n}\n\nconst sleep = (n) => new Promise((r) => setTimeout(r, n))\n\nasync function waitUntilCountStabilizes(count, releaseTime = 50) {\n    let lastCount = 0\n    while (!lastCount) {\n        await sleep(50)\n        lastCount = count()\n    }\n    await sleep(releaseTime)\n    if (count() !== lastCount) {\n        return await waitUntilCountStabilizes(count, releaseTime)\n    }\n}\n\nconst normalizeHmrMessage = (message) => {\n    const ignoreKeys = ['timestamp']\n    const validKeys = Object.keys(message).filter(\n        (k) => !ignoreKeys.includes(k),\n    )\n    return Object.assign({}, ...validKeys.map((k) => ({ [k]: message[k] })))\n}\n\nfunction defaultJsReplacer(x) {\n    return x + '\\n\\n\"some text\"\\n'\n}\n\nfunction defaultCssReplacer(x) {\n    return x + '\\n\\nbody {\\ncolor: black;\\n}\\n'\n}\n"
  },
  {
    "path": "hmr-test-app/package.json",
    "content": "{\n    \"name\": \"hmr-test-app\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"description\": \"\",\n    \"repository\": \"https://github.com/remorses/.git\",\n    \"scripts\": {\n        \"test\": \"yarn jest --config ../jest.config.js `pwd`\",\n        \"test:all\": \"cross-env HRM_TESTS=1 yarn test\"\n    },\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@bundless/plugin-react-refresh\": \"2.1.0\",\n        \"@snowpack/plugin-react-refresh\": \"^2.3.9\",\n        \"es-module-traversal\": \"^0.0.50\",\n        \"execa\": \"^5.0.0\",\n        \"jest-specific-snapshot\": \"^4.0.0\",\n        \"snowpack\": \"^2.18.4\",\n        \"vite\": \"^1.0.0-rc.13\",\n        \"vite-plugin-react\": \"^4.0.1\",\n        \"ws\": \"^7.4.1\"\n    },\n    \"dependencies\": {\n        \"react\": \"experimental\",\n        \"react-dom\": \"experimental\"\n    },\n    \"peerDependencies\": {}\n}\n"
  },
  {
    "path": "hmr-test-app/public/bundless/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"UTF-8\" />\n    </head>\n    <body>\n        <script type=\"module\" src=\"/src/main.jsx\"></script>\n        <div id=\"root\"></div>\n    </body>\n</html>\n"
  },
  {
    "path": "hmr-test-app/public/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"UTF-8\" />\n    </head>\n    <body>\n        <a href=\"/snowpack\">Snowpack test app</a>\n        <br />\n        <a href=\"/vite\">Vite test app</a>\n        <br />\n        <a href=\"/bundless\">Bundless test app</a>\n        <br />\n    </body>\n</html>\n"
  },
  {
    "path": "hmr-test-app/public/snowpack/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"UTF-8\" />\n    </head>\n    <body>\n        <script type=\"module\" src=\"/_dist_/main.js\"></script>\n        <div id=\"root\"></div>\n    </body>\n</html>\n"
  },
  {
    "path": "hmr-test-app/public/vite/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"UTF-8\" />\n    </head>\n    <body>\n        <script type=\"module\" src=\"/src/main.jsx\"></script>\n        <div id=\"root\"></div>\n    </body>\n</html>\n"
  },
  {
    "path": "hmr-test-app/snowpack.config.js",
    "content": "module.exports = {\n    mount: {\n        public: '/',\n        src: '/_dist_',\n    },\n    devOptions: {\n        open: 'none',\n        output: 'stream',\n    },\n    plugins: [\n        '@snowpack/plugin-react-refresh', // live reloading\n    ],\n}\n"
  },
  {
    "path": "hmr-test-app/src/bridge.jsx",
    "content": "import React, { useLayoutEffect, useState } from 'react'\nimport { Comp, staticVariable } from './file'\nimport './file.css'\nimport json from './file.json'\nimport css from './file.module.css'\n\nexport function App() {\n    const [state, setState] = useState(0)\n    useLayoutEffect(() => {\n        staticVariable.count += 1\n    }, [])\n    return (\n        <React.StrictMode>\n            <Comp />\n            <pre>{JSON.stringify({ json, css })}</pre>\n            <pre>{JSON.stringify(staticVariable)}</pre>\n            <br />\n            <br />\n            <br />\n            <button\n                style={{ fontSize: 40 }}\n                onClick={() => setState((x) => x + 1)}\n            >\n                +1\n            </button>\n            <pre style={{ fontSize: 60 }}>{state}</pre>\n        </React.StrictMode>\n    )\n}\n\nconsole.log(new Error('i am here, line 27'))\n\n// export const x = 9\n"
  },
  {
    "path": "hmr-test-app/src/file.css",
    "content": "body {\n    background: white;\n}\n"
  },
  {
    "path": "hmr-test-app/src/file.json",
    "content": "{\n    \"x\": \"file.json\"\n}\n"
  },
  {
    "path": "hmr-test-app/src/file.jsx",
    "content": "import React, { useImperativeHandle } from 'react'\nimport x from './file2'\nimport { y } from './imported-many-times'\n\nexport const staticVariable = { count: 0 }\n\nexport const Comp = () => {\n    return (\n        <div>\n            {y}xxx{x}\n        </div>\n    )\n}\n\n// setInterval(() => {\n//     console.log(staticVariable)\n// }, 1000)\n"
  },
  {
    "path": "hmr-test-app/src/file.module.css",
    "content": ".cls {\n    color: antiquewhite;\n}\nbody {\n    background: lightcoral;\n}\n"
  },
  {
    "path": "hmr-test-app/src/file2.js",
    "content": "export default 'file2.js'\n"
  },
  {
    "path": "hmr-test-app/src/imported-many-times.js",
    "content": "export const y = 'imported-many-times.js'\n"
  },
  {
    "path": "hmr-test-app/src/main.jsx",
    "content": "import React from 'react'\nimport { App } from './bridge'\nimport ReactDOM from 'react-dom'\nimport { y } from './imported-many-times'\n\nReactDOM.render(\n    <>\n        <App />\n        <button\n            onClick={() => {\n                import(noop('/src/main.jsx?sdf'))\n            }}\n        >\n            refetch\n        </button>\n        <br />\n        <br />\n        {y}\n    </>,\n    document.getElementById('root'),\n)\n\nconst noop = (x) => x\n\nif (import.meta.hot) {\n    import.meta.hot.accept()\n}\n"
  },
  {
    "path": "hmr-test-app/tsconfig.json",
    "content": "{\n    \"extends\": \"../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "hmr-test-app/vite.config.js",
    "content": "/**\n * @type { import('vite').UserConfig }\n */\nconst config = {\n    jsx: 'react',\n    plugins: [require('vite-plugin-react')],\n}\n\nmodule.exports = config\n"
  },
  {
    "path": "jest.config.js",
    "content": "// @ts-check\n\n/** @type {import('@jest/types').Config.InitialOptions} */\nconst config = {\n    transform: { '.(ts|tsx)': '@sucrase/jest-plugin' },\n    testPathIgnorePatterns: ['/dist/', '/esm/', '/node_modules/'],\n    testEnvironment: 'node',\n    forceExit: true,\n    bail: 1,\n}\n\nmodule.exports = config\n"
  },
  {
    "path": "package.json",
    "content": "{\n    \"name\": \"root\",\n    \"scripts\": {\n        \"test\": \"cross-env NODE_ENV=test jest --force-exit --colors\",\n        \"test:hmr\": \"cross-env HRM_TESTS=1 yarn jest hmr-test-app\",\n        \"watch\": \"ultra -r watch\",\n        \"cli\": \"ultra -r cli\",\n        \"build\": \"ultra --build -r --filter '@bundless/*' build\",\n        \"fix-mismatches\": \"syncpack fix-mismatches --dev --prod --indent '    '\",\n        \"release\": \"yarn build && changeset publish\"\n    },\n    \"workspaces\": {\n        \"nohoist\": [\n            \"examples/with-many-dependencies/preact\",\n            \"**/preact\"\n        ],\n        \"packages\": [\n            \"bundless\",\n            \"examples/*\",\n            \"website\",\n            \"fixtures/*\",\n            \"tests\",\n            \"with-pages\",\n            \"plugins/*\",\n            \"hmr-test-app\",\n            \"paged\",\n            \"temp\"\n        ]\n    },\n    \"devDependencies\": {\n        \"@changesets/cli\": \"^2.12.0\",\n        \"@jest/types\": \"^26.6.2\",\n        \"@sucrase/jest-plugin\": \"^2.0.0\",\n        \"@types/jest\": \"^26.0.19\",\n        \"@types/jest-specific-snapshot\": \"^0.5.5\",\n        \"@types/react\": \"^17.0.0\",\n        \"cross-env\": \"^7.0.3\",\n        \"esm\": \"^3.2.25\",\n        \"jest\": \"^26.6.3\",\n        \"prettier\": \"^2.2.1\",\n        \"syncpack\": \"^5.7.11\",\n        \"typescript\": \"^4.1.3\",\n        \"ultra-runner\": \"^3.6.0\"\n    },\n    \"private\": true,\n    \"repository\": \"https://github.com/remorses/bundless.git\",\n    \"author\": \"remorses <beats.by.morse@gmail.com>\",\n    \"license\": \"MIT\"\n}\n"
  },
  {
    "path": "paged/CHANGELOG.md",
    "content": "# @bundless/plugin-react-paged\n\n## 2.0.4\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/plugin-react-refresh@2.1.0\n\n## 2.0.3\n\n### Patch Changes\n\n-   Updated dependencies [717a68e]\n    -   @bundless/cli@0.2.4\n    -   @bundless/plugin-react-refresh@2.0.3\n\n## 2.0.2\n\n### Patch Changes\n\n-   Updated dependencies [bd7ed34]\n-   Updated dependencies [55d7241]\n    -   @bundless/cli@0.2.3\n    -   @bundless/plugin-react-refresh@2.0.2\n\n## 2.0.1\n\n### Patch Changes\n\n-   Updated dependencies [73eb17a]\n    -   @bundless/plugin-react-refresh@2.0.1\n\n## 2.0.0\n\n### Patch Changes\n\n-   Updated dependencies [9a0b4e5]\n    -   @bundless/cli@0.2.0\n    -   @bundless/plugin-react-refresh@2.0.0\n\n## 1.0.1\n\n### Patch Changes\n\n-   336776d: Small improvements\n-   Updated dependencies [2e6022f]\n    -   @bundless/cli@0.1.5\n\n## 1.0.0\n\n### Patch Changes\n\n-   Updated dependencies [81c8e26]\n    -   @bundless/cli@0.1.0\n"
  },
  {
    "path": "paged/README.md",
    "content": "Nextjs like framework built on top of bundless, esbuild and react router\n\n## IDEAS\n\n-   function in the rpc folder are normal functions when called in the server and trigger a fetch request when called in the client\n-   add a docker command that builds a docker image, this is useful because otherwise the server would need to build using esbuild on start to get the static outputs, this also let me bundle the server in a single files without dependencies, which makes the docker image build lighter and faster to build\n\n"
  },
  {
    "path": "paged/package.json",
    "content": "{\n    \"name\": \"@bundless/plugin-react-paged\",\n    \"version\": \"2.0.4\",\n    \"private\": true,\n    \"description\": \"\",\n    \"main\": \"dist/index.js\",\n    \"types\": \"dist/index.d.ts\",\n    \"repository\": \"https://github.com/remorses/bundless.git\",\n    \"scripts\": {\n        \"build\": \"tsc\",\n        \"watch\": \"tsc -w\"\n    },\n    \"files\": [\n        \"dist\",\n        \"src\"\n    ],\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@babel/types\": \"^7.12.10\",\n        \"@bundless/cli\": \"0.6.0\",\n        \"@types/node\": \"^14.14.13\",\n        \"@types/react-router-dom\": \"^5.1.7\",\n        \"@types/uuid\": \"^8.3.0\"\n    },\n    \"dependencies\": {\n        \"escape-string-regexp\": \"^4.0.0\",\n        \"@bundless/plugin-react-refresh\": \"2.1.0\",\n        \"fast-glob\": \"^3.2.4\",\n        \"fs-extra\": \"^9.0.1\",\n        \"koa-body\": \"^4.2.0\",\n        \"batched-promise-all\": \"^0.9.2\",\n        \"micro-memoize\": \"^4.0.9\",\n        \"picomatch\": \"^2.2.2\",\n        \"react-helmet\": \"^6.1.0\",\n        \"react-refresh\": \"^0.8.2\",\n        \"react-router\": \"^5.2.0\",\n        \"react-router-dom\": \"^5.2.0\",\n        \"swr\": \"^0.3.11\",\n        \"uuid\": \"^8.3.2\"\n    },\n    \"peerDependencies\": {\n        \"@bundless/cli\": \"*\"\n    }\n}\n"
  },
  {
    "path": "paged/src/client/context.ts",
    "content": "import React from 'react'\nimport { HelmetData } from 'react-helmet'\n\nexport const MahoContext = React.createContext<{\n    url?: string\n    helmet?: HelmetData\n    statusCode?: number\n    routeData?: { [path: string]: any }\n} | null>(null)\n\nexport const useMahoContext = () => {\n    const context = React.useContext(MahoContext)\n    if (!context) {\n        throw new Error(`cannot get maho context`)\n    }\n    return context\n}\n"
  },
  {
    "path": "paged/src/client/index.ts",
    "content": "import { useLocation } from 'react-router-dom'\nimport useSWR from 'swr'\n\nimport { useMahoContext } from './context'\n\nexport { useMahoContext, MahoContext } from './context'\n\nconst routeDataFetcher = async (pathname: string) => {\n    return fetch(pathname, {\n        headers: {\n            accept: 'application/json',\n        },\n    })\n        .then((res) => res.json())\n        .then((data) => data[pathname])\n}\n\nexport const useRouteData = () => {\n    const { routeData = {} } = useMahoContext()\n    const location = useLocation()\n\n    if (process['browser']) {\n        const state = window['INITIAL_STATE']\n        const { data } = useSWR(location.pathname, routeDataFetcher, {\n            suspense: true,\n            initialData: routeData[location.pathname],\n            revalidateOnMount: state.revalidateOnMount,\n        })\n        return data\n    }\n\n    return routeData[location.pathname] || {}\n}\n\nexport interface LoadFunctionContext {\n    params: {\n        [k: string]: string | string[]\n    }\n}\n\nexport type LoadFunction = (\n    ctx: LoadFunctionContext,\n) => object | Promise<object>\n"
  },
  {
    "path": "paged/src/constants.ts",
    "content": "import { Logger } from '@bundless/cli'\nimport picomatch from 'picomatch'\n\nexport const CLIENT_ENTRY = '_bundless_paged_entry_.jsx'\nexport const ROUTES_ENTRY = '_bundless_paged_routes_.jsx'\nexport const jsGlob = '**/*.{ts,tsx,js,jsx}'\nexport const isJsPage = picomatch(jsGlob)\n\nexport const logger = new Logger({ prefix: '[paged] ' })\n"
  },
  {
    "path": "paged/src/export.tsx",
    "content": "import { build, logger, PluginsExecutor } from '@bundless/cli'\nimport { osAgnosticPath } from '@bundless/cli/dist/utils'\nimport { batchedPromiseAll } from 'batched-promise-all'\nimport fs from 'fs-extra'\nimport os from 'os'\nimport path from 'path'\nimport React from 'react'\nimport { renderToStaticMarkup, renderToString } from 'react-dom/server'\nimport { generatePath, StaticRouter } from 'react-router-dom'\nimport slash from 'slash'\nimport { CLIENT_ENTRY, ROUTES_ENTRY } from './constants'\nimport { Plugin } from './plugin'\nimport {\n    getPagesRoutes,\n    isDynamicRoute,\n    relativePathToPublicPath,\n} from './routes'\nimport { MainHtml, tryRequire } from './server'\n\nexport async function exportPage({\n    ssrOutputPath,\n    pluginsExecutor,\n    clientScriptSrc,\n    url,\n}) {\n    const { App } = tryRequire(ssrOutputPath)\n    const context = { url }\n    const prerenderedHtml = renderToString(\n        <App Router={StaticRouter} context={context} />,\n    )\n    const html = renderToStaticMarkup(\n        <MainHtml {...{ context, clientScriptSrc, prerenderedHtml }} />,\n    )\n\n    let fullHtml = `<!DOCTYPE html>\\n${html}`\n    // use plugins executor to process html and inject react refresh stuff ....\n    if (pluginsExecutor) {\n        const transformResult = await pluginsExecutor.transform({\n            contents: fullHtml,\n            path: 'index.html',\n            loader: 'default',\n        })\n\n        fullHtml = transformResult.contents || ''\n    }\n    return fullHtml\n}\n\nexport async function staticExport({\n    root,\n    ssrOutDir = 'ssr_out',\n    clientOutDir = 'client_out',\n}) {\n    const pagesDir = path.resolve(root, 'pages')\n    const routes = await getPagesRoutes({ pagesDir })\n    const ssrEntry = path.resolve(root, ROUTES_ENTRY)\n    const { bundleMap: ssrBundleMap } = await build({\n        root,\n        plugins: [Plugin()],\n        platform: 'node',\n        entries: [ssrEntry], // TODO ...routes.map((x) => x.absolute)\n        build: {\n            outDir: ssrOutDir,\n            minify: false,\n        },\n    })\n\n    const pluginsExecutor = new PluginsExecutor({\n        ctx: { isBuild: true, config: { root }, root },\n        initialOptions: {},\n        plugins: [Plugin()],\n    })\n\n    let ssrOutputPath = ssrBundleMap[osAgnosticPath(ssrEntry, root)]\n    if (!ssrOutputPath) {\n        throw new Error(\n            `Could not find ssr output for '${ssrEntry}', ${JSON.stringify(\n                Object.keys(ssrBundleMap),\n            )}`,\n        )\n    }\n    ssrOutputPath = path.resolve(root, ssrOutputPath)\n\n    const urls: string[] = flatten(\n        await batchedPromiseAll(\n            routes,\n            async (route) => {\n                if (isDynamicRoute(route)) {\n                    const { getStaticPaths } = tryRequire(ssrOutputPath)\n                    if (!getStaticPaths || !getStaticPaths[route.path]) {\n                        return []\n                    }\n                    const getStaticPathsFn = getStaticPaths[route.path]\n                    const paths = await getStaticPathsFn()\n                    if (!paths) {\n                        return []\n                    }\n                    return paths.paths.map((p) => {\n                        const generated = generatePath(\n                            route.path,\n                            p.params || {},\n                        )\n                        return generated\n                    })\n                }\n                return [relativePathToPublicPath(route.relative)]\n            },\n            os.cpus().length,\n        ),\n    )\n    const { bundleMap: clientBundleMap } = await build({\n        root,\n        build: {\n            outDir: clientOutDir,\n            minify: false,\n        },\n        define: {\n            'process.browser': 'false',\n        },\n        entries: [CLIENT_ENTRY],\n        plugins: [Plugin()],\n    })\n    await batchedPromiseAll(\n        urls,\n        async (url: string) => {\n            const html = await exportPage({\n                clientScriptSrc: `/${slash(\n                    path.relative(\n                        clientOutDir,\n                        path.resolve(root, clientBundleMap[CLIENT_ENTRY]),\n                    ),\n                )}`,\n                ssrOutputPath,\n                pluginsExecutor,\n                url,\n            })\n            const outputHtmlPath = path.resolve(\n                clientOutDir,\n                (url.slice(1) || 'index') + '.html', // TODO better file creation based on public path\n            )\n            logger.log(`writing html page to ${outputHtmlPath}`)\n            await fs.createFile(outputHtmlPath)\n            await fs.writeFile(outputHtmlPath, html)\n        },\n        os.cpus().length,\n    )\n}\n\nexport function flatten<T>(arr: T[][]): T[] {\n    return arr.reduce(function (flat, toFlatten) {\n        return flat.concat(\n            Array.isArray(toFlatten) ? flatten(toFlatten as any) : toFlatten,\n        )\n    }, [])\n}\n"
  },
  {
    "path": "paged/src/index.tsx",
    "content": "export { Plugin } from './plugin'\nexport { createServer } from './server'\nexport { staticExport } from './export'\nexport * from './client'\n"
  },
  {
    "path": "paged/src/plugin.tsx",
    "content": "import { logger, Plugin as PluginType } from '@bundless/cli'\nimport { fileToImportPath } from '@bundless/cli/dist/utils'\nimport escapeStringRegexp from 'escape-string-regexp'\nimport path from 'path'\nimport * as uuid from 'uuid'\nimport { CLIENT_ENTRY, isJsPage, ROUTES_ENTRY } from './constants'\nimport { getPagesRoutes, getRpcRoutes, invalidateCache } from './routes'\n\nexport function Plugin({} = {}): PluginType {\n    const originalRpcFiles = {}\n    return {\n        name: 'paged-plugin',\n        setup({\n            onLoad,\n            onResolve,\n            onTransform,\n            ctx: { root, watcher, isBuild, config },\n        }) {\n            const pagesDir = path.resolve(root, 'pages')\n            const rpcDir = path.resolve(root, 'rpc')\n            const isClient = config.platform === 'browser'\n            onResolve(\n                { filter: new RegExp(escapeStringRegexp(CLIENT_ENTRY)) },\n                (args) => {\n                    return {\n                        path: path.resolve(root, CLIENT_ENTRY),\n                    }\n                },\n            )\n\n            if (isClient) {\n                // TODO more robust regex for virtual rpc files\n                const rpcPrefix = '__rpc__'\n\n                onResolve({ filter: new RegExp(rpcPrefix) }, (args) => {\n                    logger.log(`resolving rpc ${args.path}`)\n                    return {\n                        path: path.resolve(root, 'original_rpc', args.path),\n                    }\n                })\n\n                onLoad({ filter: new RegExp(rpcPrefix) }, (args) => {\n                    logger.log(`loading rpc ${args.path}`)\n                    const basename = path.basename(args.path)\n                    const originalCode = originalRpcFiles[basename]\n                    if (!originalCode) {\n                        return\n                    }\n                    return {\n                        contents: originalCode,\n                        loader: 'default',\n                    }\n                })\n\n                onTransform({ filter: /rpc/ }, async (args) => {\n                    const isRpcFile = !path\n                        .relative(rpcDir, args.path)\n                        .startsWith('..')\n\n                    if (!isRpcFile) {\n                        return\n                    }\n                    const originalCodeFilename =\n                        rpcPrefix + uuid.v4() + path.extname(args.path)\n                    originalRpcFiles[originalCodeFilename] = args.contents\n                    logger.log(\n                        `transforming ${args.path} and importing original code from ${originalCodeFilename}`,\n                    )\n                    // TODO pass right path for rpc function\n                    const contents = rpcFunctionTemplate({\n                        originalCodeFilename,\n                        root,\n                        rpcPublicPath: fileToImportPath(\n                            root,\n                            args.path,\n                        ).replace(/\\..*$/, ''), // TODO do rpc routes support slugs? no right?\n                    })\n                    return {\n                        contents,\n                        loader: 'js',\n                    }\n                })\n            }\n\n            onLoad(\n                { filter: new RegExp(escapeStringRegexp(CLIENT_ENTRY)) },\n                (args) => {\n                    return {\n                        contents: clientEntryContent,\n                        resolveDir: root,\n                        loader: 'jsx',\n                    }\n                },\n            )\n\n            onResolve(\n                { filter: new RegExp(escapeStringRegexp(ROUTES_ENTRY)) },\n                (args) => {\n                    return {\n                        path: path.resolve(root, ROUTES_ENTRY),\n                    }\n                },\n            )\n\n            if (watcher && !isBuild) {\n                function onChange(filePath) {\n                    // filePath = path.resolve(filePath)\n                    const isInsidePages = !path\n                        .relative(pagesDir, filePath)\n                        .startsWith('..')\n                    if (isInsidePages && isJsPage(filePath)) {\n                        // invalidate routes cache keys\n                        invalidateCache(getPagesRoutes)\n                    }\n                    const isInsideRpc = !path\n                        .relative(rpcDir, filePath)\n                        .startsWith('..')\n                    if (isInsideRpc && isJsPage(filePath)) {\n                        // invalidate routes cache keys\n                        invalidateCache(getRpcRoutes)\n                    }\n                }\n                // TODO reserach what chokidar events means, i should probably add add, remove, ...\n                watcher.on('change', onChange)\n            }\n\n            onLoad(\n                { filter: new RegExp(escapeStringRegexp(ROUTES_ENTRY)) },\n                async (args) => {\n                    const routes = await getPagesRoutes({\n                        pagesDir,\n                    })\n                    return {\n                        contents: makeRoutesContent({ root, routes }),\n                        resolveDir: root,\n                        loader: 'jsx',\n                    }\n                },\n            )\n        },\n    }\n}\n\nfunction rpcFunctionTemplate({ root, originalCodeFilename, rpcPublicPath }) {\n    return `\nimport rpcFunction from '${originalCodeFilename}'\n\nexport default async function wrapper(arg) {\n    const res = await fetch('${rpcPublicPath}', {\n        method: 'POST',\n        body: JSON.stringify(arg),\n        headers: {\n            'Content-Type': 'application/json',\n        }\n    })\n    const json = await res.json()\n    return json\n}\n`\n}\n\nconst clientEntryContent = `\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { BrowserRouter } from 'react-router-dom'\nimport { App } from './${ROUTES_ENTRY}'\n\nconst state = window.INITIAL_STATE\n\nReactDOM.unstable_createRoot(document.getElementById('_maho'))\n    .render(<App \n    Router={BrowserRouter}\n    context={{ statusCode: state.statusCode, url: location.href, routeData: state.routeData }} />)\n`\n\nconst makeRoutesContent = ({ routes, root }) => `\nimport React from 'react'\nimport { Switch, Route, useLocation } from 'react-router-dom'\nimport { useMahoContext, MahoContext } from '@bundless/plugin-react-paged/src/client'\n\nconst Suspense = process.browser ? React.Suspense : ({children}) => children\n\nexport const routes = {}\n\nexport const getStaticPaths = {}\n\n${routes\n    .map((route) => {\n        return `\n        if (process.browser) {\n            routes[\"${\n                route.path\n            }\"] = React.lazy(() => import(\"./${path.posix.relative(\n            root,\n            route.absolute,\n        )}\"))\n        } else {\n            const res = require(\"./${path.posix.relative(\n                root,\n                route.absolute,\n            )}\")\n            routes[\"${route.path}\"] = res.default\n            if (res.getStaticPaths) {\n                getStaticPaths[\"${route.path}\"] = res.getStaticPaths\n            }\n        }\n        `\n    })\n    .join('\\n')}\n\n\n\nconst NotFound = () => {\n    const context = useMahoContext()\n    if (context) {\n        context.statusCode = 404\n    }\n    return <div>404</div>\n}\n\n\nexport const Routes = () => {\n    if (process.browser) {\n        const location = useLocation()\n        React.useEffect(() => {\n            const state = window.INITIAL_STATE\n            state.revalidateOnMount = true\n        }, [location.pathname])\n    }\n    return (\n        <Switch>\n            ${routes\n                .map((route) => {\n                    return `<Route path=\"${route.path}\" component={routes[\"${route.path}\"]} exact />`\n                })\n                .join('\\n')}\n            <Route path=\"*\" component={NotFound} />\n        </Switch>\n    )\n}\n\nclass ErrorBoundary extends React.Component {\n    state = {error: null}\n    static getDerivedStateFromError(error) {\n        return {error}\n    }\n    componentDidCatch() {\n        // log the error to the server\n    }\n    tryAgain = () => this.setState({error: null})\n    render() {\n        return this.state.error ? (\n            <div>\n                There was an error. <button onClick={this.tryAgain}>try again</button>\n                <pre style={{whiteSpace: 'normal'}}>{this.state.error.message}</pre>\n            </div>\n        ) : (\n            this.props.children\n        )\n    }\n}\n\nexport const App = ({ context, Router }) => {\n    return <MahoContext.Provider value={context}>\n        <ErrorBoundary>\n            <Suspense fallback={<div>Loading...</div>}>\n                <Router location={context.url}>\n                    <Routes />\n                </Router>\n            </Suspense>\n        </ErrorBoundary>\n    </MahoContext.Provider>\n}\n`\n"
  },
  {
    "path": "paged/src/routes.ts",
    "content": "import glob from 'fast-glob'\nimport memoize from 'micro-memoize'\nimport path, { normalize } from 'path'\nimport { jsGlob } from './constants'\n\nexport interface Route {\n    path: string\n    relative: string\n    absolute: string\n    name: string\n}\n\nexport const getRpcRoutes = memoize(\n    async function getRpcRoutes({ rpcDir }): Promise<Route[]> {\n        const files = new Set(\n            await glob(jsGlob, {\n                cwd: rpcDir,\n            }),\n        )\n\n        const routes = [...files].map((relative) => {\n            return {\n                relative,\n                path: getRouteFromPath(path.join('rpc', relative)),\n                absolute: path.resolve(rpcDir, relative),\n                name: nameFromPath(relative),\n            }\n        })\n        return routes\n    },\n    { isPromise: true },\n)\n\nexport const getPagesRoutes = memoize(\n    async function getRoutes({ pagesDir }): Promise<Route[]> {\n        const files = new Set(\n            await glob(jsGlob, {\n                cwd: pagesDir,\n            }),\n        )\n\n        const routes = [...files].map((relative) => {\n            return {\n                path: getRouteFromPath(relative),\n                absolute: path.join(pagesDir, relative),\n                relative: relative,\n                name: nameFromPath(relative),\n            }\n        })\n        return routes\n    },\n    { isPromise: true },\n)\n\nexport function nameFromPath(p: string) {\n    return p.replace(/[^a-zA-Z0-9]/g, '_')\n}\n\nfunction getRouteFromPath(relativePath: string) {\n    if (path.isAbsolute(relativePath)) {\n        throw new Error(`getRouteFromPath only accepts relative paths`)\n    }\n    if (relativePath.startsWith('.')) {\n        relativePath = path.normalize(relativePath)\n    }\n\n    const routePath = `${relativePathToPublicPath(relativePath)\n        .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, '*') // [...slug] becomes *\n        .replace(/\\[([^\\]]+)\\]/g, ':$1')}` // [slug] becomes :slug\n    return routePath\n}\n\nexport function relativePathToPublicPath(relativePath: string) {\n    const p =\n        '/' +\n        relativePath\n            .replace(/\\.[a-z]+$/, '') // remove extension\n            .replace(/^index$/, '')\n            .replace(/\\/index$/, '')\n    return p\n}\n\nexport function invalidateCache(memoFunction) {\n    memoFunction.cache.keys.length = 0\n    memoFunction.cache.values.length = 0\n}\n\nexport function isDynamicRoute(route: Route) {\n    return (\n        /\\[\\.\\.\\.([^\\]]+)\\]/g.test(route.relative) ||\n        /\\[([^\\]]+)\\]/.test(route.relative)\n    )\n}\n"
  },
  {
    "path": "paged/src/server.tsx",
    "content": "import { build, logger, Logger, PluginsExecutor } from '@bundless/cli'\nimport slash from 'slash'\nimport { Config, defaultConfig } from '@bundless/cli/dist/config'\nimport { createDevApp } from '@bundless/cli/dist/serve'\nimport { importPathToFile, osAgnosticPath } from '@bundless/cli/dist/utils'\nimport { ReactRefreshPlugin } from '@bundless/plugin-react-refresh'\nimport { Server } from 'http'\nimport Koa from 'koa'\nimport koaBody from 'koa-body'\nimport mount from 'koa-mount'\nimport koaStatic from 'koa-static'\nimport path from 'path'\nimport React from 'react'\nimport { renderToStaticMarkup, renderToString } from 'react-dom/server'\nimport { StaticRouter } from 'react-router-dom'\nimport { matchPath } from 'react-router-dom/'\nimport { MahoContext } from './client'\nimport { CLIENT_ENTRY, ROUTES_ENTRY } from './constants'\nimport { Plugin } from './plugin'\nimport { getPagesRoutes, getRpcRoutes } from './routes'\n\nexport async function createServer({\n    isProduction = false,\n    root,\n    builtAssets: clientOutDir = 'client_out',\n    ssrOutDir = 'ssr_out',\n}) {\n    const app = new Koa()\n    app.use(koaBody({}))\n    const pagesDir = path.resolve(root, 'pages')\n    const rpcDir = path.resolve(root, 'rpc')\n    let baseConfig: Config = {\n        ...defaultConfig,\n        prebundle: {\n            force: true, // TODO remove this after finish prototyping\n        },\n        define: {\n            'process.browser': 'true',\n        },\n        root,\n        plugins: [Plugin(), ...(!isProduction ? [ReactRefreshPlugin()] : [])],\n    }\n    const server = new Server()\n    let clientScriptSrc\n    let pluginsExecutor: PluginsExecutor\n\n    if (isProduction) {\n        const { bundleMap } = await build({\n            ...baseConfig,\n            build: {\n                outDir: clientOutDir,\n            },\n            define: {\n                'process.browser': 'true',\n            },\n            entries: [CLIENT_ENTRY],\n        })\n        clientScriptSrc = `/${slash(\n            path.relative(clientOutDir, bundleMap[CLIENT_ENTRY]),\n        )}`\n\n        app.use(koaStatic(clientOutDir, { index: false }))\n    } else {\n        const {\n            app: devApp,\n            pluginsExecutor: devPluginsExecutor,\n        } = await createDevApp(server, {\n            ...baseConfig,\n            platform: 'browser',\n            define: {\n                'process.browser': 'true',\n            },\n            entries: [CLIENT_ENTRY],\n        })\n        pluginsExecutor = devPluginsExecutor\n        app.use(mount('/', devApp))\n        clientScriptSrc = `/${CLIENT_ENTRY}?namespace=file`\n    }\n\n    const ssrLogger = new Logger({ silent: true })\n    const ssrEntry = path.resolve(root, ROUTES_ENTRY)\n\n    const { bundleMap, rebuild } = await build({\n        ...baseConfig,\n        logger: ssrLogger,\n        define: {\n            'process.browser': 'false',\n        },\n        // TODO resolve react and react dom to the user's installed react and react dom\n        plugins: [Plugin()],\n        entries: [\n            ssrEntry, // TODO rebuild cannot add new entries, this means that to add a new rpc file you need to reload the server\n            ...(await getRpcRoutes({ rpcDir })).map((x) => x.absolute),\n        ],\n\n        platform: 'node',\n        build: {\n            outDir: ssrOutDir,\n        },\n        incremental: true,\n    })\n\n    // handle rpc calls\n    app.use(async (ctx, next) => {\n        const rpcRoutes = await getRpcRoutes({\n            rpcDir: path.resolve(root, 'rpc'),\n        })\n\n        const foundRoute = rpcRoutes.find((route) => {\n            const match = matchPath(ctx.path, {\n                path: route.path,\n                exact: true,\n                strict: true,\n            })\n\n            return match\n        })\n\n        if (!foundRoute) {\n            return next()\n        }\n\n        // TODO add watchIgnore option, ignore files in dist directories or rebuild will trigger a reload in dev\n        // if (!isProduction) {\n        //     logger.log('rebuilding')\n        //     await rebuild!()\n        // }\n\n        const rpcBundle = bundleMap[osAgnosticPath(foundRoute.absolute, root)]\n        if (!rpcBundle) {\n            throw new Error(`Cannot find bundle for ${foundRoute.relative}`)\n        }\n\n        const imports = tryRequire(path.resolve(root, rpcBundle))\n\n        const rpcFunction = imports.default\n        const args = ctx.request.body\n        logger.log(`Running rpc function ${foundRoute.absolute}`)\n        logger.log(`with arguments ${JSON.stringify(args, null, 4)}`)\n        const result = await rpcFunction(args)\n        console.log({ result })\n        ctx.body = JSON.stringify(result)\n        ctx.status = 200\n        ctx.type = 'application/json'\n    })\n\n    // handle html pages\n    app.use(async (ctx, next) => {\n        if (ctx.method !== 'GET' && !ctx.is('html')) return next()\n\n        const pagesRoutes = await getPagesRoutes({ pagesDir })\n\n        const foundRoute = pagesRoutes.find((route) => {\n            const match = matchPath(ctx.path, {\n                path: route.path,\n                exact: true,\n                strict: true,\n            })\n            if (match) {\n                logger.log(`${ctx.path} matched ${route.path}`)\n            }\n            return match\n        })\n\n        if (!foundRoute) {\n            return next()\n        }\n\n        // on dev rebuild on every refresh\n        if (!isProduction) {\n            logger.log('rebuilding')\n            await rebuild!()\n        }\n\n        let outputPath = bundleMap[osAgnosticPath(ssrEntry, root)]\n        if (!outputPath) {\n            throw new Error(\n                `Could not find ssr output for '${ssrEntry}', ${JSON.stringify(\n                    Object.keys(bundleMap),\n                )}`,\n            )\n        }\n        outputPath = path.resolve(root, outputPath)\n\n        const { App } = tryRequire(outputPath)\n        const context = { url: ctx.req.url }\n        const prerenderedHtml = renderToString(\n            <App Router={StaticRouter} context={context} />,\n        )\n        const html = renderToStaticMarkup(\n            <MainHtml {...{ context, clientScriptSrc, prerenderedHtml }} />,\n        )\n\n        let fullHtml = `<!DOCTYPE html>\\n${html}`\n        // use plugins executor to process html and inject react refresh stuff ....\n        if (pluginsExecutor) {\n            const transformResult = await pluginsExecutor.transform({\n                contents: fullHtml,\n                path: foundRoute.absolute + '.html',\n                loader: 'default'\n            })\n\n            fullHtml = transformResult.contents || ''\n        }\n        ctx.body = fullHtml\n        ctx.status = 200\n        ctx.type = 'html'\n        return next()\n    })\n\n    server.on('request', app.callback())\n\n    server.on('close', () => rebuild && rebuild.dispose())\n\n    return server\n}\n\nexport function MainHtml({ prerenderedHtml, clientScriptSrc, context }) {\n    return (\n        <MahoContext.Provider value={context}>\n            <html>\n                <head></head>\n                <body>\n                    <script type='module' src={clientScriptSrc}></script>\n                    <script\n                        dangerouslySetInnerHTML={{\n                            __html: `window.INITIAL_STATE=${JSON.stringify({\n                                statusCode: 200,\n                                routeData: {},\n                            })}`,\n                        }}\n                    ></script>\n                    <div\n                        id='_maho'\n                        dangerouslySetInnerHTML={{\n                            __html: prerenderedHtml,\n                        }}\n                    ></div>\n                </body>\n            </html>\n        </MahoContext.Provider>\n    )\n}\n\nexport function tryRequire(p: string) {\n    try {\n        const cachePath = require.resolve(p)\n        delete require.cache[cachePath]\n\n        return require(p)\n    } catch (e) {\n        throw new Error(`Cannot require '${p}': ${e}`)\n    }\n}\n"
  },
  {
    "path": "paged/tsconfig.json",
    "content": "{\n    \"extends\": \"../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"],\n    \"exclude\": [\"dist\"]\n}\n"
  },
  {
    "path": "plugins/alias/CHANGELOG.md",
    "content": "# @bundless/plugin-alias\n\n## 0.0.1\n### Patch Changes\n\n- Fix regex filter issue\n"
  },
  {
    "path": "plugins/alias/README.md",
    "content": "## Example\n\n```ts\n// bundless.config.js\nconst { AliasPlugin } = require('@bundless/plugin-alias')\n\nmodule.exports = {\n    plugins: [\n        AliasPlugin({\n            entries: { react: 'preact/compat' },\n        }),\n    ],\n}\n```\n"
  },
  {
    "path": "plugins/alias/package.json",
    "content": "{\n    \"name\": \"@bundless/plugin-alias\",\n    \"version\": \"0.0.1\",\n    \"description\": \"\",\n    \"main\": \"dist/index.js\",\n    \"types\": \"dist/index.d.ts\",\n    \"repository\": \"https://github.com/remorses/bundless.git\",\n    \"scripts\": {\n        \"build\": \"tsc\",\n        \"watch\": \"tsc -w\",\n        \"local\": \"yarn publish --force --registry http://localhost:4873 --access restricted --no-git-tag-version --patch --message 'Local registry publish'\"\n    },\n    \"files\": [\n        \"dist\",\n        \"src\"\n    ],\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@types/node\": \"^14.14.13\",\n        \"@types/globrex\": \"^0.1.0\"\n    },\n    \"dependencies\": {\n        \"escape-string-regexp\": \"^4.0.0\",\n        \"slash\": \"^3.0.0\"\n    },\n    \"peerDependencies\": {\n        \"@bundless/cli\": \"*\"\n    }\n}\n"
  },
  {
    "path": "plugins/alias/src/index.ts",
    "content": "import { Plugin } from '@bundless/cli'\nimport * as esbuild from 'esbuild'\nimport escapeStringRegexp from 'escape-string-regexp'\nimport { platform } from 'os'\nimport slash from 'slash'\n\nexport default AliasPlugin\n\nexport function AliasPlugin(options: AliasOptions = {}): Plugin {\n    return {\n        name: 'alias-plugin', // alias plugins need to have enforce pre or node resolve will have higher priority\n        enforce: 'pre',\n        setup({ onResolve, pluginsExecutor }) {\n            const entries = getEntries(options)\n\n            if (entries.length === 0) {\n                return {\n                    name: 'alias-plugin',\n                    resolveId: noop,\n                }\n            }\n            const filterRegexes: RegExp[] = flatten(\n                entries.map((x) => x.find as any),\n            ).map((x: any) =>\n                typeof x === 'string'\n                    ? new RegExp('(' + escapeStringRegexp(x) + ')')\n                    : x,\n            )\n            const resolver = (arg: esbuild.OnResolveArgs) => {\n                const importee = arg.path\n                const importer = arg.importer\n                const importeeId = normalizeId(importee)\n                const importerId = normalizeId(importer)\n\n                // First match is supposed to be the correct one\n                const matchedEntry = entries.find((entry) =>\n                    matches(entry.find, importeeId),\n                )\n                if (!matchedEntry || !importerId) {\n                    return null\n                }\n\n                const updatedId = normalizeId(\n                    importeeId.replace(\n                        matchedEntry.find,\n                        matchedEntry.replacement,\n                    ),\n                )\n                if (!updatedId) {\n                    return null\n                }\n\n                return pluginsExecutor\n                    .resolve({\n                        ...arg,\n                        importer,\n                        path: updatedId, // TODO pass plugin data to let this plugin skip itself from running\n                    })\n                    .then((resolved) => {\n                        if (!resolved) {\n                            resolved = { path: updatedId }\n                        }\n                        options?.onAlias?.(resolved.path || '')\n                        return resolved\n                    })\n            }\n            filterRegexes.forEach((filter) => {\n                onResolve({ filter }, resolver)\n            })\n        },\n    }\n}\n\nconst VOLUME = /^([A-Z]:)/i\nconst IS_WINDOWS = platform() === 'win32'\n\nconst noop = () => null\n\nfunction matches(pattern: string | RegExp, importee: string) {\n    if (pattern instanceof RegExp) {\n        return pattern.test(importee)\n    }\n    if (importee.length < pattern.length) {\n        return false\n    }\n    if (importee === pattern) {\n        return true\n    }\n    const importeeStartsWithKey = importee.indexOf(pattern) === 0\n    const importeeHasSlashAfterKey =\n        importee.substring(pattern.length)[0] === '/'\n    return importeeStartsWithKey && importeeHasSlashAfterKey\n}\n\nfunction normalizeId(id: string): string\nfunction normalizeId(id: string | undefined): string | undefined\nfunction normalizeId(id: string | undefined) {\n    if (typeof id === 'string' && (IS_WINDOWS || VOLUME.test(id))) {\n        return slash(id.replace(VOLUME, ''))\n    }\n    return id\n}\n\nfunction getEntries({ entries }: AliasOptions): readonly Alias[] {\n    if (!entries) {\n        return []\n    }\n\n    if (Array.isArray(entries)) {\n        return entries\n    }\n\n    return Object.entries(entries).map(([key, value]) => {\n        return { find: key, replacement: value }\n    })\n}\n\nexport interface AliasOptions {\n    onAlias?: (resolved: string) => any\n    entries?: readonly Alias[] | { [find: string]: string }\n}\n\ninterface Alias {\n    find: string | RegExp\n    replacement: string\n}\n\nfunction flatten<T>(arr: T[][]): T[] {\n    return arr.reduce(function (flat, toFlatten) {\n        return flat.concat(\n            Array.isArray(toFlatten) ? flatten(toFlatten as any) : toFlatten,\n        )\n    }, [])\n}\n"
  },
  {
    "path": "plugins/alias/tsconfig.json",
    "content": "{\n    \"extends\": \"../../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "plugins/babel/CHANGELOG.md",
    "content": "# @bundless/plugin-babel\n\n## 0.0.2\n\n### Patch Changes\n\n-   717a68e: Fix npm release, removed bin\n-   Updated dependencies [717a68e]\n    -   @bundless/cli@0.2.4\n\n## 0.0.1\n\n### Patch Changes\n\n-   1283051: Initial release\n"
  },
  {
    "path": "plugins/babel/README.md",
    "content": "## Example\n\n```ts\n// bundless.config.js\nconst { BabelPlugin } = require('@bundless/plugin-babel')\n\nmodule.exports = {\n    plugins: [\n        BabelPlugin({\n            babelOptions: {\n                plugins: [require('babel-plugin-macros')],\n            },\n        }),\n    ],\n}\n```\n"
  },
  {
    "path": "plugins/babel/package.json",
    "content": "{\n    \"name\": \"@bundless/plugin-babel\",\n    \"version\": \"0.0.2\",\n    \"description\": \"\",\n    \"main\": \"dist/index.js\",\n    \"types\": \"dist/index.d.ts\",\n    \"repository\": \"https://github.com/remorses/bundless.git\",\n    \"scripts\": {\n        \"build\": \"tsc\",\n        \"watch\": \"tsc -w\",\n        \"local\": \"yarn publish --force --registry http://localhost:4873 --access restricted --no-git-tag-version --patch --message 'Local registry publish'\"\n    },\n    \"files\": [\n        \"dist\",\n        \"src\"\n    ],\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@babel/types\": \"^7.12.10\",\n        \"@bundless/cli\": \"0.6.0\",\n        \"@types/node\": \"^14.14.13\"\n    },\n    \"dependencies\": {\n        \"@babel/core\": \"^7.12.10\",\n        \"@babel/parser\": \"^7.12.11\"\n    },\n    \"peerDependencies\": {\n        \"@bundless/cli\": \"*\"\n    }\n}\n"
  },
  {
    "path": "plugins/babel/src/index.ts",
    "content": "import { ParserOptions, transform, TransformOptions } from '@babel/core'\nimport { ParserPlugin } from '@babel/parser'\nimport { Plugin } from '@bundless/cli'\n\nexport default BabelPlugin\n\ninterface Options {\n    /**\n     * Options passed to babel\n     */\n    babelOptions: TransformOptions\n    /**\n     * Filter which files should babel transform\n     */\n    filter?: RegExp\n    /**\n     * Run the plugin before or after bundless builtin plugins (like esbuild transform)\n     */\n    enforce?: 'pre' | 'post'\n}\n\nexport function BabelPlugin({\n    babelOptions,\n    filter = /\\.(t|j)sx?$/,\n    enforce = 'pre',\n}: Options): Plugin {\n    return {\n        name: 'react-refresh',\n        enforce,\n        setup({ onTransform, onResolve, onLoad, ctx: { root, isBuild } }) {\n            onTransform({ filter }, async (args) => {\n                if (args.path.includes('node_modules')) {\n                    return null\n                }\n                const parserPlugins: ParserPlugin[] = [\n                    'jsx',\n                    'importMeta',\n                    'topLevelAwait',\n                    'classProperties',\n                    'classPrivateProperties',\n                    'classPrivateMethods',\n                ]\n                if (/\\.tsx?$/.test(args.path)) {\n                    parserPlugins.push('typescript', 'decorators-legacy')\n                }\n                const result = await transform(args.contents, {\n                    parserOpts: {\n                        ...babelParserOpts,\n                        plugins: parserPlugins,\n                        sourceFilename: args.path,\n                    },\n                    plugins: [],\n                    ast: false,\n                    babelrc: false,\n                    configFile: false,\n                    sourceType: 'module',\n                    filename: args.path,\n                    sourceMaps: true,\n                    sourceFileName: args.path,\n                    ...babelOptions,\n                })\n\n                if (!result || !result.code) {\n                    return\n                }\n\n                return {\n                    loader: 'default',\n                    contents: result.code,\n                    map: result.map,\n                }\n            })\n        },\n    }\n}\n\nconst babelParserOpts: ParserOptions = {\n    sourceType: 'module',\n    allowAwaitOutsideFunction: true,\n    plugins: [\n        // required for import.meta.hot\n        'importMeta',\n        'jsx',\n        // by default we enable proposals slated for ES2020.\n        // full list at https://babeljs.io/docs/en/next/babel-parser#plugins\n        // this should be kept in async with @vue/compiler-core's support range\n        'bigInt',\n        'optionalChaining',\n        'classProperties',\n        'nullishCoalescingOperator',\n    ],\n}\n"
  },
  {
    "path": "plugins/babel/tsconfig.json",
    "content": "{\n    \"extends\": \"../../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "plugins/react-refresh/CHANGELOG.md",
    "content": "# @bundless/plugin-react-refresh\n\n## 2.1.0\n\n### Minor Changes\n\n-   Many improvements\n\n## 2.0.3\n\n### Patch Changes\n\n-   717a68e: Fix npm release, removed bin\n-   Updated dependencies [717a68e]\n    -   @bundless/cli@0.2.4\n\n## 2.0.2\n\n### Patch Changes\n\n-   55d7241: Run in pre mode\n-   Updated dependencies [bd7ed34]\n    -   @bundless/cli@0.2.3\n\n## 2.0.1\n\n### Patch Changes\n\n-   73eb17a: try to always enable react refresh, even when non react components exports exist, fix message when non react components are exported\n\n## 2.0.0\n\n### Patch Changes\n\n-   Updated dependencies [9a0b4e5]\n    -   @bundless/cli@0.2.0\n\n## 1.0.8\n\n### Patch Changes\n\n-   a398d28: add babelPlugins option\n\n## 1.0.7\n\n### Patch Changes\n\n-   aa73425: Changed isComponentLikeName to support names with \\_\n\n## 1.0.6\n\n### Patch Changes\n\n-   d42ff9d: Fix npm files\n\n## 1.0.5\n\n### Patch Changes\n\n-   0b2d857: Do not warn on default export\n\n## 1.0.4\n\n### Patch Changes\n\n-   c2e66aa: configFile: false for babel\n\n## 1.0.3\n\n### Patch Changes\n\n-   9931159: Don't use babelrc file\n\n## 1.0.2\n\n### Patch Changes\n\n-   fa99696: Small improvs\n\n## 1.0.1\n\n### Patch Changes\n\n-   cc36158: Add filename in babel transform\n\n## 1.0.0\n\n### Minor Changes\n\n-   81c8e26: First release\n\n### Patch Changes\n\n-   Updated dependencies [81c8e26]\n    -   @bundless/cli@0.1.0\n"
  },
  {
    "path": "plugins/react-refresh/package.json",
    "content": "{\n    \"name\": \"@bundless/plugin-react-refresh\",\n    \"version\": \"2.1.0\",\n    \"description\": \"\",\n    \"main\": \"dist/index.js\",\n    \"types\": \"dist/index.d.ts\",\n    \"repository\": \"https://github.com/remorses/bundless.git\",\n    \"scripts\": {\n        \"build\": \"tsc\",\n        \"watch\": \"tsc -w\",\n        \"local\": \"yarn publish --force --registry http://localhost:4873 --access restricted --no-git-tag-version --patch --message 'Local registry publish'\"\n    },\n    \"files\": [\n        \"dist\",\n        \"src\"\n    ],\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@babel/types\": \"^7.12.10\",\n        \"@bundless/cli\": \"0.6.0\",\n        \"@types/node\": \"^14.14.13\"\n    },\n    \"dependencies\": {\n        \"@babel/core\": \"^7.12.10\",\n        \"slash\": \"^3.0.0\",\n        \"@babel/parser\": \"^7.12.11\",\n        \"react-refresh\": \"^0.8.2\"\n    },\n    \"peerDependencies\": {\n        \"@bundless/cli\": \"*\"\n    }\n}\n"
  },
  {
    "path": "plugins/react-refresh/src/index.ts",
    "content": "import {\n    File as BabelAST,\n    identifier,\n    Identifier,\n    Statement,\n} from '@babel/types'\nimport fs from 'fs'\nimport slash from 'slash'\nimport { parse as _parse, ParserPlugin } from '@babel/parser'\nimport { Plugin, logger } from '@bundless/cli'\nimport { babelParserOpts, osAgnosticPath } from '@bundless/cli/dist/utils'\nimport { transform } from '@babel/core'\nimport path, { relative } from 'path'\n\nconst runtimeNamespace = 'react-refresh-runtime'\nconst runtimePath = `_react-refresh-runtime_.js`\n\nexport default ReactRefreshPlugin\n\nexport function ReactRefreshPlugin({\n    babelPlugins = [] as any[],\n    filter = /\\.(t|j)sx$/,\n} = {}): Plugin {\n    return {\n        name: 'react-refresh',\n        enforce: 'pre',\n        setup({ onTransform, onResolve, onLoad, ctx: { root, isBuild } }) {\n            if (process.env.NODE_ENV === 'production' || isBuild) {\n                return\n            }\n\n            // injects stuff in html\n            onTransform({ filter: /\\.html$/ }, (args) => {\n                return {\n                    contents: transformHtml(args.contents),\n                }\n            })\n\n            onResolve({ filter: new RegExp(runtimePath) }, (args) => {\n                if (path.basename(args.path) !== runtimePath) {\n                    return\n                }\n\n                return {\n                    path: runtimePath,\n                    namespace: runtimeNamespace,\n                }\n            })\n\n            onLoad(\n                { filter: /.*/, namespace: runtimeNamespace },\n                async (args) => {\n                    const runtimeModulePath = require.resolve(\n                        'react-refresh/cjs/react-refresh-runtime.development.js',\n                    )\n                    const runtimeCode = `\n                    const exports = {}\n                    const process = {env: {NODE_ENV: 'development'}}\n                    ${await (\n                        await fs.promises.readFile(runtimeModulePath)\n                    ).toString()}\n                    ${debounce.toString()}\n                    exports.performReactRefresh = debounce(exports.performReactRefresh, 16)\n                    export default exports\n                    `\n                    return {\n                        loader: 'jsx',\n                        contents: runtimeCode,\n                    }\n                },\n            )\n\n            onTransform({ filter }, async (args) => {\n                if (args.path.includes('node_modules')) {\n                    return\n                }\n\n                // TODO maybe also process js files if they import react, this would enable react refresh for workspaces? but this way they certainly would have non react components as export and break everything\n\n                const parserPlugins: ParserPlugin[] = [\n                    'jsx',\n                    'importMeta',\n                    'topLevelAwait',\n                    'classProperties',\n                    'classPrivateProperties',\n                    'classPrivateMethods',\n                ]\n                if (/\\.tsx?$/.test(args.path)) {\n                    parserPlugins.push('typescript', 'decorators-legacy')\n                }\n                const result = await transform(args.contents, {\n                    parserOpts: {\n                        ...babelParserOpts,\n                        plugins: parserPlugins,\n                        sourceFilename: args.path,\n                    },\n                    plugins: [\n                        // require('@babel/plugin-transform-react-jsx-self'), // TODO add react source plugin for line numbers?\n                        // require('@babel/plugin-transform-react-jsx-source'),\n                        [\n                            require('react-refresh/babel'),\n                            { skipEnvCheck: true },\n                        ],\n                        {\n                            visitor: {\n                                Program(path) {\n                                    // Insert at the beginning a string \"Hello World\" --> not valid JS code\n                                    path.unshiftContainer(\n                                        'body',\n                                        makeHeader(\n                                            slash(relative(root, args.path)),\n                                        ) as any,\n                                    )\n                                },\n                            },\n                        },\n                        ...(babelPlugins || []),\n                    ],\n                    ast: true,\n                    babelrc: false,\n                    configFile: false,\n                    sourceType: 'module',\n                    filename: args.path,\n                    sourceMaps: true,\n                    sourceFileName: args.path,\n                })\n\n                if (!result || !result.code) {\n                    return\n                }\n\n                if (!/\\$RefreshReg\\$\\(/.test(result.code)) {\n                    // no component detected in the file\n                    return\n                }\n\n                const nonComponentExports = result.ast\n                    ? getNonComponentExports(result.ast as any)\n                    : []\n                const hmrDisabledMessage = `\"${osAgnosticPath(\n                    args.path,\n                    root,\n                )}\" has non react components exports ${nonComponentExports.join(\n                    ', ',\n                )}`\n                if (nonComponentExports.length) {\n                    logger.warn(hmrDisabledMessage)\n                }\n\n                const footer = makeFooter(true)\n\n                return {\n                    contents: `${result.code}${footer}`,\n                    map: result.map,\n                }\n            })\n        },\n    }\n}\n\nfunction getNonComponentExports(ast: BabelAST) {\n    // Every export must be a React component.\n    // TODO check that default export is a named function\n    return flatten(\n        ast.program.body.map((node) => {\n            if (node.type !== 'ExportNamedDeclaration') {\n                return []\n            }\n            const { declaration, specifiers } = node\n            if (declaration && declaration.type === 'VariableDeclaration') {\n                return declaration.declarations\n                    .filter(\n                        (x) =>\n                            x.id.type === 'Identifier' &&\n                            !isComponentLikeName(x.id.name),\n                    )\n                    .map((x) => (x.id.type === 'Identifier' ? x.id?.name : ''))\n            }\n            return specifiers\n                .filter(\n                    ({ exported }) =>\n                        exported.type === 'Identifier' &&\n                        !isComponentLikeName(exported.name),\n                )\n                .map((x) =>\n                    x.exported.type === 'Identifier' ? x.exported.name : '',\n                )\n        }),\n    )\n}\n\nfunction isComponentLikeName(name: string) {\n    return (\n        name === 'default' ||\n        name.startsWith('__') || // probably some generated code\n        (typeof name === 'string' && name[0] >= 'A' && name[0] <= 'Z')\n    )\n}\n\nfunction debounce(fn: () => void, delay: number) {\n    let handle: any\n    return () => {\n        clearTimeout(handle)\n        handle = setTimeout(fn, delay)\n    }\n}\n\nfunction transformHtml(contents) {\n    return contents.replace(\n        /<body.*?>/,\n        `$&\n  <script type=\"module\">\n  import RefreshRuntime from \"/${runtimePath}?namespace=${runtimeNamespace}\"\n  RefreshRuntime.injectIntoGlobalHook(window)\n  window.$RefreshReg$ = () => {}\n  window.$RefreshSig$ = () => (type) => type\n  window.__bundless_plugin_react_preamble_installed__ = true\n  </script>`,\n    )\n}\n\nexport function flatten<T>(arr: T[][]): T[] {\n    return arr.reduce(function (flat, toFlatten) {\n        return flat.concat(\n            Array.isArray(toFlatten) ? flatten(toFlatten as any) : toFlatten,\n        )\n    }, [])\n}\n\nconst makeHeader = (path) => {\n    return [\n        ...parse(`const ${THIS_PATH_NAME} = ${JSON.stringify(path)}`),\n        ...header,\n    ]\n}\n\nconst THIS_PATH_NAME = '__this_path__'\n\nconst header = parse(\n    `\nimport RefreshRuntime from \"/${runtimePath}\";\n\nlet prevRefreshReg;\nlet prevRefreshSig;\n\nif (!window.__bundless_plugin_react_preamble_installed__) {\n  throw new Error(\n    \"bundless-plugin-react can't detect preamble. Something is wrong.\"\n  );\n}\n\nif (import.meta.hot) {\n  prevRefreshReg = window.$RefreshReg$;\n  prevRefreshSig = window.$RefreshSig$;\n  window.$RefreshReg$ = (type, id) => {\n    RefreshRuntime.register(type, ${THIS_PATH_NAME} + \" \" + id)\n  };\n  window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;\n}`,\n)\n\nconst makeFooter = (accept) => `\nif (import.meta.hot) {\n  window.$RefreshReg$ = prevRefreshReg;\n  window.$RefreshSig$ = prevRefreshSig;\n\n  ${accept ? `import.meta.hot.accept();` : ''}\n  if (!window.__bundless_plugin_react_timeout) {\n    window.__bundless_plugin_react_timeout = setTimeout(() => {\n      window.__bundless_plugin_react_timeout = 0;\n      RefreshRuntime.performReactRefresh();\n    }, 30);\n  }\n}`\n\nexport function parse(\n    source: string,\n    sourceFilename = 'file.tsx',\n): Statement[] {\n    try {\n        return _parse(source, { ...babelParserOpts, sourceFilename }).program\n            .body\n    } catch (e) {\n        throw new Error(`Cannot parse with babel: ${e}`)\n    }\n}\n"
  },
  {
    "path": "plugins/react-refresh/tsconfig.json",
    "content": "{\n    \"extends\": \"../../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "plugins/svelte/CHANGELOG.md",
    "content": "# @bundless/plugin-svelte\n\n## 0.0.1\n### Patch Changes\n\n- bbbd527: Bump\n"
  },
  {
    "path": "plugins/svelte/package.json",
    "content": "{\n    \"name\": \"@bundless/plugin-svelte\",\n    \"version\": \"0.0.1\",\n    \"description\": \"\",\n    \"main\": \"dist/index.js\",\n    \"types\": \"dist/index.d.ts\",\n    \"repository\": \"https://github.com/remorses/bundless.git\",\n    \"scripts\": {\n        \"build\": \"tsc\",\n        \"watch\": \"tsc -w\",\n        \"local\": \"yarn publish --force --registry http://localhost:4873 --access restricted --no-git-tag-version --patch --message 'Local registry publish'\"\n    },\n    \"files\": [\n        \"dist\",\n        \"src\"\n    ],\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@types/node\": \"^14.14.13\",\n        \"svelte\": \"^3.32.1\"\n    },\n    \"dependencies\": {\n        \"svelte-hmr\": \"^0.12.2\"\n    },\n    \"peerDependencies\": {\n        \"esbuild\": \"*\",\n        \"svelte\": \"*\"\n    }\n}\n"
  },
  {
    "path": "plugins/svelte/src/index.ts",
    "content": "import { Plugin } from '@bundless/cli'\nimport { NodeResolvePlugin, RewritePlugin } from '@bundless/cli/dist/plugins'\nimport { osAgnosticPath } from '@bundless/cli/dist/utils'\nimport { PartialMessage as ESBuildMessage } from 'esbuild'\nimport { promises as fs } from 'fs'\nimport { platform } from 'os'\nimport path from 'path'\nimport { createMakeHot } from 'svelte-hmr'\nimport * as compiler from 'svelte/compiler'\nimport {\n    CompileOptions,\n    Warning as SvelteWarning,\n} from 'svelte/types/compiler/interfaces'\nimport { PreprocessorGroup } from 'svelte/types/compiler/preprocess/types'\nimport { typescriptPreprocessor } from './typescript'\n\nlet makeHot = (...args) => {\n    makeHot = createMakeHot({ walk: compiler.walk })\n    return makeHot(...args)\n}\n\nexport function SveltePlugin(options: PluginOptions = {}): Plugin {\n    let {\n        compilerOptions = {},\n        preprocess = [],\n        typescript = true,\n        hmrOptions,\n    } = options\n\n    if (typescript) {\n        preprocess = [typescriptPreprocessor, ...preprocess]\n    }\n\n    return {\n        name: 'svelte',\n        modulesToPrebundle: [\n            'svelte-hmr/runtime/hot-api-esm',\n            'svelte-hmr/runtime/proxy-adapter-dom',\n        ],\n        setup(build) {\n            const {\n                onLoad,\n                onResolve,\n                ctx: { isBuild, graph, config, root },\n            } = build\n\n            NodeResolvePlugin({\n                extensions: ['.svelte'],\n                isExtensionRequiredInImportPath: true,\n            }).setup({\n                ...build,\n                onResolve,\n                onLoad() {},\n            })\n\n            if (!isBuild) {\n                RewritePlugin({ filter: /\\.svelte(\\?.*)?$/ }).setup(build)\n            }\n\n            let cssMap: Map<string, string> = new Map()\n\n            onLoad({ filter: /\\.svelte$/i }, async (args) => {\n                let source = await fs.readFile(args.path, 'utf-8')\n\n                let finalCompileOptions: CompileOptions = {\n                    css: false,\n                    generate: config.platform === 'node' ? 'ssr' : 'dom',\n                    ...compilerOptions,\n                    dev: !isBuild,\n                    filename: args.path,\n                    outputFilename: args.path,\n                    format: 'esm',\n                }\n\n                if (preprocess.length) {\n                    let processed = await compiler.preprocess(\n                        source,\n                        preprocess,\n                        {\n                            filename: args.path,\n                        },\n                    )\n\n                    source = processed.code\n                    if (processed.map)\n                        finalCompileOptions.sourcemap = processed.map\n                }\n\n                try {\n                    let compiled = compiler.compile(source, finalCompileOptions)\n                    let { js, css, warnings } = compiled\n\n                    if (!finalCompileOptions.css && css?.code) {\n                        const cssPath = args.path + '.css'\n                        js.code =\n                            `import \"./${path.basename(cssPath)}\";\\n` + js.code\n                        if (graph) {\n                            // mark css file as a derived file from svelte\n                            graph.ensureEntry(osAgnosticPath(args.path, root), {\n                                computedModules: new Set([\n                                    osAgnosticPath(cssPath, root),\n                                ]),\n                            })\n                        }\n                        cssMap.set(args.path, css.code)\n                    }\n\n                    if (!isBuild) {\n                        js.code = makeHot({\n                            id: args.path,\n                            compiledCode: js.code,\n                            hotOptions: {\n                                preserveLocalState: true,\n                                injectCss: true,\n                                ...hmrOptions,\n                                absoluteImports: false,\n                                noOverlay: true,\n                            },\n                            compiled: compiled,\n                            originalCode: source,\n                            compileOptions: finalCompileOptions,\n                        })\n                    }\n\n                    return {\n                        contents: js.code,\n                        warnings: warnings.map(convertMessage),\n                    }\n                } catch (e) {\n                    return { errors: [convertMessage(e)] }\n                }\n\n                function convertMessage(msg: SvelteWarning): ESBuildMessage {\n                    let { message, start, end } = msg\n                    let location: undefined | ESBuildMessage['location']\n\n                    if (start && end) {\n                        let lineText = source.split(/\\r\\n|\\r|\\n/g)[start.line]\n                        let lineEnd =\n                            start.line == end.line\n                                ? end.column\n                                : lineText.length\n\n                        location = {\n                            file: args.path,\n                            line: start.line,\n                            column: start.column,\n                            length: lineEnd - start.column,\n                            lineText,\n                        }\n                    }\n\n                    return { text: message, location }\n                }\n            })\n\n            onResolve({ filter: /\\.svelte\\.css/i }, async (args) => {\n                return {\n                    path: path.resolve(args.resolveDir, args.path),\n                }\n            })\n\n            onLoad({ filter: /\\.svelte\\.css/i }, ({ path: filename }) => {\n                filename = filename.replace('.css', '')\n\n                let css = cssMap.get(filename)\n                if (!css) return null\n\n                return { contents: css, loader: 'css' }\n            })\n        },\n    }\n}\n\nexport interface PluginOptions {\n    compilerOptions?: CompileOptions\n    preprocess?: PreprocessorGroup[]\n    hmrOptions?: any \n    typescript?: boolean\n}\n\nexport default SveltePlugin\n"
  },
  {
    "path": "plugins/svelte/src/typescript.ts",
    "content": "import * as esbuild from 'esbuild'\n\nimport { PreprocessorGroup } from 'svelte/types/compiler/preprocess/types'\n\nexport let typescriptPreprocessor: PreprocessorGroup = {\n    async script({ content, filename, attributes }) {\n        if (\n            !(\n                typeof attributes.lang == 'string' &&\n                /typescript|ts/.test(attributes.lang)\n            )\n        )\n            return { code: content }\n\n        let result = await esbuild.transform(content, {\n            loader: 'ts',\n            target: 'esnext',\n            sourcefile: filename,\n            tsconfigRaw: {\n                compilerOptions: {\n                    importsNotUsedAsValues: 'preserve',\n                },\n            },\n        })\n\n        return { code: result.code }\n    },\n}\n"
  },
  {
    "path": "plugins/svelte/tsconfig.json",
    "content": "{\n    \"extends\": \"../../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "plugins/svelte/yarn-error.log",
    "content": "Arguments: \n  /Users/morse/.nvm/versions/node/v10.21.0/bin/node /Users/morse/.nvm/versions/node/v10.21.0/bin/yarn add -D @types/svelte-hmr\n\nPATH: \n  /Users/morse/google-cloud-sdk/bin:/usr/local/opt/bison/bin:/Users/morse/.nvm/versions/node/v10.21.0/bin:/usr/local/sbin:/usr/local/opt/binutils/bin:/Users/morse/.cargo/bin:/usr/local/bin/madmom:/Users/morse/.local/bin:/Users/morse/go/bin:/Users/morse/.pyenv/shims:/Users/morse/.pyenv:/usr/local/bin/:/Users/morse/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS:/Users/morse/google-cloud-sdk/bin:/usr/local/opt/bison/bin:/Users/morse/.nvm/versions/node/v10.21.0/bin:/usr/local/sbin:/usr/local/opt/binutils/bin:/Users/morse/.cargo/bin:/usr/local/bin/madmom:/Users/morse/.local/bin:/Users/morse/go/bin:/Users/morse/.pyenv/shims:/Users/morse/.pyenv:/usr/local/bin/:yarn global bin:yarn global bin\n\nYarn version: \n  1.22.5\n\nNode version: \n  10.21.0\n\nPlatform: \n  darwin x64\n\nTrace: \n  Error: https://registry.yarnpkg.com/@types%2fsvelte-hmr: Not found\n      at Request.params.callback [as _callback] (/Users/morse/.nvm/versions/node/v10.21.0/lib/node_modules/yarn/lib/cli.js:66988:18)\n      at Request.self.callback (/Users/morse/.nvm/versions/node/v10.21.0/lib/node_modules/yarn/lib/cli.js:140662:22)\n      at Request.emit (events.js:198:13)\n      at Request.<anonymous> (/Users/morse/.nvm/versions/node/v10.21.0/lib/node_modules/yarn/lib/cli.js:141634:10)\n      at Request.emit (events.js:198:13)\n      at IncomingMessage.<anonymous> (/Users/morse/.nvm/versions/node/v10.21.0/lib/node_modules/yarn/lib/cli.js:141556:12)\n      at Object.onceWrapper (events.js:286:20)\n      at IncomingMessage.emit (events.js:203:15)\n      at endReadableNT (_stream_readable.js:1145:12)\n      at process._tickCallback (internal/process/next_tick.js:63:19)\n\nnpm manifest: \n  {\n      \"name\": \"@bundless/plugin-svelte\",\n      \"version\": \"1.0.4\",\n      \"description\": \"\",\n      \"main\": \"dist/index.js\",\n      \"types\": \"dist/index.d.ts\",\n      \"repository\": \"https://github.com/remorses/bundless.git\",\n      \"scripts\": {\n          \"build\": \"tsc\",\n          \"watch\": \"tsc -w\",\n          \"local\": \"yarn publish --force --registry http://localhost:4873 --access restricted --no-git-tag-version --patch --message 'Local registry publish'\"\n      },\n      \"files\": [\n          \"dist\",\n          \"src\"\n      ],\n      \"bin\": \"cli.js\",\n      \"keywords\": [],\n      \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n      \"license\": \"ISC\",\n      \"devDependencies\": {\n          \"@bundless/cli\": \"^0.1.6\",\n          \"@types/node\": \"^14.14.13\",\n          \"svelte\": \"^3.31.2\"\n      },\n      \"dependencies\": {\n          \"svelte-hmr\": \"^0.12.2\"\n      },\n      \"peerDependencies\": {\n          \"esbuild\": \"*\",\n          \"svelte\": \"*\"\n      }\n  }\n\nyarn manifest: \n  No manifest\n\nLockfile: \n  # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.\n  # yarn lockfile v1\n  \n  \n  \"@ampproject/toolbox-core@2.7.4\", \"@ampproject/toolbox-core@^2.7.1-alpha.0\":\n    version \"2.7.4\"\n    resolved \"https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.7.4.tgz#8355136f16301458ce942acf6c55952c9a415627\"\n    integrity sha512-qpBhcS4urB7IKc+jx2kksN7BuvvwCo7Y3IstapWo+EW+COY5EYAUwb2pil37v3TsaqHKgX//NloFP1SKzGZAnw==\n    dependencies:\n      cross-fetch \"3.0.6\"\n      lru-cache \"6.0.0\"\n  \n  \"@ampproject/toolbox-optimizer@2.7.1-alpha.0\":\n    version \"2.7.1-alpha.0\"\n    resolved \"https://registry.yarnpkg.com/@ampproject/toolbox-optimizer/-/toolbox-optimizer-2.7.1-alpha.0.tgz#1571dcd02608223ff68f6b7223102a123e381197\"\n    integrity sha512-WGPZKVQvHgNYJk1XVJCCmY+NVGTGJtvn0OALDyiegN4FJWOcilQUhCIcjMkZN59u1flz/u+sEKccM5qsROqVyg==\n    dependencies:\n      \"@ampproject/toolbox-core\" \"^2.7.1-alpha.0\"\n      \"@ampproject/toolbox-runtime-version\" \"^2.7.1-alpha.0\"\n      \"@ampproject/toolbox-script-csp\" \"^2.5.4\"\n      \"@ampproject/toolbox-validator-rules\" \"^2.7.1-alpha.0\"\n      abort-controller \"3.0.0\"\n      cross-fetch \"3.0.6\"\n      cssnano-simple \"1.2.1\"\n      dom-serializer \"1.1.0\"\n      domhandler \"3.3.0\"\n      domutils \"2.4.2\"\n      htmlparser2 \"5.0.1\"\n      https-proxy-agent \"5.0.0\"\n      lru-cache \"6.0.0\"\n      node-fetch \"2.6.1\"\n      normalize-html-whitespace \"1.0.0\"\n      postcss \"7.0.32\"\n      postcss-safe-parser \"4.0.2\"\n      terser \"5.5.1\"\n  \n  \"@ampproject/toolbox-runtime-version@^2.7.1-alpha.0\":\n    version \"2.7.4\"\n    resolved \"https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.7.4.tgz#f49da0dab122101ef75ed3caed3a0142487b73e1\"\n    integrity sha512-SAdOUOERp42thVNWaBJlnFvFVvnacMVnz5z9LyUZHSnoL1EqrAW5Sz5jv+Ly+gkA8NYsEaUxAdSCBAzE9Uzb4Q==\n    dependencies:\n      \"@ampproject/toolbox-core\" \"2.7.4\"\n  \n  \"@ampproject/toolbox-script-csp@^2.5.4\":\n    version \"2.5.4\"\n    resolved \"https://registry.yarnpkg.com/@ampproject/toolbox-script-csp/-/toolbox-script-csp-2.5.4.tgz#d8b7b91a678ae8f263cb36d9b74e441b7d633aad\"\n    integrity sha512-+knTYetI5nWllRZ9wFcj7mYxelkiiFVRAAW/hl0ad8EnKHMH82tRlk40CapEnUHhp6Er5sCYkumQ8dngs3Q4zQ==\n  \n  \"@ampproject/toolbox-validator-rules@^2.7.1-alpha.0\":\n    version \"2.7.4\"\n    resolved \"https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.4.tgz#a58b5eca723f6c3557ac83b696de0247f5f03ce4\"\n    integrity sha512-z3JRcpIZLLdVC9XVe7YTZuB3a/eR9s2SjElYB9AWRdyJyL5Jt7+pGNv4Uwh1uHVoBXsWEVQzNOWSNtrO3mSwZA==\n    dependencies:\n      cross-fetch \"3.0.6\"\n  \n  \"@babel/code-frame@7.12.11\", \"@babel/code-frame@^7.12.11\":\n    version \"7.12.11\"\n    resolved \"https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f\"\n    integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==\n    dependencies:\n      \"@babel/highlight\" \"^7.10.4\"\n  \n  \"@babel/code-frame@^7.0.0\", \"@babel/code-frame@^7.10.4\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a\"\n    integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==\n    dependencies:\n      \"@babel/highlight\" \"^7.10.4\"\n  \n  \"@babel/core@7.12.9\", \"@babel/core@^7.1.0\", \"@babel/core@^7.7.5\":\n    version \"7.12.9\"\n    resolved \"https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8\"\n    integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==\n    dependencies:\n      \"@babel/code-frame\" \"^7.10.4\"\n      \"@babel/generator\" \"^7.12.5\"\n      \"@babel/helper-module-transforms\" \"^7.12.1\"\n      \"@babel/helpers\" \"^7.12.5\"\n      \"@babel/parser\" \"^7.12.7\"\n      \"@babel/template\" \"^7.12.7\"\n      \"@babel/traverse\" \"^7.12.9\"\n      \"@babel/types\" \"^7.12.7\"\n      convert-source-map \"^1.7.0\"\n      debug \"^4.1.0\"\n      gensync \"^1.0.0-beta.1\"\n      json5 \"^2.1.2\"\n      lodash \"^4.17.19\"\n      resolve \"^1.3.2\"\n      semver \"^5.4.1\"\n      source-map \"^0.5.0\"\n  \n  \"@babel/core@7.3.4\":\n    version \"7.3.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b\"\n    integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==\n    dependencies:\n      \"@babel/code-frame\" \"^7.0.0\"\n      \"@babel/generator\" \"^7.3.4\"\n      \"@babel/helpers\" \"^7.2.0\"\n      \"@babel/parser\" \"^7.3.4\"\n      \"@babel/template\" \"^7.2.2\"\n      \"@babel/traverse\" \"^7.3.4\"\n      \"@babel/types\" \"^7.3.4\"\n      convert-source-map \"^1.1.0\"\n      debug \"^4.1.0\"\n      json5 \"^2.1.0\"\n      lodash \"^4.17.11\"\n      resolve \"^1.3.2\"\n      semver \"^5.4.1\"\n      source-map \"^0.5.0\"\n  \n  \"@babel/core@^7.0.0\", \"@babel/core@^7.12.10\", \"@babel/core@^7.9.6\":\n    version \"7.12.10\"\n    resolved \"https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd\"\n    integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==\n    dependencies:\n      \"@babel/code-frame\" \"^7.10.4\"\n      \"@babel/generator\" \"^7.12.10\"\n      \"@babel/helper-module-transforms\" \"^7.12.1\"\n      \"@babel/helpers\" \"^7.12.5\"\n      \"@babel/parser\" \"^7.12.10\"\n      \"@babel/template\" \"^7.12.7\"\n      \"@babel/traverse\" \"^7.12.10\"\n      \"@babel/types\" \"^7.12.10\"\n      convert-source-map \"^1.7.0\"\n      debug \"^4.1.0\"\n      gensync \"^1.0.0-beta.1\"\n      json5 \"^2.1.2\"\n      lodash \"^4.17.19\"\n      semver \"^5.4.1\"\n      source-map \"^0.5.0\"\n  \n  \"@babel/generator@7.3.4\":\n    version \"7.3.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.4.tgz#9aa48c1989257877a9d971296e5b73bfe72e446e\"\n    integrity sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==\n    dependencies:\n      \"@babel/types\" \"^7.3.4\"\n      jsesc \"^2.5.1\"\n      lodash \"^4.17.11\"\n      source-map \"^0.5.0\"\n      trim-right \"^1.0.1\"\n  \n  \"@babel/generator@^7.10.2\", \"@babel/generator@^7.12.10\", \"@babel/generator@^7.12.11\", \"@babel/generator@^7.3.4\":\n    version \"7.12.11\"\n    resolved \"https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af\"\n    integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==\n    dependencies:\n      \"@babel/types\" \"^7.12.11\"\n      jsesc \"^2.5.1\"\n      source-map \"^0.5.0\"\n  \n  \"@babel/generator@^7.12.5\":\n    version \"7.12.5\"\n    resolved \"https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de\"\n    integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==\n    dependencies:\n      \"@babel/types\" \"^7.12.5\"\n      jsesc \"^2.5.1\"\n      source-map \"^0.5.0\"\n  \n  \"@babel/helper-function-name@^7.1.0\", \"@babel/helper-function-name@^7.12.11\":\n    version \"7.12.11\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42\"\n    integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==\n    dependencies:\n      \"@babel/helper-get-function-arity\" \"^7.12.10\"\n      \"@babel/template\" \"^7.12.7\"\n      \"@babel/types\" \"^7.12.11\"\n  \n  \"@babel/helper-function-name@^7.10.4\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a\"\n    integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==\n    dependencies:\n      \"@babel/helper-get-function-arity\" \"^7.10.4\"\n      \"@babel/template\" \"^7.10.4\"\n      \"@babel/types\" \"^7.10.4\"\n  \n  \"@babel/helper-get-function-arity@^7.10.4\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2\"\n    integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==\n    dependencies:\n      \"@babel/types\" \"^7.10.4\"\n  \n  \"@babel/helper-get-function-arity@^7.12.10\":\n    version \"7.12.10\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf\"\n    integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==\n    dependencies:\n      \"@babel/types\" \"^7.12.10\"\n  \n  \"@babel/helper-member-expression-to-functions@^7.12.1\":\n    version \"7.12.7\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855\"\n    integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==\n    dependencies:\n      \"@babel/types\" \"^7.12.7\"\n  \n  \"@babel/helper-module-imports@^7.12.1\", \"@babel/helper-module-imports@^7.7.0\":\n    version \"7.12.5\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb\"\n    integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==\n    dependencies:\n      \"@babel/types\" \"^7.12.5\"\n  \n  \"@babel/helper-module-transforms@^7.12.1\":\n    version \"7.12.1\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c\"\n    integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==\n    dependencies:\n      \"@babel/helper-module-imports\" \"^7.12.1\"\n      \"@babel/helper-replace-supers\" \"^7.12.1\"\n      \"@babel/helper-simple-access\" \"^7.12.1\"\n      \"@babel/helper-split-export-declaration\" \"^7.11.0\"\n      \"@babel/helper-validator-identifier\" \"^7.10.4\"\n      \"@babel/template\" \"^7.10.4\"\n      \"@babel/traverse\" \"^7.12.1\"\n      \"@babel/types\" \"^7.12.1\"\n      lodash \"^4.17.19\"\n  \n  \"@babel/helper-optimise-call-expression@^7.10.4\":\n    version \"7.12.7\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz#7f94ae5e08721a49467346aa04fd22f750033b9c\"\n    integrity sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==\n    dependencies:\n      \"@babel/types\" \"^7.12.7\"\n  \n  \"@babel/helper-plugin-utils@7.10.4\", \"@babel/helper-plugin-utils@^7.0.0\", \"@babel/helper-plugin-utils@^7.10.4\", \"@babel/helper-plugin-utils@^7.8.0\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375\"\n    integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==\n  \n  \"@babel/helper-replace-supers@^7.12.1\":\n    version \"7.12.5\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9\"\n    integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==\n    dependencies:\n      \"@babel/helper-member-expression-to-functions\" \"^7.12.1\"\n      \"@babel/helper-optimise-call-expression\" \"^7.10.4\"\n      \"@babel/traverse\" \"^7.12.5\"\n      \"@babel/types\" \"^7.12.5\"\n  \n  \"@babel/helper-simple-access@^7.12.1\":\n    version \"7.12.1\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136\"\n    integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==\n    dependencies:\n      \"@babel/types\" \"^7.12.1\"\n  \n  \"@babel/helper-split-export-declaration@^7.0.0\", \"@babel/helper-split-export-declaration@^7.12.11\":\n    version \"7.12.11\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a\"\n    integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==\n    dependencies:\n      \"@babel/types\" \"^7.12.11\"\n  \n  \"@babel/helper-split-export-declaration@^7.11.0\":\n    version \"7.11.0\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f\"\n    integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==\n    dependencies:\n      \"@babel/types\" \"^7.11.0\"\n  \n  \"@babel/helper-validator-identifier@^7.10.4\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2\"\n    integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==\n  \n  \"@babel/helper-validator-identifier@^7.12.11\":\n    version \"7.12.11\"\n    resolved \"https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed\"\n    integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==\n  \n  \"@babel/helpers@^7.12.5\", \"@babel/helpers@^7.2.0\":\n    version \"7.12.5\"\n    resolved \"https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e\"\n    integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==\n    dependencies:\n      \"@babel/template\" \"^7.10.4\"\n      \"@babel/traverse\" \"^7.12.5\"\n      \"@babel/types\" \"^7.12.5\"\n  \n  \"@babel/highlight@^7.10.4\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143\"\n    integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==\n    dependencies:\n      \"@babel/helper-validator-identifier\" \"^7.10.4\"\n      chalk \"^2.0.0\"\n      js-tokens \"^4.0.0\"\n  \n  \"@babel/parser@7.3.4\":\n    version \"7.3.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c\"\n    integrity sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==\n  \n  \"@babel/parser@^7.1.0\", \"@babel/parser@^7.12.7\":\n    version \"7.12.7\"\n    resolved \"https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056\"\n    integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==\n  \n  \"@babel/parser@^7.10.2\", \"@babel/parser@^7.12.0\", \"@babel/parser@^7.12.11\", \"@babel/parser@^7.3.4\":\n    version \"7.12.11\"\n    resolved \"https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79\"\n    integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==\n  \n  \"@babel/parser@^7.12.10\":\n    version \"7.12.10\"\n    resolved \"https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81\"\n    integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA==\n  \n  \"@babel/plugin-proposal-object-rest-spread@7.12.1\":\n    version \"7.12.1\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069\"\n    integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n      \"@babel/plugin-syntax-object-rest-spread\" \"^7.8.0\"\n      \"@babel/plugin-transform-parameters\" \"^7.12.1\"\n  \n  \"@babel/plugin-syntax-async-generators@^7.8.4\":\n    version \"7.8.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d\"\n    integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.8.0\"\n  \n  \"@babel/plugin-syntax-bigint@^7.8.3\":\n    version \"7.8.3\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea\"\n    integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.8.0\"\n  \n  \"@babel/plugin-syntax-class-properties@^7.10.0\", \"@babel/plugin-syntax-class-properties@^7.8.3\":\n    version \"7.12.1\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978\"\n    integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n  \n  \"@babel/plugin-syntax-import-meta@^7.10.4\", \"@babel/plugin-syntax-import-meta@^7.8.3\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51\"\n    integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n  \n  \"@babel/plugin-syntax-json-strings@^7.8.3\":\n    version \"7.8.3\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a\"\n    integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.8.0\"\n  \n  \"@babel/plugin-syntax-jsx@7.12.1\", \"@babel/plugin-syntax-jsx@^7.12.1\":\n    version \"7.12.1\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926\"\n    integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n  \n  \"@babel/plugin-syntax-jsx@7.2.0\":\n    version \"7.2.0\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7\"\n    integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.0.0\"\n  \n  \"@babel/plugin-syntax-logical-assignment-operators@^7.8.3\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699\"\n    integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n  \n  \"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3\":\n    version \"7.8.3\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9\"\n    integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.8.0\"\n  \n  \"@babel/plugin-syntax-numeric-separator@^7.8.3\":\n    version \"7.10.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97\"\n    integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n  \n  \"@babel/plugin-syntax-object-rest-spread@7.8.3\", \"@babel/plugin-syntax-object-rest-spread@^7.8.0\", \"@babel/plugin-syntax-object-rest-spread@^7.8.3\":\n    version \"7.8.3\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871\"\n    integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.8.0\"\n  \n  \"@babel/plugin-syntax-optional-catch-binding@^7.8.3\":\n    version \"7.8.3\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1\"\n    integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.8.0\"\n  \n  \"@babel/plugin-syntax-optional-chaining@^7.8.3\":\n    version \"7.8.3\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a\"\n    integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.8.0\"\n  \n  \"@babel/plugin-syntax-top-level-await@^7.8.3\":\n    version \"7.12.1\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0\"\n    integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n  \n  \"@babel/plugin-transform-parameters@^7.12.1\":\n    version \"7.12.1\"\n    resolved \"https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d\"\n    integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.10.4\"\n  \n  \"@babel/runtime@7.12.5\", \"@babel/runtime@^7.0.0\", \"@babel/runtime@^7.1.2\", \"@babel/runtime@^7.10.4\", \"@babel/runtime@^7.12.1\", \"@babel/runtime@^7.4.4\", \"@babel/runtime@^7.5.5\", \"@babel/runtime@^7.7.2\":\n    version \"7.12.5\"\n    resolved \"https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e\"\n    integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==\n    dependencies:\n      regenerator-runtime \"^0.13.4\"\n  \n  \"@babel/template@^7.10.4\", \"@babel/template@^7.12.7\", \"@babel/template@^7.2.2\", \"@babel/template@^7.3.3\":\n    version \"7.12.7\"\n    resolved \"https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc\"\n    integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==\n    dependencies:\n      \"@babel/code-frame\" \"^7.10.4\"\n      \"@babel/parser\" \"^7.12.7\"\n      \"@babel/types\" \"^7.12.7\"\n  \n  \"@babel/traverse@7.3.4\":\n    version \"7.3.4\"\n    resolved \"https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.3.4.tgz#1330aab72234f8dea091b08c4f8b9d05c7119e06\"\n    integrity sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==\n    dependencies:\n      \"@babel/code-frame\" \"^7.0.0\"\n      \"@babel/generator\" \"^7.3.4\"\n      \"@babel/helper-function-name\" \"^7.1.0\"\n      \"@babel/helper-split-export-declaration\" \"^7.0.0\"\n      \"@babel/parser\" \"^7.3.4\"\n      \"@babel/types\" \"^7.3.4\"\n      debug \"^4.1.0\"\n      globals \"^11.1.0\"\n      lodash \"^4.17.11\"\n  \n  \"@babel/traverse@^7.1.0\", \"@babel/traverse@^7.12.1\", \"@babel/traverse@^7.12.5\", \"@babel/traverse@^7.12.9\":\n    version \"7.12.9\"\n    resolved \"https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f\"\n    integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==\n    dependencies:\n      \"@babel/code-frame\" \"^7.10.4\"\n      \"@babel/generator\" \"^7.12.5\"\n      \"@babel/helper-function-name\" \"^7.10.4\"\n      \"@babel/helper-split-export-declaration\" \"^7.11.0\"\n      \"@babel/parser\" \"^7.12.7\"\n      \"@babel/types\" \"^7.12.7\"\n      debug \"^4.1.0\"\n      globals \"^11.1.0\"\n      lodash \"^4.17.19\"\n  \n  \"@babel/traverse@^7.10.1\", \"@babel/traverse@^7.3.4\":\n    version \"7.12.12\"\n    resolved \"https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376\"\n    integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==\n    dependencies:\n      \"@babel/code-frame\" \"^7.12.11\"\n      \"@babel/generator\" \"^7.12.11\"\n      \"@babel/helper-function-name\" \"^7.12.11\"\n      \"@babel/helper-split-export-declaration\" \"^7.12.11\"\n      \"@babel/parser\" \"^7.12.11\"\n      \"@babel/types\" \"^7.12.12\"\n      debug \"^4.1.0\"\n      globals \"^11.1.0\"\n      lodash \"^4.17.19\"\n  \n  \"@babel/traverse@^7.12.10\":\n    version \"7.12.10\"\n    resolved \"https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a\"\n    integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==\n    dependencies:\n      \"@babel/code-frame\" \"^7.10.4\"\n      \"@babel/generator\" \"^7.12.10\"\n      \"@babel/helper-function-name\" \"^7.10.4\"\n      \"@babel/helper-split-export-declaration\" \"^7.11.0\"\n      \"@babel/parser\" \"^7.12.10\"\n      \"@babel/types\" \"^7.12.10\"\n      debug \"^4.1.0\"\n      globals \"^11.1.0\"\n      lodash \"^4.17.19\"\n  \n  \"@babel/types@7.8.3\":\n    version \"7.8.3\"\n    resolved \"https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c\"\n    integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==\n    dependencies:\n      esutils \"^2.0.2\"\n      lodash \"^4.17.13\"\n      to-fast-properties \"^2.0.0\"\n  \n  \"@babel/types@^7.0.0\", \"@babel/types@^7.10.4\", \"@babel/types@^7.11.0\", \"@babel/types@^7.12.1\", \"@babel/types@^7.12.5\", \"@babel/types@^7.12.7\", \"@babel/types@^7.3.0\", \"@babel/types@^7.3.3\":\n    version \"7.12.7\"\n    resolved \"https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13\"\n    integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==\n    dependencies:\n      \"@babel/helper-validator-identifier\" \"^7.10.4\"\n      lodash \"^4.17.19\"\n      to-fast-properties \"^2.0.0\"\n  \n  \"@babel/types@^7.12.0\", \"@babel/types@^7.12.11\":\n    version \"7.12.11\"\n    resolved \"https://registry.yarnpkg.com/@babel/types/-/types-7.12.11.tgz#a86e4d71e30a9b6ee102590446c98662589283ce\"\n    integrity sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==\n    dependencies:\n      \"@babel/helper-validator-identifier\" \"^7.12.11\"\n      lodash \"^4.17.19\"\n      to-fast-properties \"^2.0.0\"\n  \n  \"@babel/types@^7.12.10\":\n    version \"7.12.10\"\n    resolved \"https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260\"\n    integrity sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==\n    dependencies:\n      \"@babel/helper-validator-identifier\" \"^7.10.4\"\n      lodash \"^4.17.19\"\n      to-fast-properties \"^2.0.0\"\n  \n  \"@babel/types@^7.12.12\", \"@babel/types@^7.3.4\":\n    version \"7.12.12\"\n    resolved \"https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299\"\n    integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==\n    dependencies:\n      \"@babel/helper-validator-identifier\" \"^7.12.11\"\n      lodash \"^4.17.19\"\n      to-fast-properties \"^2.0.0\"\n  \n  \"@bcoe/v8-coverage@^0.2.3\":\n    version \"0.2.3\"\n    resolved \"https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39\"\n    integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==\n  \n  \"@camwiegert/typical@^0.1.1\":\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/@camwiegert/typical/-/typical-0.1.1.tgz#c75d3b658e2f542d113c3e266389794c7dc45d6d\"\n    integrity sha512-4xAtH3F3uJ8boe9IPahdYFCBELmyOBwHGAn0rDO6C1rx0TuZb5f4UqfuiOQF7YiMJGCOsUIW7LyucMNnVQYsRg==\n  \n  \"@chakra-ui/accordion@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/accordion/-/accordion-1.0.3.tgz#2c23e6f80edfc6877585faf92a0f4857a5fb5bd4\"\n    integrity sha512-pLujWZm89u8NNgEKh2rITKweyUlo3CPu681XKHg+DjPfvebVQvFsI13lApwHMXonD91WlZITHAZ1PVAIXvJgKQ==\n    dependencies:\n      \"@chakra-ui/descendant\" \"1.0.2\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/transition\" \"1.0.3\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/alert@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/alert/-/alert-1.0.3.tgz#88ac119db52f91e7a5f37486098d7cde221d8218\"\n    integrity sha512-dU+NeiqB40BmYvB4mIJpL1EpB2c479/l7EtbNR/Ne1NoUzUYnDykPYourDIcHIpYQ3KCduhe3KGELH0JZTT4WA==\n    dependencies:\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/avatar@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/avatar/-/avatar-1.0.2.tgz#e70cb7e6313845653609a8c33953ec8bd49009a3\"\n    integrity sha512-yP+ZG3Lb51lSugoja2LCF0GvjL2S1S7/SqTchOi9cxoF3fG70aXhvGZVcJZiSkKdFxg+BKDx23tpx6IIWcmkvg==\n    dependencies:\n      \"@chakra-ui/image\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/breadcrumb@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/breadcrumb/-/breadcrumb-1.0.2.tgz#560fa9b1eca0a9f62be471c44283d0176831ed8e\"\n    integrity sha512-4HNcg1QBCLSBQ+5FajOh/hmq/KklhErWO8nUrZx5yuQcqKxUROI0MfceMCt4RCuIjdUMjGsXrpn2mSI8kIf9XQ==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/button@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/button/-/button-1.0.3.tgz#2fccdaad9406b6d9de06fcc18c3a2aee7291ccbb\"\n    integrity sha512-LEylUfAPEBlt2coLfxYjaJ9U1D9LN8LKvz0jnfXxrWIVyWpiWU0a6Kqm0rLUHzZv15abwNz23btfP52vTF3mvw==\n    dependencies:\n      \"@chakra-ui/spinner\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/checkbox@1.1.0\":\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/checkbox/-/checkbox-1.1.0.tgz#b0a71bf509108b5cb6fbbb54e38eefda4a539f54\"\n    integrity sha512-MGsdny0rMdww4fh3xS3iyXx+FVQzMda4lpYnmjm6prlUv7Jv6vEkumDRkAJTWulJzkHl+fvD5jC4jNKh+3zGNg==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@chakra-ui/visually-hidden\" \"1.0.2\"\n  \n  \"@chakra-ui/clickable@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/clickable/-/clickable-1.0.2.tgz#5fd606ecbdc38f2cd824dd4d1fe2227c1b79cdb9\"\n    integrity sha512-fNfw+t+oRpxrDFA7WXCYSo2KkQprnZPYQhUTCwLtUMpwkALUZT/C+GBUsY5vm21EUmzPZONteNFdR0KBfxFNwQ==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/close-button@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/close-button/-/close-button-1.0.3.tgz#4de7957a4a07141a150ad4cd715dbe55bd72e70a\"\n    integrity sha512-pI9XfYsxSwsAthf6Tp0FTEjCd1X/lRMCwIfoq93rcqw5o9zUvUKQo+y7/AwxxlF4Scrp9x292mqjvH1qCNouaA==\n    dependencies:\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/color-mode@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/color-mode/-/color-mode-1.0.2.tgz#28613353792171b4d78df0207ed78b2a9a0075a1\"\n    integrity sha512-n4F1xvbHL+YmNrDo16GOgkF+Rgc2awmn7oAPnJZNPyjOoyBghgEdLu7K+1xM14xpo87nX92sVyGMr1/1UbJq2g==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/control-box@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/control-box/-/control-box-1.0.2.tgz#e334befb738592c66023055b298259f7a92b0877\"\n    integrity sha512-YQE4GasvtZn+aJEQHkch+wp0LySrlBHgBRjdw3y8/FbwAPGOH4KYr3HXre2VqWwfp27M1A+1k7ud6n4wcfjJ1A==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/counter@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/counter/-/counter-1.0.2.tgz#d4ad35d8787a8a64e216124518cf136e37fb8d22\"\n    integrity sha512-BRqRsiaKcTOpaW10vOgz0boO6EtWxSG+/Uoct6rceeMkDEdeilvVy0PsWso3wT+IieL9SHZAnvQ90lAuDu2aWg==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/css-reset@1.0.0\":\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/css-reset/-/css-reset-1.0.0.tgz#8395921b35ef27bee0579a4d730c5ab7f7b39734\"\n    integrity sha512-UaPsImGHvCgFO3ayp6Ugafu2/3/EG8wlW/8Y9Ihfk1UFv8cpV+3BfWKmuZ7IcmxcBL9dkP6E8p3/M1T0FB92hg==\n  \n  \"@chakra-ui/descendant@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/descendant/-/descendant-1.0.2.tgz#4d848c3ae02fc34415cf83c81bc9611fa11f95b9\"\n    integrity sha512-QkTguL7IWX/HRTmKFsMTJtd94kJ1HkumrxqtptL402ZHavM0jRHyGYEUeGpXg5SUmfNFxPm05vYFdbr9/F2ylQ==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n  \n  \"@chakra-ui/editable@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/editable/-/editable-1.0.2.tgz#2d51d0bf963b50926672ed7b9908bcc220e8bd11\"\n    integrity sha512-prWiYvHo5xvTlwtF+O8RQkcYjtLNhBbw/eR4naLtu5+u5B0Z3cETPPrgZeccW1DPevvWBKdSn/RCd4lm06IONw==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/focus-lock@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/focus-lock/-/focus-lock-1.0.2.tgz#8fc79889af4427b489c6051c9b6ef1dc0faea76c\"\n    integrity sha512-nArORkn3ygWuruS/Wz/LzULqf3nN95xPZpuQaJWFjkTQoIFd7ntFwzluPeIpw41z7jSvONDPMo4OMbmVX6EiyQ==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n      react-focus-lock \"2.4.1\"\n  \n  \"@chakra-ui/form-control@1.1.0\":\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/form-control/-/form-control-1.1.0.tgz#728e530976e8fea72a761c697c6d3ea2f7b8400a\"\n    integrity sha512-kpfpgf9JWwSyQ89o0hIZmQHTsoimLNBZb9I9XQNiXTxEB/eYViVYcIsmSPD8xeyUq7S+wbZV0tLuxAboTNTSrA==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/hooks@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/hooks/-/hooks-1.0.2.tgz#7497b8e9a317d8289d2099bf1fa4c5b9d1c1e8f3\"\n    integrity sha512-YDLzpa778C/bwrbky+svqN9zplK2ayZqEIOC9TNRFvtN3u8bfn2iWWnrmk4Qad8BNxpAaJOeN8QxkrP+REuDiQ==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@reach/auto-id\" \"0.11.0\"\n      compute-scroll-into-view \"1.0.14\"\n      copy-to-clipboard \"3.3.1\"\n  \n  \"@chakra-ui/icon@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/icon/-/icon-1.0.2.tgz#26f1aad4451c833c468751944ba613f09be19805\"\n    integrity sha512-iLuAaa8vAqVLCejl9+xn8ZKvr7axuS+4CrwIlTW/ta0rL76JZTH/b9w4/EpPVdzTXHk08Vae545YrDyy9shn2g==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/image@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/image/-/image-1.0.2.tgz#737c4dc91f4428aa5a60f190908f53b970bba51c\"\n    integrity sha512-14AZAc3thk7dDXrrP9KPEsyTREiy/LsDBnkYLBILRsFNCRtx7wW1YhXTNKLcQniO0Qb7I3cuAw+gxyNtBvvXVA==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/input@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/input/-/input-1.0.3.tgz#5339b8151d2154f3ceaae43a60b297d1cbeb6639\"\n    integrity sha512-DQoBQlc3KbOZvQjhuy0Bi1Fp5SLGgGQYEM1NNfuq/30yX/cfTYELL1cMP6nY3ZcsEh3OCglikTFSUcPX3K9k6g==\n    dependencies:\n      \"@chakra-ui/form-control\" \"1.1.0\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/layout@1.1.2\":\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/layout/-/layout-1.1.2.tgz#bdd33c568bdc38ac81164a7feab190120ff53198\"\n    integrity sha512-wVc6miUkriXeamFw3Ru4+i+PC7kFMhZxQjzvvoQ0f+KVkvyDbqM1tui8/B6ISAmwtbMy08wbqxQ8Y/sYHDUIIA==\n    dependencies:\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/live-region@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/live-region/-/live-region-1.0.2.tgz#c7ab6c454e685cfab9faaab787ea6ba2b9223dff\"\n    integrity sha512-W4xL/IMrGq/bHgyr0QNUbrTLD1wCzmMmc8o71bfWgBKqEwEWS20VyjHu96Qja4tXDbYWFLC2iJiuDMWEI1qnzA==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/media-query@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/media-query/-/media-query-1.0.2.tgz#22ddab0bf9d56ed84d8017ce50ee153e5c15ac88\"\n    integrity sha512-rhKO7ad5cw791rhJkeEt3EMVzn6hFec8Ors7iFYchItrXGpT9e1N/OKQFqkUbM4eZCAuDSvZV+Gih0Vx27y7Kw==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/menu@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/menu/-/menu-1.0.3.tgz#b130706dd5db246df9fa74876651227af0dad6d8\"\n    integrity sha512-znOt6FRCA+gRsvKskgjKUa97wn0jieCNWDhdroZ6jmNbV+LFEb2cWGDgv1VqbRPPkf7rLpQ52c45aCQ0ONVMwQ==\n    dependencies:\n      \"@chakra-ui/clickable\" \"1.0.2\"\n      \"@chakra-ui/descendant\" \"1.0.2\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/popper\" \"1.0.2\"\n      \"@chakra-ui/transition\" \"1.0.3\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/modal@1.4.1\":\n    version \"1.4.1\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/modal/-/modal-1.4.1.tgz#de30f2ebd0722ed14d128ac126c87143fe88a88a\"\n    integrity sha512-uAECraFrjGPCP68Qzb+mf9FkI0WTeThMHvtvudwrf8y2lipYxkNONdvbphAkLIkOuoEUW7oIjoAsQd6ERWJ8Lw==\n    dependencies:\n      \"@chakra-ui/close-button\" \"1.0.3\"\n      \"@chakra-ui/focus-lock\" \"1.0.2\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/portal\" \"1.0.2\"\n      \"@chakra-ui/transition\" \"1.0.3\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      aria-hidden \"^1.1.1\"\n      react-remove-scroll \"2.4.0\"\n  \n  \"@chakra-ui/number-input@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/number-input/-/number-input-1.0.3.tgz#e9d525a1dda5985ab41a0d718e80e808fd0bfce6\"\n    integrity sha512-9InDDQO5UjprFVfekj5+8A4v0kURuBuUJyKGtQqKn9S0JqkYikzvAU543UuRb2pze96qqoEemDFleSqPjdLfUA==\n    dependencies:\n      \"@chakra-ui/counter\" \"1.0.2\"\n      \"@chakra-ui/form-control\" \"1.1.0\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/pin-input@1.1.2\":\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/pin-input/-/pin-input-1.1.2.tgz#efc6a9a76a42b568a714caf373d9e70e74281da4\"\n    integrity sha512-Pr0uIWo0aVN/N4AlU5+6ky6EzQGb8im41LqG90JqC7HA7rpwraaUQGvpD79Zm/uODGML1yYbTJ4URjFt5FsYHw==\n    dependencies:\n      \"@chakra-ui/descendant\" \"1.0.2\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/popover@1.0.4\":\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/popover/-/popover-1.0.4.tgz#b943ac2d36360907c1ad2f313005fccd04feb382\"\n    integrity sha512-at1wEDMgp5fpDs+vwfJw+YMgchGjv089XUeFkGBqSeL3JY5k2HFWQP28yrAxSHmuBtadI5T6LfIaXthfJQzzWg==\n    dependencies:\n      \"@chakra-ui/close-button\" \"1.0.3\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/popper\" \"1.0.2\"\n      \"@chakra-ui/portal\" \"1.0.2\"\n      \"@chakra-ui/transition\" \"1.0.3\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/popper@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/popper/-/popper-1.0.2.tgz#f5a9fed3bbf420e13bfd00c458cd6ae459739319\"\n    integrity sha512-a2cX8EA/P49C6WeEVDwH2m7hyX8leaa/U77w8oK2pizmWbExJfx2sBtFQjwVpbOXxavlQLBW5jGESDcpelccEA==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@popperjs/core\" \"2.4.4\"\n      dequal \"2.0.2\"\n  \n  \"@chakra-ui/portal@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/portal/-/portal-1.0.2.tgz#3c29f8d4778a863b702620399ac66f4c6b1700f4\"\n    integrity sha512-Nh9tOtpPsFqtpJ0FCk9PBm4TIydLPUtTkZYfShsEwuuxme92HwFjdkR6JKyvb9v+6ogMBYMPO6wLD/KyUHG5Wg==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/progress@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/progress/-/progress-1.0.3.tgz#1d1fe8a879c12ed38d92fe80803eab1829b156da\"\n    integrity sha512-7Qu8pIMNHQf8iH8zMg94LXP/UfGtoN/HBredyVSHSosIYeV/DDzKFgjuF+MdJ3DLLkKjyOtL9lgoxcL2l5lyRg==\n    dependencies:\n      \"@chakra-ui/theme-tools\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/radio@1.1.0\":\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/radio/-/radio-1.1.0.tgz#d375c22cb880d878dea29230a3c6cc68bc4ef3d8\"\n    integrity sha512-fZr3QytRC1yeRnI4cOT/LAGguc3Yw0AYuCsofW4pqjIkOx23lSc7JXHOtCB4fZy2fULl7n/1mcyopSDPh+y61Q==\n    dependencies:\n      \"@chakra-ui/form-control\" \"1.1.0\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@chakra-ui/visually-hidden\" \"1.0.2\"\n  \n  \"@chakra-ui/react@^1.1.2\":\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/react/-/react-1.1.2.tgz#51ba641f9856a75c184930bbacc4a9049ca432ed\"\n    integrity sha512-swcDv8OCXauTO7tOrCtrb5YJq0drDNb6eB7pygchO+TBwWGdfBGNw4ipD2xG8nrTxuyv9DCH3jY2GblOKf/faw==\n    dependencies:\n      \"@chakra-ui/accordion\" \"1.0.3\"\n      \"@chakra-ui/alert\" \"1.0.3\"\n      \"@chakra-ui/avatar\" \"1.0.2\"\n      \"@chakra-ui/breadcrumb\" \"1.0.2\"\n      \"@chakra-ui/button\" \"1.0.3\"\n      \"@chakra-ui/checkbox\" \"1.1.0\"\n      \"@chakra-ui/close-button\" \"1.0.3\"\n      \"@chakra-ui/control-box\" \"1.0.2\"\n      \"@chakra-ui/counter\" \"1.0.2\"\n      \"@chakra-ui/css-reset\" \"1.0.0\"\n      \"@chakra-ui/editable\" \"1.0.2\"\n      \"@chakra-ui/form-control\" \"1.1.0\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/image\" \"1.0.2\"\n      \"@chakra-ui/input\" \"1.0.3\"\n      \"@chakra-ui/layout\" \"1.1.2\"\n      \"@chakra-ui/live-region\" \"1.0.2\"\n      \"@chakra-ui/media-query\" \"1.0.2\"\n      \"@chakra-ui/menu\" \"1.0.3\"\n      \"@chakra-ui/modal\" \"1.4.1\"\n      \"@chakra-ui/number-input\" \"1.0.3\"\n      \"@chakra-ui/pin-input\" \"1.1.2\"\n      \"@chakra-ui/popover\" \"1.0.4\"\n      \"@chakra-ui/popper\" \"1.0.2\"\n      \"@chakra-ui/portal\" \"1.0.2\"\n      \"@chakra-ui/progress\" \"1.0.3\"\n      \"@chakra-ui/radio\" \"1.1.0\"\n      \"@chakra-ui/select\" \"1.0.3\"\n      \"@chakra-ui/skeleton\" \"1.0.6\"\n      \"@chakra-ui/slider\" \"1.0.2\"\n      \"@chakra-ui/spinner\" \"1.0.2\"\n      \"@chakra-ui/stat\" \"1.0.2\"\n      \"@chakra-ui/switch\" \"1.0.3\"\n      \"@chakra-ui/system\" \"1.1.3\"\n      \"@chakra-ui/table\" \"1.0.2\"\n      \"@chakra-ui/tabs\" \"1.0.3\"\n      \"@chakra-ui/tag\" \"1.0.3\"\n      \"@chakra-ui/textarea\" \"1.0.3\"\n      \"@chakra-ui/theme\" \"1.3.0\"\n      \"@chakra-ui/toast\" \"1.1.3\"\n      \"@chakra-ui/tooltip\" \"1.0.2\"\n      \"@chakra-ui/transition\" \"1.0.3\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@chakra-ui/visually-hidden\" \"1.0.2\"\n  \n  \"@chakra-ui/select@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/select/-/select-1.0.3.tgz#8f5c99fcc575da558eb56c9a4fbec2c20cd59b66\"\n    integrity sha512-IQsgo4AzX+hj9cZpEiY7vIAxlDoQcWUSveOCgTlI0y3Q4IZnIUWJZTQfPngPq+uwYyFYX7U+35ZjB+Ora4+g8Q==\n    dependencies:\n      \"@chakra-ui/form-control\" \"1.1.0\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/skeleton@1.0.6\":\n    version \"1.0.6\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/skeleton/-/skeleton-1.0.6.tgz#022d055fc4e794c6560c6a34c62c322c9933b70f\"\n    integrity sha512-x2fczl833U1zXJV+wiIwtIWBk/29t2RCnPevRewwZO3sDybf45vNnS2fT6KKttBBWnUD+phA9cjkNZwBJRDTEw==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/media-query\" \"1.0.2\"\n      \"@chakra-ui/system\" \"1.1.3\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/slider@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/slider/-/slider-1.0.2.tgz#ab6e4e3de29a804f6d6799cb2518f9edbb882387\"\n    integrity sha512-QbKEILORGd/qF13fBA1ITvxBMOQhIZn6bXxaIxhQFGoqdIz3sTi3IVJAk4V6rm7jo1v3jo+KEa05Kgm8/MMq6g==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/spinner@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/spinner/-/spinner-1.0.2.tgz#c40bffd71a670f81067f7596a6b232f81f3b405c\"\n    integrity sha512-i2Z6c74DPHkTflmz2xdbLgG/5yDrcdtl1EuYUxSZRXEM5NjR32Epr3t/nqWdGO3sLBiJ2B5jpubFSRsqWxtBbQ==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@chakra-ui/visually-hidden\" \"1.0.2\"\n  \n  \"@chakra-ui/stat@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/stat/-/stat-1.0.2.tgz#9f004bd81386314dccafb877f0a046f95521941d\"\n    integrity sha512-xriKBTCLQtH44ZPtgtDGtz7Q2T4axk+DG2y9I2VhnIioIxAf9vaeL4qi2pK8o+2mS+cgAYfnnr3/dH1eZ1BSrA==\n    dependencies:\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@chakra-ui/visually-hidden\" \"1.0.2\"\n  \n  \"@chakra-ui/styled-system@1.3.1\":\n    version \"1.3.1\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/styled-system/-/styled-system-1.3.1.tgz#f0f769d08dbf23c5671482f1bb1751d1abf61d1a\"\n    integrity sha512-h9r478zCfVlkhbtIUubrPvNAmisCBsAlx9S+trZD8pgyBwC2uIsRHemU+IYFbojBH5tIZAyD/5yPUbe4bl4P+A==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n      css-get-unit \"1.0.1\"\n      csstype \"3.0.3\"\n  \n  \"@chakra-ui/switch@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/switch/-/switch-1.0.3.tgz#104b6a013aeb0e019d2a7a7794e9786c7b58fc45\"\n    integrity sha512-Mi/5Y9IuAXooN5UsvpIzGOQAwSCbJdHFJeh/LMnO3suGCT8ClJTw/28YLM3Oyl7euvKzFylcqec6m2ZT6rITyw==\n    dependencies:\n      \"@chakra-ui/checkbox\" \"1.1.0\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/system@1.1.3\":\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/system/-/system-1.1.3.tgz#8d8770899402a27ee47c852dd803ed849ba41324\"\n    integrity sha512-U6/Iuyi4KStCghB/czpCfPZTRzeaHvREivlWLOPy4UbnuqT19SEaDl4mV7jz664LpiNUSo9RQCWCtCLvQGv7iQ==\n    dependencies:\n      \"@chakra-ui/color-mode\" \"1.0.2\"\n      \"@chakra-ui/styled-system\" \"1.3.1\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      react-fast-compare \"3.2.0\"\n  \n  \"@chakra-ui/table@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/table/-/table-1.0.2.tgz#2374302c2ac6ec43131a311c6f4a99e2c81ace30\"\n    integrity sha512-7HP7wvGJqI9Aql8h3BuuJ2iJJXneb1hrPZRyk9YbBI4j3oyy8xdrVpEJ6eJRnpyGX2wFH24OSzTXs3ViQvj+lQ==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/tabs@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/tabs/-/tabs-1.0.3.tgz#34049c955aaf79d78d3856352d53427377f035fc\"\n    integrity sha512-DLfY52ieDdmddoB8nCt7OPtBp40d8GnZvaF3hzsu+y6TKEM1SYO/mWd2HR+1CWKQhLsiHnOIB3UsTnCOeT2Bqg==\n    dependencies:\n      \"@chakra-ui/clickable\" \"1.0.2\"\n      \"@chakra-ui/descendant\" \"1.0.2\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/tag@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/tag/-/tag-1.0.3.tgz#c0000ba06293a80b54e74d07bcd2f04dc192eefc\"\n    integrity sha512-csnitXXOwg/cLF5pHHe0zzB8TLEZhHASAnYMXzrBOGxlrxPPbPnoIGY4VTNiQwxDXTBIdrMRdVHy9emboi8GDA==\n    dependencies:\n      \"@chakra-ui/icon\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/textarea@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/textarea/-/textarea-1.0.3.tgz#a761b41735f948622b3a359631ccea90b353573e\"\n    integrity sha512-lxuy7zdfpDLmoxduJyeT6K2iarRQ+a0X7hzmWq61YkNeF5edMLdnvCp7VRNocg36rgcsQWPTNbH6bYnkN7cMuw==\n    dependencies:\n      \"@chakra-ui/form-control\" \"1.1.0\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/theme-tools@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/theme-tools/-/theme-tools-1.0.2.tgz#d4c36f3f4e60295e9f98d418182a98c76ff15393\"\n    integrity sha512-wmjz5wPtjfslvvVMoHKyD8pnOQC0Facf93fKZupaxtXaol2eZZ/tYIiA6JUwe5mtk75WvLKAihpqaM8XxeXFWw==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@types/tinycolor2\" \"1.4.2\"\n      tinycolor2 \"1.4.2\"\n  \n  \"@chakra-ui/theme@1.3.0\":\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/theme/-/theme-1.3.0.tgz#5318f60cff2a5a3ae63f3fb4ed8b180f8205cf7b\"\n    integrity sha512-e0p+TlUFlvsuvXiwFj8DqfHalf5h2jyXRNh1rTVJkDoGMG1z+JNH/Dtwyr8KA9Ju4n+anZg+qQflKvfVf5nHSQ==\n    dependencies:\n      \"@chakra-ui/theme-tools\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/toast@1.1.3\":\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/toast/-/toast-1.1.3.tgz#5de6dd48d8e0b239b1c512be0b65fe715addc6a3\"\n    integrity sha512-6GWdGG4O8Qd9diC0pBJzvep1z5P6Hu0b307Q0w+IY+sp/0HnY813j7UHh2DbZfVXstBmt8O+2E0YlDPQyYMZjA==\n    dependencies:\n      \"@chakra-ui/alert\" \"1.0.3\"\n      \"@chakra-ui/close-button\" \"1.0.3\"\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/theme\" \"1.3.0\"\n      \"@chakra-ui/transition\" \"1.0.3\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@reach/alert\" \"0.11.0\"\n  \n  \"@chakra-ui/tooltip@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/tooltip/-/tooltip-1.0.2.tgz#d16929aabe8ed76d4781c606bed7fe51f7fa239d\"\n    integrity sha512-I0jlyBYCM+qtnqrWzqkooKu9qBiM6wnnZ2kT+55Bg9K3+4FbPhzEGFrthBPWPbjTKxN7yJBKxA+ZOISVnFQrBg==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/popper\" \"1.0.2\"\n      \"@chakra-ui/portal\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n      \"@chakra-ui/visually-hidden\" \"1.0.2\"\n  \n  \"@chakra-ui/transition@1.0.3\":\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/transition/-/transition-1.0.3.tgz#b00f261887fc496358fe8a5bb2d8693641c71527\"\n    integrity sha512-GZQNJgfyJn58N4/5AanF3pZYuxpPmyAokBMEsij80KDdKN0iVaysFYQG2h8WsE031aVI690+/QCzVGBQCA3N7A==\n    dependencies:\n      \"@chakra-ui/hooks\" \"1.0.2\"\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@chakra-ui/utils@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/utils/-/utils-1.0.2.tgz#c9ae5a71849b5d2f1f5d316ab66a40ca6f1ed32c\"\n    integrity sha512-2EdZkBIQ+14uNskY8tEI4X0VaNk/dZ70Uld5XpHWY5fOm6NVBziQT4gXbUu9+leHmeUseq+5xot35MCwYIaGkg==\n    dependencies:\n      \"@types/lodash.mergewith\" \"4.6.6\"\n      \"@types/object-assign\" \"4.0.30\"\n      css-box-model \"1.2.1\"\n      lodash.mergewith \"4.6.2\"\n      object-assign \"4.1.1\"\n  \n  \"@chakra-ui/visually-hidden@1.0.2\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@chakra-ui/visually-hidden/-/visually-hidden-1.0.2.tgz#b091ef42700b2f8c1b88d19bf45b9f32c8cf0e1c\"\n    integrity sha512-W73zVywhBnTa38Lz+dxcTp5FuiYFRBOwUnNNN9nA8wrBHvZBD6BaFrFXaugUj2AwJckaBz2UBxCGh74DFx7Dpw==\n    dependencies:\n      \"@chakra-ui/utils\" \"1.0.2\"\n  \n  \"@changesets/apply-release-plan@^4.0.0\":\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-4.1.0.tgz#ec67c9a0f507c19740d9344766e37dd51fc981ee\"\n    integrity sha512-NKMg0In+945eCGxPQJa6haKMDIr6WFngnsqRICaTH28WJy0NZoURoTUcAUSdgvur1J+9rWuVgWAfISyRpLErzg==\n    dependencies:\n      \"@babel/runtime\" \"^7.10.4\"\n      \"@changesets/config\" \"^1.2.0\"\n      \"@changesets/get-version-range-type\" \"^0.3.2\"\n      \"@changesets/git\" \"^1.0.5\"\n      \"@changesets/types\" \"^3.1.0\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n      detect-indent \"^6.0.0\"\n      fs-extra \"^7.0.1\"\n      lodash.startcase \"^4.4.0\"\n      outdent \"^0.5.0\"\n      prettier \"^1.19.1\"\n      resolve-from \"^5.0.0\"\n      semver \"^5.4.1\"\n  \n  \"@changesets/assemble-release-plan@^4.0.0\":\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-4.0.1.tgz#37906bd89226274c6a67ba2598de001b617e01ab\"\n    integrity sha512-1UqJpX5Tj2kGtcI3anG3vsLFfX6na5fLsPaxwgS7T/zt1jJ1hv0cMC+iP6fd9BuCHvcFn22GT74bcRaVnAvm3Q==\n    dependencies:\n      \"@babel/runtime\" \"^7.10.4\"\n      \"@changesets/errors\" \"^0.1.4\"\n      \"@changesets/get-dependents-graph\" \"^1.1.3\"\n      \"@changesets/types\" \"^3.1.0\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n      semver \"^5.4.1\"\n  \n  \"@changesets/cli@^2.12.0\":\n    version \"2.12.0\"\n    resolved \"https://registry.yarnpkg.com/@changesets/cli/-/cli-2.12.0.tgz#26124b051e6ce6dcc5aa4595588c8cb2ce3e4363\"\n    integrity sha512-dGdFkg75zsaEObsG8gwMLglS6sJVjXWwgVTAzEIjqIoWVnKwqZqccTb4gn0noq47uCwy7SqxiAJqGibIy9UOKw==\n    dependencies:\n      \"@babel/runtime\" \"^7.10.4\"\n      \"@changesets/apply-release-plan\" \"^4.0.0\"\n      \"@changesets/assemble-release-plan\" \"^4.0.0\"\n      \"@changesets/config\" \"^1.4.0\"\n      \"@changesets/errors\" \"^0.1.4\"\n      \"@changesets/get-dependents-graph\" \"^1.1.3\"\n      \"@changesets/get-release-plan\" \"^2.0.1\"\n      \"@changesets/git\" \"^1.0.6\"\n      \"@changesets/logger\" \"^0.0.5\"\n      \"@changesets/pre\" \"^1.0.4\"\n      \"@changesets/read\" \"^0.4.6\"\n      \"@changesets/types\" \"^3.2.0\"\n      \"@changesets/write\" \"^0.1.3\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n      \"@types/semver\" \"^6.0.0\"\n      boxen \"^1.3.0\"\n      chalk \"^2.1.0\"\n      enquirer \"^2.3.0\"\n      external-editor \"^3.1.0\"\n      fs-extra \"^7.0.1\"\n      human-id \"^1.0.2\"\n      is-ci \"^2.0.0\"\n      meow \"^6.0.0\"\n      outdent \"^0.5.0\"\n      p-limit \"^2.2.0\"\n      preferred-pm \"^3.0.0\"\n      semver \"^5.4.1\"\n      spawndamnit \"^2.0.0\"\n      term-size \"^2.1.0\"\n      tty-table \"^2.8.10\"\n  \n  \"@changesets/config@^1.2.0\", \"@changesets/config@^1.4.0\":\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/@changesets/config/-/config-1.4.0.tgz#c157a4121f198b749f2bbc2e9015b6e976ece7d6\"\n    integrity sha512-eoTOcJ6py7jBDY8rUXwEGxR5UtvUX+p//0NhkVpPGcnvIeITHq+DOIsuWyGzWcb+1FaYkof3CCr32/komZTu4Q==\n    dependencies:\n      \"@changesets/errors\" \"^0.1.4\"\n      \"@changesets/get-dependents-graph\" \"^1.1.3\"\n      \"@changesets/logger\" \"^0.0.5\"\n      \"@changesets/types\" \"^3.2.0\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n      fs-extra \"^7.0.1\"\n      micromatch \"^4.0.2\"\n  \n  \"@changesets/errors@^0.1.4\":\n    version \"0.1.4\"\n    resolved \"https://registry.yarnpkg.com/@changesets/errors/-/errors-0.1.4.tgz#f79851746c43679a66b383fdff4c012f480f480d\"\n    integrity sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==\n    dependencies:\n      extendable-error \"^0.1.5\"\n  \n  \"@changesets/get-dependents-graph@^1.1.3\":\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-1.1.3.tgz#da959c43ce98f3a990a6b8d9c1f894bcc1b629c7\"\n    integrity sha512-cTbySXwSv9yWp4Pp5R/b5Qv23wJgFaFCqUbsI3IJ2pyPl0vMaODAZS8NI1nNK2XSxGIg1tw+dWNSR4PlrKBSVQ==\n    dependencies:\n      \"@changesets/types\" \"^3.0.0\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n      chalk \"^2.1.0\"\n      fs-extra \"^7.0.1\"\n      semver \"^5.4.1\"\n  \n  \"@changesets/get-release-plan@^2.0.1\":\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-2.0.1.tgz#b95d8f1a3cc719ff4b42b9b9aae72458d8787c13\"\n    integrity sha512-+x5N9/Iaka+c0Kq7+3JsboMNyffKYlWPmdm+VeafDcMwJFhBDkxm84qaCJ93ydmnzQOTig6gYVqw0k8BbHExyQ==\n    dependencies:\n      \"@babel/runtime\" \"^7.10.4\"\n      \"@changesets/assemble-release-plan\" \"^4.0.0\"\n      \"@changesets/config\" \"^1.2.0\"\n      \"@changesets/pre\" \"^1.0.4\"\n      \"@changesets/read\" \"^0.4.6\"\n      \"@changesets/types\" \"^3.1.0\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n  \n  \"@changesets/get-version-range-type@^0.3.2\":\n    version \"0.3.2\"\n    resolved \"https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67\"\n    integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==\n  \n  \"@changesets/git@^1.0.5\", \"@changesets/git@^1.0.6\":\n    version \"1.0.6\"\n    resolved \"https://registry.yarnpkg.com/@changesets/git/-/git-1.0.6.tgz#057e627e5d3fcb74bf6c18d7284e130ba5a7632e\"\n    integrity sha512-e0M06XuME3W5lGhz+CO0vLc60u+hLk/pYjOx/6GXEWuQrwtGgeycFIfRgRt8qTs664o1oKtVHBbd7ItpoWgFfA==\n    dependencies:\n      \"@babel/runtime\" \"^7.10.4\"\n      \"@changesets/errors\" \"^0.1.4\"\n      \"@changesets/types\" \"^3.1.1\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n      is-subdir \"^1.1.1\"\n      spawndamnit \"^2.0.0\"\n  \n  \"@changesets/logger@^0.0.5\":\n    version \"0.0.5\"\n    resolved \"https://registry.yarnpkg.com/@changesets/logger/-/logger-0.0.5.tgz#68305dd5a643e336be16a2369cb17cdd8ed37d4c\"\n    integrity sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==\n    dependencies:\n      chalk \"^2.1.0\"\n  \n  \"@changesets/parse@^0.3.6\":\n    version \"0.3.7\"\n    resolved \"https://registry.yarnpkg.com/@changesets/parse/-/parse-0.3.7.tgz#1368136e2b83d5cff11b4d383a3032723530db99\"\n    integrity sha512-8yqKulslq/7V2VRBsJqPgjnZMoehYqhJm5lEOXJPZ2rcuSdyj8+p/2vq2vRDBJT2m0rP+C9G8DujsGYQIFZezw==\n    dependencies:\n      \"@changesets/types\" \"^3.0.0\"\n      js-yaml \"^3.13.1\"\n  \n  \"@changesets/pre@^1.0.4\":\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/@changesets/pre/-/pre-1.0.5.tgz#91e5e3b31b4a85ce37de72f6511a786f62f29b51\"\n    integrity sha512-p43aAQY3aijhDnBLCriPao5YArlRjD4mSHRJq9PsBhljVLWqQQXcn6seSd77d+bD1tATLhB8tQ2eYoxMtMydXQ==\n    dependencies:\n      \"@babel/runtime\" \"^7.4.4\"\n      \"@changesets/errors\" \"^0.1.4\"\n      \"@changesets/types\" \"^3.0.0\"\n      \"@manypkg/get-packages\" \"^1.0.1\"\n      fs-extra \"^7.0.1\"\n  \n  \"@changesets/read@^0.4.6\":\n    version \"0.4.6\"\n    resolved \"https://registry.yarnpkg.com/@changesets/read/-/read-0.4.6.tgz#1c03e709a870a070fc95490ffa696297d23458f7\"\n    integrity sha512-rOd8dsF/Lgyy2SYlDalb3Ts/meDI2AcKPXYhSXIW3k6+ZLlj6Pt+nmgV5Ut8euyH7loibklNTDemfvMffF4xig==\n    dependencies:\n      \"@babel/runtime\" \"^7.4.4\"\n      \"@changesets/git\" \"^1.0.5\"\n      \"@changesets/logger\" \"^0.0.5\"\n      \"@changesets/parse\" \"^0.3.6\"\n      \"@changesets/types\" \"^3.0.0\"\n      chalk \"^2.1.0\"\n      fs-extra \"^7.0.1\"\n      p-filter \"^2.1.0\"\n  \n  \"@changesets/types@^3.0.0\", \"@changesets/types@^3.1.0\", \"@changesets/types@^3.1.1\", \"@changesets/types@^3.2.0\":\n    version \"3.2.0\"\n    resolved \"https://registry.yarnpkg.com/@changesets/types/-/types-3.2.0.tgz#d8306d7219c3b19b6d860ddeb9d7374e2dd6b035\"\n    integrity sha512-rAmPtOyXpisEEE25CchKNUAf2ApyAeuZ/h78YDoqKZaCk5tUD0lgYZGPIRV9WTPoqNjJULIym37ogc6pkax5jg==\n  \n  \"@changesets/write@^0.1.3\":\n    version \"0.1.3\"\n    resolved \"https://registry.yarnpkg.com/@changesets/write/-/write-0.1.3.tgz#00ae575af50274773d7493e77fb96838a08ad8ad\"\n    integrity sha512-q79rbwlVmTNKP9O6XxcMDj81CEOn/kQHbTFdRleW0tFUv98S1EyEAE9vLPPzO6WnQipHnaozxB1zMhHy0aQn8Q==\n    dependencies:\n      \"@babel/runtime\" \"^7.4.4\"\n      \"@changesets/types\" \"^3.0.0\"\n      fs-extra \"^7.0.1\"\n      human-id \"^1.0.2\"\n      prettier \"^1.18.2\"\n  \n  \"@cnakazawa/watch@^1.0.3\":\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a\"\n    integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==\n    dependencies:\n      exec-sh \"^0.3.2\"\n      minimist \"^1.2.0\"\n  \n  \"@emotion/babel-plugin@^11.0.0\":\n    version \"11.1.2\"\n    resolved \"https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.1.2.tgz#68fe1aa3130099161036858c64ee92056c6730b7\"\n    integrity sha512-Nz1k7b11dWw8Nw4Z1R99A9mlB6C6rRsCtZnwNUOj4NsoZdrO2f2A/83ST7htJORD5zpOiLKY59aJN23092949w==\n    dependencies:\n      \"@babel/helper-module-imports\" \"^7.7.0\"\n      \"@babel/plugin-syntax-jsx\" \"^7.12.1\"\n      \"@babel/runtime\" \"^7.7.2\"\n      \"@emotion/hash\" \"^0.8.0\"\n      \"@emotion/memoize\" \"^0.7.5\"\n      \"@emotion/serialize\" \"^1.0.0\"\n      babel-plugin-macros \"^2.6.1\"\n      convert-source-map \"^1.5.0\"\n      escape-string-regexp \"^4.0.0\"\n      find-root \"^1.1.0\"\n      source-map \"^0.5.7\"\n      stylis \"^4.0.3\"\n  \n  \"@emotion/cache@^11.1.3\":\n    version \"11.1.3\"\n    resolved \"https://registry.yarnpkg.com/@emotion/cache/-/cache-11.1.3.tgz#c7683a9484bcd38d5562f2b9947873cf66829afd\"\n    integrity sha512-n4OWinUPJVaP6fXxWZD9OUeQ0lY7DvtmtSuqtRWT0Ofo/sBLCVSgb4/Oa0Q5eFxcwablRKjUXqXtNZVyEwCAuA==\n    dependencies:\n      \"@emotion/memoize\" \"^0.7.4\"\n      \"@emotion/sheet\" \"^1.0.0\"\n      \"@emotion/utils\" \"^1.0.0\"\n      \"@emotion/weak-memoize\" \"^0.2.5\"\n      stylis \"^4.0.3\"\n  \n  \"@emotion/hash@^0.8.0\":\n    version \"0.8.0\"\n    resolved \"https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413\"\n    integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==\n  \n  \"@emotion/is-prop-valid@^0.8.2\":\n    version \"0.8.8\"\n    resolved \"https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a\"\n    integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==\n    dependencies:\n      \"@emotion/memoize\" \"0.7.4\"\n  \n  \"@emotion/is-prop-valid@^1.0.0\":\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.0.0.tgz#1dbe82e52a12c065d416a702e2d106e552cde5be\"\n    integrity sha512-G5X0t7eR9pkhUvAY32QS3lToP9JyNF8It5CcmMvbWjmC9/Yq7IhevaKqxl+me2BKR93iTPiL/h3En1ZX/1G3PQ==\n    dependencies:\n      \"@emotion/memoize\" \"^0.7.4\"\n  \n  \"@emotion/memoize@0.7.4\":\n    version \"0.7.4\"\n    resolved \"https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb\"\n    integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==\n  \n  \"@emotion/memoize@^0.7.4\", \"@emotion/memoize@^0.7.5\":\n    version \"0.7.5\"\n    resolved \"https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50\"\n    integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==\n  \n  \"@emotion/react@^11.1.4\":\n    version \"11.1.4\"\n    resolved \"https://registry.yarnpkg.com/@emotion/react/-/react-11.1.4.tgz#ddee4247627ff7dd7d0c6ae52f1cfd6b420357d2\"\n    integrity sha512-9gkhrW8UjV4IGRnEe4/aGPkUxoGS23aD9Vu6JCGfEDyBYL+nGkkRBoMFGAzCT9qFdyUvQp4UUtErbKWxq/JS4A==\n    dependencies:\n      \"@babel/runtime\" \"^7.7.2\"\n      \"@emotion/cache\" \"^11.1.3\"\n      \"@emotion/serialize\" \"^1.0.0\"\n      \"@emotion/sheet\" \"^1.0.1\"\n      \"@emotion/utils\" \"^1.0.0\"\n      \"@emotion/weak-memoize\" \"^0.2.5\"\n      hoist-non-react-statics \"^3.3.1\"\n  \n  \"@emotion/serialize@^1.0.0\":\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.0.tgz#1a61f4f037cf39995c97fc80ebe99abc7b191ca9\"\n    integrity sha512-zt1gm4rhdo5Sry8QpCOpopIUIKU+mUSpV9WNmFILUraatm5dttNEaYzUWWSboSMUE6PtN2j1cAsuvcugfdI3mw==\n    dependencies:\n      \"@emotion/hash\" \"^0.8.0\"\n      \"@emotion/memoize\" \"^0.7.4\"\n      \"@emotion/unitless\" \"^0.7.5\"\n      \"@emotion/utils\" \"^1.0.0\"\n      csstype \"^3.0.2\"\n  \n  \"@emotion/sheet@^1.0.0\", \"@emotion/sheet@^1.0.1\":\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.1.tgz#245f54abb02dfd82326e28689f34c27aa9b2a698\"\n    integrity sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g==\n  \n  \"@emotion/styled@11\", \"@emotion/styled@^11\", \"@emotion/styled@^11.0.0\":\n    version \"11.0.0\"\n    resolved \"https://registry.yarnpkg.com/@emotion/styled/-/styled-11.0.0.tgz#698196c2822746360a8644a73a5d842b2d1a78a5\"\n    integrity sha512-498laccxJlBiJqrr2r/fx9q+Pr55D0URP2UyOkoSGLjevb8LLAFWueqthsQ5XijE66iGo7y3rzzEYdA7CHmZEQ==\n    dependencies:\n      \"@babel/runtime\" \"^7.7.2\"\n      \"@emotion/babel-plugin\" \"^11.0.0\"\n      \"@emotion/is-prop-valid\" \"^1.0.0\"\n      \"@emotion/serialize\" \"^1.0.0\"\n      \"@emotion/utils\" \"^1.0.0\"\n  \n  \"@emotion/unitless@^0.7.5\":\n    version \"0.7.5\"\n    resolved \"https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed\"\n    integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==\n  \n  \"@emotion/utils@^1.0.0\":\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af\"\n    integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==\n  \n  \"@emotion/weak-memoize@^0.2.5\":\n    version \"0.2.5\"\n    resolved \"https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46\"\n    integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==\n  \n  \"@esbuild-plugins/all@^0.0.15\":\n    version \"0.0.15\"\n    resolved \"https://registry.yarnpkg.com/@esbuild-plugins/all/-/all-0.0.15.tgz#6d123f4623b72647e88386d885c496916b1ebbd5\"\n    integrity sha512-hPXN3fEGgaoHpTyq3y7zsz5dMaVzY8UaUyT2QDfZJ54XQ8I04tmhSgRfZVS/gYGMc68BR+1cM67eFfXYm4erWw==\n    dependencies:\n      \"@esbuild-plugins/esm-externals\" \"0.0.2\"\n      \"@esbuild-plugins/html\" \"0.0.16\"\n      \"@esbuild-plugins/node-globals-polyfill\" \"0.0.5\"\n      \"@esbuild-plugins/node-modules-polyfill\" \"0.0.2\"\n      \"@esbuild-plugins/node-resolve\" \"0.0.13\"\n  \n  \"@esbuild-plugins/esm-externals@0.0.2\":\n    version \"0.0.2\"\n    resolved \"https://registry.yarnpkg.com/@esbuild-plugins/esm-externals/-/esm-externals-0.0.2.tgz#2d2932beeb7be98f460fe21f339ae2aac609a7d5\"\n    integrity sha512-Ms0n+uZDhi2akPG45DzcSsyIgtHvdZ8+OJ6JSzkSY1mh3VHNEOgDvxX5Bfk2NQleswRmjnBLhnPPBC+16FXUEQ==\n    dependencies:\n      debug \"^4.3.1\"\n      escape-string-regexp \"^4.0.0\"\n  \n  \"@esbuild-plugins/html@0.0.16\":\n    version \"0.0.16\"\n    resolved \"https://registry.yarnpkg.com/@esbuild-plugins/html/-/html-0.0.16.tgz#e11d57b738113a037b79c0d1cca10cdd57c38371\"\n    integrity sha512-icLvdxFwAtotepGqEgBalMZl783IUy3L9mObNIbVC1fYaThWlspflqc9iSkePbcafaXX38Hpuu/l8vYn5lv2oA==\n    dependencies:\n      \"@esbuild-plugins/node-resolve\" \"0.0.13\"\n      debug \"^4.3.1\"\n      posthtml \"^0.15.1\"\n  \n  \"@esbuild-plugins/node-globals-polyfill@0.0.5\":\n    version \"0.0.5\"\n    resolved \"https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.0.5.tgz#3a9ab355befd394af77c5a4966d4706b9bedf415\"\n    integrity sha512-Xz66k/M8ZtkHghnuuGYrJt4E/68O0d/acYX5rU0PzDB1znLwZkm9m5dho27il63C2MIit1uNCpdBn2VfTw9/uQ==\n    dependencies:\n      debug \"^4.3.1\"\n      rollup-plugin-node-polyfills \"^0.2.1\"\n  \n  \"@esbuild-plugins/node-modules-polyfill@0.0.2\":\n    version \"0.0.2\"\n    resolved \"https://registry.yarnpkg.com/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.0.2.tgz#1a3f956cff4b4833ff1a0f8b955de1250c7f4bf6\"\n    integrity sha512-ugSpQk7oIfzc0OmNG9i/B+64NXWK3LFBzM8T1zGJpuTldT1tQPUQDLsO6h6jrhHoqTSzuC72LBEycbrPLLKQvQ==\n    dependencies:\n      debug \"^4.3.1\"\n      escape-string-regexp \"^4.0.0\"\n      resolve \"^1.19.0\"\n      rollup-plugin-node-polyfills \"0.2.1\"\n  \n  \"@esbuild-plugins/node-resolve@0.0.13\":\n    version \"0.0.13\"\n    resolved \"https://registry.yarnpkg.com/@esbuild-plugins/node-resolve/-/node-resolve-0.0.13.tgz#89251a7b6ce50e564ba7d73265c4e414d6b2649a\"\n    integrity sha512-Qmu6tbwa8ytE+hN3yKOQmQ6KovQ/sMkiDwivpLBezxaYBVZoXdEuD8SIpJaX7hSQxC8aN81OXIpLwHMwDrIKXg==\n    dependencies:\n      \"@types/resolve\" \"^1.17.1\"\n      debug \"^4.3.1\"\n      escape-string-regexp \"^4.0.0\"\n      resolve \"^1.19.0\"\n  \n  \"@fullhuman/postcss-purgecss@^2.1.2\":\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz#50a954757ec78696615d3e118e3fee2d9291882e\"\n    integrity sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw==\n    dependencies:\n      postcss \"7.0.32\"\n      purgecss \"^2.3.0\"\n  \n  \"@hapi/accept@5.0.1\":\n    version \"5.0.1\"\n    resolved \"https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.1.tgz#068553e867f0f63225a506ed74e899441af53e10\"\n    integrity sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q==\n    dependencies:\n      \"@hapi/boom\" \"9.x.x\"\n      \"@hapi/hoek\" \"9.x.x\"\n  \n  \"@hapi/boom@9.x.x\":\n    version \"9.1.1\"\n    resolved \"https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.1.tgz#89e6f0e01637c2a4228da0d113e8157c93677b04\"\n    integrity sha512-VNR8eDbBrOxBgbkddRYIe7+8DZ+vSbV6qlmaN2x7eWjsUjy2VmQgChkOKcVZIeupEZYj+I0dqNg430OhwzagjA==\n    dependencies:\n      \"@hapi/hoek\" \"9.x.x\"\n  \n  \"@hapi/hoek@9.x.x\":\n    version \"9.1.1\"\n    resolved \"https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa\"\n    integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==\n  \n  \"@istanbuljs/load-nyc-config@^1.0.0\":\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced\"\n    integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==\n    dependencies:\n      camelcase \"^5.3.1\"\n      find-up \"^4.1.0\"\n      get-package-type \"^0.1.0\"\n      js-yaml \"^3.13.1\"\n      resolve-from \"^5.0.0\"\n  \n  \"@istanbuljs/schema@^0.1.2\":\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd\"\n    integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==\n  \n  \"@jest/console@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2\"\n    integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      chalk \"^4.0.0\"\n      jest-message-util \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      slash \"^3.0.0\"\n  \n  \"@jest/core@^26.6.3\":\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad\"\n    integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==\n    dependencies:\n      \"@jest/console\" \"^26.6.2\"\n      \"@jest/reporters\" \"^26.6.2\"\n      \"@jest/test-result\" \"^26.6.2\"\n      \"@jest/transform\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      ansi-escapes \"^4.2.1\"\n      chalk \"^4.0.0\"\n      exit \"^0.1.2\"\n      graceful-fs \"^4.2.4\"\n      jest-changed-files \"^26.6.2\"\n      jest-config \"^26.6.3\"\n      jest-haste-map \"^26.6.2\"\n      jest-message-util \"^26.6.2\"\n      jest-regex-util \"^26.0.0\"\n      jest-resolve \"^26.6.2\"\n      jest-resolve-dependencies \"^26.6.3\"\n      jest-runner \"^26.6.3\"\n      jest-runtime \"^26.6.3\"\n      jest-snapshot \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      jest-validate \"^26.6.2\"\n      jest-watcher \"^26.6.2\"\n      micromatch \"^4.0.2\"\n      p-each-series \"^2.1.0\"\n      rimraf \"^3.0.0\"\n      slash \"^3.0.0\"\n      strip-ansi \"^6.0.0\"\n  \n  \"@jest/environment@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c\"\n    integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==\n    dependencies:\n      \"@jest/fake-timers\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      jest-mock \"^26.6.2\"\n  \n  \"@jest/fake-timers@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad\"\n    integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      \"@sinonjs/fake-timers\" \"^6.0.1\"\n      \"@types/node\" \"*\"\n      jest-message-util \"^26.6.2\"\n      jest-mock \"^26.6.2\"\n      jest-util \"^26.6.2\"\n  \n  \"@jest/globals@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a\"\n    integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==\n    dependencies:\n      \"@jest/environment\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      expect \"^26.6.2\"\n  \n  \"@jest/reporters@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6\"\n    integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==\n    dependencies:\n      \"@bcoe/v8-coverage\" \"^0.2.3\"\n      \"@jest/console\" \"^26.6.2\"\n      \"@jest/test-result\" \"^26.6.2\"\n      \"@jest/transform\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      chalk \"^4.0.0\"\n      collect-v8-coverage \"^1.0.0\"\n      exit \"^0.1.2\"\n      glob \"^7.1.2\"\n      graceful-fs \"^4.2.4\"\n      istanbul-lib-coverage \"^3.0.0\"\n      istanbul-lib-instrument \"^4.0.3\"\n      istanbul-lib-report \"^3.0.0\"\n      istanbul-lib-source-maps \"^4.0.0\"\n      istanbul-reports \"^3.0.2\"\n      jest-haste-map \"^26.6.2\"\n      jest-resolve \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      jest-worker \"^26.6.2\"\n      slash \"^3.0.0\"\n      source-map \"^0.6.0\"\n      string-length \"^4.0.1\"\n      terminal-link \"^2.0.0\"\n      v8-to-istanbul \"^7.0.0\"\n    optionalDependencies:\n      node-notifier \"^8.0.0\"\n  \n  \"@jest/source-map@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535\"\n    integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==\n    dependencies:\n      callsites \"^3.0.0\"\n      graceful-fs \"^4.2.4\"\n      source-map \"^0.6.0\"\n  \n  \"@jest/test-result@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18\"\n    integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==\n    dependencies:\n      \"@jest/console\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/istanbul-lib-coverage\" \"^2.0.0\"\n      collect-v8-coverage \"^1.0.0\"\n  \n  \"@jest/test-sequencer@^26.6.3\":\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17\"\n    integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==\n    dependencies:\n      \"@jest/test-result\" \"^26.6.2\"\n      graceful-fs \"^4.2.4\"\n      jest-haste-map \"^26.6.2\"\n      jest-runner \"^26.6.3\"\n      jest-runtime \"^26.6.3\"\n  \n  \"@jest/transform@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b\"\n    integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==\n    dependencies:\n      \"@babel/core\" \"^7.1.0\"\n      \"@jest/types\" \"^26.6.2\"\n      babel-plugin-istanbul \"^6.0.0\"\n      chalk \"^4.0.0\"\n      convert-source-map \"^1.4.0\"\n      fast-json-stable-stringify \"^2.0.0\"\n      graceful-fs \"^4.2.4\"\n      jest-haste-map \"^26.6.2\"\n      jest-regex-util \"^26.0.0\"\n      jest-util \"^26.6.2\"\n      micromatch \"^4.0.2\"\n      pirates \"^4.0.1\"\n      slash \"^3.0.0\"\n      source-map \"^0.6.1\"\n      write-file-atomic \"^3.0.0\"\n  \n  \"@jest/types@^26.6.2\":\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e\"\n    integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==\n    dependencies:\n      \"@types/istanbul-lib-coverage\" \"^2.0.0\"\n      \"@types/istanbul-reports\" \"^3.0.0\"\n      \"@types/node\" \"*\"\n      \"@types/yargs\" \"^15.0.0\"\n      chalk \"^4.0.0\"\n  \n  \"@koa/cors@^3.1.0\":\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/@koa/cors/-/cors-3.1.0.tgz#618bb073438cfdbd3ebd0e648a76e33b84f3a3b2\"\n    integrity sha512-7ulRC1da/rBa6kj6P4g2aJfnET3z8Uf3SWu60cjbtxTA5g8lxRdX/Bd2P92EagGwwAhANeNw8T8if99rJliR6Q==\n    dependencies:\n      vary \"^1.1.2\"\n  \n  \"@koa/router@^10.0.0\":\n    version \"10.0.0\"\n    resolved \"https://registry.yarnpkg.com/@koa/router/-/router-10.0.0.tgz#699115561afbd2740e2848ba299fc76b9e058ad6\"\n    integrity sha512-z9ytrKWn/j/qUApMSJzZbUwkbLcN2ZXGq6UsqWkZb50Us+/Qpu0RwgZ6ytawVOhfFBZ1ai5iVWeD2Dcu0qcnJw==\n    dependencies:\n      debug \"^4.1.1\"\n      http-errors \"^1.7.3\"\n      koa-compose \"^4.1.0\"\n      methods \"^1.1.2\"\n      path-to-regexp \"^6.1.0\"\n  \n  \"@manypkg/find-root@^1.1.0\":\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f\"\n    integrity sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==\n    dependencies:\n      \"@babel/runtime\" \"^7.5.5\"\n      \"@types/node\" \"^12.7.1\"\n      find-up \"^4.1.0\"\n      fs-extra \"^8.1.0\"\n  \n  \"@manypkg/get-packages@^1.0.1\":\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.1.tgz#7c7e72d0061ab2e61d2ce4da58ce91290a60ac8d\"\n    integrity sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==\n    dependencies:\n      \"@babel/runtime\" \"^7.5.5\"\n      \"@manypkg/find-root\" \"^1.1.0\"\n      fs-extra \"^8.1.0\"\n      globby \"^11.0.0\"\n      read-yaml-file \"^1.1.0\"\n  \n  \"@mdx-js/loader@^1.5.8\":\n    version \"1.6.22\"\n    resolved \"https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4\"\n    integrity sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q==\n    dependencies:\n      \"@mdx-js/mdx\" \"1.6.22\"\n      \"@mdx-js/react\" \"1.6.22\"\n      loader-utils \"2.0.0\"\n  \n  \"@mdx-js/mdx@1.6.22\":\n    version \"1.6.22\"\n    resolved \"https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba\"\n    integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==\n    dependencies:\n      \"@babel/core\" \"7.12.9\"\n      \"@babel/plugin-syntax-jsx\" \"7.12.1\"\n      \"@babel/plugin-syntax-object-rest-spread\" \"7.8.3\"\n      \"@mdx-js/util\" \"1.6.22\"\n      babel-plugin-apply-mdx-type-prop \"1.6.22\"\n      babel-plugin-extract-import-names \"1.6.22\"\n      camelcase-css \"2.0.1\"\n      detab \"2.0.4\"\n      hast-util-raw \"6.0.1\"\n      lodash.uniq \"4.5.0\"\n      mdast-util-to-hast \"10.0.1\"\n      remark-footnotes \"2.0.0\"\n      remark-mdx \"1.6.22\"\n      remark-parse \"8.0.3\"\n      remark-squeeze-paragraphs \"4.0.0\"\n      style-to-object \"0.3.0\"\n      unified \"9.2.0\"\n      unist-builder \"2.0.3\"\n      unist-util-visit \"2.0.3\"\n  \n  \"@mdx-js/react@1.6.22\", \"@mdx-js/react@^1.5.8\":\n    version \"1.6.22\"\n    resolved \"https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573\"\n    integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==\n  \n  \"@mdx-js/util@1.6.22\":\n    version \"1.6.22\"\n    resolved \"https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b\"\n    integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==\n  \n  \"@next/env@10.0.5\":\n    version \"10.0.5\"\n    resolved \"https://registry.yarnpkg.com/@next/env/-/env-10.0.5.tgz#446e59ee7a8d05061be784b24732c369653038ab\"\n    integrity sha512-dw6Q7PALIo7nTFfaB4OnRDte3EikrApGtjX/4cRmYXLh+uudDI50aS39MaGeKKZ2mxPKoNiFcY6Slv1f6KIPOw==\n  \n  \"@next/mdx@^9.3.4\":\n    version \"9.5.5\"\n    resolved \"https://registry.yarnpkg.com/@next/mdx/-/mdx-9.5.5.tgz#c5742c7db722905c4c7456098c1f2ba1cae3994d\"\n    integrity sha512-IdwwXrxqNhZuEeyVdCKtv1R2CqIsAZm/rtCUbE5WImFW3VK8nrSFDFi+JkoWoDcHgGgaJYgfoYAoieHV5POGJg==\n  \n  \"@next/polyfill-module@10.0.5\":\n    version \"10.0.5\"\n    resolved \"https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-10.0.5.tgz#f2de3deee8694cc75094fea4e91225724b3a21e1\"\n    integrity sha512-R6ySTTIl6yqyO3Xft7h+QR9Z4e6epEw+AGO125CrwPmCDQ8ASLGltsHYvSHBP7Eae7xaorkXHW0jeI8NewLpew==\n  \n  \"@next/react-dev-overlay@10.0.5\":\n    version \"10.0.5\"\n    resolved \"https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-10.0.5.tgz#f0006e56d8c8b4269f341ff22233e4a7e1176b52\"\n    integrity sha512-olqIaaRvFezzi02V/AYwvmrGbShUNrJDvyZTGNahxXEkiYsuu67llY5IKFM5Oya93/eRqaCCKMn89vpvYtvDcw==\n    dependencies:\n      \"@babel/code-frame\" \"7.12.11\"\n      anser \"1.4.9\"\n      chalk \"4.0.0\"\n      classnames \"2.2.6\"\n      css.escape \"1.5.1\"\n      data-uri-to-buffer \"3.0.1\"\n      platform \"1.3.6\"\n      shell-quote \"1.7.2\"\n      source-map \"0.8.0-beta.0\"\n      stacktrace-parser \"0.1.10\"\n      strip-ansi \"6.0.0\"\n  \n  \"@next/react-refresh-utils@10.0.5\":\n    version \"10.0.5\"\n    resolved \"https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-10.0.5.tgz#c1ca664c4ffe2f79d14383323d783368833d503b\"\n    integrity sha512-Eo+nvW1ZhdkuxBWSsKHGDLNspUaJJQClld9R+H+EtiIuAQtTa8f2rhcQeyUOtvUNQoPyq7Em2PwUqOQD6LOOMA==\n  \n  \"@nodelib/fs.scandir@2.1.3\":\n    version \"2.1.3\"\n    resolved \"https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b\"\n    integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==\n    dependencies:\n      \"@nodelib/fs.stat\" \"2.0.3\"\n      run-parallel \"^1.1.9\"\n  \n  \"@nodelib/fs.stat@2.0.3\", \"@nodelib/fs.stat@^2.0.2\":\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3\"\n    integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==\n  \n  \"@nodelib/fs.walk@^1.2.3\":\n    version \"1.2.4\"\n    resolved \"https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976\"\n    integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==\n    dependencies:\n      \"@nodelib/fs.scandir\" \"2.1.3\"\n      fastq \"^1.6.0\"\n  \n  \"@npmcli/move-file@^1.0.1\":\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464\"\n    integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==\n    dependencies:\n      mkdirp \"^1.0.4\"\n  \n  \"@octokit/openapi-types@^2.2.0\":\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-2.2.0.tgz#123e0438a0bc718ccdac3b5a2e69b3dd00daa85b\"\n    integrity sha512-274lNUDonw10kT8wHg8fCcUc1ZjZHbWv0/TbAwb0ojhBQqZYc1cQ/4yqTVTtPMDeZ//g7xVEYe/s3vURkRghPg==\n  \n  \"@octokit/request-error@^2.0.2\":\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.4.tgz#07dd5c0521d2ee975201274c472a127917741262\"\n    integrity sha512-LjkSiTbsxIErBiRh5wSZvpZqT4t0/c9+4dOe0PII+6jXR+oj/h66s7E4a/MghV7iT8W9ffoQ5Skoxzs96+gBPA==\n    dependencies:\n      \"@octokit/types\" \"^6.0.0\"\n      deprecation \"^2.0.0\"\n      once \"^1.4.0\"\n  \n  \"@octokit/types@^6.0.0\":\n    version \"6.2.1\"\n    resolved \"https://registry.yarnpkg.com/@octokit/types/-/types-6.2.1.tgz#7f881fe44475ab1825776a4a59ca1ae082ed1043\"\n    integrity sha512-jHs9OECOiZxuEzxMZcXmqrEO8GYraHF+UzNVH2ACYh8e/Y7YoT+hUf9ldvVd6zIvWv4p3NdxbQ0xx3ku5BnSiA==\n    dependencies:\n      \"@octokit/openapi-types\" \"^2.2.0\"\n      \"@types/node\" \">= 8\"\n  \n  \"@octokit/webhooks@^7.11.0\":\n    version \"7.21.0\"\n    resolved \"https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-7.21.0.tgz#2aee3404aa311740a5f4ea37b070268752e21b02\"\n    integrity sha512-Mj7Pa6JZgSjfzQfYF3Bf5KpyhzEBv4kHbj2EjCB/vMQiZCiiW30j5rS6t/d0ZN0FBrlSOuJIT+YU8IJt30VyWA==\n    dependencies:\n      \"@octokit/request-error\" \"^2.0.2\"\n      aggregate-error \"^3.1.0\"\n      debug \"^4.0.0\"\n  \n  \"@opentelemetry/api@0.14.0\":\n    version \"0.14.0\"\n    resolved \"https://registry.yarnpkg.com/@opentelemetry/api/-/api-0.14.0.tgz#4e17d8d2f1da72b19374efa7b6526aa001267cae\"\n    integrity sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ==\n    dependencies:\n      \"@opentelemetry/context-base\" \"^0.14.0\"\n  \n  \"@opentelemetry/context-base@^0.14.0\":\n    version \"0.14.0\"\n    resolved \"https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001\"\n    integrity sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw==\n  \n  \"@philpl/buble@^0.19.7\":\n    version \"0.19.7\"\n    resolved \"https://registry.yarnpkg.com/@philpl/buble/-/buble-0.19.7.tgz#27231e6391393793b64bc1c982fc7b593198b893\"\n    integrity sha512-wKTA2DxAGEW+QffRQvOhRQ0VBiYU2h2p8Yc1oBNlqSKws48/8faxqKNIuub0q4iuyTuLwtB8EkwiKwhlfV1PBA==\n    dependencies:\n      acorn \"^6.1.1\"\n      acorn-class-fields \"^0.2.1\"\n      acorn-dynamic-import \"^4.0.0\"\n      acorn-jsx \"^5.0.1\"\n      chalk \"^2.4.2\"\n      magic-string \"^0.25.2\"\n      minimist \"^1.2.0\"\n      os-homedir \"^1.0.1\"\n      regexpu-core \"^4.5.4\"\n  \n  \"@popperjs/core@2.4.4\":\n    version \"2.4.4\"\n    resolved \"https://registry.yarnpkg.com/@popperjs/core/-/core-2.4.4.tgz#11d5db19bd178936ec89cd84519c4de439574398\"\n    integrity sha512-1oO6+dN5kdIA3sKPZhRGJTfGVP4SWV6KqlMOwry4J3HfyD68sl/3KmG7DeYUzvN+RbhXDnv/D8vNNB8168tAMg==\n  \n  \"@reach/alert@0.11.0\":\n    version \"0.11.0\"\n    resolved \"https://registry.yarnpkg.com/@reach/alert/-/alert-0.11.0.tgz#34bea3e9e286fa54a86adaa1a3730faff9b2bda3\"\n    integrity sha512-7Rw+lrrIOhgNTVmk8YZsqoF+fyOiA+kJx23p9/FZq+d0MK28e6puUA1zpeWASdU1LDzS+vDJM5hUmj98NMM/nw==\n    dependencies:\n      \"@reach/utils\" \"0.11.0\"\n      \"@reach/visually-hidden\" \"0.11.0\"\n      prop-types \"^15.7.2\"\n      tslib \"^2.0.0\"\n  \n  \"@reach/auto-id@0.11.0\":\n    version \"0.11.0\"\n    resolved \"https://registry.yarnpkg.com/@reach/auto-id/-/auto-id-0.11.0.tgz#274251c1fbf9cd58d874cfc75fba289d1829368c\"\n    integrity sha512-KwwnsnYTbTsYvRbSNqtaA1znaXP9G1I0z+bE0eFMNICvR+bHApaTu0aEEZNXfevq2LBrIMP6hZY9BokgTRcB3g==\n    dependencies:\n      \"@reach/utils\" \"0.11.0\"\n      tslib \"^2.0.0\"\n  \n  \"@reach/utils@0.11.0\":\n    version \"0.11.0\"\n    resolved \"https://registry.yarnpkg.com/@reach/utils/-/utils-0.11.0.tgz#09ad5e1f42b498253df8a6a4c99ccd0ab2d85464\"\n    integrity sha512-A7Ofr1Biq4vUeTBYhbZ/YiLq1B/lEObbEoR2UiuQqCO1r093N95hZNcKqfFwpkRScjD87uob3wSYYGxvq9y/+w==\n    dependencies:\n      \"@types/warning\" \"^3.0.0\"\n      tslib \"^2.0.0\"\n      warning \"^4.0.3\"\n  \n  \"@reach/visually-hidden@0.11.0\":\n    version \"0.11.0\"\n    resolved \"https://registry.yarnpkg.com/@reach/visually-hidden/-/visually-hidden-0.11.0.tgz#a7cd68ea2a197238dfcffbef8723db9117d31ebb\"\n    integrity sha512-O67fK7jz01TYu/V57RiDsxKY29ReHdQkpq+OV0ijmXsv7g5r3Nys51Ry+IqPrJst4Ve5xxFbiJsTt/bGwxorrQ==\n    dependencies:\n      tslib \"^2.0.0\"\n  \n  \"@rollup/plugin-alias@^3.0.1\":\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.1.tgz#bb96cf37fefeb0a953a6566c284855c7d1cd290c\"\n    integrity sha512-hNcQY4bpBUIvxekd26DBPgF7BT4mKVNDF5tBG4Zi+3IgwLxGYRY0itHs9D0oLVwXM5pvJDWJlBQro+au8WaUWw==\n    dependencies:\n      slash \"^3.0.0\"\n  \n  \"@rollup/plugin-commonjs@^16.0.0\":\n    version \"16.0.0\"\n    resolved \"https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-16.0.0.tgz#169004d56cd0f0a1d0f35915d31a036b0efe281f\"\n    integrity sha512-LuNyypCP3msCGVQJ7ki8PqYdpjfEkE/xtFa5DqlF+7IBD0JsfMZ87C58heSwIMint58sAUZbt3ITqOmdQv/dXw==\n    dependencies:\n      \"@rollup/pluginutils\" \"^3.1.0\"\n      commondir \"^1.0.1\"\n      estree-walker \"^2.0.1\"\n      glob \"^7.1.6\"\n      is-reference \"^1.2.1\"\n      magic-string \"^0.25.7\"\n      resolve \"^1.17.0\"\n  \n  \"@rollup/plugin-inject@^4.0.2\":\n    version \"4.0.2\"\n    resolved \"https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-4.0.2.tgz#55b21bb244a07675f7fdde577db929c82fc17395\"\n    integrity sha512-TSLMA8waJ7Dmgmoc8JfPnwUwVZgLjjIAM6MqeIFqPO2ODK36JqE0Cf2F54UTgCUuW8da93Mvoj75a6KAVWgylw==\n    dependencies:\n      \"@rollup/pluginutils\" \"^3.0.4\"\n      estree-walker \"^1.0.1\"\n      magic-string \"^0.25.5\"\n  \n  \"@rollup/plugin-json@^4.0.0\", \"@rollup/plugin-json@^4.1.0\":\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3\"\n    integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==\n    dependencies:\n      \"@rollup/pluginutils\" \"^3.0.8\"\n  \n  \"@rollup/plugin-node-resolve@^10.0.0\":\n    version \"10.0.0\"\n    resolved \"https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-10.0.0.tgz#44064a2b98df7530e66acf8941ff262fc9b4ead8\"\n    integrity sha512-sNijGta8fqzwA1VwUEtTvWCx2E7qC70NMsDh4ZG13byAXYigBNZMxALhKUSycBks5gupJdq0lFrKumFrRZ8H3A==\n    dependencies:\n      \"@rollup/pluginutils\" \"^3.1.0\"\n      \"@types/resolve\" \"1.17.1\"\n      builtin-modules \"^3.1.0\"\n      deepmerge \"^4.2.2\"\n      is-module \"^1.0.0\"\n      resolve \"^1.17.0\"\n  \n  \"@rollup/plugin-replace@^2.3.3\":\n    version \"2.3.4\"\n    resolved \"https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.3.4.tgz#7dd84c17755d62b509577f2db37eb524d7ca88ca\"\n    integrity sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ==\n    dependencies:\n      \"@rollup/pluginutils\" \"^3.1.0\"\n      magic-string \"^0.25.7\"\n  \n  \"@rollup/pluginutils@^3.0.4\", \"@rollup/pluginutils@^3.0.8\", \"@rollup/pluginutils@^3.0.9\", \"@rollup/pluginutils@^3.1.0\":\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b\"\n    integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==\n    dependencies:\n      \"@types/estree\" \"0.0.39\"\n      estree-walker \"^1.0.1\"\n      picomatch \"^2.2.2\"\n  \n  \"@rollup/pluginutils@^4.1.0\":\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838\"\n    integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==\n    dependencies:\n      estree-walker \"^2.0.1\"\n      picomatch \"^2.2.2\"\n  \n  \"@sindresorhus/is@^4.0.0\":\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4\"\n    integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==\n  \n  \"@sinonjs/commons@^1.7.0\":\n    version \"1.8.1\"\n    resolved \"https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217\"\n    integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==\n    dependencies:\n      type-detect \"4.0.8\"\n  \n  \"@sinonjs/fake-timers@^6.0.1\":\n    version \"6.0.1\"\n    resolved \"https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40\"\n    integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==\n    dependencies:\n      \"@sinonjs/commons\" \"^1.7.0\"\n  \n  \"@snowpack/plugin-build-script@^2.0.12\":\n    version \"2.0.12\"\n    resolved \"https://registry.yarnpkg.com/@snowpack/plugin-build-script/-/plugin-build-script-2.0.12.tgz#bbb59fedbaae40eed1e3c20f6050659911577897\"\n    integrity sha512-v4Kcmu8x0C5iqPbI8w1vMyT6ZVVeh/Z4LTFeTJx+nLm5VKdQJsLyLarI2YhOuQEGB/RZeR4PxvAJBZn1xcH6Bw==\n    dependencies:\n      execa \"^4.0.3\"\n      npm-run-path \"^4.0.1\"\n  \n  \"@snowpack/plugin-react-refresh@^2.3.9\":\n    version \"2.3.9\"\n    resolved \"https://registry.yarnpkg.com/@snowpack/plugin-react-refresh/-/plugin-react-refresh-2.3.9.tgz#b118665504fb7f2622cc5a85e7ae46d4999725e0\"\n    integrity sha512-QBsK1SQPmwxD3BKuLfbOa2oYKJKyRtBaL4CmkB+XNINia+TUKD8+m9cjbvO0QBRHDNhr6++9M5LDg41Jzm74tw==\n    dependencies:\n      \"@babel/core\" \"^7.0.0\"\n      \"@babel/plugin-syntax-class-properties\" \"^7.10.0\"\n      react-refresh \"^0.9.0\"\n  \n  \"@snowpack/plugin-run-script@^2.2.1\":\n    version \"2.2.1\"\n    resolved \"https://registry.yarnpkg.com/@snowpack/plugin-run-script/-/plugin-run-script-2.2.1.tgz#8a564f84c65c1136b9b898ef5a89552cf473a638\"\n    integrity sha512-TuYOtcTrJJnm7oMtAQCZN8/GEXI6Tumtk3MEKNhka/id9LrHdUvaYZ9+yxj/n4hep9/kJ0Y7SlweL32L5Zy0Ow==\n    dependencies:\n      execa \"^4.0.3\"\n      npm-run-path \"^4.0.1\"\n  \n  \"@sucrase/jest-plugin@^2.0.0\":\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/@sucrase/jest-plugin/-/jest-plugin-2.0.0.tgz#bcca4d877f5013fd66d4092e4c8ba475b18228e4\"\n    integrity sha512-UqmtOnj2OliwV1qKFCQsci41vPX665wGvf5YosRjL+l6jF69HrgB3T8gGnCcF4tAmRycYw8t59x+Dgz64szXWA==\n    dependencies:\n      sucrase \"^3.0.0\"\n  \n  \"@szmarczak/http-timer@^4.0.5\":\n    version \"4.0.5\"\n    resolved \"https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152\"\n    integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==\n    dependencies:\n      defer-to-connect \"^2.0.0\"\n  \n  \"@types/accepts@*\":\n    version \"1.3.5\"\n    resolved \"https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575\"\n    integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/babel__core@^7.0.0\", \"@types/babel__core@^7.1.7\":\n    version \"7.1.12\"\n    resolved \"https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d\"\n    integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==\n    dependencies:\n      \"@babel/parser\" \"^7.1.0\"\n      \"@babel/types\" \"^7.0.0\"\n      \"@types/babel__generator\" \"*\"\n      \"@types/babel__template\" \"*\"\n      \"@types/babel__traverse\" \"*\"\n  \n  \"@types/babel__generator@*\":\n    version \"7.6.2\"\n    resolved \"https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8\"\n    integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==\n    dependencies:\n      \"@babel/types\" \"^7.0.0\"\n  \n  \"@types/babel__template@*\":\n    version \"7.4.0\"\n    resolved \"https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be\"\n    integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==\n    dependencies:\n      \"@babel/parser\" \"^7.1.0\"\n      \"@babel/types\" \"^7.0.0\"\n  \n  \"@types/babel__traverse@*\", \"@types/babel__traverse@^7.0.4\", \"@types/babel__traverse@^7.0.6\":\n    version \"7.0.16\"\n    resolved \"https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.16.tgz#0bbbf70c7bc4193210dd27e252c51260a37cd6a7\"\n    integrity sha512-S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w==\n    dependencies:\n      \"@babel/types\" \"^7.3.0\"\n  \n  \"@types/body-parser@*\":\n    version \"1.19.0\"\n    resolved \"https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f\"\n    integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==\n    dependencies:\n      \"@types/connect\" \"*\"\n      \"@types/node\" \"*\"\n  \n  \"@types/cacheable-request@^6.0.1\":\n    version \"6.0.1\"\n    resolved \"https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976\"\n    integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==\n    dependencies:\n      \"@types/http-cache-semantics\" \"*\"\n      \"@types/keyv\" \"*\"\n      \"@types/node\" \"*\"\n      \"@types/responselike\" \"*\"\n  \n  \"@types/cheerio@0.22.22\":\n    version \"0.22.22\"\n    resolved \"https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.22.tgz#ae71cf4ca59b8bbaf34c99af7a5d6c8894988f5f\"\n    integrity sha512-05DYX4zU96IBfZFY+t3Mh88nlwSMtmmzSYaQkKN48T495VV1dkHSah6qYyDTN5ngaS0i0VonH37m+RuzSM0YiA==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/chokidar@^2.1.3\":\n    version \"2.1.3\"\n    resolved \"https://registry.yarnpkg.com/@types/chokidar/-/chokidar-2.1.3.tgz#123ab795dba6d89be04bf076e6aecaf8620db674\"\n    integrity sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==\n    dependencies:\n      chokidar \"*\"\n  \n  \"@types/connect@*\":\n    version \"3.4.34\"\n    resolved \"https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901\"\n    integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/content-disposition@*\":\n    version \"0.5.3\"\n    resolved \"https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96\"\n    integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==\n  \n  \"@types/cookies@*\":\n    version \"0.7.5\"\n    resolved \"https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.5.tgz#aa42c9a9834724bffee597028da5319b38e85e84\"\n    integrity sha512-3+TAFSm78O7/bAeYdB8FoYGntuT87vVP9JKuQRL8sRhv9313LP2SpHHL50VeFtnyjIcb3UELddMk5Yt0eOSOkg==\n    dependencies:\n      \"@types/connect\" \"*\"\n      \"@types/express\" \"*\"\n      \"@types/keygrip\" \"*\"\n      \"@types/node\" \"*\"\n  \n  \"@types/es-module-lexer@^0.3.0\":\n    version \"0.3.0\"\n    resolved \"https://registry.yarnpkg.com/@types/es-module-lexer/-/es-module-lexer-0.3.0.tgz#9fee3f19f64e6b3f999eeb3a70bd177a4d57a6cb\"\n    integrity sha512-XI3MGSejUQIJ3wzY0i5IHy5J3eb36M/ytgG8jIOssP08ovtRPcjpjXQqrx51AHBNBOisTS/NQNWJitI17+EwzQ==\n  \n  \"@types/estree@*\":\n    version \"0.0.45\"\n    resolved \"https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884\"\n    integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==\n  \n  \"@types/estree@0.0.39\":\n    version \"0.0.39\"\n    resolved \"https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f\"\n    integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==\n  \n  \"@types/express-serve-static-core@*\":\n    version \"4.17.15\"\n    resolved \"https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.15.tgz#7c3d37829a991da9a507c1efd44d97532e8909e3\"\n    integrity sha512-pb71P0BrBAx7cQE+/7QnA1HTQUkdBKMlkPY7lHUMn0YvPJkL2UA+KW3BdWQ309IT+i9En/qm45ZxpjIcpgEhNQ==\n    dependencies:\n      \"@types/node\" \"*\"\n      \"@types/qs\" \"*\"\n      \"@types/range-parser\" \"*\"\n  \n  \"@types/express@*\":\n    version \"4.17.9\"\n    resolved \"https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78\"\n    integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==\n    dependencies:\n      \"@types/body-parser\" \"*\"\n      \"@types/express-serve-static-core\" \"*\"\n      \"@types/qs\" \"*\"\n      \"@types/serve-static\" \"*\"\n  \n  \"@types/find-up@^4.0.0\":\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/find-up/-/find-up-4.0.0.tgz#6b74a76670477a23f0793cfaf2dafc86df59723a\"\n    integrity sha512-QlRNKeOPFWKisbNtKVOOGXw3AeLbkw8UmT/EyEGM6brfqpYffKBcch7f1y40NYN9O90aK2+K0xBMDJfOAsg2qg==\n    dependencies:\n      find-up \"*\"\n  \n  \"@types/formidable@^1.0.31\":\n    version \"1.0.32\"\n    resolved \"https://registry.yarnpkg.com/@types/formidable/-/formidable-1.0.32.tgz#d9a7eefbaa995a4486ec4e3960e9552e68b3f33c\"\n    integrity sha512-jOAB5+GFW+C+2xdvUcpd/CnYg2rD5xCyagJLBJU+9PB4a/DKmsAqS9yZI3j/Q9zwvM7ztPHaAIH1ijzp4cezdQ==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/fs-extra@^9.0.5\":\n    version \"9.0.5\"\n    resolved \"https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.5.tgz#2afb76a43a4bef80a363b94b314d0ca1694fc4f8\"\n    integrity sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/graceful-fs@^4.1.2\":\n    version \"4.1.4\"\n    resolved \"https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753\"\n    integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/hast@^2.0.0\":\n    version \"2.3.1\"\n    resolved \"https://registry.yarnpkg.com/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9\"\n    integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q==\n    dependencies:\n      \"@types/unist\" \"*\"\n  \n  \"@types/history@*\":\n    version \"4.7.8\"\n    resolved \"https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934\"\n    integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA==\n  \n  \"@types/http-assert@*\":\n    version \"1.5.1\"\n    resolved \"https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b\"\n    integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==\n  \n  \"@types/http-cache-semantics@*\":\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a\"\n    integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==\n  \n  \"@types/http-errors@*\":\n    version \"1.8.0\"\n    resolved \"https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69\"\n    integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==\n  \n  \"@types/http-proxy@^1.17.4\":\n    version \"1.17.4\"\n    resolved \"https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b\"\n    integrity sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/istanbul-lib-coverage@*\", \"@types/istanbul-lib-coverage@^2.0.0\", \"@types/istanbul-lib-coverage@^2.0.1\":\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762\"\n    integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==\n  \n  \"@types/istanbul-lib-report@*\":\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686\"\n    integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==\n    dependencies:\n      \"@types/istanbul-lib-coverage\" \"*\"\n  \n  \"@types/istanbul-reports@^3.0.0\":\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821\"\n    integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==\n    dependencies:\n      \"@types/istanbul-lib-report\" \"*\"\n  \n  \"@types/jest-specific-snapshot@^0.5.5\":\n    version \"0.5.5\"\n    resolved \"https://registry.yarnpkg.com/@types/jest-specific-snapshot/-/jest-specific-snapshot-0.5.5.tgz#47ce738870be99898ed6d7b08dbf0240c74ae553\"\n    integrity sha512-AaPPw2tE8ewfjD6qGLkEd4DOfM6pPOK7ob/RSOe1Z8Oo70r9Jgo0SlWyfxslPAOvLfQukQtiVPm6DcnjSoZU5A==\n    dependencies:\n      \"@types/jest\" \"*\"\n  \n  \"@types/jest@*\", \"@types/jest@^26.0.19\":\n    version \"26.0.19\"\n    resolved \"https://registry.yarnpkg.com/@types/jest/-/jest-26.0.19.tgz#e6fa1e3def5842ec85045bd5210e9bb8289de790\"\n    integrity sha512-jqHoirTG61fee6v6rwbnEuKhpSKih0tuhqeFbCmMmErhtu3BYlOZaXWjffgOstMM4S/3iQD31lI5bGLTrs97yQ==\n    dependencies:\n      jest-diff \"^26.0.0\"\n      pretty-format \"^26.0.0\"\n  \n  \"@types/json-schema@^7.0.5\", \"@types/json-schema@^7.0.6\":\n    version \"7.0.6\"\n    resolved \"https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0\"\n    integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==\n  \n  \"@types/keygrip@*\":\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72\"\n    integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==\n  \n  \"@types/keyv@*\":\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7\"\n    integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/koa-compose@*\":\n    version \"3.2.5\"\n    resolved \"https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d\"\n    integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==\n    dependencies:\n      \"@types/koa\" \"*\"\n  \n  \"@types/koa-send@^4.1.2\":\n    version \"4.1.2\"\n    resolved \"https://registry.yarnpkg.com/@types/koa-send/-/koa-send-4.1.2.tgz#978f8267ad116d12ac6a18fecd8f34c5657e09ad\"\n    integrity sha512-rfqKIv9bFds39Jxvsp8o3YJLnEQVPVriYA14AuO2OY65IHh/4UX4U/iMs5L0wATpcRmm1bbe0BNk23TRwx3VQQ==\n    dependencies:\n      \"@types/koa\" \"*\"\n  \n  \"@types/koa@*\", \"@types/koa@^2.11.4\", \"@types/koa@^2.11.6\":\n    version \"2.11.6\"\n    resolved \"https://registry.yarnpkg.com/@types/koa/-/koa-2.11.6.tgz#b7030caa6b44af801c2aea13ba77d74aff7484d5\"\n    integrity sha512-BhyrMj06eQkk04C97fovEDQMpLpd2IxCB4ecitaXwOKGq78Wi2tooaDOWOFGajPk8IkQOAtMppApgSVkYe1F/A==\n    dependencies:\n      \"@types/accepts\" \"*\"\n      \"@types/content-disposition\" \"*\"\n      \"@types/cookies\" \"*\"\n      \"@types/http-assert\" \"*\"\n      \"@types/http-errors\" \"*\"\n      \"@types/keygrip\" \"*\"\n      \"@types/koa-compose\" \"*\"\n      \"@types/node\" \"*\"\n  \n  \"@types/lodash.mergewith@4.6.6\":\n    version \"4.6.6\"\n    resolved \"https://registry.yarnpkg.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz#c4698f5b214a433ff35cb2c75ee6ec7f99d79f10\"\n    integrity sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==\n    dependencies:\n      \"@types/lodash\" \"*\"\n  \n  \"@types/lodash@*\":\n    version \"4.14.167\"\n    resolved \"https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.167.tgz#ce7d78553e3c886d4ea643c37ec7edc20f16765e\"\n    integrity sha512-w7tQPjARrvdeBkX/Rwg95S592JwxqOjmms3zWQ0XZgSyxSLdzWaYH3vErBhdVS/lRBX7F8aBYcYJYTr5TMGOzw==\n  \n  \"@types/lru-cache@^5.1.0\":\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03\"\n    integrity sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w==\n  \n  \"@types/mdast@^3.0.0\", \"@types/mdast@^3.0.3\":\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb\"\n    integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==\n    dependencies:\n      \"@types/unist\" \"*\"\n  \n  \"@types/mime@*\":\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a\"\n    integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==\n  \n  \"@types/minimist@^1.2.0\":\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256\"\n    integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==\n  \n  \"@types/node@*\":\n    version \"14.14.10\"\n    resolved \"https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785\"\n    integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==\n  \n  \"@types/node@>= 8\":\n    version \"14.14.20\"\n    resolved \"https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340\"\n    integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==\n  \n  \"@types/node@^12.7.1\":\n    version \"12.19.8\"\n    resolved \"https://registry.yarnpkg.com/@types/node/-/node-12.19.8.tgz#efd6d1a90525519fc608c9db16c8a78f7693a978\"\n    integrity sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==\n  \n  \"@types/node@^14.14.13\":\n    version \"14.14.13\"\n    resolved \"https://registry.yarnpkg.com/@types/node/-/node-14.14.13.tgz#9e425079799322113ae8477297ae6ef51b8e0cdf\"\n    integrity sha512-vbxr0VZ8exFMMAjCW8rJwaya0dMCDyYW2ZRdTyjtrCvJoENMpdUHOT/eTzvgyA5ZnqRZ/sI0NwqAxNHKYokLJQ==\n  \n  \"@types/normalize-package-data@^2.4.0\":\n    version \"2.4.0\"\n    resolved \"https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e\"\n    integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==\n  \n  \"@types/object-assign@4.0.30\":\n    version \"4.0.30\"\n    resolved \"https://registry.yarnpkg.com/@types/object-assign/-/object-assign-4.0.30.tgz#8949371d5a99f4381ee0f1df0a9b7a187e07e652\"\n    integrity sha1-iUk3HVqZ9Dge4PHfCpt6GH4H5lI=\n  \n  \"@types/parse-json@^4.0.0\":\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0\"\n    integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==\n  \n  \"@types/parse5@^5.0.0\":\n    version \"5.0.3\"\n    resolved \"https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109\"\n    integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==\n  \n  \"@types/prettier@^2.0.0\":\n    version \"2.1.5\"\n    resolved \"https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.5.tgz#b6ab3bba29e16b821d84e09ecfaded462b816b00\"\n    integrity sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==\n  \n  \"@types/prompts@^2.0.9\":\n    version \"2.0.9\"\n    resolved \"https://registry.yarnpkg.com/@types/prompts/-/prompts-2.0.9.tgz#19f419310eaa224a520476b19d4183f6a2b3bd8f\"\n    integrity sha512-TORZP+FSjTYMWwKadftmqEn6bziN5RnfygehByGsjxoK5ydnClddtv6GikGWPvCm24oI+YBwck5WDxIIyNxUrA==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/prop-types@*\":\n    version \"15.7.3\"\n    resolved \"https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7\"\n    integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==\n  \n  \"@types/qs@*\", \"@types/qs@^6.9.5\":\n    version \"6.9.5\"\n    resolved \"https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b\"\n    integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==\n  \n  \"@types/range-parser@*\":\n    version \"1.2.3\"\n    resolved \"https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c\"\n    integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==\n  \n  \"@types/react-router-dom@^5.1.7\":\n    version \"5.1.7\"\n    resolved \"https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.7.tgz#a126d9ea76079ffbbdb0d9225073eb5797ab7271\"\n    integrity sha512-D5mHD6TbdV/DNHYsnwBTv+y73ei+mMjrkGrla86HthE4/PVvL1J94Bu3qABU+COXzpL23T1EZapVVpwHuBXiUg==\n    dependencies:\n      \"@types/history\" \"*\"\n      \"@types/react\" \"*\"\n      \"@types/react-router\" \"*\"\n  \n  \"@types/react-router@*\":\n    version \"5.1.11\"\n    resolved \"https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.11.tgz#b01ce4cb21bf7d6b32edc862fc1e2c0088044b5b\"\n    integrity sha512-ofHbZMlp0Y2baOHgsWBQ4K3AttxY61bDMkwTiBOkPg7U6C/3UwwB5WaIx28JmSVi/eX3uFEMRo61BV22fDQIvg==\n    dependencies:\n      \"@types/history\" \"*\"\n      \"@types/react\" \"*\"\n  \n  \"@types/react@*\", \"@types/react@^17.0.0\":\n    version \"17.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8\"\n    integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==\n    dependencies:\n      \"@types/prop-types\" \"*\"\n      csstype \"^3.0.2\"\n  \n  \"@types/resolve@1.17.1\", \"@types/resolve@^1.17.1\":\n    version \"1.17.1\"\n    resolved \"https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6\"\n    integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/responselike@*\", \"@types/responselike@^1.0.0\":\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29\"\n    integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/semver@^6.0.0\":\n    version \"6.2.2\"\n    resolved \"https://registry.yarnpkg.com/@types/semver/-/semver-6.2.2.tgz#5c27df09ca39e3c9beb4fae6b95f4d71426df0a9\"\n    integrity sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==\n  \n  \"@types/serve-static@*\":\n    version \"1.13.8\"\n    resolved \"https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46\"\n    integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==\n    dependencies:\n      \"@types/mime\" \"*\"\n      \"@types/node\" \"*\"\n  \n  \"@types/stack-utils@^2.0.0\":\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff\"\n    integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==\n  \n  \"@types/tinycolor2@1.4.2\":\n    version \"1.4.2\"\n    resolved \"https://registry.yarnpkg.com/@types/tinycolor2/-/tinycolor2-1.4.2.tgz#721ca5c5d1a2988b4a886e35c2ffc5735b6afbdf\"\n    integrity sha512-PeHg/AtdW6aaIO2a+98Xj7rWY4KC1E6yOy7AFknJQ7VXUGNrMlyxDFxJo7HqLtjQms/ZhhQX52mLVW/EX3JGOw==\n  \n  \"@types/unist@*\", \"@types/unist@^2.0.0\", \"@types/unist@^2.0.2\", \"@types/unist@^2.0.3\":\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e\"\n    integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==\n  \n  \"@types/uuid@^8.3.0\":\n    version \"8.3.0\"\n    resolved \"https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f\"\n    integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==\n  \n  \"@types/warning@^3.0.0\":\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52\"\n    integrity sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=\n  \n  \"@types/ws@^7.4.0\":\n    version \"7.4.0\"\n    resolved \"https://registry.yarnpkg.com/@types/ws/-/ws-7.4.0.tgz#499690ea08736e05a8186113dac37769ab251a0e\"\n    integrity sha512-Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  \"@types/yargs-parser@*\":\n    version \"15.0.0\"\n    resolved \"https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d\"\n    integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==\n  \n  \"@types/yargs@^15.0.0\":\n    version \"15.0.10\"\n    resolved \"https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz#0fe3c8173a0d5c3e780b389050140c3f5ea6ea74\"\n    integrity sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==\n    dependencies:\n      \"@types/yargs-parser\" \"*\"\n  \n  \"@types/yargs@^15.0.11\":\n    version \"15.0.11\"\n    resolved \"https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.11.tgz#361d7579ecdac1527687bcebf9946621c12ab78c\"\n    integrity sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==\n    dependencies:\n      \"@types/yargs-parser\" \"*\"\n  \n  \"@vue/compiler-core@3.0.4\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.4.tgz#0122aca6eada4cb28b39ed930af917444755e330\"\n    integrity sha512-snpMICsbWTZqBFnPB03qr4DtiSxVYfDF3DvbDSkN9Z9NTM8Chl8E/lYhKBSsvauq91DAWAh8PU3lr9vrLyQsug==\n    dependencies:\n      \"@babel/parser\" \"^7.12.0\"\n      \"@babel/types\" \"^7.12.0\"\n      \"@vue/shared\" \"3.0.4\"\n      estree-walker \"^2.0.1\"\n      source-map \"^0.6.1\"\n  \n  \"@vue/compiler-dom@3.0.4\", \"@vue/compiler-dom@^3.0.3\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.4.tgz#834fd4b15c5698cf9f4505c2bfbccca058a843eb\"\n    integrity sha512-FOxbHBIkkGjYQeTz1DlXQjS1Ms8EPXQWsdTdTPeohoS0KzCz6RiOjiAG+jLtMi6Nr5GX2h0TlCvcnI8mcsicFQ==\n    dependencies:\n      \"@vue/compiler-core\" \"3.0.4\"\n      \"@vue/shared\" \"3.0.4\"\n  \n  \"@vue/compiler-sfc@^3.0.3\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.4.tgz#2119fe1e68d2c268aafa20461c82c139a9adf8e0\"\n    integrity sha512-brDn6HTuK6R3oBCjtMPPsIpyJEZFinlnxjtBXww/goFJOJBAU9CrsdegwyZItNnixCFUIg4CLv4Nj1Eg/eKlfg==\n    dependencies:\n      \"@babel/parser\" \"^7.12.0\"\n      \"@babel/types\" \"^7.12.0\"\n      \"@vue/compiler-core\" \"3.0.4\"\n      \"@vue/compiler-dom\" \"3.0.4\"\n      \"@vue/compiler-ssr\" \"3.0.4\"\n      \"@vue/shared\" \"3.0.4\"\n      consolidate \"^0.16.0\"\n      estree-walker \"^2.0.1\"\n      hash-sum \"^2.0.0\"\n      lru-cache \"^5.1.1\"\n      magic-string \"^0.25.7\"\n      merge-source-map \"^1.1.0\"\n      postcss \"^7.0.32\"\n      postcss-modules \"^3.2.2\"\n      postcss-selector-parser \"^6.0.4\"\n      source-map \"^0.6.1\"\n  \n  \"@vue/compiler-ssr@3.0.4\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.0.4.tgz#ccbd1f55734d51d1402fad825ac102002a7a07c7\"\n    integrity sha512-4aYWQEL4+LS4+D44K9Z7xMOWMEjBsz4Li9nMcj2rxRQ35ewK6uFPodvs6ORP60iBDSkwUFZoldFlNemQlu1BFw==\n    dependencies:\n      \"@vue/compiler-dom\" \"3.0.4\"\n      \"@vue/shared\" \"3.0.4\"\n  \n  \"@vue/reactivity@3.0.4\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.4.tgz#b6599dd8271a745960a03f05744ccf7991ba5d8d\"\n    integrity sha512-AFTABrLhUYZY2on3ea9FxeXal7w3f6qIp9gT+/oG93H7dFTL5LvVnxygCopv7tvkIl/GSGQb/yK1D1gmXx1Pww==\n    dependencies:\n      \"@vue/shared\" \"3.0.4\"\n  \n  \"@vue/runtime-core@3.0.4\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.4.tgz#a5b9a001560b1fd8c01a43f68b764c555de7836c\"\n    integrity sha512-qH9e4kqU7b3u1JewvLmGmoAGY+mnuBqz7aEKb2mhpEgwa1yFv496BRuUfMXXMCix3+TndUVMJ8jt41FSdNppwg==\n    dependencies:\n      \"@vue/reactivity\" \"3.0.4\"\n      \"@vue/shared\" \"3.0.4\"\n  \n  \"@vue/runtime-dom@3.0.4\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.4.tgz#6f81aec545f24511d2c28a315aa3391420b69c68\"\n    integrity sha512-BGIoiTSESzWUhN0Ofi2X/q+HN8f6IUFmUEyyBGKbmx7DTAJNZhFfjqsepfXQrM5IGeTfJLB1ZEVyroDQJNXq3g==\n    dependencies:\n      \"@vue/runtime-core\" \"3.0.4\"\n      \"@vue/shared\" \"3.0.4\"\n      csstype \"^2.6.8\"\n  \n  \"@vue/shared@3.0.4\":\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.4.tgz#6dc50f593bdfdeaa6183d1dbc15e2d45e7c6b8b3\"\n    integrity sha512-Swfbz31AaMX48CpFl+YmIrqOH9MgJMTrltG9e26A4ZxYx9LjGuMV+41WnxFzS3Bc9nbrc6sDPM37G6nIT8NJSg==\n  \n  \"@webassemblyjs/ast@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964\"\n    integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==\n    dependencies:\n      \"@webassemblyjs/helper-module-context\" \"1.9.0\"\n      \"@webassemblyjs/helper-wasm-bytecode\" \"1.9.0\"\n      \"@webassemblyjs/wast-parser\" \"1.9.0\"\n  \n  \"@webassemblyjs/floating-point-hex-parser@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4\"\n    integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==\n  \n  \"@webassemblyjs/helper-api-error@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2\"\n    integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==\n  \n  \"@webassemblyjs/helper-buffer@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00\"\n    integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==\n  \n  \"@webassemblyjs/helper-code-frame@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27\"\n    integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==\n    dependencies:\n      \"@webassemblyjs/wast-printer\" \"1.9.0\"\n  \n  \"@webassemblyjs/helper-fsm@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8\"\n    integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==\n  \n  \"@webassemblyjs/helper-module-context@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07\"\n    integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n  \n  \"@webassemblyjs/helper-wasm-bytecode@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790\"\n    integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==\n  \n  \"@webassemblyjs/helper-wasm-section@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346\"\n    integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/helper-buffer\" \"1.9.0\"\n      \"@webassemblyjs/helper-wasm-bytecode\" \"1.9.0\"\n      \"@webassemblyjs/wasm-gen\" \"1.9.0\"\n  \n  \"@webassemblyjs/ieee754@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4\"\n    integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==\n    dependencies:\n      \"@xtuc/ieee754\" \"^1.2.0\"\n  \n  \"@webassemblyjs/leb128@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95\"\n    integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==\n    dependencies:\n      \"@xtuc/long\" \"4.2.2\"\n  \n  \"@webassemblyjs/utf8@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab\"\n    integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==\n  \n  \"@webassemblyjs/wasm-edit@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf\"\n    integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/helper-buffer\" \"1.9.0\"\n      \"@webassemblyjs/helper-wasm-bytecode\" \"1.9.0\"\n      \"@webassemblyjs/helper-wasm-section\" \"1.9.0\"\n      \"@webassemblyjs/wasm-gen\" \"1.9.0\"\n      \"@webassemblyjs/wasm-opt\" \"1.9.0\"\n      \"@webassemblyjs/wasm-parser\" \"1.9.0\"\n      \"@webassemblyjs/wast-printer\" \"1.9.0\"\n  \n  \"@webassemblyjs/wasm-gen@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c\"\n    integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/helper-wasm-bytecode\" \"1.9.0\"\n      \"@webassemblyjs/ieee754\" \"1.9.0\"\n      \"@webassemblyjs/leb128\" \"1.9.0\"\n      \"@webassemblyjs/utf8\" \"1.9.0\"\n  \n  \"@webassemblyjs/wasm-opt@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61\"\n    integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/helper-buffer\" \"1.9.0\"\n      \"@webassemblyjs/wasm-gen\" \"1.9.0\"\n      \"@webassemblyjs/wasm-parser\" \"1.9.0\"\n  \n  \"@webassemblyjs/wasm-parser@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e\"\n    integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/helper-api-error\" \"1.9.0\"\n      \"@webassemblyjs/helper-wasm-bytecode\" \"1.9.0\"\n      \"@webassemblyjs/ieee754\" \"1.9.0\"\n      \"@webassemblyjs/leb128\" \"1.9.0\"\n      \"@webassemblyjs/utf8\" \"1.9.0\"\n  \n  \"@webassemblyjs/wast-parser@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914\"\n    integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/floating-point-hex-parser\" \"1.9.0\"\n      \"@webassemblyjs/helper-api-error\" \"1.9.0\"\n      \"@webassemblyjs/helper-code-frame\" \"1.9.0\"\n      \"@webassemblyjs/helper-fsm\" \"1.9.0\"\n      \"@xtuc/long\" \"4.2.2\"\n  \n  \"@webassemblyjs/wast-printer@1.9.0\":\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899\"\n    integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/wast-parser\" \"1.9.0\"\n      \"@xtuc/long\" \"4.2.2\"\n  \n  \"@xtuc/ieee754@^1.2.0\":\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790\"\n    integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==\n  \n  \"@xtuc/long@4.2.2\":\n    version \"4.2.2\"\n    resolved \"https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d\"\n    integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==\n  \n  abab@^2.0.3:\n    version \"2.0.5\"\n    resolved \"https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a\"\n    integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==\n  \n  abort-controller@3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392\"\n    integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==\n    dependencies:\n      event-target-shim \"^5.0.0\"\n  \n  accepts@^1.3.5:\n    version \"1.3.7\"\n    resolved \"https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd\"\n    integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==\n    dependencies:\n      mime-types \"~2.1.24\"\n      negotiator \"0.6.2\"\n  \n  acorn-class-fields@^0.2.1:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/acorn-class-fields/-/acorn-class-fields-0.2.1.tgz#748058bceeb0ef25164bbc671993984083f5a085\"\n    integrity sha512-US/kqTe0H8M4LN9izoL+eykVAitE68YMuYZ3sHn3i1fjniqR7oQ3SPvuMK/VT1kjOQHrx5Q88b90TtOKgAv2hQ==\n  \n  acorn-dynamic-import@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948\"\n    integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==\n  \n  acorn-globals@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45\"\n    integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==\n    dependencies:\n      acorn \"^7.1.1\"\n      acorn-walk \"^7.1.1\"\n  \n  acorn-jsx@^5.0.1:\n    version \"5.3.1\"\n    resolved \"https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b\"\n    integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==\n  \n  acorn-node@^1.6.1:\n    version \"1.8.2\"\n    resolved \"https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8\"\n    integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==\n    dependencies:\n      acorn \"^7.0.0\"\n      acorn-walk \"^7.0.0\"\n      xtend \"^4.0.2\"\n  \n  acorn-walk@^7.0.0, acorn-walk@^7.1.1:\n    version \"7.2.0\"\n    resolved \"https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc\"\n    integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==\n  \n  acorn@^6.1.1, acorn@^6.4.1:\n    version \"6.4.2\"\n    resolved \"https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6\"\n    integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==\n  \n  acorn@^7.0.0, acorn@^7.1.1:\n    version \"7.4.1\"\n    resolved \"https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa\"\n    integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==\n  \n  address@^1.0.1:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6\"\n    integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==\n  \n  adjust-sourcemap-loader@3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e\"\n    integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==\n    dependencies:\n      loader-utils \"^2.0.0\"\n      regex-parser \"^2.2.11\"\n  \n  agent-base@6:\n    version \"6.0.2\"\n    resolved \"https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77\"\n    integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==\n    dependencies:\n      debug \"4\"\n  \n  aggregate-error@^3.0.0, aggregate-error@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a\"\n    integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==\n    dependencies:\n      clean-stack \"^2.0.0\"\n      indent-string \"^4.0.0\"\n  \n  airbnb-prop-types@^2.16.0:\n    version \"2.16.0\"\n    resolved \"https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2\"\n    integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==\n    dependencies:\n      array.prototype.find \"^2.1.1\"\n      function.prototype.name \"^1.1.2\"\n      is-regex \"^1.1.0\"\n      object-is \"^1.1.2\"\n      object.assign \"^4.1.0\"\n      object.entries \"^1.1.2\"\n      prop-types \"^15.7.2\"\n      prop-types-exact \"^1.2.0\"\n      react-is \"^16.13.1\"\n  \n  ajv-errors@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d\"\n    integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==\n  \n  ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:\n    version \"3.5.2\"\n    resolved \"https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d\"\n    integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==\n  \n  ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:\n    version \"6.12.6\"\n    resolved \"https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4\"\n    integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==\n    dependencies:\n      fast-deep-equal \"^3.1.1\"\n      fast-json-stable-stringify \"^2.0.0\"\n      json-schema-traverse \"^0.4.1\"\n      uri-js \"^4.2.2\"\n  \n  anser@1.4.9:\n    version \"1.4.9\"\n    resolved \"https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760\"\n    integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==\n  \n  ansi-align@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f\"\n    integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=\n    dependencies:\n      string-width \"^2.0.0\"\n  \n  ansi-colors@^4.1.1:\n    version \"4.1.1\"\n    resolved \"https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348\"\n    integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==\n  \n  ansi-escapes@^4.2.1:\n    version \"4.3.1\"\n    resolved \"https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61\"\n    integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==\n    dependencies:\n      type-fest \"^0.11.0\"\n  \n  ansi-regex@^2.0.0:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df\"\n    integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=\n  \n  ansi-regex@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998\"\n    integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=\n  \n  ansi-regex@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75\"\n    integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==\n  \n  ansi-split@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/ansi-split/-/ansi-split-1.0.1.tgz#3cab03754ab6f1d64d4ad13cd10f22fc36db4a45\"\n    integrity sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==\n    dependencies:\n      ansi-regex \"^3.0.0\"\n  \n  ansi-styles@^3.2.1:\n    version \"3.2.1\"\n    resolved \"https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d\"\n    integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==\n    dependencies:\n      color-convert \"^1.9.0\"\n  \n  ansi-styles@^4.0.0, ansi-styles@^4.1.0:\n    version \"4.3.0\"\n    resolved \"https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937\"\n    integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\n    dependencies:\n      color-convert \"^2.0.1\"\n  \n  any-promise@^1.0.0, any-promise@^1.1.0:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f\"\n    integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=\n  \n  anymatch@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb\"\n    integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==\n    dependencies:\n      micromatch \"^3.1.4\"\n      normalize-path \"^2.1.1\"\n  \n  anymatch@^3.0.3, anymatch@~3.1.1:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142\"\n    integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==\n    dependencies:\n      normalize-path \"^3.0.0\"\n      picomatch \"^2.0.4\"\n  \n  aproba@^1.0.3, aproba@^1.1.1:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a\"\n    integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==\n  \n  are-we-there-yet@~1.1.2:\n    version \"1.1.5\"\n    resolved \"https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21\"\n    integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==\n    dependencies:\n      delegates \"^1.0.0\"\n      readable-stream \"^2.0.6\"\n  \n  argparse@^1.0.7:\n    version \"1.0.10\"\n    resolved \"https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911\"\n    integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==\n    dependencies:\n      sprintf-js \"~1.0.2\"\n  \n  aria-hidden@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.1.1.tgz#0c356026d3f65e2bd487a3adb73f0c586be2c37e\"\n    integrity sha512-M7zYxCcOQPOaxGHoMTKUFD2UNcVFTp9ycrdStLcTPLf8zgTXC3+YcGe+UuzSh5X1BX/0/PtS8xTNy4xyH/6xtw==\n    dependencies:\n      tslib \"^1.0.0\"\n  \n  arity-n@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745\"\n    integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U=\n  \n  arr-diff@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520\"\n    integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=\n  \n  arr-flatten@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1\"\n    integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==\n  \n  arr-union@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4\"\n    integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=\n  \n  array-flatten@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/array-flatten/-/array-flatten-3.0.0.tgz#6428ca2ee52c7b823192ec600fa3ed2f157cd541\"\n    integrity sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==\n  \n  array-includes@^3.1.1:\n    version \"3.1.2\"\n    resolved \"https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8\"\n    integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n      es-abstract \"^1.18.0-next.1\"\n      get-intrinsic \"^1.0.1\"\n      is-string \"^1.0.5\"\n  \n  array-union@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d\"\n    integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==\n  \n  array-unique@^0.3.2:\n    version \"0.3.2\"\n    resolved \"https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428\"\n    integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=\n  \n  array.prototype.find@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c\"\n    integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==\n    dependencies:\n      define-properties \"^1.1.3\"\n      es-abstract \"^1.17.4\"\n  \n  arrify@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d\"\n    integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=\n  \n  asn1.js@^5.2.0:\n    version \"5.4.1\"\n    resolved \"https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07\"\n    integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==\n    dependencies:\n      bn.js \"^4.0.0\"\n      inherits \"^2.0.1\"\n      minimalistic-assert \"^1.0.0\"\n      safer-buffer \"^2.1.0\"\n  \n  asn1@~0.2.3:\n    version \"0.2.4\"\n    resolved \"https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136\"\n    integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==\n    dependencies:\n      safer-buffer \"~2.1.0\"\n  \n  assert-plus@1.0.0, assert-plus@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525\"\n    integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=\n  \n  assert@^1.1.1, assert@^1.4.1:\n    version \"1.5.0\"\n    resolved \"https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb\"\n    integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==\n    dependencies:\n      object-assign \"^4.1.1\"\n      util \"0.10.3\"\n  \n  assign-symbols@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367\"\n    integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=\n  \n  ast-types@0.13.2:\n    version \"0.13.2\"\n    resolved \"https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48\"\n    integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==\n  \n  async-each@^1.0.1:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf\"\n    integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==\n  \n  asynckit@^0.4.0:\n    version \"0.4.0\"\n    resolved \"https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79\"\n    integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=\n  \n  at-least-node@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2\"\n    integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==\n  \n  atob@^2.1.2:\n    version \"2.1.2\"\n    resolved \"https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9\"\n    integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==\n  \n  autoprefixer@^9.4.5:\n    version \"9.8.6\"\n    resolved \"https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f\"\n    integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==\n    dependencies:\n      browserslist \"^4.12.0\"\n      caniuse-lite \"^1.0.30001109\"\n      colorette \"^1.2.1\"\n      normalize-range \"^0.1.2\"\n      num2fraction \"^1.2.2\"\n      postcss \"^7.0.32\"\n      postcss-value-parser \"^4.1.0\"\n  \n  await-to-js@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/await-to-js/-/await-to-js-2.1.1.tgz#c2093cd5a386f2bb945d79b292817bbc3f41b31b\"\n    integrity sha512-CHBC6gQGCIzjZ09tJ+XmpQoZOn4GdWePB4qUweCaKNJ0D3f115YdhmYVTZ4rMVpiJ3cFzZcTYK1VMYEICV4YXw==\n  \n  aws-sign2@~0.7.0:\n    version \"0.7.0\"\n    resolved \"https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8\"\n    integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=\n  \n  aws4@^1.8.0:\n    version \"1.11.0\"\n    resolved \"https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59\"\n    integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==\n  \n  babel-jest@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056\"\n    integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==\n    dependencies:\n      \"@jest/transform\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/babel__core\" \"^7.1.7\"\n      babel-plugin-istanbul \"^6.0.0\"\n      babel-preset-jest \"^26.6.2\"\n      chalk \"^4.0.0\"\n      graceful-fs \"^4.2.4\"\n      slash \"^3.0.0\"\n  \n  babel-plugin-apply-mdx-type-prop@1.6.22:\n    version \"1.6.22\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b\"\n    integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"7.10.4\"\n      \"@mdx-js/util\" \"1.6.22\"\n  \n  babel-plugin-extract-import-names@1.6.22:\n    version \"1.6.22\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc\"\n    integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"7.10.4\"\n  \n  babel-plugin-istanbul@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765\"\n    integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==\n    dependencies:\n      \"@babel/helper-plugin-utils\" \"^7.0.0\"\n      \"@istanbuljs/load-nyc-config\" \"^1.0.0\"\n      \"@istanbuljs/schema\" \"^0.1.2\"\n      istanbul-lib-instrument \"^4.0.0\"\n      test-exclude \"^6.0.0\"\n  \n  babel-plugin-jest-hoist@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d\"\n    integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==\n    dependencies:\n      \"@babel/template\" \"^7.3.3\"\n      \"@babel/types\" \"^7.3.3\"\n      \"@types/babel__core\" \"^7.0.0\"\n      \"@types/babel__traverse\" \"^7.0.6\"\n  \n  babel-plugin-macros@^2.6.1:\n    version \"2.8.0\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138\"\n    integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==\n    dependencies:\n      \"@babel/runtime\" \"^7.7.2\"\n      cosmiconfig \"^6.0.0\"\n      resolve \"^1.12.0\"\n  \n  babel-plugin-syntax-jsx@6.18.0:\n    version \"6.18.0\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946\"\n    integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=\n  \n  babel-plugin-transform-define@2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-transform-define/-/babel-plugin-transform-define-2.0.0.tgz#79c3536635f899aabaf830b194b25519465675a4\"\n    integrity sha512-0dv5RNRUlUKxGYIIErl01lpvi8b7W2R04Qcl1mCj70ahwZcgiklfXnFlh4FGnRh6aayCfSZKdhiMryVzcq5Dmg==\n    dependencies:\n      lodash \"^4.17.11\"\n      traverse \"0.6.6\"\n  \n  babel-plugin-transform-react-remove-prop-types@0.4.24:\n    version \"0.4.24\"\n    resolved \"https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a\"\n    integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==\n  \n  babel-preset-current-node-syntax@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77\"\n    integrity sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==\n    dependencies:\n      \"@babel/plugin-syntax-async-generators\" \"^7.8.4\"\n      \"@babel/plugin-syntax-bigint\" \"^7.8.3\"\n      \"@babel/plugin-syntax-class-properties\" \"^7.8.3\"\n      \"@babel/plugin-syntax-import-meta\" \"^7.8.3\"\n      \"@babel/plugin-syntax-json-strings\" \"^7.8.3\"\n      \"@babel/plugin-syntax-logical-assignment-operators\" \"^7.8.3\"\n      \"@babel/plugin-syntax-nullish-coalescing-operator\" \"^7.8.3\"\n      \"@babel/plugin-syntax-numeric-separator\" \"^7.8.3\"\n      \"@babel/plugin-syntax-object-rest-spread\" \"^7.8.3\"\n      \"@babel/plugin-syntax-optional-catch-binding\" \"^7.8.3\"\n      \"@babel/plugin-syntax-optional-chaining\" \"^7.8.3\"\n      \"@babel/plugin-syntax-top-level-await\" \"^7.8.3\"\n  \n  babel-preset-jest@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee\"\n    integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==\n    dependencies:\n      babel-plugin-jest-hoist \"^26.6.2\"\n      babel-preset-current-node-syntax \"^1.0.0\"\n  \n  baby-i-am-faded@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/baby-i-am-faded/-/baby-i-am-faded-2.0.1.tgz#547889ba983e4df658345950b5ae9f7c556262a3\"\n    integrity sha512-uytbjqUKImMDt/ketY89UlR17HuRBWZvx0rAAOHR5MWVifALRoVS53J0NBEbCx/qO+GPnlMpmAMBpdhB7fz25A==\n    dependencies:\n      \"@emotion/serialize\" \"^1.0.0\"\n      \"@emotion/styled\" \"^11\"\n      react-intersection-observer \"^8.31.0\"\n      react-is \"^16.13.1\"\n  \n  bail@^1.0.0:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776\"\n    integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==\n  \n  balanced-match@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767\"\n    integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=\n  \n  base64-js@^1.0.2, base64-js@^1.3.1:\n    version \"1.5.1\"\n    resolved \"https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a\"\n    integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==\n  \n  base@^0.11.1:\n    version \"0.11.2\"\n    resolved \"https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f\"\n    integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==\n    dependencies:\n      cache-base \"^1.0.1\"\n      class-utils \"^0.3.5\"\n      component-emitter \"^1.2.1\"\n      define-property \"^1.0.0\"\n      isobject \"^3.0.1\"\n      mixin-deep \"^1.2.0\"\n      pascalcase \"^0.1.1\"\n  \n  batched-promise-all@^0.9.2:\n    version \"0.9.2\"\n    resolved \"https://registry.yarnpkg.com/batched-promise-all/-/batched-promise-all-0.9.2.tgz#1253fd9511a82e07daa248ed5d282b2a1cc65a72\"\n    integrity sha512-Kx5UHdBSXFCcFfX7St/2EVyDer/jWZtjW4gnRha3Wv4lXyzVCmRR6AHmBPGguxI4XhL8Ut2nH0JXY4OEmGzR6A==\n  \n  bcrypt-pbkdf@^1.0.0:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e\"\n    integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=\n    dependencies:\n      tweetnacl \"^0.14.3\"\n  \n  better-path-resolve@1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d\"\n    integrity sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==\n    dependencies:\n      is-windows \"^1.0.0\"\n  \n  big.js@^3.1.3:\n    version \"3.2.0\"\n    resolved \"https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e\"\n    integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==\n  \n  big.js@^5.2.2:\n    version \"5.2.2\"\n    resolved \"https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328\"\n    integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==\n  \n  binary-extensions@^1.0.0:\n    version \"1.13.1\"\n    resolved \"https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65\"\n    integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==\n  \n  binary-extensions@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9\"\n    integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==\n  \n  bindings@^1.5.0:\n    version \"1.5.0\"\n    resolved \"https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df\"\n    integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==\n    dependencies:\n      file-uri-to-path \"1.0.0\"\n  \n  bl@^4.0.3:\n    version \"4.0.3\"\n    resolved \"https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489\"\n    integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==\n    dependencies:\n      buffer \"^5.5.0\"\n      inherits \"^2.0.4\"\n      readable-stream \"^3.4.0\"\n  \n  bluebird@^3.5.5, bluebird@^3.7.2:\n    version \"3.7.2\"\n    resolved \"https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f\"\n    integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==\n  \n  bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:\n    version \"4.11.9\"\n    resolved \"https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828\"\n    integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==\n  \n  bn.js@^5.0.0, bn.js@^5.1.1:\n    version \"5.1.3\"\n    resolved \"https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b\"\n    integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==\n  \n  boolbase@~1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e\"\n    integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=\n  \n  boxen@^1.3.0:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b\"\n    integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==\n    dependencies:\n      ansi-align \"^2.0.0\"\n      camelcase \"^4.0.0\"\n      chalk \"^2.0.1\"\n      cli-boxes \"^1.0.0\"\n      string-width \"^2.0.0\"\n      term-size \"^1.2.0\"\n      widest-line \"^2.0.0\"\n  \n  brace-expansion@^1.1.7:\n    version \"1.1.11\"\n    resolved \"https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd\"\n    integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==\n    dependencies:\n      balanced-match \"^1.0.0\"\n      concat-map \"0.0.1\"\n  \n  braces@^2.3.1, braces@^2.3.2:\n    version \"2.3.2\"\n    resolved \"https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729\"\n    integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==\n    dependencies:\n      arr-flatten \"^1.1.0\"\n      array-unique \"^0.3.2\"\n      extend-shallow \"^2.0.1\"\n      fill-range \"^4.0.0\"\n      isobject \"^3.0.1\"\n      repeat-element \"^1.1.2\"\n      snapdragon \"^0.8.1\"\n      snapdragon-node \"^2.0.1\"\n      split-string \"^3.0.2\"\n      to-regex \"^3.0.1\"\n  \n  braces@^3.0.1, braces@~3.0.2:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107\"\n    integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==\n    dependencies:\n      fill-range \"^7.0.1\"\n  \n  breakword@^1.0.5:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/breakword/-/breakword-1.0.5.tgz#fd420a417f55016736b5b615161cae1c8f819810\"\n    integrity sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==\n    dependencies:\n      wcwidth \"^1.0.1\"\n  \n  brorand@^1.0.1:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f\"\n    integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=\n  \n  brotli-size@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/brotli-size/-/brotli-size-4.0.0.tgz#a05ee3faad3c0e700a2f2da826ba6b4d76e69e5e\"\n    integrity sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==\n    dependencies:\n      duplexer \"0.1.1\"\n  \n  browser-process-hrtime@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626\"\n    integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==\n  \n  browserify-aes@^1.0.0, browserify-aes@^1.0.4:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48\"\n    integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==\n    dependencies:\n      buffer-xor \"^1.0.3\"\n      cipher-base \"^1.0.0\"\n      create-hash \"^1.1.0\"\n      evp_bytestokey \"^1.0.3\"\n      inherits \"^2.0.1\"\n      safe-buffer \"^5.0.1\"\n  \n  browserify-cipher@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0\"\n    integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==\n    dependencies:\n      browserify-aes \"^1.0.4\"\n      browserify-des \"^1.0.0\"\n      evp_bytestokey \"^1.0.0\"\n  \n  browserify-des@^1.0.0:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c\"\n    integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==\n    dependencies:\n      cipher-base \"^1.0.1\"\n      des.js \"^1.0.0\"\n      inherits \"^2.0.1\"\n      safe-buffer \"^5.1.2\"\n  \n  browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d\"\n    integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==\n    dependencies:\n      bn.js \"^5.0.0\"\n      randombytes \"^2.0.1\"\n  \n  browserify-sign@^4.0.0:\n    version \"4.2.1\"\n    resolved \"https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3\"\n    integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==\n    dependencies:\n      bn.js \"^5.1.1\"\n      browserify-rsa \"^4.0.1\"\n      create-hash \"^1.2.0\"\n      create-hmac \"^1.1.7\"\n      elliptic \"^6.5.3\"\n      inherits \"^2.0.4\"\n      parse-asn1 \"^5.1.5\"\n      readable-stream \"^3.6.0\"\n      safe-buffer \"^5.2.0\"\n  \n  browserify-zlib@^0.2.0:\n    version \"0.2.0\"\n    resolved \"https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f\"\n    integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==\n    dependencies:\n      pako \"~1.0.5\"\n  \n  browserslist@4.14.6:\n    version \"4.14.6\"\n    resolved \"https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.6.tgz#97702a9c212e0c6b6afefad913d3a1538e348457\"\n    integrity sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A==\n    dependencies:\n      caniuse-lite \"^1.0.30001154\"\n      electron-to-chromium \"^1.3.585\"\n      escalade \"^3.1.1\"\n      node-releases \"^1.1.65\"\n  \n  browserslist@^4.12.0:\n    version \"4.16.1\"\n    resolved \"https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766\"\n    integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==\n    dependencies:\n      caniuse-lite \"^1.0.30001173\"\n      colorette \"^1.2.1\"\n      electron-to-chromium \"^1.3.634\"\n      escalade \"^3.1.1\"\n      node-releases \"^1.1.69\"\n  \n  bser@2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05\"\n    integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==\n    dependencies:\n      node-int64 \"^0.4.0\"\n  \n  buble@0.19.6:\n    version \"0.19.6\"\n    resolved \"https://registry.yarnpkg.com/buble/-/buble-0.19.6.tgz#915909b6bd5b11ee03b1c885ec914a8b974d34d3\"\n    integrity sha512-9kViM6nJA1Q548Jrd06x0geh+BG2ru2+RMDkIHHgJY/8AcyCs34lTHwra9BX7YdPrZXd5aarkpr/SY8bmPgPdg==\n    dependencies:\n      chalk \"^2.4.1\"\n      magic-string \"^0.25.1\"\n      minimist \"^1.2.0\"\n      os-homedir \"^1.0.1\"\n      regexpu-core \"^4.2.0\"\n      vlq \"^1.0.0\"\n  \n  buffer-from@^1.0.0:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef\"\n    integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==\n  \n  buffer-xor@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9\"\n    integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=\n  \n  buffer@5.6.0:\n    version \"5.6.0\"\n    resolved \"https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786\"\n    integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==\n    dependencies:\n      base64-js \"^1.0.2\"\n      ieee754 \"^1.1.4\"\n  \n  buffer@^4.3.0:\n    version \"4.9.2\"\n    resolved \"https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8\"\n    integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==\n    dependencies:\n      base64-js \"^1.0.2\"\n      ieee754 \"^1.1.4\"\n      isarray \"^1.0.0\"\n  \n  buffer@^5.5.0:\n    version \"5.7.1\"\n    resolved \"https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0\"\n    integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==\n    dependencies:\n      base64-js \"^1.3.1\"\n      ieee754 \"^1.1.13\"\n  \n  builtin-modules@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f\"\n    integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=\n  \n  builtin-modules@^3.0.0, builtin-modules@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484\"\n    integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==\n  \n  builtin-status-codes@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8\"\n    integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=\n  \n  builtins@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88\"\n    integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og=\n  \n  bytes@3.1.0, bytes@^3.0.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6\"\n    integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==\n  \n  cac@^6.6.1:\n    version \"6.7.1\"\n    resolved \"https://registry.yarnpkg.com/cac/-/cac-6.7.1.tgz#0609d28a31d887746de4b66a15e3914f106f880c\"\n    integrity sha512-LfGt47+ugCY65W4yUEyxnZKd/tJSBJD/gUAxQGiQjH7yqdhbaX2XN0Rli4+0W0DJiDONmYeh0TlJxMtXGZspIg==\n  \n  cacache@^12.0.2:\n    version \"12.0.4\"\n    resolved \"https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c\"\n    integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==\n    dependencies:\n      bluebird \"^3.5.5\"\n      chownr \"^1.1.1\"\n      figgy-pudding \"^3.5.1\"\n      glob \"^7.1.4\"\n      graceful-fs \"^4.1.15\"\n      infer-owner \"^1.0.3\"\n      lru-cache \"^5.1.1\"\n      mississippi \"^3.0.0\"\n      mkdirp \"^0.5.1\"\n      move-concurrently \"^1.0.1\"\n      promise-inflight \"^1.0.1\"\n      rimraf \"^2.6.3\"\n      ssri \"^6.0.1\"\n      unique-filename \"^1.1.1\"\n      y18n \"^4.0.0\"\n  \n  cacache@^15.0.0:\n    version \"15.0.5\"\n    resolved \"https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0\"\n    integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==\n    dependencies:\n      \"@npmcli/move-file\" \"^1.0.1\"\n      chownr \"^2.0.0\"\n      fs-minipass \"^2.0.0\"\n      glob \"^7.1.4\"\n      infer-owner \"^1.0.4\"\n      lru-cache \"^6.0.0\"\n      minipass \"^3.1.1\"\n      minipass-collect \"^1.0.2\"\n      minipass-flush \"^1.0.5\"\n      minipass-pipeline \"^1.2.2\"\n      mkdirp \"^1.0.3\"\n      p-map \"^4.0.0\"\n      promise-inflight \"^1.0.1\"\n      rimraf \"^3.0.2\"\n      ssri \"^8.0.0\"\n      tar \"^6.0.2\"\n      unique-filename \"^1.1.1\"\n  \n  cache-base@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2\"\n    integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==\n    dependencies:\n      collection-visit \"^1.0.0\"\n      component-emitter \"^1.2.1\"\n      get-value \"^2.0.6\"\n      has-value \"^1.0.0\"\n      isobject \"^3.0.1\"\n      set-value \"^2.0.0\"\n      to-object-path \"^0.3.0\"\n      union-value \"^1.0.0\"\n      unset-value \"^1.0.0\"\n  \n  cache-content-type@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c\"\n    integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==\n    dependencies:\n      mime-types \"^2.1.18\"\n      ylru \"^1.2.0\"\n  \n  cacheable-lookup@^5.0.3:\n    version \"5.0.4\"\n    resolved \"https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005\"\n    integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==\n  \n  cacheable-request@^7.0.1:\n    version \"7.0.1\"\n    resolved \"https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58\"\n    integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==\n    dependencies:\n      clone-response \"^1.0.2\"\n      get-stream \"^5.1.0\"\n      http-cache-semantics \"^4.0.0\"\n      keyv \"^4.0.0\"\n      lowercase-keys \"^2.0.0\"\n      normalize-url \"^4.1.0\"\n      responselike \"^2.0.0\"\n  \n  cachedir@^2.3.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8\"\n    integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==\n  \n  call-bind@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce\"\n    integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==\n    dependencies:\n      function-bind \"^1.1.1\"\n      get-intrinsic \"^1.0.0\"\n  \n  callsites@^3.0.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73\"\n    integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==\n  \n  camelcase-css@2.0.1, camelcase-css@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5\"\n    integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==\n  \n  camelcase-keys@^6.2.2:\n    version \"6.2.2\"\n    resolved \"https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0\"\n    integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==\n    dependencies:\n      camelcase \"^5.3.1\"\n      map-obj \"^4.0.0\"\n      quick-lru \"^4.0.1\"\n  \n  camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1:\n    version \"5.3.1\"\n    resolved \"https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320\"\n    integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==\n  \n  camelcase@^4.0.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd\"\n    integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=\n  \n  camelcase@^6.0.0:\n    version \"6.2.0\"\n    resolved \"https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809\"\n    integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==\n  \n  caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001154, caniuse-lite@^1.0.30001173:\n    version \"1.0.30001173\"\n    resolved \"https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56\"\n    integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw==\n  \n  capture-exit@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4\"\n    integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==\n    dependencies:\n      rsvp \"^4.8.4\"\n  \n  caseless@~0.12.0:\n    version \"0.12.0\"\n    resolved \"https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc\"\n    integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=\n  \n  ccount@^1.0.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043\"\n    integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==\n  \n  chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:\n    version \"2.4.2\"\n    resolved \"https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424\"\n    integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==\n    dependencies:\n      ansi-styles \"^3.2.1\"\n      escape-string-regexp \"^1.0.5\"\n      supports-color \"^5.3.0\"\n  \n  chalk@4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72\"\n    integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==\n    dependencies:\n      ansi-styles \"^4.1.0\"\n      supports-color \"^7.1.0\"\n  \n  chalk@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4\"\n    integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==\n    dependencies:\n      ansi-styles \"^4.1.0\"\n      supports-color \"^7.1.0\"\n  \n  \"chalk@^3.0.0 || ^4.0.0\", chalk@^4.0.0, chalk@^4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a\"\n    integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==\n    dependencies:\n      ansi-styles \"^4.1.0\"\n      supports-color \"^7.1.0\"\n  \n  char-regex@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf\"\n    integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==\n  \n  character-entities-html4@^1.0.0:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125\"\n    integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==\n  \n  character-entities-legacy@^1.0.0:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1\"\n    integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==\n  \n  character-entities@^1.0.0:\n    version \"1.2.4\"\n    resolved \"https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b\"\n    integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==\n  \n  character-reference-invalid@^1.0.0:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560\"\n    integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==\n  \n  chardet@^0.7.0:\n    version \"0.7.0\"\n    resolved \"https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e\"\n    integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==\n  \n  cheerio@^1.0.0-rc.3:\n    version \"1.0.0-rc.3\"\n    resolved \"https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6\"\n    integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==\n    dependencies:\n      css-select \"~1.2.0\"\n      dom-serializer \"~0.1.1\"\n      entities \"~1.1.1\"\n      htmlparser2 \"^3.9.1\"\n      lodash \"^4.15.0\"\n      parse5 \"^3.0.1\"\n  \n  chokidar@*, chokidar@3.4.3, chokidar@^3.4.0, chokidar@^3.4.2:\n    version \"3.4.3\"\n    resolved \"https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b\"\n    integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==\n    dependencies:\n      anymatch \"~3.1.1\"\n      braces \"~3.0.2\"\n      glob-parent \"~5.1.0\"\n      is-binary-path \"~2.1.0\"\n      is-glob \"~4.0.1\"\n      normalize-path \"~3.0.0\"\n      readdirp \"~3.5.0\"\n    optionalDependencies:\n      fsevents \"~2.1.2\"\n  \n  chokidar@^2.1.8:\n    version \"2.1.8\"\n    resolved \"https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917\"\n    integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==\n    dependencies:\n      anymatch \"^2.0.0\"\n      async-each \"^1.0.1\"\n      braces \"^2.3.2\"\n      glob-parent \"^3.1.0\"\n      inherits \"^2.0.3\"\n      is-binary-path \"^1.0.0\"\n      is-glob \"^4.0.0\"\n      normalize-path \"^3.0.0\"\n      path-is-absolute \"^1.0.0\"\n      readdirp \"^2.2.1\"\n      upath \"^1.1.1\"\n    optionalDependencies:\n      fsevents \"^1.2.7\"\n  \n  chokidar@^3.4.1:\n    version \"3.5.0\"\n    resolved \"https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.0.tgz#458a4816a415e9d3b3caa4faec2b96a6935a9e65\"\n    integrity sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==\n    dependencies:\n      anymatch \"~3.1.1\"\n      braces \"~3.0.2\"\n      glob-parent \"~5.1.0\"\n      is-binary-path \"~2.1.0\"\n      is-glob \"~4.0.1\"\n      normalize-path \"~3.0.0\"\n      readdirp \"~3.5.0\"\n    optionalDependencies:\n      fsevents \"~2.3.1\"\n  \n  chokidar@^3.4.3:\n    version \"3.5.1\"\n    resolved \"https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a\"\n    integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==\n    dependencies:\n      anymatch \"~3.1.1\"\n      braces \"~3.0.2\"\n      glob-parent \"~5.1.0\"\n      is-binary-path \"~2.1.0\"\n      is-glob \"~4.0.1\"\n      normalize-path \"~3.0.0\"\n      readdirp \"~3.5.0\"\n    optionalDependencies:\n      fsevents \"~2.3.1\"\n  \n  chownr@^1.1.1:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b\"\n    integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==\n  \n  chownr@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece\"\n    integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==\n  \n  chrome-trace-event@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4\"\n    integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==\n    dependencies:\n      tslib \"^1.9.0\"\n  \n  ci-info@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46\"\n    integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==\n  \n  cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de\"\n    integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==\n    dependencies:\n      inherits \"^2.0.1\"\n      safe-buffer \"^5.0.1\"\n  \n  cjs-module-lexer@^0.6.0:\n    version \"0.6.0\"\n    resolved \"https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f\"\n    integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==\n  \n  cjs-module-lexer@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.0.0.tgz#c125ff0f4ab2c898dda909352f254d55e2213261\"\n    integrity sha512-bLSEjEwg4knnuXt7LIWegvgTOClk6ZonZY6g4CFGBly1EjRqVjTjI8Dwnb/dsu1PwJjYBKxnguE5bRTdk+bFOA==\n  \n  class-utils@^0.3.5:\n    version \"0.3.6\"\n    resolved \"https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463\"\n    integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==\n    dependencies:\n      arr-union \"^3.1.0\"\n      define-property \"^0.2.5\"\n      isobject \"^3.0.0\"\n      static-extend \"^0.1.1\"\n  \n  classnames@2.2.6:\n    version \"2.2.6\"\n    resolved \"https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce\"\n    integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==\n  \n  clean-css@^4.2.3:\n    version \"4.2.3\"\n    resolved \"https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78\"\n    integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==\n    dependencies:\n      source-map \"~0.6.0\"\n  \n  clean-stack@^2.0.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b\"\n    integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==\n  \n  cli-boxes@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143\"\n    integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM=\n  \n  cli-cursor@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307\"\n    integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==\n    dependencies:\n      restore-cursor \"^3.1.0\"\n  \n  cli-spinners@^2.4.0, cli-spinners@^2.5.0:\n    version \"2.5.0\"\n    resolved \"https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047\"\n    integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==\n  \n  cliui@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1\"\n    integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==\n    dependencies:\n      string-width \"^4.2.0\"\n      strip-ansi \"^6.0.0\"\n      wrap-ansi \"^6.2.0\"\n  \n  cliui@^7.0.2:\n    version \"7.0.4\"\n    resolved \"https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f\"\n    integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==\n    dependencies:\n      string-width \"^4.2.0\"\n      strip-ansi \"^6.0.0\"\n      wrap-ansi \"^7.0.0\"\n  \n  clone-response@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b\"\n    integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=\n    dependencies:\n      mimic-response \"^1.0.0\"\n  \n  clone@^1.0.2:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e\"\n    integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=\n  \n  co-body@^5.1.1:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124\"\n    integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==\n    dependencies:\n      inflation \"^2.0.0\"\n      qs \"^6.4.0\"\n      raw-body \"^2.2.0\"\n      type-is \"^1.6.14\"\n  \n  co@^4.6.0:\n    version \"4.6.0\"\n    resolved \"https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184\"\n    integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=\n  \n  code-point-at@^1.0.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77\"\n    integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=\n  \n  collapse-white-space@^1.0.2:\n    version \"1.0.6\"\n    resolved \"https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287\"\n    integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==\n  \n  collect-v8-coverage@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59\"\n    integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==\n  \n  collection-visit@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0\"\n    integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=\n    dependencies:\n      map-visit \"^1.0.0\"\n      object-visit \"^1.0.0\"\n  \n  color-convert@^1.9.0, color-convert@^1.9.1:\n    version \"1.9.3\"\n    resolved \"https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8\"\n    integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==\n    dependencies:\n      color-name \"1.1.3\"\n  \n  color-convert@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3\"\n    integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\n    dependencies:\n      color-name \"~1.1.4\"\n  \n  color-js@^1.0.5:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/color-js/-/color-js-1.0.5.tgz#698cb41fb51d7fd745b16f9e0c939933a8c7abea\"\n    integrity sha512-KgOTVz7fupb3lOXu4lixP6BR2CdMaTtCnGmLfHZWhq8NU3MABd6U9KjWtJVuYChGS/gIaoA8LakKKQfWhQgwYQ==\n  \n  color-name@1.1.3:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25\"\n    integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=\n  \n  color-name@^1.0.0, color-name@~1.1.4:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2\"\n    integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\n  \n  color-string@^1.5.4:\n    version \"1.5.4\"\n    resolved \"https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6\"\n    integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==\n    dependencies:\n      color-name \"^1.0.0\"\n      simple-swizzle \"^0.2.2\"\n  \n  color@^3.1.2, color@^3.1.3:\n    version \"3.1.3\"\n    resolved \"https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e\"\n    integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==\n    dependencies:\n      color-convert \"^1.9.1\"\n      color-string \"^1.5.4\"\n  \n  colorette@^1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b\"\n    integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==\n  \n  combined-stream@^1.0.6, combined-stream@~1.0.6:\n    version \"1.0.8\"\n    resolved \"https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f\"\n    integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==\n    dependencies:\n      delayed-stream \"~1.0.0\"\n  \n  comma-separated-tokens@^1.0.0:\n    version \"1.0.8\"\n    resolved \"https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea\"\n    integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==\n  \n  commander@^2.20.0:\n    version \"2.20.3\"\n    resolved \"https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33\"\n    integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==\n  \n  commander@^4.0.0:\n    version \"4.1.1\"\n    resolved \"https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068\"\n    integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==\n  \n  commander@^5.0.0:\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae\"\n    integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==\n  \n  commondir@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b\"\n    integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=\n  \n  component-emitter@^1.2.1:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0\"\n    integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==\n  \n  component-props@1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/component-props/-/component-props-1.1.1.tgz#f9b7df9b9927b6e6d97c9bd272aa867670f34944\"\n    integrity sha1-+bffm5kntubZfJvScqqGdnDzSUQ=\n  \n  component-xor@0.0.4:\n    version \"0.0.4\"\n    resolved \"https://registry.yarnpkg.com/component-xor/-/component-xor-0.0.4.tgz#c55d83ccc1b94cd5089a4e93fa7891c7263e59aa\"\n    integrity sha1-xV2DzMG5TNUImk6T+niRxyY+Wao=\n  \n  compose-function@3.0.3, compose-function@^3.0.3:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f\"\n    integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=\n    dependencies:\n      arity-n \"^1.0.4\"\n  \n  compressible@^2.0.18:\n    version \"2.0.18\"\n    resolved \"https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba\"\n    integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==\n    dependencies:\n      mime-db \">= 1.43.0 < 2\"\n  \n  compute-scroll-into-view@1.0.14:\n    version \"1.0.14\"\n    resolved \"https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz#80e3ebb25d6aa89f42e533956cb4b16a04cfe759\"\n    integrity sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==\n  \n  concat-map@0.0.1:\n    version \"0.0.1\"\n    resolved \"https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b\"\n    integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=\n  \n  concat-stream@^1.5.0:\n    version \"1.6.2\"\n    resolved \"https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34\"\n    integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==\n    dependencies:\n      buffer-from \"^1.0.0\"\n      inherits \"^2.0.3\"\n      readable-stream \"^2.2.2\"\n      typedarray \"^0.0.6\"\n  \n  console-browserify@^1.1.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336\"\n    integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==\n  \n  console-control-strings@^1.0.0, console-control-strings@~1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e\"\n    integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=\n  \n  consolidate@^0.16.0:\n    version \"0.16.0\"\n    resolved \"https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16\"\n    integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==\n    dependencies:\n      bluebird \"^3.7.2\"\n  \n  constants-browserify@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75\"\n    integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=\n  \n  content-disposition@~0.5.2:\n    version \"0.5.3\"\n    resolved \"https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd\"\n    integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==\n    dependencies:\n      safe-buffer \"5.1.2\"\n  \n  content-type@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b\"\n    integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==\n  \n  convert-source-map@1.7.0, convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:\n    version \"1.7.0\"\n    resolved \"https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442\"\n    integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==\n    dependencies:\n      safe-buffer \"~5.1.1\"\n  \n  convert-source-map@^0.3.3:\n    version \"0.3.5\"\n    resolved \"https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190\"\n    integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA=\n  \n  cookies@~0.8.0:\n    version \"0.8.0\"\n    resolved \"https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90\"\n    integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==\n    dependencies:\n      depd \"~2.0.0\"\n      keygrip \"~1.1.0\"\n  \n  copy-concurrently@^1.0.0:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0\"\n    integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==\n    dependencies:\n      aproba \"^1.1.1\"\n      fs-write-stream-atomic \"^1.0.8\"\n      iferr \"^0.1.5\"\n      mkdirp \"^0.5.1\"\n      rimraf \"^2.5.4\"\n      run-queue \"^1.0.0\"\n  \n  copy-descriptor@^0.1.0:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d\"\n    integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=\n  \n  copy-to-clipboard@3.3.1:\n    version \"3.3.1\"\n    resolved \"https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae\"\n    integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==\n    dependencies:\n      toggle-selection \"^1.0.6\"\n  \n  core-js@^2.4.1:\n    version \"2.6.12\"\n    resolved \"https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec\"\n    integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==\n  \n  core-util-is@1.0.2, core-util-is@~1.0.0:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7\"\n    integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=\n  \n  cosmiconfig@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982\"\n    integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==\n    dependencies:\n      \"@types/parse-json\" \"^4.0.0\"\n      import-fresh \"^3.1.0\"\n      parse-json \"^5.0.0\"\n      path-type \"^4.0.0\"\n      yaml \"^1.7.2\"\n  \n  cosmiconfig@^7.0.0:\n    version \"7.0.0\"\n    resolved \"https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3\"\n    integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==\n    dependencies:\n      \"@types/parse-json\" \"^4.0.0\"\n      import-fresh \"^3.2.1\"\n      parse-json \"^5.0.0\"\n      path-type \"^4.0.0\"\n      yaml \"^1.10.0\"\n  \n  create-ecdh@^4.0.0:\n    version \"4.0.4\"\n    resolved \"https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e\"\n    integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==\n    dependencies:\n      bn.js \"^4.1.0\"\n      elliptic \"^6.5.3\"\n  \n  create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196\"\n    integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==\n    dependencies:\n      cipher-base \"^1.0.1\"\n      inherits \"^2.0.1\"\n      md5.js \"^1.3.4\"\n      ripemd160 \"^2.0.1\"\n      sha.js \"^2.4.0\"\n  \n  create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:\n    version \"1.1.7\"\n    resolved \"https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff\"\n    integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==\n    dependencies:\n      cipher-base \"^1.0.3\"\n      create-hash \"^1.1.0\"\n      inherits \"^2.0.1\"\n      ripemd160 \"^2.0.0\"\n      safe-buffer \"^5.0.1\"\n      sha.js \"^2.4.8\"\n  \n  cross-env@^7.0.3:\n    version \"7.0.3\"\n    resolved \"https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf\"\n    integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==\n    dependencies:\n      cross-spawn \"^7.0.1\"\n  \n  cross-fetch@3.0.6:\n    version \"3.0.6\"\n    resolved \"https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c\"\n    integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==\n    dependencies:\n      node-fetch \"2.6.1\"\n  \n  cross-spawn@^5.0.1, cross-spawn@^5.1.0:\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449\"\n    integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=\n    dependencies:\n      lru-cache \"^4.0.1\"\n      shebang-command \"^1.2.0\"\n      which \"^1.2.9\"\n  \n  cross-spawn@^6.0.0, cross-spawn@^6.0.5:\n    version \"6.0.5\"\n    resolved \"https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4\"\n    integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==\n    dependencies:\n      nice-try \"^1.0.4\"\n      path-key \"^2.0.1\"\n      semver \"^5.5.0\"\n      shebang-command \"^1.2.0\"\n      which \"^1.2.9\"\n  \n  cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3:\n    version \"7.0.3\"\n    resolved \"https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6\"\n    integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==\n    dependencies:\n      path-key \"^3.1.0\"\n      shebang-command \"^2.0.0\"\n      which \"^2.0.1\"\n  \n  crypto-browserify@3.12.0, crypto-browserify@^3.11.0:\n    version \"3.12.0\"\n    resolved \"https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec\"\n    integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==\n    dependencies:\n      browserify-cipher \"^1.0.0\"\n      browserify-sign \"^4.0.0\"\n      create-ecdh \"^4.0.0\"\n      create-hash \"^1.1.0\"\n      create-hmac \"^1.1.0\"\n      diffie-hellman \"^5.0.0\"\n      inherits \"^2.0.1\"\n      pbkdf2 \"^3.0.3\"\n      public-encrypt \"^4.0.0\"\n      randombytes \"^2.0.0\"\n      randomfill \"^1.0.3\"\n  \n  css-box-model@1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1\"\n    integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==\n    dependencies:\n      tiny-invariant \"^1.0.6\"\n  \n  css-get-unit@1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/css-get-unit/-/css-get-unit-1.0.1.tgz#e490b9e56b2cd20f903a22ccafb448382edf7976\"\n    integrity sha1-5JC55Wss0g+QOiLMr7RIOC7feXY=\n  \n  css-loader@4.3.0:\n    version \"4.3.0\"\n    resolved \"https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e\"\n    integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==\n    dependencies:\n      camelcase \"^6.0.0\"\n      cssesc \"^3.0.0\"\n      icss-utils \"^4.1.1\"\n      loader-utils \"^2.0.0\"\n      postcss \"^7.0.32\"\n      postcss-modules-extract-imports \"^2.0.0\"\n      postcss-modules-local-by-default \"^3.0.3\"\n      postcss-modules-scope \"^2.2.0\"\n      postcss-modules-values \"^3.0.0\"\n      postcss-value-parser \"^4.1.0\"\n      schema-utils \"^2.7.1\"\n      semver \"^7.3.2\"\n  \n  css-select@~1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858\"\n    integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=\n    dependencies:\n      boolbase \"~1.0.0\"\n      css-what \"2.1\"\n      domutils \"1.5.1\"\n      nth-check \"~1.0.1\"\n  \n  css-unit-converter@^1.1.1:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21\"\n    integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==\n  \n  css-what@2.1:\n    version \"2.1.3\"\n    resolved \"https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2\"\n    integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==\n  \n  css.escape@1.5.1:\n    version \"1.5.1\"\n    resolved \"https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb\"\n    integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=\n  \n  css@2.2.4, css@^2.0.0:\n    version \"2.2.4\"\n    resolved \"https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929\"\n    integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==\n    dependencies:\n      inherits \"^2.0.3\"\n      source-map \"^0.6.1\"\n      source-map-resolve \"^0.5.2\"\n      urix \"^0.1.0\"\n  \n  cssesc@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee\"\n    integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==\n  \n  cssnano-preset-simple@1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-1.2.1.tgz#8976013114b1fc4718253d30f21aaed1780fb80e\"\n    integrity sha512-B2KahOIFTV6dw5Ioy9jHshTh/vAYNnUB2enyWRgnAEg3oJBjI/035ExpePaMqS2SwpbH7gCgvQqwpMBH6hTJSw==\n    dependencies:\n      caniuse-lite \"^1.0.30001093\"\n      postcss \"^7.0.32\"\n  \n  cssnano-simple@1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-1.2.1.tgz#6de5d9dd75774bc8f31767573410a952c7dd8a12\"\n    integrity sha512-9vOyjw8Dj/T12kIOnXPZ5VnEIo6F3YMaIn0wqJXmn277R58cWpI3AvtdlCBtohX7VAUNYcyk2d0dKcXXkb5I6Q==\n    dependencies:\n      cssnano-preset-simple \"1.2.1\"\n      postcss \"^7.0.32\"\n  \n  cssom@^0.4.4:\n    version \"0.4.4\"\n    resolved \"https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10\"\n    integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==\n  \n  cssom@~0.3.6:\n    version \"0.3.8\"\n    resolved \"https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a\"\n    integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==\n  \n  cssstyle@^2.2.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852\"\n    integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==\n    dependencies:\n      cssom \"~0.3.6\"\n  \n  csstype@3.0.3:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8\"\n    integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==\n  \n  csstype@^2.6.8:\n    version \"2.6.14\"\n    resolved \"https://registry.yarnpkg.com/csstype/-/csstype-2.6.14.tgz#004822a4050345b55ad4dcc00be1d9cf2f4296de\"\n    integrity sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A==\n  \n  csstype@^3.0.2:\n    version \"3.0.5\"\n    resolved \"https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8\"\n    integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==\n  \n  csv-generate@^3.2.4:\n    version \"3.3.0\"\n    resolved \"https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.3.0.tgz#0e25658f1bb9806d94fec7b270896a35c7eedf1a\"\n    integrity sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA==\n  \n  csv-parse@^4.8.8:\n    version \"4.14.1\"\n    resolved \"https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.14.1.tgz#b6b3736508fb94682fa6d450fe1755237221d291\"\n    integrity sha512-4wmcO7QbWtDAncGFaBwlWFPhEN4Akr64IbM4zvDwEOFekI8blLc04Nw7XjQjtSNy+3AUAgBgtUa9nWo5Cq89Xg==\n  \n  csv-stringify@^5.3.6:\n    version \"5.5.3\"\n    resolved \"https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.5.3.tgz#b7a287daee7492de3722b13dccb238f2d60db522\"\n    integrity sha512-JKG8vIHpWPzdilp2SAmvjmAiIhD+XGKGdhZBGi8QIECgJAsFr7k5CmJIW2QkSxBBsctvmojM25s+UINzQ5NLTg==\n  \n  csv@^5.3.1:\n    version \"5.3.2\"\n    resolved \"https://registry.yarnpkg.com/csv/-/csv-5.3.2.tgz#50b344e25dfbb8c62684a1bcec18c22468b2161e\"\n    integrity sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==\n    dependencies:\n      csv-generate \"^3.2.4\"\n      csv-parse \"^4.8.8\"\n      csv-stringify \"^5.3.6\"\n      stream-transform \"^2.0.1\"\n  \n  cyclist@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9\"\n    integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=\n  \n  d@1, d@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a\"\n    integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==\n    dependencies:\n      es5-ext \"^0.10.50\"\n      type \"^1.0.1\"\n  \n  dashdash@^1.12.0:\n    version \"1.14.1\"\n    resolved \"https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0\"\n    integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=\n    dependencies:\n      assert-plus \"^1.0.0\"\n  \n  data-uri-to-buffer@3.0.1:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636\"\n    integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==\n  \n  data-urls@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b\"\n    integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==\n    dependencies:\n      abab \"^2.0.3\"\n      whatwg-mimetype \"^2.3.0\"\n      whatwg-url \"^8.0.0\"\n  \n  debounce@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131\"\n    integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==\n  \n  debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1:\n    version \"4.3.1\"\n    resolved \"https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee\"\n    integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==\n    dependencies:\n      ms \"2.1.2\"\n  \n  debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0:\n    version \"2.6.9\"\n    resolved \"https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f\"\n    integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==\n    dependencies:\n      ms \"2.0.0\"\n  \n  debug@^3.1.0:\n    version \"3.2.7\"\n    resolved \"https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a\"\n    integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==\n    dependencies:\n      ms \"^2.1.1\"\n  \n  debug@~3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261\"\n    integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==\n    dependencies:\n      ms \"2.0.0\"\n  \n  decamelize-keys@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9\"\n    integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=\n    dependencies:\n      decamelize \"^1.1.0\"\n      map-obj \"^1.0.0\"\n  \n  decamelize@^1.1.0, decamelize@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290\"\n    integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=\n  \n  decimal.js@^10.2.0:\n    version \"10.2.1\"\n    resolved \"https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3\"\n    integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==\n  \n  decode-uri-component@^0.2.0:\n    version \"0.2.0\"\n    resolved \"https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545\"\n    integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=\n  \n  decompress-response@^4.2.0:\n    version \"4.2.1\"\n    resolved \"https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986\"\n    integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==\n    dependencies:\n      mimic-response \"^2.0.0\"\n  \n  decompress-response@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc\"\n    integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==\n    dependencies:\n      mimic-response \"^3.1.0\"\n  \n  deep-equal@~1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5\"\n    integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=\n  \n  deep-extend@^0.6.0:\n    version \"0.6.0\"\n    resolved \"https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac\"\n    integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==\n  \n  deep-is@~0.1.3:\n    version \"0.1.3\"\n    resolved \"https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34\"\n    integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=\n  \n  deepmerge@^4.2.2:\n    version \"4.2.2\"\n    resolved \"https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955\"\n    integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==\n  \n  defaults@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d\"\n    integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=\n    dependencies:\n      clone \"^1.0.2\"\n  \n  defer-to-connect@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1\"\n    integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==\n  \n  define-properties@^1.1.3:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1\"\n    integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==\n    dependencies:\n      object-keys \"^1.0.12\"\n  \n  define-property@^0.2.5:\n    version \"0.2.5\"\n    resolved \"https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116\"\n    integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=\n    dependencies:\n      is-descriptor \"^0.1.0\"\n  \n  define-property@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6\"\n    integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=\n    dependencies:\n      is-descriptor \"^1.0.0\"\n  \n  define-property@^2.0.2:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d\"\n    integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==\n    dependencies:\n      is-descriptor \"^1.0.2\"\n      isobject \"^3.0.1\"\n  \n  defined@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693\"\n    integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=\n  \n  degit@^2.8.0:\n    version \"2.8.0\"\n    resolved \"https://registry.yarnpkg.com/degit/-/degit-2.8.0.tgz#ac0bff89987735ab19d02338fa8717d16137ea68\"\n    integrity sha512-nxQr1Ep4NSGDIqQ3HSMNgnPYaxPfPhHdrpgSNO2EczO86zN7NJJ1i/59GM25vgC45ANQUazZ/3Z+iyeZCmGwhg==\n  \n  delayed-stream@~1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619\"\n    integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=\n  \n  delegates@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a\"\n    integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=\n  \n  depd@^1.1.2, depd@~1.1.2:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9\"\n    integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=\n  \n  depd@~2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df\"\n    integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==\n  \n  deprecation@^2.0.0:\n    version \"2.3.1\"\n    resolved \"https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919\"\n    integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==\n  \n  dequal@2.0.2:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d\"\n    integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==\n  \n  des.js@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843\"\n    integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==\n    dependencies:\n      inherits \"^2.0.1\"\n      minimalistic-assert \"^1.0.0\"\n  \n  destroy@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80\"\n    integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=\n  \n  detab@2.0.4:\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43\"\n    integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==\n    dependencies:\n      repeat-string \"^1.5.4\"\n  \n  detect-indent@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd\"\n    integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==\n  \n  detect-libc@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b\"\n    integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=\n  \n  detect-newline@^3.0.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651\"\n    integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==\n  \n  detect-node-es@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.0.0.tgz#c0318b9e539a5256ca780dd9575c9345af05b8ed\"\n    integrity sha512-S4AHriUkTX9FoFvL4G8hXDcx6t3gp2HpfCza3Q0v6S78gul2hKWifLQbeW+ZF89+hSm2ZIc/uF3J97ZgytgTRg==\n  \n  detect-port@^1.3.0:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1\"\n    integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==\n    dependencies:\n      address \"^1.0.1\"\n      debug \"^2.6.0\"\n  \n  detective@^5.2.0:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b\"\n    integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==\n    dependencies:\n      acorn-node \"^1.6.1\"\n      defined \"^1.0.0\"\n      minimist \"^1.1.1\"\n  \n  diff-sequences@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1\"\n    integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==\n  \n  diffie-hellman@^5.0.0:\n    version \"5.0.3\"\n    resolved \"https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875\"\n    integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==\n    dependencies:\n      bn.js \"^4.1.0\"\n      miller-rabin \"^4.0.0\"\n      randombytes \"^2.0.0\"\n  \n  dir-glob@^3.0.1:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f\"\n    integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==\n    dependencies:\n      path-type \"^4.0.0\"\n  \n  directory-tree@^2.2.4:\n    version \"2.2.5\"\n    resolved \"https://registry.yarnpkg.com/directory-tree/-/directory-tree-2.2.5.tgz#43d167eeb87b57640cc832f794f88431ebd47300\"\n    integrity sha512-qmeuql8N7hQB5b+cnlvbcHSjKBNpRjLY5KcvyFd9CTC5uTN7sJshEQ/ExZidAcEUEYcC/76i8ikLtbBMG81YRg==\n  \n  dokz@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/dokz/-/dokz-2.0.1.tgz#08e948f3aa1fca1fa93bb26e63ae423fadb5f663\"\n    integrity sha512-OQHr6ea4SaSGOsV4UKZp8eKwWFUqgrkKrRHoyRKb5xSA0VBT8T4vS//utGNFmptgkVfqBmRJdEuh4hjXY7uD6w==\n    dependencies:\n      \"@babel/generator\" \"^7.10.2\"\n      \"@babel/parser\" \"^7.10.2\"\n      \"@babel/traverse\" \"^7.10.1\"\n      \"@emotion/styled\" \"^11.0.0\"\n      \"@mdx-js/loader\" \"^1.5.8\"\n      \"@mdx-js/react\" \"^1.5.8\"\n      \"@next/mdx\" \"^9.3.4\"\n      \"@philpl/buble\" \"^0.19.7\"\n      \"@types/mdast\" \"^3.0.3\"\n      await-to-js \"^2.1.1\"\n      chalk \"^4.1.0\"\n      chokidar \"^3.4.1\"\n      debounce \"^1.2.0\"\n      directory-tree \"^2.2.4\"\n      front-matter \"^3.1.0\"\n      get-git-config \"^0.0.4\"\n      github-slugger \"^1.3.0\"\n      hast-util-to-string \"^1.0.3\"\n      js-string-escape \"^1.0.1\"\n      jsx-ast-utils \"^2.3.0\"\n      lodash \"^4.17.15\"\n      mdast \"^3.0.0\"\n      mdast-util-to-string \"^1.1.0\"\n      mdast-util-toc \"^5.0.3\"\n      parse-github-url \"^1.0.2\"\n      prettier \"^2.0.5\"\n      prism-react-renderer \"^1.0.2\"\n      re-resizable \"^6.4.0\"\n      react-frame-component \"^4.1.1\"\n      react-icons \"^3.9.0\"\n      react-live \"^2.2.2\"\n      react-storage-hooks \"^4.0.1\"\n      remark \"^12.0.0\"\n      remark-extract-frontmatter \"^2.0.2\"\n      remark-frontmatter \"^2.0.0\"\n      remark-mdx-metadata \"^1.0.1\"\n      remark-slug \"^6.0.0\"\n      strip-indent \"^3.0.0\"\n      unist-util-is \"^4.0.2\"\n      unist-util-visit \"^2.0.2\"\n      yaml \"^1.10.0\"\n  \n  dom-iterator@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/dom-iterator/-/dom-iterator-1.0.0.tgz#9c09899846ec41c2d257adc4d6015e4759ef05ad\"\n    integrity sha512-7dsMOQI07EMU98gQM8NSB3GsAiIeBYIPKpnxR3c9xOvdvBjChAcOM0iJ222I3p5xyiZO9e5oggkNaCusuTdYig==\n    dependencies:\n      component-props \"1.1.1\"\n      component-xor \"0.0.4\"\n  \n  dom-serializer@0:\n    version \"0.2.2\"\n    resolved \"https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51\"\n    integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==\n    dependencies:\n      domelementtype \"^2.0.1\"\n      entities \"^2.0.0\"\n  \n  dom-serializer@1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.1.0.tgz#5f7c828f1bfc44887dc2a315ab5c45691d544b58\"\n    integrity sha512-ox7bvGXt2n+uLWtCRLybYx60IrOlWL/aCebWJk1T0d4m3y2tzf4U3ij9wBMUb6YJZpz06HCCYuyCDveE2xXmzQ==\n    dependencies:\n      domelementtype \"^2.0.1\"\n      domhandler \"^3.0.0\"\n      entities \"^2.0.0\"\n  \n  dom-serializer@^1.0.1:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1\"\n    integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==\n    dependencies:\n      domelementtype \"^2.0.1\"\n      domhandler \"^4.0.0\"\n      entities \"^2.0.0\"\n  \n  dom-serializer@~0.1.1:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0\"\n    integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==\n    dependencies:\n      domelementtype \"^1.3.0\"\n      entities \"^1.1.1\"\n  \n  domain-browser@^1.1.1:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda\"\n    integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==\n  \n  domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:\n    version \"1.3.1\"\n    resolved \"https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f\"\n    integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==\n  \n  domelementtype@^2.0.1, domelementtype@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e\"\n    integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==\n  \n  domexception@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304\"\n    integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==\n    dependencies:\n      webidl-conversions \"^5.0.0\"\n  \n  domhandler@3.3.0, domhandler@^3.0.0, domhandler@^3.3.0:\n    version \"3.3.0\"\n    resolved \"https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a\"\n    integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==\n    dependencies:\n      domelementtype \"^2.0.1\"\n  \n  domhandler@^2.3.0:\n    version \"2.4.2\"\n    resolved \"https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803\"\n    integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==\n    dependencies:\n      domelementtype \"1\"\n  \n  domhandler@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e\"\n    integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==\n    dependencies:\n      domelementtype \"^2.1.0\"\n  \n  domutils@1.5.1:\n    version \"1.5.1\"\n    resolved \"https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf\"\n    integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=\n    dependencies:\n      dom-serializer \"0\"\n      domelementtype \"1\"\n  \n  domutils@2.4.2:\n    version \"2.4.2\"\n    resolved \"https://registry.yarnpkg.com/domutils/-/domutils-2.4.2.tgz#7ee5be261944e1ad487d9aa0616720010123922b\"\n    integrity sha512-NKbgaM8ZJOecTZsIzW5gSuplsX2IWW2mIK7xVr8hTQF2v1CJWTmLZ1HOCh5sH+IzVPAGE5IucooOkvwBRAdowA==\n    dependencies:\n      dom-serializer \"^1.0.1\"\n      domelementtype \"^2.0.1\"\n      domhandler \"^3.3.0\"\n  \n  domutils@^1.5.1:\n    version \"1.7.0\"\n    resolved \"https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a\"\n    integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==\n    dependencies:\n      dom-serializer \"0\"\n      domelementtype \"1\"\n  \n  domutils@^2.4.2:\n    version \"2.4.4\"\n    resolved \"https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3\"\n    integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==\n    dependencies:\n      dom-serializer \"^1.0.1\"\n      domelementtype \"^2.0.1\"\n      domhandler \"^4.0.0\"\n  \n  dotenv-expand@^5.1.0:\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0\"\n    integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==\n  \n  dotenv@^8.2.0:\n    version \"8.2.0\"\n    resolved \"https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a\"\n    integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==\n  \n  duplexer@0.1.1:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1\"\n    integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=\n  \n  duplexify@^3.4.2, duplexify@^3.6.0:\n    version \"3.7.1\"\n    resolved \"https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309\"\n    integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==\n    dependencies:\n      end-of-stream \"^1.0.0\"\n      inherits \"^2.0.1\"\n      readable-stream \"^2.0.0\"\n      stream-shift \"^1.0.0\"\n  \n  ecc-jsbn@~0.1.1:\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9\"\n    integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=\n    dependencies:\n      jsbn \"~0.1.0\"\n      safer-buffer \"^2.1.0\"\n  \n  ee-first@1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d\"\n    integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=\n  \n  electron-to-chromium@^1.3.585:\n    version \"1.3.635\"\n    resolved \"https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.635.tgz#8d1591eeca6b257d380061a2c04f0b3cc6c9e33b\"\n    integrity sha512-RRriZOLs9CpW6KTLmgBqyUdnY0QNqqWs0HOtuQGGEMizOTNNn1P7sGRBxARnUeLejOsgwjDyRqT3E/CSst02ZQ==\n  \n  electron-to-chromium@^1.3.634:\n    version \"1.3.634\"\n    resolved \"https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.634.tgz#82ea400f520f739c4f6ff00c1f7524827a917d25\"\n    integrity sha512-QPrWNYeE/A0xRvl/QP3E0nkaEvYUvH3gM04ZWYtIa6QlSpEetRlRI1xvQ7hiMIySHHEV+mwDSX8Kj4YZY6ZQAw==\n  \n  elliptic@^6.5.3:\n    version \"6.5.3\"\n    resolved \"https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6\"\n    integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==\n    dependencies:\n      bn.js \"^4.4.0\"\n      brorand \"^1.0.1\"\n      hash.js \"^1.0.0\"\n      hmac-drbg \"^1.0.0\"\n      inherits \"^2.0.1\"\n      minimalistic-assert \"^1.0.0\"\n      minimalistic-crypto-utils \"^1.0.0\"\n  \n  emittery@^0.7.1:\n    version \"0.7.2\"\n    resolved \"https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82\"\n    integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==\n  \n  \"emoji-regex@>=6.0.0 <=6.1.1\":\n    version \"6.1.1\"\n    resolved \"https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e\"\n    integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=\n  \n  emoji-regex@^8.0.0:\n    version \"8.0.0\"\n    resolved \"https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37\"\n    integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\n  \n  emojis-list@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389\"\n    integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=\n  \n  emojis-list@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78\"\n    integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==\n  \n  encodeurl@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59\"\n    integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=\n  \n  end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:\n    version \"1.4.4\"\n    resolved \"https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0\"\n    integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==\n    dependencies:\n      once \"^1.4.0\"\n  \n  enhanced-resolve@^4.3.0:\n    version \"4.3.0\"\n    resolved \"https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126\"\n    integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==\n    dependencies:\n      graceful-fs \"^4.1.2\"\n      memory-fs \"^0.5.0\"\n      tapable \"^1.0.0\"\n  \n  enquirer@^2.3.0:\n    version \"2.3.6\"\n    resolved \"https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d\"\n    integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==\n    dependencies:\n      ansi-colors \"^4.1.1\"\n  \n  entities@^1.1.1, entities@~1.1.1:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56\"\n    integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==\n  \n  entities@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5\"\n    integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==\n  \n  enzyme-adapter-react-16@^1.11.0:\n    version \"1.15.5\"\n    resolved \"https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.5.tgz#7a6f0093d3edd2f7025b36e7fbf290695473ee04\"\n    integrity sha512-33yUJGT1nHFQlbVI5qdo5Pfqvu/h4qPwi1o0a6ZZsjpiqq92a3HjynDhwd1IeED+Su60HDWV8mxJqkTnLYdGkw==\n    dependencies:\n      enzyme-adapter-utils \"^1.13.1\"\n      enzyme-shallow-equal \"^1.0.4\"\n      has \"^1.0.3\"\n      object.assign \"^4.1.0\"\n      object.values \"^1.1.1\"\n      prop-types \"^15.7.2\"\n      react-is \"^16.13.1\"\n      react-test-renderer \"^16.0.0-0\"\n      semver \"^5.7.0\"\n  \n  enzyme-adapter-utils@^1.13.1:\n    version \"1.14.0\"\n    resolved \"https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0\"\n    integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==\n    dependencies:\n      airbnb-prop-types \"^2.16.0\"\n      function.prototype.name \"^1.1.3\"\n      has \"^1.0.3\"\n      object.assign \"^4.1.2\"\n      object.fromentries \"^2.0.3\"\n      prop-types \"^15.7.2\"\n      semver \"^5.7.1\"\n  \n  enzyme-shallow-equal@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e\"\n    integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==\n    dependencies:\n      has \"^1.0.3\"\n      object-is \"^1.1.2\"\n  \n  errno@^0.1.3, errno@~0.1.7:\n    version \"0.1.8\"\n    resolved \"https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f\"\n    integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==\n    dependencies:\n      prr \"~1.0.1\"\n  \n  error-ex@^1.3.1:\n    version \"1.3.2\"\n    resolved \"https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf\"\n    integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==\n    dependencies:\n      is-arrayish \"^0.2.1\"\n  \n  es-abstract@^1.17.4:\n    version \"1.17.7\"\n    resolved \"https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c\"\n    integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==\n    dependencies:\n      es-to-primitive \"^1.2.1\"\n      function-bind \"^1.1.1\"\n      has \"^1.0.3\"\n      has-symbols \"^1.0.1\"\n      is-callable \"^1.2.2\"\n      is-regex \"^1.1.1\"\n      object-inspect \"^1.8.0\"\n      object-keys \"^1.1.1\"\n      object.assign \"^4.1.1\"\n      string.prototype.trimend \"^1.0.1\"\n      string.prototype.trimstart \"^1.0.1\"\n  \n  es-abstract@^1.18.0-next.1:\n    version \"1.18.0-next.1\"\n    resolved \"https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68\"\n    integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==\n    dependencies:\n      es-to-primitive \"^1.2.1\"\n      function-bind \"^1.1.1\"\n      has \"^1.0.3\"\n      has-symbols \"^1.0.1\"\n      is-callable \"^1.2.2\"\n      is-negative-zero \"^2.0.0\"\n      is-regex \"^1.1.1\"\n      object-inspect \"^1.8.0\"\n      object-keys \"^1.1.1\"\n      object.assign \"^4.1.1\"\n      string.prototype.trimend \"^1.0.1\"\n      string.prototype.trimstart \"^1.0.1\"\n  \n  es-module-lexer@^0.3.24, es-module-lexer@^0.3.25, es-module-lexer@^0.3.26:\n    version \"0.3.26\"\n    resolved \"https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.3.26.tgz#7b507044e97d5b03b01d4392c74ffeb9c177a83b\"\n    integrity sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==\n  \n  es-module-traversal@^0.0.49:\n    version \"0.0.49\"\n    resolved \"https://registry.yarnpkg.com/es-module-traversal/-/es-module-traversal-0.0.49.tgz#05838806629c9525f4f29da31e3643d42877c7bb\"\n    integrity sha512-KJGUbqsZdR9C9qbVftpg4WEWWNjTWtS4FKGQoXkvB1ghDgrDR5B8a0eSD2TMSUrDpzem3Pq0p3gyj+bgtD/2EA==\n    dependencies:\n      batched-promise-all \"^0.9.2\"\n      debug \"^4.2.0\"\n      deepmerge \"^4.2.2\"\n      es-module-lexer \"^0.3.25\"\n      is-builtin-module \"^3.0.0\"\n      mime-types \"^2.1.28\"\n      node-fetch \"^2.6.1\"\n      posthtml \"^0.15.1\"\n      resolve \"^1.18.1\"\n      slash \"^3.0.0\"\n      tslib \"^2.0.3\"\n  \n  es-to-primitive@^1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a\"\n    integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==\n    dependencies:\n      is-callable \"^1.1.4\"\n      is-date-object \"^1.0.1\"\n      is-symbol \"^1.0.2\"\n  \n  es5-ext@^0.10.35, es5-ext@^0.10.50:\n    version \"0.10.53\"\n    resolved \"https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1\"\n    integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==\n    dependencies:\n      es6-iterator \"~2.0.3\"\n      es6-symbol \"~3.1.3\"\n      next-tick \"~1.0.0\"\n  \n  es6-iterator@2.0.3, es6-iterator@~2.0.3:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7\"\n    integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=\n    dependencies:\n      d \"1\"\n      es5-ext \"^0.10.35\"\n      es6-symbol \"^3.1.1\"\n  \n  es6-symbol@^3.1.1, es6-symbol@~3.1.3:\n    version \"3.1.3\"\n    resolved \"https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18\"\n    integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==\n    dependencies:\n      d \"^1.0.1\"\n      ext \"^1.1.2\"\n  \n  esbuild-register@^1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-1.2.1.tgz#a430decedd7cb83ecf05141c7a7050b990724d41\"\n    integrity sha512-Pg00Woeg+2hpRyZkxSjvBUIabQ6DZIdCUgeBCzWgYfiFCnetQF8Cmrr5/+M/rMJCP/trhNlV0Kc4KnbYssIrFg==\n    dependencies:\n      joycon \"^2.2.5\"\n      pirates \"^4.0.1\"\n      source-map-support \"^0.5.19\"\n      strip-json-comments \"^3.1.1\"\n  \n  esbuild@^0.8.12, esbuild@^0.8.7:\n    version \"0.8.24\"\n    resolved \"https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.24.tgz#18645e102254682909017cec648f84d4834f15b3\"\n    integrity sha512-bqgEa2VemAN+YM52SM1626+/pdLp+p9NyqISB06ixcvauKIJk6akia3UTTsGAgn0oHEdReZ97gL+LYX+UjgwKA==\n  \n  esbuild@^0.8.32:\n    version \"0.8.32\"\n    resolved \"https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.32.tgz#d3d679ea417925f7afaab37555e52070df317355\"\n    integrity sha512-5IzQapMW/wFy5oxziHCJzawk26K3xeyrIAQPnPN3c0Q84hqRw6IfGDGfGWOdJNw5tAx77yvwqZ4r1QMpo6emJA==\n  \n  escalade@^3.1.1:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40\"\n    integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==\n  \n  escape-html@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988\"\n    integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=\n  \n  escape-string-regexp@^1.0.5:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4\"\n    integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=\n  \n  escape-string-regexp@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344\"\n    integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==\n  \n  escape-string-regexp@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34\"\n    integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==\n  \n  escodegen@^1.14.1:\n    version \"1.14.3\"\n    resolved \"https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503\"\n    integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==\n    dependencies:\n      esprima \"^4.0.1\"\n      estraverse \"^4.2.0\"\n      esutils \"^2.0.2\"\n      optionator \"^0.8.1\"\n    optionalDependencies:\n      source-map \"~0.6.1\"\n  \n  esinstall@^0.5.1:\n    version \"0.5.2\"\n    resolved \"https://registry.yarnpkg.com/esinstall/-/esinstall-0.5.2.tgz#933650258e279a8689316e21db67459d972f3434\"\n    integrity sha512-6vvYBxFXhmRSWl8xs8thEhysuSkhFhtHEYg5QN8nuHffAu4Vwg9DwfgNxGJnFjzxLRcPUpA/3/DKHZovJkidOQ==\n    dependencies:\n      \"@rollup/plugin-alias\" \"^3.0.1\"\n      \"@rollup/plugin-commonjs\" \"^16.0.0\"\n      \"@rollup/plugin-inject\" \"^4.0.2\"\n      \"@rollup/plugin-json\" \"^4.0.0\"\n      \"@rollup/plugin-node-resolve\" \"^10.0.0\"\n      \"@rollup/plugin-replace\" \"^2.3.3\"\n      cjs-module-lexer \"^1.0.0\"\n      es-module-lexer \"^0.3.24\"\n      is-builtin-module \"^3.0.0\"\n      is-valid-identifier \"^2.0.2\"\n      kleur \"^4.1.1\"\n      mkdirp \"^1.0.3\"\n      rimraf \"^3.0.0\"\n      rollup \"^2.34.0\"\n      rollup-plugin-node-polyfills \"^0.2.1\"\n      validate-npm-package-name \"^3.0.0\"\n      vm2 \"^3.9.2\"\n  \n  eslint-scope@^4.0.3:\n    version \"4.0.3\"\n    resolved \"https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848\"\n    integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==\n    dependencies:\n      esrecurse \"^4.1.0\"\n      estraverse \"^4.1.1\"\n  \n  esm@^3.2.25:\n    version \"3.2.25\"\n    resolved \"https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10\"\n    integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==\n  \n  esprima@^4.0.0, esprima@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71\"\n    integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==\n  \n  esrecurse@^4.1.0:\n    version \"4.3.0\"\n    resolved \"https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921\"\n    integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==\n    dependencies:\n      estraverse \"^5.2.0\"\n  \n  estraverse@^4.1.1, estraverse@^4.2.0:\n    version \"4.3.0\"\n    resolved \"https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d\"\n    integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==\n  \n  estraverse@^5.2.0:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880\"\n    integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==\n  \n  estree-walker@^0.6.1:\n    version \"0.6.1\"\n    resolved \"https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362\"\n    integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==\n  \n  estree-walker@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700\"\n    integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==\n  \n  estree-walker@^2.0.1:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac\"\n    integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==\n  \n  esutils@^2.0.2:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64\"\n    integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==\n  \n  etag@1.8.1, etag@^1.8.1:\n    version \"1.8.1\"\n    resolved \"https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887\"\n    integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=\n  \n  event-target-shim@^5.0.0:\n    version \"5.0.1\"\n    resolved \"https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789\"\n    integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==\n  \n  eventemitter3@^4.0.0, eventemitter3@^4.0.4:\n    version \"4.0.7\"\n    resolved \"https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f\"\n    integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==\n  \n  events@^3.0.0:\n    version \"3.2.0\"\n    resolved \"https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379\"\n    integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==\n  \n  evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02\"\n    integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==\n    dependencies:\n      md5.js \"^1.3.4\"\n      safe-buffer \"^5.1.1\"\n  \n  exec-sh@^0.3.2:\n    version \"0.3.4\"\n    resolved \"https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5\"\n    integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==\n  \n  execa@^0.7.0:\n    version \"0.7.0\"\n    resolved \"https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777\"\n    integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=\n    dependencies:\n      cross-spawn \"^5.0.1\"\n      get-stream \"^3.0.0\"\n      is-stream \"^1.1.0\"\n      npm-run-path \"^2.0.0\"\n      p-finally \"^1.0.0\"\n      signal-exit \"^3.0.0\"\n      strip-eof \"^1.0.0\"\n  \n  execa@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8\"\n    integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==\n    dependencies:\n      cross-spawn \"^6.0.0\"\n      get-stream \"^4.0.0\"\n      is-stream \"^1.1.0\"\n      npm-run-path \"^2.0.0\"\n      p-finally \"^1.0.0\"\n      signal-exit \"^3.0.0\"\n      strip-eof \"^1.0.0\"\n  \n  execa@^4.0.0, execa@^4.0.3:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a\"\n    integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==\n    dependencies:\n      cross-spawn \"^7.0.0\"\n      get-stream \"^5.0.0\"\n      human-signals \"^1.1.1\"\n      is-stream \"^2.0.0\"\n      merge-stream \"^2.0.0\"\n      npm-run-path \"^4.0.0\"\n      onetime \"^5.1.0\"\n      signal-exit \"^3.0.2\"\n      strip-final-newline \"^2.0.0\"\n  \n  execa@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376\"\n    integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==\n    dependencies:\n      cross-spawn \"^7.0.3\"\n      get-stream \"^6.0.0\"\n      human-signals \"^2.1.0\"\n      is-stream \"^2.0.0\"\n      merge-stream \"^2.0.0\"\n      npm-run-path \"^4.0.1\"\n      onetime \"^5.1.2\"\n      signal-exit \"^3.0.3\"\n      strip-final-newline \"^2.0.0\"\n  \n  exenv@^1.2.2:\n    version \"1.2.2\"\n    resolved \"https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d\"\n    integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=\n  \n  exit@^0.1.2:\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c\"\n    integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=\n  \n  expand-brackets@^2.1.4:\n    version \"2.1.4\"\n    resolved \"https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622\"\n    integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=\n    dependencies:\n      debug \"^2.3.3\"\n      define-property \"^0.2.5\"\n      extend-shallow \"^2.0.1\"\n      posix-character-classes \"^0.1.0\"\n      regex-not \"^1.0.0\"\n      snapdragon \"^0.8.1\"\n      to-regex \"^3.0.1\"\n  \n  expand-template@^2.0.3:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c\"\n    integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==\n  \n  expect@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417\"\n    integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      ansi-styles \"^4.0.0\"\n      jest-get-type \"^26.3.0\"\n      jest-matcher-utils \"^26.6.2\"\n      jest-message-util \"^26.6.2\"\n      jest-regex-util \"^26.0.0\"\n  \n  ext@^1.1.2:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244\"\n    integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==\n    dependencies:\n      type \"^2.0.0\"\n  \n  extend-shallow@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f\"\n    integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=\n    dependencies:\n      is-extendable \"^0.1.0\"\n  \n  extend-shallow@^3.0.0, extend-shallow@^3.0.2:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8\"\n    integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=\n    dependencies:\n      assign-symbols \"^1.0.0\"\n      is-extendable \"^1.0.1\"\n  \n  extend@^3.0.0, extend@^3.0.2, extend@~3.0.2:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa\"\n    integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==\n  \n  extendable-error@^0.1.5:\n    version \"0.1.7\"\n    resolved \"https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96\"\n    integrity sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==\n  \n  external-editor@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495\"\n    integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==\n    dependencies:\n      chardet \"^0.7.0\"\n      iconv-lite \"^0.4.24\"\n      tmp \"^0.0.33\"\n  \n  extglob@^2.0.4:\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543\"\n    integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==\n    dependencies:\n      array-unique \"^0.3.2\"\n      define-property \"^1.0.0\"\n      expand-brackets \"^2.1.4\"\n      extend-shallow \"^2.0.1\"\n      fragment-cache \"^0.2.1\"\n      regex-not \"^1.0.0\"\n      snapdragon \"^0.8.1\"\n      to-regex \"^3.0.1\"\n  \n  extsprintf@1.3.0:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05\"\n    integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=\n  \n  extsprintf@^1.2.0:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f\"\n    integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=\n  \n  fast-deep-equal@^3.1.1:\n    version \"3.1.3\"\n    resolved \"https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525\"\n    integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==\n  \n  fast-glob@^3.1.1, fast-glob@^3.2.2, fast-glob@^3.2.4:\n    version \"3.2.4\"\n    resolved \"https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3\"\n    integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==\n    dependencies:\n      \"@nodelib/fs.stat\" \"^2.0.2\"\n      \"@nodelib/fs.walk\" \"^1.2.3\"\n      glob-parent \"^5.1.0\"\n      merge2 \"^1.3.0\"\n      micromatch \"^4.0.2\"\n      picomatch \"^2.2.1\"\n  \n  fast-json-stable-stringify@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633\"\n    integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==\n  \n  fast-levenshtein@~2.0.6:\n    version \"2.0.6\"\n    resolved \"https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917\"\n    integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=\n  \n  fast-memoize@^2.5.1:\n    version \"2.5.2\"\n    resolved \"https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e\"\n    integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==\n  \n  fastq@^1.6.0:\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947\"\n    integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==\n    dependencies:\n      reusify \"^1.0.4\"\n  \n  fault@^1.0.1:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13\"\n    integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==\n    dependencies:\n      format \"^0.2.0\"\n  \n  fb-watchman@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85\"\n    integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==\n    dependencies:\n      bser \"2.1.1\"\n  \n  figgy-pudding@^3.5.1:\n    version \"3.5.2\"\n    resolved \"https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e\"\n    integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==\n  \n  file-uri-to-path@1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd\"\n    integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==\n  \n  fill-range@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7\"\n    integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=\n    dependencies:\n      extend-shallow \"^2.0.1\"\n      is-number \"^3.0.0\"\n      repeat-string \"^1.6.1\"\n      to-regex-range \"^2.1.0\"\n  \n  fill-range@^7.0.1:\n    version \"7.0.1\"\n    resolved \"https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40\"\n    integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==\n    dependencies:\n      to-regex-range \"^5.0.1\"\n  \n  find-cache-dir@3.3.1, find-cache-dir@^3.3.1:\n    version \"3.3.1\"\n    resolved \"https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880\"\n    integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==\n    dependencies:\n      commondir \"^1.0.1\"\n      make-dir \"^3.0.2\"\n      pkg-dir \"^4.1.0\"\n  \n  find-cache-dir@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7\"\n    integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==\n    dependencies:\n      commondir \"^1.0.1\"\n      make-dir \"^2.0.0\"\n      pkg-dir \"^3.0.0\"\n  \n  find-root@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4\"\n    integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==\n  \n  find-up@*, find-up@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc\"\n    integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==\n    dependencies:\n      locate-path \"^6.0.0\"\n      path-exists \"^4.0.0\"\n  \n  find-up@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73\"\n    integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==\n    dependencies:\n      locate-path \"^3.0.0\"\n  \n  find-up@^4.0.0, find-up@^4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19\"\n    integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==\n    dependencies:\n      locate-path \"^5.0.0\"\n      path-exists \"^4.0.0\"\n  \n  find-yarn-workspace-root2@1.2.16:\n    version \"1.2.16\"\n    resolved \"https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9\"\n    integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==\n    dependencies:\n      micromatch \"^4.0.2\"\n      pkg-dir \"^4.2.0\"\n  \n  flush-write-stream@^1.0.0:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8\"\n    integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==\n    dependencies:\n      inherits \"^2.0.3\"\n      readable-stream \"^2.3.6\"\n  \n  focus-lock@^0.7.0:\n    version \"0.7.0\"\n    resolved \"https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.7.0.tgz#b2bfb0ca7beacc8710a1ff74275fe0dc60a1d88a\"\n    integrity sha512-LI7v2mH02R55SekHYdv9pRHR9RajVNyIJ2N5IEkWbg7FT5ZmJ9Hw4mWxHeEUcd+dJo0QmzztHvDvWcc7prVFsw==\n  \n  follow-redirects@^1.0.0:\n    version \"1.13.1\"\n    resolved \"https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7\"\n    integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==\n  \n  for-in@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80\"\n    integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=\n  \n  forever-agent@~0.6.1:\n    version \"0.6.1\"\n    resolved \"https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91\"\n    integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=\n  \n  form-data@~2.3.2:\n    version \"2.3.3\"\n    resolved \"https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6\"\n    integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==\n    dependencies:\n      asynckit \"^0.4.0\"\n      combined-stream \"^1.0.6\"\n      mime-types \"^2.1.12\"\n  \n  format@^0.2.0:\n    version \"0.2.2\"\n    resolved \"https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b\"\n    integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=\n  \n  formidable@^1.1.1:\n    version \"1.2.2\"\n    resolved \"https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9\"\n    integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==\n  \n  fragment-cache@^0.2.1:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19\"\n    integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=\n    dependencies:\n      map-cache \"^0.2.2\"\n  \n  framer-motion@^3.2.0:\n    version \"3.2.0\"\n    resolved \"https://registry.yarnpkg.com/framer-motion/-/framer-motion-3.2.0.tgz#ed81d7998152ec7545f7e29bd8241d36d1e1d15d\"\n    integrity sha512-1yTtCIsm5FV/E1aMj4/JYsKhC07n4Gy90XSl0+JKhY6WX8Dsu6YtQvIZMxKpGH4dcJNnT2GZdeLzhJ/2xkNR9A==\n    dependencies:\n      framesync \"^5.0.0\"\n      hey-listen \"^1.0.8\"\n      popmotion \"^9.1.0\"\n      style-value-types \"^4.0.1\"\n      tslib \"^1.10.0\"\n    optionalDependencies:\n      \"@emotion/is-prop-valid\" \"^0.8.2\"\n  \n  framesync@5.0.0, framesync@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/framesync/-/framesync-5.0.0.tgz#7de8caedf53ac441118e79680f1beb7391c328b6\"\n    integrity sha512-wd8t+JsQGisluSv1twiEeDv0aNGpavGb9q7xgIk9fGbcIWkNXF/KVtrjnOrCwBWJuiXxlJfNkcvGudsI32FxYA==\n  \n  fresh@~0.5.2:\n    version \"0.5.2\"\n    resolved \"https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7\"\n    integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=\n  \n  from2@^2.1.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af\"\n    integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=\n    dependencies:\n      inherits \"^2.0.1\"\n      readable-stream \"^2.0.0\"\n  \n  fromentries@^1.3.2:\n    version \"1.3.2\"\n    resolved \"https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a\"\n    integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==\n  \n  front-matter@^3.1.0:\n    version \"3.2.1\"\n    resolved \"https://registry.yarnpkg.com/front-matter/-/front-matter-3.2.1.tgz#88be839638f397bbbcb0d61ac03bd08abb4f0a40\"\n    integrity sha512-YUhgEhbL6tG+Ok3vTGIoSDKqcr47aSDvyhEqIv8B+YuBJFsPnOiArNXTPp2yO07NL+a0L4+2jXlKlKqyVcsRRA==\n    dependencies:\n      js-yaml \"^3.13.1\"\n  \n  fs-constants@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad\"\n    integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==\n  \n  fs-extra@^7.0.1:\n    version \"7.0.1\"\n    resolved \"https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9\"\n    integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==\n    dependencies:\n      graceful-fs \"^4.1.2\"\n      jsonfile \"^4.0.0\"\n      universalify \"^0.1.0\"\n  \n  fs-extra@^8.0.0, fs-extra@^8.1.0:\n    version \"8.1.0\"\n    resolved \"https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0\"\n    integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==\n    dependencies:\n      graceful-fs \"^4.2.0\"\n      jsonfile \"^4.0.0\"\n      universalify \"^0.1.0\"\n  \n  fs-extra@^9.0.1:\n    version \"9.0.1\"\n    resolved \"https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc\"\n    integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==\n    dependencies:\n      at-least-node \"^1.0.0\"\n      graceful-fs \"^4.2.0\"\n      jsonfile \"^6.0.1\"\n      universalify \"^1.0.0\"\n  \n  fs-memo@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/fs-memo/-/fs-memo-1.2.0.tgz#a2ec3be606b902077adbb37ec529c5ec5fb2e037\"\n    integrity sha512-YEexkCpL4j03jn5SxaMHqcO6IuWuqm8JFUYhyCep7Ao89JIYmB8xoKhK7zXXJ9cCaNXpyNH5L3QtAmoxjoHW2w==\n  \n  fs-minipass@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb\"\n    integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==\n    dependencies:\n      minipass \"^3.0.0\"\n  \n  fs-write-stream-atomic@^1.0.8:\n    version \"1.0.10\"\n    resolved \"https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9\"\n    integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=\n    dependencies:\n      graceful-fs \"^4.1.2\"\n      iferr \"^0.1.5\"\n      imurmurhash \"^0.1.4\"\n      readable-stream \"1 || 2\"\n  \n  fs.realpath@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f\"\n    integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=\n  \n  fsevents@^1.2.7:\n    version \"1.2.13\"\n    resolved \"https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38\"\n    integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==\n    dependencies:\n      bindings \"^1.5.0\"\n      nan \"^2.12.1\"\n  \n  fsevents@^2.1.2:\n    version \"2.2.1\"\n    resolved \"https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz#1fb02ded2036a8ac288d507a65962bd87b97628d\"\n    integrity sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==\n  \n  fsevents@~2.1.2:\n    version \"2.1.3\"\n    resolved \"https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e\"\n    integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==\n  \n  fsevents@~2.3.1:\n    version \"2.3.1\"\n    resolved \"https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f\"\n    integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==\n  \n  function-bind@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d\"\n    integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==\n  \n  function.prototype.name@^1.1.2, function.prototype.name@^1.1.3:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.3.tgz#0bb034bb308e7682826f215eb6b2ae64918847fe\"\n    integrity sha512-H51qkbNSp8mtkJt+nyW1gyStBiKZxfRqySNUR99ylq6BPXHKI4SEvIlTKp4odLfjRKJV04DFWMU3G/YRlQOsag==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n      es-abstract \"^1.18.0-next.1\"\n      functions-have-names \"^1.2.1\"\n  \n  functions-have-names@^1.2.1:\n    version \"1.2.2\"\n    resolved \"https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21\"\n    integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==\n  \n  gauge@~2.7.3:\n    version \"2.7.4\"\n    resolved \"https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7\"\n    integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=\n    dependencies:\n      aproba \"^1.0.3\"\n      console-control-strings \"^1.0.0\"\n      has-unicode \"^2.0.0\"\n      object-assign \"^4.1.0\"\n      signal-exit \"^3.0.0\"\n      string-width \"^1.0.1\"\n      strip-ansi \"^3.0.1\"\n      wide-align \"^1.1.0\"\n  \n  generic-names@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872\"\n    integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==\n    dependencies:\n      loader-utils \"^1.1.0\"\n  \n  gensync@^1.0.0-beta.1:\n    version \"1.0.0-beta.2\"\n    resolved \"https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0\"\n    integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\n  \n  get-caller-file@^2.0.1, get-caller-file@^2.0.5:\n    version \"2.0.5\"\n    resolved \"https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e\"\n    integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\n  \n  get-git-config@^0.0.4:\n    version \"0.0.4\"\n    resolved \"https://registry.yarnpkg.com/get-git-config/-/get-git-config-0.0.4.tgz#a379cccdc1a3f8fb4de1eb420423dd05c4d6b857\"\n    integrity sha512-A1qA5v+EhMUAgyK1xxO7OFcx5eUaS9nSrUB9uQVDapBRFKRKayqKbDpxwAHrGqcvVSi6HtyPH4uzyhxbubEPHA==\n    dependencies:\n      ini \"^1.3.5\"\n      lodash \"^4.17.19\"\n      tslib \"^2.0.0\"\n  \n  get-intrinsic@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be\"\n    integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==\n    dependencies:\n      function-bind \"^1.1.1\"\n      has \"^1.0.3\"\n      has-symbols \"^1.0.1\"\n  \n  get-intrinsic@^1.0.1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49\"\n    integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==\n    dependencies:\n      function-bind \"^1.1.1\"\n      has \"^1.0.3\"\n      has-symbols \"^1.0.1\"\n  \n  get-nonce@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3\"\n    integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==\n  \n  get-own-enumerable-property-symbols@^3.0.0:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664\"\n    integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==\n  \n  get-package-type@^0.1.0:\n    version \"0.1.0\"\n    resolved \"https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a\"\n    integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==\n  \n  get-port-please@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.1.0.tgz#e9dd92ddee6f383a0d61c40965a2cd396b3ed6b6\"\n    integrity sha512-Ltp8WKR9D1ddNQ0iFOxhPXTXrIqpbLhQ54jChAyd67c+u08UAdOI/nTLPorsAbh0S/979Pwfof7O8Vu435ibag==\n    dependencies:\n      fs-memo \"^1.2.0\"\n  \n  get-stream@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14\"\n    integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=\n  \n  get-stream@^4.0.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5\"\n    integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==\n    dependencies:\n      pump \"^3.0.0\"\n  \n  get-stream@^5.0.0, get-stream@^5.1.0:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3\"\n    integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==\n    dependencies:\n      pump \"^3.0.0\"\n  \n  get-stream@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718\"\n    integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==\n  \n  get-value@^2.0.3, get-value@^2.0.6:\n    version \"2.0.6\"\n    resolved \"https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28\"\n    integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=\n  \n  getpass@^0.1.1:\n    version \"0.1.7\"\n    resolved \"https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa\"\n    integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=\n    dependencies:\n      assert-plus \"^1.0.0\"\n  \n  github-from-package@0.0.0:\n    version \"0.0.0\"\n    resolved \"https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce\"\n    integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=\n  \n  github-slugger@^1.0.0, github-slugger@^1.2.1, github-slugger@^1.3.0:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9\"\n    integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==\n    dependencies:\n      emoji-regex \">=6.0.0 <=6.1.1\"\n  \n  glob-parent@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae\"\n    integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=\n    dependencies:\n      is-glob \"^3.1.0\"\n      path-dirname \"^1.0.0\"\n  \n  glob-parent@^5.1.0, glob-parent@~5.1.0:\n    version \"5.1.1\"\n    resolved \"https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229\"\n    integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==\n    dependencies:\n      is-glob \"^4.0.1\"\n  \n  glob-to-regexp@^0.4.1:\n    version \"0.4.1\"\n    resolved \"https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e\"\n    integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==\n  \n  glob@7.1.6, glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:\n    version \"7.1.6\"\n    resolved \"https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6\"\n    integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==\n    dependencies:\n      fs.realpath \"^1.0.0\"\n      inflight \"^1.0.4\"\n      inherits \"2\"\n      minimatch \"^3.0.4\"\n      once \"^1.3.0\"\n      path-is-absolute \"^1.0.0\"\n  \n  globals@^11.1.0:\n    version \"11.12.0\"\n    resolved \"https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e\"\n    integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==\n  \n  globby@^11.0.0:\n    version \"11.0.1\"\n    resolved \"https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357\"\n    integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==\n    dependencies:\n      array-union \"^2.1.0\"\n      dir-glob \"^3.0.1\"\n      fast-glob \"^3.1.1\"\n      ignore \"^5.1.4\"\n      merge2 \"^1.3.0\"\n      slash \"^3.0.0\"\n  \n  globrex@^0.1.2:\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098\"\n    integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==\n  \n  got@^11.1.4:\n    version \"11.8.1\"\n    resolved \"https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d\"\n    integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==\n    dependencies:\n      \"@sindresorhus/is\" \"^4.0.0\"\n      \"@szmarczak/http-timer\" \"^4.0.5\"\n      \"@types/cacheable-request\" \"^6.0.1\"\n      \"@types/responselike\" \"^1.0.0\"\n      cacheable-lookup \"^5.0.3\"\n      cacheable-request \"^7.0.1\"\n      decompress-response \"^6.0.0\"\n      http2-wrapper \"^1.0.0-beta.5.2\"\n      lowercase-keys \"^2.0.0\"\n      p-cancelable \"^2.0.0\"\n      responselike \"^2.0.0\"\n  \n  graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:\n    version \"4.2.4\"\n    resolved \"https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb\"\n    integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==\n  \n  grapheme-splitter@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e\"\n    integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==\n  \n  growly@^1.3.0:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081\"\n    integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=\n  \n  har-schema@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92\"\n    integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=\n  \n  har-validator@~5.1.3:\n    version \"5.1.5\"\n    resolved \"https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd\"\n    integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==\n    dependencies:\n      ajv \"^6.12.3\"\n      har-schema \"^2.0.0\"\n  \n  hard-rejection@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883\"\n    integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==\n  \n  has-flag@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd\"\n    integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=\n  \n  has-flag@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b\"\n    integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\n  \n  has-symbols@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8\"\n    integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==\n  \n  has-unicode@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9\"\n    integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=\n  \n  has-value@^0.3.1:\n    version \"0.3.1\"\n    resolved \"https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f\"\n    integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=\n    dependencies:\n      get-value \"^2.0.3\"\n      has-values \"^0.1.4\"\n      isobject \"^2.0.0\"\n  \n  has-value@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177\"\n    integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=\n    dependencies:\n      get-value \"^2.0.6\"\n      has-values \"^1.0.0\"\n      isobject \"^3.0.0\"\n  \n  has-values@^0.1.4:\n    version \"0.1.4\"\n    resolved \"https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771\"\n    integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=\n  \n  has-values@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f\"\n    integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=\n    dependencies:\n      is-number \"^3.0.0\"\n      kind-of \"^4.0.0\"\n  \n  has@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796\"\n    integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==\n    dependencies:\n      function-bind \"^1.1.1\"\n  \n  hash-base@^3.0.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33\"\n    integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==\n    dependencies:\n      inherits \"^2.0.4\"\n      readable-stream \"^3.6.0\"\n      safe-buffer \"^5.2.0\"\n  \n  hash-sum@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a\"\n    integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==\n  \n  hash.js@^1.0.0, hash.js@^1.0.3:\n    version \"1.1.7\"\n    resolved \"https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42\"\n    integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==\n    dependencies:\n      inherits \"^2.0.3\"\n      minimalistic-assert \"^1.0.1\"\n  \n  hast-to-hyperscript@^9.0.0:\n    version \"9.0.1\"\n    resolved \"https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d\"\n    integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==\n    dependencies:\n      \"@types/unist\" \"^2.0.3\"\n      comma-separated-tokens \"^1.0.0\"\n      property-information \"^5.3.0\"\n      space-separated-tokens \"^1.0.0\"\n      style-to-object \"^0.3.0\"\n      unist-util-is \"^4.0.0\"\n      web-namespaces \"^1.0.0\"\n  \n  hast-util-from-parse5@^6.0.0:\n    version \"6.0.1\"\n    resolved \"https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a\"\n    integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==\n    dependencies:\n      \"@types/parse5\" \"^5.0.0\"\n      hastscript \"^6.0.0\"\n      property-information \"^5.0.0\"\n      vfile \"^4.0.0\"\n      vfile-location \"^3.2.0\"\n      web-namespaces \"^1.0.0\"\n  \n  hast-util-parse-selector@^2.0.0:\n    version \"2.2.5\"\n    resolved \"https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a\"\n    integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==\n  \n  hast-util-raw@6.0.1:\n    version \"6.0.1\"\n    resolved \"https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977\"\n    integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==\n    dependencies:\n      \"@types/hast\" \"^2.0.0\"\n      hast-util-from-parse5 \"^6.0.0\"\n      hast-util-to-parse5 \"^6.0.0\"\n      html-void-elements \"^1.0.0\"\n      parse5 \"^6.0.0\"\n      unist-util-position \"^3.0.0\"\n      vfile \"^4.0.0\"\n      web-namespaces \"^1.0.0\"\n      xtend \"^4.0.0\"\n      zwitch \"^1.0.0\"\n  \n  hast-util-to-parse5@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479\"\n    integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==\n    dependencies:\n      hast-to-hyperscript \"^9.0.0\"\n      property-information \"^5.0.0\"\n      web-namespaces \"^1.0.0\"\n      xtend \"^4.0.0\"\n      zwitch \"^1.0.0\"\n  \n  hast-util-to-string@^1.0.3:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz#9b24c114866bdb9478927d7e9c36a485ac728378\"\n    integrity sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==\n  \n  hastscript@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640\"\n    integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==\n    dependencies:\n      \"@types/hast\" \"^2.0.0\"\n      comma-separated-tokens \"^1.0.0\"\n      hast-util-parse-selector \"^2.0.0\"\n      property-information \"^5.0.0\"\n      space-separated-tokens \"^1.0.0\"\n  \n  he@1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f\"\n    integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==\n  \n  hey-listen@^1.0.8:\n    version \"1.0.8\"\n    resolved \"https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68\"\n    integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==\n  \n  history@^4.9.0:\n    version \"4.10.1\"\n    resolved \"https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3\"\n    integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==\n    dependencies:\n      \"@babel/runtime\" \"^7.1.2\"\n      loose-envify \"^1.2.0\"\n      resolve-pathname \"^3.0.0\"\n      tiny-invariant \"^1.0.2\"\n      tiny-warning \"^1.0.0\"\n      value-equal \"^1.0.1\"\n  \n  hmac-drbg@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1\"\n    integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=\n    dependencies:\n      hash.js \"^1.0.3\"\n      minimalistic-assert \"^1.0.0\"\n      minimalistic-crypto-utils \"^1.0.1\"\n  \n  hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1:\n    version \"3.3.2\"\n    resolved \"https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45\"\n    integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==\n    dependencies:\n      react-is \"^16.7.0\"\n  \n  hosted-git-info@^2.1.4:\n    version \"2.8.8\"\n    resolved \"https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488\"\n    integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==\n  \n  html-encoding-sniffer@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3\"\n    integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==\n    dependencies:\n      whatwg-encoding \"^1.0.5\"\n  \n  html-escaper@^2.0.0:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453\"\n    integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==\n  \n  html-tags@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140\"\n    integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==\n  \n  html-void-elements@^1.0.0:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483\"\n    integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==\n  \n  htmlparser2@5.0.1, htmlparser2@^5.0.1:\n    version \"5.0.1\"\n    resolved \"https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7\"\n    integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==\n    dependencies:\n      domelementtype \"^2.0.1\"\n      domhandler \"^3.3.0\"\n      domutils \"^2.4.2\"\n      entities \"^2.0.0\"\n  \n  htmlparser2@^3.9.1:\n    version \"3.10.1\"\n    resolved \"https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f\"\n    integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==\n    dependencies:\n      domelementtype \"^1.3.1\"\n      domhandler \"^2.3.0\"\n      domutils \"^1.5.1\"\n      entities \"^1.1.1\"\n      inherits \"^2.0.1\"\n      readable-stream \"^3.1.1\"\n  \n  http-assert@^1.3.0:\n    version \"1.4.1\"\n    resolved \"https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878\"\n    integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==\n    dependencies:\n      deep-equal \"~1.0.1\"\n      http-errors \"~1.7.2\"\n  \n  http-cache-semantics@^4.0.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390\"\n    integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==\n  \n  http-errors@1.7.3, http-errors@~1.7.2:\n    version \"1.7.3\"\n    resolved \"https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06\"\n    integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==\n    dependencies:\n      depd \"~1.1.2\"\n      inherits \"2.0.4\"\n      setprototypeof \"1.1.1\"\n      statuses \">= 1.5.0 < 2\"\n      toidentifier \"1.0.0\"\n  \n  http-errors@^1.6.3, http-errors@^1.7.3:\n    version \"1.8.0\"\n    resolved \"https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507\"\n    integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==\n    dependencies:\n      depd \"~1.1.2\"\n      inherits \"2.0.4\"\n      setprototypeof \"1.2.0\"\n      statuses \">= 1.5.0 < 2\"\n      toidentifier \"1.0.0\"\n  \n  http-errors@~1.4.0:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/http-errors/-/http-errors-1.4.0.tgz#6c0242dea6b3df7afda153c71089b31c6e82aabf\"\n    integrity sha1-bAJC3qaz33r9oVPHEImzHG6Cqr8=\n    dependencies:\n      inherits \"2.0.1\"\n      statuses \">= 1.2.1 < 2\"\n  \n  http-errors@~1.6.2:\n    version \"1.6.3\"\n    resolved \"https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d\"\n    integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=\n    dependencies:\n      depd \"~1.1.2\"\n      inherits \"2.0.3\"\n      setprototypeof \"1.1.0\"\n      statuses \">= 1.4.0 < 2\"\n  \n  http-proxy@^1.16.2, http-proxy@^1.18.1:\n    version \"1.18.1\"\n    resolved \"https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549\"\n    integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==\n    dependencies:\n      eventemitter3 \"^4.0.0\"\n      follow-redirects \"^1.0.0\"\n      requires-port \"^1.0.0\"\n  \n  http-signature@~1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1\"\n    integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=\n    dependencies:\n      assert-plus \"^1.0.0\"\n      jsprim \"^1.2.2\"\n      sshpk \"^1.7.0\"\n  \n  http2-wrapper@^1.0.0-beta.5.2:\n    version \"1.0.0-beta.5.2\"\n    resolved \"https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3\"\n    integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==\n    dependencies:\n      quick-lru \"^5.1.1\"\n      resolve-alpn \"^1.0.0\"\n  \n  httpie@^1.1.2:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/httpie/-/httpie-1.1.2.tgz#e76a6792c2172446ea6df8805977a6f57bc9615d\"\n    integrity sha512-VQ82oXG95oY1fQw/XecHuvcFBA+lZQ9Vwj1RfLcO8a7HpDd4cc2ukwpJt+TUlFaLUAzZErylxWu6wclJ1rUhUQ==\n  \n  https-browserify@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73\"\n    integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=\n  \n  https-proxy-agent@5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2\"\n    integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==\n    dependencies:\n      agent-base \"6\"\n      debug \"4\"\n  \n  human-id@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/human-id/-/human-id-1.0.2.tgz#e654d4b2b0d8b07e45da9f6020d8af17ec0a5df3\"\n    integrity sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==\n  \n  human-signals@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3\"\n    integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==\n  \n  human-signals@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0\"\n    integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==\n  \n  iconv-lite@0.4.24, iconv-lite@^0.4.24:\n    version \"0.4.24\"\n    resolved \"https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b\"\n    integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==\n    dependencies:\n      safer-buffer \">= 2.1.2 < 3\"\n  \n  icss-replace-symbols@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded\"\n    integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=\n  \n  icss-utils@^4.0.0, icss-utils@^4.1.1:\n    version \"4.1.1\"\n    resolved \"https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467\"\n    integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==\n    dependencies:\n      postcss \"^7.0.14\"\n  \n  ieee754@^1.1.13, ieee754@^1.1.4:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352\"\n    integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==\n  \n  iferr@^0.1.5:\n    version \"0.1.5\"\n    resolved \"https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501\"\n    integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=\n  \n  ignore@^5.1.4:\n    version \"5.1.8\"\n    resolved \"https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57\"\n    integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==\n  \n  import-cwd@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92\"\n    integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==\n    dependencies:\n      import-from \"^3.0.0\"\n  \n  import-fresh@^3.1.0:\n    version \"3.3.0\"\n    resolved \"https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b\"\n    integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==\n    dependencies:\n      parent-module \"^1.0.0\"\n      resolve-from \"^4.0.0\"\n  \n  import-fresh@^3.2.1:\n    version \"3.2.2\"\n    resolved \"https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e\"\n    integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==\n    dependencies:\n      parent-module \"^1.0.0\"\n      resolve-from \"^4.0.0\"\n  \n  import-from@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966\"\n    integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==\n    dependencies:\n      resolve-from \"^5.0.0\"\n  \n  import-local@^3.0.2:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6\"\n    integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==\n    dependencies:\n      pkg-dir \"^4.2.0\"\n      resolve-cwd \"^3.0.0\"\n  \n  imurmurhash@^0.1.4:\n    version \"0.1.4\"\n    resolved \"https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea\"\n    integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=\n  \n  indent-string@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251\"\n    integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==\n  \n  indexes-of@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607\"\n    integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=\n  \n  infer-owner@^1.0.3, infer-owner@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467\"\n    integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==\n  \n  inflation@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f\"\n    integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=\n  \n  inflight@^1.0.4:\n    version \"1.0.6\"\n    resolved \"https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9\"\n    integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=\n    dependencies:\n      once \"^1.3.0\"\n      wrappy \"1\"\n  \n  inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c\"\n    integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==\n  \n  inherits@2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1\"\n    integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=\n  \n  inherits@2.0.3:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de\"\n    integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=\n  \n  ini@^1.3.5, ini@~1.3.0:\n    version \"1.3.8\"\n    resolved \"https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c\"\n    integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==\n  \n  inline-style-parser@0.1.1:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1\"\n    integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==\n  \n  intersection-observer@^0.7.0:\n    version \"0.7.0\"\n    resolved \"https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.7.0.tgz#ee16bee978db53516ead2f0a8154b09b400bbdc9\"\n    integrity sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==\n  \n  invariant@^2.2.4:\n    version \"2.2.4\"\n    resolved \"https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6\"\n    integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\n    dependencies:\n      loose-envify \"^1.0.0\"\n  \n  ip-regex@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9\"\n    integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=\n  \n  is-accessor-descriptor@^0.1.6:\n    version \"0.1.6\"\n    resolved \"https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6\"\n    integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=\n    dependencies:\n      kind-of \"^3.0.2\"\n  \n  is-accessor-descriptor@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656\"\n    integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==\n    dependencies:\n      kind-of \"^6.0.0\"\n  \n  is-alphabetical@1.0.4, is-alphabetical@^1.0.0:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d\"\n    integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==\n  \n  is-alphanumeric@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4\"\n    integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=\n  \n  is-alphanumerical@^1.0.0:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf\"\n    integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==\n    dependencies:\n      is-alphabetical \"^1.0.0\"\n      is-decimal \"^1.0.0\"\n  \n  is-arrayish@^0.2.1:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d\"\n    integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=\n  \n  is-arrayish@^0.3.1:\n    version \"0.3.2\"\n    resolved \"https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03\"\n    integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==\n  \n  is-binary-path@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898\"\n    integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=\n    dependencies:\n      binary-extensions \"^1.0.0\"\n  \n  is-binary-path@~2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09\"\n    integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==\n    dependencies:\n      binary-extensions \"^2.0.0\"\n  \n  is-buffer@^1.1.5:\n    version \"1.1.6\"\n    resolved \"https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be\"\n    integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==\n  \n  is-buffer@^2.0.0:\n    version \"2.0.5\"\n    resolved \"https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191\"\n    integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==\n  \n  is-builtin-module@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.0.0.tgz#137d3d2425023a19a660fb9dd6ddfabe52c03466\"\n    integrity sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw==\n    dependencies:\n      builtin-modules \"^3.0.0\"\n  \n  is-callable@^1.1.4, is-callable@^1.2.2:\n    version \"1.2.2\"\n    resolved \"https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9\"\n    integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==\n  \n  is-ci@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c\"\n    integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==\n    dependencies:\n      ci-info \"^2.0.0\"\n  \n  is-core-module@^2.1.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a\"\n    integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==\n    dependencies:\n      has \"^1.0.3\"\n  \n  is-data-descriptor@^0.1.4:\n    version \"0.1.4\"\n    resolved \"https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56\"\n    integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=\n    dependencies:\n      kind-of \"^3.0.2\"\n  \n  is-data-descriptor@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7\"\n    integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==\n    dependencies:\n      kind-of \"^6.0.0\"\n  \n  is-date-object@^1.0.1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e\"\n    integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==\n  \n  is-decimal@^1.0.0:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5\"\n    integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==\n  \n  is-descriptor@^0.1.0:\n    version \"0.1.6\"\n    resolved \"https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca\"\n    integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==\n    dependencies:\n      is-accessor-descriptor \"^0.1.6\"\n      is-data-descriptor \"^0.1.4\"\n      kind-of \"^5.0.0\"\n  \n  is-descriptor@^1.0.0, is-descriptor@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec\"\n    integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==\n    dependencies:\n      is-accessor-descriptor \"^1.0.0\"\n      is-data-descriptor \"^1.0.0\"\n      kind-of \"^6.0.2\"\n  \n  is-docker@^2.0.0:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156\"\n    integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==\n  \n  is-extendable@^0.1.0, is-extendable@^0.1.1:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89\"\n    integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=\n  \n  is-extendable@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4\"\n    integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==\n    dependencies:\n      is-plain-object \"^2.0.4\"\n  \n  is-extglob@^2.1.0, is-extglob@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2\"\n    integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=\n  \n  is-fullwidth-code-point@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb\"\n    integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=\n    dependencies:\n      number-is-nan \"^1.0.0\"\n  \n  is-fullwidth-code-point@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f\"\n    integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=\n  \n  is-fullwidth-code-point@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d\"\n    integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\n  \n  is-generator-fn@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118\"\n    integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==\n  \n  is-generator-function@^1.0.7:\n    version \"1.0.8\"\n    resolved \"https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b\"\n    integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==\n  \n  is-glob@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a\"\n    integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=\n    dependencies:\n      is-extglob \"^2.1.0\"\n  \n  is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc\"\n    integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==\n    dependencies:\n      is-extglob \"^2.1.1\"\n  \n  is-hexadecimal@^1.0.0:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7\"\n    integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==\n  \n  is-interactive@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e\"\n    integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==\n  \n  is-module@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591\"\n    integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=\n  \n  is-negative-zero@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24\"\n    integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==\n  \n  is-number@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195\"\n    integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=\n    dependencies:\n      kind-of \"^3.0.2\"\n  \n  is-number@^7.0.0:\n    version \"7.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b\"\n    integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==\n  \n  is-obj@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f\"\n    integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=\n  \n  is-plain-obj@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e\"\n    integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=\n  \n  is-plain-obj@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287\"\n    integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==\n  \n  is-plain-object@^2.0.3, is-plain-object@^2.0.4:\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677\"\n    integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==\n    dependencies:\n      isobject \"^3.0.1\"\n  \n  is-plain-object@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344\"\n    integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==\n  \n  is-potential-custom-element-name@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397\"\n    integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=\n  \n  is-reference@^1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7\"\n    integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==\n    dependencies:\n      \"@types/estree\" \"*\"\n  \n  is-regex@^1.1.0, is-regex@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9\"\n    integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==\n    dependencies:\n      has-symbols \"^1.0.1\"\n  \n  is-regexp@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069\"\n    integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=\n  \n  is-stream@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44\"\n    integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=\n  \n  is-stream@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3\"\n    integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==\n  \n  is-string@^1.0.5:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6\"\n    integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==\n  \n  is-subdir@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/is-subdir/-/is-subdir-1.1.1.tgz#423e66902f9c5f159b9cc4826c820df083059538\"\n    integrity sha512-VYpq0S7gPBVkkmfwkvGnx1EL9UVIo87NQyNcgMiNUdQCws3CJm5wj2nB+XPL7zigvjxhuZgp3bl2yBcKkSIj1w==\n    dependencies:\n      better-path-resolve \"1.0.0\"\n  \n  is-symbol@^1.0.2:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937\"\n    integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==\n    dependencies:\n      has-symbols \"^1.0.1\"\n  \n  is-typedarray@^1.0.0, is-typedarray@~1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a\"\n    integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=\n  \n  is-valid-identifier@^2.0.2:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/is-valid-identifier/-/is-valid-identifier-2.0.2.tgz#146d9dbf29821b8118580b039d2203aa4bd1da4b\"\n    integrity sha512-mpS5EGqXOwzXtKAg6I44jIAqeBfntFLxpAth1rrKbxtKyI6LPktyDYpHBI+tHlduhhX/SF26mFXmxQu995QVqg==\n    dependencies:\n      assert \"^1.4.1\"\n  \n  is-whitespace-character@^1.0.0:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7\"\n    integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==\n  \n  is-windows@^1.0.0, is-windows@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d\"\n    integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==\n  \n  is-word-character@^1.0.0:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230\"\n    integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==\n  \n  is-wsl@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d\"\n    integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=\n  \n  is-wsl@^2.1.1, is-wsl@^2.2.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271\"\n    integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==\n    dependencies:\n      is-docker \"^2.0.0\"\n  \n  isarray@0.0.1:\n    version \"0.0.1\"\n    resolved \"https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf\"\n    integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=\n  \n  isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11\"\n    integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=\n  \n  isbinaryfile@^4.0.6:\n    version \"4.0.6\"\n    resolved \"https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b\"\n    integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==\n  \n  isbuiltin@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/isbuiltin/-/isbuiltin-1.0.0.tgz#4453b2915690cb47c0cb9c9255a0807778315c96\"\n    integrity sha1-RFOykVaQy0fAy5ySVaCAd3gxXJY=\n    dependencies:\n      builtin-modules \"^1.1.1\"\n  \n  isexe@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10\"\n    integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=\n  \n  isobject@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89\"\n    integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=\n    dependencies:\n      isarray \"1.0.0\"\n  \n  isobject@^3.0.0, isobject@^3.0.1:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df\"\n    integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=\n  \n  isstream@~0.1.2:\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a\"\n    integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=\n  \n  istanbul-lib-coverage@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec\"\n    integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==\n  \n  istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3:\n    version \"4.0.3\"\n    resolved \"https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d\"\n    integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==\n    dependencies:\n      \"@babel/core\" \"^7.7.5\"\n      \"@istanbuljs/schema\" \"^0.1.2\"\n      istanbul-lib-coverage \"^3.0.0\"\n      semver \"^6.3.0\"\n  \n  istanbul-lib-report@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6\"\n    integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==\n    dependencies:\n      istanbul-lib-coverage \"^3.0.0\"\n      make-dir \"^3.0.0\"\n      supports-color \"^7.1.0\"\n  \n  istanbul-lib-source-maps@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9\"\n    integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==\n    dependencies:\n      debug \"^4.1.1\"\n      istanbul-lib-coverage \"^3.0.0\"\n      source-map \"^0.6.1\"\n  \n  istanbul-reports@^3.0.2:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b\"\n    integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==\n    dependencies:\n      html-escaper \"^2.0.0\"\n      istanbul-lib-report \"^3.0.0\"\n  \n  jasmine-fail-fast@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/jasmine-fail-fast/-/jasmine-fail-fast-2.0.1.tgz#222daa16c89b675aba4ed9552d62cf0d1e759d71\"\n    integrity sha512-En8ONwvDQOV+jyiZEZvbvUSLWSdJFj9HiWjhLdGq/V/gxs4XyST730ooe928BbRxv4bfy05OpykKuoOU4aLC5w==\n    dependencies:\n      lodash \"^4.17.15\"\n  \n  jest-changed-files@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0\"\n    integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      execa \"^4.0.0\"\n      throat \"^5.0.0\"\n  \n  jest-cli@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a\"\n    integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==\n    dependencies:\n      \"@jest/core\" \"^26.6.3\"\n      \"@jest/test-result\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      chalk \"^4.0.0\"\n      exit \"^0.1.2\"\n      graceful-fs \"^4.2.4\"\n      import-local \"^3.0.2\"\n      is-ci \"^2.0.0\"\n      jest-config \"^26.6.3\"\n      jest-util \"^26.6.2\"\n      jest-validate \"^26.6.2\"\n      prompts \"^2.0.1\"\n      yargs \"^15.4.1\"\n  \n  jest-config@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349\"\n    integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==\n    dependencies:\n      \"@babel/core\" \"^7.1.0\"\n      \"@jest/test-sequencer\" \"^26.6.3\"\n      \"@jest/types\" \"^26.6.2\"\n      babel-jest \"^26.6.3\"\n      chalk \"^4.0.0\"\n      deepmerge \"^4.2.2\"\n      glob \"^7.1.1\"\n      graceful-fs \"^4.2.4\"\n      jest-environment-jsdom \"^26.6.2\"\n      jest-environment-node \"^26.6.2\"\n      jest-get-type \"^26.3.0\"\n      jest-jasmine2 \"^26.6.3\"\n      jest-regex-util \"^26.0.0\"\n      jest-resolve \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      jest-validate \"^26.6.2\"\n      micromatch \"^4.0.2\"\n      pretty-format \"^26.6.2\"\n  \n  jest-diff@^26.0.0, jest-diff@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394\"\n    integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==\n    dependencies:\n      chalk \"^4.0.0\"\n      diff-sequences \"^26.6.2\"\n      jest-get-type \"^26.3.0\"\n      pretty-format \"^26.6.2\"\n  \n  jest-docblock@^26.0.0:\n    version \"26.0.0\"\n    resolved \"https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5\"\n    integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==\n    dependencies:\n      detect-newline \"^3.0.0\"\n  \n  jest-each@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb\"\n    integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      chalk \"^4.0.0\"\n      jest-get-type \"^26.3.0\"\n      jest-util \"^26.6.2\"\n      pretty-format \"^26.6.2\"\n  \n  jest-environment-jsdom@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e\"\n    integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==\n    dependencies:\n      \"@jest/environment\" \"^26.6.2\"\n      \"@jest/fake-timers\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      jest-mock \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      jsdom \"^16.4.0\"\n  \n  jest-environment-node@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c\"\n    integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==\n    dependencies:\n      \"@jest/environment\" \"^26.6.2\"\n      \"@jest/fake-timers\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      jest-mock \"^26.6.2\"\n      jest-util \"^26.6.2\"\n  \n  jest-get-type@^26.3.0:\n    version \"26.3.0\"\n    resolved \"https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0\"\n    integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==\n  \n  jest-haste-map@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa\"\n    integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/graceful-fs\" \"^4.1.2\"\n      \"@types/node\" \"*\"\n      anymatch \"^3.0.3\"\n      fb-watchman \"^2.0.0\"\n      graceful-fs \"^4.2.4\"\n      jest-regex-util \"^26.0.0\"\n      jest-serializer \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      jest-worker \"^26.6.2\"\n      micromatch \"^4.0.2\"\n      sane \"^4.0.3\"\n      walker \"^1.0.7\"\n    optionalDependencies:\n      fsevents \"^2.1.2\"\n  \n  jest-jasmine2@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd\"\n    integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==\n    dependencies:\n      \"@babel/traverse\" \"^7.1.0\"\n      \"@jest/environment\" \"^26.6.2\"\n      \"@jest/source-map\" \"^26.6.2\"\n      \"@jest/test-result\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      chalk \"^4.0.0\"\n      co \"^4.6.0\"\n      expect \"^26.6.2\"\n      is-generator-fn \"^2.0.0\"\n      jest-each \"^26.6.2\"\n      jest-matcher-utils \"^26.6.2\"\n      jest-message-util \"^26.6.2\"\n      jest-runtime \"^26.6.3\"\n      jest-snapshot \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      pretty-format \"^26.6.2\"\n      throat \"^5.0.0\"\n  \n  jest-leak-detector@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af\"\n    integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==\n    dependencies:\n      jest-get-type \"^26.3.0\"\n      pretty-format \"^26.6.2\"\n  \n  jest-matcher-utils@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a\"\n    integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==\n    dependencies:\n      chalk \"^4.0.0\"\n      jest-diff \"^26.6.2\"\n      jest-get-type \"^26.3.0\"\n      pretty-format \"^26.6.2\"\n  \n  jest-message-util@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07\"\n    integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==\n    dependencies:\n      \"@babel/code-frame\" \"^7.0.0\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/stack-utils\" \"^2.0.0\"\n      chalk \"^4.0.0\"\n      graceful-fs \"^4.2.4\"\n      micromatch \"^4.0.2\"\n      pretty-format \"^26.6.2\"\n      slash \"^3.0.0\"\n      stack-utils \"^2.0.2\"\n  \n  jest-mock@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302\"\n    integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n  \n  jest-pnp-resolver@^1.2.2:\n    version \"1.2.2\"\n    resolved \"https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c\"\n    integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==\n  \n  jest-regex-util@^26.0.0:\n    version \"26.0.0\"\n    resolved \"https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28\"\n    integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==\n  \n  jest-resolve-dependencies@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6\"\n    integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      jest-regex-util \"^26.0.0\"\n      jest-snapshot \"^26.6.2\"\n  \n  jest-resolve@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507\"\n    integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      chalk \"^4.0.0\"\n      graceful-fs \"^4.2.4\"\n      jest-pnp-resolver \"^1.2.2\"\n      jest-util \"^26.6.2\"\n      read-pkg-up \"^7.0.1\"\n      resolve \"^1.18.1\"\n      slash \"^3.0.0\"\n  \n  jest-runner@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159\"\n    integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==\n    dependencies:\n      \"@jest/console\" \"^26.6.2\"\n      \"@jest/environment\" \"^26.6.2\"\n      \"@jest/test-result\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      chalk \"^4.0.0\"\n      emittery \"^0.7.1\"\n      exit \"^0.1.2\"\n      graceful-fs \"^4.2.4\"\n      jest-config \"^26.6.3\"\n      jest-docblock \"^26.0.0\"\n      jest-haste-map \"^26.6.2\"\n      jest-leak-detector \"^26.6.2\"\n      jest-message-util \"^26.6.2\"\n      jest-resolve \"^26.6.2\"\n      jest-runtime \"^26.6.3\"\n      jest-util \"^26.6.2\"\n      jest-worker \"^26.6.2\"\n      source-map-support \"^0.5.6\"\n      throat \"^5.0.0\"\n  \n  jest-runtime@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b\"\n    integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==\n    dependencies:\n      \"@jest/console\" \"^26.6.2\"\n      \"@jest/environment\" \"^26.6.2\"\n      \"@jest/fake-timers\" \"^26.6.2\"\n      \"@jest/globals\" \"^26.6.2\"\n      \"@jest/source-map\" \"^26.6.2\"\n      \"@jest/test-result\" \"^26.6.2\"\n      \"@jest/transform\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/yargs\" \"^15.0.0\"\n      chalk \"^4.0.0\"\n      cjs-module-lexer \"^0.6.0\"\n      collect-v8-coverage \"^1.0.0\"\n      exit \"^0.1.2\"\n      glob \"^7.1.3\"\n      graceful-fs \"^4.2.4\"\n      jest-config \"^26.6.3\"\n      jest-haste-map \"^26.6.2\"\n      jest-message-util \"^26.6.2\"\n      jest-mock \"^26.6.2\"\n      jest-regex-util \"^26.0.0\"\n      jest-resolve \"^26.6.2\"\n      jest-snapshot \"^26.6.2\"\n      jest-util \"^26.6.2\"\n      jest-validate \"^26.6.2\"\n      slash \"^3.0.0\"\n      strip-bom \"^4.0.0\"\n      yargs \"^15.4.1\"\n  \n  jest-serializer@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1\"\n    integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==\n    dependencies:\n      \"@types/node\" \"*\"\n      graceful-fs \"^4.2.4\"\n  \n  jest-snapshot@^26.3.0, jest-snapshot@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84\"\n    integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==\n    dependencies:\n      \"@babel/types\" \"^7.0.0\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/babel__traverse\" \"^7.0.4\"\n      \"@types/prettier\" \"^2.0.0\"\n      chalk \"^4.0.0\"\n      expect \"^26.6.2\"\n      graceful-fs \"^4.2.4\"\n      jest-diff \"^26.6.2\"\n      jest-get-type \"^26.3.0\"\n      jest-haste-map \"^26.6.2\"\n      jest-matcher-utils \"^26.6.2\"\n      jest-message-util \"^26.6.2\"\n      jest-resolve \"^26.6.2\"\n      natural-compare \"^1.4.0\"\n      pretty-format \"^26.6.2\"\n      semver \"^7.3.2\"\n  \n  jest-specific-snapshot@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/jest-specific-snapshot/-/jest-specific-snapshot-4.0.0.tgz#a52a2e223e7576e610dbeaf341207c557ac20554\"\n    integrity sha512-YdW5P/MVwOizWR0MJwURxdrjdXvdG2MMpXKVGr7dZ2YrBmE6E6Ab74UL3DOYmGmzaCnNAW1CL02pY5MTHE3ulQ==\n    dependencies:\n      jest-snapshot \"^26.3.0\"\n  \n  jest-util@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1\"\n    integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      chalk \"^4.0.0\"\n      graceful-fs \"^4.2.4\"\n      is-ci \"^2.0.0\"\n      micromatch \"^4.0.2\"\n  \n  jest-validate@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec\"\n    integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      camelcase \"^6.0.0\"\n      chalk \"^4.0.0\"\n      jest-get-type \"^26.3.0\"\n      leven \"^3.1.0\"\n      pretty-format \"^26.6.2\"\n  \n  jest-watcher@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975\"\n    integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==\n    dependencies:\n      \"@jest/test-result\" \"^26.6.2\"\n      \"@jest/types\" \"^26.6.2\"\n      \"@types/node\" \"*\"\n      ansi-escapes \"^4.2.1\"\n      chalk \"^4.0.0\"\n      jest-util \"^26.6.2\"\n      string-length \"^4.0.1\"\n  \n  jest-worker@24.9.0:\n    version \"24.9.0\"\n    resolved \"https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5\"\n    integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==\n    dependencies:\n      merge-stream \"^2.0.0\"\n      supports-color \"^6.1.0\"\n  \n  jest-worker@^26.2.1, jest-worker@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed\"\n    integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==\n    dependencies:\n      \"@types/node\" \"*\"\n      merge-stream \"^2.0.0\"\n      supports-color \"^7.0.0\"\n  \n  jest@^26.6.3:\n    version \"26.6.3\"\n    resolved \"https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef\"\n    integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==\n    dependencies:\n      \"@jest/core\" \"^26.6.3\"\n      import-local \"^3.0.2\"\n      jest-cli \"^26.6.3\"\n  \n  joycon@^2.2.5:\n    version \"2.2.5\"\n    resolved \"https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615\"\n    integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==\n  \n  js-string-escape@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef\"\n    integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=\n  \n  \"js-tokens@^3.0.0 || ^4.0.0\", js-tokens@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499\"\n    integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\n  \n  js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1:\n    version \"3.14.0\"\n    resolved \"https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482\"\n    integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==\n    dependencies:\n      argparse \"^1.0.7\"\n      esprima \"^4.0.0\"\n  \n  jsbn@~0.1.0:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513\"\n    integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=\n  \n  jsdom@^16.4.0:\n    version \"16.4.0\"\n    resolved \"https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb\"\n    integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==\n    dependencies:\n      abab \"^2.0.3\"\n      acorn \"^7.1.1\"\n      acorn-globals \"^6.0.0\"\n      cssom \"^0.4.4\"\n      cssstyle \"^2.2.0\"\n      data-urls \"^2.0.0\"\n      decimal.js \"^10.2.0\"\n      domexception \"^2.0.1\"\n      escodegen \"^1.14.1\"\n      html-encoding-sniffer \"^2.0.1\"\n      is-potential-custom-element-name \"^1.0.0\"\n      nwsapi \"^2.2.0\"\n      parse5 \"5.1.1\"\n      request \"^2.88.2\"\n      request-promise-native \"^1.0.8\"\n      saxes \"^5.0.0\"\n      symbol-tree \"^3.2.4\"\n      tough-cookie \"^3.0.1\"\n      w3c-hr-time \"^1.0.2\"\n      w3c-xmlserializer \"^2.0.0\"\n      webidl-conversions \"^6.1.0\"\n      whatwg-encoding \"^1.0.5\"\n      whatwg-mimetype \"^2.3.0\"\n      whatwg-url \"^8.0.0\"\n      ws \"^7.2.3\"\n      xml-name-validator \"^3.0.0\"\n  \n  jsesc@^2.5.1:\n    version \"2.5.2\"\n    resolved \"https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4\"\n    integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==\n  \n  jsesc@~0.5.0:\n    version \"0.5.0\"\n    resolved \"https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d\"\n    integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=\n  \n  json-buffer@3.0.1:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13\"\n    integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==\n  \n  json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9\"\n    integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==\n  \n  json-parse-even-better-errors@^2.3.0:\n    version \"2.3.1\"\n    resolved \"https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d\"\n    integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==\n  \n  json-schema-traverse@^0.4.1:\n    version \"0.4.1\"\n    resolved \"https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660\"\n    integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==\n  \n  json-schema@0.2.3:\n    version \"0.2.3\"\n    resolved \"https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13\"\n    integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=\n  \n  json-stringify-safe@~5.0.1:\n    version \"5.0.1\"\n    resolved \"https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb\"\n    integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=\n  \n  json5@^0.5.0:\n    version \"0.5.1\"\n    resolved \"https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821\"\n    integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=\n  \n  json5@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe\"\n    integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==\n    dependencies:\n      minimist \"^1.2.0\"\n  \n  json5@^2.1.0, json5@^2.1.1, json5@^2.1.2:\n    version \"2.1.3\"\n    resolved \"https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43\"\n    integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==\n    dependencies:\n      minimist \"^1.2.5\"\n  \n  jsonfile@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb\"\n    integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=\n    optionalDependencies:\n      graceful-fs \"^4.1.6\"\n  \n  jsonfile@^6.0.1:\n    version \"6.1.0\"\n    resolved \"https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae\"\n    integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==\n    dependencies:\n      universalify \"^2.0.0\"\n    optionalDependencies:\n      graceful-fs \"^4.1.6\"\n  \n  jsonp@^0.2.1:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/jsonp/-/jsonp-0.2.1.tgz#a65b4fa0f10bda719a05441ea7b94c55f3e15bae\"\n    integrity sha1-pltPoPEL2nGaBUQep7lMVfPhW64=\n    dependencies:\n      debug \"^2.1.3\"\n  \n  jsonschema@~1.2.5:\n    version \"1.2.11\"\n    resolved \"https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.11.tgz#7a799cc2aa5a285d893203e8dc81f5becbfb0e91\"\n    integrity sha512-XNZHs3N1IOa3lPKm//npxMhOdaoPw+MvEV0NIgxcER83GTJcG13rehtWmpBCfEt8DrtYwIkMTs8bdXoYs4fvnQ==\n  \n  jsprim@^1.2.2:\n    version \"1.4.1\"\n    resolved \"https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2\"\n    integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=\n    dependencies:\n      assert-plus \"1.0.0\"\n      extsprintf \"1.3.0\"\n      json-schema \"0.2.3\"\n      verror \"1.10.0\"\n  \n  jsx-ast-utils@^2.3.0:\n    version \"2.4.1\"\n    resolved \"https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e\"\n    integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==\n    dependencies:\n      array-includes \"^3.1.1\"\n      object.assign \"^4.1.0\"\n  \n  keygrip@~1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226\"\n    integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==\n    dependencies:\n      tsscmp \"1.0.6\"\n  \n  keyv@^4.0.0:\n    version \"4.0.3\"\n    resolved \"https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254\"\n    integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==\n    dependencies:\n      json-buffer \"3.0.1\"\n  \n  kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:\n    version \"3.2.2\"\n    resolved \"https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64\"\n    integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=\n    dependencies:\n      is-buffer \"^1.1.5\"\n  \n  kind-of@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57\"\n    integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=\n    dependencies:\n      is-buffer \"^1.1.5\"\n  \n  kind-of@^5.0.0:\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d\"\n    integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==\n  \n  kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:\n    version \"6.0.3\"\n    resolved \"https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd\"\n    integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==\n  \n  kleur@^3.0.3:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e\"\n    integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==\n  \n  kleur@^4.1.0, kleur@^4.1.1:\n    version \"4.1.3\"\n    resolved \"https://registry.yarnpkg.com/kleur/-/kleur-4.1.3.tgz#8d262a56d79a137ee1b706e967c0b08a7fef4f4c\"\n    integrity sha512-H1tr8QP2PxFTNwAFM74Mui2b6ovcY9FoxJefgrwxY+OCJcq01k5nvhf4M/KnizzrJvLRap5STUy7dgDV35iUBw==\n  \n  klona@^2.0.4:\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0\"\n    integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==\n  \n  koa-body@^4.2.0:\n    version \"4.2.0\"\n    resolved \"https://registry.yarnpkg.com/koa-body/-/koa-body-4.2.0.tgz#37229208b820761aca5822d14c5fc55cee31b26f\"\n    integrity sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA==\n    dependencies:\n      \"@types/formidable\" \"^1.0.31\"\n      co-body \"^5.1.1\"\n      formidable \"^1.1.1\"\n  \n  koa-compose@^3.0.0:\n    version \"3.2.1\"\n    resolved \"https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7\"\n    integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=\n    dependencies:\n      any-promise \"^1.1.0\"\n  \n  koa-compose@^4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877\"\n    integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==\n  \n  koa-conditional-get@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/koa-conditional-get/-/koa-conditional-get-3.0.0.tgz#552cb64a217dfb907e90b7c34f42009e441c4b8e\"\n    integrity sha512-VKyPS7SuNH26TjTV2IRz+oh0HV/jc2lYAo51PTQTkj0XFn8ebNZW9riczmrW7ZVBFSnls1Z88DPUYKnvVymruA==\n  \n  koa-convert@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0\"\n    integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=\n    dependencies:\n      co \"^4.6.0\"\n      koa-compose \"^3.0.0\"\n  \n  koa-etag@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/koa-etag/-/koa-etag-4.0.0.tgz#2c2bb7ae69ca1ac6ced09ba28dcb78523c810414\"\n    integrity sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==\n    dependencies:\n      etag \"^1.8.1\"\n  \n  koa-mount@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c\"\n    integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ==\n    dependencies:\n      debug \"^4.0.1\"\n      koa-compose \"^4.1.0\"\n  \n  koa-proxies@^0.11.0:\n    version \"0.11.0\"\n    resolved \"https://registry.yarnpkg.com/koa-proxies/-/koa-proxies-0.11.0.tgz#43dde4260080f7cb0f284655f85cf654bbe9ec84\"\n    integrity sha512-iXGRADBE0fM7g7AttNOlLZ/cCFKXeVMHbFJKIRb0dUCrSYXi02loyVSdBlKlBQ5ZfVKJLo9Q9FyqwVTp1poVVA==\n    dependencies:\n      http-proxy \"^1.16.2\"\n      path-match \"^1.2.4\"\n  \n  koa-send@^5.0.0, koa-send@^5.0.1:\n    version \"5.0.1\"\n    resolved \"https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79\"\n    integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==\n    dependencies:\n      debug \"^4.1.1\"\n      http-errors \"^1.7.3\"\n      resolve-path \"^1.4.0\"\n  \n  koa-static@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943\"\n    integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==\n    dependencies:\n      debug \"^3.1.0\"\n      koa-send \"^5.0.0\"\n  \n  koa@^2.13.0:\n    version \"2.13.0\"\n    resolved \"https://registry.yarnpkg.com/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501\"\n    integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ==\n    dependencies:\n      accepts \"^1.3.5\"\n      cache-content-type \"^1.0.0\"\n      content-disposition \"~0.5.2\"\n      content-type \"^1.0.4\"\n      cookies \"~0.8.0\"\n      debug \"~3.1.0\"\n      delegates \"^1.0.0\"\n      depd \"^1.1.2\"\n      destroy \"^1.0.4\"\n      encodeurl \"^1.0.2\"\n      escape-html \"^1.0.3\"\n      fresh \"~0.5.2\"\n      http-assert \"^1.3.0\"\n      http-errors \"^1.6.3\"\n      is-generator-function \"^1.0.7\"\n      koa-compose \"^4.1.0\"\n      koa-convert \"^1.2.0\"\n      on-finished \"^2.3.0\"\n      only \"~0.0.2\"\n      parseurl \"^1.3.2\"\n      statuses \"^1.5.0\"\n      type-is \"^1.6.16\"\n      vary \"^1.1.2\"\n  \n  landing-blocks@^2.0.2:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/landing-blocks/-/landing-blocks-2.0.2.tgz#4537a8a8b25d05f98c536304a6bdc776f52de444\"\n    integrity sha512-REj1Khw68BASIeexvEnI/lLRFIKIDxcF1ysQ+rPfAH0G2oWzE2SExtIdsQvVnU+no7RT0MkhAXjcl8cGABIJQA==\n    dependencies:\n      \"@emotion/styled\" \"11\"\n      baby-i-am-faded \"^2.0.1\"\n      color-js \"^1.0.5\"\n      intersection-observer \"^0.7.0\"\n      lodash.get \"^4.4.2\"\n      lodash.merge \"^4.6.2\"\n      prism-react-renderer \"^1.1.0\"\n      react-mailchimp-subscribe \"^2.1.0\"\n      react-script-hook \"^1.1.1\"\n      react-twitter-embed \"^3.0.3\"\n      react-typical \"^0.1.3\"\n      react-typist \"^2.0.5\"\n      utility-types \"^3.10.0\"\n  \n  launch-editor@^2.2.1:\n    version \"2.2.1\"\n    resolved \"https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca\"\n    integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==\n    dependencies:\n      chalk \"^2.3.0\"\n      shell-quote \"^1.6.1\"\n  \n  leven@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2\"\n    integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==\n  \n  levn@~0.3.0:\n    version \"0.3.0\"\n    resolved \"https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee\"\n    integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=\n    dependencies:\n      prelude-ls \"~1.1.2\"\n      type-check \"~0.3.2\"\n  \n  line-column@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2\"\n    integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI=\n    dependencies:\n      isarray \"^1.0.0\"\n      isobject \"^2.0.0\"\n  \n  lines-and-columns@^1.1.6:\n    version \"1.1.6\"\n    resolved \"https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00\"\n    integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=\n  \n  load-json-file@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b\"\n    integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=\n    dependencies:\n      graceful-fs \"^4.1.2\"\n      parse-json \"^4.0.0\"\n      pify \"^3.0.0\"\n      strip-bom \"^3.0.0\"\n  \n  load-yaml-file@^0.2.0:\n    version \"0.2.0\"\n    resolved \"https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d\"\n    integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==\n    dependencies:\n      graceful-fs \"^4.1.5\"\n      js-yaml \"^3.13.0\"\n      pify \"^4.0.1\"\n      strip-bom \"^3.0.0\"\n  \n  loader-runner@^2.4.0:\n    version \"2.4.0\"\n    resolved \"https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357\"\n    integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==\n  \n  loader-utils@1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd\"\n    integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=\n    dependencies:\n      big.js \"^3.1.3\"\n      emojis-list \"^2.0.0\"\n      json5 \"^0.5.0\"\n  \n  loader-utils@1.2.3:\n    version \"1.2.3\"\n    resolved \"https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7\"\n    integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==\n    dependencies:\n      big.js \"^5.2.2\"\n      emojis-list \"^2.0.0\"\n      json5 \"^1.0.1\"\n  \n  loader-utils@2.0.0, loader-utils@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0\"\n    integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==\n    dependencies:\n      big.js \"^5.2.2\"\n      emojis-list \"^3.0.0\"\n      json5 \"^2.1.2\"\n  \n  loader-utils@^1.1.0, loader-utils@^1.2.3:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613\"\n    integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==\n    dependencies:\n      big.js \"^5.2.2\"\n      emojis-list \"^3.0.0\"\n      json5 \"^1.0.1\"\n  \n  locate-path@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e\"\n    integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==\n    dependencies:\n      p-locate \"^3.0.0\"\n      path-exists \"^3.0.0\"\n  \n  locate-path@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0\"\n    integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==\n    dependencies:\n      p-locate \"^4.1.0\"\n  \n  locate-path@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286\"\n    integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==\n    dependencies:\n      p-locate \"^5.0.0\"\n  \n  lodash.camelcase@^4.3.0:\n    version \"4.3.0\"\n    resolved \"https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6\"\n    integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=\n  \n  lodash.get@^4.4.2:\n    version \"4.4.2\"\n    resolved \"https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99\"\n    integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=\n  \n  lodash.merge@^4.6.2:\n    version \"4.6.2\"\n    resolved \"https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a\"\n    integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==\n  \n  lodash.mergewith@4.6.2:\n    version \"4.6.2\"\n    resolved \"https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55\"\n    integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==\n  \n  lodash.sortby@^4.7.0:\n    version \"4.7.0\"\n    resolved \"https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438\"\n    integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=\n  \n  lodash.startcase@^4.4.0:\n    version \"4.4.0\"\n    resolved \"https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8\"\n    integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=\n  \n  lodash.toarray@^4.4.0:\n    version \"4.4.0\"\n    resolved \"https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561\"\n    integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=\n  \n  lodash.uniq@4.5.0:\n    version \"4.5.0\"\n    resolved \"https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773\"\n    integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=\n  \n  lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20:\n    version \"4.17.20\"\n    resolved \"https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52\"\n    integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==\n  \n  log-symbols@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920\"\n    integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==\n    dependencies:\n      chalk \"^4.0.0\"\n  \n  longest-streak@^2.0.1:\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4\"\n    integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==\n  \n  loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf\"\n    integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\n    dependencies:\n      js-tokens \"^3.0.0 || ^4.0.0\"\n  \n  lowercase-keys@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479\"\n    integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==\n  \n  lru-cache@6.0.0, lru-cache@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94\"\n    integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==\n    dependencies:\n      yallist \"^4.0.0\"\n  \n  lru-cache@^4.0.1:\n    version \"4.1.5\"\n    resolved \"https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd\"\n    integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==\n    dependencies:\n      pseudomap \"^1.0.2\"\n      yallist \"^2.1.2\"\n  \n  lru-cache@^5.1.1:\n    version \"5.1.1\"\n    resolved \"https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920\"\n    integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\n    dependencies:\n      yallist \"^3.0.2\"\n  \n  magic-string@^0.25.1, magic-string@^0.25.2, magic-string@^0.25.3, magic-string@^0.25.5, magic-string@^0.25.7:\n    version \"0.25.7\"\n    resolved \"https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051\"\n    integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==\n    dependencies:\n      sourcemap-codec \"^1.4.4\"\n  \n  make-dir@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5\"\n    integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==\n    dependencies:\n      pify \"^4.0.1\"\n      semver \"^5.6.0\"\n  \n  make-dir@^3.0.0, make-dir@^3.0.2:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f\"\n    integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==\n    dependencies:\n      semver \"^6.0.0\"\n  \n  makeerror@1.0.x:\n    version \"1.0.11\"\n    resolved \"https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c\"\n    integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=\n    dependencies:\n      tmpl \"1.0.x\"\n  \n  map-cache@^0.2.2:\n    version \"0.2.2\"\n    resolved \"https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf\"\n    integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=\n  \n  map-obj@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d\"\n    integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=\n  \n  map-obj@^4.0.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5\"\n    integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==\n  \n  map-visit@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f\"\n    integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=\n    dependencies:\n      object-visit \"^1.0.0\"\n  \n  markdown-escapes@^1.0.0:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535\"\n    integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==\n  \n  markdown-table@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b\"\n    integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==\n    dependencies:\n      repeat-string \"^1.0.0\"\n  \n  md5.js@^1.3.4:\n    version \"1.3.5\"\n    resolved \"https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f\"\n    integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==\n    dependencies:\n      hash-base \"^3.0.0\"\n      inherits \"^2.0.1\"\n      safe-buffer \"^5.1.2\"\n  \n  mdast-squeeze-paragraphs@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97\"\n    integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==\n    dependencies:\n      unist-util-remove \"^2.0.0\"\n  \n  mdast-util-compact@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490\"\n    integrity sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==\n    dependencies:\n      unist-util-visit \"^2.0.0\"\n  \n  mdast-util-definitions@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2\"\n    integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==\n    dependencies:\n      unist-util-visit \"^2.0.0\"\n  \n  mdast-util-to-hast@10.0.1:\n    version \"10.0.1\"\n    resolved \"https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb\"\n    integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==\n    dependencies:\n      \"@types/mdast\" \"^3.0.0\"\n      \"@types/unist\" \"^2.0.0\"\n      mdast-util-definitions \"^4.0.0\"\n      mdurl \"^1.0.0\"\n      unist-builder \"^2.0.0\"\n      unist-util-generated \"^1.0.0\"\n      unist-util-position \"^3.0.0\"\n      unist-util-visit \"^2.0.0\"\n  \n  mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527\"\n    integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==\n  \n  mdast-util-to-string@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b\"\n    integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==\n  \n  mdast-util-toc@^5.0.3:\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/mdast-util-toc/-/mdast-util-toc-5.1.0.tgz#3af0f9c9a764b993538af03f1f79f4e3cec22736\"\n    integrity sha512-csimbRIVkiqc+PpFeKDGQ/Ck2N4f9FYH3zzBMMJzcxoKL8m+cM0n94xXm0I9eaxHnKdY9n145SGTdyJC7i273g==\n    dependencies:\n      \"@types/mdast\" \"^3.0.3\"\n      \"@types/unist\" \"^2.0.3\"\n      extend \"^3.0.2\"\n      github-slugger \"^1.2.1\"\n      mdast-util-to-string \"^2.0.0\"\n      unist-util-is \"^4.0.0\"\n      unist-util-visit \"^2.0.0\"\n  \n  mdast@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/mdast/-/mdast-3.0.0.tgz#626bce9603ed43fb6fb053245a6e4a17f4457aa8\"\n    integrity sha1-YmvOlgPtQ/tvsFMkWm5KF/RFeqg=\n  \n  mdurl@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e\"\n    integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=\n  \n  media-typer@0.3.0:\n    version \"0.3.0\"\n    resolved \"https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748\"\n    integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=\n  \n  memory-fs@^0.4.1:\n    version \"0.4.1\"\n    resolved \"https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552\"\n    integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=\n    dependencies:\n      errno \"^0.1.3\"\n      readable-stream \"^2.0.1\"\n  \n  memory-fs@^0.5.0:\n    version \"0.5.0\"\n    resolved \"https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c\"\n    integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==\n    dependencies:\n      errno \"^0.1.3\"\n      readable-stream \"^2.0.1\"\n  \n  memorystream@^0.3.1:\n    version \"0.3.1\"\n    resolved \"https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2\"\n    integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=\n  \n  meow@^6.0.0:\n    version \"6.1.1\"\n    resolved \"https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467\"\n    integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==\n    dependencies:\n      \"@types/minimist\" \"^1.2.0\"\n      camelcase-keys \"^6.2.2\"\n      decamelize-keys \"^1.1.0\"\n      hard-rejection \"^2.1.0\"\n      minimist-options \"^4.0.2\"\n      normalize-package-data \"^2.5.0\"\n      read-pkg-up \"^7.0.1\"\n      redent \"^3.0.0\"\n      trim-newlines \"^3.0.0\"\n      type-fest \"^0.13.1\"\n      yargs-parser \"^18.1.3\"\n  \n  merge-source-map@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646\"\n    integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==\n    dependencies:\n      source-map \"^0.6.1\"\n  \n  merge-stream@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60\"\n    integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\n  \n  merge2@^1.3.0:\n    version \"1.4.1\"\n    resolved \"https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae\"\n    integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==\n  \n  methods@^1.1.2:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee\"\n    integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=\n  \n  micro-memoize@^4.0.9:\n    version \"4.0.9\"\n    resolved \"https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.0.9.tgz#b44a38c9dffbee1cefc2fd139bc8947952268b62\"\n    integrity sha512-Z2uZi/IUMGQDCXASdujXRqrXXEwSY0XffUrAOllhqzQI3wpUyZbiZTiE2JuYC0HSG2G7DbCS5jZmsEKEGZuemg==\n  \n  micromatch@^3.1.10, micromatch@^3.1.4:\n    version \"3.1.10\"\n    resolved \"https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23\"\n    integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==\n    dependencies:\n      arr-diff \"^4.0.0\"\n      array-unique \"^0.3.2\"\n      braces \"^2.3.1\"\n      define-property \"^2.0.2\"\n      extend-shallow \"^3.0.2\"\n      extglob \"^2.0.4\"\n      fragment-cache \"^0.2.1\"\n      kind-of \"^6.0.2\"\n      nanomatch \"^1.2.9\"\n      object.pick \"^1.3.0\"\n      regex-not \"^1.0.0\"\n      snapdragon \"^0.8.1\"\n      to-regex \"^3.0.2\"\n  \n  micromatch@^4.0.2:\n    version \"4.0.2\"\n    resolved \"https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259\"\n    integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==\n    dependencies:\n      braces \"^3.0.1\"\n      picomatch \"^2.0.5\"\n  \n  miller-rabin@^4.0.0:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d\"\n    integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==\n    dependencies:\n      bn.js \"^4.0.0\"\n      brorand \"^1.0.1\"\n  \n  mime-db@1.44.0:\n    version \"1.44.0\"\n    resolved \"https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92\"\n    integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==\n  \n  mime-db@1.45.0, \"mime-db@>= 1.43.0 < 2\":\n    version \"1.45.0\"\n    resolved \"https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea\"\n    integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==\n  \n  mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24:\n    version \"2.1.27\"\n    resolved \"https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f\"\n    integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==\n    dependencies:\n      mime-db \"1.44.0\"\n  \n  mime-types@^2.1.28:\n    version \"2.1.28\"\n    resolved \"https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd\"\n    integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==\n    dependencies:\n      mime-db \"1.45.0\"\n  \n  mimic-fn@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b\"\n    integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==\n  \n  mimic-response@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b\"\n    integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==\n  \n  mimic-response@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43\"\n    integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==\n  \n  mimic-response@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9\"\n    integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==\n  \n  min-indent@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869\"\n    integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==\n  \n  mini-create-react-context@^0.4.0:\n    version \"0.4.1\"\n    resolved \"https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e\"\n    integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==\n    dependencies:\n      \"@babel/runtime\" \"^7.12.1\"\n      tiny-warning \"^1.0.3\"\n  \n  minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7\"\n    integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==\n  \n  minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a\"\n    integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=\n  \n  minimatch@^3.0.4:\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083\"\n    integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==\n    dependencies:\n      brace-expansion \"^1.1.7\"\n  \n  minimist-options@^4.0.2:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619\"\n    integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==\n    dependencies:\n      arrify \"^1.0.1\"\n      is-plain-obj \"^1.1.0\"\n      kind-of \"^6.0.3\"\n  \n  minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:\n    version \"1.2.5\"\n    resolved \"https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602\"\n    integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==\n  \n  minipass-collect@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617\"\n    integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==\n    dependencies:\n      minipass \"^3.0.0\"\n  \n  minipass-flush@^1.0.5:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373\"\n    integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==\n    dependencies:\n      minipass \"^3.0.0\"\n  \n  minipass-pipeline@^1.2.2:\n    version \"1.2.4\"\n    resolved \"https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c\"\n    integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==\n    dependencies:\n      minipass \"^3.0.0\"\n  \n  minipass@^3.0.0, minipass@^3.1.1:\n    version \"3.1.3\"\n    resolved \"https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd\"\n    integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==\n    dependencies:\n      yallist \"^4.0.0\"\n  \n  minizlib@^2.1.1:\n    version \"2.1.2\"\n    resolved \"https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931\"\n    integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==\n    dependencies:\n      minipass \"^3.0.0\"\n      yallist \"^4.0.0\"\n  \n  mississippi@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022\"\n    integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==\n    dependencies:\n      concat-stream \"^1.5.0\"\n      duplexify \"^3.4.2\"\n      end-of-stream \"^1.1.0\"\n      flush-write-stream \"^1.0.0\"\n      from2 \"^2.1.0\"\n      parallel-transform \"^1.1.0\"\n      pump \"^3.0.0\"\n      pumpify \"^1.3.3\"\n      stream-each \"^1.1.0\"\n      through2 \"^2.0.0\"\n  \n  mixin-deep@^1.2.0:\n    version \"1.3.2\"\n    resolved \"https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566\"\n    integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==\n    dependencies:\n      for-in \"^1.0.2\"\n      is-extendable \"^1.0.1\"\n  \n  mixme@^0.4.0:\n    version \"0.4.0\"\n    resolved \"https://registry.yarnpkg.com/mixme/-/mixme-0.4.0.tgz#a1aee27f0d63cc905e1cc6ddc98abf94d414435e\"\n    integrity sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw==\n  \n  mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:\n    version \"0.5.3\"\n    resolved \"https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113\"\n    integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==\n  \n  mkdirp@^0.5.1, mkdirp@^0.5.3:\n    version \"0.5.5\"\n    resolved \"https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def\"\n    integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==\n    dependencies:\n      minimist \"^1.2.5\"\n  \n  mkdirp@^1.0.3, mkdirp@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e\"\n    integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==\n  \n  move-concurrently@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92\"\n    integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=\n    dependencies:\n      aproba \"^1.1.1\"\n      copy-concurrently \"^1.0.0\"\n      fs-write-stream-atomic \"^1.0.8\"\n      mkdirp \"^0.5.1\"\n      rimraf \"^2.5.4\"\n      run-queue \"^1.0.3\"\n  \n  ms@2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8\"\n    integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=\n  \n  ms@2.1.2:\n    version \"2.1.2\"\n    resolved \"https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009\"\n    integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==\n  \n  ms@^2.1.1:\n    version \"2.1.3\"\n    resolved \"https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2\"\n    integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\n  \n  mute-stream@0.0.8:\n    version \"0.0.8\"\n    resolved \"https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d\"\n    integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==\n  \n  mz@^2.7.0:\n    version \"2.7.0\"\n    resolved \"https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32\"\n    integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==\n    dependencies:\n      any-promise \"^1.0.0\"\n      object-assign \"^4.0.1\"\n      thenify-all \"^1.0.0\"\n  \n  nan@^2.12.1:\n    version \"2.14.2\"\n    resolved \"https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19\"\n    integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==\n  \n  nanoid@^3.1.16, nanoid@^3.1.20:\n    version \"3.1.20\"\n    resolved \"https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788\"\n    integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==\n  \n  nanomatch@^1.2.9:\n    version \"1.2.13\"\n    resolved \"https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119\"\n    integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==\n    dependencies:\n      arr-diff \"^4.0.0\"\n      array-unique \"^0.3.2\"\n      define-property \"^2.0.2\"\n      extend-shallow \"^3.0.2\"\n      fragment-cache \"^0.2.1\"\n      is-windows \"^1.0.2\"\n      kind-of \"^6.0.2\"\n      object.pick \"^1.3.0\"\n      regex-not \"^1.0.0\"\n      snapdragon \"^0.8.1\"\n      to-regex \"^3.0.1\"\n  \n  napi-build-utils@^1.0.1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806\"\n    integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==\n  \n  native-url@0.3.4:\n    version \"0.3.4\"\n    resolved \"https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8\"\n    integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==\n    dependencies:\n      querystring \"^0.2.0\"\n  \n  natural-compare@^1.4.0:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7\"\n    integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=\n  \n  negotiator@0.6.2:\n    version \"0.6.2\"\n    resolved \"https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb\"\n    integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==\n  \n  neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2:\n    version \"2.6.2\"\n    resolved \"https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f\"\n    integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==\n  \n  next-react-svg@^1.1.2:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/next-react-svg/-/next-react-svg-1.1.2.tgz#e39e75a0259f85194552e67d75bdfb5b777cf158\"\n    integrity sha512-DrMZaE2XYV5Qa6TBkKVP/7ddqJxDd+TRXnDeGzYyRCwFsfm3G9Lodyb3jiIZ1OijJQT7/J+rNFv19oOKOkei6Q==\n    dependencies:\n      svg-react-loader \"0.4.6\"\n  \n  next-tick@~1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c\"\n    integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=\n  \n  next-transpile-modules@^4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/next-transpile-modules/-/next-transpile-modules-4.1.0.tgz#b2d4bd29f3d4179014f7615720f360fdeec67ff7\"\n    integrity sha512-brb9S2Dq7l01fV0fdZw1pO2cWMu7fFTclIV2nccmX2Jzwtz1c9iScPMqGyWP6/wglOPOColoJlHzOrSG6cnEIQ==\n    dependencies:\n      micromatch \"^4.0.2\"\n      slash \"^3.0.0\"\n  \n  next@^10.0.1:\n    version \"10.0.5\"\n    resolved \"https://registry.yarnpkg.com/next/-/next-10.0.5.tgz#8071e0aa1883266c91943aa7c6b73deadb064793\"\n    integrity sha512-yr7ap2TLugf0aMHz+3JoKFP9CCkFE+k6jCfdUymORhptjLYZbD3YGlTcUC1CRl+b5Phlbl7m/WUIPde0VcguiA==\n    dependencies:\n      \"@ampproject/toolbox-optimizer\" \"2.7.1-alpha.0\"\n      \"@babel/runtime\" \"7.12.5\"\n      \"@hapi/accept\" \"5.0.1\"\n      \"@next/env\" \"10.0.5\"\n      \"@next/polyfill-module\" \"10.0.5\"\n      \"@next/react-dev-overlay\" \"10.0.5\"\n      \"@next/react-refresh-utils\" \"10.0.5\"\n      \"@opentelemetry/api\" \"0.14.0\"\n      ast-types \"0.13.2\"\n      babel-plugin-transform-define \"2.0.0\"\n      babel-plugin-transform-react-remove-prop-types \"0.4.24\"\n      browserslist \"4.14.6\"\n      buffer \"5.6.0\"\n      caniuse-lite \"^1.0.30001113\"\n      chalk \"2.4.2\"\n      chokidar \"3.4.3\"\n      crypto-browserify \"3.12.0\"\n      css-loader \"4.3.0\"\n      cssnano-simple \"1.2.1\"\n      etag \"1.8.1\"\n      find-cache-dir \"3.3.1\"\n      jest-worker \"24.9.0\"\n      loader-utils \"2.0.0\"\n      native-url \"0.3.4\"\n      node-fetch \"2.6.1\"\n      node-html-parser \"1.4.9\"\n      p-limit \"3.1.0\"\n      path-browserify \"1.0.1\"\n      pnp-webpack-plugin \"1.6.4\"\n      postcss \"8.1.7\"\n      process \"0.11.10\"\n      prop-types \"15.7.2\"\n      raw-body \"2.4.1\"\n      react-is \"16.13.1\"\n      react-refresh \"0.8.3\"\n      resolve-url-loader \"3.1.2\"\n      sass-loader \"10.0.5\"\n      schema-utils \"2.7.1\"\n      stream-browserify \"3.0.0\"\n      style-loader \"1.2.1\"\n      styled-jsx \"3.3.2\"\n      use-subscription \"1.5.1\"\n      vm-browserify \"1.1.2\"\n      watchpack \"2.0.0-beta.13\"\n      webpack \"4.44.1\"\n      webpack-sources \"1.4.3\"\n    optionalDependencies:\n      sharp \"0.26.3\"\n  \n  nice-try@^1.0.4:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366\"\n    integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==\n  \n  node-abi@^2.7.0:\n    version \"2.19.3\"\n    resolved \"https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d\"\n    integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==\n    dependencies:\n      semver \"^5.4.1\"\n  \n  node-addon-api@^3.0.2:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239\"\n    integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==\n  \n  node-emoji@^1.8.1:\n    version \"1.10.0\"\n    resolved \"https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da\"\n    integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==\n    dependencies:\n      lodash.toarray \"^4.4.0\"\n  \n  node-fetch@2.6.1, node-fetch@^2.6.1:\n    version \"2.6.1\"\n    resolved \"https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052\"\n    integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==\n  \n  node-forge@^0.10.0:\n    version \"0.10.0\"\n    resolved \"https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3\"\n    integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==\n  \n  node-html-parser@1.4.9:\n    version \"1.4.9\"\n    resolved \"https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c\"\n    integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==\n    dependencies:\n      he \"1.2.0\"\n  \n  node-int64@^0.4.0:\n    version \"0.4.0\"\n    resolved \"https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b\"\n    integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=\n  \n  node-libs-browser@^2.2.1:\n    version \"2.2.1\"\n    resolved \"https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425\"\n    integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==\n    dependencies:\n      assert \"^1.1.1\"\n      browserify-zlib \"^0.2.0\"\n      buffer \"^4.3.0\"\n      console-browserify \"^1.1.0\"\n      constants-browserify \"^1.0.0\"\n      crypto-browserify \"^3.11.0\"\n      domain-browser \"^1.1.1\"\n      events \"^3.0.0\"\n      https-browserify \"^1.0.0\"\n      os-browserify \"^0.3.0\"\n      path-browserify \"0.0.1\"\n      process \"^0.11.10\"\n      punycode \"^1.2.4\"\n      querystring-es3 \"^0.2.0\"\n      readable-stream \"^2.3.3\"\n      stream-browserify \"^2.0.1\"\n      stream-http \"^2.7.2\"\n      string_decoder \"^1.0.0\"\n      timers-browserify \"^2.0.4\"\n      tty-browserify \"0.0.0\"\n      url \"^0.11.0\"\n      util \"^0.11.0\"\n      vm-browserify \"^1.0.1\"\n  \n  node-modules-regexp@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40\"\n    integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=\n  \n  node-notifier@^8.0.0:\n    version \"8.0.0\"\n    resolved \"https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620\"\n    integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==\n    dependencies:\n      growly \"^1.3.0\"\n      is-wsl \"^2.2.0\"\n      semver \"^7.3.2\"\n      shellwords \"^0.1.1\"\n      uuid \"^8.3.0\"\n      which \"^2.0.2\"\n  \n  node-releases@^1.1.65, node-releases@^1.1.69:\n    version \"1.1.69\"\n    resolved \"https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6\"\n    integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==\n  \n  noop-logger@^0.1.1:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2\"\n    integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=\n  \n  normalize-html-whitespace@1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz#5e3c8e192f1b06c3b9eee4b7e7f28854c7601e34\"\n    integrity sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA==\n  \n  normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:\n    version \"2.5.0\"\n    resolved \"https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8\"\n    integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==\n    dependencies:\n      hosted-git-info \"^2.1.4\"\n      resolve \"^1.10.0\"\n      semver \"2 || 3 || 4 || 5\"\n      validate-npm-package-license \"^3.0.1\"\n  \n  normalize-path@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9\"\n    integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=\n    dependencies:\n      remove-trailing-separator \"^1.0.1\"\n  \n  normalize-path@^3.0.0, normalize-path@~3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65\"\n    integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==\n  \n  normalize-range@^0.1.2:\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942\"\n    integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=\n  \n  normalize-url@^4.1.0:\n    version \"4.5.0\"\n    resolved \"https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129\"\n    integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==\n  \n  normalize.css@^8.0.1:\n    version \"8.0.1\"\n    resolved \"https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3\"\n    integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==\n  \n  npm-run-all@^4.1.5:\n    version \"4.1.5\"\n    resolved \"https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba\"\n    integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==\n    dependencies:\n      ansi-styles \"^3.2.1\"\n      chalk \"^2.4.1\"\n      cross-spawn \"^6.0.5\"\n      memorystream \"^0.3.1\"\n      minimatch \"^3.0.4\"\n      pidtree \"^0.3.0\"\n      read-pkg \"^3.0.0\"\n      shell-quote \"^1.6.1\"\n      string.prototype.padend \"^3.0.0\"\n  \n  npm-run-path@4.0.1, npm-run-path@^4.0.0, npm-run-path@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea\"\n    integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==\n    dependencies:\n      path-key \"^3.0.0\"\n  \n  npm-run-path@^2.0.0:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f\"\n    integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=\n    dependencies:\n      path-key \"^2.0.0\"\n  \n  npmlog@^4.0.1, npmlog@^4.1.2:\n    version \"4.1.2\"\n    resolved \"https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b\"\n    integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==\n    dependencies:\n      are-we-there-yet \"~1.1.2\"\n      console-control-strings \"~1.1.0\"\n      gauge \"~2.7.3\"\n      set-blocking \"~2.0.0\"\n  \n  nth-check@~1.0.1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c\"\n    integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==\n    dependencies:\n      boolbase \"~1.0.0\"\n  \n  num2fraction@^1.2.2:\n    version \"1.2.2\"\n    resolved \"https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede\"\n    integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=\n  \n  number-is-nan@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d\"\n    integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=\n  \n  nwsapi@^2.2.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7\"\n    integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==\n  \n  oauth-sign@~0.9.0:\n    version \"0.9.0\"\n    resolved \"https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455\"\n    integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==\n  \n  object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:\n    version \"4.1.1\"\n    resolved \"https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863\"\n    integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=\n  \n  object-copy@^0.1.0:\n    version \"0.1.0\"\n    resolved \"https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c\"\n    integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=\n    dependencies:\n      copy-descriptor \"^0.1.0\"\n      define-property \"^0.2.5\"\n      kind-of \"^3.0.3\"\n  \n  object-hash@^2.0.3:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09\"\n    integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==\n  \n  object-inspect@^1.8.0:\n    version \"1.9.0\"\n    resolved \"https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a\"\n    integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==\n  \n  object-is@^1.1.2:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068\"\n    integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n  \n  object-keys@^1.0.12, object-keys@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e\"\n    integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==\n  \n  object-visit@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb\"\n    integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=\n    dependencies:\n      isobject \"^3.0.0\"\n  \n  object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2:\n    version \"4.1.2\"\n    resolved \"https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940\"\n    integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n      has-symbols \"^1.0.1\"\n      object-keys \"^1.1.1\"\n  \n  object.entries@^1.1.2:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6\"\n    integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n      es-abstract \"^1.18.0-next.1\"\n      has \"^1.0.3\"\n  \n  object.fromentries@^2.0.3:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072\"\n    integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n      es-abstract \"^1.18.0-next.1\"\n      has \"^1.0.3\"\n  \n  object.pick@^1.3.0:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747\"\n    integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=\n    dependencies:\n      isobject \"^3.0.1\"\n  \n  object.values@^1.1.1:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731\"\n    integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n      es-abstract \"^1.18.0-next.1\"\n      has \"^1.0.3\"\n  \n  on-finished@^2.3.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947\"\n    integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=\n    dependencies:\n      ee-first \"1.1.1\"\n  \n  once@^1.3.0, once@^1.3.1, once@^1.4.0:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1\"\n    integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=\n    dependencies:\n      wrappy \"1\"\n  \n  onetime@^5.1.0, onetime@^5.1.2:\n    version \"5.1.2\"\n    resolved \"https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e\"\n    integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==\n    dependencies:\n      mimic-fn \"^2.1.0\"\n  \n  only@~0.0.2:\n    version \"0.0.2\"\n    resolved \"https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4\"\n    integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=\n  \n  open@^7.0.4, open@^7.2.1:\n    version \"7.3.0\"\n    resolved \"https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69\"\n    integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==\n    dependencies:\n      is-docker \"^2.0.0\"\n      is-wsl \"^2.1.1\"\n  \n  optionator@^0.8.1:\n    version \"0.8.3\"\n    resolved \"https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495\"\n    integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==\n    dependencies:\n      deep-is \"~0.1.3\"\n      fast-levenshtein \"~2.0.6\"\n      levn \"~0.3.0\"\n      prelude-ls \"~1.1.2\"\n      type-check \"~0.3.2\"\n      word-wrap \"~1.2.3\"\n  \n  ora@^5.1.0:\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8\"\n    integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==\n    dependencies:\n      chalk \"^4.1.0\"\n      cli-cursor \"^3.1.0\"\n      cli-spinners \"^2.4.0\"\n      is-interactive \"^1.0.0\"\n      log-symbols \"^4.0.0\"\n      mute-stream \"0.0.8\"\n      strip-ansi \"^6.0.0\"\n      wcwidth \"^1.0.1\"\n  \n  ora@^5.2.0:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1\"\n    integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ==\n    dependencies:\n      bl \"^4.0.3\"\n      chalk \"^4.1.0\"\n      cli-cursor \"^3.1.0\"\n      cli-spinners \"^2.5.0\"\n      is-interactive \"^1.0.0\"\n      log-symbols \"^4.0.0\"\n      strip-ansi \"^6.0.0\"\n      wcwidth \"^1.0.1\"\n  \n  os-browserify@^0.3.0:\n    version \"0.3.0\"\n    resolved \"https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27\"\n    integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=\n  \n  os-homedir@^1.0.1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3\"\n    integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=\n  \n  os-tmpdir@~1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274\"\n    integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=\n  \n  outdent@^0.5.0:\n    version \"0.5.0\"\n    resolved \"https://registry.yarnpkg.com/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff\"\n    integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==\n  \n  p-cancelable@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e\"\n    integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==\n  \n  p-each-series@^2.1.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a\"\n    integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==\n  \n  p-filter@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c\"\n    integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==\n    dependencies:\n      p-map \"^2.0.0\"\n  \n  p-finally@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae\"\n    integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=\n  \n  p-limit@3.1.0, p-limit@^3.0.2:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b\"\n    integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==\n    dependencies:\n      yocto-queue \"^0.1.0\"\n  \n  p-limit@^2.0.0, p-limit@^2.2.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1\"\n    integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==\n    dependencies:\n      p-try \"^2.0.0\"\n  \n  p-locate@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4\"\n    integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==\n    dependencies:\n      p-limit \"^2.0.0\"\n  \n  p-locate@^4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07\"\n    integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==\n    dependencies:\n      p-limit \"^2.2.0\"\n  \n  p-locate@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834\"\n    integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==\n    dependencies:\n      p-limit \"^3.0.2\"\n  \n  p-map-series@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2\"\n    integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==\n  \n  p-map@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175\"\n    integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==\n  \n  p-map@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b\"\n    integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==\n    dependencies:\n      aggregate-error \"^3.0.0\"\n  \n  p-queue@^6.2.1, p-queue@^6.6.1:\n    version \"6.6.2\"\n    resolved \"https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426\"\n    integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==\n    dependencies:\n      eventemitter3 \"^4.0.4\"\n      p-timeout \"^3.2.0\"\n  \n  p-timeout@^3.2.0:\n    version \"3.2.0\"\n    resolved \"https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe\"\n    integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==\n    dependencies:\n      p-finally \"^1.0.0\"\n  \n  p-try@^2.0.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6\"\n    integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==\n  \n  pako@~1.0.5:\n    version \"1.0.11\"\n    resolved \"https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf\"\n    integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==\n  \n  parallel-transform@^1.1.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc\"\n    integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==\n    dependencies:\n      cyclist \"^1.0.1\"\n      inherits \"^2.0.3\"\n      readable-stream \"^2.1.5\"\n  \n  parent-module@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2\"\n    integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==\n    dependencies:\n      callsites \"^3.0.0\"\n  \n  parse-asn1@^5.0.0, parse-asn1@^5.1.5:\n    version \"5.1.6\"\n    resolved \"https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4\"\n    integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==\n    dependencies:\n      asn1.js \"^5.2.0\"\n      browserify-aes \"^1.0.0\"\n      evp_bytestokey \"^1.0.0\"\n      pbkdf2 \"^3.0.3\"\n      safe-buffer \"^5.1.1\"\n  \n  parse-entities@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8\"\n    integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==\n    dependencies:\n      character-entities \"^1.0.0\"\n      character-entities-legacy \"^1.0.0\"\n      character-reference-invalid \"^1.0.0\"\n      is-alphanumerical \"^1.0.0\"\n      is-decimal \"^1.0.0\"\n      is-hexadecimal \"^1.0.0\"\n  \n  parse-github-url@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395\"\n    integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==\n  \n  parse-json@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0\"\n    integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=\n    dependencies:\n      error-ex \"^1.3.1\"\n      json-parse-better-errors \"^1.0.1\"\n  \n  parse-json@^5.0.0:\n    version \"5.1.0\"\n    resolved \"https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646\"\n    integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==\n    dependencies:\n      \"@babel/code-frame\" \"^7.0.0\"\n      error-ex \"^1.3.1\"\n      json-parse-even-better-errors \"^2.3.0\"\n      lines-and-columns \"^1.1.6\"\n  \n  parse5@5.1.1:\n    version \"5.1.1\"\n    resolved \"https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178\"\n    integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==\n  \n  parse5@^3.0.1:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c\"\n    integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==\n    dependencies:\n      \"@types/node\" \"*\"\n  \n  parse5@^6.0.0:\n    version \"6.0.1\"\n    resolved \"https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b\"\n    integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==\n  \n  parseurl@^1.3.2:\n    version \"1.3.3\"\n    resolved \"https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4\"\n    integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==\n  \n  pascalcase@^0.1.1:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14\"\n    integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=\n  \n  path-browserify@0.0.1:\n    version \"0.0.1\"\n    resolved \"https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a\"\n    integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==\n  \n  path-browserify@1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd\"\n    integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==\n  \n  path-dirname@^1.0.0:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0\"\n    integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=\n  \n  path-exists@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515\"\n    integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=\n  \n  path-exists@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3\"\n    integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==\n  \n  path-is-absolute@1.0.1, path-is-absolute@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f\"\n    integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=\n  \n  path-key@^2.0.0, path-key@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40\"\n    integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=\n  \n  path-key@^3.0.0, path-key@^3.1.0:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375\"\n    integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\n  \n  path-match@^1.2.4:\n    version \"1.2.4\"\n    resolved \"https://registry.yarnpkg.com/path-match/-/path-match-1.2.4.tgz#a62747f3c7e0c2514762697f24443585b09100ea\"\n    integrity sha1-pidH88fgwlFHYml/JEQ1hbCRAOo=\n    dependencies:\n      http-errors \"~1.4.0\"\n      path-to-regexp \"^1.0.0\"\n  \n  path-parse@^1.0.6:\n    version \"1.0.6\"\n    resolved \"https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c\"\n    integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==\n  \n  path-to-regexp@^1.0.0, path-to-regexp@^1.7.0:\n    version \"1.8.0\"\n    resolved \"https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a\"\n    integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==\n    dependencies:\n      isarray \"0.0.1\"\n  \n  path-to-regexp@^6.1.0:\n    version \"6.2.0\"\n    resolved \"https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.0.tgz#f7b3803336104c346889adece614669230645f38\"\n    integrity sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==\n  \n  path-type@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f\"\n    integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==\n    dependencies:\n      pify \"^3.0.0\"\n  \n  path-type@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b\"\n    integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==\n  \n  pbkdf2@^3.0.3:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94\"\n    integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==\n    dependencies:\n      create-hash \"^1.1.2\"\n      create-hmac \"^1.1.4\"\n      ripemd160 \"^2.0.1\"\n      safe-buffer \"^5.0.1\"\n      sha.js \"^2.4.8\"\n  \n  performance-now@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b\"\n    integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=\n  \n  picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2:\n    version \"2.2.2\"\n    resolved \"https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad\"\n    integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==\n  \n  pid-cwd@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/pid-cwd/-/pid-cwd-1.2.0.tgz#c14c03d812b1d23f97aee27767957fc16272c979\"\n    integrity sha512-8QQzIdBmy4bd2l1NKWON1X8flO5TQQRzU2uRDua/XaxSC0iJ+rgbDrlX76t0W3DaJ7OevTYpftyvQ6oMe3hclQ==\n  \n  pidtree@^0.3.0:\n    version \"0.3.1\"\n    resolved \"https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a\"\n    integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==\n  \n  pify@^2.3.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c\"\n    integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=\n  \n  pify@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176\"\n    integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=\n  \n  pify@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231\"\n    integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==\n  \n  pirates@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87\"\n    integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==\n    dependencies:\n      node-modules-regexp \"^1.0.0\"\n  \n  pkg-dir@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3\"\n    integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==\n    dependencies:\n      find-up \"^3.0.0\"\n  \n  pkg-dir@^4.1.0, pkg-dir@^4.2.0:\n    version \"4.2.0\"\n    resolved \"https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3\"\n    integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==\n    dependencies:\n      find-up \"^4.0.0\"\n  \n  platform@1.3.6:\n    version \"1.3.6\"\n    resolved \"https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7\"\n    integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==\n  \n  pnp-webpack-plugin@1.6.4:\n    version \"1.6.4\"\n    resolved \"https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149\"\n    integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==\n    dependencies:\n      ts-pnp \"^1.1.6\"\n  \n  popmotion@^9.1.0:\n    version \"9.1.0\"\n    resolved \"https://registry.yarnpkg.com/popmotion/-/popmotion-9.1.0.tgz#4360d06bd18ce8baa8f9284ecec7d55344af6325\"\n    integrity sha512-+J7pzzBy5kk2qsP8ilowKs/CH+HoZa3kOGEBNCleCvsPXEF3nKHdfAR3SboMyPvdpIrofaT7ZIy/xWgz446Azw==\n    dependencies:\n      framesync \"5.0.0\"\n      hey-listen \"^1.0.8\"\n      style-value-types \"^4.0.1\"\n      tslib \"^1.10.0\"\n  \n  posix-character-classes@^0.1.0:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab\"\n    integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=\n  \n  postcss-discard-comments@^4.0.2:\n    version \"4.0.2\"\n    resolved \"https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033\"\n    integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==\n    dependencies:\n      postcss \"^7.0.0\"\n  \n  postcss-functions@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e\"\n    integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=\n    dependencies:\n      glob \"^7.1.2\"\n      object-assign \"^4.1.1\"\n      postcss \"^6.0.9\"\n      postcss-value-parser \"^3.3.0\"\n  \n  postcss-import@^12.0.1:\n    version \"12.0.1\"\n    resolved \"https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153\"\n    integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==\n    dependencies:\n      postcss \"^7.0.1\"\n      postcss-value-parser \"^3.2.3\"\n      read-cache \"^1.0.0\"\n      resolve \"^1.1.7\"\n  \n  postcss-js@^2.0.0:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9\"\n    integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==\n    dependencies:\n      camelcase-css \"^2.0.1\"\n      postcss \"^7.0.18\"\n  \n  postcss-load-config@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.0.0.tgz#850bb066edd65b734329eacf83af0c0764226c87\"\n    integrity sha512-lErrN8imuEF1cSiHBV8MiR7HeuzlDpCGNtaMyYHlOBuJHHOGw6S4xOMZp8BbXPr7AGQp14L6PZDlIOpfFJ6f7w==\n    dependencies:\n      cosmiconfig \"^7.0.0\"\n      import-cwd \"^3.0.0\"\n  \n  postcss-modules-extract-imports@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e\"\n    integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==\n    dependencies:\n      postcss \"^7.0.5\"\n  \n  postcss-modules-local-by-default@^3.0.2, postcss-modules-local-by-default@^3.0.3:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0\"\n    integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==\n    dependencies:\n      icss-utils \"^4.1.1\"\n      postcss \"^7.0.32\"\n      postcss-selector-parser \"^6.0.2\"\n      postcss-value-parser \"^4.1.0\"\n  \n  postcss-modules-scope@^2.2.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee\"\n    integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==\n    dependencies:\n      postcss \"^7.0.6\"\n      postcss-selector-parser \"^6.0.0\"\n  \n  postcss-modules-values@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10\"\n    integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==\n    dependencies:\n      icss-utils \"^4.0.0\"\n      postcss \"^7.0.6\"\n  \n  postcss-modules@^3.2.2:\n    version \"3.2.2\"\n    resolved \"https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-3.2.2.tgz#ee390de0f9f18e761e1778dfb9be26685c02c51f\"\n    integrity sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw==\n    dependencies:\n      generic-names \"^2.0.1\"\n      icss-replace-symbols \"^1.1.0\"\n      lodash.camelcase \"^4.3.0\"\n      postcss \"^7.0.32\"\n      postcss-modules-extract-imports \"^2.0.0\"\n      postcss-modules-local-by-default \"^3.0.2\"\n      postcss-modules-scope \"^2.2.0\"\n      postcss-modules-values \"^3.0.0\"\n      string-hash \"^1.1.1\"\n  \n  postcss-nested@^4.1.1:\n    version \"4.2.3\"\n    resolved \"https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz#c6f255b0a720549776d220d00c4b70cd244136f6\"\n    integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==\n    dependencies:\n      postcss \"^7.0.32\"\n      postcss-selector-parser \"^6.0.2\"\n  \n  postcss-safe-parser@4.0.2:\n    version \"4.0.2\"\n    resolved \"https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96\"\n    integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==\n    dependencies:\n      postcss \"^7.0.26\"\n  \n  postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:\n    version \"6.0.4\"\n    resolved \"https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3\"\n    integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==\n    dependencies:\n      cssesc \"^3.0.0\"\n      indexes-of \"^1.0.1\"\n      uniq \"^1.0.1\"\n      util-deprecate \"^1.0.2\"\n  \n  postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:\n    version \"3.3.1\"\n    resolved \"https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281\"\n    integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==\n  \n  postcss-value-parser@^4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb\"\n    integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==\n  \n  postcss@7.0.21:\n    version \"7.0.21\"\n    resolved \"https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17\"\n    integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==\n    dependencies:\n      chalk \"^2.4.2\"\n      source-map \"^0.6.1\"\n      supports-color \"^6.1.0\"\n  \n  postcss@7.0.32:\n    version \"7.0.32\"\n    resolved \"https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d\"\n    integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==\n    dependencies:\n      chalk \"^2.4.2\"\n      source-map \"^0.6.1\"\n      supports-color \"^6.1.0\"\n  \n  postcss@8.1.7:\n    version \"8.1.7\"\n    resolved \"https://registry.yarnpkg.com/postcss/-/postcss-8.1.7.tgz#ff6a82691bd861f3354fd9b17b2332f88171233f\"\n    integrity sha512-llCQW1Pz4MOPwbZLmOddGM9eIJ8Bh7SZ2Oj5sxZva77uVaotYDsYTch1WBTNu7fUY0fpWp0fdt7uW40D4sRiiQ==\n    dependencies:\n      colorette \"^1.2.1\"\n      line-column \"^1.0.2\"\n      nanoid \"^3.1.16\"\n      source-map \"^0.6.1\"\n  \n  postcss@^6.0.9:\n    version \"6.0.23\"\n    resolved \"https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324\"\n    integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==\n    dependencies:\n      chalk \"^2.4.1\"\n      source-map \"^0.6.1\"\n      supports-color \"^5.4.0\"\n  \n  postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.14, postcss@^7.0.18, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:\n    version \"7.0.35\"\n    resolved \"https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24\"\n    integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==\n    dependencies:\n      chalk \"^2.4.2\"\n      source-map \"^0.6.1\"\n      supports-color \"^6.1.0\"\n  \n  postcss@^8.1.8:\n    version \"8.2.1\"\n    resolved \"https://registry.yarnpkg.com/postcss/-/postcss-8.2.1.tgz#eabc5557c4558059b9d9e5b15bce7ffa9089c2a8\"\n    integrity sha512-RhsqOOAQzTgh1UB/IZdca7F9WDb7SUCR2Vnv1x7DbvuuggQIpoDwjK+q0rzoPffhYvWNKX5JSwS4so4K3UC6vA==\n    dependencies:\n      colorette \"^1.2.1\"\n      nanoid \"^3.1.20\"\n      source-map \"^0.6.1\"\n  \n  posthtml-parser@^0.6.0:\n    version \"0.6.0\"\n    resolved \"https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.6.0.tgz#52488cdb4fa591c3102de73197c471859ee0be63\"\n    integrity sha512-5ffwKQNgtVHdhZniWxu+1ryvaZv5l25HPLUV6W5xy5nYVWMXtvjtwRnbSpfbKFvbyl7XI+d4AqkjmonkREqnXA==\n    dependencies:\n      htmlparser2 \"^5.0.1\"\n  \n  posthtml-render@^1.2.3:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-1.4.0.tgz#40114070c45881cacb93347dae3eff53afbcff13\"\n    integrity sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==\n  \n  posthtml@^0.15.1:\n    version \"0.15.1\"\n    resolved \"https://registry.yarnpkg.com/posthtml/-/posthtml-0.15.1.tgz#1848064f48a1cca0e0323752b1d26fed32e180b8\"\n    integrity sha512-QSnUnvnnRv+wt7T9igqNG7GPcc+ZsbX93X+9aPldzgiuQfqIXTbnD47FY8pAtq4gjB9QZrDadDuG8jusmOPpYA==\n    dependencies:\n      posthtml-parser \"^0.6.0\"\n      posthtml-render \"^1.2.3\"\n  \n  preact@^10.5.7:\n    version \"10.5.10\"\n    resolved \"https://registry.yarnpkg.com/preact/-/preact-10.5.10.tgz#8de7bf669e965a51fc9e45a6fd1e97a47af383e6\"\n    integrity sha512-A6SITnHaj5CS4JPLVroQDNOEozq4Y0B4yQSGHLznxHe66Jb2DvoeTEibLjXmfeofgQE3BZ2zurltBIapzCMlwg==\n  \n  prebuild-install@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.0.tgz#669022bcde57c710a869e39c5ca6bf9cd207f316\"\n    integrity sha512-h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw==\n    dependencies:\n      detect-libc \"^1.0.3\"\n      expand-template \"^2.0.3\"\n      github-from-package \"0.0.0\"\n      minimist \"^1.2.3\"\n      mkdirp-classic \"^0.5.3\"\n      napi-build-utils \"^1.0.1\"\n      node-abi \"^2.7.0\"\n      noop-logger \"^0.1.1\"\n      npmlog \"^4.0.1\"\n      pump \"^3.0.0\"\n      rc \"^1.2.7\"\n      simple-get \"^3.0.3\"\n      tar-fs \"^2.0.0\"\n      tunnel-agent \"^0.6.0\"\n      which-pm-runs \"^1.0.0\"\n  \n  preferred-pm@^3.0.0:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.0.2.tgz#bbdbef1014e34a7490349bf70d6d244b8d57a5e1\"\n    integrity sha512-yGIxyBkK/OWOppgCXfOeOXOeNrddyK1DzqS6XpOokRZb2ogXTpHRhKDTO7d0pjF/2p2sV9pEkKL4e0tNZI1y2A==\n    dependencies:\n      find-up \"^5.0.0\"\n      find-yarn-workspace-root2 \"1.2.16\"\n      path-exists \"^4.0.0\"\n      which-pm \"2.0.0\"\n  \n  prelude-ls@~1.1.2:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54\"\n    integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=\n  \n  prettier@^1.18.2, prettier@^1.19.1:\n    version \"1.19.1\"\n    resolved \"https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb\"\n    integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==\n  \n  prettier@^2.0.5:\n    version \"2.2.1\"\n    resolved \"https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5\"\n    integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==\n  \n  pretty-format@^26.0.0, pretty-format@^26.6.2:\n    version \"26.6.2\"\n    resolved \"https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93\"\n    integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==\n    dependencies:\n      \"@jest/types\" \"^26.6.2\"\n      ansi-regex \"^5.0.0\"\n      ansi-styles \"^4.0.0\"\n      react-is \"^17.0.1\"\n  \n  pretty-hrtime@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1\"\n    integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=\n  \n  prism-react-renderer@^1.0.1, prism-react-renderer@^1.0.2, prism-react-renderer@^1.1.0:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz#1c1be61b1eb9446a146ca7a50b7bcf36f2a70a44\"\n    integrity sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==\n  \n  process-nextick-args@~2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2\"\n    integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==\n  \n  process@0.11.10, process@^0.11.10:\n    version \"0.11.10\"\n    resolved \"https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182\"\n    integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=\n  \n  promise-inflight@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3\"\n    integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=\n  \n  prompts@^2.0.1, prompts@^2.4.0:\n    version \"2.4.0\"\n    resolved \"https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7\"\n    integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==\n    dependencies:\n      kleur \"^3.0.3\"\n      sisteransi \"^1.0.5\"\n  \n  prop-types-exact@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869\"\n    integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==\n    dependencies:\n      has \"^1.0.3\"\n      object.assign \"^4.1.0\"\n      reflect.ownkeys \"^0.2.0\"\n  \n  prop-types@15.7.2, prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2:\n    version \"15.7.2\"\n    resolved \"https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5\"\n    integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==\n    dependencies:\n      loose-envify \"^1.4.0\"\n      object-assign \"^4.1.1\"\n      react-is \"^16.8.1\"\n  \n  property-information@^5.0.0, property-information@^5.3.0:\n    version \"5.6.0\"\n    resolved \"https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69\"\n    integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==\n    dependencies:\n      xtend \"^4.0.0\"\n  \n  prr@~1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476\"\n    integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=\n  \n  ps-list@^7.0.0:\n    version \"7.2.0\"\n    resolved \"https://registry.yarnpkg.com/ps-list/-/ps-list-7.2.0.tgz#3d110e1de8249a4b178c9b1cf2a215d1e4e42fc0\"\n    integrity sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==\n  \n  pseudomap@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3\"\n    integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=\n  \n  psl@^1.1.28:\n    version \"1.8.0\"\n    resolved \"https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24\"\n    integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==\n  \n  public-encrypt@^4.0.0:\n    version \"4.0.3\"\n    resolved \"https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0\"\n    integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==\n    dependencies:\n      bn.js \"^4.1.0\"\n      browserify-rsa \"^4.0.0\"\n      create-hash \"^1.1.0\"\n      parse-asn1 \"^5.0.0\"\n      randombytes \"^2.0.1\"\n      safe-buffer \"^5.1.2\"\n  \n  pump@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909\"\n    integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==\n    dependencies:\n      end-of-stream \"^1.1.0\"\n      once \"^1.3.1\"\n  \n  pump@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64\"\n    integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==\n    dependencies:\n      end-of-stream \"^1.1.0\"\n      once \"^1.3.1\"\n  \n  pumpify@^1.3.3:\n    version \"1.5.1\"\n    resolved \"https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce\"\n    integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==\n    dependencies:\n      duplexify \"^3.6.0\"\n      inherits \"^2.0.3\"\n      pump \"^2.0.0\"\n  \n  punycode@1.3.2:\n    version \"1.3.2\"\n    resolved \"https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d\"\n    integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=\n  \n  punycode@^1.2.4:\n    version \"1.4.1\"\n    resolved \"https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e\"\n    integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=\n  \n  punycode@^2.1.0, punycode@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec\"\n    integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==\n  \n  purgecss@^2.3.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz#5327587abf5795e6541517af8b190a6fb5488bb3\"\n    integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==\n    dependencies:\n      commander \"^5.0.0\"\n      glob \"^7.0.0\"\n      postcss \"7.0.32\"\n      postcss-selector-parser \"^6.0.2\"\n  \n  qs@^6.4.0, qs@^6.9.4:\n    version \"6.9.4\"\n    resolved \"https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687\"\n    integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==\n  \n  qs@~6.5.2:\n    version \"6.5.2\"\n    resolved \"https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36\"\n    integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==\n  \n  querystring-es3@^0.2.0:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73\"\n    integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=\n  \n  querystring@0.2.0, querystring@^0.2.0:\n    version \"0.2.0\"\n    resolved \"https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620\"\n    integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=\n  \n  quick-lru@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f\"\n    integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==\n  \n  quick-lru@^5.1.1:\n    version \"5.1.1\"\n    resolved \"https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932\"\n    integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==\n  \n  ramda@0.21.0:\n    version \"0.21.0\"\n    resolved \"https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35\"\n    integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=\n  \n  randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a\"\n    integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==\n    dependencies:\n      safe-buffer \"^5.1.0\"\n  \n  randomfill@^1.0.3:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458\"\n    integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==\n    dependencies:\n      randombytes \"^2.0.5\"\n      safe-buffer \"^5.1.0\"\n  \n  raw-body@2.4.1, raw-body@^2.2.0:\n    version \"2.4.1\"\n    resolved \"https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c\"\n    integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==\n    dependencies:\n      bytes \"3.1.0\"\n      http-errors \"1.7.3\"\n      iconv-lite \"0.4.24\"\n      unpipe \"1.0.0\"\n  \n  rc@^1.2.7:\n    version \"1.2.8\"\n    resolved \"https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed\"\n    integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==\n    dependencies:\n      deep-extend \"^0.6.0\"\n      ini \"~1.3.0\"\n      minimist \"^1.2.0\"\n      strip-json-comments \"~2.0.1\"\n  \n  re-resizable@^6.4.0:\n    version \"6.9.0\"\n    resolved \"https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.9.0.tgz#9c3059b389ced6ade602234cc5bb1e12d231cd47\"\n    integrity sha512-3cUDG81ylyqI0Pdgle/RHwwRYq0ORZzsUaySOCO8IbEtNyaRtrIHYm/jMQ5pjcNiKCxR3vsSymIQZHwJq4gg2Q==\n    dependencies:\n      fast-memoize \"^2.5.1\"\n  \n  react-clientside-effect@^1.2.2:\n    version \"1.2.3\"\n    resolved \"https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.3.tgz#95c95f520addfb71743608b990bfe01eb002012b\"\n    integrity sha512-96HOmjJjjemxZD4qMdaMWFl3d/3Dqm/MAXnThoP8+jQihevYs8VzooqYWlVEPmkp9tVIa06i67R7FF1qsuzUwQ==\n    dependencies:\n      \"@babel/runtime\" \"^7.0.0\"\n  \n  react-dom@experimental:\n    version \"0.0.0-experimental-3310209d0\"\n    resolved \"https://registry.yarnpkg.com/react-dom/-/react-dom-0.0.0-experimental-3310209d0.tgz#da24ddc969d34406d25210c88ba6d33c101532fa\"\n    integrity sha512-5Ibs6pnu5rrEgq6gTVHjnMlIFiOFHpTeLbPcqPjnFnAX7WR06+rJK32lW5U13ktmpzqUdGruwE5oweWI7uPQhA==\n    dependencies:\n      loose-envify \"^1.1.0\"\n      object-assign \"^4.1.1\"\n      scheduler \"0.0.0-experimental-3310209d0\"\n  \n  react-fast-compare@3.2.0, react-fast-compare@^3.1.1:\n    version \"3.2.0\"\n    resolved \"https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb\"\n    integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==\n  \n  react-focus-lock@2.4.1:\n    version \"2.4.1\"\n    resolved \"https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.4.1.tgz#e842cc93da736b5c5d331799012544295cbcee4f\"\n    integrity sha512-c5ZP56KSpj9EAxzScTqQO7bQQNPltf/W1ZEBDqNDOV1XOIwvAyHX0O7db9ekiAtxyKgnqZjQlLppVg94fUeL9w==\n    dependencies:\n      \"@babel/runtime\" \"^7.0.0\"\n      focus-lock \"^0.7.0\"\n      prop-types \"^15.6.2\"\n      react-clientside-effect \"^1.2.2\"\n      use-callback-ref \"^1.2.1\"\n      use-sidecar \"^1.0.1\"\n  \n  react-frame-component@^4.1.1:\n    version \"4.1.3\"\n    resolved \"https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.3.tgz#64c09dd29574720879c5f43ee36c17d8ae74d4ec\"\n    integrity sha512-4PurhctiqnmC1F5prPZ+LdsalH7pZ3SFA5xoc0HBe8mSHctdLLt4Cr2WXfXOoajHBYq/yiipp9zOgx+vy8GiEA==\n  \n  react-helmet@^6.1.0:\n    version \"6.1.0\"\n    resolved \"https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726\"\n    integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==\n    dependencies:\n      object-assign \"^4.1.1\"\n      prop-types \"^15.7.2\"\n      react-fast-compare \"^3.1.1\"\n      react-side-effect \"^2.1.0\"\n  \n  react-icons@^3.9.0:\n    version \"3.11.0\"\n    resolved \"https://registry.yarnpkg.com/react-icons/-/react-icons-3.11.0.tgz#2ca2903dfab8268ca18ebd8cc2e879921ec3b254\"\n    integrity sha512-JRgiI/vdF6uyBgyZhVyYJUZAop95Sy4XDe/jmT3R/bKliFWpO/uZBwvSjWEdxwzec7SYbEPNPck0Kff2tUGM2Q==\n    dependencies:\n      camelcase \"^5.0.0\"\n  \n  react-icons@^4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/react-icons/-/react-icons-4.1.0.tgz#9ca9bcbf2e3aee8e86e378bb9d465842947bbfc3\"\n    integrity sha512-FCXBg1JbbR0vWALXIxmFAfozHdVIJmmwCD81Jk0EKOt7Ax4AdBNcaRkWhR0NaKy9ugJgoY3fFvo0PHpte55pXg==\n  \n  react-intersection-observer@^8.31.0:\n    version \"8.31.0\"\n    resolved \"https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-8.31.0.tgz#0ed21aaf93c4c0475b22b0ccaba6169076d01605\"\n    integrity sha512-XraIC/tkrD9JtrmVA7ypEN1QIpKc52mXBH1u/bz/aicRLo8QQEJQAMUTb8mz4B6dqpPwyzgjrr7Ljv/2ACDtqw==\n  \n  react-is@16.13.1, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:\n    version \"16.13.1\"\n    resolved \"https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4\"\n    integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==\n  \n  react-is@^17.0.1:\n    version \"17.0.1\"\n    resolved \"https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339\"\n    integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==\n  \n  react-live@^2.2.2:\n    version \"2.2.3\"\n    resolved \"https://registry.yarnpkg.com/react-live/-/react-live-2.2.3.tgz#260f99194213799f0005e473e7a4154c699d6a7c\"\n    integrity sha512-tpKruvfytNETuzO3o1mrQUj180GVrq35IE8F5gH1NJVPt4szYCx83/dOSCOyjgRhhc3gQvl0pQ3k/CjOjwJkKQ==\n    dependencies:\n      buble \"0.19.6\"\n      core-js \"^2.4.1\"\n      dom-iterator \"^1.0.0\"\n      prism-react-renderer \"^1.0.1\"\n      prop-types \"^15.5.8\"\n      react-simple-code-editor \"^0.10.0\"\n      unescape \"^1.0.1\"\n  \n  react-mailchimp-subscribe@^2.1.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/react-mailchimp-subscribe/-/react-mailchimp-subscribe-2.1.0.tgz#a2bb7064af4bad310ef5d308322de95491d401c3\"\n    integrity sha512-sBB2XW0DPlysv+aVGRHbGQqDi8WITxXFjMzWiN07/t7U3FH2Io68EMBEU7atOUk5Y/WtsVnSytcs06aoEaf5ow==\n    dependencies:\n      jsonp \"^0.2.1\"\n      prop-types \"^15.5.10\"\n      to-querystring \"^1.0.4\"\n  \n  react-proptype-conditional-require@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/react-proptype-conditional-require/-/react-proptype-conditional-require-1.0.4.tgz#69c2d5741e6df5e08f230f36bbc2944ee1222555\"\n    integrity sha1-acLVdB5t9eCPIw82u8KUTuEiJVU=\n  \n  react-refresh@0.8.3, react-refresh@^0.8.2:\n    version \"0.8.3\"\n    resolved \"https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f\"\n    integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==\n  \n  react-refresh@^0.9.0:\n    version \"0.9.0\"\n    resolved \"https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf\"\n    integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==\n  \n  react-remove-scroll-bar@^2.1.0:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.1.1.tgz#5876428dfd546f2f63a4d277aea2197925505c1e\"\n    integrity sha512-IZbfQPSozIr8ylHE9MFcQeb2TTzj4abfE7OBXjmtUeXQ5h6ColGKDNo5h7OmzrJRilAx3YIKBf3jb0yrb31BJQ==\n    dependencies:\n      react-style-singleton \"^2.1.0\"\n      tslib \"^1.0.0\"\n  \n  react-remove-scroll@2.4.0:\n    version \"2.4.0\"\n    resolved \"https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.4.0.tgz#190c16eb508c5927595935499e8f5dd9ab0e75cf\"\n    integrity sha512-BZIO3GaEs0Or1OhA5C//n1ibUP1HdjJmqUVUsOCMxwoIpaCocbB9TFKwHOkBa/nyYy3slirqXeiPYGwdSDiseA==\n    dependencies:\n      react-remove-scroll-bar \"^2.1.0\"\n      react-style-singleton \"^2.1.0\"\n      tslib \"^1.0.0\"\n      use-callback-ref \"^1.2.3\"\n      use-sidecar \"^1.0.1\"\n  \n  react-router-dom@^5.2.0:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662\"\n    integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==\n    dependencies:\n      \"@babel/runtime\" \"^7.1.2\"\n      history \"^4.9.0\"\n      loose-envify \"^1.3.1\"\n      prop-types \"^15.6.2\"\n      react-router \"5.2.0\"\n      tiny-invariant \"^1.0.2\"\n      tiny-warning \"^1.0.0\"\n  \n  react-router@5.2.0, react-router@^5.2.0:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293\"\n    integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==\n    dependencies:\n      \"@babel/runtime\" \"^7.1.2\"\n      history \"^4.9.0\"\n      hoist-non-react-statics \"^3.1.0\"\n      loose-envify \"^1.3.1\"\n      mini-create-react-context \"^0.4.0\"\n      path-to-regexp \"^1.7.0\"\n      prop-types \"^15.6.2\"\n      react-is \"^16.6.0\"\n      tiny-invariant \"^1.0.2\"\n      tiny-warning \"^1.0.0\"\n  \n  react-script-hook@^1.1.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/react-script-hook/-/react-script-hook-1.2.1.tgz#82b5250b7e2f3e8d645eabc9d4f54b7580b3d5c6\"\n    integrity sha512-IRqtZcXjFYWf7HnC3zj/n46D3QP5XhrVeGj0t2JbHY2ws73zvs6tOHWVr5l2GShRGqZEBCFlguYfVUU2lI2qzw==\n  \n  react-side-effect@^2.1.0:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3\"\n    integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==\n  \n  react-simple-code-editor@^0.10.0:\n    version \"0.10.0\"\n    resolved \"https://registry.yarnpkg.com/react-simple-code-editor/-/react-simple-code-editor-0.10.0.tgz#73e7ac550a928069715482aeb33ccba36efe2373\"\n    integrity sha512-bL5W5mAxSW6+cLwqqVWY47Silqgy2DKDTR4hDBrLrUqC5BXc29YVx17l2IZk5v36VcDEq1Bszu2oHm1qBwKqBA==\n  \n  react-storage-hooks@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/react-storage-hooks/-/react-storage-hooks-4.0.1.tgz#e30ed5cda48c77c431ecc02ec3824bd615f5b7fb\"\n    integrity sha512-fetDkT5RDHGruc2NrdD1iqqoLuXgbx6AUpQSQLLkrCiJf8i97EtwJNXNTy3+GRfsATLG8TZgNc9lGRZOaU5yQA==\n  \n  react-style-singleton@^2.1.0:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.1.tgz#ce7f90b67618be2b6b94902a30aaea152ce52e66\"\n    integrity sha512-jNRp07Jza6CBqdRKNgGhT3u9umWvils1xsuMOjZlghBDH2MU0PL2WZor4PGYjXpnRCa9DQSlHMs/xnABWOwYbA==\n    dependencies:\n      get-nonce \"^1.0.0\"\n      invariant \"^2.2.4\"\n      tslib \"^1.0.0\"\n  \n  react-test-renderer@^16.0.0-0:\n    version \"16.14.0\"\n    resolved \"https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae\"\n    integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==\n    dependencies:\n      object-assign \"^4.1.1\"\n      prop-types \"^15.6.2\"\n      react-is \"^16.8.6\"\n      scheduler \"^0.19.1\"\n  \n  react-twitter-embed@^3.0.3:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/react-twitter-embed/-/react-twitter-embed-3.0.3.tgz#a534132d4bbec812a63e3899dc716de2bfc3cec2\"\n    integrity sha512-kF1Srlb1TqnZUqKA0FC4I/E+m+RUBCMZeU20hDRzmYLAjR1EA/6tr/PMZ22s7rd6wjQpIBLXNZjt0rfUpY8Chw==\n    dependencies:\n      enzyme-adapter-react-16 \"^1.11.0\"\n      exenv \"^1.2.2\"\n      react-proptype-conditional-require \"^1.0.4\"\n      scriptjs \"^2.5.9\"\n  \n  react-typical@^0.1.3:\n    version \"0.1.3\"\n    resolved \"https://registry.yarnpkg.com/react-typical/-/react-typical-0.1.3.tgz#c56e607a8e435b6f8a23eb5eaaf00768e35be06d\"\n    integrity sha512-VynIYVQvAZ1Nco4C+QNEqR17STGK/xw6Dc1zNj/LuYm8fISw1Qp3q9n3hv6O3iQDLD0OWwdWKHun5oj6mCMB4A==\n    dependencies:\n      \"@camwiegert/typical\" \"^0.1.1\"\n  \n  react-typist@^2.0.5:\n    version \"2.0.5\"\n    resolved \"https://registry.yarnpkg.com/react-typist/-/react-typist-2.0.5.tgz#9830395a73a03e6368e1392ecb98edaa3a648e44\"\n    integrity sha512-iZCkeqeegO0TlkTMiH2JD1tvMtY9RrXkRylnAI6m8aCVAUUwNzoWTVF7CKLij6THeOMcUDCznLDDvNp55s+YZA==\n    dependencies:\n      prop-types \"^15.5.10\"\n  \n  react@experimental:\n    version \"0.0.0-experimental-3310209d0\"\n    resolved \"https://registry.yarnpkg.com/react/-/react-0.0.0-experimental-3310209d0.tgz#1421b0338fbb0c98bbe1ffcaaf88d101209d7194\"\n    integrity sha512-TVDPZZ2rbxtbIlb3knyqXG1ij8veXpMTzxWmJC/+0POtKSE0HeUNVoQX8j0h0p0rHCKmAfT/mIZaoG9P0bJ+TA==\n    dependencies:\n      loose-envify \"^1.1.0\"\n      object-assign \"^4.1.1\"\n  \n  read-cache@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774\"\n    integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=\n    dependencies:\n      pify \"^2.3.0\"\n  \n  read-pkg-up@^7.0.1:\n    version \"7.0.1\"\n    resolved \"https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507\"\n    integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==\n    dependencies:\n      find-up \"^4.1.0\"\n      read-pkg \"^5.2.0\"\n      type-fest \"^0.8.1\"\n  \n  read-pkg@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389\"\n    integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=\n    dependencies:\n      load-json-file \"^4.0.0\"\n      normalize-package-data \"^2.3.2\"\n      path-type \"^3.0.0\"\n  \n  read-pkg@^5.2.0:\n    version \"5.2.0\"\n    resolved \"https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc\"\n    integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==\n    dependencies:\n      \"@types/normalize-package-data\" \"^2.4.0\"\n      normalize-package-data \"^2.5.0\"\n      parse-json \"^5.0.0\"\n      type-fest \"^0.6.0\"\n  \n  read-yaml-file@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/read-yaml-file/-/read-yaml-file-1.1.0.tgz#9362bbcbdc77007cc8ea4519fe1c0b821a7ce0d8\"\n    integrity sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==\n    dependencies:\n      graceful-fs \"^4.1.5\"\n      js-yaml \"^3.6.1\"\n      pify \"^4.0.1\"\n      strip-bom \"^3.0.0\"\n  \n  \"readable-stream@1 || 2\", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:\n    version \"2.3.7\"\n    resolved \"https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57\"\n    integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==\n    dependencies:\n      core-util-is \"~1.0.0\"\n      inherits \"~2.0.3\"\n      isarray \"~1.0.0\"\n      process-nextick-args \"~2.0.0\"\n      safe-buffer \"~5.1.1\"\n      string_decoder \"~1.1.1\"\n      util-deprecate \"~1.0.1\"\n  \n  readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0:\n    version \"3.6.0\"\n    resolved \"https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198\"\n    integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==\n    dependencies:\n      inherits \"^2.0.3\"\n      string_decoder \"^1.1.1\"\n      util-deprecate \"^1.0.1\"\n  \n  readdirp@^2.2.1:\n    version \"2.2.1\"\n    resolved \"https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525\"\n    integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==\n    dependencies:\n      graceful-fs \"^4.1.11\"\n      micromatch \"^3.1.10\"\n      readable-stream \"^2.0.2\"\n  \n  readdirp@~3.5.0:\n    version \"3.5.0\"\n    resolved \"https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e\"\n    integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==\n    dependencies:\n      picomatch \"^2.2.1\"\n  \n  redent@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f\"\n    integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==\n    dependencies:\n      indent-string \"^4.0.0\"\n      strip-indent \"^3.0.0\"\n  \n  reduce-css-calc@^2.1.6:\n    version \"2.1.7\"\n    resolved \"https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz#1ace2e02c286d78abcd01fd92bfe8097ab0602c2\"\n    integrity sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==\n    dependencies:\n      css-unit-converter \"^1.1.1\"\n      postcss-value-parser \"^3.3.0\"\n  \n  reflect.ownkeys@^0.2.0:\n    version \"0.2.0\"\n    resolved \"https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460\"\n    integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=\n  \n  regenerate-unicode-properties@^8.2.0:\n    version \"8.2.0\"\n    resolved \"https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec\"\n    integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==\n    dependencies:\n      regenerate \"^1.4.0\"\n  \n  regenerate@^1.4.0:\n    version \"1.4.2\"\n    resolved \"https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a\"\n    integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==\n  \n  regenerator-runtime@^0.13.4:\n    version \"0.13.7\"\n    resolved \"https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55\"\n    integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==\n  \n  regex-not@^1.0.0, regex-not@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c\"\n    integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==\n    dependencies:\n      extend-shallow \"^3.0.2\"\n      safe-regex \"^1.1.0\"\n  \n  regex-parser@^2.2.11:\n    version \"2.2.11\"\n    resolved \"https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58\"\n    integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==\n  \n  regexpu-core@^4.2.0, regexpu-core@^4.5.4:\n    version \"4.7.1\"\n    resolved \"https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6\"\n    integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==\n    dependencies:\n      regenerate \"^1.4.0\"\n      regenerate-unicode-properties \"^8.2.0\"\n      regjsgen \"^0.5.1\"\n      regjsparser \"^0.6.4\"\n      unicode-match-property-ecmascript \"^1.0.4\"\n      unicode-match-property-value-ecmascript \"^1.2.0\"\n  \n  regjsgen@^0.5.1:\n    version \"0.5.2\"\n    resolved \"https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733\"\n    integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==\n  \n  regjsparser@^0.6.4:\n    version \"0.6.4\"\n    resolved \"https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272\"\n    integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==\n    dependencies:\n      jsesc \"~0.5.0\"\n  \n  remark-extract-frontmatter@^2.0.2:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/remark-extract-frontmatter/-/remark-extract-frontmatter-2.0.3.tgz#5f86764f1cc29ad9a17885aff3c267c159841724\"\n    integrity sha512-k7lfDaIbwf135twpPLIFcKX2bRBqmsf07tV5gIWjLwil35aa6kYc6XL2TWrZfU2U8AabnQhoH7RU0P9EQfaItQ==\n    dependencies:\n      xtend \"^4.0.1\"\n  \n  remark-footnotes@2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f\"\n    integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==\n  \n  remark-frontmatter@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-2.0.0.tgz#c9b8539c27cd23b1672c7e0fcbd5795eeedb4dc1\"\n    integrity sha512-uNOQt4tO14qBFWXenF0MLC4cqo3dv8qiHPGyjCl1rwOT0LomSHpcElbjjVh5CwzElInB38HD8aSRVugKQjeyHA==\n    dependencies:\n      fault \"^1.0.1\"\n  \n  remark-mdx-metadata@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/remark-mdx-metadata/-/remark-mdx-metadata-1.0.1.tgz#e52bb7eb825d5d50c255b0914f85954c3ebe9b1c\"\n    integrity sha512-CwZKNtE/fzb5KXeYyd40yqxbYNUKXhuv32fSDTcRrG9pgxjA2ogD/jPMdQjx4Rg7DdeqDuHhiQMd0eT2IXpD+g==\n    dependencies:\n      \"@babel/core\" \"7.3.4\"\n      \"@babel/generator\" \"7.3.4\"\n      \"@babel/parser\" \"7.3.4\"\n      \"@babel/plugin-syntax-jsx\" \"7.2.0\"\n      \"@babel/traverse\" \"7.3.4\"\n      stringify-object \"3.3.0\"\n  \n  remark-mdx@1.6.22:\n    version \"1.6.22\"\n    resolved \"https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd\"\n    integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==\n    dependencies:\n      \"@babel/core\" \"7.12.9\"\n      \"@babel/helper-plugin-utils\" \"7.10.4\"\n      \"@babel/plugin-proposal-object-rest-spread\" \"7.12.1\"\n      \"@babel/plugin-syntax-jsx\" \"7.12.1\"\n      \"@mdx-js/util\" \"1.6.22\"\n      is-alphabetical \"1.0.4\"\n      remark-parse \"8.0.3\"\n      unified \"9.2.0\"\n  \n  remark-parse@8.0.3, remark-parse@^8.0.0:\n    version \"8.0.3\"\n    resolved \"https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1\"\n    integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==\n    dependencies:\n      ccount \"^1.0.0\"\n      collapse-white-space \"^1.0.2\"\n      is-alphabetical \"^1.0.0\"\n      is-decimal \"^1.0.0\"\n      is-whitespace-character \"^1.0.0\"\n      is-word-character \"^1.0.0\"\n      markdown-escapes \"^1.0.0\"\n      parse-entities \"^2.0.0\"\n      repeat-string \"^1.5.4\"\n      state-toggle \"^1.0.0\"\n      trim \"0.0.1\"\n      trim-trailing-lines \"^1.0.0\"\n      unherit \"^1.0.4\"\n      unist-util-remove-position \"^2.0.0\"\n      vfile-location \"^3.0.0\"\n      xtend \"^4.0.1\"\n  \n  remark-slug@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/remark-slug/-/remark-slug-6.0.0.tgz#2b54a14a7b50407a5e462ac2f376022cce263e2c\"\n    integrity sha512-ln67v5BrGKHpETnm6z6adlJPhESFJwfuZZ3jrmi+lKTzeZxh2tzFzUfDD4Pm2hRGOarHLuGToO86MNMZ/hA67Q==\n    dependencies:\n      github-slugger \"^1.0.0\"\n      mdast-util-to-string \"^1.0.0\"\n      unist-util-visit \"^2.0.0\"\n  \n  remark-squeeze-paragraphs@4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead\"\n    integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==\n    dependencies:\n      mdast-squeeze-paragraphs \"^4.0.0\"\n  \n  remark-stringify@^8.0.0:\n    version \"8.1.1\"\n    resolved \"https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.1.tgz#e2a9dc7a7bf44e46a155ec78996db896780d8ce5\"\n    integrity sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==\n    dependencies:\n      ccount \"^1.0.0\"\n      is-alphanumeric \"^1.0.0\"\n      is-decimal \"^1.0.0\"\n      is-whitespace-character \"^1.0.0\"\n      longest-streak \"^2.0.1\"\n      markdown-escapes \"^1.0.0\"\n      markdown-table \"^2.0.0\"\n      mdast-util-compact \"^2.0.0\"\n      parse-entities \"^2.0.0\"\n      repeat-string \"^1.5.4\"\n      state-toggle \"^1.0.0\"\n      stringify-entities \"^3.0.0\"\n      unherit \"^1.0.4\"\n      xtend \"^4.0.1\"\n  \n  remark@^12.0.0:\n    version \"12.0.1\"\n    resolved \"https://registry.yarnpkg.com/remark/-/remark-12.0.1.tgz#f1ddf68db7be71ca2bad0a33cd3678b86b9c709f\"\n    integrity sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==\n    dependencies:\n      remark-parse \"^8.0.0\"\n      remark-stringify \"^8.0.0\"\n      unified \"^9.0.0\"\n  \n  remove-trailing-separator@^1.0.1:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef\"\n    integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=\n  \n  repeat-element@^1.1.2:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce\"\n    integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==\n  \n  repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1:\n    version \"1.6.1\"\n    resolved \"https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637\"\n    integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=\n  \n  request-promise-core@1.1.4:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f\"\n    integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==\n    dependencies:\n      lodash \"^4.17.19\"\n  \n  request-promise-native@^1.0.8:\n    version \"1.0.9\"\n    resolved \"https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28\"\n    integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==\n    dependencies:\n      request-promise-core \"1.1.4\"\n      stealthy-require \"^1.1.1\"\n      tough-cookie \"^2.3.3\"\n  \n  request@^2.88.2:\n    version \"2.88.2\"\n    resolved \"https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3\"\n    integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==\n    dependencies:\n      aws-sign2 \"~0.7.0\"\n      aws4 \"^1.8.0\"\n      caseless \"~0.12.0\"\n      combined-stream \"~1.0.6\"\n      extend \"~3.0.2\"\n      forever-agent \"~0.6.1\"\n      form-data \"~2.3.2\"\n      har-validator \"~5.1.3\"\n      http-signature \"~1.2.0\"\n      is-typedarray \"~1.0.0\"\n      isstream \"~0.1.2\"\n      json-stringify-safe \"~5.0.1\"\n      mime-types \"~2.1.19\"\n      oauth-sign \"~0.9.0\"\n      performance-now \"^2.1.0\"\n      qs \"~6.5.2\"\n      safe-buffer \"^5.1.2\"\n      tough-cookie \"~2.5.0\"\n      tunnel-agent \"^0.6.0\"\n      uuid \"^3.3.2\"\n  \n  require-directory@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42\"\n    integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=\n  \n  require-main-filename@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b\"\n    integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==\n  \n  requires-port@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff\"\n    integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=\n  \n  resolve-alpn@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c\"\n    integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==\n  \n  resolve-cwd@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d\"\n    integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==\n    dependencies:\n      resolve-from \"^5.0.0\"\n  \n  resolve-from@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6\"\n    integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==\n  \n  resolve-from@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69\"\n    integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==\n  \n  resolve-path@^1.4.0:\n    version \"1.4.0\"\n    resolved \"https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7\"\n    integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=\n    dependencies:\n      http-errors \"~1.6.2\"\n      path-is-absolute \"1.0.1\"\n  \n  resolve-pathname@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd\"\n    integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==\n  \n  resolve-url-loader@3.1.2:\n    version \"3.1.2\"\n    resolved \"https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08\"\n    integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==\n    dependencies:\n      adjust-sourcemap-loader \"3.0.0\"\n      camelcase \"5.3.1\"\n      compose-function \"3.0.3\"\n      convert-source-map \"1.7.0\"\n      es6-iterator \"2.0.3\"\n      loader-utils \"1.2.3\"\n      postcss \"7.0.21\"\n      rework \"1.0.1\"\n      rework-visit \"1.0.0\"\n      source-map \"0.6.1\"\n  \n  resolve-url@^0.2.1:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a\"\n    integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=\n  \n  resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.3.2:\n    version \"1.19.0\"\n    resolved \"https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c\"\n    integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==\n    dependencies:\n      is-core-module \"^2.1.0\"\n      path-parse \"^1.0.6\"\n  \n  responselike@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723\"\n    integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==\n    dependencies:\n      lowercase-keys \"^2.0.0\"\n  \n  restore-cursor@^3.1.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e\"\n    integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==\n    dependencies:\n      onetime \"^5.1.0\"\n      signal-exit \"^3.0.2\"\n  \n  ret@~0.1.10:\n    version \"0.1.15\"\n    resolved \"https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc\"\n    integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==\n  \n  reusify@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76\"\n    integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==\n  \n  rework-visit@1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a\"\n    integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo=\n  \n  rework@1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7\"\n    integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=\n    dependencies:\n      convert-source-map \"^0.3.3\"\n      css \"^2.0.0\"\n  \n  rimraf@^2.5.4, rimraf@^2.6.3:\n    version \"2.7.1\"\n    resolved \"https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec\"\n    integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==\n    dependencies:\n      glob \"^7.1.3\"\n  \n  rimraf@^3.0.0, rimraf@^3.0.2:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a\"\n    integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==\n    dependencies:\n      glob \"^7.1.3\"\n  \n  ripemd160@^2.0.0, ripemd160@^2.0.1:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c\"\n    integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==\n    dependencies:\n      hash-base \"^3.0.0\"\n      inherits \"^2.0.1\"\n  \n  rollup-plugin-dynamic-import-variables@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/rollup-plugin-dynamic-import-variables/-/rollup-plugin-dynamic-import-variables-1.1.0.tgz#4981d38907a471b35234398a09047bef47a2006a\"\n    integrity sha512-C1avEmnXC8cC4aAQ5dB63O9oQf7IrhEHc98bQw9Qd6H36FxtZooLCvVfcO4SNYrqaNrzH3ErucQt/zdFSLPHNw==\n    dependencies:\n      \"@rollup/pluginutils\" \"^3.0.9\"\n      estree-walker \"^2.0.1\"\n      globby \"^11.0.0\"\n      magic-string \"^0.25.7\"\n  \n  rollup-plugin-inject@^3.0.0:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4\"\n    integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==\n    dependencies:\n      estree-walker \"^0.6.1\"\n      magic-string \"^0.25.3\"\n      rollup-pluginutils \"^2.8.1\"\n  \n  rollup-plugin-node-polyfills@0.2.1, rollup-plugin-node-polyfills@^0.2.1:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd\"\n    integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==\n    dependencies:\n      rollup-plugin-inject \"^3.0.0\"\n  \n  rollup-plugin-terser@^7.0.2:\n    version \"7.0.2\"\n    resolved \"https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d\"\n    integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==\n    dependencies:\n      \"@babel/code-frame\" \"^7.10.4\"\n      jest-worker \"^26.2.1\"\n      serialize-javascript \"^4.0.0\"\n      terser \"^5.0.0\"\n  \n  rollup-plugin-vue@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/rollup-plugin-vue/-/rollup-plugin-vue-6.0.0.tgz#e379e93e5ae9a8648522f698be2e452e8672aaf2\"\n    integrity sha512-oVvUd84d5u73M2HYM3XsMDLtZRIA/tw2U0dmHlXU2UWP5JARYHzh/U9vcxaN/x/9MrepY7VH3pHFeOhrWpxs/Q==\n    dependencies:\n      debug \"^4.1.1\"\n      hash-sum \"^2.0.0\"\n      rollup-pluginutils \"^2.8.2\"\n  \n  rollup-plugin-web-worker-loader@^1.3.1:\n    version \"1.5.0\"\n    resolved \"https://registry.yarnpkg.com/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.5.0.tgz#df21973426c6f95b238a84698ae27f8d8aab6b83\"\n    integrity sha512-Zx5l370yGDje35rFkM/wbT4dMIq2+kSBdLWQpqLkBuxmrQJcx0umA05kSbNRzccFsudQH4FKYCK8GtSBQRQBBg==\n  \n  rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2:\n    version \"2.8.2\"\n    resolved \"https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e\"\n    integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==\n    dependencies:\n      estree-walker \"^0.6.1\"\n  \n  rollup@^2.23.0, rollup@^2.32.1, rollup@^2.34.0:\n    version \"2.35.1\"\n    resolved \"https://registry.yarnpkg.com/rollup/-/rollup-2.35.1.tgz#e6bc8d10893556a638066f89e8c97f422d03968c\"\n    integrity sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==\n    optionalDependencies:\n      fsevents \"~2.1.2\"\n  \n  rsvp@^4.8.4:\n    version \"4.8.5\"\n    resolved \"https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734\"\n    integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==\n  \n  run-parallel@^1.1.9:\n    version \"1.1.10\"\n    resolved \"https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef\"\n    integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==\n  \n  run-queue@^1.0.0, run-queue@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47\"\n    integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=\n    dependencies:\n      aproba \"^1.1.1\"\n  \n  rx@4.1.0:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782\"\n    integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=\n  \n  safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:\n    version \"5.1.2\"\n    resolved \"https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d\"\n    integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==\n  \n  safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:\n    version \"5.2.1\"\n    resolved \"https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6\"\n    integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==\n  \n  safe-regex@^1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e\"\n    integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=\n    dependencies:\n      ret \"~0.1.10\"\n  \n  \"safer-buffer@>= 2.1.2 < 3\", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:\n    version \"2.1.2\"\n    resolved \"https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a\"\n    integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==\n  \n  sane@^4.0.3:\n    version \"4.1.0\"\n    resolved \"https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded\"\n    integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==\n    dependencies:\n      \"@cnakazawa/watch\" \"^1.0.3\"\n      anymatch \"^2.0.0\"\n      capture-exit \"^2.0.0\"\n      exec-sh \"^0.3.2\"\n      execa \"^1.0.0\"\n      fb-watchman \"^2.0.0\"\n      micromatch \"^3.1.4\"\n      minimist \"^1.1.1\"\n      walker \"~1.0.5\"\n  \n  sass-loader@10.0.5:\n    version \"10.0.5\"\n    resolved \"https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769\"\n    integrity sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w==\n    dependencies:\n      klona \"^2.0.4\"\n      loader-utils \"^2.0.0\"\n      neo-async \"^2.6.2\"\n      schema-utils \"^3.0.0\"\n      semver \"^7.3.2\"\n  \n  sax@>=0.6.0:\n    version \"1.2.4\"\n    resolved \"https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9\"\n    integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==\n  \n  saxes@^5.0.0:\n    version \"5.0.1\"\n    resolved \"https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d\"\n    integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==\n    dependencies:\n      xmlchars \"^2.2.0\"\n  \n  scheduler@0.0.0-experimental-3310209d0:\n    version \"0.0.0-experimental-3310209d0\"\n    resolved \"https://registry.yarnpkg.com/scheduler/-/scheduler-0.0.0-experimental-3310209d0.tgz#228ef98604dd0dc6d5c594945277e28eae2118f1\"\n    integrity sha512-TklIjh2ps3KbU8ZSDg96VUp56VZIb1tb3gy8Y16VKeg2Zf0q7FW+LhqT2gzmfN7OxZVUUHMzXilVVIHtV10gnA==\n    dependencies:\n      loose-envify \"^1.1.0\"\n      object-assign \"^4.1.1\"\n  \n  scheduler@^0.19.1:\n    version \"0.19.1\"\n    resolved \"https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196\"\n    integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==\n    dependencies:\n      loose-envify \"^1.1.0\"\n      object-assign \"^4.1.1\"\n  \n  schema-utils@2.7.1, schema-utils@^2.6.6, schema-utils@^2.7.1:\n    version \"2.7.1\"\n    resolved \"https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7\"\n    integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==\n    dependencies:\n      \"@types/json-schema\" \"^7.0.5\"\n      ajv \"^6.12.4\"\n      ajv-keywords \"^3.5.2\"\n  \n  schema-utils@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770\"\n    integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==\n    dependencies:\n      ajv \"^6.1.0\"\n      ajv-errors \"^1.0.0\"\n      ajv-keywords \"^3.1.0\"\n  \n  schema-utils@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef\"\n    integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==\n    dependencies:\n      \"@types/json-schema\" \"^7.0.6\"\n      ajv \"^6.12.5\"\n      ajv-keywords \"^3.5.2\"\n  \n  scriptjs@^2.5.9:\n    version \"2.5.9\"\n    resolved \"https://registry.yarnpkg.com/scriptjs/-/scriptjs-2.5.9.tgz#343915cd2ec2ed9bfdde2b9875cd28f59394b35f\"\n    integrity sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg==\n  \n  selfsigned@^1.10.8:\n    version \"1.10.8\"\n    resolved \"https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30\"\n    integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==\n    dependencies:\n      node-forge \"^0.10.0\"\n  \n  \"semver@2 || 3 || 4 || 5\", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:\n    version \"5.7.1\"\n    resolved \"https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7\"\n    integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==\n  \n  semver@^6.0.0, semver@^6.3.0:\n    version \"6.3.0\"\n    resolved \"https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d\"\n    integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==\n  \n  semver@^7.3.2:\n    version \"7.3.4\"\n    resolved \"https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97\"\n    integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==\n    dependencies:\n      lru-cache \"^6.0.0\"\n  \n  serialize-javascript@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa\"\n    integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==\n    dependencies:\n      randombytes \"^2.1.0\"\n  \n  set-blocking@^2.0.0, set-blocking@~2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7\"\n    integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=\n  \n  set-value@^2.0.0, set-value@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b\"\n    integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==\n    dependencies:\n      extend-shallow \"^2.0.1\"\n      is-extendable \"^0.1.1\"\n      is-plain-object \"^2.0.3\"\n      split-string \"^3.0.1\"\n  \n  setimmediate@^1.0.4:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285\"\n    integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=\n  \n  setprototypeof@1.1.0:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656\"\n    integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==\n  \n  setprototypeof@1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683\"\n    integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==\n  \n  setprototypeof@1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424\"\n    integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==\n  \n  sha.js@^2.4.0, sha.js@^2.4.8:\n    version \"2.4.11\"\n    resolved \"https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7\"\n    integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==\n    dependencies:\n      inherits \"^2.0.1\"\n      safe-buffer \"^5.0.1\"\n  \n  sharp@0.26.3:\n    version \"0.26.3\"\n    resolved \"https://registry.yarnpkg.com/sharp/-/sharp-0.26.3.tgz#9de8577a986b22538e6e12ced1f7e8a53f9728de\"\n    integrity sha512-NdEJ9S6AMr8Px0zgtFo1TJjMK/ROMU92MkDtYn2BBrDjIx3YfH9TUyGdzPC+I/L619GeYQc690Vbaxc5FPCCWg==\n    dependencies:\n      array-flatten \"^3.0.0\"\n      color \"^3.1.3\"\n      detect-libc \"^1.0.3\"\n      node-addon-api \"^3.0.2\"\n      npmlog \"^4.1.2\"\n      prebuild-install \"^6.0.0\"\n      semver \"^7.3.2\"\n      simple-get \"^4.0.0\"\n      tar-fs \"^2.1.1\"\n      tunnel-agent \"^0.6.0\"\n  \n  shebang-command@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea\"\n    integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=\n    dependencies:\n      shebang-regex \"^1.0.0\"\n  \n  shebang-command@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea\"\n    integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\n    dependencies:\n      shebang-regex \"^3.0.0\"\n  \n  shebang-regex@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3\"\n    integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=\n  \n  shebang-regex@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172\"\n    integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\n  \n  shell-quote@1.7.2, shell-quote@^1.6.1:\n    version \"1.7.2\"\n    resolved \"https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2\"\n    integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==\n  \n  shellwords-ts@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/shellwords-ts/-/shellwords-ts-3.0.0.tgz#cd0679116dbe8581a8a0299b4f5f52a067ac79f2\"\n    integrity sha512-4uZTHR2P7zKRZmSoOiUCFK1K+5LlDxay/RVNWDDImnGG1/4r/dZ2Y3rzpo871Iche913yOgYeKrrxl+3vengFw==\n  \n  shellwords@^0.1.1:\n    version \"0.1.1\"\n    resolved \"https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b\"\n    integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==\n  \n  signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c\"\n    integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==\n  \n  simple-concat@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f\"\n    integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==\n  \n  simple-get@^3.0.3:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3\"\n    integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==\n    dependencies:\n      decompress-response \"^4.2.0\"\n      once \"^1.3.1\"\n      simple-concat \"^1.0.0\"\n  \n  simple-get@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.0.tgz#73fa628278d21de83dadd5512d2cc1f4872bd675\"\n    integrity sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==\n    dependencies:\n      decompress-response \"^6.0.0\"\n      once \"^1.3.1\"\n      simple-concat \"^1.0.0\"\n  \n  simple-statistics@^7.4.0:\n    version \"7.4.0\"\n    resolved \"https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-7.4.0.tgz#4319348aff39d9cc3aababe02671568674807515\"\n    integrity sha512-1mXlR6NEIwMsKWjD+exMd4vvRWmrrBk+MT1n3O5NBjbxjIh1E1YlQikwyNdQjPcq8E+EgUkFmj67gr2bfAIwGg==\n  \n  simple-swizzle@^0.2.2:\n    version \"0.2.2\"\n    resolved \"https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a\"\n    integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=\n    dependencies:\n      is-arrayish \"^0.3.1\"\n  \n  sisteransi@^1.0.5:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed\"\n    integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==\n  \n  skypack@^0.2.1:\n    version \"0.2.1\"\n    resolved \"https://registry.yarnpkg.com/skypack/-/skypack-0.2.1.tgz#700380a639ba13e5dc5a861932430ee5606e8d71\"\n    integrity sha512-+LE2zg5Hdcxnq2PYfo6k/jqLA7vlCljZuGo6x9x9+83GvGULvdBGLCLIa5wUhcHQUIts4m9hB+f3asTPL/TcsA==\n    dependencies:\n      cacache \"^15.0.0\"\n      cachedir \"^2.3.0\"\n      esinstall \"^0.5.1\"\n      etag \"^1.8.1\"\n      find-up \"^5.0.0\"\n      got \"^11.1.4\"\n      kleur \"^4.1.0\"\n      mkdirp \"^1.0.3\"\n      p-queue \"^6.2.1\"\n      rimraf \"^3.0.0\"\n      rollup \"^2.23.0\"\n      validate-npm-package-name \"^3.0.0\"\n  \n  slash@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634\"\n    integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==\n  \n  smartwrap@^1.2.3:\n    version \"1.2.5\"\n    resolved \"https://registry.yarnpkg.com/smartwrap/-/smartwrap-1.2.5.tgz#45ee3e09ac234e5f7f17c16e916f511834f3cd23\"\n    integrity sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==\n    dependencies:\n      breakword \"^1.0.5\"\n      grapheme-splitter \"^1.0.4\"\n      strip-ansi \"^6.0.0\"\n      wcwidth \"^1.0.1\"\n      yargs \"^15.1.0\"\n  \n  snapdragon-node@^2.0.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b\"\n    integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==\n    dependencies:\n      define-property \"^1.0.0\"\n      isobject \"^3.0.0\"\n      snapdragon-util \"^3.0.1\"\n  \n  snapdragon-util@^3.0.1:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2\"\n    integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==\n    dependencies:\n      kind-of \"^3.2.0\"\n  \n  snapdragon@^0.8.1:\n    version \"0.8.2\"\n    resolved \"https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d\"\n    integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==\n    dependencies:\n      base \"^0.11.1\"\n      debug \"^2.2.0\"\n      define-property \"^0.2.5\"\n      extend-shallow \"^2.0.1\"\n      map-cache \"^0.2.2\"\n      source-map \"^0.5.6\"\n      source-map-resolve \"^0.5.0\"\n      use \"^3.1.0\"\n  \n  snowpack@^2.18.4:\n    version \"2.18.5\"\n    resolved \"https://registry.yarnpkg.com/snowpack/-/snowpack-2.18.5.tgz#10a0130fb1eeecda6dfd3be1b1b60ff9849e3da4\"\n    integrity sha512-UThUbGXn/wN7zRJDVpbC0F3uvkhu6PAgpTbV1hdAaqLvYBewT794iEMAY5mMxT27zQ+ZOyqbICaBtKtq0BgDcA==\n    dependencies:\n      \"@snowpack/plugin-build-script\" \"^2.0.12\"\n      \"@snowpack/plugin-run-script\" \"^2.2.1\"\n      \"@types/cheerio\" \"0.22.22\"\n      cacache \"^15.0.0\"\n      cachedir \"^2.3.0\"\n      cheerio \"^1.0.0-rc.3\"\n      chokidar \"^3.4.0\"\n      compressible \"^2.0.18\"\n      cosmiconfig \"^7.0.0\"\n      deepmerge \"^4.2.2\"\n      detect-port \"^1.3.0\"\n      es-module-lexer \"^0.3.24\"\n      esbuild \"^0.8.7\"\n      esinstall \"^0.5.1\"\n      etag \"^1.8.1\"\n      execa \"^4.0.3\"\n      find-cache-dir \"^3.3.1\"\n      find-up \"^5.0.0\"\n      glob \"^7.1.4\"\n      http-proxy \"^1.18.1\"\n      httpie \"^1.1.2\"\n      is-plain-object \"^5.0.0\"\n      isbinaryfile \"^4.0.6\"\n      jsonschema \"~1.2.5\"\n      kleur \"^4.1.1\"\n      mime-types \"^2.1.26\"\n      mkdirp \"^1.0.3\"\n      npm-run-path \"^4.0.1\"\n      open \"^7.0.4\"\n      p-queue \"^6.6.1\"\n      postcss \"^8.1.8\"\n      postcss-modules \"^3.2.2\"\n      resolve-from \"^5.0.0\"\n      rimraf \"^3.0.0\"\n      signal-exit \"^3.0.3\"\n      skypack \"^0.2.1\"\n      source-map \"^0.7.3\"\n      strip-ansi \"^6.0.0\"\n      strip-comments \"^2.0.1\"\n      validate-npm-package-name \"^3.0.0\"\n      ws \"^7.3.0\"\n      yargs-parser \"^20.0.0\"\n  \n  source-list-map@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34\"\n    integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==\n  \n  source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:\n    version \"0.5.3\"\n    resolved \"https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a\"\n    integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==\n    dependencies:\n      atob \"^2.1.2\"\n      decode-uri-component \"^0.2.0\"\n      resolve-url \"^0.2.1\"\n      source-map-url \"^0.4.0\"\n      urix \"^0.1.0\"\n  \n  source-map-support@^0.5.19, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19:\n    version \"0.5.19\"\n    resolved \"https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61\"\n    integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==\n    dependencies:\n      buffer-from \"^1.0.0\"\n      source-map \"^0.6.0\"\n  \n  source-map-url@^0.4.0:\n    version \"0.4.0\"\n    resolved \"https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3\"\n    integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=\n  \n  source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:\n    version \"0.6.1\"\n    resolved \"https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263\"\n    integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\n  \n  source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2:\n    version \"0.7.3\"\n    resolved \"https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383\"\n    integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==\n  \n  source-map@0.8.0-beta.0:\n    version \"0.8.0-beta.0\"\n    resolved \"https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11\"\n    integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==\n    dependencies:\n      whatwg-url \"^7.0.0\"\n  \n  source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7:\n    version \"0.5.7\"\n    resolved \"https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc\"\n    integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=\n  \n  sourcemap-codec@^1.4.4:\n    version \"1.4.8\"\n    resolved \"https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4\"\n    integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==\n  \n  space-separated-tokens@^1.0.0:\n    version \"1.1.5\"\n    resolved \"https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899\"\n    integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==\n  \n  spawndamnit@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad\"\n    integrity sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==\n    dependencies:\n      cross-spawn \"^5.1.0\"\n      signal-exit \"^3.0.2\"\n  \n  spdx-correct@^3.0.0:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9\"\n    integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==\n    dependencies:\n      spdx-expression-parse \"^3.0.0\"\n      spdx-license-ids \"^3.0.0\"\n  \n  spdx-exceptions@^2.1.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d\"\n    integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==\n  \n  spdx-expression-parse@^3.0.0:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679\"\n    integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==\n    dependencies:\n      spdx-exceptions \"^2.1.0\"\n      spdx-license-ids \"^3.0.0\"\n  \n  spdx-license-ids@^3.0.0:\n    version \"3.0.7\"\n    resolved \"https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65\"\n    integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==\n  \n  split-string@^3.0.1, split-string@^3.0.2:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2\"\n    integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==\n    dependencies:\n      extend-shallow \"^3.0.0\"\n  \n  sprintf-js@~1.0.2:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c\"\n    integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=\n  \n  sshpk@^1.7.0:\n    version \"1.16.1\"\n    resolved \"https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877\"\n    integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==\n    dependencies:\n      asn1 \"~0.2.3\"\n      assert-plus \"^1.0.0\"\n      bcrypt-pbkdf \"^1.0.0\"\n      dashdash \"^1.12.0\"\n      ecc-jsbn \"~0.1.1\"\n      getpass \"^0.1.1\"\n      jsbn \"~0.1.0\"\n      safer-buffer \"^2.0.2\"\n      tweetnacl \"~0.14.0\"\n  \n  ssri@^6.0.1:\n    version \"6.0.1\"\n    resolved \"https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8\"\n    integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==\n    dependencies:\n      figgy-pudding \"^3.5.1\"\n  \n  ssri@^8.0.0:\n    version \"8.0.0\"\n    resolved \"https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808\"\n    integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==\n    dependencies:\n      minipass \"^3.1.1\"\n  \n  stack-utils@^2.0.2:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277\"\n    integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==\n    dependencies:\n      escape-string-regexp \"^2.0.0\"\n  \n  stacktrace-parser@0.1.10:\n    version \"0.1.10\"\n    resolved \"https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a\"\n    integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==\n    dependencies:\n      type-fest \"^0.7.1\"\n  \n  state-toggle@^1.0.0:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe\"\n    integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==\n  \n  static-extend@^0.1.1:\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6\"\n    integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=\n    dependencies:\n      define-property \"^0.2.5\"\n      object-copy \"^0.1.0\"\n  \n  \"statuses@>= 1.2.1 < 2\", \"statuses@>= 1.4.0 < 2\", \"statuses@>= 1.5.0 < 2\", statuses@^1.5.0:\n    version \"1.5.0\"\n    resolved \"https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c\"\n    integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=\n  \n  stealthy-require@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b\"\n    integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=\n  \n  stream-browserify@3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f\"\n    integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==\n    dependencies:\n      inherits \"~2.0.4\"\n      readable-stream \"^3.5.0\"\n  \n  stream-browserify@^2.0.1:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b\"\n    integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==\n    dependencies:\n      inherits \"~2.0.1\"\n      readable-stream \"^2.0.2\"\n  \n  stream-each@^1.1.0:\n    version \"1.2.3\"\n    resolved \"https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae\"\n    integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==\n    dependencies:\n      end-of-stream \"^1.1.0\"\n      stream-shift \"^1.0.0\"\n  \n  stream-http@^2.7.2:\n    version \"2.8.3\"\n    resolved \"https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc\"\n    integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==\n    dependencies:\n      builtin-status-codes \"^3.0.0\"\n      inherits \"^2.0.1\"\n      readable-stream \"^2.3.6\"\n      to-arraybuffer \"^1.0.0\"\n      xtend \"^4.0.0\"\n  \n  stream-shift@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d\"\n    integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==\n  \n  stream-transform@^2.0.1:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.0.3.tgz#e3f6bac78b7d81a1452bf84bee9f340a1786bd60\"\n    integrity sha512-HgNXs2rNG9pKC2gK4owtMPMKfto81S/TWZw0Ybsx6Wp23klnN0YctnMXYe0PmzzhB/zIBEB+0Urf+PMorE4d/A==\n    dependencies:\n      mixme \"^0.4.0\"\n  \n  string-hash@1.1.3, string-hash@^1.1.1:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b\"\n    integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=\n  \n  string-length@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1\"\n    integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==\n    dependencies:\n      char-regex \"^1.0.2\"\n      strip-ansi \"^6.0.0\"\n  \n  string-width@^1.0.1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3\"\n    integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=\n    dependencies:\n      code-point-at \"^1.0.0\"\n      is-fullwidth-code-point \"^1.0.0\"\n      strip-ansi \"^3.0.0\"\n  \n  \"string-width@^1.0.2 || 2\", string-width@^2.0.0, string-width@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e\"\n    integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==\n    dependencies:\n      is-fullwidth-code-point \"^2.0.0\"\n      strip-ansi \"^4.0.0\"\n  \n  string-width@^4.1.0, string-width@^4.2.0:\n    version \"4.2.0\"\n    resolved \"https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5\"\n    integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==\n    dependencies:\n      emoji-regex \"^8.0.0\"\n      is-fullwidth-code-point \"^3.0.0\"\n      strip-ansi \"^6.0.0\"\n  \n  string.prototype.padend@^3.0.0:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz#824c84265dbac46cade2b957b38b6a5d8d1683c5\"\n    integrity sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n      es-abstract \"^1.18.0-next.1\"\n  \n  string.prototype.trimend@^1.0.1:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b\"\n    integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n  \n  string.prototype.trimstart@^1.0.1:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa\"\n    integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==\n    dependencies:\n      call-bind \"^1.0.0\"\n      define-properties \"^1.1.3\"\n  \n  string_decoder@^1.0.0, string_decoder@^1.1.1:\n    version \"1.3.0\"\n    resolved \"https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e\"\n    integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==\n    dependencies:\n      safe-buffer \"~5.2.0\"\n  \n  string_decoder@~1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8\"\n    integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==\n    dependencies:\n      safe-buffer \"~5.1.0\"\n  \n  stringify-entities@^3.0.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.1.0.tgz#b8d3feac256d9ffcc9fa1fefdcf3ca70576ee903\"\n    integrity sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==\n    dependencies:\n      character-entities-html4 \"^1.0.0\"\n      character-entities-legacy \"^1.0.0\"\n      xtend \"^4.0.0\"\n  \n  stringify-object@3.3.0:\n    version \"3.3.0\"\n    resolved \"https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629\"\n    integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==\n    dependencies:\n      get-own-enumerable-property-symbols \"^3.0.0\"\n      is-obj \"^1.0.1\"\n      is-regexp \"^1.0.0\"\n  \n  strip-ansi@6.0.0, strip-ansi@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532\"\n    integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==\n    dependencies:\n      ansi-regex \"^5.0.0\"\n  \n  strip-ansi@^3.0.0, strip-ansi@^3.0.1:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf\"\n    integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=\n    dependencies:\n      ansi-regex \"^2.0.0\"\n  \n  strip-ansi@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f\"\n    integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=\n    dependencies:\n      ansi-regex \"^3.0.0\"\n  \n  strip-bom@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3\"\n    integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=\n  \n  strip-bom@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878\"\n    integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==\n  \n  strip-comments@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b\"\n    integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==\n  \n  strip-eof@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf\"\n    integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=\n  \n  strip-final-newline@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad\"\n    integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==\n  \n  strip-indent@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001\"\n    integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==\n    dependencies:\n      min-indent \"^1.0.0\"\n  \n  strip-json-comments@^3.1.1:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006\"\n    integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==\n  \n  strip-json-comments@~2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a\"\n    integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=\n  \n  style-loader@1.2.1:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a\"\n    integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==\n    dependencies:\n      loader-utils \"^2.0.0\"\n      schema-utils \"^2.6.6\"\n  \n  style-to-object@0.3.0, style-to-object@^0.3.0:\n    version \"0.3.0\"\n    resolved \"https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46\"\n    integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==\n    dependencies:\n      inline-style-parser \"0.1.1\"\n  \n  style-value-types@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.0.1.tgz#23f05dd03e8a850654defc22cf03ebac572aaa00\"\n    integrity sha512-aOV/HHyynIyTmU27qfs0oAHhFde6BFIvV4+nMerE2MAPZMwYOeQk1/F3S6djxF2u4HdbiieCPs3ZzWsbNUoc9A==\n    dependencies:\n      hey-listen \"^1.0.8\"\n      tslib \"^1.10.0\"\n  \n  styled-jsx@3.3.2:\n    version \"3.3.2\"\n    resolved \"https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.3.2.tgz#2474601a26670a6049fb4d3f94bd91695b3ce018\"\n    integrity sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g==\n    dependencies:\n      \"@babel/types\" \"7.8.3\"\n      babel-plugin-syntax-jsx \"6.18.0\"\n      convert-source-map \"1.7.0\"\n      loader-utils \"1.2.3\"\n      source-map \"0.7.3\"\n      string-hash \"1.1.3\"\n      stylis \"3.5.4\"\n      stylis-rule-sheet \"0.0.10\"\n  \n  stylis-rule-sheet@0.0.10:\n    version \"0.0.10\"\n    resolved \"https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430\"\n    integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==\n  \n  stylis@3.5.4:\n    version \"3.5.4\"\n    resolved \"https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe\"\n    integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==\n  \n  stylis@^4.0.3:\n    version \"4.0.6\"\n    resolved \"https://registry.yarnpkg.com/stylis/-/stylis-4.0.6.tgz#0d8b97b6bc4748bea46f68602b6df27641b3c548\"\n    integrity sha512-1igcUEmYFBEO14uQHAJhCUelTR5jPztfdVKrYxRnDa5D5Dn3w0NxXupJNPr/VV/yRfZYEAco8sTIRZzH3sRYKg==\n  \n  sucrase@^3.0.0:\n    version \"3.16.0\"\n    resolved \"https://registry.yarnpkg.com/sucrase/-/sucrase-3.16.0.tgz#19b5b886ccca270dd5ca12ff060eeaf0b599735f\"\n    integrity sha512-ovVuswxV5TayCPXfTk8bgBgk6uNRvsinIkEpq0J6zS1xXCx5N/LLGcbsKdRhqn/ToZylMX6+yXaR1LSn1I42Pg==\n    dependencies:\n      commander \"^4.0.0\"\n      glob \"7.1.6\"\n      lines-and-columns \"^1.1.6\"\n      mz \"^2.7.0\"\n      pirates \"^4.0.1\"\n      ts-interface-checker \"^0.1.9\"\n  \n  supports-color@^5.3.0, supports-color@^5.4.0:\n    version \"5.5.0\"\n    resolved \"https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f\"\n    integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==\n    dependencies:\n      has-flag \"^3.0.0\"\n  \n  supports-color@^6.1.0:\n    version \"6.1.0\"\n    resolved \"https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3\"\n    integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==\n    dependencies:\n      has-flag \"^3.0.0\"\n  \n  supports-color@^7.0.0, supports-color@^7.1.0:\n    version \"7.2.0\"\n    resolved \"https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da\"\n    integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\n    dependencies:\n      has-flag \"^4.0.0\"\n  \n  supports-hyperlinks@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47\"\n    integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==\n    dependencies:\n      has-flag \"^4.0.0\"\n      supports-color \"^7.0.0\"\n  \n  svelte-hmr@^0.12.2:\n    version \"0.12.2\"\n    resolved \"https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.12.2.tgz#689df7681f0461e7a2539b3fad1336ee1da84751\"\n    integrity sha512-86fpj4Wjno7OREJsGxQwpVBtB3kmiKWwpOlvdZmfBZYankpL38lcVtAi1zvQXXcN4g8pRXUG68khwp6dYRwpYg==\n  \n  svelte@^3.31.2:\n    version \"3.31.2\"\n    resolved \"https://registry.yarnpkg.com/svelte/-/svelte-3.31.2.tgz#d2ddf6cacbb95e4cc3796207510b660a25586324\"\n    integrity sha512-TxZGrXzX2ggFH3BIKY5fmbeMdJuZrMIMDYPMX6R9255bueuYIuVaBQSLUeY2oD7W4IdeqRZiAVGCjDw2POKBRA==\n  \n  svg-react-loader@0.4.6:\n    version \"0.4.6\"\n    resolved \"https://registry.yarnpkg.com/svg-react-loader/-/svg-react-loader-0.4.6.tgz#b263efb3e3d2fff4c682a729351aba5f185051a1\"\n    integrity sha512-HVEypjWQsQuJdBIPzXGxpmQsQts7QwfQuYgK1rah6BVCMoLNSCh/ESKVNd7/tHq8DkWYHHTyaUMDA1FjqZYrgA==\n    dependencies:\n      css \"2.2.4\"\n      loader-utils \"1.1.0\"\n      ramda \"0.21.0\"\n      rx \"4.1.0\"\n      traverse \"0.6.6\"\n      xml2js \"0.4.17\"\n  \n  swr@^0.3.11:\n    version \"0.3.11\"\n    resolved \"https://registry.yarnpkg.com/swr/-/swr-0.3.11.tgz#f7f50ed26c06afea4249482cec504768a2272664\"\n    integrity sha512-ya30LuRGK2R7eDlttnb7tU5EmJYJ+N6ytIOM2j0Hqs0qauJcDjVLDOGy7KmFeH5ivOwLHalFaIyYl2K+SGa7HQ==\n    dependencies:\n      dequal \"2.0.2\"\n  \n  symbol-tree@^3.2.4:\n    version \"3.2.4\"\n    resolved \"https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2\"\n    integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==\n  \n  tailwindcss@^1.7.2:\n    version \"1.9.6\"\n    resolved \"https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.9.6.tgz#0c5089911d24e1e98e592a31bfdb3d8f34ecf1a0\"\n    integrity sha512-nY8WYM/RLPqGsPEGEV2z63riyQPcHYZUJpAwdyBzVpxQHOHqHE+F/fvbCeXhdF1+TA5l72vSkZrtYCB9hRcwkQ==\n    dependencies:\n      \"@fullhuman/postcss-purgecss\" \"^2.1.2\"\n      autoprefixer \"^9.4.5\"\n      browserslist \"^4.12.0\"\n      bytes \"^3.0.0\"\n      chalk \"^3.0.0 || ^4.0.0\"\n      color \"^3.1.2\"\n      detective \"^5.2.0\"\n      fs-extra \"^8.0.0\"\n      html-tags \"^3.1.0\"\n      lodash \"^4.17.20\"\n      node-emoji \"^1.8.1\"\n      normalize.css \"^8.0.1\"\n      object-hash \"^2.0.3\"\n      postcss \"^7.0.11\"\n      postcss-functions \"^3.0.0\"\n      postcss-js \"^2.0.0\"\n      postcss-nested \"^4.1.1\"\n      postcss-selector-parser \"^6.0.0\"\n      postcss-value-parser \"^4.1.0\"\n      pretty-hrtime \"^1.0.3\"\n      reduce-css-calc \"^2.1.6\"\n      resolve \"^1.14.2\"\n  \n  tapable@^1.0.0, tapable@^1.1.3:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2\"\n    integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==\n  \n  tar-fs@^2.0.0, tar-fs@^2.1.1:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784\"\n    integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==\n    dependencies:\n      chownr \"^1.1.1\"\n      mkdirp-classic \"^0.5.2\"\n      pump \"^3.0.0\"\n      tar-stream \"^2.1.4\"\n  \n  tar-stream@^2.1.4:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287\"\n    integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==\n    dependencies:\n      bl \"^4.0.3\"\n      end-of-stream \"^1.4.1\"\n      fs-constants \"^1.0.0\"\n      inherits \"^2.0.3\"\n      readable-stream \"^3.1.1\"\n  \n  tar@^6.0.2:\n    version \"6.0.5\"\n    resolved \"https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f\"\n    integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==\n    dependencies:\n      chownr \"^2.0.0\"\n      fs-minipass \"^2.0.0\"\n      minipass \"^3.0.0\"\n      minizlib \"^2.1.1\"\n      mkdirp \"^1.0.3\"\n      yallist \"^4.0.0\"\n  \n  term-size@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69\"\n    integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=\n    dependencies:\n      execa \"^0.7.0\"\n  \n  term-size@^2.1.0:\n    version \"2.2.1\"\n    resolved \"https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54\"\n    integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==\n  \n  terminal-link@^2.0.0:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994\"\n    integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==\n    dependencies:\n      ansi-escapes \"^4.2.1\"\n      supports-hyperlinks \"^2.0.0\"\n  \n  terser-webpack-plugin@^1.4.3:\n    version \"1.4.5\"\n    resolved \"https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b\"\n    integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==\n    dependencies:\n      cacache \"^12.0.2\"\n      find-cache-dir \"^2.1.0\"\n      is-wsl \"^1.1.0\"\n      schema-utils \"^1.0.0\"\n      serialize-javascript \"^4.0.0\"\n      source-map \"^0.6.1\"\n      terser \"^4.1.2\"\n      webpack-sources \"^1.4.0\"\n      worker-farm \"^1.7.0\"\n  \n  terser@5.5.1, terser@^5.0.0:\n    version \"5.5.1\"\n    resolved \"https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289\"\n    integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==\n    dependencies:\n      commander \"^2.20.0\"\n      source-map \"~0.7.2\"\n      source-map-support \"~0.5.19\"\n  \n  terser@^4.1.2:\n    version \"4.8.0\"\n    resolved \"https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17\"\n    integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==\n    dependencies:\n      commander \"^2.20.0\"\n      source-map \"~0.6.1\"\n      source-map-support \"~0.5.12\"\n  \n  test-exclude@^6.0.0:\n    version \"6.0.0\"\n    resolved \"https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e\"\n    integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==\n    dependencies:\n      \"@istanbuljs/schema\" \"^0.1.2\"\n      glob \"^7.1.4\"\n      minimatch \"^3.0.4\"\n  \n  thenify-all@^1.0.0:\n    version \"1.6.0\"\n    resolved \"https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726\"\n    integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=\n    dependencies:\n      thenify \">= 3.1.0 < 4\"\n  \n  \"thenify@>= 3.1.0 < 4\":\n    version \"3.3.1\"\n    resolved \"https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f\"\n    integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==\n    dependencies:\n      any-promise \"^1.0.0\"\n  \n  throat@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b\"\n    integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==\n  \n  through2@^2.0.0:\n    version \"2.0.5\"\n    resolved \"https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd\"\n    integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==\n    dependencies:\n      readable-stream \"~2.3.6\"\n      xtend \"~4.0.1\"\n  \n  timers-browserify@^2.0.4:\n    version \"2.0.12\"\n    resolved \"https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee\"\n    integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==\n    dependencies:\n      setimmediate \"^1.0.4\"\n  \n  tiny-invariant@^1.0.2, tiny-invariant@^1.0.6:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875\"\n    integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==\n  \n  tiny-warning@^1.0.0, tiny-warning@^1.0.3:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754\"\n    integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==\n  \n  tinycolor2@1.4.2:\n    version \"1.4.2\"\n    resolved \"https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803\"\n    integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==\n  \n  tmp@^0.0.33:\n    version \"0.0.33\"\n    resolved \"https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9\"\n    integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==\n    dependencies:\n      os-tmpdir \"~1.0.2\"\n  \n  tmpfile@^0.2.0:\n    version \"0.2.0\"\n    resolved \"https://registry.yarnpkg.com/tmpfile/-/tmpfile-0.2.0.tgz#4bea580e676b669ca755947130108caba572e7c8\"\n    integrity sha1-S+pYDmdrZpynVZRxMBCMq6Vy58g=\n  \n  tmpl@1.0.x:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1\"\n    integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=\n  \n  to-arraybuffer@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43\"\n    integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=\n  \n  to-fast-properties@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e\"\n    integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=\n  \n  to-object-path@^0.3.0:\n    version \"0.3.0\"\n    resolved \"https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af\"\n    integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=\n    dependencies:\n      kind-of \"^3.0.2\"\n  \n  to-querystring@^1.0.4:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/to-querystring/-/to-querystring-1.1.1.tgz#98de5b00c79768a98ca48a2c09a960238d960265\"\n    integrity sha512-ZgIacl9TXAoT7sGXUYjQiy0MW7Tf/7CJQLt757hYHfXXc8JBzOVBMx4DckqKUO4hi36J72/m8UcH/GCHK+n97g==\n  \n  to-regex-range@^2.1.0:\n    version \"2.1.1\"\n    resolved \"https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38\"\n    integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=\n    dependencies:\n      is-number \"^3.0.0\"\n      repeat-string \"^1.6.1\"\n  \n  to-regex-range@^5.0.1:\n    version \"5.0.1\"\n    resolved \"https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4\"\n    integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==\n    dependencies:\n      is-number \"^7.0.0\"\n  \n  to-regex@^3.0.1, to-regex@^3.0.2:\n    version \"3.0.2\"\n    resolved \"https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce\"\n    integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==\n    dependencies:\n      define-property \"^2.0.2\"\n      extend-shallow \"^3.0.2\"\n      regex-not \"^1.0.2\"\n      safe-regex \"^1.1.0\"\n  \n  toggle-selection@^1.0.6:\n    version \"1.0.6\"\n    resolved \"https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32\"\n    integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI=\n  \n  toidentifier@1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553\"\n    integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==\n  \n  tough-cookie@^2.3.3, tough-cookie@~2.5.0:\n    version \"2.5.0\"\n    resolved \"https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2\"\n    integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==\n    dependencies:\n      psl \"^1.1.28\"\n      punycode \"^2.1.1\"\n  \n  tough-cookie@^3.0.1:\n    version \"3.0.1\"\n    resolved \"https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2\"\n    integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==\n    dependencies:\n      ip-regex \"^2.1.0\"\n      psl \"^1.1.28\"\n      punycode \"^2.1.1\"\n  \n  tr46@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09\"\n    integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=\n    dependencies:\n      punycode \"^2.1.0\"\n  \n  tr46@^2.0.2:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479\"\n    integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==\n    dependencies:\n      punycode \"^2.1.1\"\n  \n  traverse@0.6.6:\n    version \"0.6.6\"\n    resolved \"https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137\"\n    integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=\n  \n  trim-newlines@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30\"\n    integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==\n  \n  trim-right@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003\"\n    integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=\n  \n  trim-trailing-lines@^1.0.0:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0\"\n    integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==\n  \n  trim@0.0.1:\n    version \"0.0.1\"\n    resolved \"https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd\"\n    integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0=\n  \n  trough@^1.0.0:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406\"\n    integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==\n  \n  ts-interface-checker@^0.1.9:\n    version \"0.1.13\"\n    resolved \"https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699\"\n    integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==\n  \n  ts-pnp@^1.1.6:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92\"\n    integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==\n  \n  tslib@2.0.3, tslib@^2.0.3:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c\"\n    integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==\n  \n  tslib@^1.0.0, tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3:\n    version \"1.14.1\"\n    resolved \"https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00\"\n    integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==\n  \n  tslib@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a\"\n    integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==\n  \n  tsscmp@1.0.6:\n    version \"1.0.6\"\n    resolved \"https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb\"\n    integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==\n  \n  tty-browserify@0.0.0:\n    version \"0.0.0\"\n    resolved \"https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6\"\n    integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=\n  \n  tty-table@^2.8.10:\n    version \"2.8.13\"\n    resolved \"https://registry.yarnpkg.com/tty-table/-/tty-table-2.8.13.tgz#d484a416381973eaebbdf19c79136b390e5c6d70\"\n    integrity sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==\n    dependencies:\n      chalk \"^3.0.0\"\n      csv \"^5.3.1\"\n      smartwrap \"^1.2.3\"\n      strip-ansi \"^6.0.0\"\n      wcwidth \"^1.0.1\"\n      yargs \"^15.1.0\"\n  \n  tunnel-agent@^0.6.0:\n    version \"0.6.0\"\n    resolved \"https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd\"\n    integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=\n    dependencies:\n      safe-buffer \"^5.0.1\"\n  \n  tweetnacl@^0.14.3, tweetnacl@~0.14.0:\n    version \"0.14.5\"\n    resolved \"https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64\"\n    integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=\n  \n  type-check@~0.3.2:\n    version \"0.3.2\"\n    resolved \"https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72\"\n    integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=\n    dependencies:\n      prelude-ls \"~1.1.2\"\n  \n  type-detect@4.0.8:\n    version \"4.0.8\"\n    resolved \"https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c\"\n    integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==\n  \n  type-fest@^0.11.0:\n    version \"0.11.0\"\n    resolved \"https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1\"\n    integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==\n  \n  type-fest@^0.13.1:\n    version \"0.13.1\"\n    resolved \"https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934\"\n    integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==\n  \n  type-fest@^0.20.0:\n    version \"0.20.2\"\n    resolved \"https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4\"\n    integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==\n  \n  type-fest@^0.6.0:\n    version \"0.6.0\"\n    resolved \"https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b\"\n    integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==\n  \n  type-fest@^0.7.1:\n    version \"0.7.1\"\n    resolved \"https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48\"\n    integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==\n  \n  type-fest@^0.8.1:\n    version \"0.8.1\"\n    resolved \"https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d\"\n    integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==\n  \n  type-is@^1.6.14, type-is@^1.6.16:\n    version \"1.6.18\"\n    resolved \"https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131\"\n    integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==\n    dependencies:\n      media-typer \"0.3.0\"\n      mime-types \"~2.1.24\"\n  \n  type@^1.0.1:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0\"\n    integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==\n  \n  type@^2.0.0:\n    version \"2.1.0\"\n    resolved \"https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f\"\n    integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==\n  \n  typedarray-to-buffer@^3.1.5:\n    version \"3.1.5\"\n    resolved \"https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080\"\n    integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==\n    dependencies:\n      is-typedarray \"^1.0.0\"\n  \n  typedarray@^0.0.6:\n    version \"0.0.6\"\n    resolved \"https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777\"\n    integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=\n  \n  typescript@^4.1.2:\n    version \"4.1.2\"\n    resolved \"https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9\"\n    integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==\n  \n  ultra-runner@^3.6.0:\n    version \"3.6.0\"\n    resolved \"https://registry.yarnpkg.com/ultra-runner/-/ultra-runner-3.6.0.tgz#531f78071d140d88227def55727b2e7b791d6139\"\n    integrity sha512-ccr8w6exl7J9YHeuf021jk4tLmJn9zBp7fizHo0j49a61I40SUv5yZkxvpf5K0C+rXy6L3HhJHfNO1Gm4QI+XQ==\n    dependencies:\n      ansi-split \"^1.0.1\"\n      chalk \"^4.0.0\"\n      cross-spawn \"^7.0.1\"\n      fast-glob \"^3.2.2\"\n      globrex \"^0.1.2\"\n      json5 \"^2.1.1\"\n      npm-run-path \"4.0.1\"\n      pid-cwd \"^1.2.0\"\n      ps-list \"^7.0.0\"\n      shellwords-ts \"^3.0.0\"\n      string-width \"^4.2.0\"\n      tslib \"2.0.3\"\n      type-fest \"^0.20.0\"\n      wrap-ansi \"^7.0.0\"\n      yamljs \"^0.3.0\"\n      yargs \"^16.0.0\"\n  \n  unescape@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/unescape/-/unescape-1.0.1.tgz#956e430f61cad8a4d57d82c518f5e6cc5d0dda96\"\n    integrity sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==\n    dependencies:\n      extend-shallow \"^2.0.1\"\n  \n  unherit@^1.0.4:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22\"\n    integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==\n    dependencies:\n      inherits \"^2.0.0\"\n      xtend \"^4.0.0\"\n  \n  unicode-canonical-property-names-ecmascript@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818\"\n    integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==\n  \n  unicode-match-property-ecmascript@^1.0.4:\n    version \"1.0.4\"\n    resolved \"https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c\"\n    integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==\n    dependencies:\n      unicode-canonical-property-names-ecmascript \"^1.0.4\"\n      unicode-property-aliases-ecmascript \"^1.0.4\"\n  \n  unicode-match-property-value-ecmascript@^1.2.0:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531\"\n    integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==\n  \n  unicode-property-aliases-ecmascript@^1.0.4:\n    version \"1.1.0\"\n    resolved \"https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4\"\n    integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==\n  \n  unified@9.2.0, unified@^9.0.0:\n    version \"9.2.0\"\n    resolved \"https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8\"\n    integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==\n    dependencies:\n      bail \"^1.0.0\"\n      extend \"^3.0.0\"\n      is-buffer \"^2.0.0\"\n      is-plain-obj \"^2.0.0\"\n      trough \"^1.0.0\"\n      vfile \"^4.0.0\"\n  \n  union-value@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847\"\n    integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==\n    dependencies:\n      arr-union \"^3.1.0\"\n      get-value \"^2.0.6\"\n      is-extendable \"^0.1.1\"\n      set-value \"^2.0.1\"\n  \n  uniq@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff\"\n    integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=\n  \n  unique-filename@^1.1.1:\n    version \"1.1.1\"\n    resolved \"https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230\"\n    integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==\n    dependencies:\n      unique-slug \"^2.0.0\"\n  \n  unique-slug@^2.0.0:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c\"\n    integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==\n    dependencies:\n      imurmurhash \"^0.1.4\"\n  \n  unist-builder@2.0.3, unist-builder@^2.0.0:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436\"\n    integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==\n  \n  unist-util-generated@^1.0.0:\n    version \"1.1.6\"\n    resolved \"https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b\"\n    integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==\n  \n  unist-util-is@^4.0.0, unist-util-is@^4.0.2:\n    version \"4.0.4\"\n    resolved \"https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50\"\n    integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==\n  \n  unist-util-position@^3.0.0:\n    version \"3.1.0\"\n    resolved \"https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47\"\n    integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==\n  \n  unist-util-remove-position@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc\"\n    integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==\n    dependencies:\n      unist-util-visit \"^2.0.0\"\n  \n  unist-util-remove@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.0.1.tgz#fa13c424ff8e964f3aa20d1098b9a690c6bfaa39\"\n    integrity sha512-YtuetK6o16CMfG+0u4nndsWpujgsHDHHLyE0yGpJLLn5xSjKeyGyzEBOI2XbmoUHCYabmNgX52uxlWoQhcvR7Q==\n    dependencies:\n      unist-util-is \"^4.0.0\"\n  \n  unist-util-stringify-position@^2.0.0:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da\"\n    integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==\n    dependencies:\n      \"@types/unist\" \"^2.0.2\"\n  \n  unist-util-visit-parents@^3.0.0:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6\"\n    integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==\n    dependencies:\n      \"@types/unist\" \"^2.0.0\"\n      unist-util-is \"^4.0.0\"\n  \n  unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.2:\n    version \"2.0.3\"\n    resolved \"https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c\"\n    integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==\n    dependencies:\n      \"@types/unist\" \"^2.0.0\"\n      unist-util-is \"^4.0.0\"\n      unist-util-visit-parents \"^3.0.0\"\n  \n  universalify@^0.1.0:\n    version \"0.1.2\"\n    resolved \"https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66\"\n    integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==\n  \n  universalify@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d\"\n    integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==\n  \n  universalify@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717\"\n    integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==\n  \n  unpipe@1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec\"\n    integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=\n  \n  unset-value@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559\"\n    integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=\n    dependencies:\n      has-value \"^0.3.1\"\n      isobject \"^3.0.0\"\n  \n  upath@^1.1.1:\n    version \"1.2.0\"\n    resolved \"https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894\"\n    integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==\n  \n  uri-js@^4.2.2:\n    version \"4.4.0\"\n    resolved \"https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602\"\n    integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==\n    dependencies:\n      punycode \"^2.1.0\"\n  \n  urix@^0.1.0:\n    version \"0.1.0\"\n    resolved \"https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72\"\n    integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=\n  \n  url@^0.11.0:\n    version \"0.11.0\"\n    resolved \"https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1\"\n    integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=\n    dependencies:\n      punycode \"1.3.2\"\n      querystring \"0.2.0\"\n  \n  use-callback-ref@^1.2.1, use-callback-ref@^1.2.3:\n    version \"1.2.4\"\n    resolved \"https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.4.tgz#d86d1577bfd0b955b6e04aaf5971025f406bea3c\"\n    integrity sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ==\n  \n  use-sidecar@^1.0.1:\n    version \"1.0.3\"\n    resolved \"https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.0.3.tgz#17a4e567d4830c0c0ee100040e85a7fe68611e0f\"\n    integrity sha512-ygJwGUBeQfWgDls7uTrlEDzJUUR67L8Rm14v/KfFtYCdHhtjHZx1Krb3DIQl3/Q5dJGfXLEQ02RY8BdNBv87SQ==\n    dependencies:\n      detect-node-es \"^1.0.0\"\n      tslib \"^1.9.3\"\n  \n  use-subscription@1.5.1:\n    version \"1.5.1\"\n    resolved \"https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1\"\n    integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==\n    dependencies:\n      object-assign \"^4.1.1\"\n  \n  use@^3.1.0:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f\"\n    integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==\n  \n  util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf\"\n    integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=\n  \n  util@0.10.3:\n    version \"0.10.3\"\n    resolved \"https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9\"\n    integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=\n    dependencies:\n      inherits \"2.0.1\"\n  \n  util@^0.11.0:\n    version \"0.11.1\"\n    resolved \"https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61\"\n    integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==\n    dependencies:\n      inherits \"2.0.3\"\n  \n  utility-types@^3.10.0:\n    version \"3.10.0\"\n    resolved \"https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b\"\n    integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==\n  \n  uuid@^3.3.2:\n    version \"3.4.0\"\n    resolved \"https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee\"\n    integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==\n  \n  uuid@^8.3.0:\n    version \"8.3.1\"\n    resolved \"https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31\"\n    integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==\n  \n  uuid@^8.3.2:\n    version \"8.3.2\"\n    resolved \"https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2\"\n    integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==\n  \n  v8-to-istanbul@^7.0.0:\n    version \"7.0.0\"\n    resolved \"https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc\"\n    integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==\n    dependencies:\n      \"@types/istanbul-lib-coverage\" \"^2.0.1\"\n      convert-source-map \"^1.6.0\"\n      source-map \"^0.7.3\"\n  \n  validate-npm-package-license@^3.0.1:\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a\"\n    integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==\n    dependencies:\n      spdx-correct \"^3.0.0\"\n      spdx-expression-parse \"^3.0.0\"\n  \n  validate-npm-package-name@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e\"\n    integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34=\n    dependencies:\n      builtins \"^1.0.3\"\n  \n  value-equal@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c\"\n    integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==\n  \n  vary@^1.1.2:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc\"\n    integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=\n  \n  verror@1.10.0:\n    version \"1.10.0\"\n    resolved \"https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400\"\n    integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=\n    dependencies:\n      assert-plus \"^1.0.0\"\n      core-util-is \"1.0.2\"\n      extsprintf \"^1.2.0\"\n  \n  vfile-location@^3.0.0, vfile-location@^3.2.0:\n    version \"3.2.0\"\n    resolved \"https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c\"\n    integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==\n  \n  vfile-message@^2.0.0:\n    version \"2.0.4\"\n    resolved \"https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a\"\n    integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==\n    dependencies:\n      \"@types/unist\" \"^2.0.0\"\n      unist-util-stringify-position \"^2.0.0\"\n  \n  vfile@^4.0.0:\n    version \"4.2.1\"\n    resolved \"https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624\"\n    integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==\n    dependencies:\n      \"@types/unist\" \"^2.0.0\"\n      is-buffer \"^2.0.0\"\n      unist-util-stringify-position \"^2.0.0\"\n      vfile-message \"^2.0.0\"\n  \n  vite-plugin-react@^4.0.1:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/vite-plugin-react/-/vite-plugin-react-4.0.1.tgz#5dd04f20ec4ebd17ca52f53a3faac51255ebb0d8\"\n    integrity sha512-liDo/wxTcy2E5cptwsAUZIC0F4flxWkmcPOJdhKCzJIC9XguWCCJimzziTQRmHuqIPawmQNE8PJb8+RlGzNxOA==\n    dependencies:\n      \"@babel/core\" \"^7.9.6\"\n      \"@babel/plugin-syntax-import-meta\" \"^7.10.4\"\n      react-refresh \"^0.8.2\"\n  \n  vite@^1.0.0-rc.13:\n    version \"1.0.0-rc.13\"\n    resolved \"https://registry.yarnpkg.com/vite/-/vite-1.0.0-rc.13.tgz#0e0b3b6138998a1d0c02459908a6c4fb2f294727\"\n    integrity sha512-hLfTbhNPDhwXMCAWR6s6C79G/O8Is0MbslglgoHSQsRby+KnqHgtHChCVBHFeV2oZBV/3xhHhnfm94BDPFe8Ww==\n    dependencies:\n      \"@babel/parser\" \"^7.12.7\"\n      \"@koa/cors\" \"^3.1.0\"\n      \"@rollup/plugin-commonjs\" \"^16.0.0\"\n      \"@rollup/plugin-json\" \"^4.1.0\"\n      \"@rollup/plugin-node-resolve\" \"^10.0.0\"\n      \"@rollup/pluginutils\" \"^4.1.0\"\n      \"@types/http-proxy\" \"^1.17.4\"\n      \"@types/koa\" \"^2.11.4\"\n      \"@types/lru-cache\" \"^5.1.0\"\n      \"@vue/compiler-dom\" \"^3.0.3\"\n      \"@vue/compiler-sfc\" \"^3.0.3\"\n      brotli-size \"^4.0.0\"\n      cac \"^6.6.1\"\n      chalk \"^4.1.0\"\n      chokidar \"^3.4.2\"\n      clean-css \"^4.2.3\"\n      debug \"^4.3.1\"\n      dotenv \"^8.2.0\"\n      dotenv-expand \"^5.1.0\"\n      es-module-lexer \"^0.3.25\"\n      esbuild \"^0.8.12\"\n      etag \"^1.8.1\"\n      execa \"^4.0.3\"\n      fs-extra \"^9.0.1\"\n      hash-sum \"^2.0.0\"\n      isbuiltin \"^1.0.0\"\n      klona \"^2.0.4\"\n      koa \"^2.13.0\"\n      koa-conditional-get \"^3.0.0\"\n      koa-etag \"^4.0.0\"\n      koa-proxies \"^0.11.0\"\n      koa-send \"^5.0.1\"\n      koa-static \"^5.0.0\"\n      lru-cache \"^6.0.0\"\n      magic-string \"^0.25.7\"\n      merge-source-map \"^1.1.0\"\n      mime-types \"^2.1.27\"\n      minimist \"^1.2.5\"\n      open \"^7.2.1\"\n      ora \"^5.1.0\"\n      p-map-series \"^2.1.0\"\n      postcss-discard-comments \"^4.0.2\"\n      postcss-import \"^12.0.1\"\n      postcss-load-config \"^3.0.0\"\n      resolve \"^1.17.0\"\n      rollup \"^2.32.1\"\n      rollup-plugin-dynamic-import-variables \"^1.1.0\"\n      rollup-plugin-terser \"^7.0.2\"\n      rollup-plugin-vue \"^6.0.0\"\n      rollup-plugin-web-worker-loader \"^1.3.1\"\n      selfsigned \"^1.10.8\"\n      slash \"^3.0.0\"\n      source-map \"^0.7.3\"\n      vue \"^3.0.3\"\n      ws \"^7.3.1\"\n  \n  vlq@^1.0.0:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468\"\n    integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==\n  \n  vm-browserify@1.1.2, vm-browserify@^1.0.1:\n    version \"1.1.2\"\n    resolved \"https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0\"\n    integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==\n  \n  vm2@^3.9.2:\n    version \"3.9.2\"\n    resolved \"https://registry.yarnpkg.com/vm2/-/vm2-3.9.2.tgz#a4085d2d88a808a1b3c06d5478c2db3222a9cc30\"\n    integrity sha512-nzyFmHdy2FMg7mYraRytc2jr4QBaUY3TEGe3q3bK8EgS9WC98wxn2jrPxS/ruWm+JGzrEIIeufKweQzVoQEd+Q==\n  \n  vue@^3.0.3:\n    version \"3.0.4\"\n    resolved \"https://registry.yarnpkg.com/vue/-/vue-3.0.4.tgz#872c65c143f5717bd5387c61613d9f55f4cc0f43\"\n    integrity sha512-2o+AiQF8sAupyhbyl3oxVCl3WCwC/n5NI7VMM+gVQ231qvSB8eI7sCBloloqDJK6yA367EEtmRSeSCf4sxCC+A==\n    dependencies:\n      \"@vue/compiler-dom\" \"3.0.4\"\n      \"@vue/runtime-dom\" \"3.0.4\"\n      \"@vue/shared\" \"3.0.4\"\n  \n  w3c-hr-time@^1.0.2:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd\"\n    integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==\n    dependencies:\n      browser-process-hrtime \"^1.0.0\"\n  \n  w3c-xmlserializer@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a\"\n    integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==\n    dependencies:\n      xml-name-validator \"^3.0.0\"\n  \n  walker@^1.0.7, walker@~1.0.5:\n    version \"1.0.7\"\n    resolved \"https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb\"\n    integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=\n    dependencies:\n      makeerror \"1.0.x\"\n  \n  warning@^4.0.3:\n    version \"4.0.3\"\n    resolved \"https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3\"\n    integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==\n    dependencies:\n      loose-envify \"^1.0.0\"\n  \n  watchpack-chokidar2@^2.0.1:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957\"\n    integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==\n    dependencies:\n      chokidar \"^2.1.8\"\n  \n  watchpack@2.0.0-beta.13:\n    version \"2.0.0-beta.13\"\n    resolved \"https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.13.tgz#9d9b0c094b8402139333e04eb6194643c8384f55\"\n    integrity sha512-ZEFq2mx/k5qgQwgi6NOm+2ImICb8ngAkA/rZ6oyXZ7SgPn3pncf+nfhYTCrs3lmHwOxnPtGLTOuFLfpSMh1VMA==\n    dependencies:\n      glob-to-regexp \"^0.4.1\"\n      graceful-fs \"^4.1.2\"\n  \n  watchpack@^1.7.4:\n    version \"1.7.5\"\n    resolved \"https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453\"\n    integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==\n    dependencies:\n      graceful-fs \"^4.1.2\"\n      neo-async \"^2.5.0\"\n    optionalDependencies:\n      chokidar \"^3.4.1\"\n      watchpack-chokidar2 \"^2.0.1\"\n  \n  wcwidth@^1.0.1:\n    version \"1.0.1\"\n    resolved \"https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8\"\n    integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=\n    dependencies:\n      defaults \"^1.0.3\"\n  \n  web-namespaces@^1.0.0:\n    version \"1.1.4\"\n    resolved \"https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec\"\n    integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==\n  \n  webidl-conversions@^4.0.2:\n    version \"4.0.2\"\n    resolved \"https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad\"\n    integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==\n  \n  webidl-conversions@^5.0.0:\n    version \"5.0.0\"\n    resolved \"https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff\"\n    integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==\n  \n  webidl-conversions@^6.1.0:\n    version \"6.1.0\"\n    resolved \"https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514\"\n    integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==\n  \n  webpack-sources@1.4.3, webpack-sources@^1.4.0, webpack-sources@^1.4.1:\n    version \"1.4.3\"\n    resolved \"https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933\"\n    integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==\n    dependencies:\n      source-list-map \"^2.0.0\"\n      source-map \"~0.6.1\"\n  \n  webpack@4.44.1:\n    version \"4.44.1\"\n    resolved \"https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21\"\n    integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==\n    dependencies:\n      \"@webassemblyjs/ast\" \"1.9.0\"\n      \"@webassemblyjs/helper-module-context\" \"1.9.0\"\n      \"@webassemblyjs/wasm-edit\" \"1.9.0\"\n      \"@webassemblyjs/wasm-parser\" \"1.9.0\"\n      acorn \"^6.4.1\"\n      ajv \"^6.10.2\"\n      ajv-keywords \"^3.4.1\"\n      chrome-trace-event \"^1.0.2\"\n      enhanced-resolve \"^4.3.0\"\n      eslint-scope \"^4.0.3\"\n      json-parse-better-errors \"^1.0.2\"\n      loader-runner \"^2.4.0\"\n      loader-utils \"^1.2.3\"\n      memory-fs \"^0.4.1\"\n      micromatch \"^3.1.10\"\n      mkdirp \"^0.5.3\"\n      neo-async \"^2.6.1\"\n      node-libs-browser \"^2.2.1\"\n      schema-utils \"^1.0.0\"\n      tapable \"^1.1.3\"\n      terser-webpack-plugin \"^1.4.3\"\n      watchpack \"^1.7.4\"\n      webpack-sources \"^1.4.1\"\n  \n  whatwg-encoding@^1.0.5:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0\"\n    integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==\n    dependencies:\n      iconv-lite \"0.4.24\"\n  \n  whatwg-mimetype@^2.3.0:\n    version \"2.3.0\"\n    resolved \"https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf\"\n    integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==\n  \n  whatwg-url@^7.0.0:\n    version \"7.1.0\"\n    resolved \"https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06\"\n    integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==\n    dependencies:\n      lodash.sortby \"^4.7.0\"\n      tr46 \"^1.0.1\"\n      webidl-conversions \"^4.0.2\"\n  \n  whatwg-url@^8.0.0:\n    version \"8.4.0\"\n    resolved \"https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837\"\n    integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==\n    dependencies:\n      lodash.sortby \"^4.7.0\"\n      tr46 \"^2.0.2\"\n      webidl-conversions \"^6.1.0\"\n  \n  which-module@^2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a\"\n    integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=\n  \n  which-pm-runs@^1.0.0:\n    version \"1.0.0\"\n    resolved \"https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb\"\n    integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=\n  \n  which-pm@2.0.0:\n    version \"2.0.0\"\n    resolved \"https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae\"\n    integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==\n    dependencies:\n      load-yaml-file \"^0.2.0\"\n      path-exists \"^4.0.0\"\n  \n  which@^1.2.9:\n    version \"1.3.1\"\n    resolved \"https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a\"\n    integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==\n    dependencies:\n      isexe \"^2.0.0\"\n  \n  which@^2.0.1, which@^2.0.2:\n    version \"2.0.2\"\n    resolved \"https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1\"\n    integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\n    dependencies:\n      isexe \"^2.0.0\"\n  \n  wide-align@^1.1.0:\n    version \"1.1.3\"\n    resolved \"https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457\"\n    integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==\n    dependencies:\n      string-width \"^1.0.2 || 2\"\n  \n  widest-line@^2.0.0:\n    version \"2.0.1\"\n    resolved \"https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc\"\n    integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==\n    dependencies:\n      string-width \"^2.1.1\"\n  \n  word-wrap@~1.2.3:\n    version \"1.2.3\"\n    resolved \"https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c\"\n    integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==\n  \n  worker-farm@^1.7.0:\n    version \"1.7.0\"\n    resolved \"https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8\"\n    integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==\n    dependencies:\n      errno \"~0.1.7\"\n  \n  wrap-ansi@^6.2.0:\n    version \"6.2.0\"\n    resolved \"https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53\"\n    integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==\n    dependencies:\n      ansi-styles \"^4.0.0\"\n      string-width \"^4.1.0\"\n      strip-ansi \"^6.0.0\"\n  \n  wrap-ansi@^7.0.0:\n    version \"7.0.0\"\n    resolved \"https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43\"\n    integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\n    dependencies:\n      ansi-styles \"^4.0.0\"\n      string-width \"^4.1.0\"\n      strip-ansi \"^6.0.0\"\n  \n  wrappy@1:\n    version \"1.0.2\"\n    resolved \"https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f\"\n    integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=\n  \n  write-file-atomic@^3.0.0:\n    version \"3.0.3\"\n    resolved \"https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8\"\n    integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==\n    dependencies:\n      imurmurhash \"^0.1.4\"\n      is-typedarray \"^1.0.0\"\n      signal-exit \"^3.0.2\"\n      typedarray-to-buffer \"^3.1.5\"\n  \n  ws@^7.2.3:\n    version \"7.4.0\"\n    resolved \"https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7\"\n    integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==\n  \n  ws@^7.3.0, ws@^7.3.1, ws@^7.4.1:\n    version \"7.4.1\"\n    resolved \"https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb\"\n    integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==\n  \n  xml-name-validator@^3.0.0:\n    version \"3.0.0\"\n    resolved \"https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a\"\n    integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==\n  \n  xml2js@0.4.17:\n    version \"0.4.17\"\n    resolved \"https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868\"\n    integrity sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=\n    dependencies:\n      sax \">=0.6.0\"\n      xmlbuilder \"^4.1.0\"\n  \n  xmlbuilder@^4.1.0:\n    version \"4.2.1\"\n    resolved \"https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5\"\n    integrity sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=\n    dependencies:\n      lodash \"^4.0.0\"\n  \n  xmlchars@^2.2.0:\n    version \"2.2.0\"\n    resolved \"https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb\"\n    integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==\n  \n  xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1:\n    version \"4.0.2\"\n    resolved \"https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54\"\n    integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==\n  \n  y18n@^4.0.0:\n    version \"4.0.1\"\n    resolved \"https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4\"\n    integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==\n  \n  y18n@^5.0.5:\n    version \"5.0.5\"\n    resolved \"https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18\"\n    integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==\n  \n  yallist@^2.1.2:\n    version \"2.1.2\"\n    resolved \"https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52\"\n    integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=\n  \n  yallist@^3.0.2:\n    version \"3.1.1\"\n    resolved \"https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd\"\n    integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\n  \n  yallist@^4.0.0:\n    version \"4.0.0\"\n    resolved \"https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72\"\n    integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==\n  \n  yaml@^1.10.0, yaml@^1.7.2:\n    version \"1.10.0\"\n    resolved \"https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e\"\n    integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==\n  \n  yamljs@^0.3.0:\n    version \"0.3.0\"\n    resolved \"https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b\"\n    integrity sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==\n    dependencies:\n      argparse \"^1.0.7\"\n      glob \"^7.0.5\"\n  \n  yargs-parser@^18.1.2, yargs-parser@^18.1.3:\n    version \"18.1.3\"\n    resolved \"https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0\"\n    integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==\n    dependencies:\n      camelcase \"^5.0.0\"\n      decamelize \"^1.2.0\"\n  \n  yargs-parser@^20.0.0, yargs-parser@^20.2.2:\n    version \"20.2.4\"\n    resolved \"https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54\"\n    integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==\n  \n  yargs@^15.1.0, yargs@^15.4.1:\n    version \"15.4.1\"\n    resolved \"https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8\"\n    integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==\n    dependencies:\n      cliui \"^6.0.0\"\n      decamelize \"^1.2.0\"\n      find-up \"^4.1.0\"\n      get-caller-file \"^2.0.1\"\n      require-directory \"^2.1.1\"\n      require-main-filename \"^2.0.0\"\n      set-blocking \"^2.0.0\"\n      string-width \"^4.2.0\"\n      which-module \"^2.0.0\"\n      y18n \"^4.0.0\"\n      yargs-parser \"^18.1.2\"\n  \n  yargs@^16.0.0:\n    version \"16.1.1\"\n    resolved \"https://registry.yarnpkg.com/yargs/-/yargs-16.1.1.tgz#5a4a095bd1ca806b0a50d0c03611d38034d219a1\"\n    integrity sha512-hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w==\n    dependencies:\n      cliui \"^7.0.2\"\n      escalade \"^3.1.1\"\n      get-caller-file \"^2.0.5\"\n      require-directory \"^2.1.1\"\n      string-width \"^4.2.0\"\n      y18n \"^5.0.5\"\n      yargs-parser \"^20.2.2\"\n  \n  yargs@^16.2.0:\n    version \"16.2.0\"\n    resolved \"https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66\"\n    integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==\n    dependencies:\n      cliui \"^7.0.2\"\n      escalade \"^3.1.1\"\n      get-caller-file \"^2.0.5\"\n      require-directory \"^2.1.1\"\n      string-width \"^4.2.0\"\n      y18n \"^5.0.5\"\n      yargs-parser \"^20.2.2\"\n  \n  ylru@^1.2.0:\n    version \"1.2.1\"\n    resolved \"https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f\"\n    integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==\n  \n  yocto-queue@^0.1.0:\n    version \"0.1.0\"\n    resolved \"https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b\"\n    integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==\n  \n  zwitch@^1.0.0:\n    version \"1.0.5\"\n    resolved \"https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920\"\n    integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==\n"
  },
  {
    "path": "plugins/tsconfig-paths/package.json",
    "content": "{\n    \"name\": \"@bundless/plugin-tsconfig-paths\",\n    \"version\": \"0.0.0\",\n    \"description\": \"\",\n    \"main\": \"dist/index.js\",\n    \"types\": \"dist/index.d.ts\",\n    \"repository\": \"https://github.com/remorses/bundless.git\",\n    \"scripts\": {\n        \"build\": \"tsc\",\n        \"watch\": \"tsc -w\",\n        \"local\": \"yarn publish --force --registry http://localhost:4873 --access restricted --no-git-tag-version --patch --message 'Local registry publish'\"\n    },\n    \"files\": [\n        \"dist\",\n        \"src\"\n    ],\n    \"keywords\": [],\n    \"author\": \"Tommaso De Rossi, morse <beats.by.morse@gmail.com>\",\n    \"license\": \"ISC\",\n    \"devDependencies\": {\n        \"@bundless/cli\": \"0.6.0\",\n        \"@types/node\": \"^14.14.13\",\n        \"@types/globrex\": \"^0.1.0\"\n    },\n    \"dependencies\": {\n        \"tsconfig-paths\": \"^3.9.0\",\n        \"globrex\": \"^0.1.2\"\n    },\n    \"peerDependencies\": {\n        \"@bundless/cli\": \"*\"\n    }\n}\n"
  },
  {
    "path": "plugins/tsconfig-paths/src/index.ts",
    "content": "import { MAIN_FIELDS, Plugin } from '@bundless/cli'\nimport globrex from 'globrex'\nimport path from 'path'\nimport { createMatchPath } from 'tsconfig-paths'\n\nexport default TsconfigPathsPlugin\n\nexport function TsconfigPathsPlugin(options: PluginOptions): Plugin {\n    return {\n        name: 'tsconfig-paths-plugin', // alias plugins need to have enforce pre or node resolve will have higher priority\n        enforce: 'pre',\n        setup({ onResolve, pluginsExecutor, ctx: { root, config } }) {\n            const matchPath = createMatchPath(\n                root,\n                options.paths,\n                MAIN_FIELDS, // TODO allow customization with config.mainFields\n                true,\n            )\n\n            const regexes = Object.keys(options.paths)\n                .map((x) => globrex(x, {}))\n                .map((x) => x.regex)\n\n            regexes.forEach((filter) => {\n                onResolve({ filter: filter! }, async (args) => {\n                    const resolved = matchPath(args.path)\n                    if (!resolved) {\n                        return null\n                    }\n                    const res = await pluginsExecutor.resolve({\n                        ...args,\n                        path: resolved,\n                    })\n                    if (!res || !res.path) {\n                        return {\n                            ...res,\n                            path: resolved,\n                        }\n                    }\n                    return res\n                })\n            })\n        },\n    }\n}\n\ntype PluginOptions = {\n    paths: Record<string, string[]>\n}\n"
  },
  {
    "path": "plugins/tsconfig-paths/tsconfig.json",
    "content": "{\n    \"extends\": \"../../tsconfig.base.json\",\n    \"compilerOptions\": {\n        \"rootDir\": \"src\",\n        \"outDir\": \"dist\"\n    },\n    \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "scripts/analyze.ts",
    "content": "import * as esbuild from 'esbuild'\nimport fs from 'fs'\nimport memoize from 'micro-memoize'\nimport path from 'path'\nimport slash from 'slash'\nimport { flatten } from 'lodash'\nimport { scc } from './scc'\nimport { graphSequencer } from './topological'\n// import { metaToTraversalResult } from '@bundless/cli/src/prebundle/traverse'\n\nconst esbuildCwd = path.resolve(\n    '/Users/morse/Documents/GitHub/sterblue1/packages/apps/cloud',\n)\n\nexport function anal(meta: esbuild.Metadata) {\n    let graph = metaToTraversalResult({\n        meta,\n        entryPoints: [path.resolve(esbuildCwd, 'index.html')],\n        esbuildCwd,\n        root: esbuildCwd,\n    })\n\n    const userGraph = Object.fromEntries(\n        Object.keys(graph)\n            .filter((x) => !x.includes('node_modules'))\n            .map((k) => [k, graph[k]]),\n    )\n\n    const chunks = scc(userGraph)\n    // const { chunks } = graphSequencer({\n    //     graph: new Map(\n    //         Object.entries(userGraph).map(([a, b]) => [a, b.imports]),\n    //     ),\n    // })\n\n    console.log(\n        JSON.stringify(\n            chunks.sort((a, b) => b.length - a.length).slice(0, 10),\n            null,\n            4,\n        ),\n    )\n    return\n\n    let res = groupByDependency(graph, esbuildCwd)\n    const total = Object.keys(res).reduce((a, b) => {\n        return a + res[b].bytes\n    }, 0)\n    console.log('total', formatBytes(total))\n    const max = Object.keys(res).sort((a, b) => {\n        return res[b].bytes - res[a].bytes\n    })\n\n    console.log(\n        max.map((x) => x + ' ' + formatBytes(res[x].bytes)).slice(0, 40),\n    )\n\n    for (let target of max.slice(0, 10)) {\n        const importers: string[] = []\n        for (let k in graph) {\n            if (k.includes('node_modules')) {\n                continue\n            }\n            const node = graph[k]\n            if (\n                node.imports.filter((x) => x.startsWith(res[target].basePath))\n                    .length\n            ) {\n                importers.push(k)\n            }\n        }\n        console.log(target + ':')\n        console.log(importers, '\\n')\n    }\n}\n\nexport type TraversalGraph = Record<string, Node>\n\ninterface Node {\n    imports: string[]\n    bytes: number\n}\n\nexport function metaToTraversalResult({\n    meta,\n    entryPoints,\n    esbuildCwd,\n    root,\n}: {\n    meta: esbuild.Metadata\n    esbuildCwd: string\n    root: string\n    entryPoints: string[]\n}): TraversalGraph {\n    if (!path.isAbsolute(esbuildCwd)) {\n        throw new Error('esbuildCwd must be an absolute path')\n    }\n    for (let entry of entryPoints) {\n        if (!path.isAbsolute(entry)) {\n            throw new Error('entry must be an absolute path')\n        }\n    }\n    const alreadyProcessed = new Set<string>()\n    // must be all absolute paths\n    let toProcess = entryPoints\n    const result: TraversalGraph = {}\n    // abs path -> input info\n    const inputs: Record<\n        string,\n        { imports: { path: string }[]; bytes: number }\n    > = Object.fromEntries(\n        Object.keys(meta.inputs).map((k) => {\n            const abs = path.resolve(esbuildCwd, k)\n            return [abs, meta.inputs[k]]\n        }),\n    )\n    while (toProcess.length) {\n        const newImports = flatten(\n            toProcess.map((absPath): string[] => {\n                if (alreadyProcessed.has(absPath)) {\n                    return []\n                }\n                alreadyProcessed.add(absPath)\n                // newEntry = path.posix.normalize(newEntry) // TODO does esbuild always use posix?\n                const input = inputs[absPath]\n                if (input == null) {\n                    throw new Error(\n                        `entry '${absPath}' is not present in esbuild metafile inputs ${JSON.stringify(\n                            Object.keys(inputs),\n                            null,\n                            2,\n                        )}`,\n                    )\n                }\n                // abs paths\n                const currentImports: string[] = input.imports\n                    ? input.imports\n                          .map((x) => x.path)\n                          .map((x) => {\n                              if (!path.isAbsolute(x)) {\n                                  return path.resolve(esbuildCwd, x)\n                              }\n                              return x\n                          })\n                          .filter((x) => Boolean(x))\n                    : []\n                // newImports.push(...currentImports)\n\n                const importer = osAgnosticPath(\n                    path.resolve(esbuildCwd, absPath),\n                    root,\n                )\n                if (!result[importer]) {\n                    result[importer] = { imports: [], bytes: input.bytes }\n                }\n                result[importer] = {\n                    imports: currentImports.filter(Boolean).map((importee) => {\n                        importee = osAgnosticPath(importee, root)\n                        return importee\n                    }),\n                    bytes: input.bytes,\n                }\n\n                return currentImports\n            }),\n        ).filter(Boolean)\n        toProcess = newImports\n    }\n    return result\n    // find the right output getting the key of the right output.inputs == input\n    // get the imports of the inputs.[entry].imports and attach them the importer\n    // do the same with the imports just found\n    // return the list of input files\n}\n\nexport function osAgnosticPath(absPath: string | undefined, root: string) {\n    if (!root) {\n        throw new Error(\n            `root argument is required, cannot make os agnostic path for ${absPath}`,\n        )\n    }\n    if (!absPath) {\n        return ''\n    }\n    if (!path.isAbsolute(absPath)) {\n        absPath = path.resolve(root, absPath)\n    }\n    return slash(path.relative(root, absPath))\n}\n\nconst readPackageJson = memoize((p) => {\n    try {\n        return JSON.parse(fs.readFileSync(p).toString())\n    } catch {\n        return {}\n    }\n})\n\nfunction groupByDependency(graph: TraversalGraph, root: string) {\n    const nodeModulesGraph: Record<\n        string,\n        { bytes: number; basePath: string }\n    > = {}\n    for (let key in graph) {\n        const index = key.lastIndexOf('node_modules')\n        if (index === -1) {\n            continue\n        }\n        let dependencySubPath = key\n            .slice(index)\n            .replace(/\\/?node_modules\\//, '')\n\n        let dependency = ''\n        if (dependencySubPath.startsWith('@')) {\n            dependency = getScopedPackageName(dependencySubPath) || ''\n        } else {\n            dependency = dependencySubPath.slice(\n                0,\n                dependencySubPath.indexOf('/'),\n            )\n        }\n\n        const basePath = key.slice(\n            0,\n            index + 'node_modules/'.length + dependency.length,\n        )\n        const packageJsonPath = path.posix.join(basePath, 'package.json')\n        const json = readPackageJson(packageJsonPath)\n        if (json.version) {\n            dependency += `@${json.version}`\n        }\n\n        if (nodeModulesGraph[dependency]) {\n            nodeModulesGraph[dependency].bytes += graph[key].bytes || 0\n        } else {\n            nodeModulesGraph[dependency] = { bytes: graph[key].bytes, basePath }\n        }\n    }\n    return nodeModulesGraph\n}\n\nfunction getScopedPackageName(path: string): any {\n    return path.match(/(@[\\w-_\\.]+\\/[\\w-_\\.]+)/)?.[1] || ''\n}\n\nfunction formatBytes(bytes) {\n    var marker = 1024 // Change to 1000 if required\n    var decimal = 3 // Change as required\n    var kiloBytes = marker // One Kilobyte is 1024 bytes\n    var megaBytes = marker * marker // One MB is 1024 KB\n    var gigaBytes = marker * marker * marker // One GB is 1024 MB\n    var teraBytes = marker * marker * marker * marker // One TB is 1024 GB\n\n    // return bytes if less than a KB\n    if (bytes < kiloBytes) return bytes + ' Bytes'\n    // return KB if less than a MB\n    else if (bytes < megaBytes)\n        return (bytes / kiloBytes).toFixed(decimal) + ' KB'\n    // return MB if less than a GB\n    else if (bytes < gigaBytes)\n        return (bytes / megaBytes).toFixed(decimal) + ' MB'\n    // return GB if less than a TB\n    else return (bytes / gigaBytes).toFixed(decimal) + ' GB'\n}\n\nanal(\n    JSON.parse(\n        fs.readFileSync(path.resolve(__dirname, 'metafile.json')).toString(),\n    ),\n)\n"
  },
  {
    "path": "scripts/index.html",
    "content": ""
  },
  {
    "path": "scripts/partition.ts",
    "content": "import { TraversalGraph } from \"./analyze\";\n\n\n\nexport function partition(graph: TraversalGraph) {\n    \n}"
  },
  {
    "path": "scripts/scc.ts",
    "content": "import { TraversalGraph } from './analyze'\n\nexport function scc(graph: TraversalGraph) {\n    const indices = new Map()\n    const lowlinks = new Map()\n    const onStack = new Set()\n    const stack: string[] = []\n    const scc: Set<string>[] = []\n    let idx = 0\n\n    function strongConnect(v) {\n        indices.set(v, idx)\n        lowlinks.set(v, idx)\n        idx++\n        stack.push(v)\n        onStack.add(v)\n\n        const deps = graph[v]?.imports || []\n        for (const dep of deps) {\n            if (!indices.has(dep)) {\n                strongConnect(dep)\n                lowlinks.set(v, Math.min(lowlinks.get(v), lowlinks.get(dep)))\n            } else if (onStack.has(dep)) {\n                lowlinks.set(v, Math.min(lowlinks.get(v), indices.get(dep)))\n            }\n        }\n\n        if (lowlinks.get(v) === indices.get(v)) {\n            const vertices = new Set<string>()\n            let w: string | undefined\n            while (v !== w) {\n                w = stack.pop()\n                onStack.delete(w)\n                vertices.add(w!)\n            }\n            scc.push(vertices)\n        }\n    }\n\n    for (const v of Object.keys(graph)) {\n        if (!indices.has(v)) {\n            strongConnect(v)\n        }\n    }\n\n    return scc.map((x) => [...x])\n}\n"
  },
  {
    "path": "scripts/topological.ts",
    "content": "const assert = require('assert')\n\n/*::\ntype Graph<T> = Map<T, Array<T>>;\ntype Groups<T> = Array<Array<T>>;\ntype Options<T> = {\n  graph: Graph<T>,\n  groups: Groups<T>,\n};\ntype Result<T> = {\n  safe: boolean,\n  chunks: Groups<T>,\n  cycles: Groups<T>,\n};\n*/\n\n// A function for finding cycles in a remaining graph.\nexport function getCycles /*::<T>*/(\n    currDepsMap /*: Graph<T> */,\n    visited /*: Graph<T> */,\n) /*: Groups<T> */ {\n    // Get a list of all the remaining items in the dep map.\n    let items = Array.from(currDepsMap.keys())\n    // Create an array for cycles to push to.\n    let cycles /*: Groups<T> */ = []\n\n    // Create a function to call recursively in a depth-first search.\n    function visit(item, cycle) {\n        let visitedDeps = visited.get(item)\n\n        // Create an object for the item to mark visited deps.\n        if (!visitedDeps) {\n            visitedDeps = []\n            visited.set(item, visitedDeps)\n        }\n\n        // Get the current deps for the item.\n        let deps = currDepsMap.get(item)\n        if (typeof deps === 'undefined') return\n\n        // For each dep,\n        for (let dep of deps) {\n            // Check if this dep creates a cycle. We know it's a cycle if the first\n            // item is the same as our dep.\n            if (cycle[0] === dep) {\n                cycles.push(cycle)\n            }\n\n            // If an item hasn't been visited, visit it (and pass an updated\n            // potential cycle)\n            if (!visitedDeps.includes(dep)) {\n                visitedDeps.push(dep)\n                visit(dep, cycle.concat(dep))\n            }\n        }\n    }\n\n    // Iterate through each item in our current deps map and search it for cycles.\n    for (let item of items) {\n        visit(item, [item])\n    }\n\n    // Return any cycles we found.\n    return cycles\n}\n\nexport function graphSequencer /*::<T>*/(\n    opts /*: Options<T> */,\n) /*: Result<T> */ {\n    let graph = opts.graph\n    let groups = opts.groups || []\n    let graphItems = Array.from(graph.keys())\n\n    // Ensure that we have the same set of items in both graph and groups.\n    // assert.deepStrictEqual(\n    //     graphItems.sort(),\n    //     groups.flat().sort(),\n    //     'items in graph must be the same as items in groups',\n    // )\n\n    // We'll push to these with the results.\n    let chunks /*: Groups<T> */ = []\n    let cycles /*: Groups<T> */ = []\n    let safe = true\n\n    // We'll keep replacing this queue as we unload items into chunks.\n    let queue = graphItems\n    // A set of items already put into chunks.\n    let chunked /*: Set<T> */ = new Set()\n    // A cache of visited connection in the graph when finding cycles.\n    let visited /*: Graph<T> */ = new Map()\n\n    // Keep running this loop while we have items left to unload into chunks.\n    while (queue.length) {\n        // Init the next `queue` after this iteration.\n        let nextQueue = []\n        // Create a chunk for the cycle which we'll unload items into.\n        let chunk = []\n        // A map of remaining deps for each of the remaining items in the current\n        // iteration.\n        let currDepsMap /*: Graph<T> */ = new Map()\n\n        for (let i = 0; i < queue.length; i++) {\n            // Get the current `item` in the `queue`.\n            let item = queue[i]\n            // Get all the deps of the `item`.\n            let deps = graph.get(item)\n            if (typeof deps === 'undefined') continue\n\n            // Find the index of the group that the `item` belongs to.\n            let itemGroup = groups.findIndex((group) => group.includes(item))\n\n            // Filter down a set of deps which need to be run first.\n            let currDeps = deps.filter((dep) => {\n                // Find the index of the group that the `dep` belongs to.\n                let depGroup = groups.findIndex((group) => group.includes(dep))\n\n                if (depGroup > itemGroup) {\n                    return false\n                } else {\n                    return !chunked.has(dep)\n                }\n            })\n\n            // Store the remaining deps for this `item` for later.\n            currDepsMap.set(item, currDeps)\n\n            // If there are deps remaining,\n            if (currDeps.length) {\n                // Add the `item` to the next `queue` for the next iteration.\n                nextQueue.push(item)\n            } else {\n                // Otherwise, add it to the current `chunk`.\n                chunk.push(item)\n            }\n        }\n\n        // If we got to this point and nothing was added to the chunk, it's because\n        // we have a cycle.\n        if (!chunk.length) {\n            // First we'll identify all the cycles in the `currDepsMap` so we can\n            // return them at the end.\n            cycles = cycles.concat(getCycles(currDepsMap, visited))\n\n            // We'll sort the remaining items in the queue by the number of deps they\n            // have remaining.\n            let sorted = queue.sort((a, b) => {\n                let aDeps = currDepsMap.get(a) || []\n                let bDeps = currDepsMap.get(b) || []\n                return aDeps.length - bDeps.length\n            })\n\n            // We'll push the item with the fewest deps remaining to the chunk.\n            chunk.push(sorted[0])\n\n            // And set the next `queue` to the rest of the items.\n            nextQueue = sorted.slice(1)\n\n            // This will ensure that something gets unloaded every cycle, putting in\n            // a best effort to keep a working order... However, this does mean that\n            // the resulting order is unsafe.\n            safe = false\n        }\n\n        // Mark all of the unloaded items in the chunk as being chunked already.\n        for (let item of chunk) {\n            chunked.add(item)\n        }\n\n        // Add the current cycle's chunk to the resulting chunks array, ensuring\n        // that there is a consistent order.\n        chunks.push(chunk.sort())\n        // And move on to the next `queue`.\n        queue = nextQueue\n    }\n\n    return { safe, chunks, cycles }\n}\n"
  },
  {
    "path": "scripts/tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"target\": \"ES2019\",\n        \"module\": \"commonjs\",\n        \"allowJs\": true,\n        \"moduleResolution\": \"Node\",\n        \"lib\": [\"es2017\", \"es7\", \"ESNext\", \"dom\"],\n        \"declaration\": true,\n        \"declarationMap\": true,\n        \"strict\": true,\n        \"esModuleInterop\": true,\n        \"noImplicitAny\": false,\n        \"sourceMap\": true,\n        \"downlevelIteration\": true,\n        \"jsx\": \"react\",\n        \"skipLibCheck\": true\n    }\n}\n"
  },
  {
    "path": "scripts/ws.ts",
    "content": "import WebSocket from 'ws'\nimport { once } from 'events'\nimport { serve } from '@bundless/cli'\n\nconst PORT = 4000\n\nasync function main() {\n    await serve({ root: __dirname, port: PORT, openBrowser: true })\n    const ws = new WebSocket(`ws://127.0.0.1:${PORT}`, 'esm-hmr')\n    await once(ws, 'open')\n    ws.addEventListener('message', ({ data }) => {\n        const payload = JSON.parse(data)\n        console.log('msg', data)\n        if (payload.type === 'connected') return\n        if (payload.type === 'multi') {\n        }\n    })\n}\n\nmain()\n"
  },
  {
    "path": "tests/CHANGELOG.md",
    "content": "# tests\n\n## 0.0.9\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/cli@0.6.0\n\n## 0.0.8\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/cli@0.5.1\n\n## 0.0.7\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/cli@0.5.0\n\n## 0.0.6\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/cli@0.4.0\n\n## 0.0.5\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/cli@0.3.0\n\n## 0.0.4\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/cli@0.2.6\n\n## 0.0.3\n\n### Patch Changes\n\n-   Updated dependencies [undefined]\n    -   @bundless/cli@0.2.5\n\n## 0.0.2\n\n### Patch Changes\n\n-   Updated dependencies [717a68e]\n    -   @bundless/cli@0.2.4\n\n## 0.0.1\n\n### Patch Changes\n\n-   Updated dependencies [9a0b4e5]\n    -   @bundless/cli@0.2.0\n"
  },
  {
    "path": "tests/fixtures.test.ts",
    "content": "import { traverseEsModules, urlResolver } from 'es-module-traversal'\nimport { build, serve, loadConfig } from '@bundless/cli'\nimport fs from 'fs-extra'\nimport glob from 'glob'\nimport mime from 'mime-types'\nimport fetch from 'node-fetch'\nimport path from 'path'\nimport slash from 'slash'\nimport { URL } from 'url'\nimport { isUrl, osAgnosticResult } from './utils'\nimport 'jest-specific-snapshot'\n\nimport * as failFast from 'jasmine-fail-fast'\nimport { cleanUrl } from '@bundless/cli/dist/utils'\nconst jasmineEnv = (jasmine as any).getEnv()\njasmineEnv.addReporter(failFast.init())\n\njest.setTimeout(1000 * 50)\n\nprocess.env.BUNDLESS_CONSISTENT_HMR_GRAPH_HASH = '' // makes all urls consistent in time\n\ndescribe('snapshots', () => {\n    const casesPath = 'fixtures'\n    const cases = fs\n        .readdirSync(casesPath, {\n            withFileTypes: true,\n        })\n        .filter((x) => x.isDirectory())\n        .map((x) => x.name)\n        .map((x) => path.posix.join(casesPath, x))\n\n    const PORT = '9000'\n    const baseUrl = `http://127.0.0.1:${PORT}`\n\n    for (let [i, casePath] of cases.entries()) {\n        const snapshotFile = path.resolve(casePath, '__snapshots__')\n        test(`${slash(casePath)}`, async () => {\n            process.stdout.write('testing ' + casePath + '\\n')\n            let root = path.resolve(casePath)\n            const config = loadConfig(casePath)\n            const server = await serve({\n                ...config,\n                root,\n                prebundle: { force: true },\n                server: {\n                    port: PORT,\n                },\n            })\n            const entryPoints = config?.entries || ['index.html']\n            try {\n                const downloadFilesToDir = path.join(casePath, '__mirror__')\n                await fs.remove(downloadFilesToDir)\n                const contentTypes = {}\n                const res = await traverseEsModules({\n                    onNonResolved: (p) => {\n                        // throw new Error(`cannot traverse ${p}`)\n                    },\n                    entryPoints: entryPoints.map((x) =>\n                        new URL(x, baseUrl).toString(),\n                    ),\n                    resolver: urlResolver({ root: casePath, baseUrl }),\n                    onEntry: async (url = '', importer) => {\n                        let content = ''\n                        if (!url) {\n                            return\n                        }\n                        if (!isUrl(url)) {\n                            content = await (await fs.readFile(url)).toString()\n                        } else {\n                            const res = await fetch(url, {\n                                headers: {\n                                    ...(importer ? { Referer: importer } : {}),\n                                    Accept: cleanUrl(url).endsWith('.html')\n                                        ? 'text/html'\n                                        : '*/*',\n                                },\n                            })\n                            if (!res.ok) {\n                                throw new Error(\n                                    `Cannot fetch '${url}', referer is '${importer}': ${\n                                        res.statusText\n                                    } ${await res.text().catch(() => '')}`,\n                                )\n                            }\n                            contentTypes[url] = res.headers.get('content-type')\n                            content = await res.text()\n                        }\n                        // download files\n                        let filePath = url.startsWith('http')\n                            ? urlToRelativePath(url)\n                            : path.relative(root, url)\n\n                        filePath = path.join(downloadFilesToDir, filePath)\n\n                        await fs.createFile(filePath)\n                        await fs.writeFile(filePath, content)\n                    },\n                })\n                for (let url in contentTypes) {\n                    if (!url.endsWith('.html')) {\n                        expect(contentTypes[url]).toContain(\n                            'application/javascript',\n                        )\n                    }\n                }\n                expect(contentTypes).toMatchSpecificSnapshot(\n                    snapshotFile,\n                    'content-type headers',\n                )\n                expect(\n                    res.map(osAgnosticResult).sort((_a, _b) => {\n                        const a = _a.resolvedImportPath + _a.importer\n                        const b = _b.resolvedImportPath + _b.importer\n                        return a.localeCompare(b)\n                    }),\n                ).toMatchSpecificSnapshot(snapshotFile, 'traverse result')\n\n                // MIRROR\n                const allMirrorFiles = glob.sync(`**/*`, {\n                    ignore: ['__snapshots__'],\n                    cwd: downloadFilesToDir,\n                    nodir: true,\n                })\n                expect(allMirrorFiles).toMatchSpecificSnapshot(\n                    snapshotFile,\n                    'mirror',\n                )\n                // BUILD\n                const outDir = path.resolve(casePath, 'dist')\n                await build({\n                    ...config,\n                    root,\n                    entries: entryPoints.map((x) => path.resolve(root, x)),\n                    build: {\n                        outDir,\n                    },\n                })\n                const allBuildFiles = glob.sync(`**/*`, {\n                    ignore: ['__snapshots__'],\n                    cwd: outDir,\n                    nodir: true,\n                })\n                expect(allBuildFiles).toMatchSpecificSnapshot(\n                    snapshotFile,\n                    'build',\n                )\n            } finally {\n                server && (await server.close())\n            }\n        })\n    }\n})\n\nfunction urlToRelativePath(ctx) {\n    let pathname = new URL(ctx).pathname\n    pathname = pathname.startsWith('/') ? pathname.slice(1) : pathname\n    return pathname\n}\n"
  },
  {
    "path": "tests/package.json",
    "content": "{\n    \"name\": \"tests\",\n    \"private\": true,\n    \"version\": \"0.0.9\",\n    \"dependencies\": {\n        \"es-module-traversal\": \"^0.0.50\",\n        \"@bundless/cli\": \"0.6.0\",\n        \"glob\": \"^7.1.6\",\n        \"jasmine-fail-fast\": \"^2.0.1\",\n        \"jest-specific-snapshot\": \"^4.0.0\",\n        \"node-fetch\": \"^2.6.1\",\n        \"mime-types\": \"^2.1.29\",\n        \"slash\": \"^3.0.0\"\n    },\n    \"devDependencies\": {\n        \"@types/jest\": \"^26.0.19\"\n    }\n}\n"
  },
  {
    "path": "tests/utils.ts",
    "content": "import Koa from 'koa'\nimport staticServe from 'koa-static'\nimport path from 'path'\nimport slash from 'slash'\nimport { TraversalResultType } from 'es-module-traversal'\n\nexport async function timedRun(func) {\n    const start = process.hrtime.bigint()\n    await func()\n    const end = process.hrtime.bigint()\n    return Math.round(Number(end - start) / 1e6)\n}\n\nexport function osAgnosticResult(x: TraversalResultType): TraversalResultType {\n    let { importPath, importer, resolvedImportPath } = x\n    if (!isUrl(resolvedImportPath)) {\n        resolvedImportPath = normalizePath(resolvedImportPath)\n    }\n    if (!isUrl(importer)) {\n        importer = normalizePath(importer)\n    }\n    return {\n        importPath,\n        importer,\n        resolvedImportPath,\n    }\n}\n\nfunction normalizePath(filePath: string) {\n    filePath = path.relative(process.cwd(), filePath)\n    filePath = slash(filePath)\n    return filePath\n}\n\nexport function isUrl(str: string) {\n    return str && str.startsWith('http://') || str.startsWith('https://')\n}"
  },
  {
    "path": "tsconfig.base.json",
    "content": "{\n    \"compilerOptions\": {\n        \"target\": \"ES2019\",\n        \"module\": \"commonjs\",\n        \"allowJs\": true,\n        \"moduleResolution\": \"Node\",\n        \"lib\": [\n            \"es2017\",\n            \"es7\",\n            \"es6\",\n            \"dom\"\n        ],\n        \"declaration\": true,\n        \"declarationMap\": true,\n        \"strict\": true,\n        \"esModuleInterop\": true,\n        \"noImplicitAny\": false,\n        \"sourceMap\": true,\n        \"downlevelIteration\": true,\n        \"jsx\": \"react\",\n        \"skipLibCheck\": true\n    }\n}\n"
  },
  {
    "path": "website/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pnp\n.pnp.js\n\nsidebar.json\n\n# testing\n/coverage\n\n# next.js\n/.next/\n/out/\n\n# production\n/build\n\n# misc\n.DS_Store\n.env*\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n"
  },
  {
    "path": "website/components/GradientBg.tsx",
    "content": "import React from 'react'\n\nexport function GradientBg(props) {\n    return (\n        <svg\n            xmlns='http://www.w3.org/2000/svg'\n            width='2069'\n            height='896'\n            viewBox='0 0 2069 896'\n            {...props}\n        >\n            <defs>\n                <linearGradient\n                    id='gradient-bg-a'\n                    x1='-3.555%'\n                    x2='113.386%'\n                    y1='47.884%'\n                    y2='44.716%'\n                >\n                    <stop\n                        offset='0%'\n                        stopColor='#FF87CA'\n                        stopOpacity='0.5'\n                    ></stop>\n                    <stop\n                        offset='100%'\n                        stopColor='#8E74FF'\n                        stopOpacity='0.5'\n                    ></stop>\n                </linearGradient>\n                <linearGradient\n                    id='gradient-bg-b'\n                    x1='40.946%'\n                    x2='10.946%'\n                    y1='23.071%'\n                    y2='104.634%'\n                >\n                    <stop offset='0%' stopColor='#0086ED'></stop>\n                    <stop\n                        offset='88%'\n                        stopColor='#00051a'\n                        stopOpacity='0'\n                    ></stop>\n                </linearGradient>\n            </defs>\n            <g fill='none' fillRule='evenodd'>\n                <path\n                    fill='url(#gradient-bg-a)'\n                    d='M1242 0c-38.865 83.27-71.693 180.235-98.483 290.9-40.186 165.995-194.7 194.583-305.246 169.64-110.546-24.942-386.11 13.506-476.947 90.035C270.488 627.103 132.961 829.943 0 899.843V0h1242z'\n                    transform='translate(-1 -153)'\n                ></path>\n                <path\n                    fill='url(#gradient-bg-b)'\n                    d='M2070 0c-220.942 126.097-378.483 236.446-472.623 331.046-245.902 247.104-235.34 553.99-496.712 587.543-125.767 16.145-140.903-117.595-295.597-151.593-103.129-22.665-367.21 71.273-792.246 281.815H2070V0z'\n                    transform='translate(-1 -153)'\n                ></path>\n            </g>\n        </svg>\n    )\n}\n"
  },
  {
    "path": "website/constants.ts",
    "content": "\n\nexport const GITHUB_LINK = 'https://github.com/remorses/bundless'\n"
  },
  {
    "path": "website/next-env.d.ts",
    "content": "/// <reference types=\"next\" />\n/// <reference types=\"next/types/global\" />\n/// <reference types=\"next-images\" />"
  },
  {
    "path": "website/next.config.js",
    "content": "const path = require('path')\nconst compose = require('compose-function')\nconst withReactSvg = require('next-react-svg')\nconst withImages = require('next-images')\n\nconst transpile = require('next-transpile-modules')(['landing-blocks', 'dokz'])\nconst { withDokz } = require('dokz/dist/plugin')\n\nconst composed = compose(withDokz, transpile, withImages)\n\nmodule.exports = composed({\n    include: path.resolve(__dirname, 'public'),\n    pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'],\n})\n"
  },
  {
    "path": "website/package.json",
    "content": "{\n    \"name\": \"website\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"dependencies\": {\n        \"@chakra-ui/react\": \"^1.1.2\",\n        \"@emotion/react\": \"^11.1.4\",\n        \"@octokit/webhooks\": \"^7.11.0\",\n        \"baby-i-am-faded\": \"^2.0.1\",\n        \"dokz\": \"^2.0.1\",\n        \"framer-motion\": \"^3.2.0\",\n        \"landing-blocks\": \"^2.0.2\",\n        \"next\": \"^10.0.5\",\n        \"next-images\": \"^1.7.0\",\n        \"next-transpile-modules\": \"^4.1.0\",\n        \"react\": \"experimental\",\n        \"react-dom\": \"experimental\",\n        \"react-icons\": \"^4.1.0\"\n    },\n    \"devDependencies\": {\n        \"@types/node\": \"^14.14.13\",\n        \"@types/react\": \"^17.0.0\",\n        \"compose-function\": \"^3.0.3\",\n        \"next-react-svg\": \"^1.1.2\",\n        \"typescript\": \"^4.1.3\"\n    },\n    \"scripts\": {\n        \"build\": \"next build\",\n        \"dev\": \"next dev\",\n        \"start\": \"next start\"\n    }\n}\n"
  },
  {
    "path": "website/pages/_app.tsx",
    "content": "import { DokzProvider, GithubLink, ColorModeSwitch } from 'dokz/src'\nimport React, { Fragment } from 'react'\nimport Head from 'next/head'\n\nimport { Box, ChakraProvider } from '@chakra-ui/react'\n\nexport default function App(props) {\n    const { Component, pageProps } = props\n    return (\n        <Fragment>\n            <Head>\n                <title>Bundless</title>\n                <link\n                    href='https://fonts.googleapis.com/css?family=Fira+Code'\n                    rel='stylesheet'\n                    key='google-font-Fira'\n                />\n            </Head>\n            <ChakraProvider resetCSS>\n                <DokzProvider\n                    initialColorMode='dark'\n                    githubUrl='https://github.com/remorses/bundless'\n                    docsRootPath='pages/docs'\n                    headerLogo={\n                        <a href='/'>\n                            <Box fontSize='1.4em' fontWeight='600'>\n                                Bundless\n                            </Box>\n                        </a>\n                    }\n                    headerItems={[\n                        <GithubLink\n                            key='0'\n                            url='https://github.com/remorses/bundless'\n                        />,\n                        <ColorModeSwitch key='1' />,\n                    ]}\n                    sidebarOrdering={{\n                        docs: {\n                            'index.mdx': true,\n                            'config.mdx': true,\n                            'writing-experiments': true,\n                            'dark-mode': true,\n                            deploy: true,\n                        },\n                    }}\n                >\n                    <Component {...pageProps} />\n                </DokzProvider>\n            </ChakraProvider>\n        </Fragment>\n    )\n}\n"
  },
  {
    "path": "website/pages/docs/benchmarks.mdx",
    "content": "# Benchmarks\n\nThe repository with the benchmarks is [here](https://github.com/remorses/bundless-benchmark)\n"
  },
  {
    "path": "website/pages/docs/cli.mdx",
    "content": "---\nname: Command Line\n---\n\n# Cli\n\n## Install bundless\n\n```sh\nnpm i -g @bundless/cli\n```\n\n## Run the dev server\n\n```sh\nbundless dev # or just bundless\n```\n\n## Build to static assets\n\n```sh\nbundless build --out ./out\n```\n"
  },
  {
    "path": "website/pages/docs/config.mdx",
    "content": "# Config\n\nThe default bundless configuration is the following\n\n```js\n/** @type { import('@bundless/cli').Config } */\nmodule.exports = {\n    entries: ['index.html'], // entry files\n    platform: 'browser', // target platform, browser or node\n    jsx: 'react', // jsx preset\n    loader: {\n        // like esbuild.loader, it lets you import custom extensions\n        '.jpg': 'file',\n        '.jpeg': 'file',\n        '.png': 'file',\n        '.svg': 'file',\n        '.gif': 'file',\n        '.ico': 'file',\n        '.webp': 'file',\n        '.jp2': 'file',\n        '.avif': 'file',\n        '.woff': 'file',\n        '.woff2': 'file',\n        '.ttf': 'file',\n    },\n    plugins: [],\n    server: {\n        port: 3000,\n        hmr: true,\n        openBrowser: false, // opens browser on server start\n        experimentalImmutableCache: false, // makes server refresh much faster for big projects\n    },\n    prebundle: {\n        includeWorkspacePackages: [], // linked packages to prebundle, can be a boolean\n        force: false, // forces prebundling dependencies on server start\n    },\n    build: {\n        basePath: '/',\n        jsTarget: 'es2018', // target es version\n        minify: true, // run esbuild minification\n        outDir: './out', // output directory\n    },\n}\n```\n\n## entries\n\nIn the prebundle phase entries are used as starting point to traverse the import graph and gather dependencies.\n\nIn the build phase they are passes to esbuild to be bundled and outputted in outDir.\n\n## platform\n\nCan be `browser` or `node`.\n\nWhen platform is `node` the output files will use commonjs modules and won't bundle dependencies (files in node_modules are marked as external).\n\n## prebundle.includeWorkspacePackages\n\nBy default bundless does not prebundle your workspace packages, this means that you can import files from your monorepo dependencies and have them reflect changes thanks to HMR.\n\nHowever this won't work if your liked dependencies contains commonjs code that uses `require` and `module.exports`, in this case you should put these packages in `prebundle.includeWorkspacePackages` or use `prebundle.includeWorkspacePackages: true`\n\n## build.basePath\n\nIf you are deploying your website to an url like `http://mysite.com/path`, then you should pass `/path` to `build.basePath`, all the `script` and `link` tags in the html files will fetch files from base path, the same for dynamic imports.\n\n## includeWorkspacePackages\n\nExtensions you import in your js and return their path\n"
  },
  {
    "path": "website/pages/docs/faq.mdx",
    "content": "## Why another development server and bundler?\n\nI was really frustrated by the slowness of current develoment bundlers and server, bundless tries to make the fastest possible development experience possible\n\nIt's using native ES modules in development and esbuild to build for production\n\nIt's simple to setup and already has support for the most used technologies like\n\n-   typescript\n-   jsx\n-   css modules\n\nIts esm HMR implementation is simple and easy to build upon\n\n## What's the difference from snowpack?\n\nBundless has been built after reading the codebase of Snowpack, Vite and WMR, i am really thankful for the solutions found by these tools\n\nBundless can be seen as a rewrite of these tools to solve some problems\n\nIt's using a prebundling phase like in Snowpack, but it's using esbuild instead of rollup to improve speed\n\nIt's using a plugin system like in WMR, but it uses the esbuild plugin interface instead of Rollup\n\nBundless uses esbuild to traverse the import graph to find dependencies to prebundle, Snowpack instead search for all js files in root folder and uses `es-module-lexer` and a regex to extract import statements from non lexable files (like jsx, typescript, ...etc)\n\nLike in vite and snowpack and Vite, i am using the esm HMR specification to support HMR, bundless implementation also solves some common bugs like [this](https://github.com/preactjs/wmr/issues/257#issuecomment-747296481)\n\nBundless has better support for monorepos compared to snowpack and vite 1, Snowpack for example does not support HMR for workspace packages and reload on every change in any linked package, vite 1 instead [fails to resolve packages that are not reachable from its root(https://github.com/vitejs/vite/issues/1002)\n\nAnother difference with snowpack and vite is multiple entries support, with bundless you can generate separate bundles per entry, this decreases bundle size per entry and allows you to also code split imported css\n\n## What's the role of esbuild in bundless?\n\nEsbuild is used to bundles js files for production,\n\nIn development it is used to transform jsx and typescript files,\n\nEsbuild is also used in the prebundling phase:\nwhen a not prebundled node module is found esbuild is used to traverse the import graph, the metafile is then analyzed to find resolved files that have a path including a node_modules folder, these paths are then bundled by esbuild to be transformed in valid ESM code and served from the web_modules folder\n\n## Why prebundling?\n\nPrebundling consists in bundling dependencies packages in files in the web_modules directory, this is to\n\n-   make packages that use commonjs work in the browser\n-   decrease the network requests made by the browser to fetch modules\n\nBut why bundless bundles all the dependencies and not ony the commonjs ones? This is to prevent issues with duplicate modules instances\n\n## What's the shape of a bundless plugin?\n\nbundless plugins are a superset of esbuild plugins, all esbuild plugins can be used as bundless plugins\n\nBundless adds some new hooks:\n\n-   onTransform, used to transform code\n-   onClose, called when the server is closing\n\nIt also passes some new variables in the build context:\n\n-   `graph` is the HMR graph\n-   `config` is the bundless config\n-\n\nBundless has 2 main functions:\n\n-   Dev server\n-   Bundler\n\nThe dev server is a koa server that serves user modules in a way that makes them consumable by the browser, running them trough a plugins pipeline\n\nBundless plugins are a super set of esbuild plugins, they allow to load, resolve and transform modules\n\nThe core plugins are for example\n\n-   rewrite: rewrite imports to be public paths the browser can resolve\n-   resolves node modules to web modules\n\n## Why use a new plugin system?\n\nI am using a superset of esbuild plugins to be able to share logic between the build and dev steps\n\nThis way i can also reuse esbuild plugins\n"
  },
  {
    "path": "website/pages/docs/how-it-works.mdx",
    "content": "# How does bundless work?\n\nBundless works differently when in development and in build, to share as much logic as possible bundless encapsulates as much logic as possible in plugins.\n\nThe bundless Plugin interface is a superset of [esbuild's plugin interface](https://esbuild.github.io/plugins/), this means that the same plugins can be used both when running in development and in build phase.\n\nEsbuild is not only used in the build phase, it is also used to traverse the module graph in the `prebundle` phase and to bundle dependencies.\n\nThe prebundle phase consists in\n\n-   traverse the module import graph\n-   gather all imports to files in node_modules\n-   bundle these files in valid ES modules\n-   store them in the `web_modules` directory\n\nThe prebundle phase is necessary to make commonjs code work in the browser and reduce the number of network requests to fetch modules.\n\nIn development bundless is a web server that serves your modules to the browser.\n\nIt also has does some built in transformations to your files\n\n-   import paths are rewritten to path on root, `import './file'` becomes `import '/path/to/file.js'`\n\n-   import paths are resolved to their path\ns\n-   plugins `onLoad` and `onTransform` methods are called on the module contents\n\nWhen building the entries are passed to `esbuild` to be bundles\n\nHtml files are converted to js files that import their scripts src urls (only those that are inside your root directory)\n"
  },
  {
    "path": "website/pages/docs/index.mdx",
    "content": "---\nname: Getting started\n---\n\n## Getting Started\n\nBundless is an experimental application development server and bundler.\n\nIt is a replacement for tools like webpack and parcel, with the main aim being development and build speed with as less as possible compromises.\n\nTo try out an example application run the following commands to setup an example application\n\n```sh\nnpm i -g @bundless/cli\nbundless quickstart ./my-app # will download an example app inside my-app\ncd my-app\nnpm run dev\n```\n\n## How is bundless faster than my favorite build tool?\n\nBundless is different than traditional bundlers, it doesn't build your files to one large bundle, it instead serve your files directly to the browser\n\nThis means that bundless doesn't need to parse your files, which is the most costly operation done by tools like webpack\n\nThis means that when you make a change to a file only the changed module is fetched, this makes the hmr implementation much simpler compared to tools like webpack that need instead runtime logic to handle code replacement.\n"
  },
  {
    "path": "website/pages/docs/integrations/alias.mdx",
    "content": "# Alias node modules\n\nYou can alias modules using the `@bundless/plugin-alias` plugin\n\n## Example\n\n```js\n// bundless.config.js\nconst { AliasPlugin } = require('@bundless/plugin-alias')\n\nmodule.exports = {\n    plugins: [\n        AliasPlugin({\n            entries: { react: 'preact/compat', /regex/: 'some-path' },\n        }),\n    ],\n}\n```\n"
  },
  {
    "path": "website/pages/docs/integrations/babel.mdx",
    "content": "# Using Babel\n\nYou can use babel using the `@bundless/plugin-babel` package\n\n## Example\n\n```js\n// bundless.config.js\nconst { BabelPlugin } = require('@bundless/plugin-babel')\n\nmodule.exports = {\n    plugins: [\n        BabelPlugin({\n            babelOptions: {\n                plugins: [require('babel-plugin-macros')],\n            },\n        }),\n    ],\n}\n```\n\nNotice that you will need to pass your babel options explicitly and not using `.babelrc` files\n\nThis API design choice has been made because usually .babelrc files contain babel presets that transpile jsx to js but this is already done in bundless, you only need to pass some specific plugins that you need\n"
  },
  {
    "path": "website/pages/docs/integrations/react-refresh.mdx",
    "content": "# Using react refresh\n\nReact refresh lets you see changes on the browser without refreshing the page\n\n## Example\n\n```js\n// bundless.config.js\nconst { ReactRefreshPlugin } = require('@bundless/plugin-react-refresh')\n\nmodule.exports = {\n    plugins: [ReactRefreshPlugin()],\n}\n```\n"
  },
  {
    "path": "website/pages/docs/migration.mdx",
    "content": "# Migration\n\n## Migration from create-react-app\n\n-   Source code must not use `require` or `module.exports` but valid ES imports and exports\n-   Use `jsx` instead of `js` extension for files that contain jsx\n-   Remove ejs templates from index.html\n-   Add your entrypoint in index.html with a script tag (for example `<script type='module' src='/src/index.jsx'>` if `src/index.jsx` is your entry)\n-   Instead of using the package.json `homepage` option you should pass `basePath` to `bundless.config.js` in the `build.basePath` options\n-   If using a workspace all your linked packages must expose valid ESM code (no `require` calls) (if this is not the case, add `prebundleWorkspacePackages` option)\n-   Replace eventual webpack plugins with esbuild alternatives (notice that the most popular webpack plugins are built in in bundless so you probably don't need any additional plugins, see [features]() to see if there is something missing)\n-   Replace `%PUBLIC%` occurrences in your index.html file with just /, bundless will remap those paths to use `config.build.basePath` automatically\n"
  },
  {
    "path": "website/pages/index.tsx",
    "content": "import {\n    AspectRatio,\n    Box,\n    DarkMode,\n    Flex,\n    HStack,\n    Progress,\n} from '@chakra-ui/react'\nimport { Faded } from 'baby-i-am-faded'\nimport devServerImage from '../public/browser_image.jpg'\nimport buildSpeedImage from '../public/vscode_image.jpg'\nimport benchSpeedImage from '../public/benchmarks_cli.png'\nimport {\n    Button,\n    CodeSnippet,\n    Divider,\n    Feature,\n    Footer,\n    Heading,\n    Hero,\n    LandingProvider,\n    Link,\n    NavBar,\n    PageContainer,\n    PatternBackground,\n    SectionTitle,\n    Stack,\n    Image as ChakraImage,\n} from 'landing-blocks/src'\nimport Image from 'next/image'\nimport codeTheme from 'prism-react-renderer/themes/vsDark'\nimport { FiMaximize, FiPackage, FiSmile, FiZap } from 'react-icons/fi'\nimport { GITHUB_LINK } from '../constants'\nimport { GradientBg } from '../components/GradientBg'\n// import GradientBgImg from '../public/gradient-bg.svg'\n\n// TODO easy to debug code directly on browser, support for super fast HMR with react refresh, take advantage of esbuild for super fast production builds,\n\nconst heroCode = `\n\nnpm i -g @bundless/cli\nbundless quickstart ./my-app\n\n`\n\nconst benchmarks = `\nserver ready (without any cache), less is better\n\n  ▇▇▇▇▇▇▇▇▇▇▇▇▇           [19.075 secs] - yarn snowpack dev --reload\n  ▇▇▇▇▇▇▇▇                [12.201 secs] - yarn cross-env BROWSER=none craco start\n  ▇▇▇                     [3.763 secs] - yarn vite --force\n  ▇▇                      [3.552 secs] - yarn bundless dev --force\n\nserver ready (with cache), less is better\n\n  ▇                       [0.719 secs] - yarn bundless dev\n  ▇                       [0.641 secs] - yarn snowpack dev\n  ▇                       [0.465 secs] - yarn vite\n\nstatic build, less is better\n\n  ▇▇▇▇▇▇▇▇▇               [14.058 secs] - yarn craco build\n  ▇▇▇▇▇▇▇▇                [12.599 secs] - yarn vite build\n  ▇▇▇▇▇▇▇                 [10.461 secs] - yarn snowpack build\n  ▇▇▇                     [3.967 secs] - yarn bundless build\n\nbrowser first page refresh, less is better\n\n  ▇▇▇▇                    [5.446 secs] - yarn snowpack dev --port 9070\n  ▇▇▇                     [5.174 secs] - yarn bundless dev --port 9070\n  ▇▇▇                     [3.858 secs] - yarn vite --port 9070\n  ▇                       [1.220 secs] - yarn cross-env BROWSER=none PORT=9070 craco start\n\nbrowser second page refresh, less is better\n\n  ▇▇                      [2.902 secs] - yarn vite --port 9070\n  ▇▇                      [2.889 secs] - yarn snowpack dev --port 9070\n  ▇▇                      [2.469 secs] - yarn bundless dev --port 9070\n  ▇                       [1.122 secs] - yarn cross-env BROWSER=none PORT=9070 craco start\n`\n\nconst Page = () => {\n    return (\n        <DarkMode>\n            <LandingProvider\n                position='relative'\n                bg='#000'\n                color='#fff'\n                dark\n                // minH='100%'\n                minH='100%'\n                black='#333'\n                primary='#9e0057'\n                // color='#444'\n            >\n                <MyNavbar />\n                <Box\n                    // opacity={0.7}\n                    mt='0px !important'\n                    position='absolute'\n                    // width='100vw'\n                    alignSelf='center'\n                    top='0px'\n                    zIndex={0}\n                    as={GradientBg}\n                />\n                <Hero\n                    bullet='Bundless v0.0'\n                    heading={\n                        <Heading>\n                            Next gen <br />\n                            development server <br /> and bundler\n                        </Heading>\n                    }\n                    subheading={\n                        <Box lineHeight='1.6em'>\n                            Build and ship your applications faster\n                        </Box>\n                    }\n                    cta={\n                        <a target='_blank' href={'/docs'}>\n                            <Button>Quick Start</Button>\n                        </a>\n                    }\n                    // image={<Image h='200px' w='300px' src='/robot.svg' />}\n                    image={\n                        <PatternBackground\n                            pattern='diagonalLinesSm'\n                            color='#bbb'\n                            scatter={-20}\n                        >\n                            {/* <Box cursor='pointer' width='160px' as={PlayButton} /> */}\n                            <CodeSnippet\n                                fontSize='1.1em'\n                                minH='0'\n                                language='bash'\n                                dark\n                                px='20'\n                                pl='10'\n                                code={heroCode.trim()}\n                                theme={codeTheme}\n                            />\n                        </PatternBackground>\n                    }\n                    // cta={<Button>Try Genql in 5 minutes</Button>}\n                    // fingerprint='Already using Genql? Sign in'\n                />\n                <Divider heading='application bundler and dev server' />\n                <Features alignSelf='center' />\n                {/* <TestimonialsLogos\n            animate\n            // heading='Works everywhere'\n            // subheading='browser and node environments'\n            testimonials={[\n                <Box size='80px' as={ReactIcon} />,\n                <Box size='90px' as={AngularIcon} />,\n                <Box size='90px' as={NodeIcon} />,\n                <Box size='90px' as={AngularIcon} />,\n\n                // <Box size='90px' as={OtherIcon} />,\n            ]}\n        /> */}\n\n                <Feature\n                    flip\n                    bullet='dev server'\n                    heading='Super fast dev server experience'\n                    cta={<Link href='/docs'>Read the docs</Link>}\n                    image={\n                        <PatternBackground\n                            pattern='diagonalLinesSm'\n                            color='#888'\n                            scatter={-30}\n                        >\n                            <ChakraImage\n                                shadow='lg'\n                                borderRadius='md'\n                                maxHeight={['370px']}\n                                src={devServerImage}\n                            />\n                        </PatternBackground>\n                    }\n                    subheading='Bundless uses esbuild under the hood, making it the fastest application dev server available'\n                />\n\n                <Feature\n                    bullet='bundler'\n                    heading='Fastest build speed'\n                    cta={<Link href='/docs'>Read the docs</Link>}\n                    image={\n                        <PatternBackground\n                            pattern='diagonalLinesSm'\n                            color='#888'\n                            scatter={-40}\n                        >\n                            <ChakraImage\n                                shadow='lg'\n                                borderRadius='md'\n                                maxHeight={['400px']}\n                                src={buildSpeedImage}\n                            />\n                        </PatternBackground>\n                    }\n                    subheading='Bundless builds your web application 20 times faster in average compared to other bundlers like Webpack'\n                />\n                <Stack spacing='10' position='relative' align='stretch'>\n                    <Box\n                        // opacity={0.6}\n                        mt='0px !important'\n                        position='absolute'\n                        width='100%'\n                        bottom='0px'\n                        // zIndex={-1}\n                        transform='scaleY(-1) scaleX(-1)'\n                        as={GradientBg}\n                    />\n\n                    <SectionTitle\n                        heading='Fast at any scale'\n                        subheading='Bundless has been built with performance and scale in mind'\n                    />\n                    <Box m='6' />\n                    <PatternBackground\n                        pattern='diagonalLinesSm'\n                        color='#888'\n                        scatter={-30}\n                        alignSelf='center'\n                        minWidth={['400px', null, null, '600px']}\n                        position='relative'\n                    >\n                        <Stack p='12' pb='6' bg='#111' borderRadius='md'>\n                            <Box as='pre'>{benchmarks}</Box>\n                            <Box m='8' />\n                            <Box alignSelf='center' fontSize='18px'>\n                                <Link\n                                    target='_blank'\n                                    href='https://github.com/remorses/bundless-benchmark'\n                                >\n                                    Benchmarks available on Github\n                                </Link>\n                            </Box>\n                        </Stack>\n                    </PatternBackground>\n                    {/* <ChakraImage\n                        position='relative'\n                        alignSelf='center'\n                        src={benchSpeedImage}\n                        maxHeight={['500px']}\n                    /> */}\n                </Stack>\n\n                {/* <Section degree={0} zIndex={1} bg='white'>\n            <Banner\n                //\n                heading='Want to use the cli instead?'\n                bullet='cli is cool too'\n                subheading='You can generate the client locally based on an endpoint or a local graphql schema.'\n                bg='transparent'\n                image={\n                    <Image\n                        ml='-60px'\n                        minW='300px'\n                        width='500px'\n                        src='/banner.jpg'\n                    />\n                }\n                cta={\n                    <a href='/docs'>\n                        <Button>Read the Docs</Button>\n                    </a>\n                }\n            />\n        </Section> */}\n                <MyFooter />\n            </LandingProvider>\n        </DarkMode>\n    )\n}\n\nexport function MyFooter({ ...rest }) {\n    return (\n        <Footer\n            businessName='Bundless'\n            columns={{\n                Resources: [\n                    <Link href={GITHUB_LINK}>Github</Link>,\n                    <Link href={'/docs'}>Docs</Link>,\n                ],\n                'Find Me': [\n                    <Link href='https://twitter.com/__morse'>Twitter</Link>,\n                    <Link href='https://github.com/remorses/'>Github</Link>,\n                ],\n                'Who made this?': [\n                    <Link href='https://twitter.com/__morse'>My Twitter</Link>,\n                    <Link href='https://github.com/remorses/'>My Github</Link>,\n                ],\n                // 'Proudly sponsored by Vercel': [\n                //     <Box as={PoweredByVercel} alignSelf='center' />,\n                // ],\n            }}\n            {...rest}\n        />\n    )\n}\n\nexport function Benchmark({\n    benchmarks,\n    primaryColor = 'pink',\n    spacing = '8',\n    flip = false,\n    secondaryColor = 'gray',\n}) {\n    const max = Math.max(...benchmarks.map((x) => x.value))\n    return (\n        <PageContainer pageWidth='570px'>\n            <Stack spacing={spacing}>\n                {benchmarks.map((x, i) => {\n                    return (\n                        <Stack\n                            align={flip ? 'flex-end' : 'flex-start'}\n                            spacing='2'\n                            key={i}\n                        >\n                            <Box\n                                // color={\n                                //     i === 0\n                                //         ? primaryColor + '.50'\n                                //         : secondaryColor + '.50'\n                                // }\n                                color='white'\n                                fontWeight='medium'\n                                fontSize='22px'\n                            >\n                                {x.name}\n                            </Box>\n\n                            <Progress\n                                transform={flip ? 'scaleX(-1)' : 'none'}\n                                bg='transparent'\n                                width='100%'\n                                size='sm'\n                                max={max}\n                                min={0}\n                                hasStripe\n                                isAnimated\n                                colorScheme={\n                                    i === 0 ? primaryColor : secondaryColor\n                                }\n                                opacity={i === 0 ? 1 : 0.7}\n                                borderRadius='4px'\n                                value={x.value}\n                            />\n\n                            <Box color={'gray.400'} fontWeight='medium'>\n                                {x.value.toFixed(1)} seconds\n                            </Box>\n                        </Stack>\n                    )\n                })}\n            </Stack>\n        </PageContainer>\n    )\n}\n\nexport function MyNavbar({ ...rest }) {\n    const navs = [\n        <Link isExternal href={GITHUB_LINK}>\n            Github\n        </Link>,\n        <Link isExternal href={'/docs'}>\n            Docs\n        </Link>,\n    ]\n    return (\n        <NavBar\n            logo={\n                <Box opacity={0.8} fontSize='26px' fontWeight='semibold'>\n                    Bundless\n                </Box>\n            }\n            navs={navs}\n            {...rest}\n        />\n    )\n}\n\nexport default Page\n\n// FEATURES\n\nexport const Features = ({ ...rest }) => {\n    return (\n        <PageContainer>\n            <Flex\n                as={Faded}\n                cascade={true}\n                damping={0.6}\n                width='100%'\n                // spacing='10'\n                fontWeight='600'\n                letterSpacing='0.06em'\n                fontSize='1.3em'\n                justify='space-between'\n                align='center'\n                flexWrap='wrap'\n                {...rest}\n            >\n                {[\n                    { heading: 'simple', icon: FiMaximize },\n                    { heading: 'fast', icon: FiZap },\n                    { heading: 'small', icon: FiPackage },\n                    { heading: 'just works', icon: FiSmile },\n                ].map((x, i) => (\n                    <Stack\n                        key={i}\n                        w={['100%', null, 'auto']}\n                        mx={'10'}\n                        my='12'\n                        align='center'\n                        spacing='10'\n                    >\n                        <Box fontWeight='100' h='50px' w='50px' as={x.icon} />\n                        <Box>{x.heading.toUpperCase()}</Box>\n                    </Stack>\n                ))}\n            </Flex>\n        </PageContainer>\n    )\n}\n"
  },
  {
    "path": "website/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es5\",\n    \"lib\": [\n      \"dom\",\n      \"dom.iterable\",\n      \"esnext\"\n    ],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"strict\": false,\n    \"forceConsistentCasingInFileNames\": true,\n    \"noEmit\": true,\n    \"esModuleInterop\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"jsx\": \"preserve\"\n  },\n  \"exclude\": [\n    \"node_modules\"\n  ],\n  \"include\": [\n    \"next-env.d.ts\",\n    \"**/*.ts\",\n    \"**/*.tsx\"\n  ]\n}\n"
  },
  {
    "path": "with-pages/CHANGELOG.md",
    "content": "# fixture-with-pages\n\n## 0.0.1\n### Patch Changes\n\n  - @bundless/plugin-react-paged@2.0.0\n"
  },
  {
    "path": "with-pages/components.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nimport { Link } from 'react-router-dom'\n\nexport function Paragraph() {\n    return (\n        <div>\n            <p>Ciao</p>\n            <a href='/about'>/about with a</a>\n            <br />\n        </div>\n    )\n}\n"
  },
  {
    "path": "with-pages/export.js",
    "content": "const { staticExport } = require('@bundless/plugin-react-paged')\nconst { once } = require('events')\n\nasync function start({}) {\n    await staticExport({ root: __dirname })\n}\n\nif (require.main === module) {\n    start({})\n}\n\nexports.start = start\n"
  },
  {
    "path": "with-pages/index.test.ts",
    "content": "import fetch from 'node-fetch'\nimport url from 'url'\n\nimport { format } from 'prettier'\n\nconst pages = ['/', '/about', '/slugs/slug-name', '/slugs/all/something/else']\nconst PORT = '9097'\n\nlet stop\nbeforeAll(async () => {\n    const { start } = require('./server')\n    const server = await start({ port: PORT })\n    stop = () => server.close()\n})\n\nafterAll(() => {\n    stop && stop()\n})\n\ndescribe.skip('pages paths return html', () => {\n    const baseUrl = `http://localhost:${PORT}`\n    for (let page of pages) {\n        test(page, async () => {\n            const res = await fetch(new url.URL(page, baseUrl), {\n                headers: { accept: 'text/html' },\n            })\n            let text = await res.text()\n            text = format(text, { parser: 'html' })\n            expect(text).toMatchSnapshot(page)\n        })\n    }\n})\n"
  },
  {
    "path": "with-pages/package.json",
    "content": "{\n    \"name\": \"fixture-with-pages\",\n    \"version\": \"0.0.1\",\n    \"main\": \"main.js\",\n    \"private\": true,\n    \"dependencies\": {\n        \"@bundless/plugin-react-paged\": \"^2.0.0\",\n        \"@koa/router\": \"^10.0.0\",\n        \"@loadable/component\": \"^5.14.1\",\n        \"koa-compose\": \"^4.1.0\",\n        \"koa-mount\": \"^4.0.0\",\n        \"koa-static\": \"^5.0.0\",\n        \"react\": \"experimental\",\n        \"react-dom\": \"experimental\"\n    },\n    \"devDependencies\": {\n        \"@types/node-fetch\": \"^2.5.8\",\n        \"esbuild-register\": \"^1.2.1\",\n        \"node-fetch\": \"^2.6.1\"\n    }\n}\n"
  },
  {
    "path": "with-pages/pages/about.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nexport default function Page() {\n    const [state, setState] = useState('')\n    useEffect(() => {\n        setTimeout(() => {\n            setState('Dynamic content!')\n        }, 1000)\n    }, [])\n    return (\n        <div>\n            <p>About me:</p>\n            <p>I Am Me</p>\n            <p>who?</p>\n            <p>...</p>\n            <p>cool</p>\n            <br />\n            <p>{state}</p>\n        </div>\n    )\n}\n\n"
  },
  {
    "path": "with-pages/pages/dynamic-import.tsx",
    "content": "import loadable from '@loadable/component'\nimport React from 'react'\n\nconst C = loadable(() => import('../components').then(x => x.Paragraph))\n\nexport default function Page() {\n\n    return (\n        <div>\n            <C/>      \n        </div>\n    )\n}\n"
  },
  {
    "path": "with-pages/pages/folder/about.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nexport default function Page() {\n    const [state, setState] = useState('')\n    useEffect(() => {\n        setTimeout(() => {\n            setState('Dynamic content!')\n        }, 1000)\n    }, [])\n    return (\n        <div>\n            <p>About me:</p>\n            <p>I Am Me</p>\n            <p>who?</p>\n            <p>...</p>\n            <p>cool</p>\n            <br />\n            <p>{state}</p>\n        </div>\n    )\n}\n"
  },
  {
    "path": "with-pages/pages/folder/index.tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nexport default function Page() {\n    return (\n        <div>\n            <p>hello</p>\n        </div>\n    )\n}\n"
  },
  {
    "path": "with-pages/pages/index.tsx",
    "content": "import React, { useEffect, useState } from 'react'\nimport rpcFunction from '../rpc/example'\nimport { Link } from 'react-router-dom'\n\nexport default function Page() {\n    const [text, setText] = useState('')\n    useEffect(() => {\n        rpcFunction({ echo: 'hello!' }).then((res) => {\n            setText(res.echo)\n        })\n    }, [])\n\n    return (\n        <div>\n            <p>Ciao</p>\n            <p>{text}</p>\n            <a href='/about'>/about with a</a>\n            <br />\n            <Link to='/dynamic-import'>/dynamic-import</Link>\n            <br />\n            <Link to='/about'>/about with Link</Link>\n            <p>hello</p>\n        </div>\n    )\n}\n"
  },
  {
    "path": "with-pages/pages/slugs/[slug].tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nexport default function Page() {\n    return (\n        <div>\n            <p>Slug:</p>\n        </div>\n    )\n}\n\nexport function getStaticPaths() {\n    return {\n        paths: [{ params: { slug: 'hello1' } }, { params: { slug: 'hello2' } }],\n    }\n}\n"
  },
  {
    "path": "with-pages/pages/slugs/all/[...slugs].tsx",
    "content": "import React, { useEffect, useState } from 'react'\n\nexport default function Page() {\n    return (\n        <div>\n            <p>Catch all:</p>\n        </div>\n    )\n}\n"
  },
  {
    "path": "with-pages/rpc/example.ts",
    "content": "export default async function example(arg: { echo: string }) {\n    return { echo: arg.echo || 'nothing to be said...' }\n}\n"
  },
  {
    "path": "with-pages/server.js",
    "content": "const { createServer } = require('@bundless/plugin-react-paged')\nconst { once } = require('events')\n\nconst isProduction = false\n\nasync function start({ port = 8080 }) {\n    const app = await createServer({ isProduction, root: __dirname })\n    const server = app.listen(port, () =>\n        console.log(`Listening at http://localhost:${port}`),\n    )\n    await once(server, 'listening')\n    return server\n}\n\nif (require.main === module) {\n    start({})\n}\n\nexports.start = start\n"
  }
]