@anansi/core 0.15.2 → 0.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","mappings":";;AAAA;AACA;AACA;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACNA;;ACAA;;;ACAA;AACA;AAKA;AAKA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;;;ACIA;AACA;AACA;AAEA;;AAIA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AAEA;;;;;ACvBA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;;;ACpFA;AAMA;AAQA;AAOA;AAAA;AACA;AAEA;AAEA;;AAMA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAAA;AAGA;AAAA;AAEA;AACA;AACA;;AAIA;AACA;AAQA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AAAA;AAGA;;ACjGA;;ACAA;;;;ACAA;AAMA;AAKA;AAGA;AAAA;AAMA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;;ACAA;;;ACAA;AACA;AACA;AAIA;AAYA;AAGA;AAAA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AAWA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACrCA;AASA;AACA;AACA;AAKA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AAGA;AAAA;AAAA;AAEA;;ACPA;AACA;AACA;AACA;AACA;AACA","sources":["/home/ntucker/src/anansi/packages/core/webpack/bootstrap","/home/ntucker/src/anansi/packages/core/webpack/runtime/compat get default export","/home/ntucker/src/anansi/packages/core/webpack/runtime/define property getters","/home/ntucker/src/anansi/packages/core/webpack/runtime/hasOwnProperty shorthand","/home/ntucker/src/anansi/packages/core/webpack/runtime/make namespace object","/home/ntucker/src/anansi/packages/core/external commonjs \"react-dom/server\"","/home/ntucker/src/anansi/packages/core/external node-commonjs \"crypto\"","/home/ntucker/src/anansi/packages/core/src/laySpouts.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"react\"","/home/ntucker/src/anansi/packages/core/src/spouts/csp.ts","/home/ntucker/src/anansi/packages/core/src/spouts/DocumentComponent.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/document.server.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"@rest-hooks/react\"","/home/ntucker/src/anansi/packages/core/external commonjs \"@rest-hooks/ssr\"","/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.server.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"@anansi/router\"","/home/ntucker/src/anansi/packages/core/external commonjs \"history\"","/home/ntucker/src/anansi/packages/core/src/spouts/router.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/prefetch.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/json.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/app.server.tsx","/home/ntucker/src/anansi/packages/core/src/index.server.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom/server\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"crypto\");","import { renderToPipeableStream as reactRender } from 'react-dom/server';\nimport crypto from 'crypto';\n\nimport { Render } from './scripts/types';\nimport { ServerProps } from './spouts/types';\n\nexport default function laySpouts(\n spouts: (props: ServerProps) => Promise<{\n app: JSX.Element;\n }>,\n {\n timeoutMS = 10000,\n onError,\n }: { timeoutMS?: number; onError?: (error: unknown) => void } = {},\n) {\n const render: Render = async (clientManifest, req, res) => {\n const nonce = crypto.randomBytes(16).toString('base64');\n\n try {\n const { app } = await spouts({ clientManifest, req, res, nonce });\n\n let didError = false;\n const { pipe, abort } = reactRender(app, {\n nonce,\n //bootstrapScripts: assets.filter(asset => asset.endsWith('.js')),\n onShellReady() {\n //managers.forEach(manager => manager.cleanup());\n // If something errored before we started streaming, we set the error code appropriately.\n res.statusCode = didError ? 500 : 200;\n res.setHeader('Content-type', 'text/html');\n pipe(res);\n },\n onShellError() {\n didError = true;\n res.statusCode = 500;\n pipe(res);\n },\n onError(e: any) {\n didError = true;\n console.error(e);\n res.statusCode = 500;\n //pipe(res); Removing this avoids, \"React currently only supports piping to one writable stream.\"\n if (onError) onError(e);\n },\n });\n // Abandon and switch to client rendering if enough time passes.\n // Try lowering this to see the client recover.\n setTimeout(\n () => (abort as any)(`Timeout of ${timeoutMS}ms exceeded`),\n timeoutMS,\n );\n } catch (e: unknown) {\n if (onError) onError(e);\n throw e;\n }\n };\n return render;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","export interface Policy {\n [directive: string]: string | string[];\n}\n\n// TODO: memoize this\nexport function buildPolicy(policyObj: Policy) {\n return Object.keys(policyObj)\n .map(key => {\n const val = Array.isArray(policyObj[key])\n ? [...new Set(policyObj[key]).values()].filter(v => v).join(' ')\n : policyObj[key];\n\n // move strict dynamic to the end of the policy if it exists to be backwards compatible with csp2\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#strict-dynamic\n if (typeof val === 'string' && val.includes(\"'strict-dynamic'\")) {\n const newVal = `${val\n .replace(/\\s?'strict-dynamic'\\s?/gi, ' ')\n .trim()} 'strict-dynamic'`;\n return `${key} ${newVal}`;\n }\n\n return `${key} ${val}`;\n })\n .join('; ');\n}\n","import type { Policy } from './csp';\nimport { buildPolicy } from './csp';\n\ntype Props = {\n children: React.ReactNode;\n assets: { href: string; as?: string; rel?: string }[];\n head: React.ReactNode;\n scripts: React.ReactNode;\n title: string;\n rootId: string;\n charSet: string;\n csPolicy?: Policy;\n nonce?: string | undefined;\n};\n\nexport default function Document({\n assets,\n head,\n children,\n title,\n rootId,\n charSet,\n csPolicy,\n nonce,\n scripts,\n}: Props) {\n let cspMeta: null | React.ReactNode = null;\n if (csPolicy) {\n // add nonce to policy\n const policy = {\n ...csPolicy,\n };\n if (\n nonce &&\n // nonces negate 'unsafe-inline' so do not add it if that directive exists\n (!policy['script-src'] ||\n !policy['script-src'].includes(\"'unsafe-inline'\"))\n ) {\n if (typeof policy['script-src'] === 'string') {\n policy['script-src'] = [policy['script-src'], `'nonce-${nonce}'`];\n } else {\n policy['script-src'] = [...policy['script-src'], `'nonce-${nonce}'`];\n }\n }\n cspMeta = (\n <meta httpEquiv=\"Content-Security-Policy\" content={buildPolicy(policy)} />\n );\n }\n return (\n <html>\n <head>\n <meta charSet={charSet} />\n {cspMeta}\n {head}\n {assets.map((asset, i) => (\n <link key={i} rel=\"preload\" {...asset} />\n ))}\n <title>{title}</title>\n </head>\n <body>\n <div id={rootId}>{children}</div>\n {scripts}\n {assets\n .filter(({ href }) => href.endsWith('.js'))\n .map(({ href }, i) => (\n <script key={i} src={href} async />\n ))}\n </body>\n </html>\n );\n}\nDocument.defaultProps = {\n head: (\n <>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link\n rel=\"shortcut icon\"\n href={`${process.env.WEBPACK_PUBLIC_PATH ?? '/'}favicon.ico`}\n />\n </>\n ),\n charSet: 'utf-8',\n rootId: 'anansi-root',\n scripts: null,\n};\n","import React from 'react';\nimport type { Route } from '@anansi/router';\nimport { StatsChunkGroup } from 'webpack';\n\nimport type { ServerSpout } from './types';\nimport type { Policy } from './csp';\nimport Document from './DocumentComponent';\n\ntype NeededNext = {\n matchedRoutes: Route<any>[];\n title?: string;\n scripts?: React.ReactNode[];\n};\n\nexport default function DocumentSpout(options: {\n head?: React.ReactNode;\n title: string;\n rootId?: string;\n charSet?: string;\n csPolicy?: Policy;\n}): ServerSpout<Record<string, unknown>, Record<string, unknown>, NeededNext> {\n return next => async props => {\n const nextProps = await next(props);\n\n const publicPath = props.clientManifest.publicPath;\n\n if (\n Object.keys(props.clientManifest?.entrypoints ?? {}).length < 1 ||\n publicPath === undefined\n )\n throw new Error('Manifest missing entries needed');\n\n // TODO: consider using this package for build stats in future:\n // https://github.com/facebook/react/tree/main/packages/react-server-dom-webpack\n const assetMap = (assets: { name: string; size?: number }[]) =>\n assets.map(({ name }) => `${publicPath}${name}`);\n\n const assetList: string[] = [];\n Object.values(props.clientManifest?.entrypoints ?? {}).forEach(\n entrypoint => {\n assetList.push(...assetMap(entrypoint.assets ?? []));\n },\n );\n new Set(\n assetMap(\n Object.values(props.clientManifest.namedChunkGroups ?? {})\n .filter(({ name }) =>\n nextProps.matchedRoutes.some(route => name?.includes(route.name)),\n )\n .flatMap(chunk => [\n ...(chunk.assets ?? []),\n // any chunk preloads\n ...childrenAssets(chunk),\n ]),\n ),\n ).forEach(asset => assetList.push(asset));\n\n // find additional assets to preload based on matched route\n const assets: {\n href: string;\n as?: string | undefined;\n rel?: string | undefined;\n }[] = assetList\n .filter(asset => !asset.endsWith('.hot-update.js'))\n .map(asset =>\n asset.endsWith('.css')\n ? { href: asset, rel: 'stylesheet' }\n : asset.endsWith('.js')\n ? { href: asset, as: 'script' }\n : { href: asset },\n );\n\n return {\n ...nextProps,\n app: (\n <Document\n {...options}\n title={nextProps.title ?? options.title}\n assets={assets}\n rootId={options.rootId}\n nonce={props.nonce}\n csPolicy={options.csPolicy}\n scripts={nextProps.scripts}\n >\n {nextProps.app}\n </Document>\n ),\n };\n };\n}\n\nfunction childrenAssets(chunk: StatsChunkGroup) {\n return chunk.children\n ? Object.values(chunk.children).flatMap(preload =>\n preload.flatMap(c => c.assets ?? []),\n )\n : [];\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rest-hooks/react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rest-hooks/ssr\");","import {\n type Controller,\n type Manager,\n NetworkManager,\n type State,\n} from '@rest-hooks/react';\nimport { createPersistedStore } from '@rest-hooks/ssr';\nimport type { Store } from 'redux';\n\nimport type { ServerSpout } from './types';\n\nexport default function restHooksSpout(\n options: {\n getManagers: () => Manager[];\n } = { getManagers: () => [new NetworkManager()] },\n): ServerSpout<\n Record<string, unknown>,\n { controller: Controller } & { store: Store<State<unknown>> },\n { initData?: Record<string, () => unknown>; scripts?: React.ReactNode[] }\n> {\n const managers = options.getManagers();\n return next => async props => {\n const [ServerCacheProvider, useReadyCacheState, controller, store] =\n createPersistedStore(managers);\n\n const nextProps = await next({\n ...props,\n controller,\n store,\n });\n return {\n ...nextProps,\n initData: {\n ...nextProps.initData,\n resthooks: useReadyCacheState,\n },\n app: <ServerCacheProvider>{nextProps.app}</ServerCacheProvider>,\n // TODO: figure out how to only inject in next and not have to also put here\n controller,\n store,\n };\n };\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@anansi/router\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"history\");","import { Route, RouteProvider, RouteController } from '@anansi/router';\nimport React from 'react';\nimport { createMemoryHistory } from 'history';\n\nimport type { CreateRouter, ServerSpout } from './types';\n\nexport default function routerSpout<ResolveWith>(options: {\n resolveWith?: any;\n useResolveWith: () => ResolveWith;\n createRouter: CreateRouter<ResolveWith>;\n}): ServerSpout<\n Record<string, unknown>,\n {\n matchedRoutes: Route<ResolveWith>[];\n } & {\n router: RouteController<Route<ResolveWith, any>>;\n }\n> {\n const createRouteComponent = (\n router: RouteController<Route<ResolveWith, any>>,\n ) =>\n function Router({ children }: { children: React.ReactNode }) {\n const resolveWith = options.useResolveWith();\n\n return (\n <RouteProvider router={router} resolveWith={resolveWith}>\n {children}\n </RouteProvider>\n );\n };\n\n return next => async props => {\n const url = props.req.url || '';\n const router = options.createRouter(\n createMemoryHistory({ initialEntries: [url] }),\n );\n const matchedRoutes: Route<ResolveWith>[] = router.getMatchedRoutes(url);\n\n const nextProps = await next({\n ...props,\n matchedRoutes,\n router,\n });\n\n const Router = createRouteComponent(router);\n\n return {\n ...nextProps,\n app: <Router>{nextProps.app}</Router>,\n // TODO: figure out how to only inject in next and not have to also put here\n matchedRoutes,\n router,\n };\n };\n}\n","import { Route } from '@anansi/router';\n\nimport type { ResolveProps, ServerProps } from './types';\n\ntype NeededProps<RouteWith> = {\n matchedRoutes: Route<RouteWith>[];\n} & ResolveProps;\n\nexport default function prefetchSpout<F extends string>(field: F) {\n return function <\n RouteWith,\n N extends NeededProps<RouteWith>,\n I extends ServerProps,\n >(\n next: (props: I) => Promise<\n {\n [K in F]: RouteWith;\n } & N\n >,\n ) {\n return async (props: I) => {\n const nextProps = await next(props);\n\n try {\n const toFetch: Promise<unknown>[] = [];\n nextProps.matchedRoutes.forEach(route => {\n if (typeof route.resolveData === 'function') {\n toFetch.push(route.resolveData(nextProps[field], route));\n }\n });\n await Promise.all(toFetch);\n } catch (e) {\n console.error(e);\n }\n return nextProps;\n };\n };\n}\n","import React, { Suspense } from 'react';\n\nimport type { ServerSpout } from './types';\n\ntype NeededNext = {\n initData?: Record<string, () => unknown>;\n scripts?: React.ReactNode[];\n};\n\nexport default function JSONSpout({\n id = 'anansi-json',\n}: { id?: string } = {}): ServerSpout<\n Record<string, unknown>,\n Record<string, unknown>,\n NeededNext\n> {\n return next => async props => {\n const nextProps = await next(props);\n\n const scripts: React.ReactNode[] = nextProps.scripts ?? [];\n\n Object.entries(nextProps.initData ?? {}).forEach(([key, useData]) => {\n const globalId = `${id}.${key}`;\n const Script = () => {\n const data: any = useData();\n try {\n const encoded = JSON.stringify(data);\n return (\n <script\n id={globalId}\n type=\"application/json\"\n dangerouslySetInnerHTML={{\n __html: encoded,\n }}\n nonce={props.nonce}\n />\n );\n } catch (e) {\n // TODO: Use unified logging\n console.error(`Error serializing json for ${key}`);\n console.error(e);\n return null;\n }\n };\n scripts.push(\n <Suspense key={globalId}>\n <Script />\n </Suspense>,\n );\n });\n\n return {\n ...nextProps,\n scripts,\n };\n };\n}\n","import { ServerProps } from './types';\n\nconst appSpout =\n (app: JSX.Element) =>\n <P extends ServerProps>(props: P) =>\n Promise.resolve({ ...props, app });\n\nexport default appSpout;\n","export { default as laySpouts } from './laySpouts';\nexport { default as documentSpout } from './spouts/document.server';\nexport { default as restHooksSpout } from './spouts/restHooks.server';\nexport { default as routerSpout } from './spouts/router.server';\nexport { default as prefetchSpout } from './spouts/prefetch.server';\nexport { default as JSONSpout } from './spouts/json.server';\nexport { default as appSpout } from './spouts/app.server';\nexport type { ServerProps } from './spouts/types';\nexport type { ServerSpout as Spout } from './spouts/types';\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"server.js","mappings":"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AA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvBA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA","sources":["/home/ntucker/src/anansi/packages/core/src/laySpouts.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/DocumentComponent.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/app.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/csp.ts","/home/ntucker/src/anansi/packages/core/src/spouts/document.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/json.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/prefetch.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.server.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/router.server.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"@anansi/router\"","/home/ntucker/src/anansi/packages/core/external commonjs \"@rest-hooks/react\"","/home/ntucker/src/anansi/packages/core/external commonjs \"@rest-hooks/ssr\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js-pure/features/object/define-property\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js-pure/features/object/get-own-property-descriptor\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js-pure/features/symbol\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js-pure/features/symbol/iterator\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js-pure/features/weak-map\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/es.array.push.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/es.error.cause.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.async-iterator.filter.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.async-iterator.flat-map.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.async-iterator.for-each.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.async-iterator.map.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.async-iterator.some.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.iterator.constructor.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.iterator.filter.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.iterator.flat-map.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.iterator.for-each.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.iterator.map.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.iterator.some.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.add-all.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.delete-all.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.difference.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.every.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.filter.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.find.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.intersection.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.is-disjoint-from.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.is-subset-of.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.is-superset-of.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.join.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.map.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.reduce.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.some.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.symmetric-difference.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"core-js/modules/esnext.set.union.js\"","/home/ntucker/src/anansi/packages/core/external commonjs \"history\"","/home/ntucker/src/anansi/packages/core/external commonjs \"react\"","/home/ntucker/src/anansi/packages/core/external commonjs \"react-dom/server\"","/home/ntucker/src/anansi/packages/core/external node-commonjs \"crypto\"","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/core-js/object/define-property.js","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptor.js","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/core-js/symbol.js","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/core-js/weak-map.js","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/helpers/interopRequireWildcard.js","/home/ntucker/src/anansi/node_modules/@babel/runtime-corejs3/helpers/typeof.js","/home/ntucker/src/anansi/packages/core/webpack/bootstrap","/home/ntucker/src/anansi/packages/core/src/index.server.ts"],"sourcesContent":["import { renderToPipeableStream as reactRender } from 'react-dom/server';\nimport crypto from 'crypto';\n\nimport { Render } from './scripts/types';\nimport { ServerProps } from './spouts/types';\n\nexport default function laySpouts(\n spouts: (props: ServerProps) => Promise<{\n app: JSX.Element;\n }>,\n {\n timeoutMS = 10000,\n onError,\n }: { timeoutMS?: number; onError?: (error: unknown) => void } = {},\n) {\n const render: Render = async (clientManifest, req, res) => {\n const nonce = crypto.randomBytes(16).toString('base64');\n\n try {\n const { app } = await spouts({ clientManifest, req, res, nonce });\n\n let didError = false;\n const { pipe, abort } = reactRender(app, {\n nonce,\n //bootstrapScripts: assets.filter(asset => asset.endsWith('.js')),\n onShellReady() {\n //managers.forEach(manager => manager.cleanup());\n // If something errored before we started streaming, we set the error code appropriately.\n res.statusCode = didError ? 500 : 200;\n res.setHeader('Content-type', 'text/html');\n pipe(res);\n },\n onShellError() {\n didError = true;\n res.statusCode = 500;\n pipe(res);\n },\n onError(e: any) {\n didError = true;\n console.error(e);\n res.statusCode = 500;\n //pipe(res); Removing this avoids, \"React currently only supports piping to one writable stream.\"\n if (onError) onError(e);\n },\n });\n // Abandon and switch to client rendering if enough time passes.\n // Try lowering this to see the client recover.\n setTimeout(\n () => (abort as any)(`Timeout of ${timeoutMS}ms exceeded`),\n timeoutMS,\n );\n } catch (e: unknown) {\n if (onError) onError(e);\n throw e;\n }\n };\n return render;\n}\n","import type { Policy } from './csp';\nimport { buildPolicy } from './csp';\n\ntype Props = {\n children: React.ReactNode;\n assets: { href: string; as?: string; rel?: string }[];\n head: React.ReactNode;\n scripts: React.ReactNode;\n title: string;\n rootId: string;\n charSet: string;\n csPolicy?: Policy;\n nonce?: string | undefined;\n};\n\nexport default function Document({\n assets,\n head,\n children,\n title,\n rootId,\n charSet,\n csPolicy,\n nonce,\n scripts,\n}: Props) {\n let cspMeta: null | React.ReactNode = null;\n if (csPolicy) {\n // add nonce to policy\n const policy = {\n ...csPolicy,\n };\n if (\n nonce &&\n // nonces negate 'unsafe-inline' so do not add it if that directive exists\n (!policy['script-src'] ||\n !policy['script-src'].includes(\"'unsafe-inline'\"))\n ) {\n if (typeof policy['script-src'] === 'string') {\n policy['script-src'] = [policy['script-src'], `'nonce-${nonce}'`];\n } else {\n policy['script-src'] = [...policy['script-src'], `'nonce-${nonce}'`];\n }\n }\n cspMeta = (\n <meta httpEquiv=\"Content-Security-Policy\" content={buildPolicy(policy)} />\n );\n }\n return (\n <html>\n <head>\n <meta charSet={charSet} />\n {cspMeta}\n {head}\n {assets.map((asset, i) => (\n <link key={i} rel=\"preload\" {...asset} />\n ))}\n <title>{title}</title>\n </head>\n <body>\n <div id={rootId}>{children}</div>\n {scripts}\n {assets\n .filter(({ href }) => href.endsWith('.js'))\n .map(({ href }, i) => (\n <script key={i} src={href} async />\n ))}\n </body>\n </html>\n );\n}\nDocument.defaultProps = {\n head: (\n <>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link\n rel=\"shortcut icon\"\n href={`${process.env.WEBPACK_PUBLIC_PATH ?? '/'}favicon.ico`}\n />\n </>\n ),\n charSet: 'utf-8',\n rootId: 'anansi-root',\n scripts: null,\n};\n","import { ServerProps } from './types';\n\nconst appSpout =\n (app: JSX.Element) =>\n <P extends ServerProps>(props: P) =>\n Promise.resolve({ ...props, app });\n\nexport default appSpout;\n","export interface Policy {\n [directive: string]: string | string[];\n}\n\n// TODO: memoize this\nexport function buildPolicy(policyObj: Policy) {\n return Object.keys(policyObj)\n .map(key => {\n const val = Array.isArray(policyObj[key])\n ? [...new Set(policyObj[key]).values()].filter(v => v).join(' ')\n : policyObj[key];\n\n // move strict dynamic to the end of the policy if it exists to be backwards compatible with csp2\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#strict-dynamic\n if (typeof val === 'string' && val.includes(\"'strict-dynamic'\")) {\n const newVal = `${val\n .replace(/\\s?'strict-dynamic'\\s?/gi, ' ')\n .trim()} 'strict-dynamic'`;\n return `${key} ${newVal}`;\n }\n\n return `${key} ${val}`;\n })\n .join('; ');\n}\n","import React from 'react';\nimport type { Route } from '@anansi/router';\nimport { StatsChunkGroup } from 'webpack';\n\nimport type { ServerSpout } from './types';\nimport type { Policy } from './csp';\nimport Document from './DocumentComponent';\n\ntype NeededNext = {\n matchedRoutes: Route<any>[];\n title?: string;\n scripts?: React.ReactNode[];\n};\n\nexport default function DocumentSpout(options: {\n head?: React.ReactNode;\n title: string;\n rootId?: string;\n charSet?: string;\n csPolicy?: Policy;\n}): ServerSpout<Record<string, unknown>, Record<string, unknown>, NeededNext> {\n return next => async props => {\n const nextProps = await next(props);\n\n const publicPath = props.clientManifest.publicPath;\n\n if (\n Object.keys(props.clientManifest?.entrypoints ?? {}).length < 1 ||\n publicPath === undefined\n )\n throw new Error('Manifest missing entries needed');\n\n // TODO: consider using this package for build stats in future:\n // https://github.com/facebook/react/tree/main/packages/react-server-dom-webpack\n const assetMap = (assets: { name: string; size?: number }[]) =>\n assets.map(({ name }) => `${publicPath}${name}`);\n\n const assetList: string[] = [];\n Object.values(props.clientManifest?.entrypoints ?? {}).forEach(\n entrypoint => {\n assetList.push(...assetMap(entrypoint.assets ?? []));\n },\n );\n new Set(\n assetMap(\n Object.values(props.clientManifest.namedChunkGroups ?? {})\n .filter(({ name }) =>\n nextProps.matchedRoutes.some(route => name?.includes(route.name)),\n )\n .flatMap(chunk => [\n ...(chunk.assets ?? []),\n // any chunk preloads\n ...childrenAssets(chunk),\n ]),\n ),\n ).forEach(asset => assetList.push(asset));\n\n // find additional assets to preload based on matched route\n const assets: {\n href: string;\n as?: string | undefined;\n rel?: string | undefined;\n }[] = assetList\n .filter(asset => !asset.endsWith('.hot-update.js'))\n .map(asset =>\n asset.endsWith('.css')\n ? { href: asset, rel: 'stylesheet' }\n : asset.endsWith('.js')\n ? { href: asset, as: 'script' }\n : { href: asset },\n );\n\n return {\n ...nextProps,\n app: (\n <Document\n {...options}\n title={nextProps.title ?? options.title}\n assets={assets}\n rootId={options.rootId}\n nonce={props.nonce}\n csPolicy={options.csPolicy}\n scripts={nextProps.scripts}\n >\n {nextProps.app}\n </Document>\n ),\n };\n };\n}\n\nfunction childrenAssets(chunk: StatsChunkGroup) {\n return chunk.children\n ? Object.values(chunk.children).flatMap(preload =>\n preload.flatMap(c => c.assets ?? []),\n )\n : [];\n}\n","import React, { Suspense } from 'react';\n\nimport type { ServerSpout } from './types';\n\ntype NeededNext = {\n initData?: Record<string, () => unknown>;\n scripts?: React.ReactNode[];\n};\n\nexport default function JSONSpout({\n id = 'anansi-json',\n}: { id?: string } = {}): ServerSpout<\n Record<string, unknown>,\n Record<string, unknown>,\n NeededNext\n> {\n return next => async props => {\n const nextProps = await next(props);\n\n const scripts: React.ReactNode[] = nextProps.scripts ?? [];\n\n Object.entries(nextProps.initData ?? {}).forEach(([key, useData]) => {\n const globalId = `${id}.${key}`;\n const Script = () => {\n const data: any = useData();\n try {\n const encoded = JSON.stringify(data);\n return (\n <script\n id={globalId}\n type=\"application/json\"\n dangerouslySetInnerHTML={{\n __html: encoded,\n }}\n nonce={props.nonce}\n />\n );\n } catch (e) {\n // TODO: Use unified logging\n console.error(`Error serializing json for ${key}`);\n console.error(e);\n return null;\n }\n };\n scripts.push(\n <Suspense key={globalId}>\n <Script />\n </Suspense>,\n );\n });\n\n return {\n ...nextProps,\n scripts,\n };\n };\n}\n","import { Route } from '@anansi/router';\n\nimport type { ResolveProps, ServerProps } from './types';\n\ntype NeededProps<RouteWith> = {\n matchedRoutes: Route<RouteWith>[];\n} & ResolveProps;\n\nexport default function prefetchSpout<F extends string>(field: F) {\n return function <\n RouteWith,\n N extends NeededProps<RouteWith>,\n I extends ServerProps,\n >(\n next: (props: I) => Promise<\n {\n [K in F]: RouteWith;\n } & N\n >,\n ) {\n return async (props: I) => {\n const nextProps = await next(props);\n\n try {\n const toFetch: Promise<unknown>[] = [];\n nextProps.matchedRoutes.forEach(route => {\n if (typeof route.resolveData === 'function') {\n toFetch.push(route.resolveData(nextProps[field], route));\n }\n });\n await Promise.all(toFetch);\n } catch (e) {\n console.error(e);\n }\n return nextProps;\n };\n };\n}\n","import {\n type Controller,\n type Manager,\n NetworkManager,\n type State,\n} from '@rest-hooks/react';\nimport { createPersistedStore } from '@rest-hooks/ssr';\nimport type { Store } from 'redux';\n\nimport type { ServerSpout } from './types';\n\nexport default function restHooksSpout(\n options: {\n getManagers: () => Manager[];\n } = { getManagers: () => [new NetworkManager()] },\n): ServerSpout<\n Record<string, unknown>,\n { controller: Controller } & { store: Store<State<unknown>> },\n { initData?: Record<string, () => unknown>; scripts?: React.ReactNode[] }\n> {\n const managers = options.getManagers();\n return next => async props => {\n const [ServerCacheProvider, useReadyCacheState, controller, store] =\n createPersistedStore(managers);\n\n const nextProps = await next({\n ...props,\n controller,\n store,\n });\n return {\n ...nextProps,\n initData: {\n ...nextProps.initData,\n resthooks: useReadyCacheState,\n },\n app: <ServerCacheProvider>{nextProps.app}</ServerCacheProvider>,\n // TODO: figure out how to only inject in next and not have to also put here\n controller,\n store,\n };\n };\n}\n","import { Route, RouteProvider, RouteController } from '@anansi/router';\nimport React from 'react';\nimport { createMemoryHistory } from 'history';\n\nimport type { CreateRouter, ServerSpout } from './types';\n\nexport default function routerSpout<ResolveWith>(options: {\n resolveWith?: any;\n useResolveWith: () => ResolveWith;\n createRouter: CreateRouter<ResolveWith>;\n}): ServerSpout<\n Record<string, unknown>,\n {\n matchedRoutes: Route<ResolveWith>[];\n } & {\n router: RouteController<Route<ResolveWith, any>>;\n }\n> {\n const createRouteComponent = (\n router: RouteController<Route<ResolveWith, any>>,\n ) =>\n function Router({ children }: { children: React.ReactNode }) {\n const resolveWith = options.useResolveWith();\n\n return (\n <RouteProvider router={router} resolveWith={resolveWith}>\n {children}\n </RouteProvider>\n );\n };\n\n return next => async props => {\n const url = props.req.url || '';\n const router = options.createRouter(\n createMemoryHistory({ initialEntries: [url] }),\n );\n const matchedRoutes: Route<ResolveWith>[] = router.getMatchedRoutes(url);\n\n const nextProps = await next({\n ...props,\n matchedRoutes,\n router,\n });\n\n const Router = createRouteComponent(router);\n\n return {\n ...nextProps,\n app: <Router>{nextProps.app}</Router>,\n // TODO: figure out how to only inject in next and not have to also put here\n matchedRoutes,\n router,\n };\n };\n}\n","module.exports = require(\"@anansi/router\");","module.exports = require(\"@rest-hooks/react\");","module.exports = require(\"@rest-hooks/ssr\");","module.exports = require(\"core-js-pure/features/object/define-property\");","module.exports = require(\"core-js-pure/features/object/get-own-property-descriptor\");","module.exports = require(\"core-js-pure/features/symbol\");","module.exports = require(\"core-js-pure/features/symbol/iterator\");","module.exports = require(\"core-js-pure/features/weak-map\");","module.exports = require(\"core-js/modules/es.array.push.js\");","module.exports = require(\"core-js/modules/es.error.cause.js\");","module.exports = require(\"core-js/modules/esnext.async-iterator.filter.js\");","module.exports = require(\"core-js/modules/esnext.async-iterator.flat-map.js\");","module.exports = require(\"core-js/modules/esnext.async-iterator.for-each.js\");","module.exports = require(\"core-js/modules/esnext.async-iterator.map.js\");","module.exports = require(\"core-js/modules/esnext.async-iterator.some.js\");","module.exports = require(\"core-js/modules/esnext.iterator.constructor.js\");","module.exports = require(\"core-js/modules/esnext.iterator.filter.js\");","module.exports = require(\"core-js/modules/esnext.iterator.flat-map.js\");","module.exports = require(\"core-js/modules/esnext.iterator.for-each.js\");","module.exports = require(\"core-js/modules/esnext.iterator.map.js\");","module.exports = require(\"core-js/modules/esnext.iterator.some.js\");","module.exports = require(\"core-js/modules/esnext.set.add-all.js\");","module.exports = require(\"core-js/modules/esnext.set.delete-all.js\");","module.exports = require(\"core-js/modules/esnext.set.difference.js\");","module.exports = require(\"core-js/modules/esnext.set.every.js\");","module.exports = require(\"core-js/modules/esnext.set.filter.js\");","module.exports = require(\"core-js/modules/esnext.set.find.js\");","module.exports = require(\"core-js/modules/esnext.set.intersection.js\");","module.exports = require(\"core-js/modules/esnext.set.is-disjoint-from.js\");","module.exports = require(\"core-js/modules/esnext.set.is-subset-of.js\");","module.exports = require(\"core-js/modules/esnext.set.is-superset-of.js\");","module.exports = require(\"core-js/modules/esnext.set.join.js\");","module.exports = require(\"core-js/modules/esnext.set.map.js\");","module.exports = require(\"core-js/modules/esnext.set.reduce.js\");","module.exports = require(\"core-js/modules/esnext.set.some.js\");","module.exports = require(\"core-js/modules/esnext.set.symmetric-difference.js\");","module.exports = require(\"core-js/modules/esnext.set.union.js\");","module.exports = require(\"history\");","module.exports = require(\"react\");","module.exports = require(\"react-dom/server\");","module.exports = require(\"crypto\");","module.exports = require(\"core-js-pure/features/object/define-property\");","module.exports = require(\"core-js-pure/features/object/get-own-property-descriptor\");","module.exports = require(\"core-js-pure/features/symbol\");","module.exports = require(\"core-js-pure/features/symbol/iterator\");","module.exports = require(\"core-js-pure/features/weak-map\");","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar _WeakMap = require(\"@babel/runtime-corejs3/core-js/weak-map\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js/object/define-property\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs3/core-js/object/get-own-property-descriptor\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof _WeakMap !== \"function\") return null;\n var cacheBabelInterop = new _WeakMap();\n var cacheNodeInterop = new _WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n _Object$defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _Symbol = require(\"@babel/runtime-corejs3/core-js/symbol\");\nvar _Symbol$iterator = require(\"@babel/runtime-corejs3/core-js/symbol/iterator\");\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof _Symbol && \"symbol\" == typeof _Symbol$iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof _Symbol && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","export { default as laySpouts } from './laySpouts';\nexport { default as documentSpout } from './spouts/document.server';\nexport { default as restHooksSpout } from './spouts/restHooks.server';\nexport { default as routerSpout } from './spouts/router.server';\nexport { default as prefetchSpout } from './spouts/prefetch.server';\nexport { default as JSONSpout } from './spouts/json.server';\nexport { default as appSpout } from './spouts/app.server';\nexport type { ServerProps } from './spouts/types';\nexport type { ServerSpout as Spout } from './spouts/types';\n"],"names":[],"sourceRoot":""}
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.routerSpout = exports.restHooksSpout = exports.floodSpouts = exports.documentSpout = exports.appSpout = exports.JSONSpout = void 0;
6
6
  var _floodSpouts = _interopRequireDefault(require("./floodSpouts"));
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.routerSpout = exports.restHooksSpout = exports.prefetchSpout = exports.laySpouts = exports.documentSpout = exports.appSpout = exports.JSONSpout = void 0;
6
6
  var _laySpouts = _interopRequireDefault(require("./laySpouts"));
package/lib/laySpouts.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = laySpouts;
6
6
  var _server = require("react-dom/server");
@@ -2,6 +2,13 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = getProxyMiddlewares;
5
+ require("core-js/modules/esnext.async-iterator.map.js");
6
+ require("core-js/modules/esnext.iterator.map.js");
7
+ require("core-js/modules/web.dom-collections.iterator.js");
8
+ require("core-js/modules/esnext.async-iterator.for-each.js");
9
+ require("core-js/modules/esnext.iterator.constructor.js");
10
+ require("core-js/modules/esnext.iterator.for-each.js");
11
+ require("core-js/modules/es.array.push.js");
5
12
  // Essentially taken from https://github.com/webpack/webpack-dev-server/blob/b5e5b67398f97c7a2934e12ebe34fb03cc06c473/lib/Server.js#L2123
6
13
  function getProxyMiddlewares(proxyConfig) {
7
14
  const middlewares = [];
@@ -94,4 +101,4 @@ function getProxyMiddlewares(proxyConfig) {
94
101
  });
95
102
  return middlewares;
96
103
  }
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQcm94eU1pZGRsZXdhcmVzIiwicHJveHlDb25maWciLCJtaWRkbGV3YXJlcyIsImNyZWF0ZVByb3h5TWlkZGxld2FyZSIsInJlcXVpcmUiLCJwcm94eSIsIkFycmF5IiwiaXNBcnJheSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJzdGFydHNXaXRoIiwiZW50cmllcyIsIm1hcCIsInBhdGgiLCJ2IiwiZ2V0UHJveHlNaWRkbGV3YXJlIiwidGFyZ2V0IiwiY29udGV4dCIsInJvdXRlciIsImZvckVhY2giLCJwcm94eUNvbmZpZ09yQ2FsbGJhY2siLCJwcm94eU1pZGRsZXdhcmUiLCJoYW5kbGVyIiwicmVxIiwicmVzIiwibmV4dCIsIm5ld1Byb3h5Q29uZmlnIiwiYnlwYXNzVXJsIiwiYnlwYXNzIiwidXJsIiwicHVzaCIsIm5hbWUiLCJtaWRkbGV3YXJlIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9nZXRQcm94eU1pZGRsZXdhcmVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFJlcXVlc3RIYW5kbGVyLFxuICBQcm94eUNvbmZpZ0FycmF5LFxuICBSZXNwb25zZSxcbiAgUmVxdWVzdCxcbiAgTmV4dEZ1bmN0aW9uLFxuICBCeVBhc3MsXG4gIFByb3h5Q29uZmlnQXJyYXlJdGVtLFxuICBQcm94eUNvbmZpZ01hcCxcbn0gZnJvbSAnd2VicGFjay1kZXYtc2VydmVyJztcblxuLy8gRXNzZW50aWFsbHkgdGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrLWRldi1zZXJ2ZXIvYmxvYi9iNWU1YjY3Mzk4Zjk3YzdhMjkzNGUxMmViZTM0ZmIwM2NjMDZjNDczL2xpYi9TZXJ2ZXIuanMjTDIxMjNcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFByb3h5TWlkZGxld2FyZXMoXG4gIHByb3h5Q29uZmlnOiBQcm94eUNvbmZpZ0FycmF5SXRlbSB8IFByb3h5Q29uZmlnTWFwIHwgUHJveHlDb25maWdBcnJheSxcbikge1xuICBjb25zdCBtaWRkbGV3YXJlczogYW55W10gPSBbXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgY29uc3QgeyBjcmVhdGVQcm94eU1pZGRsZXdhcmUgfSA9IHJlcXVpcmUoJ2h0dHAtcHJveHktbWlkZGxld2FyZScpO1xuXG4gIGNvbnN0IHByb3h5OiBQcm94eUNvbmZpZ0FycmF5ID1cbiAgICAhQXJyYXkuaXNBcnJheShwcm94eUNvbmZpZykgJiYgdHlwZW9mIHByb3h5Q29uZmlnID09PSAnb2JqZWN0J1xuICAgICAgPyBPYmplY3Qua2V5cyhwcm94eUNvbmZpZykubGVuZ3RoICYmXG4gICAgICAgIE9iamVjdC5rZXlzKHByb3h5Q29uZmlnKVswXS5zdGFydHNXaXRoKCcvJylcbiAgICAgICAgPyBPYmplY3QuZW50cmllcyhwcm94eUNvbmZpZykubWFwKChbcGF0aCwgdl0pID0+ICh7IHBhdGgsIC4uLnYgfSkpXG4gICAgICAgIDogW3Byb3h5Q29uZmlnXVxuICAgICAgOiBwcm94eUNvbmZpZztcblxuICBjb25zdCBnZXRQcm94eU1pZGRsZXdhcmUgPSAoXG4gICAgcHJveHlDb25maWc6IFByb3h5Q29uZmlnQXJyYXlJdGVtLFxuICApOiBSZXF1ZXN0SGFuZGxlciB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gSXQgaXMgcG9zc2libGUgdG8gdXNlIHRoZSBgYnlwYXNzYCBtZXRob2Qgd2l0aG91dCBhIGB0YXJnZXRgIG9yIGByb3V0ZXJgLlxuICAgIC8vIEhvd2V2ZXIsIHRoZSBwcm94eSBtaWRkbGV3YXJlIGhhcyBubyB1c2UgaW4gdGhpcyBjYXNlLCBhbmQgd2lsbCBmYWlsIHRvIGluc3RhbnRpYXRlLlxuICAgIGlmIChwcm94eUNvbmZpZy50YXJnZXQpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBwcm94eUNvbmZpZy5jb250ZXh0IHx8IHByb3h5Q29uZmlnLnBhdGg7XG5cbiAgICAgIHJldHVybiBjcmVhdGVQcm94eU1pZGRsZXdhcmUoLyoqIEB0eXBlIHtzdHJpbmd9ICovIGNvbnRleHQsIHByb3h5Q29uZmlnKTtcbiAgICB9XG5cbiAgICBpZiAocHJveHlDb25maWcucm91dGVyKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUHJveHlNaWRkbGV3YXJlKHByb3h5Q29uZmlnKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEFzc3VtZSBhIHByb3h5IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVkIGFzOlxuICAgKiBwcm94eTogW1xuICAgKiAgIHtcbiAgICogICAgIGNvbnRleHQ6IFwidmFsdWVcIixcbiAgICogICAgIC4uLm9wdGlvbnMsXG4gICAqICAgfSxcbiAgICogICAvLyBvcjpcbiAgICogICBmdW5jdGlvbigpIHtcbiAgICogICAgIHJldHVybiB7XG4gICAqICAgICAgIGNvbnRleHQ6IFwiY29udGV4dFwiLFxuICAgKiAgICAgICAuLi5vcHRpb25zLFxuICAgKiAgICAgfTtcbiAgICogICB9XG4gICAqIF1cbiAgICovXG4gIHByb3h5LmZvckVhY2gocHJveHlDb25maWdPckNhbGxiYWNrID0+IHtcbiAgICBsZXQgcHJveHlNaWRkbGV3YXJlOiBSZXF1ZXN0SGFuZGxlciB8IHVuZGVmaW5lZDtcblxuICAgIGxldCBwcm94eUNvbmZpZyA9XG4gICAgICB0eXBlb2YgcHJveHlDb25maWdPckNhbGxiYWNrID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gcHJveHlDb25maWdPckNhbGxiYWNrKClcbiAgICAgICAgOiBwcm94eUNvbmZpZ09yQ2FsbGJhY2s7XG5cbiAgICBwcm94eU1pZGRsZXdhcmUgPSBnZXRQcm94eU1pZGRsZXdhcmUocHJveHlDb25maWcpO1xuXG4gICAgLyogVE9ETzogZmlndXJlIG91dCBob3cgdG8gbWFrZSB0aGlzIHdvcmtcbiAgICBpZiAocHJveHlDb25maWcud3MpIHtcbiAgICAgIHRoaXMud2ViU29ja2V0UHJveGllcy5wdXNoKHByb3h5TWlkZGxld2FyZSk7XG4gICAgfVxuICAgICovXG5cbiAgICBjb25zdCBoYW5kbGVyID0gYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHByb3h5Q29uZmlnT3JDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBuZXdQcm94eUNvbmZpZyA9IHByb3h5Q29uZmlnT3JDYWxsYmFjayhyZXEsIHJlcywgbmV4dCk7XG5cbiAgICAgICAgaWYgKG5ld1Byb3h5Q29uZmlnICE9PSBwcm94eUNvbmZpZykge1xuICAgICAgICAgIHByb3h5Q29uZmlnID0gbmV3UHJveHlDb25maWc7XG4gICAgICAgICAgcHJveHlNaWRkbGV3YXJlID0gZ2V0UHJveHlNaWRkbGV3YXJlKHByb3h5Q29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyAtIENoZWNrIGlmIHdlIGhhdmUgYSBieXBhc3MgZnVuY3Rpb24gZGVmaW5lZFxuICAgICAgLy8gLSBJbiBjYXNlIHRoZSBieXBhc3MgZnVuY3Rpb24gaXMgZGVmaW5lZCB3ZSdsbCByZXRyaWV2ZSB0aGVcbiAgICAgIC8vIGJ5cGFzc1VybCBmcm9tIGl0IG90aGVyd2lzZSBieXBhc3NVcmwgd291bGQgYmUgbnVsbFxuICAgICAgLy8gVE9ETyByZW1vdmUgaW4gdGhlIG5leHQgbWFqb3IgaW4gZmF2b3IgYGNvbnRleHRgIGFuZCBgcm91dGVyYCBvcHRpb25zXG4gICAgICBjb25zdCBieXBhc3NVcmw6IEJ5UGFzcyB8IG51bGwgPVxuICAgICAgICB0eXBlb2YgcHJveHlDb25maWcuYnlwYXNzID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyBhd2FpdCBwcm94eUNvbmZpZy5ieXBhc3MocmVxLCByZXMsIHByb3h5Q29uZmlnKVxuICAgICAgICAgIDogbnVsbDtcblxuICAgICAgaWYgKHR5cGVvZiBieXBhc3NVcmwgPT09ICdib29sZWFuJykge1xuICAgICAgICAvLyBza2lwIHRoZSBwcm94eVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmVxLnVybCA9IG51bGw7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJ5cGFzc1VybCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gYnlQYXNzIHRvIHRoYXQgdXJsXG4gICAgICAgIHJlcS51cmwgPSBieXBhc3NVcmw7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0gZWxzZSBpZiAocHJveHlNaWRkbGV3YXJlKSB7XG4gICAgICAgIHJldHVybiBwcm94eU1pZGRsZXdhcmUocmVxLCByZXMsIG5leHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBtaWRkbGV3YXJlcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdodHRwLXByb3h5LW1pZGRsZXdhcmUnLFxuICAgICAgbWlkZGxld2FyZTogaGFuZGxlcixcbiAgICB9KTtcbiAgICAvLyBBbHNvIGZvcndhcmQgZXJyb3IgcmVxdWVzdHMgdG8gdGhlIHByb3h5IHNvIGl0IGNhbiBoYW5kbGUgdGhlbS5cbiAgICBtaWRkbGV3YXJlcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdodHRwLXByb3h5LW1pZGRsZXdhcmUtZXJyb3ItaGFuZGxlcicsXG4gICAgICBtaWRkbGV3YXJlOiAoXG4gICAgICAgIGVycm9yOiBFcnJvcixcbiAgICAgICAgcmVxOiBSZXF1ZXN0LFxuICAgICAgICByZXM6IFJlc3BvbnNlLFxuICAgICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgICApID0+IGhhbmRsZXIocmVxLCByZXMsIG5leHQpLFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gbWlkZGxld2FyZXM7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFXQTtBQUNlLFNBQVNBLG1CQUFtQixDQUN6Q0MsV0FBcUUsRUFDckU7RUFDQSxNQUFNQyxXQUFrQixHQUFHLEVBQUU7RUFDN0I7RUFDQSxNQUFNO0lBQUVDO0VBQXNCLENBQUMsR0FBR0MsT0FBTyxDQUFDLHVCQUF1QixDQUFDO0VBRWxFLE1BQU1DLEtBQXVCLEdBQzNCLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTixXQUFXLENBQUMsSUFBSSxPQUFPQSxXQUFXLEtBQUssUUFBUSxHQUMxRE8sTUFBTSxDQUFDQyxJQUFJLENBQUNSLFdBQVcsQ0FBQyxDQUFDUyxNQUFNLElBQy9CRixNQUFNLENBQUNDLElBQUksQ0FBQ1IsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNVLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FDekNILE1BQU0sQ0FBQ0ksT0FBTyxDQUFDWCxXQUFXLENBQUMsQ0FBQ1ksR0FBRyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxFQUFFQyxDQUFDLENBQUMsTUFBTTtJQUFFRCxJQUFJO0lBQUUsR0FBR0M7RUFBRSxDQUFDLENBQUMsQ0FBQyxHQUNoRSxDQUFDZCxXQUFXLENBQUMsR0FDZkEsV0FBVztFQUVqQixNQUFNZSxrQkFBa0IsR0FDdEJmLFdBQWlDLElBQ0Y7SUFDL0I7SUFDQTtJQUNBLElBQUlBLFdBQVcsQ0FBQ2dCLE1BQU0sRUFBRTtNQUN0QixNQUFNQyxPQUFPLEdBQUdqQixXQUFXLENBQUNpQixPQUFPLElBQUlqQixXQUFXLENBQUNhLElBQUk7TUFFdkQsT0FBT1gscUJBQXFCLEVBQUMscUJBQXNCZSxPQUFPLEVBQUVqQixXQUFXLENBQUM7SUFDMUU7SUFFQSxJQUFJQSxXQUFXLENBQUNrQixNQUFNLEVBQUU7TUFDdEIsT0FBT2hCLHFCQUFxQixDQUFDRixXQUFXLENBQUM7SUFDM0M7RUFDRixDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0VJLEtBQUssQ0FBQ2UsT0FBTyxDQUFDQyxxQkFBcUIsSUFBSTtJQUNyQyxJQUFJQyxlQUEyQztJQUUvQyxJQUFJckIsV0FBVyxHQUNiLE9BQU9vQixxQkFBcUIsS0FBSyxVQUFVLEdBQ3ZDQSxxQkFBcUIsRUFBRSxHQUN2QkEscUJBQXFCO0lBRTNCQyxlQUFlLEdBQUdOLGtCQUFrQixDQUFDZixXQUFXLENBQUM7O0lBRWpEO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0lBRUksTUFBTXNCLE9BQU8sR0FBRyxPQUFPQyxHQUFZLEVBQUVDLEdBQWEsRUFBRUMsSUFBa0IsS0FBSztNQUN6RSxJQUFJLE9BQU9MLHFCQUFxQixLQUFLLFVBQVUsRUFBRTtRQUMvQyxNQUFNTSxjQUFjLEdBQUdOLHFCQUFxQixDQUFDRyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsSUFBSSxDQUFDO1FBRTVELElBQUlDLGNBQWMsS0FBSzFCLFdBQVcsRUFBRTtVQUNsQ0EsV0FBVyxHQUFHMEIsY0FBYztVQUM1QkwsZUFBZSxHQUFHTixrQkFBa0IsQ0FBQ2YsV0FBVyxDQUFDO1FBQ25EO01BQ0Y7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQSxNQUFNMkIsU0FBd0IsR0FDNUIsT0FBTzNCLFdBQVcsQ0FBQzRCLE1BQU0sS0FBSyxVQUFVLEdBQ3BDLE1BQU01QixXQUFXLENBQUM0QixNQUFNLENBQUNMLEdBQUcsRUFBRUMsR0FBRyxFQUFFeEIsV0FBVyxDQUFDLEdBQy9DLElBQUk7TUFFVixJQUFJLE9BQU8yQixTQUFTLEtBQUssU0FBUyxFQUFFO1FBQ2xDO1FBQ0E7UUFDQTtRQUNBSixHQUFHLENBQUNNLEdBQUcsR0FBRyxJQUFJO1FBQ2RKLElBQUksRUFBRTtNQUNSLENBQUMsTUFBTSxJQUFJLE9BQU9FLFNBQVMsS0FBSyxRQUFRLEVBQUU7UUFDeEM7UUFDQUosR0FBRyxDQUFDTSxHQUFHLEdBQUdGLFNBQVM7UUFDbkJGLElBQUksRUFBRTtNQUNSLENBQUMsTUFBTSxJQUFJSixlQUFlLEVBQUU7UUFDMUIsT0FBT0EsZUFBZSxDQUFDRSxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsSUFBSSxDQUFDO01BQ3hDLENBQUMsTUFBTTtRQUNMQSxJQUFJLEVBQUU7TUFDUjtJQUNGLENBQUM7SUFFRHhCLFdBQVcsQ0FBQzZCLElBQUksQ0FBQztNQUNmQyxJQUFJLEVBQUUsdUJBQXVCO01BQzdCQyxVQUFVLEVBQUVWO0lBQ2QsQ0FBQyxDQUFDO0lBQ0Y7SUFDQXJCLFdBQVcsQ0FBQzZCLElBQUksQ0FBQztNQUNmQyxJQUFJLEVBQUUscUNBQXFDO01BQzNDQyxVQUFVLEVBQUUsQ0FDVkMsS0FBWSxFQUNaVixHQUFZLEVBQ1pDLEdBQWEsRUFDYkMsSUFBa0IsS0FDZkgsT0FBTyxDQUFDQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsSUFBSTtJQUM3QixDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRixPQUFPeEIsV0FBVztBQUNwQiJ9
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQcm94eU1pZGRsZXdhcmVzIiwicHJveHlDb25maWciLCJtaWRkbGV3YXJlcyIsImNyZWF0ZVByb3h5TWlkZGxld2FyZSIsInJlcXVpcmUiLCJwcm94eSIsIkFycmF5IiwiaXNBcnJheSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJzdGFydHNXaXRoIiwiZW50cmllcyIsIm1hcCIsInBhdGgiLCJ2IiwiZ2V0UHJveHlNaWRkbGV3YXJlIiwidGFyZ2V0IiwiY29udGV4dCIsInJvdXRlciIsImZvckVhY2giLCJwcm94eUNvbmZpZ09yQ2FsbGJhY2siLCJwcm94eU1pZGRsZXdhcmUiLCJoYW5kbGVyIiwicmVxIiwicmVzIiwibmV4dCIsIm5ld1Byb3h5Q29uZmlnIiwiYnlwYXNzVXJsIiwiYnlwYXNzIiwidXJsIiwicHVzaCIsIm5hbWUiLCJtaWRkbGV3YXJlIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9nZXRQcm94eU1pZGRsZXdhcmVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFJlcXVlc3RIYW5kbGVyLFxuICBQcm94eUNvbmZpZ0FycmF5LFxuICBSZXNwb25zZSxcbiAgUmVxdWVzdCxcbiAgTmV4dEZ1bmN0aW9uLFxuICBCeVBhc3MsXG4gIFByb3h5Q29uZmlnQXJyYXlJdGVtLFxuICBQcm94eUNvbmZpZ01hcCxcbn0gZnJvbSAnd2VicGFjay1kZXYtc2VydmVyJztcblxuLy8gRXNzZW50aWFsbHkgdGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrLWRldi1zZXJ2ZXIvYmxvYi9iNWU1YjY3Mzk4Zjk3YzdhMjkzNGUxMmViZTM0ZmIwM2NjMDZjNDczL2xpYi9TZXJ2ZXIuanMjTDIxMjNcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFByb3h5TWlkZGxld2FyZXMoXG4gIHByb3h5Q29uZmlnOiBQcm94eUNvbmZpZ0FycmF5SXRlbSB8IFByb3h5Q29uZmlnTWFwIHwgUHJveHlDb25maWdBcnJheSxcbikge1xuICBjb25zdCBtaWRkbGV3YXJlczogYW55W10gPSBbXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgY29uc3QgeyBjcmVhdGVQcm94eU1pZGRsZXdhcmUgfSA9IHJlcXVpcmUoJ2h0dHAtcHJveHktbWlkZGxld2FyZScpO1xuXG4gIGNvbnN0IHByb3h5OiBQcm94eUNvbmZpZ0FycmF5ID1cbiAgICAhQXJyYXkuaXNBcnJheShwcm94eUNvbmZpZykgJiYgdHlwZW9mIHByb3h5Q29uZmlnID09PSAnb2JqZWN0J1xuICAgICAgPyBPYmplY3Qua2V5cyhwcm94eUNvbmZpZykubGVuZ3RoICYmXG4gICAgICAgIE9iamVjdC5rZXlzKHByb3h5Q29uZmlnKVswXS5zdGFydHNXaXRoKCcvJylcbiAgICAgICAgPyBPYmplY3QuZW50cmllcyhwcm94eUNvbmZpZykubWFwKChbcGF0aCwgdl0pID0+ICh7IHBhdGgsIC4uLnYgfSkpXG4gICAgICAgIDogW3Byb3h5Q29uZmlnXVxuICAgICAgOiBwcm94eUNvbmZpZztcblxuICBjb25zdCBnZXRQcm94eU1pZGRsZXdhcmUgPSAoXG4gICAgcHJveHlDb25maWc6IFByb3h5Q29uZmlnQXJyYXlJdGVtLFxuICApOiBSZXF1ZXN0SGFuZGxlciB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLy8gSXQgaXMgcG9zc2libGUgdG8gdXNlIHRoZSBgYnlwYXNzYCBtZXRob2Qgd2l0aG91dCBhIGB0YXJnZXRgIG9yIGByb3V0ZXJgLlxuICAgIC8vIEhvd2V2ZXIsIHRoZSBwcm94eSBtaWRkbGV3YXJlIGhhcyBubyB1c2UgaW4gdGhpcyBjYXNlLCBhbmQgd2lsbCBmYWlsIHRvIGluc3RhbnRpYXRlLlxuICAgIGlmIChwcm94eUNvbmZpZy50YXJnZXQpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBwcm94eUNvbmZpZy5jb250ZXh0IHx8IHByb3h5Q29uZmlnLnBhdGg7XG5cbiAgICAgIHJldHVybiBjcmVhdGVQcm94eU1pZGRsZXdhcmUoLyoqIEB0eXBlIHtzdHJpbmd9ICovIGNvbnRleHQsIHByb3h5Q29uZmlnKTtcbiAgICB9XG5cbiAgICBpZiAocHJveHlDb25maWcucm91dGVyKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUHJveHlNaWRkbGV3YXJlKHByb3h5Q29uZmlnKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEFzc3VtZSBhIHByb3h5IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVkIGFzOlxuICAgKiBwcm94eTogW1xuICAgKiAgIHtcbiAgICogICAgIGNvbnRleHQ6IFwidmFsdWVcIixcbiAgICogICAgIC4uLm9wdGlvbnMsXG4gICAqICAgfSxcbiAgICogICAvLyBvcjpcbiAgICogICBmdW5jdGlvbigpIHtcbiAgICogICAgIHJldHVybiB7XG4gICAqICAgICAgIGNvbnRleHQ6IFwiY29udGV4dFwiLFxuICAgKiAgICAgICAuLi5vcHRpb25zLFxuICAgKiAgICAgfTtcbiAgICogICB9XG4gICAqIF1cbiAgICovXG4gIHByb3h5LmZvckVhY2gocHJveHlDb25maWdPckNhbGxiYWNrID0+IHtcbiAgICBsZXQgcHJveHlNaWRkbGV3YXJlOiBSZXF1ZXN0SGFuZGxlciB8IHVuZGVmaW5lZDtcblxuICAgIGxldCBwcm94eUNvbmZpZyA9XG4gICAgICB0eXBlb2YgcHJveHlDb25maWdPckNhbGxiYWNrID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gcHJveHlDb25maWdPckNhbGxiYWNrKClcbiAgICAgICAgOiBwcm94eUNvbmZpZ09yQ2FsbGJhY2s7XG5cbiAgICBwcm94eU1pZGRsZXdhcmUgPSBnZXRQcm94eU1pZGRsZXdhcmUocHJveHlDb25maWcpO1xuXG4gICAgLyogVE9ETzogZmlndXJlIG91dCBob3cgdG8gbWFrZSB0aGlzIHdvcmtcbiAgICBpZiAocHJveHlDb25maWcud3MpIHtcbiAgICAgIHRoaXMud2ViU29ja2V0UHJveGllcy5wdXNoKHByb3h5TWlkZGxld2FyZSk7XG4gICAgfVxuICAgICovXG5cbiAgICBjb25zdCBoYW5kbGVyID0gYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHByb3h5Q29uZmlnT3JDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBuZXdQcm94eUNvbmZpZyA9IHByb3h5Q29uZmlnT3JDYWxsYmFjayhyZXEsIHJlcywgbmV4dCk7XG5cbiAgICAgICAgaWYgKG5ld1Byb3h5Q29uZmlnICE9PSBwcm94eUNvbmZpZykge1xuICAgICAgICAgIHByb3h5Q29uZmlnID0gbmV3UHJveHlDb25maWc7XG4gICAgICAgICAgcHJveHlNaWRkbGV3YXJlID0gZ2V0UHJveHlNaWRkbGV3YXJlKHByb3h5Q29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyAtIENoZWNrIGlmIHdlIGhhdmUgYSBieXBhc3MgZnVuY3Rpb24gZGVmaW5lZFxuICAgICAgLy8gLSBJbiBjYXNlIHRoZSBieXBhc3MgZnVuY3Rpb24gaXMgZGVmaW5lZCB3ZSdsbCByZXRyaWV2ZSB0aGVcbiAgICAgIC8vIGJ5cGFzc1VybCBmcm9tIGl0IG90aGVyd2lzZSBieXBhc3NVcmwgd291bGQgYmUgbnVsbFxuICAgICAgLy8gVE9ETyByZW1vdmUgaW4gdGhlIG5leHQgbWFqb3IgaW4gZmF2b3IgYGNvbnRleHRgIGFuZCBgcm91dGVyYCBvcHRpb25zXG4gICAgICBjb25zdCBieXBhc3NVcmw6IEJ5UGFzcyB8IG51bGwgPVxuICAgICAgICB0eXBlb2YgcHJveHlDb25maWcuYnlwYXNzID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyBhd2FpdCBwcm94eUNvbmZpZy5ieXBhc3MocmVxLCByZXMsIHByb3h5Q29uZmlnKVxuICAgICAgICAgIDogbnVsbDtcblxuICAgICAgaWYgKHR5cGVvZiBieXBhc3NVcmwgPT09ICdib29sZWFuJykge1xuICAgICAgICAvLyBza2lwIHRoZSBwcm94eVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmVxLnVybCA9IG51bGw7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJ5cGFzc1VybCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gYnlQYXNzIHRvIHRoYXQgdXJsXG4gICAgICAgIHJlcS51cmwgPSBieXBhc3NVcmw7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0gZWxzZSBpZiAocHJveHlNaWRkbGV3YXJlKSB7XG4gICAgICAgIHJldHVybiBwcm94eU1pZGRsZXdhcmUocmVxLCByZXMsIG5leHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBtaWRkbGV3YXJlcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdodHRwLXByb3h5LW1pZGRsZXdhcmUnLFxuICAgICAgbWlkZGxld2FyZTogaGFuZGxlcixcbiAgICB9KTtcbiAgICAvLyBBbHNvIGZvcndhcmQgZXJyb3IgcmVxdWVzdHMgdG8gdGhlIHByb3h5IHNvIGl0IGNhbiBoYW5kbGUgdGhlbS5cbiAgICBtaWRkbGV3YXJlcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdodHRwLXByb3h5LW1pZGRsZXdhcmUtZXJyb3ItaGFuZGxlcicsXG4gICAgICBtaWRkbGV3YXJlOiAoXG4gICAgICAgIGVycm9yOiBFcnJvcixcbiAgICAgICAgcmVxOiBSZXF1ZXN0LFxuICAgICAgICByZXM6IFJlc3BvbnNlLFxuICAgICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgICApID0+IGhhbmRsZXIocmVxLCByZXMsIG5leHQpLFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gbWlkZGxld2FyZXM7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.serve = exports.devServe = void 0;
6
6
  var _serve = _interopRequireDefault(require("./serve"));
@@ -1,9 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
 
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
5
  exports.__esModule = true;
6
6
  exports.default = serve;
7
+ require("core-js/modules/web.dom-collections.iterator.js");
8
+ require("core-js/modules/esnext.async-iterator.map.js");
9
+ require("core-js/modules/esnext.iterator.map.js");
10
+ require("core-js/modules/esnext.async-iterator.find.js");
11
+ require("core-js/modules/esnext.iterator.constructor.js");
12
+ require("core-js/modules/esnext.iterator.find.js");
7
13
  var _util = require("util");
8
14
  var _fs = _interopRequireDefault(require("fs"));
9
15
  var _path = _interopRequireDefault(require("path"));
@@ -150,4 +156,4 @@ function getManifestPathFromWebpackconfig(webpackConfig) {
150
156
  const manifestPath = _path.default.join((_webpackConfig$output = webpackConfig == null ? void 0 : (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
151
157
  return manifestPath;
152
158
  }
153
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwibWFpbiIsIm1vZHVsZSIsImVudHJ5cG9pbnQiLCJwcm9jZXNzIiwiYXJndiIsImNvbnNvbGUiLCJsb2ciLCJleGl0Iiwic2VydmUiLCJvcHRpb25zIiwiUE9SVCIsImVudiIsImxvYWRlciIsIm9yYSIsInN0YXJ0Iiwid2VicGFja0NvbmZpZyIsInJlc29sdmUiLCJwYXRoIiwiam9pbiIsImN3ZCIsIm1hbmlmZXN0UGF0aCIsImdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnIiwibW9kZSIsInJlYWRGaWxlIiwicHJvbWlzaWZ5IiwiZGlza0ZzIiwic2VydmVyIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsImluaXRpYWxpemVBcHAiLCJjbGllbnRNYW5pZmVzdCIsImluZm8iLCJmYWlsIiwid3JhcHBpbmdBcHAiLCJleHByZXNzIiwidXNlIiwiY29tcHJlc3MiLCJzZXJ2ZUFzc2V0cyIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsIm91dHB1dFBhdGgiLCJleGlzdHNTeW5jIiwibHN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJmaWxlQ29udGVudCIsInRvU3RyaW5nIiwiY29udGVudFR5cGUiLCJzZW5kIiwiZSIsInNlcnZlUHJveHkiLCJkZXZDb25maWciLCJkZXZTZXJ2ZXIiLCJwcm94eSIsIm1pZGRsZXdhcmVzIiwiZ2V0UHJveHlNaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJkZWZhdWx0IiwiZ2V0IiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIndhcm4iLCJjbG9zZSIsIm1hbmlmZXN0RmlsZW5hbWUiLCJwbHVnaW5zIiwiZmluZCIsInBsdWdpbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdHMiLCJvdXRwdXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9zZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB3ZWJwYWNrLCB7IHdlYiB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgZXhwcmVzcywgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBjb21wcmVzcyBmcm9tICdjb21wcmVzc2lvbic7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgZ2V0UHJveHlNaWRkbGV3YXJlcyBmcm9tICcuL2dldFByb3h5TWlkZGxld2FyZXMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8c2VydmVyLWVudHJ5cG9pbnQ+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBzZXJ2ZShlbnRyeXBvaW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2VydmUoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzZXJ2ZUFzc2V0cz86IGJvb2xlYW47IHNlcnZlUHJveHk/OiBib29sZWFuIH0gPSB7fSxcbikge1xuICBjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwO1xuXG4gIGNvbnN0IGxvYWRlciA9IG9yYSgnSW5pdGlhbGl6aW5nJykuc3RhcnQoKTtcblxuICBjb25zdCB3ZWJwYWNrQ29uZmlnOiAoXG4gICAgZW52OiBhbnksXG4gICAgYXJndjogYW55LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICkgPT4gd2VicGFjay5Db25maWd1cmF0aW9uID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gICAgLy8gVE9ETzogdXNlIG5vcm1hbCByZXNvbHV0aW9uIGFsZ29yaXRobSB0byBmaW5kIHdlYnBhY2sgZmlsZVxuICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnd2VicGFjay5jb25maWcnKSxcbiAgKSk7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gICAgd2VicGFja0NvbmZpZyh7fSwgeyBtb2RlOiAncHJvZHVjdGlvbicgfSksXG4gICk7XG5cbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkoZGlza0ZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVBcHAoY2xpZW50TWFuaWZlc3Q6IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbikge1xuICAgIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gICAgaWYgKCFjbGllbnRNYW5pZmVzdCkge1xuICAgICAgbG9hZGVyLmZhaWwoJ01hbmlmZXN0IG5vdCBmb3VuZCcpO1xuICAgICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgICAvLyBBU1NFVFNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZUFzc2V0cykge1xuICAgICAgd3JhcHBpbmdBcHAudXNlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgICAgIHJlczogYW55LFxuICAgICAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgICAgICAgcmVxLnVybD8uc3Vic3RyKFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCxcbiAgICAgICAgICAgICkgPz8gJyc7XG4gICAgICAgICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaXNrRnMuZXhpc3RzU3luYyhhc3NldFBhdGgpICYmXG4gICAgICAgICAgICAhZGlza0ZzLmxzdGF0U3luYyhhc3NldFBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gKGF3YWl0IHJlYWRGaWxlKGFzc2V0UGF0aCkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgIHJlcy5jb250ZW50VHlwZShmaWxlbmFtZSk7XG4gICAgICAgICAgICAgIHJlcy5zZW5kKGZpbGVDb250ZW50KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCByZW5kZXI6IFJlbmRlciA9IHJlcXVpcmUocGF0aC5qb2luKFxuICAgICAgcHJvY2Vzcy5jd2QoKSxcbiAgICAgIGVudHJ5cG9pbnQsXG4gICAgKSkuZGVmYXVsdDtcblxuICAgIHdyYXBwaW5nQXBwLmdldChcbiAgICAgICcvKicsXG4gICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgICAubGlzdGVuKFBPUlQsICgpID0+IHtcbiAgICAgICAgbG9hZGVyLmluZm8oYExpc3RlbmluZyBhdCAke1BPUlR9Li4uYCk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gICAgICAgIGlmIChlcnJvci5zeXNjYWxsICE9PSAnbGlzdGVuJykge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzUGlwZSA9IChwb3J0T3JQaXBlOiBzdHJpbmcgfCBudW1iZXIpID0+XG4gICAgICAgICAgTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgICBjb25zdCBiaW5kID0gaXNQaXBlKFBPUlQpID8gJ1BpcGUgJyArIFBPUlQgOiAnUG9ydCAnICsgUE9SVDtcbiAgICAgICAgc3dpdGNoIChlcnJvci5jb2RlKSB7XG4gICAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBjYXNlICdFQUREUklOVVNFJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIGlzIGFscmVhZHkgaW4gdXNlJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gIGluaXRpYWxpemVBcHAocmVxdWlyZShtYW5pZmVzdFBhdGgpKTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgICBzZXJ2ZXI/LmNsb3NlKCgpID0+IHtcbiAgICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICB3ZWJwYWNrQ29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24sXG4pIHtcbiAgY29uc3QgbWFuaWZlc3RGaWxlbmFtZTogc3RyaW5nID1cbiAgICAoXG4gICAgICB3ZWJwYWNrQ29uZmlnPy5wbHVnaW5zPy5maW5kKHBsdWdpbiA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4uY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0YXRzV3JpdGVyUGx1Z2luJztcbiAgICAgIH0pIGFzIGFueVxuICAgICk/Lm9wdHM/LmZpbGVuYW1lID8/ICdtYW5pZmVzdC5qc29uJztcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oXG4gICAgd2VicGFja0NvbmZpZz8ub3V0cHV0Py5wYXRoID8/ICcnLFxuICAgIG1hbmlmZXN0RmlsZW5hbWUsXG4gICk7XG4gIHJldHVybiBtYW5pZmVzdFBhdGg7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQW1COztBQUFBO0FBQUE7QUFBQTtBQUVuQjtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7QUFDQSxJQUFJQSxPQUFPLENBQUNDLElBQUksS0FBS0MsTUFBTSxFQUFFO0VBQzNCLE1BQU1DLFVBQVUsR0FBR0MsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBRWxDLElBQUksQ0FBQ0YsVUFBVSxFQUFFO0lB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
159
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwibWFpbiIsIm1vZHVsZSIsImVudHJ5cG9pbnQiLCJwcm9jZXNzIiwiYXJndiIsImNvbnNvbGUiLCJsb2ciLCJleGl0Iiwic2VydmUiLCJvcHRpb25zIiwiUE9SVCIsImVudiIsImxvYWRlciIsIm9yYSIsInN0YXJ0Iiwid2VicGFja0NvbmZpZyIsInJlc29sdmUiLCJwYXRoIiwiam9pbiIsImN3ZCIsIm1hbmlmZXN0UGF0aCIsImdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnIiwibW9kZSIsInJlYWRGaWxlIiwicHJvbWlzaWZ5IiwiZGlza0ZzIiwic2VydmVyIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsImluaXRpYWxpemVBcHAiLCJjbGllbnRNYW5pZmVzdCIsImluZm8iLCJmYWlsIiwid3JhcHBpbmdBcHAiLCJleHByZXNzIiwidXNlIiwiY29tcHJlc3MiLCJzZXJ2ZUFzc2V0cyIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsIm91dHB1dFBhdGgiLCJleGlzdHNTeW5jIiwibHN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJmaWxlQ29udGVudCIsInRvU3RyaW5nIiwiY29udGVudFR5cGUiLCJzZW5kIiwiZSIsInNlcnZlUHJveHkiLCJkZXZDb25maWciLCJkZXZTZXJ2ZXIiLCJwcm94eSIsIm1pZGRsZXdhcmVzIiwiZ2V0UHJveHlNaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJkZWZhdWx0IiwiZ2V0IiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIndhcm4iLCJjbG9zZSIsIm1hbmlmZXN0RmlsZW5hbWUiLCJwbHVnaW5zIiwiZmluZCIsInBsdWdpbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdHMiLCJvdXRwdXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9zZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB3ZWJwYWNrLCB7IHdlYiB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgZXhwcmVzcywgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBjb21wcmVzcyBmcm9tICdjb21wcmVzc2lvbic7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgZ2V0UHJveHlNaWRkbGV3YXJlcyBmcm9tICcuL2dldFByb3h5TWlkZGxld2FyZXMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8c2VydmVyLWVudHJ5cG9pbnQ+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBzZXJ2ZShlbnRyeXBvaW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2VydmUoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzZXJ2ZUFzc2V0cz86IGJvb2xlYW47IHNlcnZlUHJveHk/OiBib29sZWFuIH0gPSB7fSxcbikge1xuICBjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwO1xuXG4gIGNvbnN0IGxvYWRlciA9IG9yYSgnSW5pdGlhbGl6aW5nJykuc3RhcnQoKTtcblxuICBjb25zdCB3ZWJwYWNrQ29uZmlnOiAoXG4gICAgZW52OiBhbnksXG4gICAgYXJndjogYW55LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICkgPT4gd2VicGFjay5Db25maWd1cmF0aW9uID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gICAgLy8gVE9ETzogdXNlIG5vcm1hbCByZXNvbHV0aW9uIGFsZ29yaXRobSB0byBmaW5kIHdlYnBhY2sgZmlsZVxuICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnd2VicGFjay5jb25maWcnKSxcbiAgKSk7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gICAgd2VicGFja0NvbmZpZyh7fSwgeyBtb2RlOiAncHJvZHVjdGlvbicgfSksXG4gICk7XG5cbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkoZGlza0ZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVBcHAoY2xpZW50TWFuaWZlc3Q6IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbikge1xuICAgIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gICAgaWYgKCFjbGllbnRNYW5pZmVzdCkge1xuICAgICAgbG9hZGVyLmZhaWwoJ01hbmlmZXN0IG5vdCBmb3VuZCcpO1xuICAgICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgICAvLyBBU1NFVFNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZUFzc2V0cykge1xuICAgICAgd3JhcHBpbmdBcHAudXNlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgICAgIHJlczogYW55LFxuICAgICAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgICAgICAgcmVxLnVybD8uc3Vic3RyKFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCxcbiAgICAgICAgICAgICkgPz8gJyc7XG4gICAgICAgICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaXNrRnMuZXhpc3RzU3luYyhhc3NldFBhdGgpICYmXG4gICAgICAgICAgICAhZGlza0ZzLmxzdGF0U3luYyhhc3NldFBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb250ZW50ID0gKGF3YWl0IHJlYWRGaWxlKGFzc2V0UGF0aCkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgIHJlcy5jb250ZW50VHlwZShmaWxlbmFtZSk7XG4gICAgICAgICAgICAgIHJlcy5zZW5kKGZpbGVDb250ZW50KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCByZW5kZXI6IFJlbmRlciA9IHJlcXVpcmUocGF0aC5qb2luKFxuICAgICAgcHJvY2Vzcy5jd2QoKSxcbiAgICAgIGVudHJ5cG9pbnQsXG4gICAgKSkuZGVmYXVsdDtcblxuICAgIHdyYXBwaW5nQXBwLmdldChcbiAgICAgICcvKicsXG4gICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgICAubGlzdGVuKFBPUlQsICgpID0+IHtcbiAgICAgICAgbG9hZGVyLmluZm8oYExpc3RlbmluZyBhdCAke1BPUlR9Li4uYCk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gICAgICAgIGlmIChlcnJvci5zeXNjYWxsICE9PSAnbGlzdGVuJykge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzUGlwZSA9IChwb3J0T3JQaXBlOiBzdHJpbmcgfCBudW1iZXIpID0+XG4gICAgICAgICAgTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgICBjb25zdCBiaW5kID0gaXNQaXBlKFBPUlQpID8gJ1BpcGUgJyArIFBPUlQgOiAnUG9ydCAnICsgUE9SVDtcbiAgICAgICAgc3dpdGNoIChlcnJvci5jb2RlKSB7XG4gICAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBjYXNlICdFQUREUklOVVNFJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIGlzIGFscmVhZHkgaW4gdXNlJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gIGluaXRpYWxpemVBcHAocmVxdWlyZShtYW5pZmVzdFBhdGgpKTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgICBzZXJ2ZXI/LmNsb3NlKCgpID0+IHtcbiAgICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICB3ZWJwYWNrQ29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24sXG4pIHtcbiAgY29uc3QgbWFuaWZlc3RGaWxlbmFtZTogc3RyaW5nID1cbiAgICAoXG4gICAgICB3ZWJwYWNrQ29uZmlnPy5wbHVnaW5zPy5maW5kKHBsdWdpbiA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4uY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0YXRzV3JpdGVyUGx1Z2luJztcbiAgICAgIH0pIGFzIGFueVxuICAgICk/Lm9wdHM/LmZpbGVuYW1lID8/ICdtYW5pZmVzdC5qc29uJztcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oXG4gICAgd2VicGFja0NvbmZpZz8ub3V0cHV0Py5wYXRoID8/ICcnLFxuICAgIG1hbmlmZXN0RmlsZW5hbWUsXG4gICk7XG4gIHJldHVybiBtYW5pZmVzdFBhdGg7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQW1COztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVuQjtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7QUFDQSxJQUFJQSxPQUFPLENBQUNDLElBQUksS0FBS0MsTUFBTSxFQUFFO0VBQzNCLE1BQU1DLFVBQVUsR0FBR0MsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFD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
@@ -1,9 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
 
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
5
  exports.__esModule = true;
6
6
  exports.default = startDevServer;
7
+ require("core-js/modules/es.regexp.exec.js");
8
+ require("core-js/modules/es.string.replace.js");
9
+ require("core-js/modules/es.array.push.js");
10
+ require("core-js/modules/web.dom-collections.iterator.js");
11
+ require("core-js/modules/esnext.async-iterator.for-each.js");
12
+ require("core-js/modules/esnext.iterator.constructor.js");
13
+ require("core-js/modules/esnext.iterator.for-each.js");
14
+ require("core-js/modules/es.error.cause.js");
15
+ require("core-js/modules/es.regexp.constructor.js");
16
+ require("core-js/modules/es.regexp.dot-all.js");
17
+ require("core-js/modules/es.object.has-own.js");
7
18
  var _util = require("util");
8
19
  var _fs = _interopRequireDefault(require("fs"));
9
20
  var _path = _interopRequireDefault(require("path"));
@@ -212,4 +223,4 @@ function startDevServer(entrypoint, env = {}) {
212
223
  });
213
224
  runServer();
214
225
  }
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwibWFpbiIsIm1vZHVsZSIsImVudHJ5cG9pbnQiLCJwcm9jZXNzIiwiYXJndiIsImNvbnNvbGUiLCJsb2ciLCJleGl0Iiwic3RhcnREZXZTZXJ2ZXIiLCJlbnYiLCJ3ZWJwYWNrQ29uZmlnIiwicmVzb2x2ZSIsInBhdGgiLCJqb2luIiwiY3dkIiwibG9nZ2luZyIsImdldExvZ2dlciIsInZvbHVtZSIsIlZvbHVtZSIsImZzIiwiY3JlYXRlRnNGcm9tVm9sdW1lIiwidWZzIiwidXNlIiwiZGlza0ZzIiwiZnNSZXF1aXJlIiwiY3JlYXRlRnNSZXF1aXJlIiwicmVhZEZpbGUiLCJwcm9taXNpZnkiLCJzZXJ2ZXIiLCJob3RFbnRyeSIsImVudHJ5UGF0aCIsImdlbmVyYXRlZEVudHJ5cG9pbnQiLCJ0bXAiLCJmaWxlU3luYyIsInBvc3RmaXgiLCJ3cml0ZVN5bmMiLCJmZCIsIndlYnBhY2tDb25maWdzIiwiZW50cnlwYXRoIiwibmFtZSIsIm1vZGUiLCJyZXBsYWNlIiwiQlJPV1NFUlNMSVNUX0VOViIsInRhcmdldCIsImNvbXBpbGVyIiwid2VicGFjayIsInNvdXJjZU1hcFN1cHBvcnQiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJvdXRwdXRQYXRoIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsImluaXRSZW5kZXIiLCJyZW5kZXIiLCJhcmdzIiwiUHJvbWlzZSIsInB1c2giLCJpbXBvcnRSZW5kZXIiLCJzdGF0cyIsImNsaWVudFN0YXRzIiwiY29tcGlsYXRpb24iLCJlcnJvcnMiLCJsZW5ndGgiLCJlcnJvciIsIkFycmF5IiwiaXNBcnJheSIsImluZm8iLCJjbGllbnRNYW5pZmVzdCIsInNlcnZlckVudHJ5IiwiT2JqZWN0Iiwia2V5cyIsImNhY2hlIiwiZm9yRWFjaCIsImtleSIsImRlZmF1bHQiLCJiaW5kIiwidW5kZWZpbmVkIiwiaW5pdCIsImUiLCJkZXZTZXJ2ZXIiLCJXZWJwYWNrRGV2U2VydmVyIiwiZGV2TWlkZGxld2FyZSIsIm91dHB1dEZpbGVTeXN0ZW0iLCJzZXR1cE1pZGRsZXdhcmVzIiwibWlkZGxld2FyZXMiLCJFcnJvciIsIm90aGVyUm91dGVzIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsInByb3h5IiwiYXBwIiwiZ2V0IiwiUmVnRXhwIiwidXJsIiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic2VuZCIsInNvY2tldCIsIm9uIiwicnVuU2VydmVyIiwic3RhcnQiLCJob29rcyIsImRvbmUiLCJ0YXAiLCJtdWx0aVN0YXRzIiwiaGFzT3duIiwic3RvcFNlcnZlciIsInN0b3AiLCJ3YXJuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnREZXZzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgd2VicGFjaywgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIFZvbHVtZSB9IGZyb20gJ21lbWZzJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHR5cGUgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB0bXAgZnJvbSAndG1wJztcbmltcG9ydCBzb3VyY2VNYXBTdXBwb3J0IGZyb20gJ3NvdXJjZS1tYXAtc3VwcG9ydCc7XG5pbXBvcnQgeyB1ZnMgfSBmcm9tICd1bmlvbmZzJztcbmltcG9ydCBXZWJwYWNrRGV2U2VydmVyIGZyb20gJ3dlYnBhY2stZGV2LXNlcnZlcic7XG5pbXBvcnQgbG9nZ2luZyBmcm9tICd3ZWJwYWNrL2xpYi9sb2dnaW5nL3J1bnRpbWUnO1xuaW1wb3J0IHsgY3JlYXRlRnNSZXF1aXJlIH0gZnJvbSAnZnMtcmVxdWlyZSc7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgQm91bmRSZW5kZXIgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gcnVuIGRpcmVjdGx5IGZyb20gbm9kZVxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5cbiAgaWYgKCFlbnRyeXBvaW50KSB7XG4gICAgY29uc29sZS5sb2coYFVzYWdlOiBzdGFydC1hbmFuc2kgPGVudHJ5cG9pbnQtZmlsZT5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG5cbiAgc3RhcnREZXZTZXJ2ZXIoZW50cnlwb2ludCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0RGV2U2VydmVyKFxuICBlbnRyeXBvaW50OiBzdHJpbmcsXG4gIGVudjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gICAgLy8gVE9ETzogdXNlIG5vcm1hbCByZXNvbHV0aW9uIGFsZ29yaXRobSB0byBmaW5kIHdlYnBhY2sgZmlsZVxuICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnd2VicGFjay5jb25maWcnKSxcbiAgKSk7XG5cbiAgY29uc3QgbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2FuYW5zaS1kZXZzZXJ2ZXInKTtcblxuICAvLyBTZXQgdXAgaW4gbWVtb3J5IGZpbGVzeXN0ZW1cbiAgY29uc3Qgdm9sdW1lID0gbmV3IFZvbHVtZSgpO1xuICBjb25zdCBmcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2b2x1bWUpO1xuICB1ZnMudXNlKGRpc2tGcykudXNlKGZzIGFzIGFueSk7XG5cbiAgY29uc3QgZnNSZXF1aXJlID0gY3JlYXRlRnNSZXF1aXJlKHVmcyk7XG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KHVmcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICAvLyBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBmaWxlIHNvIHdlIGNhbiBob3QgcmVsb2FkIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uXG4gIGZ1bmN0aW9uIGhvdEVudHJ5KGVudHJ5UGF0aDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy8gQHRzLWlnbm9yZSBmb3Igc29tZSByZWFzb24gaXQncyBub3QgcGlja2luZyB1cCB0aGF0IG90aGVyIG9wdGlvbnMgYXJlIG9wdGlvbmFsXG4gICAgY29uc3QgZ2VuZXJhdGVkRW50cnlwb2ludCA9IHRtcC5maWxlU3luYyh7IHBvc3RmaXg6ICcuanMnIH0pO1xuICAgIGRpc2tGcy53cml0ZVN5bmMoXG4gICAgICBnZW5lcmF0ZWRFbnRyeXBvaW50LmZkLFxuICAgICAgYFxuICBpbXBvcnQgZW50cnkgZnJvbSBcIiR7cGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGVudHJ5UGF0aCl9XCI7XG5cbiAgaWYgKG1vZHVsZS5ob3QpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpO1xuICB9XG5cbiAgZXhwb3J0IGRlZmF1bHQgZW50cnk7XG4gICAgYCxcbiAgICApO1xuICAgIHJldHVybiBnZW5lcmF0ZWRFbnRyeXBvaW50O1xuICB9XG5cbiAgY29uc3Qgd2VicGFja0NvbmZpZ3MgPSBbXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGhvdEVudHJ5KGVudHJ5cG9pbnQpLm5hbWUsXG4gICAgICAgIG5hbWU6ICdjbGllbnQnLFxuICAgICAgfSxcbiAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICksXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGVudHJ5cG9pbnQucmVwbGFjZSgnLnRzeCcsICcuc2VydmVyLnRzeCcpLFxuICAgICAgICBuYW1lOiAnc2VydmVyJyxcbiAgICAgICAgQlJPV1NFUlNMSVNUX0VOVjogJ2N1cnJlbnQgbm9kZScsXG4gICAgICB9LFxuICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnLCB0YXJnZXQ6ICdub2RlJyB9LFxuICAgICksXG4gIF0gYXMgY29uc3Q7XG5cbiAgLy8gaW5pdGlhbGl6ZSB0aGUgd2VicGFjayBjb21waWxlclxuICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG4gIHNvdXJjZU1hcFN1cHBvcnQuaW5zdGFsbCh7IGhvb2tSZXF1aXJlOiB0cnVlIH0pO1xuXG4gIGZ1bmN0aW9uIGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0czogd2VicGFjay5TdGF0cykge1xuICAgIGNvbnN0IHNlcnZlckpzb24gPSBzZXJ2ZXJTdGF0cy50b0pzb24oeyBhc3NldHM6IHRydWUgfSk7XG4gICAgcmV0dXJuIHBhdGguam9pbihzZXJ2ZXJKc29uLm91dHB1dFBhdGggPz8gJycsICdzZXJ2ZXIuanMnKTtcbiAgfVxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbGV0IGluaXRSZW5kZXI6XG4gICAgfCB7IGFyZ3M6IFBhcmFtZXRlcnM8Qm91bmRSZW5kZXI+OyByZXNvbHZlOiAoKSA9PiB2b2lkIH1bXVxuICAgIHwgdW5kZWZpbmVkID0gW107XG4gIGxldCByZW5kZXI6IEJvdW5kUmVuZGVyID0gKC4uLmFyZ3MpID0+XG4gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBpbml0UmVuZGVyPy5wdXNoKHsgYXJncywgcmVzb2x2ZSB9KTtcbiAgICB9KTtcblxuICBmdW5jdGlvbiBpbXBvcnRSZW5kZXIoc3RhdHM6IHdlYnBhY2suU3RhdHNbXSkge1xuICAgIGNvbnN0IFtjbGllbnRTdGF0cywgc2VydmVyU3RhdHNdID0gc3RhdHM7XG4gICAgaWYgKFxuICAgICAgY2xpZW50U3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aCB8fFxuICAgICAgc2VydmVyU3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aFxuICAgICkge1xuICAgICAgbG9nLmVycm9yKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJyArIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgICBsb2cuZXJyb3IoJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOiAnICsgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAgIC8vIGZpcnN0IHRpbWUsIHJhdGhlciB0aGFuIHJlLXJlbmRlclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgIH1cbiAgICAgIGxvZy5lcnJvcignQWJvdmUgY29tcGlsZXIgZXJyb3JzIGJsb2NraW5nIHJlbG9hZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuaW5mbygnTGF1bmNoaW5nIFNTUicpO1xuICAgIH1cblxuICAgIC8vIEFTU0VUU1xuICAgIGNvbnN0IGNsaWVudE1hbmlmZXN0ID0gY2xpZW50U3RhdHMudG9Kc29uKCk7XG5cbiAgICBjb25zdCBzZXJ2ZXJFbnRyeSA9IGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cyk7XG4gICAgLy8gcmVsb2FkIG1vZHVsZXNcbiAgICBPYmplY3Qua2V5cyhmc1JlcXVpcmUuY2FjaGUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGRlbGV0ZSBmc1JlcXVpcmUuY2FjaGVba2V5XTtcbiAgICB9KTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIHJlbmRlciA9IChmc1JlcXVpcmUoc2VydmVyRW50cnkpIGFzIGFueSkuZGVmYXVsdC5iaW5kKFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xpZW50TWFuaWZlc3QsXG4gICAgKTtcbiAgICAvLyBTRVJWRVIgU0lERSBFTlRSWVBPSU5UXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgIGluaXRSZW5kZXIuZm9yRWFjaChhc3luYyBpbml0ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2cuaW5mbygnUmVzb2x2aW5nIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlciguLi5pbml0LmFyZ3MpO1xuICAgICAgICAgIGluaXQucmVzb2x2ZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKCdFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gcmVuZGVyIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGxvZy5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpbml0UmVuZGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRldlNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAgIC8vIHdyaXRlIHRvIG1lbW9yeSBmaWxlc3lzdGVtIHNvIHdlIGNhbiBpbXBvcnRcbiAgICB7XG4gICAgICAuLi53ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIsXG4gICAgICBkZXZNaWRkbGV3YXJlOiB7XG4gICAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdPy5kZXZTZXJ2ZXI/LmRldk1pZGRsZXdhcmUsXG4gICAgICAgIG91dHB1dEZpbGVTeXN0ZW06IHtcbiAgICAgICAgICAuLi5mcyxcbiAgICAgICAgICBqb2luOiBwYXRoLmpvaW4gYXMgYW55LFxuICAgICAgICB9IGFzIGFueSBhcyB0eXBlb2YgZnMsXG4gICAgICB9LFxuICAgICAgc2V0dXBNaWRkbGV3YXJlczogKG1pZGRsZXdhcmVzLCBkZXZTZXJ2ZXIpID0+IHtcbiAgICAgICAgaWYgKCFkZXZTZXJ2ZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dlYnBhY2stZGV2LXNlcnZlciBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3RoZXJSb3V0ZXMgPSBbXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCxcbiAgICAgICAgICAuLi5PYmplY3Qua2V5cyh3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXI/LnByb3h5ID8/IHt9KSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gc2VydmUgU1NSIGZvciBub24tV0VCUEFDS19QVUJMSUNfUEFUSFxuICAgICAgICBkZXZTZXJ2ZXIuYXBwPy5nZXQoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgXig/ISR7b3RoZXJSb3V0ZXMuam9pbignfCcpfSlgKSxcbiAgICAgICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICAgICAgaWYgKHJlcS51cmwuZW5kc1dpdGgoJ2Zhdmljb24uaWNvJykpIHtcbiAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICAgICAgcmVzLnNlbmQoJ25vdCBmb3VuZCcpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCcsIGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBhd2FpdCByZW5kZXIocmVxLCByZXMpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXI/LnNldHVwTWlkZGxld2FyZXMpIHtcbiAgICAgICAgICByZXR1cm4gd2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyLnNldHVwTWlkZGxld2FyZXMoXG4gICAgICAgICAgICBtaWRkbGV3YXJlcyxcbiAgICAgICAgICAgIGRldlNlcnZlcixcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1pZGRsZXdhcmVzO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbXBpbGVyLFxuICApO1xuICBjb25zdCBydW5TZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZGV2U2VydmVyLnN0YXJ0KCk7XG4gICAgZGV2U2VydmVyLmNvbXBpbGVyLmhvb2tzLmRvbmUudGFwKFxuICAgICAgJ0FuYW5zaSBTZXJ2ZXInLFxuICAgICAgKG11bHRpU3RhdHM6IHdlYnBhY2suTXVsdGlTdGF0cyB8IHdlYnBhY2suU3RhdHMpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aVN0YXRzKSB7XG4gICAgICAgICAgbG9nLmVycm9yKCdzdGF0cyBub3Qgc2VuZCcpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIU9iamVjdC5oYXNPd24obXVsdGlTdGF0cywgJ3N0YXRzJykpIHJldHVybjtcbiAgICAgICAgaWYgKChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbXBvcnRSZW5kZXIoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0cyk7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHNlcnZlIGVudHJ5cG9pbnQnKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcignT25seSBjb21waWxlciBvbmUgc3RhdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0b3BTZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbG9nLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICAgIGF3YWl0IGRldlNlcnZlci5zdG9wKCk7XG4gICAgbG9nLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgfTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9nLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBzdG9wU2VydmVyKCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG5cbiAgcnVuU2VydmVyKCk7XG59XG4iXSwi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
226
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwibWFpbiIsIm1vZHVsZSIsImVudHJ5cG9pbnQiLCJwcm9jZXNzIiwiYXJndiIsImNvbnNvbGUiLCJsb2ciLCJleGl0Iiwic3RhcnREZXZTZXJ2ZXIiLCJlbnYiLCJ3ZWJwYWNrQ29uZmlnIiwicmVzb2x2ZSIsInBhdGgiLCJqb2luIiwiY3dkIiwibG9nZ2luZyIsImdldExvZ2dlciIsInZvbHVtZSIsIlZvbHVtZSIsImZzIiwiY3JlYXRlRnNGcm9tVm9sdW1lIiwidWZzIiwidXNlIiwiZGlza0ZzIiwiZnNSZXF1aXJlIiwiY3JlYXRlRnNSZXF1aXJlIiwicmVhZEZpbGUiLCJwcm9taXNpZnkiLCJzZXJ2ZXIiLCJob3RFbnRyeSIsImVudHJ5UGF0aCIsImdlbmVyYXRlZEVudHJ5cG9pbnQiLCJ0bXAiLCJmaWxlU3luYyIsInBvc3RmaXgiLCJ3cml0ZVN5bmMiLCJmZCIsIndlYnBhY2tDb25maWdzIiwiZW50cnlwYXRoIiwibmFtZSIsIm1vZGUiLCJyZXBsYWNlIiwiQlJPV1NFUlNMSVNUX0VOViIsInRhcmdldCIsImNvbXBpbGVyIiwid2VicGFjayIsInNvdXJjZU1hcFN1cHBvcnQiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJvdXRwdXRQYXRoIiwiaGFuZGxlRXJyb3JzIiwiZm4iLCJyZXEiLCJyZXMiLCJuZXh0IiwieCIsImluaXRSZW5kZXIiLCJyZW5kZXIiLCJhcmdzIiwiUHJvbWlzZSIsInB1c2giLCJpbXBvcnRSZW5kZXIiLCJzdGF0cyIsImNsaWVudFN0YXRzIiwiY29tcGlsYXRpb24iLCJlcnJvcnMiLCJsZW5ndGgiLCJlcnJvciIsIkFycmF5IiwiaXNBcnJheSIsImluZm8iLCJjbGllbnRNYW5pZmVzdCIsInNlcnZlckVudHJ5IiwiT2JqZWN0Iiwia2V5cyIsImNhY2hlIiwiZm9yRWFjaCIsImtleSIsImRlZmF1bHQiLCJiaW5kIiwidW5kZWZpbmVkIiwiaW5pdCIsImUiLCJkZXZTZXJ2ZXIiLCJXZWJwYWNrRGV2U2VydmVyIiwiZGV2TWlkZGxld2FyZSIsIm91dHB1dEZpbGVTeXN0ZW0iLCJzZXR1cE1pZGRsZXdhcmVzIiwibWlkZGxld2FyZXMiLCJFcnJvciIsIm90aGVyUm91dGVzIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsInByb3h5IiwiYXBwIiwiZ2V0IiwiUmVnRXhwIiwidXJsIiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic2VuZCIsInNvY2tldCIsIm9uIiwicnVuU2VydmVyIiwic3RhcnQiLCJob29rcyIsImRvbmUiLCJ0YXAiLCJtdWx0aVN0YXRzIiwiaGFzT3duIiwic3RvcFNlcnZlciIsInN0b3AiLCJ3YXJuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnREZXZzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgd2VicGFjaywgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIFZvbHVtZSB9IGZyb20gJ21lbWZzJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHR5cGUgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB0bXAgZnJvbSAndG1wJztcbmltcG9ydCBzb3VyY2VNYXBTdXBwb3J0IGZyb20gJ3NvdXJjZS1tYXAtc3VwcG9ydCc7XG5pbXBvcnQgeyB1ZnMgfSBmcm9tICd1bmlvbmZzJztcbmltcG9ydCBXZWJwYWNrRGV2U2VydmVyIGZyb20gJ3dlYnBhY2stZGV2LXNlcnZlcic7XG5pbXBvcnQgbG9nZ2luZyBmcm9tICd3ZWJwYWNrL2xpYi9sb2dnaW5nL3J1bnRpbWUnO1xuaW1wb3J0IHsgY3JlYXRlRnNSZXF1aXJlIH0gZnJvbSAnZnMtcmVxdWlyZSc7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgQm91bmRSZW5kZXIgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gcnVuIGRpcmVjdGx5IGZyb20gbm9kZVxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5cbiAgaWYgKCFlbnRyeXBvaW50KSB7XG4gICAgY29uc29sZS5sb2coYFVzYWdlOiBzdGFydC1hbmFuc2kgPGVudHJ5cG9pbnQtZmlsZT5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG5cbiAgc3RhcnREZXZTZXJ2ZXIoZW50cnlwb2ludCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0RGV2U2VydmVyKFxuICBlbnRyeXBvaW50OiBzdHJpbmcsXG4gIGVudjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gcmVxdWlyZShyZXF1aXJlLnJlc29sdmUoXG4gICAgLy8gVE9ETzogdXNlIG5vcm1hbCByZXNvbHV0aW9uIGFsZ29yaXRobSB0byBmaW5kIHdlYnBhY2sgZmlsZVxuICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnd2VicGFjay5jb25maWcnKSxcbiAgKSk7XG5cbiAgY29uc3QgbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2FuYW5zaS1kZXZzZXJ2ZXInKTtcblxuICAvLyBTZXQgdXAgaW4gbWVtb3J5IGZpbGVzeXN0ZW1cbiAgY29uc3Qgdm9sdW1lID0gbmV3IFZvbHVtZSgpO1xuICBjb25zdCBmcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2b2x1bWUpO1xuICB1ZnMudXNlKGRpc2tGcykudXNlKGZzIGFzIGFueSk7XG5cbiAgY29uc3QgZnNSZXF1aXJlID0gY3JlYXRlRnNSZXF1aXJlKHVmcyk7XG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KHVmcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICAvLyBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBmaWxlIHNvIHdlIGNhbiBob3QgcmVsb2FkIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uXG4gIGZ1bmN0aW9uIGhvdEVudHJ5KGVudHJ5UGF0aDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy8gQHRzLWlnbm9yZSBmb3Igc29tZSByZWFzb24gaXQncyBub3QgcGlja2luZyB1cCB0aGF0IG90aGVyIG9wdGlvbnMgYXJlIG9wdGlvbmFsXG4gICAgY29uc3QgZ2VuZXJhdGVkRW50cnlwb2ludCA9IHRtcC5maWxlU3luYyh7IHBvc3RmaXg6ICcuanMnIH0pO1xuICAgIGRpc2tGcy53cml0ZVN5bmMoXG4gICAgICBnZW5lcmF0ZWRFbnRyeXBvaW50LmZkLFxuICAgICAgYFxuICBpbXBvcnQgZW50cnkgZnJvbSBcIiR7cGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGVudHJ5UGF0aCl9XCI7XG5cbiAgaWYgKG1vZHVsZS5ob3QpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpO1xuICB9XG5cbiAgZXhwb3J0IGRlZmF1bHQgZW50cnk7XG4gICAgYCxcbiAgICApO1xuICAgIHJldHVybiBnZW5lcmF0ZWRFbnRyeXBvaW50O1xuICB9XG5cbiAgY29uc3Qgd2VicGFja0NvbmZpZ3MgPSBbXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGhvdEVudHJ5KGVudHJ5cG9pbnQpLm5hbWUsXG4gICAgICAgIG5hbWU6ICdjbGllbnQnLFxuICAgICAgfSxcbiAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICksXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGVudHJ5cG9pbnQucmVwbGFjZSgnLnRzeCcsICcuc2VydmVyLnRzeCcpLFxuICAgICAgICBuYW1lOiAnc2VydmVyJyxcbiAgICAgICAgQlJPV1NFUlNMSVNUX0VOVjogJ2N1cnJlbnQgbm9kZScsXG4gICAgICB9LFxuICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnLCB0YXJnZXQ6ICdub2RlJyB9LFxuICAgICksXG4gIF0gYXMgY29uc3Q7XG5cbiAgLy8gaW5pdGlhbGl6ZSB0aGUgd2VicGFjayBjb21waWxlclxuICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG4gIHNvdXJjZU1hcFN1cHBvcnQuaW5zdGFsbCh7IGhvb2tSZXF1aXJlOiB0cnVlIH0pO1xuXG4gIGZ1bmN0aW9uIGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0czogd2VicGFjay5TdGF0cykge1xuICAgIGNvbnN0IHNlcnZlckpzb24gPSBzZXJ2ZXJTdGF0cy50b0pzb24oeyBhc3NldHM6IHRydWUgfSk7XG4gICAgcmV0dXJuIHBhdGguam9pbihzZXJ2ZXJKc29uLm91dHB1dFBhdGggPz8gJycsICdzZXJ2ZXIuanMnKTtcbiAgfVxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbGV0IGluaXRSZW5kZXI6XG4gICAgfCB7IGFyZ3M6IFBhcmFtZXRlcnM8Qm91bmRSZW5kZXI+OyByZXNvbHZlOiAoKSA9PiB2b2lkIH1bXVxuICAgIHwgdW5kZWZpbmVkID0gW107XG4gIGxldCByZW5kZXI6IEJvdW5kUmVuZGVyID0gKC4uLmFyZ3MpID0+XG4gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBpbml0UmVuZGVyPy5wdXNoKHsgYXJncywgcmVzb2x2ZSB9KTtcbiAgICB9KTtcblxuICBmdW5jdGlvbiBpbXBvcnRSZW5kZXIoc3RhdHM6IHdlYnBhY2suU3RhdHNbXSkge1xuICAgIGNvbnN0IFtjbGllbnRTdGF0cywgc2VydmVyU3RhdHNdID0gc3RhdHM7XG4gICAgaWYgKFxuICAgICAgY2xpZW50U3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aCB8fFxuICAgICAgc2VydmVyU3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aFxuICAgICkge1xuICAgICAgbG9nLmVycm9yKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJyArIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgICBsb2cuZXJyb3IoJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOiAnICsgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAgIC8vIGZpcnN0IHRpbWUsIHJhdGhlciB0aGFuIHJlLXJlbmRlclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgIH1cbiAgICAgIGxvZy5lcnJvcignQWJvdmUgY29tcGlsZXIgZXJyb3JzIGJsb2NraW5nIHJlbG9hZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuaW5mbygnTGF1bmNoaW5nIFNTUicpO1xuICAgIH1cblxuICAgIC8vIEFTU0VUU1xuICAgIGNvbnN0IGNsaWVudE1hbmlmZXN0ID0gY2xpZW50U3RhdHMudG9Kc29uKCk7XG5cbiAgICBjb25zdCBzZXJ2ZXJFbnRyeSA9IGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cyk7XG4gICAgLy8gcmVsb2FkIG1vZHVsZXNcbiAgICBPYmplY3Qua2V5cyhmc1JlcXVpcmUuY2FjaGUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGRlbGV0ZSBmc1JlcXVpcmUuY2FjaGVba2V5XTtcbiAgICB9KTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIHJlbmRlciA9IChmc1JlcXVpcmUoc2VydmVyRW50cnkpIGFzIGFueSkuZGVmYXVsdC5iaW5kKFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xpZW50TWFuaWZlc3QsXG4gICAgKTtcbiAgICAvLyBTRVJWRVIgU0lERSBFTlRSWVBPSU5UXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgIGluaXRSZW5kZXIuZm9yRWFjaChhc3luYyBpbml0ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2cuaW5mbygnUmVzb2x2aW5nIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlciguLi5pbml0LmFyZ3MpO1xuICAgICAgICAgIGluaXQucmVzb2x2ZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKCdFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gcmVuZGVyIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGxvZy5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpbml0UmVuZGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRldlNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAgIC8vIHdyaXRlIHRvIG1lbW9yeSBmaWxlc3lzdGVtIHNvIHdlIGNhbiBpbXBvcnRcbiAgICB7XG4gICAgICAuLi53ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIsXG4gICAgICBkZXZNaWRkbGV3YXJlOiB7XG4gICAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdPy5kZXZTZXJ2ZXI/LmRldk1pZGRsZXdhcmUsXG4gICAgICAgIG91dHB1dEZpbGVTeXN0ZW06IHtcbiAgICAgICAgICAuLi5mcyxcbiAgICAgICAgICBqb2luOiBwYXRoLmpvaW4gYXMgYW55LFxuICAgICAgICB9IGFzIGFueSBhcyB0eXBlb2YgZnMsXG4gICAgICB9LFxuICAgICAgc2V0dXBNaWRkbGV3YXJlczogKG1pZGRsZXdhcmVzLCBkZXZTZXJ2ZXIpID0+IHtcbiAgICAgICAgaWYgKCFkZXZTZXJ2ZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dlYnBhY2stZGV2LXNlcnZlciBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3RoZXJSb3V0ZXMgPSBbXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCxcbiAgICAgICAgICAuLi5PYmplY3Qua2V5cyh3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXI/LnByb3h5ID8/IHt9KSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gc2VydmUgU1NSIGZvciBub24tV0VCUEFDS19QVUJMSUNfUEFUSFxuICAgICAgICBkZXZTZXJ2ZXIuYXBwPy5nZXQoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgXig/ISR7b3RoZXJSb3V0ZXMuam9pbignfCcpfSlgKSxcbiAgICAgICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICAgICAgaWYgKHJlcS51cmwuZW5kc1dpdGgoJ2Zhdmljb24uaWNvJykpIHtcbiAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICAgICAgcmVzLnNlbmQoJ25vdCBmb3VuZCcpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCcsIGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBhd2FpdCByZW5kZXIocmVxLCByZXMpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXI/LnNldHVwTWlkZGxld2FyZXMpIHtcbiAgICAgICAgICByZXR1cm4gd2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyLnNldHVwTWlkZGxld2FyZXMoXG4gICAgICAgICAgICBtaWRkbGV3YXJlcyxcbiAgICAgICAgICAgIGRldlNlcnZlcixcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1pZGRsZXdhcmVzO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbXBpbGVyLFxuICApO1xuICBjb25zdCBydW5TZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZGV2U2VydmVyLnN0YXJ0KCk7XG4gICAgZGV2U2VydmVyLmNvbXBpbGVyLmhvb2tzLmRvbmUudGFwKFxuICAgICAgJ0FuYW5zaSBTZXJ2ZXInLFxuICAgICAgKG11bHRpU3RhdHM6IHdlYnBhY2suTXVsdGlTdGF0cyB8IHdlYnBhY2suU3RhdHMpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aVN0YXRzKSB7XG4gICAgICAgICAgbG9nLmVycm9yKCdzdGF0cyBub3Qgc2VuZCcpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIU9iamVjdC5oYXNPd24obXVsdGlTdGF0cywgJ3N0YXRzJykpIHJldHVybjtcbiAgICAgICAgaWYgKChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbXBvcnRSZW5kZXIoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0cyk7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHNlcnZlIGVudHJ5cG9pbnQnKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcignT25seSBjb21waWxlciBvbmUgc3RhdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0b3BTZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbG9nLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICAgIGF3YWl0IGRldlNlcnZlci5zdG9wKCk7XG4gICAgbG9nLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgfTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9nLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBzdG9wU2VydmVyKCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG5cbiAgcnVuU2VydmVyKCk7XG59XG4iXSwi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
@@ -1,9 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = Document;
6
- var _jsx2 = _interopRequireDefault(require("@babel/runtime/helpers/jsx"));
6
+ var _jsx2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/jsx"));
7
+ require("core-js/modules/web.dom-collections.iterator.js");
8
+ require("core-js/modules/esnext.async-iterator.map.js");
9
+ require("core-js/modules/esnext.iterator.map.js");
10
+ require("core-js/modules/esnext.async-iterator.filter.js");
11
+ require("core-js/modules/esnext.iterator.constructor.js");
12
+ require("core-js/modules/esnext.iterator.filter.js");
13
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
7
14
  var _react = _interopRequireDefault(require("react"));
8
15
  var _csp = require("./csp");
9
16
  var _process$env$WEBPACK_;
@@ -20,13 +27,14 @@ function Document({
20
27
  }) {
21
28
  let cspMeta = null;
22
29
  if (csPolicy) {
30
+ var _context;
23
31
  // add nonce to policy
24
32
  const policy = {
25
33
  ...csPolicy
26
34
  };
27
35
  if (nonce && (
28
36
  // nonces negate 'unsafe-inline' so do not add it if that directive exists
29
- !policy['script-src'] || !policy['script-src'].includes("'unsafe-inline'"))) {
37
+ !policy['script-src'] || !(0, _includes.default)(_context = policy['script-src']).call(_context, "'unsafe-inline'"))) {
30
38
  if (typeof policy['script-src'] === 'string') {
31
39
  policy['script-src'] = [policy['script-src'], `'nonce-${nonce}'`];
32
40
  } else {
@@ -67,4 +75,4 @@ Document.defaultProps = {
67
75
  rootId: 'anansi-root',
68
76
  scripts: null
69
77
  };
70
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudCIsImFzc2V0cyIsImhlYWQiLCJjaGlsZHJlbiIsInRpdGxlIiwicm9vdElkIiwiY2hhclNldCIsImNzUG9saWN5Iiwibm9uY2UiLCJzY3JpcHRzIiwiY3NwTWV0YSIsInBvbGljeSIsImluY2x1ZGVzIiwiYnVpbGRQb2xpY3kiLCJtYXAiLCJhc3NldCIsImkiLCJmaWx0ZXIiLCJocmVmIiwiZW5kc1dpdGgiLCJkZWZhdWx0UHJvcHMiLCJwcm9jZXNzIiwiZW52IiwiV0VCUEFDS19QVUJMSUNfUEFUSCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvRG9jdW1lbnRDb21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUG9saWN5IH0gZnJvbSAnLi9jc3AnO1xuaW1wb3J0IHsgYnVpbGRQb2xpY3kgfSBmcm9tICcuL2NzcCc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIGFzc2V0czogeyBocmVmOiBzdHJpbmc7IGFzPzogc3RyaW5nOyByZWw/OiBzdHJpbmcgfVtdO1xuICBoZWFkOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgcm9vdElkOiBzdHJpbmc7XG4gIGNoYXJTZXQ6IHN0cmluZztcbiAgY3NQb2xpY3k/OiBQb2xpY3k7XG4gIG5vbmNlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRG9jdW1lbnQoe1xuICBhc3NldHMsXG4gIGhlYWQsXG4gIGNoaWxkcmVuLFxuICB0aXRsZSxcbiAgcm9vdElkLFxuICBjaGFyU2V0LFxuICBjc1BvbGljeSxcbiAgbm9uY2UsXG4gIHNjcmlwdHMsXG59OiBQcm9wcykge1xuICBsZXQgY3NwTWV0YTogbnVsbCB8IFJlYWN0LlJlYWN0Tm9kZSA9IG51bGw7XG4gIGlmIChjc1BvbGljeSkge1xuICAgIC8vIGFkZCBub25jZSB0byBwb2xpY3lcbiAgICBjb25zdCBwb2xpY3kgPSB7XG4gICAgICAuLi5jc1BvbGljeSxcbiAgICB9O1xuICAgIGlmIChcbiAgICAgIG5vbmNlICYmXG4gICAgICAvLyBub25jZXMgbmVnYXRlICd1bnNhZmUtaW5saW5lJyBzbyBkbyBub3QgYWRkIGl0IGlmIHRoYXQgZGlyZWN0aXZlIGV4aXN0c1xuICAgICAgKCFwb2xpY3lbJ3NjcmlwdC1zcmMnXSB8fFxuICAgICAgICAhcG9saWN5WydzY3JpcHQtc3JjJ10uaW5jbHVkZXMoXCIndW5zYWZlLWlubGluZSdcIikpXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIHBvbGljeVsnc2NyaXB0LXNyYyddID09PSAnc3RyaW5nJykge1xuICAgICAgICBwb2xpY3lbJ3NjcmlwdC1zcmMnXSA9IFtwb2xpY3lbJ3NjcmlwdC1zcmMnXSwgYCdub25jZS0ke25vbmNlfSdgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvbGljeVsnc2NyaXB0LXNyYyddID0gWy4uLnBvbGljeVsnc2NyaXB0LXNyYyddLCBgJ25vbmNlLSR7bm9uY2V9J2BdO1xuICAgICAgfVxuICAgIH1cbiAgICBjc3BNZXRhID0gKFxuICAgICAgPG1ldGEgaHR0cEVxdWl2PVwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIiBjb250ZW50PXtidWlsZFBvbGljeShwb2xpY3kpfSAvPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8aHRtbD5cbiAgICAgIDxoZWFkPlxuICAgICAgICA8bWV0YSBjaGFyU2V0PXtjaGFyU2V0fSAvPlxuICAgICAgICB7Y3NwTWV0YX1cbiAgICAgICAge2hlYWR9XG4gICAgICAgIHthc3NldHMubWFwKChhc3NldCwgaSkgPT4gKFxuICAgICAgICAgIDxsaW5rIGtleT17aX0gcmVsPVwicHJlbG9hZFwiIHsuLi5hc3NldH0gLz5cbiAgICAgICAgKSl9XG4gICAgICAgIDx0aXRsZT57dGl0bGV9PC90aXRsZT5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8ZGl2IGlkPXtyb290SWR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICAge3NjcmlwdHN9XG4gICAgICAgIHthc3NldHNcbiAgICAgICAgICAuZmlsdGVyKCh7IGhyZWYgfSkgPT4gaHJlZi5lbmRzV2l0aCgnLmpzJykpXG4gICAgICAgICAgLm1hcCgoeyBocmVmIH0sIGkpID0+IChcbiAgICAgICAgICAgIDxzY3JpcHQga2V5PXtpfSBzcmM9e2hyZWZ9IGFzeW5jIC8+XG4gICAgICAgICAgKSl9XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICApO1xufVxuRG9jdW1lbnQuZGVmYXVsdFByb3BzID0ge1xuICBoZWFkOiAoXG4gICAgPD5cbiAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiIC8+XG4gICAgICA8bGlua1xuICAgICAgICByZWw9XCJzaG9ydGN1dCBpY29uXCJcbiAgICAgICAgaHJlZj17YCR7cHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCA/PyAnLyd9ZmF2aWNvbi5pY29gfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKSxcbiAgY2hhclNldDogJ3V0Zi04JyxcbiAgcm9vdElkOiAnYW5hbnNpLXJvb3QnLFxuICBzY3JpcHRzOiBudWxsLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBO0FBQW9DO0FBY3JCLFNBQVNBLFFBQVEsQ0FBQztFQUMvQkMsTUFBTTtFQUNOQyxJQUFJO0VBQ0pDLFFBQVE7RUFDUkMsS0FBSztFQUNMQyxNQUFNO0VBQ05DLE9BQU87RUFDUEMsUUFBUTtFQUNSQyxLQUFLO0VBQ0xDO0FBQ0ssQ0FBQyxFQUFFO0VBQ1IsSUFBSUMsT0FBK0IsR0FBRyxJQUFJO0VBQzFDLElBQUlILFFBQVEsRUFBRTtJQUNaO0lBQ0EsTUFBTUksTUFBTSxHQUFHO01BQ2IsR0FBR0o7SUFDTCxDQUFDO0lBQ0QsSUFDRUMsS0FBSztJQUNMO0lBQ0MsQ0FBQ0csTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUNwQixDQUFDQSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUNDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3BEO01BQ0EsSUFBSSxPQUFPRCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssUUFBUSxFQUFFO1FBQzVDQSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQ0EsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFHLFVBQVNILEtBQU0sR0FBRSxDQUFDO01BQ25FLENBQUMsTUFBTTtRQUNMRyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHQSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUcsVUFBU0gsS0FBTSxHQUFFLENBQUM7TUFDdEU7SUFDRjtJQUNBRSxPQUFPLGdCQUNMO01BQU0sU0FBUyxFQUFDLHlCQUF5QjtNQUFDLE9BQU8sRUFBRSxJQUFBRyxnQkFBVyxFQUFDRixNQUFNO0lBQUUsRUFDeEU7RUFDSDtFQUNBLG9CQUNFLG9EQUNFLG9EQUNFO0lBQU0sT0FBTyxFQUFFTDtFQUFRLEVBQUcsRUFDekJJLE9BQU8sRUFDUFIsSUFBSSxFQUNKRCxNQUFNLENBQUNhLEdBQUcsQ0FBQyxDQUFDQyxLQUFLLEVBQUVDLENBQUMsa0JBQ25CO0lBQU0sR0FBRyxFQUFFQSxDQUFFO0lBQUMsR0FBRyxFQUFDLFNBQVM7SUFBQSxHQUFLRDtFQUFLLEVBQ3RDLENBQUMsZUFDRix3Q0FBUVgsS0FBSyxDQUFTLENBQ2pCLGVBQ1Asb0RBQ0U7SUFBSyxFQUFFLEVBQUVDO0VBQU8sV0FBRUYsUUFBUSxDQUFPLEVBQ2hDTSxPQUFPLEVBQ1BSLE1BQU0sQ0FDSmdCLE1BQU0sQ0FBQyxDQUFDO0lBQUVDO0VBQUssQ0FBQyxLQUFLQSxJQUFJLENBQUNDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxQ0wsR0FBRyxDQUFDLENBQUM7SUFBRUk7RUFBSyxDQUFDLEVBQUVGLENBQUMsa0JBQ2Y7SUFBZ0IsR0FBRyxFQUFFRSxJQUFLO0lBQUMsS0FBSztFQUFBLEdBQW5CRixDQUFDLENBQ2YsQ0FBQyxDQUNDLENBQ0Y7QUFFWDtBQUNBaEIsUUFBUSxDQUFDb0IsWUFBWSxHQUFHO0VBQ3RCbEIsSUFBSSxlQUNGLHlFQUNFO0lBQU0sSUFBSSxFQUFDLFVBQVU7SUFBQyxPQUFPLEVBQUM7RUFBcUMsRUFBRyxlQUN0RTtJQUNFLEdBQUcsRUFBQyxlQUFlO0lBQ25CLElBQUksRUFBRyw0QkFBRW1CLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxtQkFBbUIsb0NBQUksR0FBSTtFQUFhLEVBQzdELENBRUw7RUFDRGpCLE9BQU8sRUFBRSxPQUFPO0VBQ2hCRCxNQUFNLEVBQUUsYUFBYTtFQUNyQkksT0FBTyxFQUFFO0FBQ1gsQ0FBQyJ9
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudCIsImFzc2V0cyIsImhlYWQiLCJjaGlsZHJlbiIsInRpdGxlIiwicm9vdElkIiwiY2hhclNldCIsImNzUG9saWN5Iiwibm9uY2UiLCJzY3JpcHRzIiwiY3NwTWV0YSIsInBvbGljeSIsImJ1aWxkUG9saWN5IiwibWFwIiwiYXNzZXQiLCJpIiwiZmlsdGVyIiwiaHJlZiIsImVuZHNXaXRoIiwiZGVmYXVsdFByb3BzIiwicHJvY2VzcyIsImVudiIsIldFQlBBQ0tfUFVCTElDX1BBVEgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL0RvY3VtZW50Q29tcG9uZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBvbGljeSB9IGZyb20gJy4vY3NwJztcbmltcG9ydCB7IGJ1aWxkUG9saWN5IH0gZnJvbSAnLi9jc3AnO1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICBhc3NldHM6IHsgaHJlZjogc3RyaW5nOyBhcz86IHN0cmluZzsgcmVsPzogc3RyaW5nIH1bXTtcbiAgaGVhZDogUmVhY3QuUmVhY3ROb2RlO1xuICBzY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJvb3RJZDogc3RyaW5nO1xuICBjaGFyU2V0OiBzdHJpbmc7XG4gIGNzUG9saWN5PzogUG9saWN5O1xuICBub25jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERvY3VtZW50KHtcbiAgYXNzZXRzLFxuICBoZWFkLFxuICBjaGlsZHJlbixcbiAgdGl0bGUsXG4gIHJvb3RJZCxcbiAgY2hhclNldCxcbiAgY3NQb2xpY3ksXG4gIG5vbmNlLFxuICBzY3JpcHRzLFxufTogUHJvcHMpIHtcbiAgbGV0IGNzcE1ldGE6IG51bGwgfCBSZWFjdC5SZWFjdE5vZGUgPSBudWxsO1xuICBpZiAoY3NQb2xpY3kpIHtcbiAgICAvLyBhZGQgbm9uY2UgdG8gcG9saWN5XG4gICAgY29uc3QgcG9saWN5ID0ge1xuICAgICAgLi4uY3NQb2xpY3ksXG4gICAgfTtcbiAgICBpZiAoXG4gICAgICBub25jZSAmJlxuICAgICAgLy8gbm9uY2VzIG5lZ2F0ZSAndW5zYWZlLWlubGluZScgc28gZG8gbm90IGFkZCBpdCBpZiB0aGF0IGRpcmVjdGl2ZSBleGlzdHNcbiAgICAgICghcG9saWN5WydzY3JpcHQtc3JjJ10gfHxcbiAgICAgICAgIXBvbGljeVsnc2NyaXB0LXNyYyddLmluY2x1ZGVzKFwiJ3Vuc2FmZS1pbmxpbmUnXCIpKVxuICAgICkge1xuICAgICAgaWYgKHR5cGVvZiBwb2xpY3lbJ3NjcmlwdC1zcmMnXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbcG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb2xpY3lbJ3NjcmlwdC1zcmMnXSA9IFsuLi5wb2xpY3lbJ3NjcmlwdC1zcmMnXSwgYCdub25jZS0ke25vbmNlfSdgXTtcbiAgICAgIH1cbiAgICB9XG4gICAgY3NwTWV0YSA9IChcbiAgICAgIDxtZXRhIGh0dHBFcXVpdj1cIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIgY29udGVudD17YnVpbGRQb2xpY3kocG9saWN5KX0gLz5cbiAgICApO1xuICB9XG4gIHJldHVybiAoXG4gICAgPGh0bWw+XG4gICAgICA8aGVhZD5cbiAgICAgICAgPG1ldGEgY2hhclNldD17Y2hhclNldH0gLz5cbiAgICAgICAge2NzcE1ldGF9XG4gICAgICAgIHtoZWFkfVxuICAgICAgICB7YXNzZXRzLm1hcCgoYXNzZXQsIGkpID0+IChcbiAgICAgICAgICA8bGluayBrZXk9e2l9IHJlbD1cInByZWxvYWRcIiB7Li4uYXNzZXR9IC8+XG4gICAgICAgICkpfVxuICAgICAgICA8dGl0bGU+e3RpdGxlfTwvdGl0bGU+XG4gICAgICA8L2hlYWQ+XG4gICAgICA8Ym9keT5cbiAgICAgICAgPGRpdiBpZD17cm9vdElkfT57Y2hpbGRyZW59PC9kaXY+XG4gICAgICAgIHtzY3JpcHRzfVxuICAgICAgICB7YXNzZXRzXG4gICAgICAgICAgLmZpbHRlcigoeyBocmVmIH0pID0+IGhyZWYuZW5kc1dpdGgoJy5qcycpKVxuICAgICAgICAgIC5tYXAoKHsgaHJlZiB9LCBpKSA9PiAoXG4gICAgICAgICAgICA8c2NyaXB0IGtleT17aX0gc3JjPXtocmVmfSBhc3luYyAvPlxuICAgICAgICAgICkpfVxuICAgICAgPC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbkRvY3VtZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgaGVhZDogKFxuICAgIDw+XG4gICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTFcIiAvPlxuICAgICAgPGxpbmtcbiAgICAgICAgcmVsPVwic2hvcnRjdXQgaWNvblwiXG4gICAgICAgIGhyZWY9e2Ake3Byb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEggPz8gJy8nfWZhdmljb24uaWNvYH1cbiAgICAgIC8+XG4gICAgPC8+XG4gICksXG4gIGNoYXJTZXQ6ICd1dGYtOCcsXG4gIHJvb3RJZDogJ2FuYW5zaS1yb290JyxcbiAgc2NyaXB0czogbnVsbCxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFBb0M7QUFjckIsU0FBU0EsUUFBUSxDQUFDO0VBQy9CQyxNQUFNO0VBQ05DLElBQUk7RUFDSkMsUUFBUTtFQUNSQyxLQUFLO0VBQ0xDLE1BQU07RUFDTkMsT0FBTztFQUNQQyxRQUFRO0VBQ1JDLEtBQUs7RUFDTEM7QUFDSyxDQUFDLEVBQUU7RUFDUixJQUFJQyxPQUErQixHQUFHLElBQUk7RUFDMUMsSUFBSUgsUUFBUSxFQUFFO0lBQUE7SUFDWjtJQUNBLE1BQU1JLE1BQU0sR0FBRztNQUNiLEdBQUdKO0lBQ0wsQ0FBQztJQUNELElBQ0VDLEtBQUs7SUFDTDtJQUNDLENBQUNHLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFDcEIsQ0FBQyxrQ0FBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxpQkFBVSxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3BEO01BQ0EsSUFBSSxPQUFPQSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssUUFBUSxFQUFFO1FBQzVDQSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQ0EsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFHLFVBQVNILEtBQU0sR0FBRSxDQUFDO01BQ25FLENBQUMsTUFBTTtRQUNMRyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHQSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUcsVUFBU0gsS0FBTSxHQUFFLENBQUM7TUFDdEU7SUFDRjtJQUNBRSxPQUFPLGdCQUNMO01BQU0sU0FBUyxFQUFDLHlCQUF5QjtNQUFDLE9BQU8sRUFBRSxJQUFBRSxnQkFBVyxFQUFDRCxNQUFNO0lBQUUsRUFDeEU7RUFDSDtFQUNBLG9CQUNFLG9EQUNFLG9EQUNFO0lBQU0sT0FBTyxFQUFFTDtFQUFRLEVBQUcsRUFDekJJLE9BQU8sRUFDUFIsSUFBSSxFQUNKRCxNQUFNLENBQUNZLEdBQUcsQ0FBQyxDQUFDQyxLQUFLLEVBQUVDLENBQUMsa0JBQ25CO0lBQU0sR0FBRyxFQUFFQSxDQUFFO0lBQUMsR0FBRyxFQUFDLFNBQVM7SUFBQSxHQUFLRDtFQUFLLEVBQ3RDLENBQUMsZUFDRix3Q0FBUVYsS0FBSyxDQUFTLENBQ2pCLGVBQ1Asb0RBQ0U7SUFBSyxFQUFFLEVBQUVDO0VBQU8sV0FBRUYsUUFBUSxDQUFPLEVBQ2hDTSxPQUFPLEVBQ1BSLE1BQU0sQ0FDSmUsTUFBTSxDQUFDLENBQUM7SUFBRUM7RUFBSyxDQUFDLEtBQUtBLElBQUksQ0FBQ0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzFDTCxHQUFHLENBQUMsQ0FBQztJQUFFSTtFQUFLLENBQUMsRUFBRUYsQ0FBQyxrQkFDZjtJQUFnQixHQUFHLEVBQUVFLElBQUs7SUFBQyxLQUFLO0VBQUEsR0FBbkJGLENBQUMsQ0FDZixDQUFDLENBQ0MsQ0FDRjtBQUVYO0FBQ0FmLFFBQVEsQ0FBQ21CLFlBQVksR0FBRztFQUN0QmpCLElBQUksZUFDRix5RUFDRTtJQUFNLElBQUksRUFBQyxVQUFVO0lBQUMsT0FBTyxFQUFDO0VBQXFDLEVBQUcsZUFDdEU7SUFDRSxHQUFHLEVBQUMsZUFBZTtJQUNuQixJQUFJLEVBQUcsNEJBQUVrQixPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsbUJBQW1CLG9DQUFJLEdBQUk7RUFBYSxFQUM3RCxDQUVMO0VBQ0RoQixPQUFPLEVBQUUsT0FBTztFQUNoQkQsTUFBTSxFQUFFLGFBQWE7RUFDckJJLE9BQU8sRUFBRTtBQUNYLENBQUMifQ==
package/lib/spouts/csp.js CHANGED
@@ -1,7 +1,33 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.buildPolicy = buildPolicy;
6
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
7
+ require("core-js/modules/esnext.async-iterator.map.js");
8
+ require("core-js/modules/esnext.iterator.map.js");
9
+ require("core-js/modules/esnext.async-iterator.filter.js");
10
+ require("core-js/modules/esnext.iterator.constructor.js");
11
+ require("core-js/modules/esnext.iterator.filter.js");
12
+ require("core-js/modules/web.dom-collections.iterator.js");
13
+ require("core-js/modules/esnext.set.add-all.js");
14
+ require("core-js/modules/esnext.set.delete-all.js");
15
+ require("core-js/modules/esnext.set.difference.js");
16
+ require("core-js/modules/esnext.set.every.js");
17
+ require("core-js/modules/esnext.set.filter.js");
18
+ require("core-js/modules/esnext.set.find.js");
19
+ require("core-js/modules/esnext.set.intersection.js");
20
+ require("core-js/modules/esnext.set.is-disjoint-from.js");
21
+ require("core-js/modules/esnext.set.is-subset-of.js");
22
+ require("core-js/modules/esnext.set.is-superset-of.js");
23
+ require("core-js/modules/esnext.set.join.js");
24
+ require("core-js/modules/esnext.set.map.js");
25
+ require("core-js/modules/esnext.set.reduce.js");
26
+ require("core-js/modules/esnext.set.some.js");
27
+ require("core-js/modules/esnext.set.symmetric-difference.js");
28
+ require("core-js/modules/esnext.set.union.js");
29
+ require("core-js/modules/es.regexp.exec.js");
30
+ require("core-js/modules/es.string.replace.js");
5
31
  // TODO: memoize this
6
32
  function buildPolicy(policyObj) {
7
33
  return Object.keys(policyObj).map(key => {
@@ -9,11 +35,11 @@ function buildPolicy(policyObj) {
9
35
 
10
36
  // move strict dynamic to the end of the policy if it exists to be backwards compatible with csp2
11
37
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#strict-dynamic
12
- if (typeof val === 'string' && val.includes("'strict-dynamic'")) {
38
+ if (typeof val === 'string' && (0, _includes.default)(val).call(val, "'strict-dynamic'")) {
13
39
  const newVal = `${val.replace(/\s?'strict-dynamic'\s?/gi, ' ').trim()} 'strict-dynamic'`;
14
40
  return `${key} ${newVal}`;
15
41
  }
16
42
  return `${key} ${val}`;
17
43
  }).join('; ');
18
44
  }
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZFBvbGljeSIsInBvbGljeU9iaiIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJTZXQiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJ2Iiwiam9pbiIsImluY2x1ZGVzIiwibmV3VmFsIiwicmVwbGFjZSIsInRyaW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL2NzcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFBvbGljeSB7XG4gIFtkaXJlY3RpdmU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vLyBUT0RPOiBtZW1vaXplIHRoaXNcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBvbGljeShwb2xpY3lPYmo6IFBvbGljeSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocG9saWN5T2JqKVxuICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IEFycmF5LmlzQXJyYXkocG9saWN5T2JqW2tleV0pXG4gICAgICAgID8gWy4uLm5ldyBTZXQocG9saWN5T2JqW2tleV0pLnZhbHVlcygpXS5maWx0ZXIodiA9PiB2KS5qb2luKCcgJylcbiAgICAgICAgOiBwb2xpY3lPYmpba2V5XTtcblxuICAgICAgLy8gbW92ZSBzdHJpY3QgZHluYW1pYyB0byB0aGUgZW5kIG9mIHRoZSBwb2xpY3kgaWYgaXQgZXhpc3RzIHRvIGJlIGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGggY3NwMlxuICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9IZWFkZXJzL0NvbnRlbnQtU2VjdXJpdHktUG9saWN5L3NjcmlwdC1zcmMjc3RyaWN0LWR5bmFtaWNcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuaW5jbHVkZXMoXCInc3RyaWN0LWR5bmFtaWMnXCIpKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IGAke3ZhbFxuICAgICAgICAgIC5yZXBsYWNlKC9cXHM/J3N0cmljdC1keW5hbWljJ1xccz8vZ2ksICcgJylcbiAgICAgICAgICAudHJpbSgpfSAnc3RyaWN0LWR5bmFtaWMnYDtcbiAgICAgICAgcmV0dXJuIGAke2tleX0gJHtuZXdWYWx9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke2tleX0gJHt2YWx9YDtcbiAgICB9KVxuICAgIC5qb2luKCc7ICcpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBSUE7QUFDTyxTQUFTQSxXQUFXLENBQUNDLFNBQWlCLEVBQUU7RUFDN0MsT0FBT0MsTUFBTSxDQUFDQyxJQUFJLENBQUNGLFNBQVMsQ0FBQyxDQUMxQkcsR0FBRyxDQUFDQyxHQUFHLElBQUk7SUFDVixNQUFNQyxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDUCxTQUFTLENBQUNJLEdBQUcsQ0FBQyxDQUFDLEdBQ3JDLENBQUMsR0FBRyxJQUFJSSxHQUFHLENBQUNSLFNBQVMsQ0FBQ0ksR0FBRyxDQUFDLENBQUMsQ0FBQ0ssTUFBTSxFQUFFLENBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxDQUFDLElBQUlBLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQzlEWixTQUFTLENBQUNJLEdBQUcsQ0FBQzs7SUFFbEI7SUFDQTtJQUNBLElBQUksT0FBT0MsR0FBRyxLQUFLLFFBQVEsSUFBSUEsR0FBRyxDQUFDUSxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtNQUMvRCxNQUFNQyxNQUFNLEdBQUksR0FBRVQsR0FBRyxDQUNsQlUsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEdBQUcsQ0FBQyxDQUN4Q0MsSUFBSSxFQUFHLG1CQUFrQjtNQUM1QixPQUFRLEdBQUVaLEdBQUksSUFBR1UsTUFBTyxFQUFDO0lBQzNCO0lBRUEsT0FBUSxHQUFFVixHQUFJLElBQUdDLEdBQUksRUFBQztFQUN4QixDQUFDLENBQUMsQ0FDRE8sSUFBSSxDQUFDLElBQUksQ0FBQztBQUNmIn0=
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZFBvbGljeSIsInBvbGljeU9iaiIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJTZXQiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJ2Iiwiam9pbiIsIm5ld1ZhbCIsInJlcGxhY2UiLCJ0cmltIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9jc3AudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQb2xpY3kge1xuICBbZGlyZWN0aXZlOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLy8gVE9ETzogbWVtb2l6ZSB0aGlzXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQb2xpY3kocG9saWN5T2JqOiBQb2xpY3kpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHBvbGljeU9iailcbiAgICAubWFwKGtleSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBBcnJheS5pc0FycmF5KHBvbGljeU9ialtrZXldKVxuICAgICAgICA/IFsuLi5uZXcgU2V0KHBvbGljeU9ialtrZXldKS52YWx1ZXMoKV0uZmlsdGVyKHYgPT4gdikuam9pbignICcpXG4gICAgICAgIDogcG9saWN5T2JqW2tleV07XG5cbiAgICAgIC8vIG1vdmUgc3RyaWN0IGR5bmFtaWMgdG8gdGhlIGVuZCBvZiB0aGUgcG9saWN5IGlmIGl0IGV4aXN0cyB0byBiZSBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIGNzcDJcbiAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvSGVhZGVycy9Db250ZW50LVNlY3VyaXR5LVBvbGljeS9zY3JpcHQtc3JjI3N0cmljdC1keW5hbWljXG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgdmFsLmluY2x1ZGVzKFwiJ3N0cmljdC1keW5hbWljJ1wiKSkge1xuICAgICAgICBjb25zdCBuZXdWYWwgPSBgJHt2YWxcbiAgICAgICAgICAucmVwbGFjZSgvXFxzPydzdHJpY3QtZHluYW1pYydcXHM/L2dpLCAnICcpXG4gICAgICAgICAgLnRyaW0oKX0gJ3N0cmljdC1keW5hbWljJ2A7XG4gICAgICAgIHJldHVybiBgJHtrZXl9ICR7bmV3VmFsfWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtrZXl9ICR7dmFsfWA7XG4gICAgfSlcbiAgICAuam9pbignOyAnKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7QUFDTyxTQUFTQSxXQUFXLENBQUNDLFNBQWlCLEVBQUU7RUFDN0MsT0FBT0MsTUFBTSxDQUFDQyxJQUFJLENBQUNGLFNBQVMsQ0FBQyxDQUMxQkcsR0FBRyxDQUFDQyxHQUFHLElBQUk7SUFDVixNQUFNQyxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDUCxTQUFTLENBQUNJLEdBQUcsQ0FBQyxDQUFDLEdBQ3JDLENBQUMsR0FBRyxJQUFJSSxHQUFHLENBQUNSLFNBQVMsQ0FBQ0ksR0FBRyxDQUFDLENBQUMsQ0FBQ0ssTUFBTSxFQUFFLENBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxDQUFDLElBQUlBLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQzlEWixTQUFTLENBQUNJLEdBQUcsQ0FBQzs7SUFFbEI7SUFDQTtJQUNBLElBQUksT0FBT0MsR0FBRyxLQUFLLFFBQVEsSUFBSSx1QkFBQUEsR0FBRyxPQUFIQSxHQUFHLEVBQVUsa0JBQWtCLENBQUMsRUFBRTtNQUMvRCxNQUFNUSxNQUFNLEdBQUksR0FBRVIsR0FBRyxDQUNsQlMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEdBQUcsQ0FBQyxDQUN4Q0MsSUFBSSxFQUFHLG1CQUFrQjtNQUM1QixPQUFRLEdBQUVYLEdBQUksSUFBR1MsTUFBTyxFQUFDO0lBQzNCO0lBRUEsT0FBUSxHQUFFVCxHQUFJLElBQUdDLEdBQUksRUFBQztFQUN4QixDQUFDLENBQUMsQ0FDRE8sSUFBSSxDQUFDLElBQUksQ0FBQztBQUNmIn0=