From 76083210eded33932f46ffa1cf538515200bca50 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Thu, 9 Jun 2022 13:10:21 +0200 Subject: [PATCH 001/149] Middleware: remove `req.ua` (#37512) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR moves the internal logic associated with `req.ua` into an explicit method the user should to call to have the same behavior. **before** ```typescript // middleware.ts import { NextRequest, NextResponse } from 'next/server' export function middleware(request: NextRequest) { const url = request.nextUrl const viewport = request.ua.device.type === 'mobile' ? 'mobile' : 'desktop' url.searchParams.set('viewport', viewport) return NextResponse.rewrites(url) } ``` **after** ```typescript // middleware.ts import { NextRequest, NextResponse, userAgent } from 'next/server' export function middleware(request: NextRequest) { const url = request.nextUrl const { device } = userAgent(request) const viewport = device.type === 'mobile' ? 'mobile' : 'desktop' url.searchParams.set('viewport', viewport) return NextResponse.rewrites(url) } ``` This potentially will save the extra 17 kB related to the size of `ua-parser-js` --- errors/manifest.json | 4 ++ errors/middleware-request-page.md | 2 +- errors/middleware-user-agent.md | 34 +++++++++++ packages/next/server.d.ts | 2 + packages/next/server.js | 4 ++ packages/next/server/web/adapter.ts | 8 +-- packages/next/server/web/error.ts | 14 ++++- .../server/web/spec-extension/fetch-event.ts | 6 +- .../next/server/web/spec-extension/request.ts | 50 +--------------- .../server/web/spec-extension/user-agent.ts | 43 +++++++++++++ test/unit/web-runtime/user-agent.test.ts | 60 +++++++++++++++++++ 11 files changed, 169 insertions(+), 58 deletions(-) create mode 100644 errors/middleware-user-agent.md create mode 100644 packages/next/server/web/spec-extension/user-agent.ts create mode 100644 test/unit/web-runtime/user-agent.test.ts diff --git a/errors/manifest.json b/errors/manifest.json index c2273887f959..32bab3a5969c 100644 --- a/errors/manifest.json +++ b/errors/manifest.json @@ -673,6 +673,10 @@ { "title": "middleware-request-page.md", "path": "/errors/middleware-request-page.md" + }, + { + "title": "middleware-user-agent.md", + "path": "/errors/middleware-user-agent.md" } ] } diff --git a/errors/middleware-request-page.md b/errors/middleware-request-page.md index 12b92e2062dd..4bffc2a8740b 100644 --- a/errors/middleware-request-page.md +++ b/errors/middleware-request-page.md @@ -1,4 +1,4 @@ -# Deprecated page into Middleware API +# Removed page from Middleware API #### Why This Error Occurred diff --git a/errors/middleware-user-agent.md b/errors/middleware-user-agent.md new file mode 100644 index 000000000000..0e9bfbceffae --- /dev/null +++ b/errors/middleware-user-agent.md @@ -0,0 +1,34 @@ +# Removed req.ua from Middleware API + +#### Why This Error Occurred + +Your middleware is interacting with `req.ua` and this feature needs to opt-in. + +```typescript +// middleware.ts +import { NextRequest, NextResponse } from 'next/server' + +export function middleware(request: NextRequest) { + const url = request.nextUrl + const viewport = request.ua.device.type === 'mobile' ? 'mobile' : 'desktop' + url.searchParams.set('viewport', viewport) + return NextResponse.rewrites(url) +} +``` + +#### Possible Ways to Fix It + +To parse the user agent, import `userAgent` function from `next/server` and give it your request: + +```typescript +// middleware.ts +import { NextRequest, NextResponse, userAgent } from 'next/server' + +export function middleware(request: NextRequest) { + const url = request.nextUrl + const { device } = userAgent(request) + const viewport = device.type === 'mobile' ? 'mobile' : 'desktop' + url.searchParams.set('viewport', viewport) + return NextResponse.rewrites(url) +} +``` diff --git a/packages/next/server.d.ts b/packages/next/server.d.ts index 1d227e2be044..b0d89eabfa89 100644 --- a/packages/next/server.d.ts +++ b/packages/next/server.d.ts @@ -2,3 +2,5 @@ export { NextFetchEvent } from 'next/dist/server/web/spec-extension/fetch-event' export { NextRequest } from 'next/dist/server/web/spec-extension/request' export { NextResponse } from 'next/dist/server/web/spec-extension/response' export { NextMiddleware } from 'next/dist/server/web/types' +export { userAgentFromString } from 'next/dist/server/web/spec-extension/user-agent' +export { userAgent } from 'next/dist/server/web/spec-extension/user-agent' diff --git a/packages/next/server.js b/packages/next/server.js index 4200066987af..6e0bd09bcbac 100644 --- a/packages/next/server.js +++ b/packages/next/server.js @@ -3,4 +3,8 @@ module.exports = { .NextRequest, NextResponse: require('next/dist/server/web/spec-extension/response') .NextResponse, + userAgentFromString: require('next/dist/server/web/spec-extension/user-agent') + .userAgentFromString, + userAgent: require('next/dist/server/web/spec-extension/user-agent') + .userAgent, } diff --git a/packages/next/server/web/adapter.ts b/packages/next/server/web/adapter.ts index e963c72d7026..45380a72cbf6 100644 --- a/packages/next/server/web/adapter.ts +++ b/packages/next/server/web/adapter.ts @@ -1,6 +1,6 @@ import type { NextMiddleware, RequestData, FetchEventResult } from './types' import type { RequestInit } from './spec-extension/request' -import { DeprecationSignatureError } from './error' +import { PageSignatureError } from './error' import { fromNodeHeaders } from './utils' import { NextFetchEvent } from './spec-extension/fetch-event' import { NextRequest } from './spec-extension/request' @@ -162,14 +162,14 @@ class NextRequestHint extends NextRequest { } get request() { - throw new DeprecationSignatureError({ page: this.sourcePage }) + throw new PageSignatureError({ page: this.sourcePage }) } respondWith() { - throw new DeprecationSignatureError({ page: this.sourcePage }) + throw new PageSignatureError({ page: this.sourcePage }) } waitUntil() { - throw new DeprecationSignatureError({ page: this.sourcePage }) + throw new PageSignatureError({ page: this.sourcePage }) } } diff --git a/packages/next/server/web/error.ts b/packages/next/server/web/error.ts index f94f006195e5..a55f4a6fe882 100644 --- a/packages/next/server/web/error.ts +++ b/packages/next/server/web/error.ts @@ -1,4 +1,4 @@ -export class DeprecationSignatureError extends Error { +export class PageSignatureError extends Error { constructor({ page }: { page: string }) { super(`The middleware "${page}" accepts an async API directly with the form: @@ -11,10 +11,18 @@ export class DeprecationSignatureError extends Error { } } -export class DeprecationPageError extends Error { +export class RemovedPageError extends Error { constructor() { - super(`The request.page has been deprecated in favour of URLPattern. + super(`The request.page has been deprecated in favour of \`URLPattern\`. Read more: https://nextjs.org/docs/messages/middleware-request-page `) } } + +export class RemovedUAError extends Error { + constructor() { + super(`The request.page has been removed in favour of \`userAgent\` function. + Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent + `) + } +} diff --git a/packages/next/server/web/spec-extension/fetch-event.ts b/packages/next/server/web/spec-extension/fetch-event.ts index a3bbc5ed50de..cae460cd08d2 100644 --- a/packages/next/server/web/spec-extension/fetch-event.ts +++ b/packages/next/server/web/spec-extension/fetch-event.ts @@ -1,4 +1,4 @@ -import { DeprecationSignatureError } from '../error' +import { PageSignatureError } from '../error' import { NextRequest } from './request' const responseSymbol = Symbol('response') @@ -42,7 +42,7 @@ export class NextFetchEvent extends FetchEvent { * Read more: https://nextjs.org/docs/messages/middleware-new-signature */ get request() { - throw new DeprecationSignatureError({ + throw new PageSignatureError({ page: this.sourcePage, }) } @@ -53,7 +53,7 @@ export class NextFetchEvent extends FetchEvent { * Read more: https://nextjs.org/docs/messages/middleware-new-signature */ respondWith() { - throw new DeprecationSignatureError({ + throw new PageSignatureError({ page: this.sourcePage, }) } diff --git a/packages/next/server/web/spec-extension/request.ts b/packages/next/server/web/spec-extension/request.ts index e05411a60475..e6d55ba0500b 100644 --- a/packages/next/server/web/spec-extension/request.ts +++ b/packages/next/server/web/spec-extension/request.ts @@ -1,11 +1,8 @@ import type { I18NConfig } from '../../config-shared' import type { RequestData } from '../types' import { NextURL } from '../next-url' -import { isBot } from '../../utils' import { toNodeHeaders, validateURL } from '../utils' -import parseua from 'next/dist/compiled/ua-parser-js' -import { DeprecationPageError } from '../error' - +import { RemovedUAError, RemovedPageError } from '../error' import { NextCookies } from './cookies' export const INTERNALS = Symbol('internal request') @@ -15,7 +12,6 @@ export class NextRequest extends Request { cookies: NextCookies geo: RequestData['geo'] ip?: string - ua?: UserAgent | null url: NextURL } @@ -51,26 +47,11 @@ export class NextRequest extends Request { } public get page() { - throw new DeprecationPageError() + throw new RemovedPageError() } public get ua() { - if (typeof this[INTERNALS].ua !== 'undefined') { - return this[INTERNALS].ua || undefined - } - - const uaString = this.headers.get('user-agent') - if (!uaString) { - this[INTERNALS].ua = null - return this[INTERNALS].ua || undefined - } - - this[INTERNALS].ua = { - ...parseua(uaString), - isBot: isBot(uaString), - } - - return this[INTERNALS].ua + throw new RemovedUAError() } public get url() { @@ -91,28 +72,3 @@ export interface RequestInit extends globalThis.RequestInit { trailingSlash?: boolean } } - -interface UserAgent { - isBot: boolean - ua: string - browser: { - name?: string - version?: string - } - device: { - model?: string - type?: string - vendor?: string - } - engine: { - name?: string - version?: string - } - os: { - name?: string - version?: string - } - cpu: { - architecture?: string - } -} diff --git a/packages/next/server/web/spec-extension/user-agent.ts b/packages/next/server/web/spec-extension/user-agent.ts new file mode 100644 index 000000000000..eeb68a22f410 --- /dev/null +++ b/packages/next/server/web/spec-extension/user-agent.ts @@ -0,0 +1,43 @@ +import parseua from 'next/dist/compiled/ua-parser-js' + +interface UserAgent { + isBot: boolean + ua: string + browser: { + name?: string + version?: string + } + device: { + model?: string + type?: string + vendor?: string + } + engine: { + name?: string + version?: string + } + os: { + name?: string + version?: string + } + cpu: { + architecture?: string + } +} + +export function isBot(input: string): boolean { + return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test( + input + ) +} + +export function userAgentFromString(input: string | undefined): UserAgent { + return { + ...parseua(input), + isBot: input === undefined ? false : isBot(input), + } +} + +export function userAgent({ headers }: { headers: Headers }): UserAgent { + return userAgentFromString(headers.get('user-agent') || undefined) +} diff --git a/test/unit/web-runtime/user-agent.test.ts b/test/unit/web-runtime/user-agent.test.ts new file mode 100644 index 000000000000..f63650d0d62d --- /dev/null +++ b/test/unit/web-runtime/user-agent.test.ts @@ -0,0 +1,60 @@ +/** + * @jest-environment @edge-runtime/jest-environment + */ + +import { userAgentFromString, userAgent, NextRequest } from 'next/server' + +const UA_STRING = + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36' + +it('parse an user agent', () => { + const parser = userAgentFromString(UA_STRING) + expect(parser.ua).toBe( + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36' + ) + expect(parser.browser).toStrictEqual({ + name: 'Chrome', + version: '89.0.4389.90', + major: '89', + }) + expect(parser.engine).toStrictEqual({ + name: 'Blink', + version: '89.0.4389.90', + }) + expect(parser.os).toStrictEqual({ name: 'Mac OS', version: '11.2.3' }) + expect(parser.cpu).toStrictEqual({ architecture: undefined }) + expect(parser.isBot).toBe(false) +}) + +it('parse empty user agent', () => { + expect.assertions(3) + for (const input of [undefined, null, '']) { + expect(userAgentFromString(input)).toStrictEqual({ + ua: '', + browser: { name: undefined, version: undefined, major: undefined }, + engine: { name: undefined, version: undefined }, + os: { name: undefined, version: undefined }, + device: { vendor: undefined, model: undefined, type: undefined }, + cpu: { architecture: undefined }, + isBot: false, + }) + } +}) + +it('parse user agent from a NextRequest instance', () => { + const request = new NextRequest('https://vercel.com', { + headers: { + 'user-agent': UA_STRING, + }, + }) + + expect(userAgent(request)).toStrictEqual({ + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', + browser: { name: 'Chrome', version: '89.0.4389.90', major: '89' }, + engine: { name: 'Blink', version: '89.0.4389.90' }, + os: { name: 'Mac OS', version: '11.2.3' }, + device: { vendor: undefined, model: undefined, type: undefined }, + cpu: { architecture: undefined }, + isBot: false, + }) +}) From 91552018072a673e071dd8f1e941d04c9117bde4 Mon Sep 17 00:00:00 2001 From: Gal Schlezinger Date: Thu, 9 Jun 2022 14:49:58 +0300 Subject: [PATCH 002/149] [middleware] support destructuring for env vars in static analysis (#37556) This commit enables the following patterns in Middleware: ```ts // with a dot notation const { ENV_VAR, "ENV-VAR": myEnvVar } = process.env; // or with an object access const { ENV_VAR2, "ENV-VAR2": myEnvVar2 } = process["env"]; ``` ### Related - @cramforce asked this fixed here: https://github.com/vercel/next.js/pull/37514#discussion_r892437257 ## Feature - [x] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [x] Related issues linked using `fixes #number` - [x] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` --- .../webpack/plugins/middleware-plugin.ts | 62 +++++++++++++++++-- .../middleware-general/middleware.js | 13 ++++ .../middleware-general/test/index.test.js | 8 ++- 3 files changed, 76 insertions(+), 7 deletions(-) diff --git a/packages/next/build/webpack/plugins/middleware-plugin.ts b/packages/next/build/webpack/plugins/middleware-plugin.ts index 5d30089055bf..48c4991105e1 100644 --- a/packages/next/build/webpack/plugins/middleware-plugin.ts +++ b/packages/next/build/webpack/plugins/middleware-plugin.ts @@ -164,18 +164,26 @@ function getCodeAnalizer(params: { }) } + /** + * Declares an environment variable that is being used in this module + * through this static analysis. + */ + const addUsedEnvVar = (envVarName: string) => { + const buildInfo = getModuleBuildInfo(parser.state.module) + if (buildInfo.nextUsedEnvVars === undefined) { + buildInfo.nextUsedEnvVars = new Set() + } + + buildInfo.nextUsedEnvVars.add(envVarName) + } + /** * A handler for calls to `process.env` where we identify the name of the * ENV variable being assigned and store it in the module info. */ const handleCallMemberChain = (_: unknown, members: string[]) => { if (members.length >= 2 && members[0] === 'env') { - const buildInfo = getModuleBuildInfo(parser.state.module) - if (buildInfo.nextUsedEnvVars === undefined) { - buildInfo.nextUsedEnvVars = new Set() - } - - buildInfo.nextUsedEnvVars.add(members[1]) + addUsedEnvVar(members[1]) if (!isInMiddlewareLayer(parser)) { return true } @@ -226,6 +234,37 @@ function getCodeAnalizer(params: { hooks.new.for('NextResponse').tap(NAME, handleNewResponseExpression) hooks.callMemberChain.for('process').tap(NAME, handleCallMemberChain) hooks.expressionMemberChain.for('process').tap(NAME, handleCallMemberChain) + + /** + * Support static analyzing environment variables through + * destructuring `process.env` or `process["env"]`: + * + * const { MY_ENV, "MY-ENV": myEnv } = process.env + * ^^^^^^ ^^^^^^ + */ + hooks.declarator.tap(NAME, (declarator) => { + if ( + declarator.init?.type === 'MemberExpression' && + isProcessEnvMemberExpression(declarator.init) && + declarator.id?.type === 'ObjectPattern' + ) { + for (const property of declarator.id.properties) { + if (property.type === 'RestElement') continue + if ( + property.key.type === 'Literal' && + typeof property.key.value === 'string' + ) { + addUsedEnvVar(property.key.value) + } else if (property.key.type === 'Identifier') { + addUsedEnvVar(property.key.name) + } + } + + if (!isInMiddlewareLayer(parser)) { + return true + } + } + }) registerUnsupportedApiHooks(parser, compilation) } } @@ -538,3 +577,14 @@ function isNullLiteral(expr: any) { function isUndefinedIdentifier(expr: any) { return expr.name === 'undefined' } + +function isProcessEnvMemberExpression(memberExpression: any): boolean { + return ( + memberExpression.object?.type === 'Identifier' && + memberExpression.object.name === 'process' && + ((memberExpression.property?.type === 'Literal' && + memberExpression.property.value === 'env') || + (memberExpression.property?.type === 'Identifier' && + memberExpression.property.name === 'env')) + ) +} diff --git a/test/integration/middleware-general/middleware.js b/test/integration/middleware-general/middleware.js index 135a33d51720..081aa474576d 100644 --- a/test/integration/middleware-general/middleware.js +++ b/test/integration/middleware-general/middleware.js @@ -66,6 +66,19 @@ export async function middleware(request) { // The next line is required to allow to find the env variable // eslint-disable-next-line no-unused-expressions process.env.MIDDLEWARE_TEST + + // The next line is required to allow to find the env variable + // eslint-disable-next-line no-unused-expressions + const { ANOTHER_MIDDLEWARE_TEST } = process.env + if (!ANOTHER_MIDDLEWARE_TEST) { + console.log('missing ANOTHER_MIDDLEWARE_TEST') + } + + const { 'STRING-ENV-VAR': stringEnvVar } = process['env'] + if (!stringEnvVar) { + console.log('missing STRING-ENV-VAR') + } + return serializeData(JSON.stringify({ process: { env: process.env } })) } diff --git a/test/integration/middleware-general/test/index.test.js b/test/integration/middleware-general/test/index.test.js index 4f11aea2c1c6..307b56834a62 100644 --- a/test/integration/middleware-general/test/index.test.js +++ b/test/integration/middleware-general/test/index.test.js @@ -33,6 +33,8 @@ describe('Middleware Runtime', () => { context.buildId = 'development' context.app = await launchApp(context.appDir, context.appPort, { env: { + ANOTHER_MIDDLEWARE_TEST: 'asdf2', + 'STRING-ENV-VAR': 'asdf3', MIDDLEWARE_TEST: 'asdf', NEXT_RUNTIME: 'edge', }, @@ -100,6 +102,8 @@ describe('Middleware Runtime', () => { context.appPort = await findPort() context.app = await nextStart(context.appDir, context.appPort, { env: { + ANOTHER_MIDDLEWARE_TEST: 'asdf2', + 'STRING-ENV-VAR': 'asdf3', MIDDLEWARE_TEST: 'asdf', NEXT_RUNTIME: 'edge', }, @@ -120,7 +124,7 @@ describe('Middleware Runtime', () => { ) expect(manifest.middleware).toEqual({ '/': { - env: ['MIDDLEWARE_TEST'], + env: ['MIDDLEWARE_TEST', 'ANOTHER_MIDDLEWARE_TEST', 'STRING-ENV-VAR'], files: ['server/edge-runtime-webpack.js', 'server/middleware.js'], name: 'middleware', page: '/', @@ -215,6 +219,8 @@ function tests(context, locale = '') { expect(readMiddlewareJSON(res)).toEqual({ process: { env: { + ANOTHER_MIDDLEWARE_TEST: 'asdf2', + 'STRING-ENV-VAR': 'asdf3', MIDDLEWARE_TEST: 'asdf', NEXT_RUNTIME: 'edge', }, From 0bfdf0e0d1bfa760ac375a5908fb110024e09a97 Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Thu, 9 Jun 2022 15:43:38 +0200 Subject: [PATCH 003/149] Fix react root env missing in NextServer (#37562) * Fix react root env missing in NextServer * switch to useId instead of using process.env var * add production test * extend timeout * fix test * fix lint * use version to detect if enable react root --- packages/next/bin/next.ts | 6 +- packages/next/server/next-server.ts | 6 + packages/next/server/next.ts | 6 +- packages/next/server/render.tsx | 7 +- .../custom-server/next.config.js | 5 + .../custom-server/pages/index.server.js | 7 ++ .../custom-server/server.js | 44 +++++++ .../react-18-streaming-ssr/index.test.ts | 118 ++++++++++-------- .../streaming-ssr/next.config.js | 6 + .../streaming-ssr/pages/hello.js | 14 +++ .../streaming-ssr/pages/index.js | 14 +++ .../streaming-ssr/pages/multi-byte.js | 9 ++ 12 files changed, 179 insertions(+), 63 deletions(-) create mode 100644 test/production/react-18-streaming-ssr/custom-server/next.config.js create mode 100644 test/production/react-18-streaming-ssr/custom-server/pages/index.server.js create mode 100644 test/production/react-18-streaming-ssr/custom-server/server.js create mode 100644 test/production/react-18-streaming-ssr/streaming-ssr/next.config.js create mode 100644 test/production/react-18-streaming-ssr/streaming-ssr/pages/hello.js create mode 100644 test/production/react-18-streaming-ssr/streaming-ssr/pages/index.js create mode 100644 test/production/react-18-streaming-ssr/streaming-ssr/pages/multi-byte.js diff --git a/packages/next/bin/next.ts b/packages/next/bin/next.ts index 899b16d34627..fccca27b57f4 100755 --- a/packages/next/bin/next.ts +++ b/packages/next/bin/next.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node import * as log from '../build/output/log' import arg from 'next/dist/compiled/arg/index.js' +import React from 'react' import { NON_STANDARD_NODE_ENV } from '../lib/constants' ;['react', 'react-dom'].forEach((dependency) => { try { @@ -42,9 +43,6 @@ const args = arg( } ) -// Detect if react-dom is enabled streaming rendering mode -const shouldUseReactRoot = !!require('react-dom/server').renderToPipeableStream - // Version is inlined into the file using taskr build pipeline if (args['--version']) { console.log(`Next.js v${process.env.__NEXT_VERSION}`) @@ -108,6 +106,8 @@ if (process.env.NODE_ENV) { ;(process.env as any).NODE_ENV = process.env.NODE_ENV || defaultEnv ;(process.env as any).NEXT_RUNTIME = 'nodejs' + +const shouldUseReactRoot = parseInt(React.version) >= 18 if (shouldUseReactRoot) { ;(process.env as any).__NEXT_REACT_ROOT = 'true' } diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 05f9dd17b938..a01efa2cb7e5 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -25,6 +25,7 @@ import type { import fs from 'fs' import { join, relative, resolve, sep } from 'path' import { IncomingMessage, ServerResponse } from 'http' +import React from 'react' import { addRequestMeta, getRequestMeta } from './request-meta' import { @@ -82,6 +83,11 @@ import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing- import { clonableBodyForRequest } from './body-streams' import { getNextPathnameInfo } from '../shared/lib/router/utils/get-next-pathname-info' +const shouldUseReactRoot = parseInt(React.version) >= 18 +if (shouldUseReactRoot) { + ;(process.env as any).__NEXT_REACT_ROOT = 'true' +} + export * from './base-server' type ExpressMiddleware = ( diff --git a/packages/next/server/next.ts b/packages/next/server/next.ts index 9e045631f839..9bfc2ef3927b 100644 --- a/packages/next/server/next.ts +++ b/packages/next/server/next.ts @@ -3,6 +3,7 @@ import type { NodeRequestHandler } from './next-server' import type { UrlWithParsedQuery } from 'url' import './node-polyfill-fetch' +import React from 'react' import { default as Server } from './next-server' import * as log from '../build/output/log' import loadConfig from './config' @@ -182,10 +183,7 @@ function createServer(options: NextServerOptions): NextServer { ) } - // Make sure env of custom server is overridden. - // Use dynamic require to make sure it's executed in it's own context. - const ReactDOMServer = require('react-dom/server') - const shouldUseReactRoot = !!ReactDOMServer.renderToPipeableStream + const shouldUseReactRoot = parseInt(React.version) >= 18 if (shouldUseReactRoot) { ;(process.env as any).__NEXT_REACT_ROOT = 'true' } diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index 3209881b02f4..e6d0ab8be1d5 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -88,9 +88,10 @@ let tryGetPreviewData: typeof import('./api-utils/node').tryGetPreviewData let warn: typeof import('../build/output/log').warn const DOCTYPE = '' -const ReactDOMServer = process.env.__NEXT_REACT_ROOT - ? require('react-dom/server.browser') - : require('react-dom/server') +const ReactDOMServer = + parseInt(React.version) >= 18 + ? require('react-dom/server.browser') + : require('react-dom/server') if (process.env.NEXT_RUNTIME !== 'edge') { require('./node-polyfill-web-streams') diff --git a/test/production/react-18-streaming-ssr/custom-server/next.config.js b/test/production/react-18-streaming-ssr/custom-server/next.config.js new file mode 100644 index 000000000000..060d50f525d6 --- /dev/null +++ b/test/production/react-18-streaming-ssr/custom-server/next.config.js @@ -0,0 +1,5 @@ +module.exports = { + experimental: { + serverComponents: true, + }, +} diff --git a/test/production/react-18-streaming-ssr/custom-server/pages/index.server.js b/test/production/react-18-streaming-ssr/custom-server/pages/index.server.js new file mode 100644 index 000000000000..560c19b54a71 --- /dev/null +++ b/test/production/react-18-streaming-ssr/custom-server/pages/index.server.js @@ -0,0 +1,7 @@ +export default function Page() { + return

streaming

+} + +export async function getServerSideProps() { + return { props: {} } +} diff --git a/test/production/react-18-streaming-ssr/custom-server/server.js b/test/production/react-18-streaming-ssr/custom-server/server.js new file mode 100644 index 000000000000..c7ccbd8df6be --- /dev/null +++ b/test/production/react-18-streaming-ssr/custom-server/server.js @@ -0,0 +1,44 @@ +const NextServer = require('next/dist/server/next-server').default +const defaultNextConfig = + require('next/dist/server/config-shared').defaultConfig +const http = require('http') + +process.on('SIGTERM', () => process.exit(0)) +process.on('SIGINT', () => process.exit(0)) + +let handler + +const server = http.createServer(async (req, res) => { + try { + await handler(req, res) + } catch (err) { + console.error(err) + res.statusCode = 500 + res.end('internal server error') + } +}) +const currentPort = parseInt(process.env.PORT, 10) || 3000 + +server.listen(currentPort, (err) => { + if (err) { + console.error('Failed to start server', err) + process.exit(1) + } + const nextServer = new NextServer({ + hostname: 'localhost', + port: currentPort, + customServer: true, + dev: false, + conf: { + ...defaultNextConfig, + distDir: '.next', + experimental: { + ...defaultNextConfig.experimental, + serverComponents: true, + }, + }, + }) + handler = nextServer.getRequestHandler() + + console.log('Listening on port', currentPort) +}) diff --git a/test/production/react-18-streaming-ssr/index.test.ts b/test/production/react-18-streaming-ssr/index.test.ts index 13020e711179..f42652bf7911 100644 --- a/test/production/react-18-streaming-ssr/index.test.ts +++ b/test/production/react-18-streaming-ssr/index.test.ts @@ -1,8 +1,20 @@ -import { createNext } from 'e2e-utils' +import { join } from 'path' +import { createNext, FileRef } from 'e2e-utils' import { NextInstance } from 'test/lib/next-modes/base' -import { fetchViaHTTP, renderViaHTTP } from 'next-test-utils' - -describe('react 18 streaming SSR in minimal mode', () => { +import { + fetchViaHTTP, + findPort, + initNextServerScript, + killApp, + renderViaHTTP, +} from 'next-test-utils' + +const react18Deps = { + react: '^18.0.0', + 'react-dom': '^18.0.0', +} + +describe('react 18 streaming SSR and RSC in minimal mode', () => { let next: NextInstance beforeAll(async () => { @@ -12,13 +24,15 @@ describe('react 18 streaming SSR in minimal mode', () => { files: { 'pages/index.server.js': ` export default function Page() { - return

static streaming

+ return

streaming

+ } + export async function getServerSideProps() { + return { props: {} } } `, }, nextConfig: { experimental: { - reactRoot: true, serverComponents: true, runtime: 'nodejs', }, @@ -40,10 +54,7 @@ describe('react 18 streaming SSR in minimal mode', () => { return config }, }, - dependencies: { - react: '18.1.0', - 'react-dom': '18.1.0', - }, + dependencies: react18Deps, }) }) afterAll(() => { @@ -58,7 +69,7 @@ describe('react 18 streaming SSR in minimal mode', () => { it('should generate html response by streaming correctly', async () => { const html = await renderViaHTTP(next.url, '/') - expect(html).toContain('static streaming') + expect(html).toContain('streaming') }) it('should have generated a static 404 page', async () => { @@ -76,49 +87,10 @@ describe('react 18 streaming SSR with custom next configs', () => { beforeAll(async () => { next = await createNext({ files: { - 'pages/index.js': ` - export default function Page() { - return ( -
- -

index

-
- ) - } - `, - 'pages/hello.js': ` - import Link from 'next/link' - - export default function Page() { - return ( -
-

hello nextjs

- home> -
- ) - } - `, - 'pages/multi-byte.js': ` - export default function Page() { - return ( -
-

{"マルチバイト".repeat(28)}

-
- ); - } - `, - }, - nextConfig: { - trailingSlash: true, - experimental: { - reactRoot: true, - runtime: 'edge', - }, - }, - dependencies: { - react: '18.1.0', - 'react-dom': '18.1.0', + pages: new FileRef(join(__dirname, 'streaming-ssr/pages')), }, + nextConfig: require(join(__dirname, 'streaming-ssr/next.config.js')), + dependencies: react18Deps, installCommand: 'npm install', }) }) @@ -151,3 +123,43 @@ describe('react 18 streaming SSR with custom next configs', () => { expect(html).toContain('マルチバイト'.repeat(28)) }) }) + +describe('react 18 streaming SSR and RSC with custom server', () => { + let next + let server + let appPort + beforeAll(async () => { + next = await createNext({ + files: { + pages: new FileRef(join(__dirname, 'custom-server/pages')), + 'server.js': new FileRef(join(__dirname, 'custom-server/server.js')), + }, + nextConfig: require(join(__dirname, 'custom-server/next.config.js')), + dependencies: react18Deps, + }) + await next.stop() + + const testServer = join(next.testDir, 'server.js') + appPort = await findPort() + server = await initNextServerScript( + testServer, + /Listening/, + { + ...process.env, + PORT: appPort, + }, + undefined, + { + cwd: next.testDir, + } + ) + }) + afterAll(async () => { + await next.destroy() + if (server) await killApp(server) + }) + it('should render rsc correctly under custom server', async () => { + const html = await renderViaHTTP(appPort, '/') + expect(html).toContain('streaming') + }) +}) diff --git a/test/production/react-18-streaming-ssr/streaming-ssr/next.config.js b/test/production/react-18-streaming-ssr/streaming-ssr/next.config.js new file mode 100644 index 000000000000..a11f5dd78e85 --- /dev/null +++ b/test/production/react-18-streaming-ssr/streaming-ssr/next.config.js @@ -0,0 +1,6 @@ +module.exports = { + trailingSlash: true, + experimental: { + runtime: 'edge', + }, +} diff --git a/test/production/react-18-streaming-ssr/streaming-ssr/pages/hello.js b/test/production/react-18-streaming-ssr/streaming-ssr/pages/hello.js new file mode 100644 index 000000000000..149eae409c67 --- /dev/null +++ b/test/production/react-18-streaming-ssr/streaming-ssr/pages/hello.js @@ -0,0 +1,14 @@ +import Link from 'next/link' + +export default function Page() { + return ( +
+

hello nextjs

+ + home + +
+ ) +} + +export const config = { runtime: 'edge' } diff --git a/test/production/react-18-streaming-ssr/streaming-ssr/pages/index.js b/test/production/react-18-streaming-ssr/streaming-ssr/pages/index.js new file mode 100644 index 000000000000..211cf1931ade --- /dev/null +++ b/test/production/react-18-streaming-ssr/streaming-ssr/pages/index.js @@ -0,0 +1,14 @@ +export default function Page() { + return ( +
+ +

index

+
+ ) +} + +export const config = { runtime: 'edge' } diff --git a/test/production/react-18-streaming-ssr/streaming-ssr/pages/multi-byte.js b/test/production/react-18-streaming-ssr/streaming-ssr/pages/multi-byte.js new file mode 100644 index 000000000000..5ff1fd1589f4 --- /dev/null +++ b/test/production/react-18-streaming-ssr/streaming-ssr/pages/multi-byte.js @@ -0,0 +1,9 @@ +export default function Page() { + return ( +
+

{'マルチバイト'.repeat(28)}

+
+ ) +} + +export const config = { runtime: 'edge' } From c613608bfc3c5ef208d2835c8522af307523a52e Mon Sep 17 00:00:00 2001 From: Shu Ding Date: Thu, 9 Jun 2022 16:58:10 +0200 Subject: [PATCH 004/149] Fix client entry unexpectedly created in app dir (#37561) fix client entry unexpectedly created --- packages/next/build/entries.ts | 3 ++- packages/next/server/dev/hot-reloader.ts | 4 +++- packages/next/server/dev/on-demand-entry-handler.ts | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/next/build/entries.ts b/packages/next/build/entries.ts index 0ddfc9c17787..0b643d95e338 100644 --- a/packages/next/build/entries.ts +++ b/packages/next/build/entries.ts @@ -327,6 +327,7 @@ export async function createEntrypoints(params: CreateEntrypointsParams) { } const isServerComponent = serverComponentRegex.test(absolutePagePath) + const isInsideAppDir = appDir && absolutePagePath.startsWith(appDir) const staticInfo = await getPageStaticInfo({ nextConfig: config, @@ -339,7 +340,7 @@ export async function createEntrypoints(params: CreateEntrypointsParams) { page, pageRuntime: staticInfo.runtime, onClient: () => { - if (isServerComponent) { + if (isServerComponent || isInsideAppDir) { // We skip the initial entries for server component pages and let the // server compiler inject them instead. } else { diff --git a/packages/next/server/dev/hot-reloader.ts b/packages/next/server/dev/hot-reloader.ts index d5999f2bbcf9..99ff8de55050 100644 --- a/packages/next/server/dev/hot-reloader.ts +++ b/packages/next/server/dev/hot-reloader.ts @@ -563,6 +563,8 @@ export default class HotReloader { const isServerComponent = serverComponentRegex.test(absolutePagePath) + const isInsideAppDir = + this.appDir && absolutePagePath.startsWith(this.appDir) const staticInfo = await getPageStaticInfo({ pageFilePath: absolutePagePath, @@ -593,7 +595,7 @@ export default class HotReloader { }, onClient: () => { if (!isClientCompilation) return - if (isServerComponent) { + if (isServerComponent || isInsideAppDir) { entries[pageKey].status = BUILDING entrypoints[bundlePath] = finalizeEntrypoint({ name: bundlePath, diff --git a/packages/next/server/dev/on-demand-entry-handler.ts b/packages/next/server/dev/on-demand-entry-handler.ts index 51aff69e57f6..7106cb31f235 100644 --- a/packages/next/server/dev/on-demand-entry-handler.ts +++ b/packages/next/server/dev/on-demand-entry-handler.ts @@ -206,6 +206,8 @@ export function onDemandEntryHandler({ const isServerComponent = serverComponentRegex.test( pagePathData.absolutePagePath ) + const isInsideAppDir = + appDir && pagePathData.absolutePagePath.startsWith(appDir) const pageKey = `${type}${pagePathData.page}` @@ -217,7 +219,7 @@ export function onDemandEntryHandler({ return } } else { - if (type === 'client' && isServerComponent) { + if (type === 'client' && (isServerComponent || isInsideAppDir)) { // Skip adding the client entry here. } else { entryAdded = true From b4298f95414111d783aba4798a2035a6be202108 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 9 Jun 2022 10:09:18 -0500 Subject: [PATCH 005/149] Ensure check-precompiled exits correctly on failure (#37592) * Ensure check-precompiled exits correctly on failure * update compiled --- .github/workflows/build_test_deploy.yml | 2 ++ packages/next/compiled/babel-packages/packages-bundle.js | 8 ++++---- packages/next/compiled/mini-css-extract-plugin/cjs.js | 2 +- .../mini-css-extract-plugin/hmr/hotModuleReplacement.js | 2 +- packages/next/compiled/mini-css-extract-plugin/index.js | 2 +- packages/next/compiled/mini-css-extract-plugin/loader.js | 2 +- packages/next/compiled/sass-loader/cjs.js | 2 +- scripts/check-pre-compiled.sh | 2 ++ 8 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index bc694137feca..b12433cb8dd1 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -185,6 +185,8 @@ jobs: path: ./* key: ${{ github.sha }}-${{ github.run_number }} + - run: npm i -g pnpm@${PNPM_VERSION} + - run: rm -rf .git && mv .git-bak .git if: ${{needs.build.outputs.docsChange != 'docs only change'}} diff --git a/packages/next/compiled/babel-packages/packages-bundle.js b/packages/next/compiled/babel-packages/packages-bundle.js index 2876624abadd..1e6f93099660 100644 --- a/packages/next/compiled/babel-packages/packages-bundle.js +++ b/packages/next/compiled/babel-packages/packages-bundle.js @@ -1,4 +1,4 @@ -(()=>{var e={2050:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.codeFrameColumns=codeFrameColumns;t["default"]=_default;var s=r(8739);let a=false;function getDefs(e){return{gutter:e.grey,marker:e.red.bold,message:e.red.bold}}const n=/\r\n|[\n\r\u2028\u2029]/;function getMarkerLines(e,t,r){const s=Object.assign({column:0,line:-1},e.start);const a=Object.assign({},s,e.end);const{linesAbove:n=2,linesBelow:o=3}=r||{};const i=s.line;const l=s.column;const c=a.line;const u=a.column;let p=Math.max(i-(n+1),0);let d=Math.min(t.length,c+o);if(i===-1){p=0}if(c===-1){d=t.length}const f=c-i;const y={};if(f){for(let e=0;e<=f;e++){const r=e+i;if(!l){y[r]=true}else if(e===0){const e=t[r-1].length;y[r]=[l,e-l+1]}else if(e===f){y[r]=[0,u]}else{const s=t[r-e].length;y[r]=[0,s]}}}else{if(l===u){if(l){y[i]=[l,0]}else{y[i]=true}}else{y[i]=[l,u-l]}}return{start:p,end:d,markerLines:y}}function codeFrameColumns(e,t,r={}){const a=(r.highlightCode||r.forceColor)&&(0,s.shouldHighlight)(r);const o=(0,s.getChalk)(r);const i=getDefs(o);const maybeHighlight=(e,t)=>a?e(t):t;const l=e.split(n);const{start:c,end:u,markerLines:p}=getMarkerLines(t,l,r);const d=t.start&&typeof t.start.column==="number";const f=String(u).length;const y=a?(0,s.default)(e,r):e;let g=y.split(n,u).slice(c,u).map(((e,t)=>{const s=c+1+t;const a=` ${s}`.slice(-f);const n=` ${a} |`;const o=p[s];const l=!p[s+1];if(o){let t="";if(Array.isArray(o)){const s=e.slice(0,Math.max(o[0]-1,0)).replace(/[^\t]/g," ");const a=o[1]||1;t=["\n ",maybeHighlight(i.gutter,n.replace(/\d/g," "))," ",s,maybeHighlight(i.marker,"^").repeat(a)].join("");if(l&&r.message){t+=" "+maybeHighlight(i.message,r.message)}}return[maybeHighlight(i.marker,">"),maybeHighlight(i.gutter,n),e.length>0?` ${e}`:"",t].join("")}else{return` ${maybeHighlight(i.gutter,n)}${e.length>0?` ${e}`:""}`}})).join("\n");if(r.message&&!d){g=`${" ".repeat(f+1)}${r.message}\n${g}`}if(a){return o.reset(g)}else{return g}}function _default(e,t,r,s={}){if(!a){a=true;const e="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning){process.emitWarning(e,"DeprecationWarning")}else{const t=new Error(e);t.name="DeprecationWarning";console.warn(new Error(e))}}r=Math.max(r,0);const n={start:{column:r,line:t}};return codeFrameColumns(e,n,s)}},1419:(e,t,r)=>{e.exports=r(5585)},5958:(e,t,r)=>{e.exports=r(6560)},6808:(e,t,r)=>{e.exports=r(4718)},6686:(e,t,r)=>{e.exports=r(9696)},6570:(e,t,r)=>{e.exports=r(9009)},6474:(e,t,r)=>{e.exports=r(266)},8948:(e,t,r)=>{e.exports=r(4943)},6243:(e,t,r)=>{e.exports=r(7385)},9102:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=annotateAsPure;var s=r(8622);const{addComment:a}=s;const n="#__PURE__";const isPureAnnotated=({leadingComments:e})=>!!e&&e.some((e=>/[@#]__PURE__/.test(e.value)));function annotateAsPure(e){const t=e["node"]||e;if(isPureAnnotated(t)){return}a(t,"leading",n)}},8534:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(800);var a=r(8622);const{assignmentExpression:n,sequenceExpression:o}=a;function _default(e){const{build:t,operator:r}=e;const a={AssignmentExpression(e){const{node:a,scope:i}=e;if(a.operator!==r+"=")return;const l=[];const c=(0,s.default)(a.left,l,this,i);l.push(n("=",c.ref,t(c.uid,a.right)));e.replaceWith(o(l))},BinaryExpression(e){const{node:s}=e;if(s.operator===r){e.replaceWith(t(s.left,s.right))}}};return a}},1218:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getInclusionReasons=getInclusionReasons;var s=r(7849);var a=r(9471);var n=r(4569);function getInclusionReasons(e,t,r){const o=r[e]||{};return Object.keys(t).reduce(((e,r)=>{const i=(0,n.getLowestImplementedVersion)(o,r);const l=t[r];if(!i){e[r]=(0,a.prettifyVersion)(l)}else{const t=(0,n.isUnreleasedVersion)(i,r);const o=(0,n.isUnreleasedVersion)(l,r);if(!o&&(t||s.lt(l.toString(),(0,n.semverify)(i)))){e[r]=(0,a.prettifyVersion)(l)}}return e}),{})}},6456:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=filterItems;t.isRequired=isRequired;t.targetsSupported=targetsSupported;var s=r(7849);var a=r(6808);var n=r(4569);function targetsSupported(e,t){const r=Object.keys(e);if(r.length===0){return false}const a=r.filter((r=>{const a=(0,n.getLowestImplementedVersion)(t,r);if(!a){return true}const o=e[r];if((0,n.isUnreleasedVersion)(o,r)){return false}if((0,n.isUnreleasedVersion)(a,r)){return true}if(!s.valid(o.toString())){throw new Error(`Invalid version passed for target "${r}": "${o}". `+"Versions must be in semver format (major.minor.patch)")}return s.gt((0,n.semverify)(a),o.toString())}));return a.length===0}function isRequired(e,t,{compatData:r=a,includes:s,excludes:n}={}){if(n!=null&&n.has(e))return false;if(s!=null&&s.has(e))return true;return!targetsSupported(t,r[e])}function filterItems(e,t,r,s,a,n,o){const i=new Set;const l={compatData:e,includes:t,excludes:r};for(const t in e){if(isRequired(t,s,l)){i.add(t)}else if(o){const e=o.get(t);if(e){i.add(e)}}}if(a){a.forEach((e=>!r.has(e)&&i.add(e)))}if(n){n.forEach((e=>!t.has(e)&&i.delete(e)))}return i}},7013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"TargetNames",{enumerable:true,get:function(){return l.TargetNames}});t["default"]=getTargets;Object.defineProperty(t,"filterItems",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"getInclusionReasons",{enumerable:true,get:function(){return u.getInclusionReasons}});t.isBrowsersQueryValid=isBrowsersQueryValid;Object.defineProperty(t,"isRequired",{enumerable:true,get:function(){return p.isRequired}});Object.defineProperty(t,"prettifyTargets",{enumerable:true,get:function(){return c.prettifyTargets}});Object.defineProperty(t,"unreleasedLabels",{enumerable:true,get:function(){return i.unreleasedLabels}});var s=r(4907);var a=r(3317);var n=r(5958);var o=r(4569);var i=r(2519);var l=r(447);var c=r(9471);var u=r(1218);var p=r(6456);const d=n["es6.module"];const f=new a.OptionValidator("@babel/helper-compilation-targets");function validateTargetNames(e){const t=Object.keys(l.TargetNames);for(const r of Object.keys(e)){if(!(r in l.TargetNames)){throw new Error(f.formatMessage(`'${r}' is not a valid target\n- Did you mean '${(0,a.findSuggestion)(r,t)}'?`))}}return e}function isBrowsersQueryValid(e){return typeof e==="string"||Array.isArray(e)&&e.every((e=>typeof e==="string"))}function validateBrowsers(e){f.invariant(e===undefined||isBrowsersQueryValid(e),`'${String(e)}' is not a valid browserslist query`);return e}function getLowestVersions(e){return e.reduce(((e,t)=>{const[r,s]=t.split(" ");const a=i.browserNameMap[r];if(!a){return e}try{const t=s.split("-")[0].toLowerCase();const n=(0,o.isUnreleasedVersion)(t,r);if(!e[a]){e[a]=n?t:(0,o.semverify)(t);return e}const i=e[a];const l=(0,o.isUnreleasedVersion)(i,r);if(l&&n){e[a]=(0,o.getLowestUnreleased)(i,t,r)}else if(l){e[a]=(0,o.semverify)(t)}else if(!l&&!n){const r=(0,o.semverify)(t);e[a]=(0,o.semverMin)(i,r)}}catch(e){}return e}),{})}function outputDecimalWarning(e){if(!e.length){return}console.warn("Warning, the following targets are using a decimal version:\n");e.forEach((({target:e,value:t})=>console.warn(` ${e}: ${t}`)));console.warn(`\nWe recommend using a string for minor/patch versions to avoid numbers like 6.10\ngetting parsed as 6.1, which can lead to unexpected behavior.\n`)}function semverifyTarget(e,t){try{return(0,o.semverify)(t)}catch(r){throw new Error(f.formatMessage(`'${t}' is not a valid value for 'targets.${e}'.`))}}const y={__default(e,t){const r=(0,o.isUnreleasedVersion)(t,e)?t.toLowerCase():semverifyTarget(e,t);return[e,r]},node(e,t){const r=t===true||t==="current"?process.versions.node:semverifyTarget(e,t);return[e,r]}};function generateTargets(e){const t=Object.assign({},e);delete t.esmodules;delete t.browsers;return t}function resolveTargets(e,t){const r=s(e,{mobileToDesktop:true,env:t});return getLowestVersions(r)}function getTargets(e={},t={}){var r;let{browsers:a,esmodules:n}=e;const{configPath:i="."}=t;validateBrowsers(a);const l=generateTargets(e);let c=validateTargetNames(l);const u=!!a;const p=u||Object.keys(c).length>0;const f=!t.ignoreBrowserslistConfig&&!p;if(!a&&f){a=s.loadConfig({config:t.configFile,path:i,env:t.browserslistEnv});if(a==null){{a=[]}}}if(n&&(n!=="intersect"||!((r=a)!=null&&r.length))){a=Object.keys(d).map((e=>`${e} >= ${d[e]}`)).join(", ");n=false}if(a){const e=resolveTargets(a,t.browserslistEnv);if(n==="intersect"){for(const t of Object.keys(e)){const r=e[t];if(d[t]){e[t]=(0,o.getHighestUnreleased)(r,(0,o.semverify)(d[t]),t)}else{delete e[t]}}}c=Object.assign(e,c)}const g={};const h=[];for(const e of Object.keys(c).sort()){var b;const t=c[e];if(typeof t==="number"&&t%1!==0){h.push({target:e,value:t})}const r=(b=y[e])!=null?b:y.__default;const[s,a]=r(e,t);if(a){g[s]=a}}outputDecimalWarning(h);return g}},447:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TargetNames=void 0;const r={node:"node",chrome:"chrome",opera:"opera",edge:"edge",firefox:"firefox",safari:"safari",ie:"ie",ios:"ios",android:"android",electron:"electron",samsung:"samsung",rhino:"rhino"};t.TargetNames=r},9471:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.prettifyTargets=prettifyTargets;t.prettifyVersion=prettifyVersion;var s=r(7849);var a=r(2519);function prettifyVersion(e){if(typeof e!=="string"){return e}const t=[s.major(e)];const r=s.minor(e);const a=s.patch(e);if(r||a){t.push(r)}if(a){t.push(a)}return t.join(".")}function prettifyTargets(e){return Object.keys(e).reduce(((t,r)=>{let s=e[r];const n=a.unreleasedLabels[r];if(typeof s==="string"&&n!==s){s=prettifyVersion(s)}t[r]=s;return t}),{})}},2519:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.unreleasedLabels=t.browserNameMap=void 0;const r={safari:"tp"};t.unreleasedLabels=r;const s={and_chr:"chrome",and_ff:"firefox",android:"android",chrome:"chrome",edge:"edge",firefox:"firefox",ie:"ie",ie_mob:"ie",ios_saf:"ios",node:"node",op_mob:"opera",opera:"opera",safari:"safari",samsung:"samsung"};t.browserNameMap=s},4569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getHighestUnreleased=getHighestUnreleased;t.getLowestImplementedVersion=getLowestImplementedVersion;t.getLowestUnreleased=getLowestUnreleased;t.isUnreleasedVersion=isUnreleasedVersion;t.semverMin=semverMin;t.semverify=semverify;var s=r(7849);var a=r(3317);var n=r(2519);const o=/^(\d+|\d+.\d+)$/;const i=new a.OptionValidator("@babel/helper-compilation-targets");function semverMin(e,t){return e&&s.lt(e,t)?e:t}function semverify(e){if(typeof e==="string"&&s.valid(e)){return e}i.invariant(typeof e==="number"||typeof e==="string"&&o.test(e),`'${e}' is not a valid version`);const t=e.toString().split(".");while(t.length<3){t.push("0")}return t.join(".")}function isUnreleasedVersion(e,t){const r=n.unreleasedLabels[t];return!!r&&r===e.toString().toLowerCase()}function getLowestUnreleased(e,t,r){const s=n.unreleasedLabels[r];const a=[e,t].some((e=>e===s));if(a){return e===a?t:e||t}return semverMin(e,t)}function getHighestUnreleased(e,t,r){return getLowestUnreleased(e,t,r)===e?t:e}function getLowestImplementedVersion(e,t){const r=e[t];if(!r&&t==="android"){return e.chrome}return r}},6812:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getInclusionReasons=getInclusionReasons;var s=r(7849);var a=r(1429);var n=r(1286);function getInclusionReasons(e,t,r){const o=r[e]||{};return Object.keys(t).reduce(((e,r)=>{const i=(0,n.getLowestImplementedVersion)(o,r);const l=t[r];if(!i){e[r]=(0,a.prettifyVersion)(l)}else{const t=(0,n.isUnreleasedVersion)(i,r);const o=(0,n.isUnreleasedVersion)(l,r);if(!o&&(t||s.lt(l.toString(),(0,n.semverify)(i)))){e[r]=(0,a.prettifyVersion)(l)}}return e}),{})}},4557:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=filterItems;t.isRequired=isRequired;t.targetsSupported=targetsSupported;var s=r(7849);var a=r(6243);var n=r(1286);function targetsSupported(e,t){const r=Object.keys(e);if(r.length===0){return false}const a=r.filter((r=>{const a=(0,n.getLowestImplementedVersion)(t,r);if(!a){return true}const o=e[r];if((0,n.isUnreleasedVersion)(o,r)){return false}if((0,n.isUnreleasedVersion)(a,r)){return true}if(!s.valid(o.toString())){throw new Error(`Invalid version passed for target "${r}": "${o}". `+"Versions must be in semver format (major.minor.patch)")}return s.gt((0,n.semverify)(a),o.toString())}));return a.length===0}function isRequired(e,t,{compatData:r=a,includes:s,excludes:n}={}){if(n!=null&&n.has(e))return false;if(s!=null&&s.has(e))return true;return!targetsSupported(t,r[e])}function filterItems(e,t,r,s,a,n,o){const i=new Set;const l={compatData:e,includes:t,excludes:r};for(const t in e){if(isRequired(t,s,l)){i.add(t)}else if(o){const e=o.get(t);if(e){i.add(e)}}}if(a){a.forEach((e=>!r.has(e)&&i.add(e)))}if(n){n.forEach((e=>!t.has(e)&&i.delete(e)))}return i}},3092:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"TargetNames",{enumerable:true,get:function(){return l.TargetNames}});t["default"]=getTargets;Object.defineProperty(t,"filterItems",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"getInclusionReasons",{enumerable:true,get:function(){return u.getInclusionReasons}});t.isBrowsersQueryValid=isBrowsersQueryValid;Object.defineProperty(t,"isRequired",{enumerable:true,get:function(){return p.isRequired}});Object.defineProperty(t,"prettifyTargets",{enumerable:true,get:function(){return c.prettifyTargets}});Object.defineProperty(t,"unreleasedLabels",{enumerable:true,get:function(){return i.unreleasedLabels}});var s=r(4907);var a=r(3317);var n=r(6570);var o=r(1286);var i=r(7515);var l=r(4863);var c=r(1429);var u=r(6812);var p=r(4557);const d=n["es6.module"];const f=new a.OptionValidator("@babel/helper-compilation-targets");function validateTargetNames(e){const t=Object.keys(l.TargetNames);for(const r of Object.keys(e)){if(!(r in l.TargetNames)){throw new Error(f.formatMessage(`'${r}' is not a valid target\n- Did you mean '${(0,a.findSuggestion)(r,t)}'?`))}}return e}function isBrowsersQueryValid(e){return typeof e==="string"||Array.isArray(e)&&e.every((e=>typeof e==="string"))}function validateBrowsers(e){f.invariant(e===undefined||isBrowsersQueryValid(e),`'${String(e)}' is not a valid browserslist query`);return e}function getLowestVersions(e){return e.reduce(((e,t)=>{const[r,s]=t.split(" ");const a=i.browserNameMap[r];if(!a){return e}try{const t=s.split("-")[0].toLowerCase();const n=(0,o.isUnreleasedVersion)(t,r);if(!e[a]){e[a]=n?t:(0,o.semverify)(t);return e}const i=e[a];const l=(0,o.isUnreleasedVersion)(i,r);if(l&&n){e[a]=(0,o.getLowestUnreleased)(i,t,r)}else if(l){e[a]=(0,o.semverify)(t)}else if(!l&&!n){const r=(0,o.semverify)(t);e[a]=(0,o.semverMin)(i,r)}}catch(e){}return e}),{})}function outputDecimalWarning(e){if(!e.length){return}console.warn("Warning, the following targets are using a decimal version:\n");e.forEach((({target:e,value:t})=>console.warn(` ${e}: ${t}`)));console.warn(`\nWe recommend using a string for minor/patch versions to avoid numbers like 6.10\ngetting parsed as 6.1, which can lead to unexpected behavior.\n`)}function semverifyTarget(e,t){try{return(0,o.semverify)(t)}catch(r){throw new Error(f.formatMessage(`'${t}' is not a valid value for 'targets.${e}'.`))}}const y={__default(e,t){const r=(0,o.isUnreleasedVersion)(t,e)?t.toLowerCase():semverifyTarget(e,t);return[e,r]},node(e,t){const r=t===true||t==="current"?process.versions.node:semverifyTarget(e,t);return[e,r]}};function generateTargets(e){const t=Object.assign({},e);delete t.esmodules;delete t.browsers;return t}function resolveTargets(e,t){const r=s(e,{mobileToDesktop:true,env:t});return getLowestVersions(r)}function getTargets(e={},t={}){var r,a;let{browsers:n,esmodules:i}=e;const{configPath:l="."}=t;validateBrowsers(n);const c=generateTargets(e);let u=validateTargetNames(c);const p=!!n;const f=p||Object.keys(u).length>0;const g=!t.ignoreBrowserslistConfig&&!f;if(!n&&g){n=s.loadConfig({config:t.configFile,path:l,env:t.browserslistEnv});if(n==null){{n=[]}}}if(i&&(i!=="intersect"||!((r=n)!=null&&r.length))){n=Object.keys(d).map((e=>`${e} >= ${d[e]}`)).join(", ");i=false}if((a=n)!=null&&a.length){const e=resolveTargets(n,t.browserslistEnv);if(i==="intersect"){for(const t of Object.keys(e)){const r=e[t];if(d[t]){e[t]=(0,o.getHighestUnreleased)(r,(0,o.semverify)(d[t]),t)}else{delete e[t]}}}u=Object.assign(e,u)}const h={};const b=[];for(const e of Object.keys(u).sort()){var x;const t=u[e];if(typeof t==="number"&&t%1!==0){b.push({target:e,value:t})}const r=(x=y[e])!=null?x:y.__default;const[s,a]=r(e,t);if(a){h[s]=a}}outputDecimalWarning(b);return h}},4863:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TargetNames=void 0;const r={node:"node",chrome:"chrome",opera:"opera",edge:"edge",firefox:"firefox",safari:"safari",ie:"ie",ios:"ios",android:"android",electron:"electron",samsung:"samsung",rhino:"rhino"};t.TargetNames=r},1429:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.prettifyTargets=prettifyTargets;t.prettifyVersion=prettifyVersion;var s=r(7849);var a=r(7515);function prettifyVersion(e){if(typeof e!=="string"){return e}const t=[s.major(e)];const r=s.minor(e);const a=s.patch(e);if(r||a){t.push(r)}if(a){t.push(a)}return t.join(".")}function prettifyTargets(e){return Object.keys(e).reduce(((t,r)=>{let s=e[r];const n=a.unreleasedLabels[r];if(typeof s==="string"&&n!==s){s=prettifyVersion(s)}t[r]=s;return t}),{})}},7515:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.unreleasedLabels=t.browserNameMap=void 0;const r={safari:"tp"};t.unreleasedLabels=r;const s={and_chr:"chrome",and_ff:"firefox",android:"android",chrome:"chrome",edge:"edge",firefox:"firefox",ie:"ie",ie_mob:"ie",ios_saf:"ios",node:"node",op_mob:"opera",opera:"opera",safari:"safari",samsung:"samsung"};t.browserNameMap=s},1286:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getHighestUnreleased=getHighestUnreleased;t.getLowestImplementedVersion=getLowestImplementedVersion;t.getLowestUnreleased=getLowestUnreleased;t.isUnreleasedVersion=isUnreleasedVersion;t.semverMin=semverMin;t.semverify=semverify;var s=r(7849);var a=r(3317);var n=r(7515);const o=/^(\d+|\d+.\d+)$/;const i=new a.OptionValidator("@babel/helper-compilation-targets");function semverMin(e,t){return e&&s.lt(e,t)?e:t}function semverify(e){if(typeof e==="string"&&s.valid(e)){return e}i.invariant(typeof e==="number"||typeof e==="string"&&o.test(e),`'${e}' is not a valid version`);const t=e.toString().split(".");while(t.length<3){t.push("0")}return t.join(".")}function isUnreleasedVersion(e,t){const r=n.unreleasedLabels[t];return!!r&&r===e.toString().toLowerCase()}function getLowestUnreleased(e,t,r){const s=n.unreleasedLabels[r];const a=[e,t].some((e=>e===s));if(a){return e===a?t:e||t}return semverMin(e,t)}function getHighestUnreleased(e,t,r){return getLowestUnreleased(e,t,r)===e?t:e}function getLowestImplementedVersion(e,t){const r=e[t];if(!r&&t==="android"){return e.chrome}return r}},2497:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.buildDecoratedClass=buildDecoratedClass;t.hasDecorators=hasDecorators;t.hasOwnDecorators=hasOwnDecorators;var s=r(8304);var a=r(3790);var n=r(1113);function hasOwnDecorators(e){return!!(e.decorators&&e.decorators.length)}function hasDecorators(e){return hasOwnDecorators(e)||e.body.body.some(hasOwnDecorators)}function prop(e,t){if(!t)return null;return s.types.objectProperty(s.types.identifier(e),t)}function method(e,t){return s.types.objectMethod("method",s.types.identifier(e),[],s.types.blockStatement(t))}function takeDecorators(e){let t;if(e.decorators&&e.decorators.length>0){t=s.types.arrayExpression(e.decorators.map((e=>e.expression)))}e.decorators=undefined;return t}function getKey(e){if(e.computed){return e.key}else if(s.types.isIdentifier(e.key)){return s.types.stringLiteral(e.key.name)}else{return s.types.stringLiteral(String(e.key.value))}}function extractElementDescriptor(e,t,r,o){const i=o.isClassMethod();if(o.isPrivate()){throw o.buildCodeFrameError(`Private ${i?"methods":"fields"} in decorated classes are not supported yet.`)}if(o.node.type==="ClassAccessorProperty"){throw o.buildCodeFrameError(`Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`)}if(o.node.type==="StaticBlock"){throw o.buildCodeFrameError(`Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`)}const{node:l,scope:c}=o;new a.default({methodPath:o,objectRef:t,superRef:r,file:e,refToPreserve:t}).replace();const u=[prop("kind",s.types.stringLiteral(s.types.isClassMethod(l)?l.kind:"field")),prop("decorators",takeDecorators(l)),prop("static",l.static&&s.types.booleanLiteral(true)),prop("key",getKey(l))].filter(Boolean);if(s.types.isClassMethod(l)){const e=l.computed?null:l.key;s.types.toExpression(l);u.push(prop("value",(0,n.default)({node:l,id:e,scope:c})||l))}else if(s.types.isClassProperty(l)&&l.value){u.push(method("value",s.template.statements.ast`return ${l.value}`))}else{u.push(prop("value",c.buildUndefinedNode()))}o.remove();return s.types.objectExpression(u)}function addDecorateHelper(e){try{return e.addHelper("decorate")}catch(e){if(e.code==="BABEL_HELPER_UNKNOWN"){e.message+="\n '@babel/plugin-transform-decorators' in non-legacy mode"+" requires '@babel/core' version ^7.0.2 and you appear to be using"+" an older version."}throw e}}function buildDecoratedClass(e,t,r,a){const{node:n,scope:o}=t;const i=o.generateUidIdentifier("initialize");const l=n.id&&t.isDeclaration();const c=t.isInStrictMode();const{superClass:u}=n;n.type="ClassDeclaration";if(!n.id)n.id=s.types.cloneNode(e);let p;if(u){p=o.generateUidIdentifierBasedOnNode(n.superClass,"super");n.superClass=p}const d=takeDecorators(n);const f=s.types.arrayExpression(r.filter((e=>!e.node.abstract&&e.node.type!=="TSIndexSignature")).map((e=>extractElementDescriptor(a,n.id,p,e))));const y=s.template.expression.ast` +(()=>{var e={2050:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.codeFrameColumns=codeFrameColumns;t["default"]=_default;var s=r(8739);let a=false;function getDefs(e){return{gutter:e.grey,marker:e.red.bold,message:e.red.bold}}const n=/\r\n|[\n\r\u2028\u2029]/;function getMarkerLines(e,t,r){const s=Object.assign({column:0,line:-1},e.start);const a=Object.assign({},s,e.end);const{linesAbove:n=2,linesBelow:o=3}=r||{};const i=s.line;const l=s.column;const c=a.line;const u=a.column;let p=Math.max(i-(n+1),0);let d=Math.min(t.length,c+o);if(i===-1){p=0}if(c===-1){d=t.length}const f=c-i;const y={};if(f){for(let e=0;e<=f;e++){const r=e+i;if(!l){y[r]=true}else if(e===0){const e=t[r-1].length;y[r]=[l,e-l+1]}else if(e===f){y[r]=[0,u]}else{const s=t[r-e].length;y[r]=[0,s]}}}else{if(l===u){if(l){y[i]=[l,0]}else{y[i]=true}}else{y[i]=[l,u-l]}}return{start:p,end:d,markerLines:y}}function codeFrameColumns(e,t,r={}){const a=(r.highlightCode||r.forceColor)&&(0,s.shouldHighlight)(r);const o=(0,s.getChalk)(r);const i=getDefs(o);const maybeHighlight=(e,t)=>a?e(t):t;const l=e.split(n);const{start:c,end:u,markerLines:p}=getMarkerLines(t,l,r);const d=t.start&&typeof t.start.column==="number";const f=String(u).length;const y=a?(0,s.default)(e,r):e;let g=y.split(n,u).slice(c,u).map(((e,t)=>{const s=c+1+t;const a=` ${s}`.slice(-f);const n=` ${a} |`;const o=p[s];const l=!p[s+1];if(o){let t="";if(Array.isArray(o)){const s=e.slice(0,Math.max(o[0]-1,0)).replace(/[^\t]/g," ");const a=o[1]||1;t=["\n ",maybeHighlight(i.gutter,n.replace(/\d/g," "))," ",s,maybeHighlight(i.marker,"^").repeat(a)].join("");if(l&&r.message){t+=" "+maybeHighlight(i.message,r.message)}}return[maybeHighlight(i.marker,">"),maybeHighlight(i.gutter,n),e.length>0?` ${e}`:"",t].join("")}else{return` ${maybeHighlight(i.gutter,n)}${e.length>0?` ${e}`:""}`}})).join("\n");if(r.message&&!d){g=`${" ".repeat(f+1)}${r.message}\n${g}`}if(a){return o.reset(g)}else{return g}}function _default(e,t,r,s={}){if(!a){a=true;const e="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning){process.emitWarning(e,"DeprecationWarning")}else{const t=new Error(e);t.name="DeprecationWarning";console.warn(new Error(e))}}r=Math.max(r,0);const n={start:{column:r,line:t}};return codeFrameColumns(e,n,s)}},1419:(e,t,r)=>{e.exports=r(5585)},6686:(e,t,r)=>{e.exports=r(9696)},6570:(e,t,r)=>{e.exports=r(9009)},6474:(e,t,r)=>{e.exports=r(266)},8948:(e,t,r)=>{e.exports=r(4943)},6243:(e,t,r)=>{e.exports=r(7385)},9102:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=annotateAsPure;var s=r(8622);const{addComment:a}=s;const n="#__PURE__";const isPureAnnotated=({leadingComments:e})=>!!e&&e.some((e=>/[@#]__PURE__/.test(e.value)));function annotateAsPure(e){const t=e["node"]||e;if(isPureAnnotated(t)){return}a(t,"leading",n)}},8534:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(800);var a=r(8622);const{assignmentExpression:n,sequenceExpression:o}=a;function _default(e){const{build:t,operator:r}=e;const a={AssignmentExpression(e){const{node:a,scope:i}=e;if(a.operator!==r+"=")return;const l=[];const c=(0,s.default)(a.left,l,this,i);l.push(n("=",c.ref,t(c.uid,a.right)));e.replaceWith(o(l))},BinaryExpression(e){const{node:s}=e;if(s.operator===r){e.replaceWith(t(s.left,s.right))}}};return a}},1218:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getInclusionReasons=getInclusionReasons;var s=r(7849);var a=r(9471);var n=r(4569);function getInclusionReasons(e,t,r){const o=r[e]||{};return Object.keys(t).reduce(((e,r)=>{const i=(0,n.getLowestImplementedVersion)(o,r);const l=t[r];if(!i){e[r]=(0,a.prettifyVersion)(l)}else{const t=(0,n.isUnreleasedVersion)(i,r);const o=(0,n.isUnreleasedVersion)(l,r);if(!o&&(t||s.lt(l.toString(),(0,n.semverify)(i)))){e[r]=(0,a.prettifyVersion)(l)}}return e}),{})}},6456:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=filterItems;t.isRequired=isRequired;t.targetsSupported=targetsSupported;var s=r(7849);var a=r(6243);var n=r(4569);function targetsSupported(e,t){const r=Object.keys(e);if(r.length===0){return false}const a=r.filter((r=>{const a=(0,n.getLowestImplementedVersion)(t,r);if(!a){return true}const o=e[r];if((0,n.isUnreleasedVersion)(o,r)){return false}if((0,n.isUnreleasedVersion)(a,r)){return true}if(!s.valid(o.toString())){throw new Error(`Invalid version passed for target "${r}": "${o}". `+"Versions must be in semver format (major.minor.patch)")}return s.gt((0,n.semverify)(a),o.toString())}));return a.length===0}function isRequired(e,t,{compatData:r=a,includes:s,excludes:n}={}){if(n!=null&&n.has(e))return false;if(s!=null&&s.has(e))return true;return!targetsSupported(t,r[e])}function filterItems(e,t,r,s,a,n,o){const i=new Set;const l={compatData:e,includes:t,excludes:r};for(const t in e){if(isRequired(t,s,l)){i.add(t)}else if(o){const e=o.get(t);if(e){i.add(e)}}}if(a){a.forEach((e=>!r.has(e)&&i.add(e)))}if(n){n.forEach((e=>!t.has(e)&&i.delete(e)))}return i}},7013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"TargetNames",{enumerable:true,get:function(){return l.TargetNames}});t["default"]=getTargets;Object.defineProperty(t,"filterItems",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"getInclusionReasons",{enumerable:true,get:function(){return u.getInclusionReasons}});t.isBrowsersQueryValid=isBrowsersQueryValid;Object.defineProperty(t,"isRequired",{enumerable:true,get:function(){return p.isRequired}});Object.defineProperty(t,"prettifyTargets",{enumerable:true,get:function(){return c.prettifyTargets}});Object.defineProperty(t,"unreleasedLabels",{enumerable:true,get:function(){return i.unreleasedLabels}});var s=r(4907);var a=r(3317);var n=r(6570);var o=r(4569);var i=r(2519);var l=r(447);var c=r(9471);var u=r(1218);var p=r(6456);const d=n["es6.module"];const f=new a.OptionValidator("@babel/helper-compilation-targets");function validateTargetNames(e){const t=Object.keys(l.TargetNames);for(const r of Object.keys(e)){if(!(r in l.TargetNames)){throw new Error(f.formatMessage(`'${r}' is not a valid target\n- Did you mean '${(0,a.findSuggestion)(r,t)}'?`))}}return e}function isBrowsersQueryValid(e){return typeof e==="string"||Array.isArray(e)&&e.every((e=>typeof e==="string"))}function validateBrowsers(e){f.invariant(e===undefined||isBrowsersQueryValid(e),`'${String(e)}' is not a valid browserslist query`);return e}function getLowestVersions(e){return e.reduce(((e,t)=>{const[r,s]=t.split(" ");const a=i.browserNameMap[r];if(!a){return e}try{const t=s.split("-")[0].toLowerCase();const n=(0,o.isUnreleasedVersion)(t,r);if(!e[a]){e[a]=n?t:(0,o.semverify)(t);return e}const i=e[a];const l=(0,o.isUnreleasedVersion)(i,r);if(l&&n){e[a]=(0,o.getLowestUnreleased)(i,t,r)}else if(l){e[a]=(0,o.semverify)(t)}else if(!l&&!n){const r=(0,o.semverify)(t);e[a]=(0,o.semverMin)(i,r)}}catch(e){}return e}),{})}function outputDecimalWarning(e){if(!e.length){return}console.warn("Warning, the following targets are using a decimal version:\n");e.forEach((({target:e,value:t})=>console.warn(` ${e}: ${t}`)));console.warn(`\nWe recommend using a string for minor/patch versions to avoid numbers like 6.10\ngetting parsed as 6.1, which can lead to unexpected behavior.\n`)}function semverifyTarget(e,t){try{return(0,o.semverify)(t)}catch(r){throw new Error(f.formatMessage(`'${t}' is not a valid value for 'targets.${e}'.`))}}const y={__default(e,t){const r=(0,o.isUnreleasedVersion)(t,e)?t.toLowerCase():semverifyTarget(e,t);return[e,r]},node(e,t){const r=t===true||t==="current"?process.versions.node:semverifyTarget(e,t);return[e,r]}};function generateTargets(e){const t=Object.assign({},e);delete t.esmodules;delete t.browsers;return t}function resolveTargets(e,t){const r=s(e,{mobileToDesktop:true,env:t});return getLowestVersions(r)}function getTargets(e={},t={}){var r;let{browsers:a,esmodules:n}=e;const{configPath:i="."}=t;validateBrowsers(a);const l=generateTargets(e);let c=validateTargetNames(l);const u=!!a;const p=u||Object.keys(c).length>0;const f=!t.ignoreBrowserslistConfig&&!p;if(!a&&f){a=s.loadConfig({config:t.configFile,path:i,env:t.browserslistEnv});if(a==null){{a=[]}}}if(n&&(n!=="intersect"||!((r=a)!=null&&r.length))){a=Object.keys(d).map((e=>`${e} >= ${d[e]}`)).join(", ");n=false}if(a){const e=resolveTargets(a,t.browserslistEnv);if(n==="intersect"){for(const t of Object.keys(e)){const r=e[t];if(d[t]){e[t]=(0,o.getHighestUnreleased)(r,(0,o.semverify)(d[t]),t)}else{delete e[t]}}}c=Object.assign(e,c)}const g={};const h=[];for(const e of Object.keys(c).sort()){var b;const t=c[e];if(typeof t==="number"&&t%1!==0){h.push({target:e,value:t})}const r=(b=y[e])!=null?b:y.__default;const[s,a]=r(e,t);if(a){g[s]=a}}outputDecimalWarning(h);return g}},447:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TargetNames=void 0;const r={node:"node",chrome:"chrome",opera:"opera",edge:"edge",firefox:"firefox",safari:"safari",ie:"ie",ios:"ios",android:"android",electron:"electron",samsung:"samsung",rhino:"rhino"};t.TargetNames=r},9471:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.prettifyTargets=prettifyTargets;t.prettifyVersion=prettifyVersion;var s=r(7849);var a=r(2519);function prettifyVersion(e){if(typeof e!=="string"){return e}const t=[s.major(e)];const r=s.minor(e);const a=s.patch(e);if(r||a){t.push(r)}if(a){t.push(a)}return t.join(".")}function prettifyTargets(e){return Object.keys(e).reduce(((t,r)=>{let s=e[r];const n=a.unreleasedLabels[r];if(typeof s==="string"&&n!==s){s=prettifyVersion(s)}t[r]=s;return t}),{})}},2519:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.unreleasedLabels=t.browserNameMap=void 0;const r={safari:"tp"};t.unreleasedLabels=r;const s={and_chr:"chrome",and_ff:"firefox",android:"android",chrome:"chrome",edge:"edge",firefox:"firefox",ie:"ie",ie_mob:"ie",ios_saf:"ios",node:"node",op_mob:"opera",opera:"opera",safari:"safari",samsung:"samsung"};t.browserNameMap=s},4569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getHighestUnreleased=getHighestUnreleased;t.getLowestImplementedVersion=getLowestImplementedVersion;t.getLowestUnreleased=getLowestUnreleased;t.isUnreleasedVersion=isUnreleasedVersion;t.semverMin=semverMin;t.semverify=semverify;var s=r(7849);var a=r(3317);var n=r(2519);const o=/^(\d+|\d+.\d+)$/;const i=new a.OptionValidator("@babel/helper-compilation-targets");function semverMin(e,t){return e&&s.lt(e,t)?e:t}function semverify(e){if(typeof e==="string"&&s.valid(e)){return e}i.invariant(typeof e==="number"||typeof e==="string"&&o.test(e),`'${e}' is not a valid version`);const t=e.toString().split(".");while(t.length<3){t.push("0")}return t.join(".")}function isUnreleasedVersion(e,t){const r=n.unreleasedLabels[t];return!!r&&r===e.toString().toLowerCase()}function getLowestUnreleased(e,t,r){const s=n.unreleasedLabels[r];const a=[e,t].some((e=>e===s));if(a){return e===a?t:e||t}return semverMin(e,t)}function getHighestUnreleased(e,t,r){return getLowestUnreleased(e,t,r)===e?t:e}function getLowestImplementedVersion(e,t){const r=e[t];if(!r&&t==="android"){return e.chrome}return r}},6812:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getInclusionReasons=getInclusionReasons;var s=r(7849);var a=r(1429);var n=r(1286);function getInclusionReasons(e,t,r){const o=r[e]||{};return Object.keys(t).reduce(((e,r)=>{const i=(0,n.getLowestImplementedVersion)(o,r);const l=t[r];if(!i){e[r]=(0,a.prettifyVersion)(l)}else{const t=(0,n.isUnreleasedVersion)(i,r);const o=(0,n.isUnreleasedVersion)(l,r);if(!o&&(t||s.lt(l.toString(),(0,n.semverify)(i)))){e[r]=(0,a.prettifyVersion)(l)}}return e}),{})}},4557:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=filterItems;t.isRequired=isRequired;t.targetsSupported=targetsSupported;var s=r(7849);var a=r(6243);var n=r(1286);function targetsSupported(e,t){const r=Object.keys(e);if(r.length===0){return false}const a=r.filter((r=>{const a=(0,n.getLowestImplementedVersion)(t,r);if(!a){return true}const o=e[r];if((0,n.isUnreleasedVersion)(o,r)){return false}if((0,n.isUnreleasedVersion)(a,r)){return true}if(!s.valid(o.toString())){throw new Error(`Invalid version passed for target "${r}": "${o}". `+"Versions must be in semver format (major.minor.patch)")}return s.gt((0,n.semverify)(a),o.toString())}));return a.length===0}function isRequired(e,t,{compatData:r=a,includes:s,excludes:n}={}){if(n!=null&&n.has(e))return false;if(s!=null&&s.has(e))return true;return!targetsSupported(t,r[e])}function filterItems(e,t,r,s,a,n,o){const i=new Set;const l={compatData:e,includes:t,excludes:r};for(const t in e){if(isRequired(t,s,l)){i.add(t)}else if(o){const e=o.get(t);if(e){i.add(e)}}}if(a){a.forEach((e=>!r.has(e)&&i.add(e)))}if(n){n.forEach((e=>!t.has(e)&&i.delete(e)))}return i}},3092:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"TargetNames",{enumerable:true,get:function(){return l.TargetNames}});t["default"]=getTargets;Object.defineProperty(t,"filterItems",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"getInclusionReasons",{enumerable:true,get:function(){return u.getInclusionReasons}});t.isBrowsersQueryValid=isBrowsersQueryValid;Object.defineProperty(t,"isRequired",{enumerable:true,get:function(){return p.isRequired}});Object.defineProperty(t,"prettifyTargets",{enumerable:true,get:function(){return c.prettifyTargets}});Object.defineProperty(t,"unreleasedLabels",{enumerable:true,get:function(){return i.unreleasedLabels}});var s=r(4907);var a=r(3317);var n=r(6570);var o=r(1286);var i=r(7515);var l=r(4863);var c=r(1429);var u=r(6812);var p=r(4557);const d=n["es6.module"];const f=new a.OptionValidator("@babel/helper-compilation-targets");function validateTargetNames(e){const t=Object.keys(l.TargetNames);for(const r of Object.keys(e)){if(!(r in l.TargetNames)){throw new Error(f.formatMessage(`'${r}' is not a valid target\n- Did you mean '${(0,a.findSuggestion)(r,t)}'?`))}}return e}function isBrowsersQueryValid(e){return typeof e==="string"||Array.isArray(e)&&e.every((e=>typeof e==="string"))}function validateBrowsers(e){f.invariant(e===undefined||isBrowsersQueryValid(e),`'${String(e)}' is not a valid browserslist query`);return e}function getLowestVersions(e){return e.reduce(((e,t)=>{const[r,s]=t.split(" ");const a=i.browserNameMap[r];if(!a){return e}try{const t=s.split("-")[0].toLowerCase();const n=(0,o.isUnreleasedVersion)(t,r);if(!e[a]){e[a]=n?t:(0,o.semverify)(t);return e}const i=e[a];const l=(0,o.isUnreleasedVersion)(i,r);if(l&&n){e[a]=(0,o.getLowestUnreleased)(i,t,r)}else if(l){e[a]=(0,o.semverify)(t)}else if(!l&&!n){const r=(0,o.semverify)(t);e[a]=(0,o.semverMin)(i,r)}}catch(e){}return e}),{})}function outputDecimalWarning(e){if(!e.length){return}console.warn("Warning, the following targets are using a decimal version:\n");e.forEach((({target:e,value:t})=>console.warn(` ${e}: ${t}`)));console.warn(`\nWe recommend using a string for minor/patch versions to avoid numbers like 6.10\ngetting parsed as 6.1, which can lead to unexpected behavior.\n`)}function semverifyTarget(e,t){try{return(0,o.semverify)(t)}catch(r){throw new Error(f.formatMessage(`'${t}' is not a valid value for 'targets.${e}'.`))}}const y={__default(e,t){const r=(0,o.isUnreleasedVersion)(t,e)?t.toLowerCase():semverifyTarget(e,t);return[e,r]},node(e,t){const r=t===true||t==="current"?process.versions.node:semverifyTarget(e,t);return[e,r]}};function generateTargets(e){const t=Object.assign({},e);delete t.esmodules;delete t.browsers;return t}function resolveTargets(e,t){const r=s(e,{mobileToDesktop:true,env:t});return getLowestVersions(r)}function getTargets(e={},t={}){var r,a;let{browsers:n,esmodules:i}=e;const{configPath:l="."}=t;validateBrowsers(n);const c=generateTargets(e);let u=validateTargetNames(c);const p=!!n;const f=p||Object.keys(u).length>0;const g=!t.ignoreBrowserslistConfig&&!f;if(!n&&g){n=s.loadConfig({config:t.configFile,path:l,env:t.browserslistEnv});if(n==null){{n=[]}}}if(i&&(i!=="intersect"||!((r=n)!=null&&r.length))){n=Object.keys(d).map((e=>`${e} >= ${d[e]}`)).join(", ");i=false}if((a=n)!=null&&a.length){const e=resolveTargets(n,t.browserslistEnv);if(i==="intersect"){for(const t of Object.keys(e)){const r=e[t];if(d[t]){e[t]=(0,o.getHighestUnreleased)(r,(0,o.semverify)(d[t]),t)}else{delete e[t]}}}u=Object.assign(e,u)}const h={};const b=[];for(const e of Object.keys(u).sort()){var x;const t=u[e];if(typeof t==="number"&&t%1!==0){b.push({target:e,value:t})}const r=(x=y[e])!=null?x:y.__default;const[s,a]=r(e,t);if(a){h[s]=a}}outputDecimalWarning(b);return h}},4863:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TargetNames=void 0;const r={node:"node",chrome:"chrome",opera:"opera",edge:"edge",firefox:"firefox",safari:"safari",ie:"ie",ios:"ios",android:"android",electron:"electron",samsung:"samsung",rhino:"rhino"};t.TargetNames=r},1429:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.prettifyTargets=prettifyTargets;t.prettifyVersion=prettifyVersion;var s=r(7849);var a=r(7515);function prettifyVersion(e){if(typeof e!=="string"){return e}const t=[s.major(e)];const r=s.minor(e);const a=s.patch(e);if(r||a){t.push(r)}if(a){t.push(a)}return t.join(".")}function prettifyTargets(e){return Object.keys(e).reduce(((t,r)=>{let s=e[r];const n=a.unreleasedLabels[r];if(typeof s==="string"&&n!==s){s=prettifyVersion(s)}t[r]=s;return t}),{})}},7515:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.unreleasedLabels=t.browserNameMap=void 0;const r={safari:"tp"};t.unreleasedLabels=r;const s={and_chr:"chrome",and_ff:"firefox",android:"android",chrome:"chrome",edge:"edge",firefox:"firefox",ie:"ie",ie_mob:"ie",ios_saf:"ios",node:"node",op_mob:"opera",opera:"opera",safari:"safari",samsung:"samsung"};t.browserNameMap=s},1286:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getHighestUnreleased=getHighestUnreleased;t.getLowestImplementedVersion=getLowestImplementedVersion;t.getLowestUnreleased=getLowestUnreleased;t.isUnreleasedVersion=isUnreleasedVersion;t.semverMin=semverMin;t.semverify=semverify;var s=r(7849);var a=r(3317);var n=r(7515);const o=/^(\d+|\d+.\d+)$/;const i=new a.OptionValidator("@babel/helper-compilation-targets");function semverMin(e,t){return e&&s.lt(e,t)?e:t}function semverify(e){if(typeof e==="string"&&s.valid(e)){return e}i.invariant(typeof e==="number"||typeof e==="string"&&o.test(e),`'${e}' is not a valid version`);const t=e.toString().split(".");while(t.length<3){t.push("0")}return t.join(".")}function isUnreleasedVersion(e,t){const r=n.unreleasedLabels[t];return!!r&&r===e.toString().toLowerCase()}function getLowestUnreleased(e,t,r){const s=n.unreleasedLabels[r];const a=[e,t].some((e=>e===s));if(a){return e===a?t:e||t}return semverMin(e,t)}function getHighestUnreleased(e,t,r){return getLowestUnreleased(e,t,r)===e?t:e}function getLowestImplementedVersion(e,t){const r=e[t];if(!r&&t==="android"){return e.chrome}return r}},2497:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.buildDecoratedClass=buildDecoratedClass;t.hasDecorators=hasDecorators;t.hasOwnDecorators=hasOwnDecorators;var s=r(8304);var a=r(3790);var n=r(1113);function hasOwnDecorators(e){return!!(e.decorators&&e.decorators.length)}function hasDecorators(e){return hasOwnDecorators(e)||e.body.body.some(hasOwnDecorators)}function prop(e,t){if(!t)return null;return s.types.objectProperty(s.types.identifier(e),t)}function method(e,t){return s.types.objectMethod("method",s.types.identifier(e),[],s.types.blockStatement(t))}function takeDecorators(e){let t;if(e.decorators&&e.decorators.length>0){t=s.types.arrayExpression(e.decorators.map((e=>e.expression)))}e.decorators=undefined;return t}function getKey(e){if(e.computed){return e.key}else if(s.types.isIdentifier(e.key)){return s.types.stringLiteral(e.key.name)}else{return s.types.stringLiteral(String(e.key.value))}}function extractElementDescriptor(e,t,r,o){const i=o.isClassMethod();if(o.isPrivate()){throw o.buildCodeFrameError(`Private ${i?"methods":"fields"} in decorated classes are not supported yet.`)}if(o.node.type==="ClassAccessorProperty"){throw o.buildCodeFrameError(`Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`)}if(o.node.type==="StaticBlock"){throw o.buildCodeFrameError(`Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`)}const{node:l,scope:c}=o;new a.default({methodPath:o,objectRef:t,superRef:r,file:e,refToPreserve:t}).replace();const u=[prop("kind",s.types.stringLiteral(s.types.isClassMethod(l)?l.kind:"field")),prop("decorators",takeDecorators(l)),prop("static",l.static&&s.types.booleanLiteral(true)),prop("key",getKey(l))].filter(Boolean);if(s.types.isClassMethod(l)){const e=l.computed?null:l.key;s.types.toExpression(l);u.push(prop("value",(0,n.default)({node:l,id:e,scope:c})||l))}else if(s.types.isClassProperty(l)&&l.value){u.push(method("value",s.template.statements.ast`return ${l.value}`))}else{u.push(prop("value",c.buildUndefinedNode()))}o.remove();return s.types.objectExpression(u)}function addDecorateHelper(e){try{return e.addHelper("decorate")}catch(e){if(e.code==="BABEL_HELPER_UNKNOWN"){e.message+="\n '@babel/plugin-transform-decorators' in non-legacy mode"+" requires '@babel/core' version ^7.0.2 and you appear to be using"+" an older version."}throw e}}function buildDecoratedClass(e,t,r,a){const{node:n,scope:o}=t;const i=o.generateUidIdentifier("initialize");const l=n.id&&t.isDeclaration();const c=t.isInStrictMode();const{superClass:u}=n;n.type="ClassDeclaration";if(!n.id)n.id=s.types.cloneNode(e);let p;if(u){p=o.generateUidIdentifierBasedOnNode(n.superClass,"super");n.superClass=p}const d=takeDecorators(n);const f=s.types.arrayExpression(r.filter((e=>!e.node.abstract&&e.node.type!=="TSIndexSignature")).map((e=>extractElementDescriptor(a,n.id,p,e))));const y=s.template.expression.ast` ${addDecorateHelper(a)}( ${d||s.types.nullLiteral()}, function (${i}, ${u?s.types.cloneNode(p):null}) { @@ -137,7 +137,7 @@ (function() { throw new Error('"' + '${e}' + '" is read-only.'); })() - `;const S={ReferencedIdentifier(e){const{seen:t,buildImportReference:r,scope:s,imported:a,requeueInParent:n}=this;if(t.has(e.node))return;t.add(e.node);const o=e.node.name;const i=a.get(o);if(i){if(isInType(e)){throw e.buildCodeFrameError(`Cannot transform the imported binding "${o}" since it's also used in a type annotation. `+`Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`)}const t=e.scope.getBinding(o);const a=s.getBinding(o);if(a!==t)return;const l=r(i,e.node);l.loc=e.node.loc;if((e.parentPath.isCallExpression({callee:e.node})||e.parentPath.isOptionalCallExpression({callee:e.node})||e.parentPath.isTaggedTemplateExpression({tag:e.node}))&&f(l)){e.replaceWith(v([x(0),l]))}else if(e.isJSXIdentifier()&&f(l)){const{object:t,property:r}=l;e.replaceWith(h(g(t.name),g(r.name)))}else{e.replaceWith(l)}n(e);e.skip()}},UpdateExpression(e){const{scope:t,seen:r,imported:s,exported:a,requeueInParent:n,buildImportReference:o}=this;if(r.has(e.node))return;r.add(e.node);const l=e.get("argument");if(l.isMemberExpression())return;const u=e.node;if(l.isIdentifier()){const r=l.node.name;if(t.getBinding(r)!==e.scope.getBinding(r)){return}const n=a.get(r);const p=s.get(r);if((n==null?void 0:n.length)>0||p){if(p){e.replaceWith(i(u.operator[0]+"=",o(p,l.node),buildImportThrow(r)))}else if(u.prefix){e.replaceWith(buildBindingExportAssignmentExpression(this.metadata,n,c(u)))}else{const s=t.generateDeclaredUidIdentifier(r);e.replaceWith(v([i("=",c(s),c(u)),buildBindingExportAssignmentExpression(this.metadata,n,d(r)),c(s)]))}}}n(e);e.skip()},AssignmentExpression:{exit(e){const{scope:t,seen:r,imported:a,exported:n,requeueInParent:o,buildImportReference:i}=this;if(r.has(e.node))return;r.add(e.node);const l=e.get("left");if(l.isMemberExpression())return;if(l.isIdentifier()){const r=l.node.name;if(t.getBinding(r)!==e.scope.getBinding(r)){return}const c=n.get(r);const u=a.get(r);if((c==null?void 0:c.length)>0||u){s(e.node.operator==="=","Path was not simplified");const t=e.node;if(u){t.left=i(u,t.left);t.right=v([t.right,buildImportThrow(r)])}e.replaceWith(buildBindingExportAssignmentExpression(this.metadata,c,t));o(e)}}else{const r=l.getOuterBindingIdentifiers();const s=Object.keys(r).filter((r=>t.getBinding(r)===e.scope.getBinding(r)));const i=s.find((e=>a.has(e)));if(i){e.node.right=v([e.node.right,buildImportThrow(i)])}const c=[];s.forEach((e=>{const t=n.get(e)||[];if(t.length>0){c.push(buildBindingExportAssignmentExpression(this.metadata,t,d(e)))}}));if(c.length>0){let t=v(c);if(e.parentPath.isExpressionStatement()){t=u(t);t._blockHoist=e.parentPath.node._blockHoist}const r=e.insertAfter(t)[0];o(r)}}}},"ForOfStatement|ForInStatement"(e){const{scope:t,node:r}=e;const{left:s}=r;const{exported:a,imported:n,scope:o}=this;if(!y(s)){let r=false,l;const d=e.get("body").scope;for(const e of Object.keys(p(s))){if(o.getBinding(e)===t.getBinding(e)){if(a.has(e)){r=true;if(d.hasOwnBinding(e)){d.rename(e)}}if(n.has(e)&&!l){l=e}}}if(!r&&!l){return}e.ensureBlock();const f=e.get("body");const y=t.generateUidIdentifierBasedOnNode(s);e.get("left").replaceWith(E("let",[w(c(y))]));t.registerDeclaration(e.get("left"));if(r){f.unshiftContainer("body",u(i("=",s,y)))}if(l){f.unshiftContainer("body",u(buildImportThrow(l)))}}}}},6307:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=rewriteThis;var s=r(8411);var a=r(7369);var n=r(8622);const{numericLiteral:o,unaryExpression:i}=n;function rewriteThis(e){(0,a.default)(e.node,Object.assign({},l,{noScope:true}))}const l=a.default.visitors.merge([s.default,{ThisExpression(e){e.replaceWith(i("void",o(0),true))}}])},5500:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=optimiseCallExpression;var s=r(8622);const{callExpression:a,identifier:n,isIdentifier:o,isSpreadElement:i,memberExpression:l,optionalCallExpression:c,optionalMemberExpression:u}=s;function optimiseCallExpression(e,t,r,s){if(r.length===1&&i(r[0])&&o(r[0].argument,{name:"arguments"})){if(s){return c(u(e,n("apply"),false,true),[t,r[0].argument],false)}return a(l(e,n("apply")),[t,r[0].argument])}else{if(s){return c(u(e,n("call"),false,true),[t,...r],false)}return a(l(e,n("call")),[t,...r])}}},3962:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.declare=declare;function declare(e){return(t,s,a)=>{var n;let o;for(const e of Object.keys(r)){var i;if(t[e])continue;o=(i=o)!=null?i:copyApiObject(t);o[e]=r[e](o)}return e((n=o)!=null?n:t,s||{},a)}}const r={assertVersion:e=>t=>{throwVersionError(t,e.version)},targets:()=>()=>({}),assumption:()=>()=>{}};function copyApiObject(e){let t=null;if(typeof e.version==="string"&&/^7\./.test(e.version)){t=Object.getPrototypeOf(e);if(t&&(!has(t,"version")||!has(t,"transform")||!has(t,"template")||!has(t,"types"))){t=null}}return Object.assign({},t,e)}function has(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function throwVersionError(e,t){if(typeof e==="number"){if(!Number.isInteger(e)){throw new Error("Expected string or integer value.")}e=`^${e}.0.0-0`}if(typeof e!=="string"){throw new Error("Expected string or integer value.")}const r=Error.stackTraceLimit;if(typeof r==="number"&&r<25){Error.stackTraceLimit=25}let s;if(t.slice(0,2)==="7."){s=new Error(`Requires Babel "^7.0.0-beta.41", but was loaded with "${t}". `+`You'll need to update your @babel/core version.`)}else{s=new Error(`Requires Babel "${e}", but was loaded with "${t}". `+`If you are sure you have a compatible version of @babel/core, `+`it is likely that something in your build process is loading the `+`wrong version. Inspect the stack trace of this error to look for `+`the first entry that doesn't mention "@babel/core" or "babel-core" `+`to see what is calling Babel.`)}if(typeof r==="number"){Error.stackTraceLimit=r}throw Object.assign(s,{code:"BABEL_VERSION_UNSUPPORTED",version:t,range:e})}},3242:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.declare=declare;t.declarePreset=void 0;function declare(e){return(t,r,a)=>{var n;let o;for(const e of Object.keys(s)){var i;if(t[e])continue;o=(i=o)!=null?i:copyApiObject(t);o[e]=s[e](o)}return e((n=o)!=null?n:t,r||{},a)}}const r=declare;t.declarePreset=r;const s={assertVersion:e=>t=>{throwVersionError(t,e.version)},targets:()=>()=>({}),assumption:()=>()=>{}};function copyApiObject(e){let t=null;if(typeof e.version==="string"&&/^7\./.test(e.version)){t=Object.getPrototypeOf(e);if(t&&(!has(t,"version")||!has(t,"transform")||!has(t,"template")||!has(t,"types"))){t=null}}return Object.assign({},t,e)}function has(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function throwVersionError(e,t){if(typeof e==="number"){if(!Number.isInteger(e)){throw new Error("Expected string or integer value.")}e=`^${e}.0.0-0`}if(typeof e!=="string"){throw new Error("Expected string or integer value.")}const r=Error.stackTraceLimit;if(typeof r==="number"&&r<25){Error.stackTraceLimit=25}let s;if(t.slice(0,2)==="7."){s=new Error(`Requires Babel "^7.0.0-beta.41", but was loaded with "${t}". `+`You'll need to update your @babel/core version.`)}else{s=new Error(`Requires Babel "${e}", but was loaded with "${t}". `+`If you are sure you have a compatible version of @babel/core, `+`it is likely that something in your build process is loading the `+`wrong version. Inspect the stack trace of this error to look for `+`the first entry that doesn't mention "@babel/core" or "babel-core" `+`to see what is calling Babel.`)}if(typeof r==="number"){Error.stackTraceLimit=r}throw Object.assign(s,{code:"BABEL_VERSION_UNSUPPORTED",version:t,range:e})}},9567:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(323);var a=r(9102);var n=r(8622);const{callExpression:o,cloneNode:i,isIdentifier:l,isThisExpression:c,yieldExpression:u}=n;const p={Function(e){e.skip()},AwaitExpression(e,{wrapAwait:t}){const r=e.get("argument");e.replaceWith(u(t?o(i(t),[r.node]):r.node))}};function _default(e,t,r,n){e.traverse(p,{wrapAwait:t.wrapAwait});const o=checkIsIIFE(e);e.node.async=false;e.node.generator=true;(0,s.default)(e,i(t.wrapAsync),r,n);const u=e.isObjectMethod()||e.isClassMethod()||e.parentPath.isObjectProperty()||e.parentPath.isClassProperty();if(!u&&!o&&e.isExpression()){(0,a.default)(e)}function checkIsIIFE(e){if(e.parentPath.isCallExpression({callee:e.node})){return true}const{parentPath:t}=e;if(t.isMemberExpression()&&l(t.node.property,{name:"bind"})){const{parentPath:e}=t;return e.isCallExpression()&&e.node.arguments.length===1&&c(e.node.arguments[0])&&e.parentPath.isCallExpression({callee:e.node})}return false}}},3790:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;Object.defineProperty(t,"environmentVisitor",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"skipAllButComputedKey",{enumerable:true,get:function(){return o.skipAllButComputedKey}});var s=r(7369);var a=r(2569);var n=r(5500);var o=r(8411);var i=r(8622);const{assignmentExpression:l,booleanLiteral:c,callExpression:u,cloneNode:p,identifier:d,memberExpression:f,sequenceExpression:y,stringLiteral:g,thisExpression:h}=i;function getPrototypeOfExpression(e,t,r,s){e=p(e);const a=t||s?e:f(e,d("prototype"));return u(r.addHelper("getPrototypeOf"),[a])}const b=s.default.visitors.merge([o.default,{Super(e,t){const{node:r,parentPath:s}=e;if(!s.isMemberExpression({object:r}))return;t.handle(s)}}]);const x=s.default.visitors.merge([o.default,{Scopable(e,{refName:t}){const r=e.scope.getOwnBinding(t);if(r&&r.identifier.name===t){e.scope.rename(t)}}}]);const v={memoise(e,t){const{scope:r,node:s}=e;const{computed:a,property:n}=s;if(!a){return}const o=r.maybeGenerateMemoised(n);if(!o){return}this.memoiser.set(n,o,t)},prop(e){const{computed:t,property:r}=e.node;if(this.memoiser.has(r)){return p(this.memoiser.get(r))}if(t){return p(r)}return g(r.name)},get(e){return this._get(e,this._getThisRefs())},_get(e,t){const r=getPrototypeOfExpression(this.getObjectRef(),this.isStatic,this.file,this.isPrivateMethod);return u(this.file.addHelper("get"),[t.memo?y([t.memo,r]):r,this.prop(e),t.this])},_getThisRefs(){if(!this.isDerivedConstructor){return{this:h()}}const e=this.scope.generateDeclaredUidIdentifier("thisSuper");return{memo:l("=",e,h()),this:p(e)}},set(e,t){const r=this._getThisRefs();const s=getPrototypeOfExpression(this.getObjectRef(),this.isStatic,this.file,this.isPrivateMethod);return u(this.file.addHelper("set"),[r.memo?y([r.memo,s]):s,this.prop(e),t,r.this,c(e.isInStrictMode())])},destructureSet(e){throw e.buildCodeFrameError(`Destructuring to a super field is not supported yet.`)},call(e,t){const r=this._getThisRefs();return(0,n.default)(this._get(e,r),p(r.this),t,false)},optionalCall(e,t){const r=this._getThisRefs();return(0,n.default)(this._get(e,r),p(r.this),t,true)}};const j=Object.assign({},v,{prop(e){const{property:t}=e.node;if(this.memoiser.has(t)){return p(this.memoiser.get(t))}return p(t)},get(e){const{isStatic:t,getSuperRef:r}=this;const{computed:s}=e.node;const a=this.prop(e);let n;if(t){var o;n=(o=r())!=null?o:f(d("Function"),d("prototype"))}else{var i;n=f((i=r())!=null?i:d("Object"),d("prototype"))}return f(n,a,s)},set(e,t){const{computed:r}=e.node;const s=this.prop(e);return l("=",f(h(),s,r),t)},destructureSet(e){const{computed:t}=e.node;const r=this.prop(e);return f(h(),r,t)},call(e,t){return(0,n.default)(this.get(e),h(),t,false)},optionalCall(e,t){return(0,n.default)(this.get(e),h(),t,true)}});class ReplaceSupers{constructor(e){var t;const r=e.methodPath;this.methodPath=r;this.isDerivedConstructor=r.isClassMethod({kind:"constructor"})&&!!e.superRef;this.isStatic=r.isObjectMethod()||r.node.static||(r.isStaticBlock==null?void 0:r.isStaticBlock());this.isPrivateMethod=r.isPrivate()&&r.isMethod();this.file=e.file;this.constantSuper=(t=e.constantSuper)!=null?t:e.isLoose;this.opts=e}getObjectRef(){return p(this.opts.objectRef||this.opts.getObjectRef())}getSuperRef(){if(this.opts.superRef)return p(this.opts.superRef);if(this.opts.getSuperRef)return p(this.opts.getSuperRef())}replace(){if(this.opts.refToPreserve){this.methodPath.traverse(x,{refName:this.opts.refToPreserve.name})}const e=this.constantSuper?j:v;(0,a.default)(this.methodPath,b,Object.assign({file:this.file,scope:this.methodPath.scope,isDerivedConstructor:this.isDerivedConstructor,isStatic:this.isStatic,isPrivateMethod:this.isPrivateMethod,getObjectRef:this.getObjectRef.bind(this),getSuperRef:this.getSuperRef.bind(this),boundGet:e.get},e))}}t["default"]=ReplaceSupers},1663:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=simplifyAccess;var s=r(8622);const{LOGICAL_OPERATORS:a,assignmentExpression:n,binaryExpression:o,cloneNode:i,identifier:l,logicalExpression:c,numericLiteral:u,sequenceExpression:p,unaryExpression:d}=s;function simplifyAccess(e,t,r=true){e.traverse(f,{scope:e.scope,bindingNames:t,seen:new WeakSet,includeUpdateExpression:r})}const f={UpdateExpression:{exit(e){const{scope:t,bindingNames:r,includeUpdateExpression:s}=this;if(!s){return}const a=e.get("argument");if(!a.isIdentifier())return;const c=a.node.name;if(!r.has(c))return;if(t.getBinding(c)!==e.scope.getBinding(c)){return}if(e.parentPath.isExpressionStatement()&&!e.isCompletionRecord()){const t=e.node.operator=="++"?"+=":"-=";e.replaceWith(n(t,a.node,u(1)))}else if(e.node.prefix){e.replaceWith(n("=",l(c),o(e.node.operator[0],d("+",a.node),u(1))))}else{const t=e.scope.generateUidIdentifierBasedOnNode(a.node,"old");const r=t.name;e.scope.push({id:t});const s=o(e.node.operator[0],l(r),u(1));e.replaceWith(p([n("=",l(r),d("+",a.node)),n("=",i(a.node),s),l(r)]))}}},AssignmentExpression:{exit(e){const{scope:t,seen:r,bindingNames:s}=this;if(e.node.operator==="=")return;if(r.has(e.node))return;r.add(e.node);const l=e.get("left");if(!l.isIdentifier())return;const u=l.node.name;if(!s.has(u))return;if(t.getBinding(u)!==e.scope.getBinding(u)){return}const p=e.node.operator.slice(0,-1);if(a.includes(p)){e.replaceWith(c(p,e.node.left,n("=",i(e.node.left),e.node.right)))}else{e.node.right=o(p,i(e.node.left),e.node.right);e.node.operator="="}}}}},4410:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isTransparentExprWrapper=isTransparentExprWrapper;t.skipTransparentExprWrapperNodes=skipTransparentExprWrapperNodes;t.skipTransparentExprWrappers=skipTransparentExprWrappers;var s=r(8622);const{isParenthesizedExpression:a,isTSAsExpression:n,isTSNonNullExpression:o,isTSTypeAssertion:i,isTypeCastExpression:l}=s;function isTransparentExprWrapper(e){return n(e)||i(e)||o(e)||l(e)||a(e)}function skipTransparentExprWrappers(e){while(isTransparentExprWrapper(e.node)){e=e.get("expression")}return e}function skipTransparentExprWrapperNodes(e){while(isTransparentExprWrapper(e)){e=e.expression}return e}},821:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=splitExportDeclaration;var s=r(8622);const{cloneNode:a,exportNamedDeclaration:n,exportSpecifier:o,identifier:i,variableDeclaration:l,variableDeclarator:c}=s;function splitExportDeclaration(e){if(!e.isExportDeclaration()){throw new Error("Only export declarations can be split.")}const t=e.isExportDefaultDeclaration();const r=e.get("declaration");const s=r.isClassDeclaration();if(t){const t=r.isFunctionDeclaration()||s;const u=r.isScope()?r.scope.parent:r.scope;let p=r.node.id;let d=false;if(!p){d=true;p=u.generateUidIdentifier("default");if(t||r.isFunctionExpression()||r.isClassExpression()){r.node.id=a(p)}}const f=t?r:l("var",[c(a(p),r.node)]);const y=n(null,[o(a(p),i("default"))]);e.insertAfter(y);e.replaceWith(f);if(d){u.registerDeclaration(e)}return e}if(e.get("specifiers").length>0){throw new Error("It doesn't make sense to split exported specifiers.")}const u=r.getOuterBindingIdentifiers();const p=Object.keys(u).map((e=>o(i(e),i(e))));const d=n(null,p);e.insertAfter(d);e.replaceWith(r.node);return e}},366:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isIdentifierChar=isIdentifierChar;t.isIdentifierName=isIdentifierName;t.isIdentifierStart=isIdentifierStart;let r="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ";let s="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_";const a=new RegExp("["+r+"]");const n=new RegExp("["+r+s+"]");r=s=null;const o=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938];const i=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function isInAstralSet(e,t){let r=65536;for(let s=0,a=t.length;se)return false;r+=t[s+1];if(r>=e)return true}return false}function isIdentifierStart(e){if(e<65)return e===36;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&a.test(String.fromCharCode(e))}return isInAstralSet(e,o)}function isIdentifierChar(e){if(e<48)return e===36;if(e<58)return true;if(e<65)return false;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&n.test(String.fromCharCode(e))}return isInAstralSet(e,o)||isInAstralSet(e,i)}function isIdentifierName(e){let t=true;for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"isIdentifierChar",{enumerable:true,get:function(){return s.isIdentifierChar}});Object.defineProperty(t,"isIdentifierName",{enumerable:true,get:function(){return s.isIdentifierName}});Object.defineProperty(t,"isIdentifierStart",{enumerable:true,get:function(){return s.isIdentifierStart}});Object.defineProperty(t,"isKeyword",{enumerable:true,get:function(){return a.isKeyword}});Object.defineProperty(t,"isReservedWord",{enumerable:true,get:function(){return a.isReservedWord}});Object.defineProperty(t,"isStrictBindOnlyReservedWord",{enumerable:true,get:function(){return a.isStrictBindOnlyReservedWord}});Object.defineProperty(t,"isStrictBindReservedWord",{enumerable:true,get:function(){return a.isStrictBindReservedWord}});Object.defineProperty(t,"isStrictReservedWord",{enumerable:true,get:function(){return a.isStrictReservedWord}});var s=r(366);var a=r(1683)},1683:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isKeyword=isKeyword;t.isReservedWord=isReservedWord;t.isStrictBindOnlyReservedWord=isStrictBindOnlyReservedWord;t.isStrictBindReservedWord=isStrictBindReservedWord;t.isStrictReservedWord=isStrictReservedWord;const r={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]};const s=new Set(r.keyword);const a=new Set(r.strict);const n=new Set(r.strictBind);function isReservedWord(e,t){return t&&e==="await"||e==="enum"}function isStrictReservedWord(e,t){return isReservedWord(e,t)||a.has(e)}function isStrictBindOnlyReservedWord(e){return n.has(e)}function isStrictBindReservedWord(e,t){return isStrictReservedWord(e,t)||isStrictBindOnlyReservedWord(e)}function isKeyword(e){return s.has(e)}},7450:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.findSuggestion=findSuggestion;const{min:r}=Math;function levenshtein(e,t){let s=[],a=[],n,o;const i=e.length,l=t.length;if(!i){return l}if(!l){return i}for(o=0;o<=l;o++){s[o]=o}for(n=1;n<=i;n++){for(a=[n],o=1;o<=l;o++){a[o]=e[n-1]===t[o-1]?s[o-1]:r(s[o-1],s[o],a[o-1])+1}s=a}return a[l]}function findSuggestion(e,t){const s=t.map((t=>levenshtein(t,e)));return t[s.indexOf(r(...s))]}},3317:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"OptionValidator",{enumerable:true,get:function(){return s.OptionValidator}});Object.defineProperty(t,"findSuggestion",{enumerable:true,get:function(){return a.findSuggestion}});var s=r(4);var a=r(7450)},4:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.OptionValidator=void 0;var s=r(7450);class OptionValidator{constructor(e){this.descriptor=e}validateTopLevelOptions(e,t){const r=Object.keys(t);for(const t of Object.keys(e)){if(!r.includes(t)){throw new Error(this.formatMessage(`'${t}' is not a valid top-level option.\n- Did you mean '${(0,s.findSuggestion)(t,r)}'?`))}}}validateBooleanOption(e,t,r){if(t===undefined){return r}else{this.invariant(typeof t==="boolean",`'${e}' option must be a boolean.`)}return t}validateStringOption(e,t,r){if(t===undefined){return r}else{this.invariant(typeof t==="string",`'${e}' option must be a string.`)}return t}invariant(e,t){if(!e){throw new Error(this.formatMessage(t))}}formatMessage(e){return`${this.descriptor}: ${e}`}}t.OptionValidator=OptionValidator},323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=wrapFunction;var s=r(1113);var a=r(5955);var n=r(8622);const{blockStatement:o,callExpression:i,functionExpression:l,isAssignmentPattern:c,isRestElement:u,returnStatement:p}=n;const d=a.default.expression(`\n (function () {\n var REF = FUNCTION;\n return function NAME(PARAMS) {\n return REF.apply(this, arguments);\n };\n })()\n`);const f=a.default.expression(`\n (function () {\n var REF = FUNCTION;\n function NAME(PARAMS) {\n return REF.apply(this, arguments);\n }\n return NAME;\n })()\n`);const y=(0,a.default)(`\n function NAME(PARAMS) { return REF.apply(this, arguments); }\n function REF() {\n REF = FUNCTION;\n return REF.apply(this, arguments);\n }\n`);function classOrObjectMethod(e,t){const r=e.node;const s=r.body;const a=l(null,[],o(s.body),true);s.body=[p(i(i(t,[a]),[]))];r.async=false;r.generator=false;e.get("body.body.0.argument.callee.arguments.0").unwrapFunctionEnvironment()}function plainFunction(e,t,r,a){const n=e.node;const o=e.isFunctionDeclaration();const l=n.id;const p=o?y:l?f:d;if(e.isArrowFunctionExpression()){e.arrowFunctionToExpression({noNewArrows:r})}n.id=null;if(o){n.type="FunctionExpression"}const g=i(t,[n]);const h=[];for(const t of n.params){if(c(t)||u(t)){break}h.push(e.scope.generateUidIdentifier("x"))}const b=p({NAME:l||null,REF:e.scope.generateUidIdentifier(l?l.name:"ref"),FUNCTION:g,PARAMS:h});if(o){e.replaceWith(b[0]);e.insertAfter(b[1])}else{const t=b.callee.body.body[1].argument;if(!l){(0,s.default)({node:t,parent:e.parent,scope:e.scope})}if(!t||t.id||!a&&h.length){e.replaceWith(b)}else{e.replaceWith(g)}}}function wrapFunction(e,t,r=true,s=false){if(e.isMethod()){classOrObjectMethod(e,t)}else{plainFunction(e,t,r,s)}}},8739:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=highlight;t.getChalk=getChalk;t.shouldHighlight=shouldHighlight;var s=r(1745);var a=r(7702);var n=r(8542);const o=new Set(["as","async","from","get","of","set"]);function getDefs(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold}}const i=/\r\n|[\n\r\u2028\u2029]/;const l=/^[()[\]{}]$/;let c;{const e=/^[a-z][\w-]*$/i;const getTokenType=function(t,r,s){if(t.type==="name"){if((0,a.isKeyword)(t.value)||(0,a.isStrictReservedWord)(t.value,true)||o.has(t.value)){return"keyword"}if(e.test(t.value)&&(s[r-1]==="<"||s.substr(r-2,2)=="t(e))).join("\n")}else{r+=a}}return r}function shouldHighlight(e){return!!n.supportsColor||e.forceColor}function getChalk(e){return e.forceColor?new n.constructor({enabled:true,level:1}):n}function highlight(e,t={}){if(e!==""&&shouldHighlight(t)){const r=getChalk(t);const s=getDefs(r);return highlightTokens(s,e)}else{return e}}},8430:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);function shouldTransform(e){const{node:t}=e;const r=t.id;if(!r)return false;const s=r.name;const a=e.scope.getOwnBinding(s);if(a===undefined){return false}if(a.kind!=="param"){return false}if(a.identifier===a.path.node){return false}return s}var a=s.declare((e=>{e.assertVersion("^7.16.0");return{name:"plugin-bugfix-safari-id-destructuring-collision-in-function-expression",visitor:{FunctionExpression(e){const t=shouldTransform(e);if(t){const{scope:r}=e;const s=r.generateUid(t);r.rename(t,s)}}}}}));t["default"]=a},1511:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);var a=r(7082);var n=r(4410);var o=r(8304);function matchAffectedArguments(e){const t=e.findIndex((e=>o.types.isSpreadElement(e)));return t>=0&&t!==e.length-1}function shouldTransform(e){let t=e;const r=[];while(t.isOptionalMemberExpression()||t.isOptionalCallExpression()){const{node:e}=t;r.push(e);if(t.isOptionalMemberExpression()){t=n.skipTransparentExprWrappers(t.get("object"))}else if(t.isOptionalCallExpression()){t=n.skipTransparentExprWrappers(t.get("callee"))}}for(let e=0;e{var t,r;e.assertVersion(7);const s=(t=e.assumption("noDocumentAll"))!=null?t:false;const n=(r=e.assumption("pureGetters"))!=null?r:false;return{name:"bugfix-v8-spread-parameters-in-optional-chaining",visitor:{"OptionalCallExpression|OptionalMemberExpression"(e){if(shouldTransform(e)){a.transform(e,{noDocumentAll:s,pureGetters:n})}}}}}));t["default"]=i},3859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(8304);const a=(0,s.template)(`\n async function wrapper() {\n var ITERATOR_ABRUPT_COMPLETION = false;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY;\n try {\n for (\n var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY;\n ITERATOR_ABRUPT_COMPLETION = !(STEP_KEY = await ITERATOR_KEY.next()).done;\n ITERATOR_ABRUPT_COMPLETION = false\n ) {\n }\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (ITERATOR_ABRUPT_COMPLETION && ITERATOR_KEY.return != null) {\n await ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n }\n`);function _default(e,{getAsyncIterator:t}){const{node:r,scope:n,parent:o}=e;const i=n.generateUidIdentifier("step");const l=s.types.memberExpression(i,s.types.identifier("value"));const c=r.left;let u;if(s.types.isIdentifier(c)||s.types.isPattern(c)||s.types.isMemberExpression(c)){u=s.types.expressionStatement(s.types.assignmentExpression("=",c,l))}else if(s.types.isVariableDeclaration(c)){u=s.types.variableDeclaration(c.kind,[s.types.variableDeclarator(c.declarations[0].id,l)])}let p=a({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_ABRUPT_COMPLETION:n.generateUidIdentifier("iteratorAbruptCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:n.generateUidIdentifier("iterator"),GET_ITERATOR:t,OBJECT:r.right,STEP_KEY:s.types.cloneNode(i)});p=p.body.body;const d=s.types.isLabeledStatement(o);const f=p[3].block.body;const y=f[0];if(d){f[0]=s.types.labeledStatement(o.label,y)}return{replaceParent:d,node:p,declar:u,loop:y}}},6009:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9567);var n=r(7978);var o=r(8304);var i=r(3859);var l=(0,s.declare)((e=>{e.assertVersion(7);const t={Function(e){e.skip()},YieldExpression({node:e},t){if(!e.delegate)return;const r=t.addHelper("asyncGeneratorDelegate");e.argument=o.types.callExpression(r,[o.types.callExpression(t.addHelper("asyncIterator"),[e.argument]),t.addHelper("awaitAsyncGenerator")])}};const r={Function(e){e.skip()},ForOfStatement(e,{file:t}){const{node:r}=e;if(!r.await)return;const s=(0,i.default)(e,{getAsyncIterator:t.addHelper("asyncIterator")});const{declar:a,loop:n}=s;const l=n.body;e.ensureBlock();if(a){l.body.push(a)}l.body.push(...r.body.body);o.types.inherits(n,r);o.types.inherits(n.body,r.body);if(s.replaceParent){e.parentPath.replaceWithMultiple(s.node)}else{e.replaceWithMultiple(s.node)}}};const s={Function(e,s){if(!e.node.async)return;e.traverse(r,s);if(!e.node.generator)return;e.traverse(t,s);(0,a.default)(e,{wrapAsync:s.addHelper("wrapAsyncGenerator"),wrapAwait:s.addHelper("awaitAsyncGenerator")})}};return{name:"proposal-async-generator-functions",inherits:n.default,visitor:{Program(e,t){e.traverse(s,t)}}}}));t["default"]=l},1756:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2924);var n=(0,s.declare)(((e,t)=>{e.assertVersion(7);return(0,a.createClassFeaturePlugin)({name:"proposal-class-properties",api:e,feature:a.FEATURES.fields,loose:t.loose,manipulateOptions(e,t){t.plugins.push("classProperties","classPrivateProperties")}})}));t["default"]=n},4197:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2924);var n=(0,s.declare)(((e,t)=>{e.assertVersion(7);return(0,a.createClassFeaturePlugin)({name:"proposal-class-properties",api:e,feature:a.FEATURES.fields,loose:t.loose,manipulateOptions(e,t){t.plugins.push("classProperties","classPrivateProperties")}})}));t["default"]=n},655:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2288);var n=r(2924);function generateUid(e,t){const r="";let s;let a=1;do{s=e._generateUid(r,a);a++}while(t.has(s));return s}var o=(0,s.declare)((({types:e,template:t,assertVersion:r})=>{r("^7.12.0");return{name:"proposal-class-static-block",inherits:a.default,pre(){(0,n.enableFeature)(this.file,n.FEATURES.staticBlocks,false)},visitor:{ClassBody(r){const{scope:s}=r;const a=new Set;const n=r.get("body");for(const e of n){if(e.isPrivate()){a.add(e.get("key.id").node.name)}}for(const r of n){if(!r.isStaticBlock())continue;const n=generateUid(s,a);a.add(n);const o=e.privateName(e.identifier(n));let i;const l=r.node.body;if(l.length===1&&e.isExpressionStatement(l[0])){i=l[0].expression}else{i=t.expression.ast`(() => { ${l} })()`}r.replaceWith(e.classPrivateProperty(o,i,[],true))}}}}}));t["default"]=o},2962:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9854);const n=["commonjs","amd","systemjs"];const o=`@babel/plugin-proposal-dynamic-import depends on a modules\ntransform plugin. Supported plugins are:\n - @babel/plugin-transform-modules-commonjs ^7.4.0\n - @babel/plugin-transform-modules-amd ^7.4.0\n - @babel/plugin-transform-modules-systemjs ^7.4.0\n\nIf you are using Webpack or Rollup and thus don't want\nBabel to transpile your imports and exports, you can use\nthe @babel/plugin-syntax-dynamic-import plugin and let your\nbundler handle dynamic imports.\n`;var i=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-dynamic-import",inherits:a.default,pre(){this.file.set("@babel/plugin-proposal-dynamic-import","7.16.7")},visitor:{Program(){const e=this.file.get("@babel/plugin-transform-modules-*");if(!n.includes(e)){throw new Error(o)}}}}}));t["default"]=i},985:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9081);var n=r(8304);var o=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-export-namespace-from",inherits:a.default,visitor:{ExportNamedDeclaration(e){var t;const{node:r,scope:s}=e;const{specifiers:a}=r;const o=n.types.isExportDefaultSpecifier(a[0])?1:0;if(!n.types.isExportNamespaceSpecifier(a[o]))return;const i=[];if(o===1){i.push(n.types.exportNamedDeclaration(null,[a.shift()],r.source))}const l=a.shift();const{exported:c}=l;const u=s.generateUidIdentifier((t=c.name)!=null?t:c.value);i.push(n.types.importDeclaration([n.types.importNamespaceSpecifier(u)],n.types.cloneNode(r.source)),n.types.exportNamedDeclaration(null,[n.types.exportSpecifier(n.types.cloneNode(u),c)]));if(r.specifiers.length>=1){i.push(r)}const[p]=e.replaceWithMultiple(i);e.scope.registerDeclaration(p)}}}}));t["default"]=o},2521:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9081);var n=r(8304);var o=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-export-namespace-from",inherits:a.default,visitor:{ExportNamedDeclaration(e){var t;const{node:r,scope:s}=e;const{specifiers:a}=r;const o=n.types.isExportDefaultSpecifier(a[0])?1:0;if(!n.types.isExportNamespaceSpecifier(a[o]))return;const i=[];if(o===1){i.push(n.types.exportNamedDeclaration(null,[a.shift()],r.source))}const l=a.shift();const{exported:c}=l;const u=s.generateUidIdentifier((t=c.name)!=null?t:c.value);i.push(n.types.importDeclaration([n.types.importNamespaceSpecifier(u)],n.types.cloneNode(r.source)),n.types.exportNamedDeclaration(null,[n.types.exportSpecifier(n.types.cloneNode(u),c)]));if(r.specifiers.length>=1){i.push(r)}const[p]=e.replaceWithMultiple(i);e.scope.registerDeclaration(p)}}}}));t["default"]=o},113:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(4602);var n=(0,s.declare)((e=>{e.assertVersion(7);const t=/(\\*)([\u2028\u2029])/g;function replace(e,t,r){const s=t.length%2===1;if(s)return e;return`${t}\\u${r.charCodeAt(0).toString(16)}`}return{name:"proposal-json-strings",inherits:a.default,visitor:{"DirectiveLiteral|StringLiteral"({node:e}){const{extra:r}=e;if(!(r!=null&&r.raw))return;r.raw=r.raw.replace(t,replace)}}}}));t["default"]=n},1740:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(6709);var n=r(8304);var o=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-logical-assignment-operators",inherits:a.default,visitor:{AssignmentExpression(e){const{node:t,scope:r}=e;const{operator:s,left:a,right:o}=t;const i=s.slice(0,-1);if(!n.types.LOGICAL_OPERATORS.includes(i)){return}const l=n.types.cloneNode(a);if(n.types.isMemberExpression(a)){const{object:e,property:t,computed:s}=a;const o=r.maybeGenerateMemoised(e);if(o){a.object=o;l.object=n.types.assignmentExpression("=",n.types.cloneNode(o),e)}if(s){const e=r.maybeGenerateMemoised(t);if(e){a.property=e;l.property=n.types.assignmentExpression("=",n.types.cloneNode(e),t)}}}e.replaceWith(n.types.logicalExpression(i,l,n.types.assignmentExpression("=",a,o)))}}}}));t["default"]=o},4742:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(3835);var n=r(8304);var o=(0,s.declare)(((e,{loose:t=false})=>{var r;e.assertVersion(7);const s=(r=e.assumption("noDocumentAll"))!=null?r:t;return{name:"proposal-nullish-coalescing-operator",inherits:a.default,visitor:{LogicalExpression(e){const{node:t,scope:r}=e;if(t.operator!=="??"){return}let a;let o;if(r.isStatic(t.left)){a=t.left;o=n.types.cloneNode(t.left)}else if(r.path.isPattern()){e.replaceWith(n.template.statement.ast`(() => ${e.node})()`);return}else{a=r.generateUidIdentifierBasedOnNode(t.left);r.push({id:n.types.cloneNode(a)});o=n.types.assignmentExpression("=",a,t.left)}e.replaceWith(n.types.conditionalExpression(s?n.types.binaryExpression("!=",o,n.types.nullLiteral()):n.types.logicalExpression("&&",n.types.binaryExpression("!==",o,n.types.nullLiteral()),n.types.binaryExpression("!==",n.types.cloneNode(a),r.buildUndefinedNode())),n.types.cloneNode(a),t.right))}}}}));t["default"]=o},1899:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3962);var a=r(3537);function remover({node:e}){var t;const{extra:r}=e;if(r!=null&&(t=r.raw)!=null&&t.includes("_")){r.raw=r.raw.replace(/_/g,"")}}var n=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-numeric-separator",inherits:a.default,visitor:{NumericLiteral:remover,BigIntLiteral:remover}}}));t["default"]=n},9448:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(3537);function remover({node:e}){var t;const{extra:r}=e;if(r!=null&&(t=r.raw)!=null&&t.includes("_")){r.raw=r.raw.replace(/_/g,"")}}var n=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-numeric-separator",inherits:a.default,visitor:{NumericLiteral:remover,BigIntLiteral:remover}}}));t["default"]=n},6806:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3962);var a=r(4396);var n=r(8304);var o=r(9866);var i=r(7013);var l=r(1419);const c=(()=>{const e=n.types.identifier("a");const t=n.types.objectProperty(n.types.identifier("key"),e);const r=n.types.objectPattern([t]);return n.types.isReferenced(e,t,r)?1:0})();var u=(0,s.declare)(((e,t)=>{var r,s,u,p;e.assertVersion(7);const d=e.targets();const f=!(0,i.isRequired)("es6.object.assign",d,{compatData:l});const{useBuiltIns:y=f,loose:g=false}=t;if(typeof g!=="boolean"){throw new Error(".loose must be a boolean, or undefined")}const h=(r=e.assumption("ignoreFunctionLength"))!=null?r:g;const b=(s=e.assumption("objectRestNoSymbols"))!=null?s:g;const x=(u=e.assumption("pureGetters"))!=null?u:g;const v=(p=e.assumption("setSpreadProperties"))!=null?p:g;function getExtendsHelper(e){return y?n.types.memberExpression(n.types.identifier("Object"),n.types.identifier("assign")):e.addHelper("extends")}function hasRestElement(e){let t=false;visitRestElements(e,(e=>{t=true;e.stop()}));return t}function hasObjectPatternRestElement(e){let t=false;visitRestElements(e,(e=>{if(e.parentPath.isObjectPattern()){t=true;e.stop()}}));return t}function visitRestElements(e,t){e.traverse({Expression(e){const t=e.parent.type;if(t==="AssignmentPattern"&&e.key==="right"||t==="ObjectProperty"&&e.parent.computed&&e.key==="key"){e.skip()}},RestElement:t})}function hasSpread(e){for(const t of e.properties){if(n.types.isSpreadElement(t)){return true}}return false}function extractNormalizedKeys(e){const t=e.node.properties;const r=[];let s=true;let a=false;for(const e of t){if(n.types.isIdentifier(e.key)&&!e.computed){r.push(n.types.stringLiteral(e.key.name))}else if(n.types.isTemplateLiteral(e.key)){r.push(n.types.cloneNode(e.key));a=true}else if(n.types.isLiteral(e.key)){r.push(n.types.stringLiteral(String(e.key.value)))}else{r.push(n.types.cloneNode(e.key));s=false}}return{keys:r,allLiteral:s,hasTemplateLiteral:a}}function replaceImpureComputedKeys(e,t){const r=[];for(const s of e){const e=s.get("key");if(s.node.computed&&!e.isPure()){const s=t.generateUidBasedOnNode(e.node);const a=n.types.variableDeclarator(n.types.identifier(s),e.node);r.push(a);e.replaceWith(n.types.identifier(s))}}return r}function removeUnusedExcludedKeys(e){const t=e.getOuterBindingIdentifierPaths();Object.keys(t).forEach((r=>{const s=t[r].parentPath;if(e.scope.getBinding(r).references>c||!s.isObjectProperty()){return}s.remove()}))}function createObjectRest(e,t,r){const s=e.get("properties");const a=s[s.length-1];n.types.assertRestElement(a.node);const o=n.types.cloneNode(a.node);a.remove();const i=replaceImpureComputedKeys(e.get("properties"),e.scope);const{keys:l,allLiteral:c,hasTemplateLiteral:u}=extractNormalizedKeys(e);if(l.length===0){return[i,o.argument,n.types.callExpression(getExtendsHelper(t),[n.types.objectExpression([]),n.types.cloneNode(r)])]}let p;if(!c){p=n.types.callExpression(n.types.memberExpression(n.types.arrayExpression(l),n.types.identifier("map")),[t.addHelper("toPropertyKey")])}else{p=n.types.arrayExpression(l);if(!u&&!n.types.isProgram(e.scope.block)){const t=e.findParent((e=>e.isProgram()));const r=e.scope.generateUidIdentifier("excluded");t.scope.push({id:r,init:p,kind:"const"});p=n.types.cloneNode(r)}}return[i,o.argument,n.types.callExpression(t.addHelper(`objectWithoutProperties${b?"Loose":""}`),[n.types.cloneNode(r),p])]}function replaceRestElement(e,t,r){if(t.isAssignmentPattern()){replaceRestElement(e,t.get("left"),r);return}if(t.isArrayPattern()&&hasRestElement(t)){const s=t.get("elements");for(let t=0;te.skip(),"ReferencedIdentifier|BindingIdentifier":IdentifierHandler},e.scope)}}}if(!a){for(let e=0;ee>=n-1||r.has(e);(0,o.convertFunctionParams)(e,h,shouldTransformParam,replaceRestElement)}},VariableDeclarator(e,t){if(!e.get("id").isObjectPattern()){return}let r=e;const s=e;visitRestElements(e.get("id"),(e=>{if(!e.parentPath.isObjectPattern()){return}if(s.node.id.properties.length>1&&!n.types.isIdentifier(s.node.init)){const t=e.scope.generateUidIdentifierBasedOnNode(s.node.init,"ref");s.insertBefore(n.types.variableDeclarator(t,s.node.init));s.replaceWith(n.types.variableDeclarator(s.node.id,n.types.cloneNode(t)));return}let a=s.node.init;const o=[];let i;e.findParent((e=>{if(e.isObjectProperty()){o.unshift(e)}else if(e.isVariableDeclarator()){i=e.parentPath.node.kind;return true}}));const l=replaceImpureComputedKeys(o,e.scope);o.forEach((e=>{const{node:t}=e;a=n.types.memberExpression(a,n.types.cloneNode(t.key),t.computed||n.types.isLiteral(t.key))}));const c=e.findParent((e=>e.isObjectPattern()));const[u,p,d]=createObjectRest(c,t,a);if(x){removeUnusedExcludedKeys(c)}n.types.assertIdentifier(p);r.insertBefore(u);r.insertBefore(l);r.insertAfter(n.types.variableDeclarator(p,d));r=r.getSibling(r.key+1);e.scope.registerBinding(i,r);if(c.node.properties.length===0){c.findParent((e=>e.isObjectProperty()||e.isVariableDeclarator())).remove()}}))},ExportNamedDeclaration(e){const t=e.get("declaration");if(!t.isVariableDeclaration())return;const r=t.get("declarations").some((e=>hasObjectPatternRestElement(e.get("id"))));if(!r)return;const s=[];for(const t of Object.keys(e.getOuterBindingIdentifiers(e))){s.push(n.types.exportSpecifier(n.types.identifier(t),n.types.identifier(t)))}e.replaceWith(t.node);e.insertAfter(n.types.exportNamedDeclaration(null,s))},CatchClause(e){const t=e.get("param");replaceRestElement(t.parentPath,t)},AssignmentExpression(e,t){const r=e.get("left");if(r.isObjectPattern()&&hasRestElement(r)){const s=[];const a=e.scope.generateUidBasedOnNode(e.node.right,"ref");s.push(n.types.variableDeclaration("var",[n.types.variableDeclarator(n.types.identifier(a),e.node.right)]));const[o,i,l]=createObjectRest(r,t,n.types.identifier(a));if(o.length>0){s.push(n.types.variableDeclaration("var",o))}const c=n.types.cloneNode(e.node);c.right=n.types.identifier(a);s.push(n.types.expressionStatement(c));s.push(n.types.toStatement(n.types.assignmentExpression("=",i,l)));s.push(n.types.expressionStatement(n.types.identifier(a)));e.replaceWithMultiple(s)}},ForXStatement(e){const{node:t,scope:r}=e;const s=e.get("left");const a=t.left;if(!hasObjectPatternRestElement(s)){return}if(!n.types.isVariableDeclaration(a)){const s=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration("var",[n.types.variableDeclarator(s)]);e.ensureBlock();if(t.body.body.length===0&&e.isCompletionRecord()){t.body.body.unshift(n.types.expressionStatement(r.buildUndefinedNode()))}t.body.body.unshift(n.types.expressionStatement(n.types.assignmentExpression("=",a,n.types.cloneNode(s))))}else{const s=a.declarations[0].id;const o=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration(a.kind,[n.types.variableDeclarator(o,null)]);e.ensureBlock();t.body.body.unshift(n.types.variableDeclaration(t.left.kind,[n.types.variableDeclarator(s,n.types.cloneNode(o))]))}},ArrayPattern(e){const t=[];visitRestElements(e,(e=>{if(!e.parentPath.isObjectPattern()){return}const r=e.parentPath;const s=e.scope.generateUidIdentifier("ref");t.push(n.types.variableDeclarator(r.node,s));r.replaceWith(n.types.cloneNode(s));e.skip()}));if(t.length>0){const r=e.getStatementParent();r.insertAfter(n.types.variableDeclaration(r.node.kind||"var",t))}},ObjectExpression(e,t){if(!hasSpread(e.node))return;let r;if(v){r=getExtendsHelper(t)}else{try{r=t.addHelper("objectSpread2")}catch(e){this.file.declarations["objectSpread2"]=null;r=t.addHelper("objectSpread")}}let s=null;let a=[];function make(){const e=a.length>0;const t=n.types.objectExpression(a);a=[];if(!s){s=n.types.callExpression(r,[t]);return}if(x){if(e){s.arguments.push(t)}return}s=n.types.callExpression(n.types.cloneNode(r),[s,...e?[n.types.objectExpression([]),t]:[]])}for(const t of e.node.properties){if(n.types.isSpreadElement(t)){make();s.arguments.push(t.argument)}else{a.push(t)}}if(a.length)make();e.replaceWith(s)}}}}));t["default"]=u},1963:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);var a=r(4396);var n=r(8304);var o=r(962);var i=r(3092);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var l=_interopDefaultLegacy(a);var c={"es6.array.copy-within":{chrome:"45",opera:"32",edge:"12",firefox:"32",safari:"9",node:"4",ios:"9",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.every":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.fill":{chrome:"45",opera:"32",edge:"12",firefox:"31",safari:"7.1",node:"4",ios:"8",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.filter":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.array.find":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",ios:"8",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.find-index":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",ios:"8",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es7.array.flat-map":{chrome:"69",opera:"56",edge:"79",firefox:"62",safari:"12",node:"11",ios:"12",samsung:"10",electron:"4.0"},"es6.array.for-each":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.from":{chrome:"51",opera:"38",edge:"15",firefox:"36",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es7.array.includes":{chrome:"47",opera:"34",edge:"14",firefox:"43",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.36"},"es6.array.index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.is-array":{chrome:"5",opera:"10.50",edge:"12",firefox:"4",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.iterator":{chrome:"66",opera:"53",edge:"12",firefox:"60",safari:"9",node:"10",ios:"9",samsung:"9",rhino:"1.7.13",electron:"3.0"},"es6.array.last-index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.map":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.array.of":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"9",node:"4",ios:"9",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.reduce":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.reduce-right":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.slice":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.array.some":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.sort":{chrome:"63",opera:"50",edge:"12",firefox:"5",safari:"12",node:"10",ie:"9",ios:"12",samsung:"8",rhino:"1.7.13",electron:"3.0"},"es6.array.species":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.date.now":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.date.to-iso-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.date.to-json":{chrome:"5",opera:"12.10",edge:"12",firefox:"4",safari:"10",node:"0.10",ie:"9",android:"4",ios:"10",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.date.to-primitive":{chrome:"47",opera:"34",edge:"15",firefox:"44",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.36"},"es6.date.to-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"10",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.function.bind":{chrome:"7",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.function.has-instance":{chrome:"51",opera:"38",edge:"15",firefox:"50",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.function.name":{chrome:"5",opera:"10.50",edge:"14",firefox:"2",safari:"4",node:"0.10",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.math.acosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.asinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.atanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.cbrt":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.clz32":{chrome:"38",opera:"25",edge:"12",firefox:"31",safari:"9",node:"0.12",ios:"9",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.cosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.expm1":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.fround":{chrome:"38",opera:"25",edge:"12",firefox:"26",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.hypot":{chrome:"38",opera:"25",edge:"12",firefox:"27",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.imul":{chrome:"30",opera:"17",edge:"12",firefox:"23",safari:"7",node:"0.12",android:"4.4",ios:"7",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.math.log1p":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.log10":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.log2":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.sign":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.sinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.tanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.trunc":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.number.constructor":{chrome:"41",opera:"28",edge:"12",firefox:"36",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.number.epsilon":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.14",electron:"0.20"},"es6.number.is-finite":{chrome:"19",opera:"15",edge:"12",firefox:"16",safari:"9",node:"0.12",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",electron:"0.20"},"es6.number.is-integer":{chrome:"34",opera:"21",edge:"12",firefox:"16",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.is-nan":{chrome:"19",opera:"15",edge:"12",firefox:"15",safari:"9",node:"0.12",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",electron:"0.20"},"es6.number.is-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"32",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.max-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.min-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.parse-float":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.14",electron:"0.20"},"es6.number.parse-int":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.14",electron:"0.20"},"es6.object.assign":{chrome:"49",opera:"36",edge:"13",firefox:"36",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.object.create":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es7.object.define-getter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es7.object.define-setter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es6.object.define-property":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.object.define-properties":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es7.object.entries":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",ios:"10.3",samsung:"6",rhino:"1.7.14",electron:"1.4"},"es6.object.freeze":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.get-own-property-descriptor":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es7.object.get-own-property-descriptors":{chrome:"54",opera:"41",edge:"15",firefox:"50",safari:"10.1",node:"7",ios:"10.3",samsung:"6",electron:"1.4"},"es6.object.get-own-property-names":{chrome:"40",opera:"27",edge:"12",firefox:"33",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.object.get-prototype-of":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es7.object.lookup-getter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es7.object.lookup-setter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es6.object.prevent-extensions":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.to-string":{chrome:"57",opera:"44",edge:"15",firefox:"51",safari:"10",node:"8",ios:"10",samsung:"7",electron:"1.7"},"es6.object.is":{chrome:"19",opera:"15",edge:"12",firefox:"22",safari:"9",node:"0.12",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",electron:"0.20"},"es6.object.is-frozen":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.is-sealed":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.is-extensible":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.keys":{chrome:"40",opera:"27",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.object.seal":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.set-prototype-of":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",ie:"11",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es7.object.values":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",ios:"10.3",samsung:"6",rhino:"1.7.14",electron:"1.4"},"es6.promise":{chrome:"51",opera:"38",edge:"14",firefox:"45",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es7.promise.finally":{chrome:"63",opera:"50",edge:"18",firefox:"58",safari:"11.1",node:"10",ios:"11.3",samsung:"8",electron:"3.0"},"es6.reflect.apply":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.construct":{chrome:"49",opera:"36",edge:"13",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.define-property":{chrome:"49",opera:"36",edge:"13",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.delete-property":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.get":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.get-own-property-descriptor":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.get-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.has":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.is-extensible":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.own-keys":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.prevent-extensions":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.set":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.set-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.regexp.constructor":{chrome:"50",opera:"37",edge:"79",firefox:"40",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.regexp.flags":{chrome:"49",opera:"36",edge:"79",firefox:"37",safari:"9",node:"6",ios:"9",samsung:"5",electron:"0.37"},"es6.regexp.match":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",rhino:"1.7.13",electron:"1.1"},"es6.regexp.replace":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.regexp.split":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.regexp.search":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",rhino:"1.7.13",electron:"1.1"},"es6.regexp.to-string":{chrome:"50",opera:"37",edge:"79",firefox:"39",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.symbol":{chrome:"51",opera:"38",edge:"79",firefox:"51",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es7.symbol.async-iterator":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",ios:"12",samsung:"8",electron:"3.0"},"es6.string.anchor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.big":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.blink":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.bold":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.code-point-at":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.ends-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.fixed":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.fontcolor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.fontsize":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.from-code-point":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.includes":{chrome:"41",opera:"28",edge:"12",firefox:"40",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.italics":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.iterator":{chrome:"38",opera:"25",edge:"12",firefox:"36",safari:"9",node:"0.12",ios:"9",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.string.link":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es7.string.pad-start":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",ios:"10",samsung:"7",rhino:"1.7.13",electron:"1.7"},"es7.string.pad-end":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",ios:"10",samsung:"7",rhino:"1.7.13",electron:"1.7"},"es6.string.raw":{chrome:"41",opera:"28",edge:"12",firefox:"34",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.14",electron:"0.21"},"es6.string.repeat":{chrome:"41",opera:"28",edge:"12",firefox:"24",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.small":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.starts-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.strike":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.sub":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.sup":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.trim":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es7.string.trim-left":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",ios:"12",samsung:"9",rhino:"1.7.13",electron:"3.0"},"es7.string.trim-right":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",ios:"12",samsung:"9",rhino:"1.7.13",electron:"3.0"},"es6.typed.array-buffer":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.data-view":{chrome:"5",opera:"12",edge:"12",firefox:"15",safari:"5.1",node:"0.10",ie:"10",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.typed.int8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint8-clamped-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.int16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.int32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.float32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.float64-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.weak-map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",ios:"9",samsung:"5",electron:"1.2"},"es6.weak-set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",ios:"9",samsung:"5",electron:"1.2"}};var u=c;const{isObjectProperty:p,isArrayPattern:d,isObjectPattern:f,isAssignmentPattern:y,isRestElement:g,isIdentifier:h}=n.types;function shouldStoreRHSInTemporaryVariable(e){if(d(e)){const t=e.elements.filter((e=>e!==null));if(t.length>1)return true;else return shouldStoreRHSInTemporaryVariable(t[0])}else if(f(e)){const{properties:t}=e;if(t.length>1)return true;else if(t.length===0)return false;else{const e=t[0];if(p(e)){return shouldStoreRHSInTemporaryVariable(e.value)}else{return shouldStoreRHSInTemporaryVariable(e)}}}else if(y(e)){return shouldStoreRHSInTemporaryVariable(e.left)}else if(g(e)){if(h(e.argument))return true;return shouldStoreRHSInTemporaryVariable(e.argument)}else{return false}}const{isAssignmentPattern:b,isObjectProperty:x}=n.types;{const e=n.types.identifier("a");const t=n.types.objectProperty(n.types.identifier("key"),e);const r=n.types.objectPattern([t]);var v=n.types.isReferenced(e,t,r)?1:0}var j=s.declare(((e,t)=>{var r,s,a,c;e.assertVersion(7);const p=e.targets();const d=!i.isRequired("es6.object.assign",p,{compatData:u});const{useBuiltIns:f=d,loose:y=false}=t;if(typeof y!=="boolean"){throw new Error(".loose must be a boolean, or undefined")}const g=(r=e.assumption("ignoreFunctionLength"))!=null?r:y;const h=(s=e.assumption("objectRestNoSymbols"))!=null?s:y;const j=(a=e.assumption("pureGetters"))!=null?a:y;const E=(c=e.assumption("setSpreadProperties"))!=null?c:y;function getExtendsHelper(e){return f?n.types.memberExpression(n.types.identifier("Object"),n.types.identifier("assign")):e.addHelper("extends")}function hasRestElement(e){let t=false;visitRestElements(e,(e=>{t=true;e.stop()}));return t}function hasObjectPatternRestElement(e){let t=false;visitRestElements(e,(e=>{if(e.parentPath.isObjectPattern()){t=true;e.stop()}}));return t}function visitRestElements(e,t){e.traverse({Expression(e){const{parent:t,key:r}=e;if(b(t)&&r==="right"||x(t)&&t.computed&&r==="key"){e.skip()}},RestElement:t})}function hasSpread(e){for(const t of e.properties){if(n.types.isSpreadElement(t)){return true}}return false}function extractNormalizedKeys(e){const t=e.properties;const r=[];let s=true;let a=false;for(const e of t){if(n.types.isIdentifier(e.key)&&!e.computed){r.push(n.types.stringLiteral(e.key.name))}else if(n.types.isTemplateLiteral(e.key)){r.push(n.types.cloneNode(e.key));a=true}else if(n.types.isLiteral(e.key)){r.push(n.types.stringLiteral(String(e.key.value)))}else{r.push(n.types.cloneNode(e.key));s=false}}return{keys:r,allLiteral:s,hasTemplateLiteral:a}}function replaceImpureComputedKeys(e,t){const r=[];for(const s of e){const e=s.get("key");if(s.node.computed&&!e.isPure()){const s=t.generateUidBasedOnNode(e.node);const a=n.types.variableDeclarator(n.types.identifier(s),e.node);r.push(a);e.replaceWith(n.types.identifier(s))}}return r}function removeUnusedExcludedKeys(e){const t=e.getOuterBindingIdentifierPaths();Object.keys(t).forEach((r=>{const s=t[r].parentPath;if(e.scope.getBinding(r).references>v||!s.isObjectProperty()){return}s.remove()}))}function createObjectRest(e,t,r){const s=e.get("properties");const a=s[s.length-1];n.types.assertRestElement(a.node);const o=n.types.cloneNode(a.node);a.remove();const i=replaceImpureComputedKeys(e.get("properties"),e.scope);const{keys:l,allLiteral:c,hasTemplateLiteral:u}=extractNormalizedKeys(e.node);if(l.length===0){return[i,o.argument,n.types.callExpression(getExtendsHelper(t),[n.types.objectExpression([]),n.types.cloneNode(r)])]}let p;if(!c){p=n.types.callExpression(n.types.memberExpression(n.types.arrayExpression(l),n.types.identifier("map")),[t.addHelper("toPropertyKey")])}else{p=n.types.arrayExpression(l);if(!u&&!n.types.isProgram(e.scope.block)){const t=e.findParent((e=>e.isProgram()));const r=e.scope.generateUidIdentifier("excluded");t.scope.push({id:r,init:p,kind:"const"});p=n.types.cloneNode(r)}}return[i,o.argument,n.types.callExpression(t.addHelper(`objectWithoutProperties${h?"Loose":""}`),[n.types.cloneNode(r),p])]}function replaceRestElement(e,t,r){if(t.isAssignmentPattern()){replaceRestElement(e,t.get("left"),r);return}if(t.isArrayPattern()&&hasRestElement(t)){const s=t.get("elements");for(let t=0;te.skip(),"ReferencedIdentifier|BindingIdentifier":IdentifierHandler},e.scope)}}}if(!a){for(let s=0;se>=n-1||r.has(e);o.convertFunctionParams(e,g,shouldTransformParam,replaceRestElement)}},VariableDeclarator(e,t){if(!e.get("id").isObjectPattern()){return}let r=e;const s=e;visitRestElements(e.get("id"),(e=>{if(!e.parentPath.isObjectPattern()){return}if(shouldStoreRHSInTemporaryVariable(s.node.id)&&!n.types.isIdentifier(s.node.init)){const t=e.scope.generateUidIdentifierBasedOnNode(s.node.init,"ref");s.insertBefore(n.types.variableDeclarator(t,s.node.init));s.replaceWith(n.types.variableDeclarator(s.node.id,n.types.cloneNode(t)));return}let a=s.node.init;const o=[];let i;e.findParent((e=>{if(e.isObjectProperty()){o.unshift(e)}else if(e.isVariableDeclarator()){i=e.parentPath.node.kind;return true}}));const l=replaceImpureComputedKeys(o,e.scope);o.forEach((e=>{const{node:t}=e;a=n.types.memberExpression(a,n.types.cloneNode(t.key),t.computed||n.types.isLiteral(t.key))}));const c=e.findParent((e=>e.isObjectPattern()));const[u,p,d]=createObjectRest(c,t,a);if(j){removeUnusedExcludedKeys(c)}n.types.assertIdentifier(p);r.insertBefore(u);r.insertBefore(l);r=r.insertAfter(n.types.variableDeclarator(p,d))[0];e.scope.registerBinding(i,r);if(c.node.properties.length===0){c.findParent((e=>e.isObjectProperty()||e.isVariableDeclarator())).remove()}}))},ExportNamedDeclaration(e){const t=e.get("declaration");if(!t.isVariableDeclaration())return;const r=t.get("declarations").some((e=>hasObjectPatternRestElement(e.get("id"))));if(!r)return;const s=[];for(const t of Object.keys(e.getOuterBindingIdentifiers(true))){s.push(n.types.exportSpecifier(n.types.identifier(t),n.types.identifier(t)))}e.replaceWith(t.node);e.insertAfter(n.types.exportNamedDeclaration(null,s))},CatchClause(e){const t=e.get("param");replaceRestElement(e,t)},AssignmentExpression(e,t){const r=e.get("left");if(r.isObjectPattern()&&hasRestElement(r)){const s=[];const a=e.scope.generateUidBasedOnNode(e.node.right,"ref");s.push(n.types.variableDeclaration("var",[n.types.variableDeclarator(n.types.identifier(a),e.node.right)]));const[o,i,l]=createObjectRest(r,t,n.types.identifier(a));if(o.length>0){s.push(n.types.variableDeclaration("var",o))}const c=n.types.cloneNode(e.node);c.right=n.types.identifier(a);s.push(n.types.expressionStatement(c));s.push(n.types.toStatement(n.types.assignmentExpression("=",i,l)));s.push(n.types.expressionStatement(n.types.identifier(a)));e.replaceWithMultiple(s)}},ForXStatement(e){const{node:t,scope:r}=e;const s=e.get("left");const a=t.left;if(!hasObjectPatternRestElement(s)){return}if(!n.types.isVariableDeclaration(a)){const s=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration("var",[n.types.variableDeclarator(s)]);e.ensureBlock();const o=t.body;if(o.body.length===0&&e.isCompletionRecord()){o.body.unshift(n.types.expressionStatement(r.buildUndefinedNode()))}o.body.unshift(n.types.expressionStatement(n.types.assignmentExpression("=",a,n.types.cloneNode(s))))}else{const s=a.declarations[0].id;const o=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration(a.kind,[n.types.variableDeclarator(o,null)]);e.ensureBlock();const i=t.body;i.body.unshift(n.types.variableDeclaration(t.left.kind,[n.types.variableDeclarator(s,n.types.cloneNode(o))]))}},ArrayPattern(e){const t=[];visitRestElements(e,(e=>{if(!e.parentPath.isObjectPattern()){return}const r=e.parentPath;const s=e.scope.generateUidIdentifier("ref");t.push(n.types.variableDeclarator(r.node,s));r.replaceWith(n.types.cloneNode(s));e.skip()}));if(t.length>0){const r=e.getStatementParent();const s=r.node;const a=s.type==="VariableDeclaration"?s.kind:"var";r.insertAfter(n.types.variableDeclaration(a,t))}},ObjectExpression(e,t){if(!hasSpread(e.node))return;let r;if(E){r=getExtendsHelper(t)}else{try{r=t.addHelper("objectSpread2")}catch(e){this.file.declarations["objectSpread2"]=null;r=t.addHelper("objectSpread")}}let s=null;let a=[];function make(){const e=a.length>0;const t=n.types.objectExpression(a);a=[];if(!s){s=n.types.callExpression(r,[t]);return}if(j){if(e){s.arguments.push(t)}return}s=n.types.callExpression(n.types.cloneNode(r),[s,...e?[n.types.objectExpression([]),t]:[]])}for(const t of e.node.properties){if(n.types.isSpreadElement(t)){make();s.arguments.push(t.argument)}else{a.push(t)}}if(a.length)make();e.replaceWith(s)}}}}));t["default"]=j},7601:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2690);var n=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-optional-catch-binding",inherits:a.default,visitor:{CatchClause(e){if(!e.node.param){const t=e.scope.generateUidIdentifier("unused");const r=e.get("param");r.replaceWith(t)}}}}}));t["default"]=n},7082:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);var a=r(1648);var n=r(8304);var o=r(4410);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var i=_interopDefaultLegacy(a);function willPathCastToBoolean(e){const t=findOutermostTransparentParent(e);const{node:r,parentPath:s}=t;if(s.isLogicalExpression()){const{operator:e,right:t}=s.node;if(e==="&&"||e==="||"||e==="??"&&r===t){return willPathCastToBoolean(s)}}if(s.isSequenceExpression()){const{expressions:e}=s.node;if(e[e.length-1]===r){return willPathCastToBoolean(s)}else{return true}}return s.isConditional({test:r})||s.isUnaryExpression({operator:"!"})||s.isLoop({test:r})}function findOutermostTransparentParent(e){let t=e;e.findParent((e=>{if(!o.isTransparentExprWrapper(e.node))return true;t=e}));return t}const{ast:l}=n.template.expression;function isSimpleMemberExpression(e){e=o.skipTransparentExprWrapperNodes(e);return n.types.isIdentifier(e)||n.types.isSuper(e)||n.types.isMemberExpression(e)&&!e.computed&&isSimpleMemberExpression(e.object)}function needsMemoize(e){let t=e;const{scope:r}=e;while(t.isOptionalMemberExpression()||t.isOptionalCallExpression()){const{node:e}=t;const s=t.isOptionalMemberExpression()?"object":"callee";const a=o.skipTransparentExprWrappers(t.get(s));if(e.optional){return!r.isStatic(a.node)}t=a}}function transform(e,{pureGetters:t,noDocumentAll:r}){const{scope:s}=e;const a=findOutermostTransparentParent(e);const{parentPath:i}=a;const c=willPathCastToBoolean(a);let u=false;const p=i.isCallExpression({callee:a.node})&&e.isOptionalMemberExpression();const d=[];let f=e;if(s.path.isPattern()&&needsMemoize(f)){e.replaceWith(n.template.ast`(() => ${e.node})()`);return}while(f.isOptionalMemberExpression()||f.isOptionalCallExpression()){const{node:e}=f;if(e.optional){d.push(e)}if(f.isOptionalMemberExpression()){f.node.type="MemberExpression";f=o.skipTransparentExprWrappers(f.get("object"))}else if(f.isOptionalCallExpression()){f.node.type="CallExpression";f=o.skipTransparentExprWrappers(f.get("callee"))}}let y=e;if(i.isUnaryExpression({operator:"delete"})){y=i;u=true}for(let e=d.length-1;e>=0;e--){const a=d[e];const i=n.types.isCallExpression(a);const f=i?"callee":"object";const h=a[f];const b=o.skipTransparentExprWrapperNodes(h);let x;let v;if(i&&n.types.isIdentifier(b,{name:"eval"})){v=x=b;a[f]=n.types.sequenceExpression([n.types.numericLiteral(0),x])}else if(t&&i&&isSimpleMemberExpression(b)){v=x=h}else{x=s.maybeGenerateMemoised(b);if(x){v=n.types.assignmentExpression("=",n.types.cloneNode(x),h);a[f]=x}else{v=x=h}}if(i&&n.types.isMemberExpression(b)){if(t&&isSimpleMemberExpression(b)){a.callee=h}else{const{object:e}=b;let t=s.maybeGenerateMemoised(e);if(t){b.object=n.types.assignmentExpression("=",t,e)}else if(n.types.isSuper(e)){t=n.types.thisExpression()}else{t=e}a.arguments.unshift(n.types.cloneNode(t));a.callee=n.types.memberExpression(a.callee,n.types.identifier("call"))}}let j=y.node;if(e===0&&p){var g;const e=o.skipTransparentExprWrapperNodes(j.object);let r;if(!t||!isSimpleMemberExpression(e)){r=s.maybeGenerateMemoised(e);if(r){j.object=n.types.assignmentExpression("=",r,e)}}j=n.types.callExpression(n.types.memberExpression(j,n.types.identifier("bind")),[n.types.cloneNode((g=r)!=null?g:e)])}if(c){const e=r?l`${n.types.cloneNode(v)} != null`:l` + `;const S={ReferencedIdentifier(e){const{seen:t,buildImportReference:r,scope:s,imported:a,requeueInParent:n}=this;if(t.has(e.node))return;t.add(e.node);const o=e.node.name;const i=a.get(o);if(i){if(isInType(e)){throw e.buildCodeFrameError(`Cannot transform the imported binding "${o}" since it's also used in a type annotation. `+`Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`)}const t=e.scope.getBinding(o);const a=s.getBinding(o);if(a!==t)return;const l=r(i,e.node);l.loc=e.node.loc;if((e.parentPath.isCallExpression({callee:e.node})||e.parentPath.isOptionalCallExpression({callee:e.node})||e.parentPath.isTaggedTemplateExpression({tag:e.node}))&&f(l)){e.replaceWith(v([x(0),l]))}else if(e.isJSXIdentifier()&&f(l)){const{object:t,property:r}=l;e.replaceWith(h(g(t.name),g(r.name)))}else{e.replaceWith(l)}n(e);e.skip()}},UpdateExpression(e){const{scope:t,seen:r,imported:s,exported:a,requeueInParent:n,buildImportReference:o}=this;if(r.has(e.node))return;r.add(e.node);const l=e.get("argument");if(l.isMemberExpression())return;const u=e.node;if(l.isIdentifier()){const r=l.node.name;if(t.getBinding(r)!==e.scope.getBinding(r)){return}const n=a.get(r);const p=s.get(r);if((n==null?void 0:n.length)>0||p){if(p){e.replaceWith(i(u.operator[0]+"=",o(p,l.node),buildImportThrow(r)))}else if(u.prefix){e.replaceWith(buildBindingExportAssignmentExpression(this.metadata,n,c(u)))}else{const s=t.generateDeclaredUidIdentifier(r);e.replaceWith(v([i("=",c(s),c(u)),buildBindingExportAssignmentExpression(this.metadata,n,d(r)),c(s)]))}}}n(e);e.skip()},AssignmentExpression:{exit(e){const{scope:t,seen:r,imported:a,exported:n,requeueInParent:o,buildImportReference:i}=this;if(r.has(e.node))return;r.add(e.node);const l=e.get("left");if(l.isMemberExpression())return;if(l.isIdentifier()){const r=l.node.name;if(t.getBinding(r)!==e.scope.getBinding(r)){return}const c=n.get(r);const u=a.get(r);if((c==null?void 0:c.length)>0||u){s(e.node.operator==="=","Path was not simplified");const t=e.node;if(u){t.left=i(u,t.left);t.right=v([t.right,buildImportThrow(r)])}e.replaceWith(buildBindingExportAssignmentExpression(this.metadata,c,t));o(e)}}else{const r=l.getOuterBindingIdentifiers();const s=Object.keys(r).filter((r=>t.getBinding(r)===e.scope.getBinding(r)));const i=s.find((e=>a.has(e)));if(i){e.node.right=v([e.node.right,buildImportThrow(i)])}const c=[];s.forEach((e=>{const t=n.get(e)||[];if(t.length>0){c.push(buildBindingExportAssignmentExpression(this.metadata,t,d(e)))}}));if(c.length>0){let t=v(c);if(e.parentPath.isExpressionStatement()){t=u(t);t._blockHoist=e.parentPath.node._blockHoist}const r=e.insertAfter(t)[0];o(r)}}}},"ForOfStatement|ForInStatement"(e){const{scope:t,node:r}=e;const{left:s}=r;const{exported:a,imported:n,scope:o}=this;if(!y(s)){let r=false,l;const d=e.get("body").scope;for(const e of Object.keys(p(s))){if(o.getBinding(e)===t.getBinding(e)){if(a.has(e)){r=true;if(d.hasOwnBinding(e)){d.rename(e)}}if(n.has(e)&&!l){l=e}}}if(!r&&!l){return}e.ensureBlock();const f=e.get("body");const y=t.generateUidIdentifierBasedOnNode(s);e.get("left").replaceWith(E("let",[w(c(y))]));t.registerDeclaration(e.get("left"));if(r){f.unshiftContainer("body",u(i("=",s,y)))}if(l){f.unshiftContainer("body",u(buildImportThrow(l)))}}}}},6307:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=rewriteThis;var s=r(8411);var a=r(7369);var n=r(8622);const{numericLiteral:o,unaryExpression:i}=n;function rewriteThis(e){(0,a.default)(e.node,Object.assign({},l,{noScope:true}))}const l=a.default.visitors.merge([s.default,{ThisExpression(e){e.replaceWith(i("void",o(0),true))}}])},5500:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=optimiseCallExpression;var s=r(8622);const{callExpression:a,identifier:n,isIdentifier:o,isSpreadElement:i,memberExpression:l,optionalCallExpression:c,optionalMemberExpression:u}=s;function optimiseCallExpression(e,t,r,s){if(r.length===1&&i(r[0])&&o(r[0].argument,{name:"arguments"})){if(s){return c(u(e,n("apply"),false,true),[t,r[0].argument],false)}return a(l(e,n("apply")),[t,r[0].argument])}else{if(s){return c(u(e,n("call"),false,true),[t,...r],false)}return a(l(e,n("call")),[t,...r])}}},3962:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.declare=declare;function declare(e){return(t,s,a)=>{var n;let o;for(const e of Object.keys(r)){var i;if(t[e])continue;o=(i=o)!=null?i:copyApiObject(t);o[e]=r[e](o)}return e((n=o)!=null?n:t,s||{},a)}}const r={assertVersion:e=>t=>{throwVersionError(t,e.version)},targets:()=>()=>({}),assumption:()=>()=>{}};function copyApiObject(e){let t=null;if(typeof e.version==="string"&&/^7\./.test(e.version)){t=Object.getPrototypeOf(e);if(t&&(!has(t,"version")||!has(t,"transform")||!has(t,"template")||!has(t,"types"))){t=null}}return Object.assign({},t,e)}function has(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function throwVersionError(e,t){if(typeof e==="number"){if(!Number.isInteger(e)){throw new Error("Expected string or integer value.")}e=`^${e}.0.0-0`}if(typeof e!=="string"){throw new Error("Expected string or integer value.")}const r=Error.stackTraceLimit;if(typeof r==="number"&&r<25){Error.stackTraceLimit=25}let s;if(t.slice(0,2)==="7."){s=new Error(`Requires Babel "^7.0.0-beta.41", but was loaded with "${t}". `+`You'll need to update your @babel/core version.`)}else{s=new Error(`Requires Babel "${e}", but was loaded with "${t}". `+`If you are sure you have a compatible version of @babel/core, `+`it is likely that something in your build process is loading the `+`wrong version. Inspect the stack trace of this error to look for `+`the first entry that doesn't mention "@babel/core" or "babel-core" `+`to see what is calling Babel.`)}if(typeof r==="number"){Error.stackTraceLimit=r}throw Object.assign(s,{code:"BABEL_VERSION_UNSUPPORTED",version:t,range:e})}},3242:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.declare=declare;t.declarePreset=void 0;function declare(e){return(t,r,a)=>{var n;let o;for(const e of Object.keys(s)){var i;if(t[e])continue;o=(i=o)!=null?i:copyApiObject(t);o[e]=s[e](o)}return e((n=o)!=null?n:t,r||{},a)}}const r=declare;t.declarePreset=r;const s={assertVersion:e=>t=>{throwVersionError(t,e.version)},targets:()=>()=>({}),assumption:()=>()=>{}};function copyApiObject(e){let t=null;if(typeof e.version==="string"&&/^7\./.test(e.version)){t=Object.getPrototypeOf(e);if(t&&(!has(t,"version")||!has(t,"transform")||!has(t,"template")||!has(t,"types"))){t=null}}return Object.assign({},t,e)}function has(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function throwVersionError(e,t){if(typeof e==="number"){if(!Number.isInteger(e)){throw new Error("Expected string or integer value.")}e=`^${e}.0.0-0`}if(typeof e!=="string"){throw new Error("Expected string or integer value.")}const r=Error.stackTraceLimit;if(typeof r==="number"&&r<25){Error.stackTraceLimit=25}let s;if(t.slice(0,2)==="7."){s=new Error(`Requires Babel "^7.0.0-beta.41", but was loaded with "${t}". `+`You'll need to update your @babel/core version.`)}else{s=new Error(`Requires Babel "${e}", but was loaded with "${t}". `+`If you are sure you have a compatible version of @babel/core, `+`it is likely that something in your build process is loading the `+`wrong version. Inspect the stack trace of this error to look for `+`the first entry that doesn't mention "@babel/core" or "babel-core" `+`to see what is calling Babel.`)}if(typeof r==="number"){Error.stackTraceLimit=r}throw Object.assign(s,{code:"BABEL_VERSION_UNSUPPORTED",version:t,range:e})}},9567:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(323);var a=r(9102);var n=r(8622);const{callExpression:o,cloneNode:i,isIdentifier:l,isThisExpression:c,yieldExpression:u}=n;const p={Function(e){e.skip()},AwaitExpression(e,{wrapAwait:t}){const r=e.get("argument");e.replaceWith(u(t?o(i(t),[r.node]):r.node))}};function _default(e,t,r,n){e.traverse(p,{wrapAwait:t.wrapAwait});const o=checkIsIIFE(e);e.node.async=false;e.node.generator=true;(0,s.default)(e,i(t.wrapAsync),r,n);const u=e.isObjectMethod()||e.isClassMethod()||e.parentPath.isObjectProperty()||e.parentPath.isClassProperty();if(!u&&!o&&e.isExpression()){(0,a.default)(e)}function checkIsIIFE(e){if(e.parentPath.isCallExpression({callee:e.node})){return true}const{parentPath:t}=e;if(t.isMemberExpression()&&l(t.node.property,{name:"bind"})){const{parentPath:e}=t;return e.isCallExpression()&&e.node.arguments.length===1&&c(e.node.arguments[0])&&e.parentPath.isCallExpression({callee:e.node})}return false}}},3790:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;Object.defineProperty(t,"environmentVisitor",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"skipAllButComputedKey",{enumerable:true,get:function(){return o.skipAllButComputedKey}});var s=r(7369);var a=r(2569);var n=r(5500);var o=r(8411);var i=r(8622);const{assignmentExpression:l,booleanLiteral:c,callExpression:u,cloneNode:p,identifier:d,memberExpression:f,sequenceExpression:y,stringLiteral:g,thisExpression:h}=i;function getPrototypeOfExpression(e,t,r,s){e=p(e);const a=t||s?e:f(e,d("prototype"));return u(r.addHelper("getPrototypeOf"),[a])}const b=s.default.visitors.merge([o.default,{Super(e,t){const{node:r,parentPath:s}=e;if(!s.isMemberExpression({object:r}))return;t.handle(s)}}]);const x=s.default.visitors.merge([o.default,{Scopable(e,{refName:t}){const r=e.scope.getOwnBinding(t);if(r&&r.identifier.name===t){e.scope.rename(t)}}}]);const v={memoise(e,t){const{scope:r,node:s}=e;const{computed:a,property:n}=s;if(!a){return}const o=r.maybeGenerateMemoised(n);if(!o){return}this.memoiser.set(n,o,t)},prop(e){const{computed:t,property:r}=e.node;if(this.memoiser.has(r)){return p(this.memoiser.get(r))}if(t){return p(r)}return g(r.name)},get(e){return this._get(e,this._getThisRefs())},_get(e,t){const r=getPrototypeOfExpression(this.getObjectRef(),this.isStatic,this.file,this.isPrivateMethod);return u(this.file.addHelper("get"),[t.memo?y([t.memo,r]):r,this.prop(e),t.this])},_getThisRefs(){if(!this.isDerivedConstructor){return{this:h()}}const e=this.scope.generateDeclaredUidIdentifier("thisSuper");return{memo:l("=",e,h()),this:p(e)}},set(e,t){const r=this._getThisRefs();const s=getPrototypeOfExpression(this.getObjectRef(),this.isStatic,this.file,this.isPrivateMethod);return u(this.file.addHelper("set"),[r.memo?y([r.memo,s]):s,this.prop(e),t,r.this,c(e.isInStrictMode())])},destructureSet(e){throw e.buildCodeFrameError(`Destructuring to a super field is not supported yet.`)},call(e,t){const r=this._getThisRefs();return(0,n.default)(this._get(e,r),p(r.this),t,false)},optionalCall(e,t){const r=this._getThisRefs();return(0,n.default)(this._get(e,r),p(r.this),t,true)}};const j=Object.assign({},v,{prop(e){const{property:t}=e.node;if(this.memoiser.has(t)){return p(this.memoiser.get(t))}return p(t)},get(e){const{isStatic:t,getSuperRef:r}=this;const{computed:s}=e.node;const a=this.prop(e);let n;if(t){var o;n=(o=r())!=null?o:f(d("Function"),d("prototype"))}else{var i;n=f((i=r())!=null?i:d("Object"),d("prototype"))}return f(n,a,s)},set(e,t){const{computed:r}=e.node;const s=this.prop(e);return l("=",f(h(),s,r),t)},destructureSet(e){const{computed:t}=e.node;const r=this.prop(e);return f(h(),r,t)},call(e,t){return(0,n.default)(this.get(e),h(),t,false)},optionalCall(e,t){return(0,n.default)(this.get(e),h(),t,true)}});class ReplaceSupers{constructor(e){var t;const r=e.methodPath;this.methodPath=r;this.isDerivedConstructor=r.isClassMethod({kind:"constructor"})&&!!e.superRef;this.isStatic=r.isObjectMethod()||r.node.static||(r.isStaticBlock==null?void 0:r.isStaticBlock());this.isPrivateMethod=r.isPrivate()&&r.isMethod();this.file=e.file;this.constantSuper=(t=e.constantSuper)!=null?t:e.isLoose;this.opts=e}getObjectRef(){return p(this.opts.objectRef||this.opts.getObjectRef())}getSuperRef(){if(this.opts.superRef)return p(this.opts.superRef);if(this.opts.getSuperRef)return p(this.opts.getSuperRef())}replace(){if(this.opts.refToPreserve){this.methodPath.traverse(x,{refName:this.opts.refToPreserve.name})}const e=this.constantSuper?j:v;(0,a.default)(this.methodPath,b,Object.assign({file:this.file,scope:this.methodPath.scope,isDerivedConstructor:this.isDerivedConstructor,isStatic:this.isStatic,isPrivateMethod:this.isPrivateMethod,getObjectRef:this.getObjectRef.bind(this),getSuperRef:this.getSuperRef.bind(this),boundGet:e.get},e))}}t["default"]=ReplaceSupers},1663:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=simplifyAccess;var s=r(8622);const{LOGICAL_OPERATORS:a,assignmentExpression:n,binaryExpression:o,cloneNode:i,identifier:l,logicalExpression:c,numericLiteral:u,sequenceExpression:p,unaryExpression:d}=s;function simplifyAccess(e,t,r=true){e.traverse(f,{scope:e.scope,bindingNames:t,seen:new WeakSet,includeUpdateExpression:r})}const f={UpdateExpression:{exit(e){const{scope:t,bindingNames:r,includeUpdateExpression:s}=this;if(!s){return}const a=e.get("argument");if(!a.isIdentifier())return;const c=a.node.name;if(!r.has(c))return;if(t.getBinding(c)!==e.scope.getBinding(c)){return}if(e.parentPath.isExpressionStatement()&&!e.isCompletionRecord()){const t=e.node.operator=="++"?"+=":"-=";e.replaceWith(n(t,a.node,u(1)))}else if(e.node.prefix){e.replaceWith(n("=",l(c),o(e.node.operator[0],d("+",a.node),u(1))))}else{const t=e.scope.generateUidIdentifierBasedOnNode(a.node,"old");const r=t.name;e.scope.push({id:t});const s=o(e.node.operator[0],l(r),u(1));e.replaceWith(p([n("=",l(r),d("+",a.node)),n("=",i(a.node),s),l(r)]))}}},AssignmentExpression:{exit(e){const{scope:t,seen:r,bindingNames:s}=this;if(e.node.operator==="=")return;if(r.has(e.node))return;r.add(e.node);const l=e.get("left");if(!l.isIdentifier())return;const u=l.node.name;if(!s.has(u))return;if(t.getBinding(u)!==e.scope.getBinding(u)){return}const p=e.node.operator.slice(0,-1);if(a.includes(p)){e.replaceWith(c(p,e.node.left,n("=",i(e.node.left),e.node.right)))}else{e.node.right=o(p,i(e.node.left),e.node.right);e.node.operator="="}}}}},4410:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isTransparentExprWrapper=isTransparentExprWrapper;t.skipTransparentExprWrapperNodes=skipTransparentExprWrapperNodes;t.skipTransparentExprWrappers=skipTransparentExprWrappers;var s=r(8622);const{isParenthesizedExpression:a,isTSAsExpression:n,isTSNonNullExpression:o,isTSTypeAssertion:i,isTypeCastExpression:l}=s;function isTransparentExprWrapper(e){return n(e)||i(e)||o(e)||l(e)||a(e)}function skipTransparentExprWrappers(e){while(isTransparentExprWrapper(e.node)){e=e.get("expression")}return e}function skipTransparentExprWrapperNodes(e){while(isTransparentExprWrapper(e)){e=e.expression}return e}},821:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=splitExportDeclaration;var s=r(8622);const{cloneNode:a,exportNamedDeclaration:n,exportSpecifier:o,identifier:i,variableDeclaration:l,variableDeclarator:c}=s;function splitExportDeclaration(e){if(!e.isExportDeclaration()){throw new Error("Only export declarations can be split.")}const t=e.isExportDefaultDeclaration();const r=e.get("declaration");const s=r.isClassDeclaration();if(t){const t=r.isFunctionDeclaration()||s;const u=r.isScope()?r.scope.parent:r.scope;let p=r.node.id;let d=false;if(!p){d=true;p=u.generateUidIdentifier("default");if(t||r.isFunctionExpression()||r.isClassExpression()){r.node.id=a(p)}}const f=t?r:l("var",[c(a(p),r.node)]);const y=n(null,[o(a(p),i("default"))]);e.insertAfter(y);e.replaceWith(f);if(d){u.registerDeclaration(e)}return e}if(e.get("specifiers").length>0){throw new Error("It doesn't make sense to split exported specifiers.")}const u=r.getOuterBindingIdentifiers();const p=Object.keys(u).map((e=>o(i(e),i(e))));const d=n(null,p);e.insertAfter(d);e.replaceWith(r.node);return e}},366:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isIdentifierChar=isIdentifierChar;t.isIdentifierName=isIdentifierName;t.isIdentifierStart=isIdentifierStart;let r="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ";let s="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_";const a=new RegExp("["+r+"]");const n=new RegExp("["+r+s+"]");r=s=null;const o=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938];const i=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function isInAstralSet(e,t){let r=65536;for(let s=0,a=t.length;se)return false;r+=t[s+1];if(r>=e)return true}return false}function isIdentifierStart(e){if(e<65)return e===36;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&a.test(String.fromCharCode(e))}return isInAstralSet(e,o)}function isIdentifierChar(e){if(e<48)return e===36;if(e<58)return true;if(e<65)return false;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&n.test(String.fromCharCode(e))}return isInAstralSet(e,o)||isInAstralSet(e,i)}function isIdentifierName(e){let t=true;for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"isIdentifierChar",{enumerable:true,get:function(){return s.isIdentifierChar}});Object.defineProperty(t,"isIdentifierName",{enumerable:true,get:function(){return s.isIdentifierName}});Object.defineProperty(t,"isIdentifierStart",{enumerable:true,get:function(){return s.isIdentifierStart}});Object.defineProperty(t,"isKeyword",{enumerable:true,get:function(){return a.isKeyword}});Object.defineProperty(t,"isReservedWord",{enumerable:true,get:function(){return a.isReservedWord}});Object.defineProperty(t,"isStrictBindOnlyReservedWord",{enumerable:true,get:function(){return a.isStrictBindOnlyReservedWord}});Object.defineProperty(t,"isStrictBindReservedWord",{enumerable:true,get:function(){return a.isStrictBindReservedWord}});Object.defineProperty(t,"isStrictReservedWord",{enumerable:true,get:function(){return a.isStrictReservedWord}});var s=r(366);var a=r(1683)},1683:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isKeyword=isKeyword;t.isReservedWord=isReservedWord;t.isStrictBindOnlyReservedWord=isStrictBindOnlyReservedWord;t.isStrictBindReservedWord=isStrictBindReservedWord;t.isStrictReservedWord=isStrictReservedWord;const r={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]};const s=new Set(r.keyword);const a=new Set(r.strict);const n=new Set(r.strictBind);function isReservedWord(e,t){return t&&e==="await"||e==="enum"}function isStrictReservedWord(e,t){return isReservedWord(e,t)||a.has(e)}function isStrictBindOnlyReservedWord(e){return n.has(e)}function isStrictBindReservedWord(e,t){return isStrictReservedWord(e,t)||isStrictBindOnlyReservedWord(e)}function isKeyword(e){return s.has(e)}},7450:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.findSuggestion=findSuggestion;const{min:r}=Math;function levenshtein(e,t){let s=[],a=[],n,o;const i=e.length,l=t.length;if(!i){return l}if(!l){return i}for(o=0;o<=l;o++){s[o]=o}for(n=1;n<=i;n++){for(a=[n],o=1;o<=l;o++){a[o]=e[n-1]===t[o-1]?s[o-1]:r(s[o-1],s[o],a[o-1])+1}s=a}return a[l]}function findSuggestion(e,t){const s=t.map((t=>levenshtein(t,e)));return t[s.indexOf(r(...s))]}},3317:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"OptionValidator",{enumerable:true,get:function(){return s.OptionValidator}});Object.defineProperty(t,"findSuggestion",{enumerable:true,get:function(){return a.findSuggestion}});var s=r(4);var a=r(7450)},4:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.OptionValidator=void 0;var s=r(7450);class OptionValidator{constructor(e){this.descriptor=e}validateTopLevelOptions(e,t){const r=Object.keys(t);for(const t of Object.keys(e)){if(!r.includes(t)){throw new Error(this.formatMessage(`'${t}' is not a valid top-level option.\n- Did you mean '${(0,s.findSuggestion)(t,r)}'?`))}}}validateBooleanOption(e,t,r){if(t===undefined){return r}else{this.invariant(typeof t==="boolean",`'${e}' option must be a boolean.`)}return t}validateStringOption(e,t,r){if(t===undefined){return r}else{this.invariant(typeof t==="string",`'${e}' option must be a string.`)}return t}invariant(e,t){if(!e){throw new Error(this.formatMessage(t))}}formatMessage(e){return`${this.descriptor}: ${e}`}}t.OptionValidator=OptionValidator},323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=wrapFunction;var s=r(1113);var a=r(5955);var n=r(8622);const{blockStatement:o,callExpression:i,functionExpression:l,isAssignmentPattern:c,isRestElement:u,returnStatement:p}=n;const d=a.default.expression(`\n (function () {\n var REF = FUNCTION;\n return function NAME(PARAMS) {\n return REF.apply(this, arguments);\n };\n })()\n`);const f=a.default.expression(`\n (function () {\n var REF = FUNCTION;\n function NAME(PARAMS) {\n return REF.apply(this, arguments);\n }\n return NAME;\n })()\n`);const y=(0,a.default)(`\n function NAME(PARAMS) { return REF.apply(this, arguments); }\n function REF() {\n REF = FUNCTION;\n return REF.apply(this, arguments);\n }\n`);function classOrObjectMethod(e,t){const r=e.node;const s=r.body;const a=l(null,[],o(s.body),true);s.body=[p(i(i(t,[a]),[]))];r.async=false;r.generator=false;e.get("body.body.0.argument.callee.arguments.0").unwrapFunctionEnvironment()}function plainFunction(e,t,r,a){const n=e.node;const o=e.isFunctionDeclaration();const l=n.id;const p=o?y:l?f:d;if(e.isArrowFunctionExpression()){e.arrowFunctionToExpression({noNewArrows:r})}n.id=null;if(o){n.type="FunctionExpression"}const g=i(t,[n]);const h=[];for(const t of n.params){if(c(t)||u(t)){break}h.push(e.scope.generateUidIdentifier("x"))}const b=p({NAME:l||null,REF:e.scope.generateUidIdentifier(l?l.name:"ref"),FUNCTION:g,PARAMS:h});if(o){e.replaceWith(b[0]);e.insertAfter(b[1])}else{const t=b.callee.body.body[1].argument;if(!l){(0,s.default)({node:t,parent:e.parent,scope:e.scope})}if(!t||t.id||!a&&h.length){e.replaceWith(b)}else{e.replaceWith(g)}}}function wrapFunction(e,t,r=true,s=false){if(e.isMethod()){classOrObjectMethod(e,t)}else{plainFunction(e,t,r,s)}}},8739:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=highlight;t.getChalk=getChalk;t.shouldHighlight=shouldHighlight;var s=r(1745);var a=r(7702);var n=r(8542);const o=new Set(["as","async","from","get","of","set"]);function getDefs(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold}}const i=/\r\n|[\n\r\u2028\u2029]/;const l=/^[()[\]{}]$/;let c;{const e=/^[a-z][\w-]*$/i;const getTokenType=function(t,r,s){if(t.type==="name"){if((0,a.isKeyword)(t.value)||(0,a.isStrictReservedWord)(t.value,true)||o.has(t.value)){return"keyword"}if(e.test(t.value)&&(s[r-1]==="<"||s.substr(r-2,2)=="t(e))).join("\n")}else{r+=a}}return r}function shouldHighlight(e){return!!n.supportsColor||e.forceColor}function getChalk(e){return e.forceColor?new n.constructor({enabled:true,level:1}):n}function highlight(e,t={}){if(e!==""&&shouldHighlight(t)){const r=getChalk(t);const s=getDefs(r);return highlightTokens(s,e)}else{return e}}},8430:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);function shouldTransform(e){const{node:t}=e;const r=t.id;if(!r)return false;const s=r.name;const a=e.scope.getOwnBinding(s);if(a===undefined){return false}if(a.kind!=="param"){return false}if(a.identifier===a.path.node){return false}return s}var a=s.declare((e=>{e.assertVersion("^7.16.0");return{name:"plugin-bugfix-safari-id-destructuring-collision-in-function-expression",visitor:{FunctionExpression(e){const t=shouldTransform(e);if(t){const{scope:r}=e;const s=r.generateUid(t);r.rename(t,s)}}}}}));t["default"]=a},1511:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);var a=r(7082);var n=r(4410);var o=r(8304);function matchAffectedArguments(e){const t=e.findIndex((e=>o.types.isSpreadElement(e)));return t>=0&&t!==e.length-1}function shouldTransform(e){let t=e;const r=[];while(t.isOptionalMemberExpression()||t.isOptionalCallExpression()){const{node:e}=t;r.push(e);if(t.isOptionalMemberExpression()){t=n.skipTransparentExprWrappers(t.get("object"))}else if(t.isOptionalCallExpression()){t=n.skipTransparentExprWrappers(t.get("callee"))}}for(let e=0;e{var t,r;e.assertVersion(7);const s=(t=e.assumption("noDocumentAll"))!=null?t:false;const n=(r=e.assumption("pureGetters"))!=null?r:false;return{name:"bugfix-v8-spread-parameters-in-optional-chaining",visitor:{"OptionalCallExpression|OptionalMemberExpression"(e){if(shouldTransform(e)){a.transform(e,{noDocumentAll:s,pureGetters:n})}}}}}));t["default"]=i},3859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(8304);const a=(0,s.template)(`\n async function wrapper() {\n var ITERATOR_ABRUPT_COMPLETION = false;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY;\n try {\n for (\n var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY;\n ITERATOR_ABRUPT_COMPLETION = !(STEP_KEY = await ITERATOR_KEY.next()).done;\n ITERATOR_ABRUPT_COMPLETION = false\n ) {\n }\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (ITERATOR_ABRUPT_COMPLETION && ITERATOR_KEY.return != null) {\n await ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n }\n`);function _default(e,{getAsyncIterator:t}){const{node:r,scope:n,parent:o}=e;const i=n.generateUidIdentifier("step");const l=s.types.memberExpression(i,s.types.identifier("value"));const c=r.left;let u;if(s.types.isIdentifier(c)||s.types.isPattern(c)||s.types.isMemberExpression(c)){u=s.types.expressionStatement(s.types.assignmentExpression("=",c,l))}else if(s.types.isVariableDeclaration(c)){u=s.types.variableDeclaration(c.kind,[s.types.variableDeclarator(c.declarations[0].id,l)])}let p=a({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_ABRUPT_COMPLETION:n.generateUidIdentifier("iteratorAbruptCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:n.generateUidIdentifier("iterator"),GET_ITERATOR:t,OBJECT:r.right,STEP_KEY:s.types.cloneNode(i)});p=p.body.body;const d=s.types.isLabeledStatement(o);const f=p[3].block.body;const y=f[0];if(d){f[0]=s.types.labeledStatement(o.label,y)}return{replaceParent:d,node:p,declar:u,loop:y}}},6009:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9567);var n=r(7978);var o=r(8304);var i=r(3859);var l=(0,s.declare)((e=>{e.assertVersion(7);const t={Function(e){e.skip()},YieldExpression({node:e},t){if(!e.delegate)return;const r=t.addHelper("asyncGeneratorDelegate");e.argument=o.types.callExpression(r,[o.types.callExpression(t.addHelper("asyncIterator"),[e.argument]),t.addHelper("awaitAsyncGenerator")])}};const r={Function(e){e.skip()},ForOfStatement(e,{file:t}){const{node:r}=e;if(!r.await)return;const s=(0,i.default)(e,{getAsyncIterator:t.addHelper("asyncIterator")});const{declar:a,loop:n}=s;const l=n.body;e.ensureBlock();if(a){l.body.push(a)}l.body.push(...r.body.body);o.types.inherits(n,r);o.types.inherits(n.body,r.body);if(s.replaceParent){e.parentPath.replaceWithMultiple(s.node)}else{e.replaceWithMultiple(s.node)}}};const s={Function(e,s){if(!e.node.async)return;e.traverse(r,s);if(!e.node.generator)return;e.traverse(t,s);(0,a.default)(e,{wrapAsync:s.addHelper("wrapAsyncGenerator"),wrapAwait:s.addHelper("awaitAsyncGenerator")})}};return{name:"proposal-async-generator-functions",inherits:n.default,visitor:{Program(e,t){e.traverse(s,t)}}}}));t["default"]=l},1756:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2924);var n=(0,s.declare)(((e,t)=>{e.assertVersion(7);return(0,a.createClassFeaturePlugin)({name:"proposal-class-properties",api:e,feature:a.FEATURES.fields,loose:t.loose,manipulateOptions(e,t){t.plugins.push("classProperties","classPrivateProperties")}})}));t["default"]=n},4718:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2924);var n=(0,s.declare)(((e,t)=>{e.assertVersion(7);return(0,a.createClassFeaturePlugin)({name:"proposal-class-properties",api:e,feature:a.FEATURES.fields,loose:t.loose,manipulateOptions(e,t){t.plugins.push("classProperties","classPrivateProperties")}})}));t["default"]=n},655:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2288);var n=r(2924);function generateUid(e,t){const r="";let s;let a=1;do{s=e._generateUid(r,a);a++}while(t.has(s));return s}var o=(0,s.declare)((({types:e,template:t,assertVersion:r})=>{r("^7.12.0");return{name:"proposal-class-static-block",inherits:a.default,pre(){(0,n.enableFeature)(this.file,n.FEATURES.staticBlocks,false)},visitor:{ClassBody(r){const{scope:s}=r;const a=new Set;const n=r.get("body");for(const e of n){if(e.isPrivate()){a.add(e.get("key.id").node.name)}}for(const r of n){if(!r.isStaticBlock())continue;const n=generateUid(s,a);a.add(n);const o=e.privateName(e.identifier(n));let i;const l=r.node.body;if(l.length===1&&e.isExpressionStatement(l[0])){i=l[0].expression}else{i=t.expression.ast`(() => { ${l} })()`}r.replaceWith(e.classPrivateProperty(o,i,[],true))}}}}}));t["default"]=o},2962:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9854);const n=["commonjs","amd","systemjs"];const o=`@babel/plugin-proposal-dynamic-import depends on a modules\ntransform plugin. Supported plugins are:\n - @babel/plugin-transform-modules-commonjs ^7.4.0\n - @babel/plugin-transform-modules-amd ^7.4.0\n - @babel/plugin-transform-modules-systemjs ^7.4.0\n\nIf you are using Webpack or Rollup and thus don't want\nBabel to transpile your imports and exports, you can use\nthe @babel/plugin-syntax-dynamic-import plugin and let your\nbundler handle dynamic imports.\n`;var i=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-dynamic-import",inherits:a.default,pre(){this.file.set("@babel/plugin-proposal-dynamic-import","7.16.7")},visitor:{Program(){const e=this.file.get("@babel/plugin-transform-modules-*");if(!n.includes(e)){throw new Error(o)}}}}}));t["default"]=i},985:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9081);var n=r(8304);var o=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-export-namespace-from",inherits:a.default,visitor:{ExportNamedDeclaration(e){var t;const{node:r,scope:s}=e;const{specifiers:a}=r;const o=n.types.isExportDefaultSpecifier(a[0])?1:0;if(!n.types.isExportNamespaceSpecifier(a[o]))return;const i=[];if(o===1){i.push(n.types.exportNamedDeclaration(null,[a.shift()],r.source))}const l=a.shift();const{exported:c}=l;const u=s.generateUidIdentifier((t=c.name)!=null?t:c.value);i.push(n.types.importDeclaration([n.types.importNamespaceSpecifier(u)],n.types.cloneNode(r.source)),n.types.exportNamedDeclaration(null,[n.types.exportSpecifier(n.types.cloneNode(u),c)]));if(r.specifiers.length>=1){i.push(r)}const[p]=e.replaceWithMultiple(i);e.scope.registerDeclaration(p)}}}}));t["default"]=o},2521:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(9081);var n=r(8304);var o=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-export-namespace-from",inherits:a.default,visitor:{ExportNamedDeclaration(e){var t;const{node:r,scope:s}=e;const{specifiers:a}=r;const o=n.types.isExportDefaultSpecifier(a[0])?1:0;if(!n.types.isExportNamespaceSpecifier(a[o]))return;const i=[];if(o===1){i.push(n.types.exportNamedDeclaration(null,[a.shift()],r.source))}const l=a.shift();const{exported:c}=l;const u=s.generateUidIdentifier((t=c.name)!=null?t:c.value);i.push(n.types.importDeclaration([n.types.importNamespaceSpecifier(u)],n.types.cloneNode(r.source)),n.types.exportNamedDeclaration(null,[n.types.exportSpecifier(n.types.cloneNode(u),c)]));if(r.specifiers.length>=1){i.push(r)}const[p]=e.replaceWithMultiple(i);e.scope.registerDeclaration(p)}}}}));t["default"]=o},113:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(4602);var n=(0,s.declare)((e=>{e.assertVersion(7);const t=/(\\*)([\u2028\u2029])/g;function replace(e,t,r){const s=t.length%2===1;if(s)return e;return`${t}\\u${r.charCodeAt(0).toString(16)}`}return{name:"proposal-json-strings",inherits:a.default,visitor:{"DirectiveLiteral|StringLiteral"({node:e}){const{extra:r}=e;if(!(r!=null&&r.raw))return;r.raw=r.raw.replace(t,replace)}}}}));t["default"]=n},1740:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(6709);var n=r(8304);var o=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-logical-assignment-operators",inherits:a.default,visitor:{AssignmentExpression(e){const{node:t,scope:r}=e;const{operator:s,left:a,right:o}=t;const i=s.slice(0,-1);if(!n.types.LOGICAL_OPERATORS.includes(i)){return}const l=n.types.cloneNode(a);if(n.types.isMemberExpression(a)){const{object:e,property:t,computed:s}=a;const o=r.maybeGenerateMemoised(e);if(o){a.object=o;l.object=n.types.assignmentExpression("=",n.types.cloneNode(o),e)}if(s){const e=r.maybeGenerateMemoised(t);if(e){a.property=e;l.property=n.types.assignmentExpression("=",n.types.cloneNode(e),t)}}}e.replaceWith(n.types.logicalExpression(i,l,n.types.assignmentExpression("=",a,o)))}}}}));t["default"]=o},4742:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(3835);var n=r(8304);var o=(0,s.declare)(((e,{loose:t=false})=>{var r;e.assertVersion(7);const s=(r=e.assumption("noDocumentAll"))!=null?r:t;return{name:"proposal-nullish-coalescing-operator",inherits:a.default,visitor:{LogicalExpression(e){const{node:t,scope:r}=e;if(t.operator!=="??"){return}let a;let o;if(r.isStatic(t.left)){a=t.left;o=n.types.cloneNode(t.left)}else if(r.path.isPattern()){e.replaceWith(n.template.statement.ast`(() => ${e.node})()`);return}else{a=r.generateUidIdentifierBasedOnNode(t.left);r.push({id:n.types.cloneNode(a)});o=n.types.assignmentExpression("=",a,t.left)}e.replaceWith(n.types.conditionalExpression(s?n.types.binaryExpression("!=",o,n.types.nullLiteral()):n.types.logicalExpression("&&",n.types.binaryExpression("!==",o,n.types.nullLiteral()),n.types.binaryExpression("!==",n.types.cloneNode(a),r.buildUndefinedNode())),n.types.cloneNode(a),t.right))}}}}));t["default"]=o},1899:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3962);var a=r(3537);function remover({node:e}){var t;const{extra:r}=e;if(r!=null&&(t=r.raw)!=null&&t.includes("_")){r.raw=r.raw.replace(/_/g,"")}}var n=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-numeric-separator",inherits:a.default,visitor:{NumericLiteral:remover,BigIntLiteral:remover}}}));t["default"]=n},9448:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(3537);function remover({node:e}){var t;const{extra:r}=e;if(r!=null&&(t=r.raw)!=null&&t.includes("_")){r.raw=r.raw.replace(/_/g,"")}}var n=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-numeric-separator",inherits:a.default,visitor:{NumericLiteral:remover,BigIntLiteral:remover}}}));t["default"]=n},6806:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3962);var a=r(4396);var n=r(8304);var o=r(9866);var i=r(7013);var l=r(1419);const c=(()=>{const e=n.types.identifier("a");const t=n.types.objectProperty(n.types.identifier("key"),e);const r=n.types.objectPattern([t]);return n.types.isReferenced(e,t,r)?1:0})();var u=(0,s.declare)(((e,t)=>{var r,s,u,p;e.assertVersion(7);const d=e.targets();const f=!(0,i.isRequired)("es6.object.assign",d,{compatData:l});const{useBuiltIns:y=f,loose:g=false}=t;if(typeof g!=="boolean"){throw new Error(".loose must be a boolean, or undefined")}const h=(r=e.assumption("ignoreFunctionLength"))!=null?r:g;const b=(s=e.assumption("objectRestNoSymbols"))!=null?s:g;const x=(u=e.assumption("pureGetters"))!=null?u:g;const v=(p=e.assumption("setSpreadProperties"))!=null?p:g;function getExtendsHelper(e){return y?n.types.memberExpression(n.types.identifier("Object"),n.types.identifier("assign")):e.addHelper("extends")}function hasRestElement(e){let t=false;visitRestElements(e,(e=>{t=true;e.stop()}));return t}function hasObjectPatternRestElement(e){let t=false;visitRestElements(e,(e=>{if(e.parentPath.isObjectPattern()){t=true;e.stop()}}));return t}function visitRestElements(e,t){e.traverse({Expression(e){const t=e.parent.type;if(t==="AssignmentPattern"&&e.key==="right"||t==="ObjectProperty"&&e.parent.computed&&e.key==="key"){e.skip()}},RestElement:t})}function hasSpread(e){for(const t of e.properties){if(n.types.isSpreadElement(t)){return true}}return false}function extractNormalizedKeys(e){const t=e.node.properties;const r=[];let s=true;let a=false;for(const e of t){if(n.types.isIdentifier(e.key)&&!e.computed){r.push(n.types.stringLiteral(e.key.name))}else if(n.types.isTemplateLiteral(e.key)){r.push(n.types.cloneNode(e.key));a=true}else if(n.types.isLiteral(e.key)){r.push(n.types.stringLiteral(String(e.key.value)))}else{r.push(n.types.cloneNode(e.key));s=false}}return{keys:r,allLiteral:s,hasTemplateLiteral:a}}function replaceImpureComputedKeys(e,t){const r=[];for(const s of e){const e=s.get("key");if(s.node.computed&&!e.isPure()){const s=t.generateUidBasedOnNode(e.node);const a=n.types.variableDeclarator(n.types.identifier(s),e.node);r.push(a);e.replaceWith(n.types.identifier(s))}}return r}function removeUnusedExcludedKeys(e){const t=e.getOuterBindingIdentifierPaths();Object.keys(t).forEach((r=>{const s=t[r].parentPath;if(e.scope.getBinding(r).references>c||!s.isObjectProperty()){return}s.remove()}))}function createObjectRest(e,t,r){const s=e.get("properties");const a=s[s.length-1];n.types.assertRestElement(a.node);const o=n.types.cloneNode(a.node);a.remove();const i=replaceImpureComputedKeys(e.get("properties"),e.scope);const{keys:l,allLiteral:c,hasTemplateLiteral:u}=extractNormalizedKeys(e);if(l.length===0){return[i,o.argument,n.types.callExpression(getExtendsHelper(t),[n.types.objectExpression([]),n.types.cloneNode(r)])]}let p;if(!c){p=n.types.callExpression(n.types.memberExpression(n.types.arrayExpression(l),n.types.identifier("map")),[t.addHelper("toPropertyKey")])}else{p=n.types.arrayExpression(l);if(!u&&!n.types.isProgram(e.scope.block)){const t=e.findParent((e=>e.isProgram()));const r=e.scope.generateUidIdentifier("excluded");t.scope.push({id:r,init:p,kind:"const"});p=n.types.cloneNode(r)}}return[i,o.argument,n.types.callExpression(t.addHelper(`objectWithoutProperties${b?"Loose":""}`),[n.types.cloneNode(r),p])]}function replaceRestElement(e,t,r){if(t.isAssignmentPattern()){replaceRestElement(e,t.get("left"),r);return}if(t.isArrayPattern()&&hasRestElement(t)){const s=t.get("elements");for(let t=0;te.skip(),"ReferencedIdentifier|BindingIdentifier":IdentifierHandler},e.scope)}}}if(!a){for(let e=0;ee>=n-1||r.has(e);(0,o.convertFunctionParams)(e,h,shouldTransformParam,replaceRestElement)}},VariableDeclarator(e,t){if(!e.get("id").isObjectPattern()){return}let r=e;const s=e;visitRestElements(e.get("id"),(e=>{if(!e.parentPath.isObjectPattern()){return}if(s.node.id.properties.length>1&&!n.types.isIdentifier(s.node.init)){const t=e.scope.generateUidIdentifierBasedOnNode(s.node.init,"ref");s.insertBefore(n.types.variableDeclarator(t,s.node.init));s.replaceWith(n.types.variableDeclarator(s.node.id,n.types.cloneNode(t)));return}let a=s.node.init;const o=[];let i;e.findParent((e=>{if(e.isObjectProperty()){o.unshift(e)}else if(e.isVariableDeclarator()){i=e.parentPath.node.kind;return true}}));const l=replaceImpureComputedKeys(o,e.scope);o.forEach((e=>{const{node:t}=e;a=n.types.memberExpression(a,n.types.cloneNode(t.key),t.computed||n.types.isLiteral(t.key))}));const c=e.findParent((e=>e.isObjectPattern()));const[u,p,d]=createObjectRest(c,t,a);if(x){removeUnusedExcludedKeys(c)}n.types.assertIdentifier(p);r.insertBefore(u);r.insertBefore(l);r.insertAfter(n.types.variableDeclarator(p,d));r=r.getSibling(r.key+1);e.scope.registerBinding(i,r);if(c.node.properties.length===0){c.findParent((e=>e.isObjectProperty()||e.isVariableDeclarator())).remove()}}))},ExportNamedDeclaration(e){const t=e.get("declaration");if(!t.isVariableDeclaration())return;const r=t.get("declarations").some((e=>hasObjectPatternRestElement(e.get("id"))));if(!r)return;const s=[];for(const t of Object.keys(e.getOuterBindingIdentifiers(e))){s.push(n.types.exportSpecifier(n.types.identifier(t),n.types.identifier(t)))}e.replaceWith(t.node);e.insertAfter(n.types.exportNamedDeclaration(null,s))},CatchClause(e){const t=e.get("param");replaceRestElement(t.parentPath,t)},AssignmentExpression(e,t){const r=e.get("left");if(r.isObjectPattern()&&hasRestElement(r)){const s=[];const a=e.scope.generateUidBasedOnNode(e.node.right,"ref");s.push(n.types.variableDeclaration("var",[n.types.variableDeclarator(n.types.identifier(a),e.node.right)]));const[o,i,l]=createObjectRest(r,t,n.types.identifier(a));if(o.length>0){s.push(n.types.variableDeclaration("var",o))}const c=n.types.cloneNode(e.node);c.right=n.types.identifier(a);s.push(n.types.expressionStatement(c));s.push(n.types.toStatement(n.types.assignmentExpression("=",i,l)));s.push(n.types.expressionStatement(n.types.identifier(a)));e.replaceWithMultiple(s)}},ForXStatement(e){const{node:t,scope:r}=e;const s=e.get("left");const a=t.left;if(!hasObjectPatternRestElement(s)){return}if(!n.types.isVariableDeclaration(a)){const s=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration("var",[n.types.variableDeclarator(s)]);e.ensureBlock();if(t.body.body.length===0&&e.isCompletionRecord()){t.body.body.unshift(n.types.expressionStatement(r.buildUndefinedNode()))}t.body.body.unshift(n.types.expressionStatement(n.types.assignmentExpression("=",a,n.types.cloneNode(s))))}else{const s=a.declarations[0].id;const o=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration(a.kind,[n.types.variableDeclarator(o,null)]);e.ensureBlock();t.body.body.unshift(n.types.variableDeclaration(t.left.kind,[n.types.variableDeclarator(s,n.types.cloneNode(o))]))}},ArrayPattern(e){const t=[];visitRestElements(e,(e=>{if(!e.parentPath.isObjectPattern()){return}const r=e.parentPath;const s=e.scope.generateUidIdentifier("ref");t.push(n.types.variableDeclarator(r.node,s));r.replaceWith(n.types.cloneNode(s));e.skip()}));if(t.length>0){const r=e.getStatementParent();r.insertAfter(n.types.variableDeclaration(r.node.kind||"var",t))}},ObjectExpression(e,t){if(!hasSpread(e.node))return;let r;if(v){r=getExtendsHelper(t)}else{try{r=t.addHelper("objectSpread2")}catch(e){this.file.declarations["objectSpread2"]=null;r=t.addHelper("objectSpread")}}let s=null;let a=[];function make(){const e=a.length>0;const t=n.types.objectExpression(a);a=[];if(!s){s=n.types.callExpression(r,[t]);return}if(x){if(e){s.arguments.push(t)}return}s=n.types.callExpression(n.types.cloneNode(r),[s,...e?[n.types.objectExpression([]),t]:[]])}for(const t of e.node.properties){if(n.types.isSpreadElement(t)){make();s.arguments.push(t.argument)}else{a.push(t)}}if(a.length)make();e.replaceWith(s)}}}}));t["default"]=u},1963:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);var a=r(4396);var n=r(8304);var o=r(962);var i=r(3092);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var l=_interopDefaultLegacy(a);var c={"es6.array.copy-within":{chrome:"45",opera:"32",edge:"12",firefox:"32",safari:"9",node:"4",ios:"9",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.every":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.fill":{chrome:"45",opera:"32",edge:"12",firefox:"31",safari:"7.1",node:"4",ios:"8",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.filter":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.array.find":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",ios:"8",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.find-index":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",ios:"8",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es7.array.flat-map":{chrome:"69",opera:"56",edge:"79",firefox:"62",safari:"12",node:"11",ios:"12",samsung:"10",electron:"4.0"},"es6.array.for-each":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.from":{chrome:"51",opera:"38",edge:"15",firefox:"36",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es7.array.includes":{chrome:"47",opera:"34",edge:"14",firefox:"43",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.36"},"es6.array.index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.is-array":{chrome:"5",opera:"10.50",edge:"12",firefox:"4",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.iterator":{chrome:"66",opera:"53",edge:"12",firefox:"60",safari:"9",node:"10",ios:"9",samsung:"9",rhino:"1.7.13",electron:"3.0"},"es6.array.last-index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.map":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.array.of":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"9",node:"4",ios:"9",samsung:"5",rhino:"1.7.13",electron:"0.31"},"es6.array.reduce":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.reduce-right":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.slice":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.array.some":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.array.sort":{chrome:"63",opera:"50",edge:"12",firefox:"5",safari:"12",node:"10",ie:"9",ios:"12",samsung:"8",rhino:"1.7.13",electron:"3.0"},"es6.array.species":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.date.now":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.date.to-iso-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.date.to-json":{chrome:"5",opera:"12.10",edge:"12",firefox:"4",safari:"10",node:"0.10",ie:"9",android:"4",ios:"10",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.date.to-primitive":{chrome:"47",opera:"34",edge:"15",firefox:"44",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.36"},"es6.date.to-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"3.1",node:"0.10",ie:"10",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.function.bind":{chrome:"7",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.function.has-instance":{chrome:"51",opera:"38",edge:"15",firefox:"50",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.function.name":{chrome:"5",opera:"10.50",edge:"14",firefox:"2",safari:"4",node:"0.10",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.math.acosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.asinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.atanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.cbrt":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.clz32":{chrome:"38",opera:"25",edge:"12",firefox:"31",safari:"9",node:"0.12",ios:"9",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.cosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.expm1":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.fround":{chrome:"38",opera:"25",edge:"12",firefox:"26",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.hypot":{chrome:"38",opera:"25",edge:"12",firefox:"27",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.imul":{chrome:"30",opera:"17",edge:"12",firefox:"23",safari:"7",node:"0.12",android:"4.4",ios:"7",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.math.log1p":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.log10":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.log2":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.sign":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.sinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.tanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.math.trunc":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",ios:"8",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.number.constructor":{chrome:"41",opera:"28",edge:"12",firefox:"36",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.number.epsilon":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.14",electron:"0.20"},"es6.number.is-finite":{chrome:"19",opera:"15",edge:"12",firefox:"16",safari:"9",node:"0.12",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",electron:"0.20"},"es6.number.is-integer":{chrome:"34",opera:"21",edge:"12",firefox:"16",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.is-nan":{chrome:"19",opera:"15",edge:"12",firefox:"15",safari:"9",node:"0.12",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",electron:"0.20"},"es6.number.is-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"32",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.max-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.min-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es6.number.parse-float":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.14",electron:"0.20"},"es6.number.parse-int":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",ios:"9",samsung:"2",rhino:"1.7.14",electron:"0.20"},"es6.object.assign":{chrome:"49",opera:"36",edge:"13",firefox:"36",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.object.create":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es7.object.define-getter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es7.object.define-setter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es6.object.define-property":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.object.define-properties":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es7.object.entries":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",ios:"10.3",samsung:"6",rhino:"1.7.14",electron:"1.4"},"es6.object.freeze":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.get-own-property-descriptor":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es7.object.get-own-property-descriptors":{chrome:"54",opera:"41",edge:"15",firefox:"50",safari:"10.1",node:"7",ios:"10.3",samsung:"6",electron:"1.4"},"es6.object.get-own-property-names":{chrome:"40",opera:"27",edge:"12",firefox:"33",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.object.get-prototype-of":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es7.object.lookup-getter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es7.object.lookup-setter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",ios:"9",samsung:"8",electron:"3.0"},"es6.object.prevent-extensions":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.to-string":{chrome:"57",opera:"44",edge:"15",firefox:"51",safari:"10",node:"8",ios:"10",samsung:"7",electron:"1.7"},"es6.object.is":{chrome:"19",opera:"15",edge:"12",firefox:"22",safari:"9",node:"0.12",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",electron:"0.20"},"es6.object.is-frozen":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.is-sealed":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.is-extensible":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.keys":{chrome:"40",opera:"27",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.object.seal":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",ios:"9",samsung:"4",rhino:"1.7.13",electron:"0.30"},"es6.object.set-prototype-of":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",ie:"11",ios:"9",samsung:"2",rhino:"1.7.13",electron:"0.20"},"es7.object.values":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",ios:"10.3",samsung:"6",rhino:"1.7.14",electron:"1.4"},"es6.promise":{chrome:"51",opera:"38",edge:"14",firefox:"45",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es7.promise.finally":{chrome:"63",opera:"50",edge:"18",firefox:"58",safari:"11.1",node:"10",ios:"11.3",samsung:"8",electron:"3.0"},"es6.reflect.apply":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.construct":{chrome:"49",opera:"36",edge:"13",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.define-property":{chrome:"49",opera:"36",edge:"13",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.delete-property":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.get":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.get-own-property-descriptor":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.get-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.has":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.is-extensible":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.own-keys":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.prevent-extensions":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.set":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.reflect.set-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",ios:"10",samsung:"5",electron:"0.37"},"es6.regexp.constructor":{chrome:"50",opera:"37",edge:"79",firefox:"40",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.regexp.flags":{chrome:"49",opera:"36",edge:"79",firefox:"37",safari:"9",node:"6",ios:"9",samsung:"5",electron:"0.37"},"es6.regexp.match":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",rhino:"1.7.13",electron:"1.1"},"es6.regexp.replace":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.regexp.split":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.regexp.search":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",ios:"10",samsung:"5",rhino:"1.7.13",electron:"1.1"},"es6.regexp.to-string":{chrome:"50",opera:"37",edge:"79",firefox:"39",safari:"10",node:"6",ios:"10",samsung:"5",electron:"1.1"},"es6.set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.symbol":{chrome:"51",opera:"38",edge:"79",firefox:"51",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es7.symbol.async-iterator":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",ios:"12",samsung:"8",electron:"3.0"},"es6.string.anchor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.big":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.blink":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.bold":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.code-point-at":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.ends-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.fixed":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.fontcolor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.fontsize":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.from-code-point":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.includes":{chrome:"41",opera:"28",edge:"12",firefox:"40",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.italics":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.iterator":{chrome:"38",opera:"25",edge:"12",firefox:"36",safari:"9",node:"0.12",ios:"9",samsung:"3",rhino:"1.7.13",electron:"0.20"},"es6.string.link":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es7.string.pad-start":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",ios:"10",samsung:"7",rhino:"1.7.13",electron:"1.7"},"es7.string.pad-end":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",ios:"10",samsung:"7",rhino:"1.7.13",electron:"1.7"},"es6.string.raw":{chrome:"41",opera:"28",edge:"12",firefox:"34",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.14",electron:"0.21"},"es6.string.repeat":{chrome:"41",opera:"28",edge:"12",firefox:"24",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.small":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.starts-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",ios:"9",samsung:"3.4",rhino:"1.7.13",electron:"0.21"},"es6.string.strike":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.sub":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.sup":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.10",android:"4",ios:"7",phantom:"2",samsung:"1",rhino:"1.7.14",electron:"0.20"},"es6.string.trim":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.10",ie:"9",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es7.string.trim-left":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",ios:"12",samsung:"9",rhino:"1.7.13",electron:"3.0"},"es7.string.trim-right":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",ios:"12",samsung:"9",rhino:"1.7.13",electron:"3.0"},"es6.typed.array-buffer":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.data-view":{chrome:"5",opera:"12",edge:"12",firefox:"15",safari:"5.1",node:"0.10",ie:"10",android:"4",ios:"6",phantom:"2",samsung:"1",rhino:"1.7.13",electron:"0.20"},"es6.typed.int8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint8-clamped-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.int16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.int32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.uint32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.float32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.typed.float64-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",ios:"10",samsung:"5",electron:"1.2"},"es6.weak-map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",ios:"9",samsung:"5",electron:"1.2"},"es6.weak-set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",ios:"9",samsung:"5",electron:"1.2"}};var u=c;const{isObjectProperty:p,isArrayPattern:d,isObjectPattern:f,isAssignmentPattern:y,isRestElement:g,isIdentifier:h}=n.types;function shouldStoreRHSInTemporaryVariable(e){if(d(e)){const t=e.elements.filter((e=>e!==null));if(t.length>1)return true;else return shouldStoreRHSInTemporaryVariable(t[0])}else if(f(e)){const{properties:t}=e;if(t.length>1)return true;else if(t.length===0)return false;else{const e=t[0];if(p(e)){return shouldStoreRHSInTemporaryVariable(e.value)}else{return shouldStoreRHSInTemporaryVariable(e)}}}else if(y(e)){return shouldStoreRHSInTemporaryVariable(e.left)}else if(g(e)){if(h(e.argument))return true;return shouldStoreRHSInTemporaryVariable(e.argument)}else{return false}}const{isAssignmentPattern:b,isObjectProperty:x}=n.types;{const e=n.types.identifier("a");const t=n.types.objectProperty(n.types.identifier("key"),e);const r=n.types.objectPattern([t]);var v=n.types.isReferenced(e,t,r)?1:0}var j=s.declare(((e,t)=>{var r,s,a,c;e.assertVersion(7);const p=e.targets();const d=!i.isRequired("es6.object.assign",p,{compatData:u});const{useBuiltIns:f=d,loose:y=false}=t;if(typeof y!=="boolean"){throw new Error(".loose must be a boolean, or undefined")}const g=(r=e.assumption("ignoreFunctionLength"))!=null?r:y;const h=(s=e.assumption("objectRestNoSymbols"))!=null?s:y;const j=(a=e.assumption("pureGetters"))!=null?a:y;const E=(c=e.assumption("setSpreadProperties"))!=null?c:y;function getExtendsHelper(e){return f?n.types.memberExpression(n.types.identifier("Object"),n.types.identifier("assign")):e.addHelper("extends")}function hasRestElement(e){let t=false;visitRestElements(e,(e=>{t=true;e.stop()}));return t}function hasObjectPatternRestElement(e){let t=false;visitRestElements(e,(e=>{if(e.parentPath.isObjectPattern()){t=true;e.stop()}}));return t}function visitRestElements(e,t){e.traverse({Expression(e){const{parent:t,key:r}=e;if(b(t)&&r==="right"||x(t)&&t.computed&&r==="key"){e.skip()}},RestElement:t})}function hasSpread(e){for(const t of e.properties){if(n.types.isSpreadElement(t)){return true}}return false}function extractNormalizedKeys(e){const t=e.properties;const r=[];let s=true;let a=false;for(const e of t){if(n.types.isIdentifier(e.key)&&!e.computed){r.push(n.types.stringLiteral(e.key.name))}else if(n.types.isTemplateLiteral(e.key)){r.push(n.types.cloneNode(e.key));a=true}else if(n.types.isLiteral(e.key)){r.push(n.types.stringLiteral(String(e.key.value)))}else{r.push(n.types.cloneNode(e.key));s=false}}return{keys:r,allLiteral:s,hasTemplateLiteral:a}}function replaceImpureComputedKeys(e,t){const r=[];for(const s of e){const e=s.get("key");if(s.node.computed&&!e.isPure()){const s=t.generateUidBasedOnNode(e.node);const a=n.types.variableDeclarator(n.types.identifier(s),e.node);r.push(a);e.replaceWith(n.types.identifier(s))}}return r}function removeUnusedExcludedKeys(e){const t=e.getOuterBindingIdentifierPaths();Object.keys(t).forEach((r=>{const s=t[r].parentPath;if(e.scope.getBinding(r).references>v||!s.isObjectProperty()){return}s.remove()}))}function createObjectRest(e,t,r){const s=e.get("properties");const a=s[s.length-1];n.types.assertRestElement(a.node);const o=n.types.cloneNode(a.node);a.remove();const i=replaceImpureComputedKeys(e.get("properties"),e.scope);const{keys:l,allLiteral:c,hasTemplateLiteral:u}=extractNormalizedKeys(e.node);if(l.length===0){return[i,o.argument,n.types.callExpression(getExtendsHelper(t),[n.types.objectExpression([]),n.types.cloneNode(r)])]}let p;if(!c){p=n.types.callExpression(n.types.memberExpression(n.types.arrayExpression(l),n.types.identifier("map")),[t.addHelper("toPropertyKey")])}else{p=n.types.arrayExpression(l);if(!u&&!n.types.isProgram(e.scope.block)){const t=e.findParent((e=>e.isProgram()));const r=e.scope.generateUidIdentifier("excluded");t.scope.push({id:r,init:p,kind:"const"});p=n.types.cloneNode(r)}}return[i,o.argument,n.types.callExpression(t.addHelper(`objectWithoutProperties${h?"Loose":""}`),[n.types.cloneNode(r),p])]}function replaceRestElement(e,t,r){if(t.isAssignmentPattern()){replaceRestElement(e,t.get("left"),r);return}if(t.isArrayPattern()&&hasRestElement(t)){const s=t.get("elements");for(let t=0;te.skip(),"ReferencedIdentifier|BindingIdentifier":IdentifierHandler},e.scope)}}}if(!a){for(let s=0;se>=n-1||r.has(e);o.convertFunctionParams(e,g,shouldTransformParam,replaceRestElement)}},VariableDeclarator(e,t){if(!e.get("id").isObjectPattern()){return}let r=e;const s=e;visitRestElements(e.get("id"),(e=>{if(!e.parentPath.isObjectPattern()){return}if(shouldStoreRHSInTemporaryVariable(s.node.id)&&!n.types.isIdentifier(s.node.init)){const t=e.scope.generateUidIdentifierBasedOnNode(s.node.init,"ref");s.insertBefore(n.types.variableDeclarator(t,s.node.init));s.replaceWith(n.types.variableDeclarator(s.node.id,n.types.cloneNode(t)));return}let a=s.node.init;const o=[];let i;e.findParent((e=>{if(e.isObjectProperty()){o.unshift(e)}else if(e.isVariableDeclarator()){i=e.parentPath.node.kind;return true}}));const l=replaceImpureComputedKeys(o,e.scope);o.forEach((e=>{const{node:t}=e;a=n.types.memberExpression(a,n.types.cloneNode(t.key),t.computed||n.types.isLiteral(t.key))}));const c=e.findParent((e=>e.isObjectPattern()));const[u,p,d]=createObjectRest(c,t,a);if(j){removeUnusedExcludedKeys(c)}n.types.assertIdentifier(p);r.insertBefore(u);r.insertBefore(l);r=r.insertAfter(n.types.variableDeclarator(p,d))[0];e.scope.registerBinding(i,r);if(c.node.properties.length===0){c.findParent((e=>e.isObjectProperty()||e.isVariableDeclarator())).remove()}}))},ExportNamedDeclaration(e){const t=e.get("declaration");if(!t.isVariableDeclaration())return;const r=t.get("declarations").some((e=>hasObjectPatternRestElement(e.get("id"))));if(!r)return;const s=[];for(const t of Object.keys(e.getOuterBindingIdentifiers(true))){s.push(n.types.exportSpecifier(n.types.identifier(t),n.types.identifier(t)))}e.replaceWith(t.node);e.insertAfter(n.types.exportNamedDeclaration(null,s))},CatchClause(e){const t=e.get("param");replaceRestElement(e,t)},AssignmentExpression(e,t){const r=e.get("left");if(r.isObjectPattern()&&hasRestElement(r)){const s=[];const a=e.scope.generateUidBasedOnNode(e.node.right,"ref");s.push(n.types.variableDeclaration("var",[n.types.variableDeclarator(n.types.identifier(a),e.node.right)]));const[o,i,l]=createObjectRest(r,t,n.types.identifier(a));if(o.length>0){s.push(n.types.variableDeclaration("var",o))}const c=n.types.cloneNode(e.node);c.right=n.types.identifier(a);s.push(n.types.expressionStatement(c));s.push(n.types.toStatement(n.types.assignmentExpression("=",i,l)));s.push(n.types.expressionStatement(n.types.identifier(a)));e.replaceWithMultiple(s)}},ForXStatement(e){const{node:t,scope:r}=e;const s=e.get("left");const a=t.left;if(!hasObjectPatternRestElement(s)){return}if(!n.types.isVariableDeclaration(a)){const s=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration("var",[n.types.variableDeclarator(s)]);e.ensureBlock();const o=t.body;if(o.body.length===0&&e.isCompletionRecord()){o.body.unshift(n.types.expressionStatement(r.buildUndefinedNode()))}o.body.unshift(n.types.expressionStatement(n.types.assignmentExpression("=",a,n.types.cloneNode(s))))}else{const s=a.declarations[0].id;const o=r.generateUidIdentifier("ref");t.left=n.types.variableDeclaration(a.kind,[n.types.variableDeclarator(o,null)]);e.ensureBlock();const i=t.body;i.body.unshift(n.types.variableDeclaration(t.left.kind,[n.types.variableDeclarator(s,n.types.cloneNode(o))]))}},ArrayPattern(e){const t=[];visitRestElements(e,(e=>{if(!e.parentPath.isObjectPattern()){return}const r=e.parentPath;const s=e.scope.generateUidIdentifier("ref");t.push(n.types.variableDeclarator(r.node,s));r.replaceWith(n.types.cloneNode(s));e.skip()}));if(t.length>0){const r=e.getStatementParent();const s=r.node;const a=s.type==="VariableDeclaration"?s.kind:"var";r.insertAfter(n.types.variableDeclaration(a,t))}},ObjectExpression(e,t){if(!hasSpread(e.node))return;let r;if(E){r=getExtendsHelper(t)}else{try{r=t.addHelper("objectSpread2")}catch(e){this.file.declarations["objectSpread2"]=null;r=t.addHelper("objectSpread")}}let s=null;let a=[];function make(){const e=a.length>0;const t=n.types.objectExpression(a);a=[];if(!s){s=n.types.callExpression(r,[t]);return}if(j){if(e){s.arguments.push(t)}return}s=n.types.callExpression(n.types.cloneNode(r),[s,...e?[n.types.objectExpression([]),t]:[]])}for(const t of e.node.properties){if(n.types.isSpreadElement(t)){make();s.arguments.push(t.argument)}else{a.push(t)}}if(a.length)make();e.replaceWith(s)}}}}));t["default"]=j},7601:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2690);var n=(0,s.declare)((e=>{e.assertVersion(7);return{name:"proposal-optional-catch-binding",inherits:a.default,visitor:{CatchClause(e){if(!e.node.param){const t=e.scope.generateUidIdentifier("unused");const r=e.get("param");r.replaceWith(t)}}}}}));t["default"]=n},7082:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var s=r(3242);var a=r(1648);var n=r(8304);var o=r(4410);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var i=_interopDefaultLegacy(a);function willPathCastToBoolean(e){const t=findOutermostTransparentParent(e);const{node:r,parentPath:s}=t;if(s.isLogicalExpression()){const{operator:e,right:t}=s.node;if(e==="&&"||e==="||"||e==="??"&&r===t){return willPathCastToBoolean(s)}}if(s.isSequenceExpression()){const{expressions:e}=s.node;if(e[e.length-1]===r){return willPathCastToBoolean(s)}else{return true}}return s.isConditional({test:r})||s.isUnaryExpression({operator:"!"})||s.isLoop({test:r})}function findOutermostTransparentParent(e){let t=e;e.findParent((e=>{if(!o.isTransparentExprWrapper(e.node))return true;t=e}));return t}const{ast:l}=n.template.expression;function isSimpleMemberExpression(e){e=o.skipTransparentExprWrapperNodes(e);return n.types.isIdentifier(e)||n.types.isSuper(e)||n.types.isMemberExpression(e)&&!e.computed&&isSimpleMemberExpression(e.object)}function needsMemoize(e){let t=e;const{scope:r}=e;while(t.isOptionalMemberExpression()||t.isOptionalCallExpression()){const{node:e}=t;const s=t.isOptionalMemberExpression()?"object":"callee";const a=o.skipTransparentExprWrappers(t.get(s));if(e.optional){return!r.isStatic(a.node)}t=a}}function transform(e,{pureGetters:t,noDocumentAll:r}){const{scope:s}=e;const a=findOutermostTransparentParent(e);const{parentPath:i}=a;const c=willPathCastToBoolean(a);let u=false;const p=i.isCallExpression({callee:a.node})&&e.isOptionalMemberExpression();const d=[];let f=e;if(s.path.isPattern()&&needsMemoize(f)){e.replaceWith(n.template.ast`(() => ${e.node})()`);return}while(f.isOptionalMemberExpression()||f.isOptionalCallExpression()){const{node:e}=f;if(e.optional){d.push(e)}if(f.isOptionalMemberExpression()){f.node.type="MemberExpression";f=o.skipTransparentExprWrappers(f.get("object"))}else if(f.isOptionalCallExpression()){f.node.type="CallExpression";f=o.skipTransparentExprWrappers(f.get("callee"))}}let y=e;if(i.isUnaryExpression({operator:"delete"})){y=i;u=true}for(let e=d.length-1;e>=0;e--){const a=d[e];const i=n.types.isCallExpression(a);const f=i?"callee":"object";const h=a[f];const b=o.skipTransparentExprWrapperNodes(h);let x;let v;if(i&&n.types.isIdentifier(b,{name:"eval"})){v=x=b;a[f]=n.types.sequenceExpression([n.types.numericLiteral(0),x])}else if(t&&i&&isSimpleMemberExpression(b)){v=x=h}else{x=s.maybeGenerateMemoised(b);if(x){v=n.types.assignmentExpression("=",n.types.cloneNode(x),h);a[f]=x}else{v=x=h}}if(i&&n.types.isMemberExpression(b)){if(t&&isSimpleMemberExpression(b)){a.callee=h}else{const{object:e}=b;let t=s.maybeGenerateMemoised(e);if(t){b.object=n.types.assignmentExpression("=",t,e)}else if(n.types.isSuper(e)){t=n.types.thisExpression()}else{t=e}a.arguments.unshift(n.types.cloneNode(t));a.callee=n.types.memberExpression(a.callee,n.types.identifier("call"))}}let j=y.node;if(e===0&&p){var g;const e=o.skipTransparentExprWrapperNodes(j.object);let r;if(!t||!isSimpleMemberExpression(e)){r=s.maybeGenerateMemoised(e);if(r){j.object=n.types.assignmentExpression("=",r,e)}}j=n.types.callExpression(n.types.memberExpression(j,n.types.identifier("bind")),[n.types.cloneNode((g=r)!=null?g:e)])}if(c){const e=r?l`${n.types.cloneNode(v)} != null`:l` ${n.types.cloneNode(v)} !== null && ${n.types.cloneNode(x)} !== void 0`;y.replaceWith(n.types.logicalExpression("&&",e,j));y=o.skipTransparentExprWrappers(y.get("right"))}else{const e=r?l`${n.types.cloneNode(v)} == null`:l` ${n.types.cloneNode(v)} === null || ${n.types.cloneNode(x)} === void 0`;const t=u?l`true`:l`void 0`;y.replaceWith(n.types.conditionalExpression(e,t,j));y=o.skipTransparentExprWrappers(y.get("alternate"))}}}var c=s.declare(((e,t)=>{var r,s;e.assertVersion(7);const{loose:a=false}=t;const n=(r=e.assumption("noDocumentAll"))!=null?r:a;const o=(s=e.assumption("pureGetters"))!=null?s:a;return{name:"proposal-optional-chaining",inherits:i["default"].default,visitor:{"OptionalCallExpression|OptionalMemberExpression"(e){transform(e,{noDocumentAll:n,pureGetters:o})}}}}));t["default"]=c;t.transform=transform},7806:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(2924);var n=(0,s.declare)(((e,t)=>{e.assertVersion(7);return(0,a.createClassFeaturePlugin)({name:"proposal-private-methods",api:e,feature:a.FEATURES.privateMethods,loose:t.loose,manipulateOptions(e,t){t.plugins.push("classPrivateMethods")}})}));t["default"]=n},6722:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(1603);var n=r(2924);var o=r(9102);var i=(0,s.declare)(((e,t)=>{e.assertVersion(7);const{types:r,template:s}=e;const{loose:i}=t;const l=new WeakMap;const c=new WeakMap;function unshadow(e,t,r){while(r!==t){if(r.hasOwnBinding(e))r.rename(e);r=r.parent}}function injectToFieldInit(e,t,s=false){if(e.node.value){if(s){e.get("value").insertBefore(t)}else{e.get("value").insertAfter(t)}}else{e.set("value",r.unaryExpression("void",t))}}function injectInitialization(e,t){let s;let a;for(const t of e.get("body.body")){if((t.isClassProperty()||t.isClassPrivateProperty())&&!t.node.static){s=t;break}if(!a&&t.isClassMethod({kind:"constructor"})){a=t}}if(s){injectToFieldInit(s,t,true)}else{(0,n.injectInitialization)(e,a,[r.expressionStatement(t)])}}function getWeakSetId(e,t,a,n="",i){let c=l.get(a.node);if(!c){c=t.scope.generateUidIdentifier(`${n||""} brandCheck`);l.set(a.node,c);i(a,s.expression.ast`${r.cloneNode(c)}.add(this)`);const e=r.newExpression(r.identifier("WeakSet"),[]);(0,o.default)(e);t.insertBefore(s.ast`var ${c} = ${e}`)}return r.cloneNode(c)}return{name:"proposal-private-property-in-object",inherits:a.default,pre(){(0,n.enableFeature)(this.file,n.FEATURES.privateIn,i)},visitor:{BinaryExpression(e){const{node:t}=e;if(t.operator!=="in")return;if(!r.isPrivateName(t.left))return;const{name:a}=t.left.id;let n;const o=e.findParent((e=>{if(!e.isClass())return false;n=e.get("body.body").find((({node:e})=>r.isPrivate(e)&&e.key.id.name===a));return!!n}));if(o.parentPath.scope.path.isPattern()){o.replaceWith(s.ast`(() => ${o.node})()`);return}if(n.isMethod()){if(n.node.static){if(o.node.id){unshadow(o.node.id.name,o.scope,e.scope)}else{o.set("id",e.scope.generateUidIdentifier("class"))}e.replaceWith(s.expression.ast` ${r.cloneNode(o.node.id)} === ${e.node.right} @@ -232,7 +232,7 @@ (function (${t.identifier(i)}) { ${l} })(${o} || (${t.cloneNode(o)} = ${c})); - `}},1146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(8304);var n=(0,s.declare)((e=>{e.assertVersion(7);const t=/[\ud800-\udfff]/g;const r=/(\\+)u\{([0-9a-fA-F]+)\}/g;function escape(e){let t=e.toString(16);while(t.length<4)t="0"+t;return"\\u"+t}function replacer(e,t,r){if(t.length%2===0){return e}const s=String.fromCodePoint(parseInt(r,16));const a=t.slice(0,-1)+escape(s.charCodeAt(0));return s.length===1?a:a+escape(s.charCodeAt(1))}function replaceUnicodeEscapes(e){return e.replace(r,replacer)}function getUnicodeEscape(e){let t;while(t=r.exec(e)){if(t[1].length%2===0)continue;r.lastIndex=0;return t[0]}return null}return{name:"transform-unicode-escapes",manipulateOptions({generatorOpts:e}){var t,r;if(!e.jsescOption){e.jsescOption={}}(r=(t=e.jsescOption).minimal)!=null?r:t.minimal=false},visitor:{Identifier(e){const{node:r,key:s}=e;const{name:n}=r;const o=n.replace(t,(e=>`_u${e.charCodeAt(0).toString(16)}`));if(n===o)return;const i=a.types.inherits(a.types.stringLiteral(n),r);if(s==="key"){e.replaceWith(i);return}const{parentPath:l,scope:c}=e;if(l.isMemberExpression({property:r})||l.isOptionalMemberExpression({property:r})){l.node.computed=true;e.replaceWith(i);return}const u=c.getBinding(n);if(u){c.rename(n,c.generateUid(o));return}throw e.buildCodeFrameError(`Can't reference '${n}' as a bare identifier`)},"StringLiteral|DirectiveLiteral"(e){const{node:t}=e;const{extra:r}=t;if(r!=null&&r.raw)r.raw=replaceUnicodeEscapes(r.raw)},TemplateElement(e){const{node:t,parentPath:r}=e;const{value:s}=t;const a=getUnicodeEscape(s.raw);if(!a)return;const n=r.parentPath;if(n.isTaggedTemplateExpression()){throw e.buildCodeFrameError(`Can't replace Unicode escape '${a}' inside tagged template literals. You can enable '@babel/plugin-transform-template-literals' to compile them to classic strings.`)}s.raw=replaceUnicodeEscapes(s.raw)}}}}));t["default"]=n},5037:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(6741);var a=r(3242);var n=(0,a.declare)((e=>{e.assertVersion(7);return(0,s.createRegExpFeaturePlugin)({name:"transform-unicode-regex",feature:"unicodeFlag"})}));t["default"]=n},9967:e=>{const t=new Set;const r=["syntax-import-assertions"];const s={"proposal-async-generator-functions":"syntax-async-generators","proposal-class-properties":"syntax-class-properties","proposal-class-static-block":"syntax-class-static-block","proposal-json-strings":"syntax-json-strings","proposal-nullish-coalescing-operator":"syntax-nullish-coalescing-operator","proposal-numeric-separator":"syntax-numeric-separator","proposal-object-rest-spread":"syntax-object-rest-spread","proposal-optional-catch-binding":"syntax-optional-catch-binding","proposal-optional-chaining":"syntax-optional-chaining","proposal-private-methods":"syntax-class-properties","proposal-private-property-in-object":"syntax-private-property-in-object","proposal-unicode-property-regex":null};const a=Object.keys(s).map((function(e){return[e,s[e]]}));const n=new Map(a);e.exports={pluginSyntaxMap:n,proposalPlugins:t,proposalSyntaxPlugins:r}},1421:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.minVersions=t["default"]=void 0;var s=r(7978);var a=r(749);var n=r(2288);var o=r(9854);var i=r(9081);var l=r(2228);var c=r(4602);var u=r(6709);var p=r(3835);var d=r(3537);var f=r(4396);var y=r(2690);var g=r(1648);var h=r(1603);var b=r(9723);var x=r(6009);var v=r(4197);var j=r(655);var E=r(2962);var w=r(2521);var _=r(113);var S=r(1740);var k=r(4742);var D=r(9448);var C=r(1963);var I=r(7601);var P=r(7082);var A=r(7806);var O=r(6722);var R=r(8226);var F=r(5333);var M=r(8137);var N=r(141);var L=r(265);var B=r(8323);var W=r(3879);var U=r(6857);var V=r(2452);var G=r(3829);var $=r(3467);var q=r(1532);var H=r(3930);var z=r(65);var K=r(627);var X=r(4711);var Y=r(4362);var J=r(7586);var Z=r(7538);var Q=r(330);var ee=r(931);var te=r(8413);var re=r(962);var se=r(5898);var ae=r(9230);var ne=r(7162);var oe=r(8290);var ie=r(8297);var le=r(5167);var ce=r(3853);var ue=r(6077);var pe=r(1146);var de=r(5037);var fe=r(5665);var ye=r(8961);var me=r(3978);var ge=r(7419);var he=r(9252);var be=r(5133);var xe=r(8430);var ve=r(1511);var je={"bugfix/transform-async-arrows-in-class":()=>fe,"bugfix/transform-edge-default-parameters":()=>ye,"bugfix/transform-edge-function-name":()=>me,"bugfix/transform-safari-block-shadowing":()=>he,"bugfix/transform-safari-for-shadowing":()=>be,"bugfix/transform-safari-id-destructuring-collision-in-function-expression":()=>xe.default,"bugfix/transform-tagged-template-caching":()=>ge,"bugfix/transform-v8-spread-parameters-in-optional-chaining":()=>ve.default,"proposal-async-generator-functions":()=>x.default,"proposal-class-properties":()=>v.default,"proposal-class-static-block":()=>j.default,"proposal-dynamic-import":()=>E.default,"proposal-export-namespace-from":()=>w.default,"proposal-json-strings":()=>_.default,"proposal-logical-assignment-operators":()=>S.default,"proposal-nullish-coalescing-operator":()=>k.default,"proposal-numeric-separator":()=>D.default,"proposal-object-rest-spread":()=>C.default,"proposal-optional-catch-binding":()=>I.default,"proposal-optional-chaining":()=>P.default,"proposal-private-methods":()=>A.default,"proposal-private-property-in-object":()=>O.default,"proposal-unicode-property-regex":()=>R.default,"syntax-async-generators":()=>s,"syntax-class-properties":()=>a,"syntax-class-static-block":()=>n,"syntax-dynamic-import":()=>o,"syntax-export-namespace-from":()=>i,"syntax-import-assertions":()=>l.default,"syntax-json-strings":()=>c,"syntax-logical-assignment-operators":()=>u,"syntax-nullish-coalescing-operator":()=>p,"syntax-numeric-separator":()=>d,"syntax-object-rest-spread":()=>f,"syntax-optional-catch-binding":()=>y,"syntax-optional-chaining":()=>g,"syntax-private-property-in-object":()=>h,"syntax-top-level-await":()=>b,"transform-arrow-functions":()=>M.default,"transform-async-to-generator":()=>F.default,"transform-block-scoped-functions":()=>N.default,"transform-block-scoping":()=>L.default,"transform-classes":()=>B.default,"transform-computed-properties":()=>W.default,"transform-destructuring":()=>U.default,"transform-dotall-regex":()=>V.default,"transform-duplicate-keys":()=>G.default,"transform-exponentiation-operator":()=>$.default,"transform-for-of":()=>q.default,"transform-function-name":()=>H.default,"transform-literals":()=>z.default,"transform-member-expression-literals":()=>K.default,"transform-modules-amd":()=>X.default,"transform-modules-commonjs":()=>Y.default,"transform-modules-systemjs":()=>J.default,"transform-modules-umd":()=>Z.default,"transform-named-capturing-groups-regex":()=>Q.default,"transform-new-target":()=>ee.default,"transform-object-super":()=>te.default,"transform-parameters":()=>re.default,"transform-property-literals":()=>se.default,"transform-regenerator":()=>ae.default,"transform-reserved-words":()=>ne.default,"transform-shorthand-properties":()=>oe.default,"transform-spread":()=>ie.default,"transform-sticky-regex":()=>le.default,"transform-template-literals":()=>ce.default,"transform-typeof-symbol":()=>ue.default,"transform-unicode-escapes":()=>pe.default,"transform-unicode-regex":()=>de.default};t["default"]=je;const Ee={"bugfix/transform-safari-id-destructuring-collision-in-function-expression":"7.16.0","proposal-class-static-block":"7.12.0","proposal-private-property-in-object":"7.10.0"};t.minVersions=Ee},3218:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.logPlugin=void 0;var s=r(3092);const logPlugin=(e,t,r)=>{const a=(0,s.getInclusionReasons)(e,t,r);const n=r[e];if(!n){console.log(` ${e}`);return}let o=`{`;let i=true;for(const e of Object.keys(a)){if(!i)o+=`,`;i=false;o+=` ${e}`;if(n[e])o+=` < ${n[e]}`}o+=` }`;console.log(` ${e} ${o}`)};t.logPlugin=logPlugin},7298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.addProposalSyntaxPlugins=addProposalSyntaxPlugins;t.removeUnnecessaryItems=removeUnnecessaryItems;t.removeUnsupportedItems=removeUnsupportedItems;var s=r(7849);var a=r(1421);const n=Function.call.bind(Object.hasOwnProperty);function addProposalSyntaxPlugins(e,t){t.forEach((t=>{e.add(t)}))}function removeUnnecessaryItems(e,t){e.forEach((r=>{var s;(s=t[r])==null?void 0:s.forEach((t=>e.delete(t)))}))}function removeUnsupportedItems(e,t){e.forEach((r=>{if(n(a.minVersions,r)&&(0,s.lt)(t,a.minVersions[r])){e.delete(r)}}))}},7102:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;const r=["transform-typeof-symbol"];function _default({loose:e}){return e?r:null}},6791:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getPolyfillPlugins=t.getModulesPluginNames=t["default"]=void 0;t.isPluginRequired=isPluginRequired;t.transformIncludesAndExcludes=void 0;var s=r(7849);var a=r(3218);var n=r(7102);var o=r(7298);var i=r(9392);var l=r(9626);var c=r(9967);var u=r(2187);var p=r(6474);var d=r(3952);var f=r(4113);var y=r(8943);var g=r(3096);var h=r(9504);var b=r(3092);var x=r(1421);var v=r(3242);const j=y.default||y;const E=g.default||g;const w=h.default||h;function isPluginRequired(e,t){return(0,b.isRequired)("fake-name",e,{compatData:{"fake-name":t}})}function filterStageFromList(e,t){return Object.keys(e).reduce(((r,s)=>{if(!t.has(s)){r[s]=e[s]}return r}),{})}const _={withProposals:{withoutBugfixes:u.plugins,withBugfixes:Object.assign({},u.plugins,u.pluginsBugfixes)},withoutProposals:{withoutBugfixes:filterStageFromList(u.plugins,c.proposalPlugins),withBugfixes:filterStageFromList(Object.assign({},u.plugins,u.pluginsBugfixes),c.proposalPlugins)}};function getPluginList(e,t){if(e){if(t)return _.withProposals.withBugfixes;else return _.withProposals.withoutBugfixes}else{if(t)return _.withoutProposals.withBugfixes;else return _.withoutProposals.withoutBugfixes}}const getPlugin=e=>{const t=x.default[e]();if(!t){throw new Error(`Could not find plugin "${e}". Ensure there is an entry in ./available-plugins.js for it.`)}return t};const transformIncludesAndExcludes=e=>e.reduce(((e,t)=>{const r=t.match(/^(es|es6|es7|esnext|web)\./)?"builtIns":"plugins";e[r].add(t);return e}),{all:e,plugins:new Set,builtIns:new Set});t.transformIncludesAndExcludes=transformIncludesAndExcludes;const getModulesPluginNames=({modules:e,transformations:t,shouldTransformESM:r,shouldTransformDynamicImport:s,shouldTransformExportNamespaceFrom:a,shouldParseTopLevelAwait:n})=>{const o=[];if(e!==false&&t[e]){if(r){o.push(t[e])}if(s&&r&&e!=="umd"){o.push("proposal-dynamic-import")}else{if(s){console.warn("Dynamic import can only be supported when transforming ES modules"+" to AMD, CommonJS or SystemJS. Only the parser plugin will be enabled.")}o.push("syntax-dynamic-import")}}else{o.push("syntax-dynamic-import")}if(a){o.push("proposal-export-namespace-from")}else{o.push("syntax-export-namespace-from")}if(n){o.push("syntax-top-level-await")}return o};t.getModulesPluginNames=getModulesPluginNames;const getPolyfillPlugins=({useBuiltIns:e,corejs:t,polyfillTargets:r,include:s,exclude:a,proposals:n,shippedProposals:o,regenerator:i,debug:l})=>{const c=[];if(e==="usage"||e==="entry"){const u={method:`${e}-global`,version:t?t.toString():undefined,targets:r,include:s,exclude:a,proposals:n,shippedProposals:o,debug:l};if(t){if(e==="usage"){if(t.major===2){c.push([j,u],[f.default,{usage:true}])}else{c.push([E,u],[f.default,{usage:true,deprecated:true}])}if(i){c.push([w,{method:"usage-global",debug:l}])}}else{if(t.major===2){c.push([f.default,{regenerator:i}],[j,u])}else{c.push([E,u],[f.default,{deprecated:true}]);if(!i){c.push([d.default,u])}}}}}return c};t.getPolyfillPlugins=getPolyfillPlugins;function getLocalTargets(e,t,r,s){if(e!=null&&e.esmodules&&e.browsers){console.warn(`\n@babel/preset-env: esmodules and browsers targets have been specified together.\n\`browsers\` target, \`${e.browsers.toString()}\` will be ignored.\n`)}return(0,b.default)(e,{ignoreBrowserslistConfig:t,configPath:r,browserslistEnv:s})}function supportsStaticESM(e){return!!(e!=null&&e.supportsStaticESM)}function supportsDynamicImport(e){return!!(e!=null&&e.supportsDynamicImport)}function supportsExportNamespaceFrom(e){return!!(e!=null&&e.supportsExportNamespaceFrom)}function supportsTopLevelAwait(e){return!!(e!=null&&e.supportsTopLevelAwait)}var S=(0,v.declarePreset)(((e,t)=>{e.assertVersion(7);const r=e.targets();const{bugfixes:u,configPath:d,debug:f,exclude:y,forceAllTransforms:g,ignoreBrowserslistConfig:h,include:x,loose:v,modules:j,shippedProposals:E,spec:w,targets:_,useBuiltIns:S,corejs:{version:k,proposals:D},browserslistEnv:C}=(0,l.default)(t);let I=r;if((0,s.lt)(e.version,"7.13.0")||t.targets||t.configPath||t.browserslistEnv||t.ignoreBrowserslistConfig){{var P=false;if(_!=null&&_.uglify){P=true;delete _.uglify;console.warn(`\nThe uglify target has been deprecated. Set the top level\noption \`forceAllTransforms: true\` instead.\n`)}}I=getLocalTargets(_,h,d,C)}const A=g||P?{}:I;const O=transformIncludesAndExcludes(x);const R=transformIncludesAndExcludes(y);const F=getPluginList(E,u);const M=j==="auto"&&(e.caller==null?void 0:e.caller(supportsExportNamespaceFrom))||j===false&&!(0,b.isRequired)("proposal-export-namespace-from",A,{compatData:F,includes:O.plugins,excludes:R.plugins});const N=getModulesPluginNames({modules:j,transformations:i.default,shouldTransformESM:j!=="auto"||!(e.caller!=null&&e.caller(supportsStaticESM)),shouldTransformDynamicImport:j!=="auto"||!(e.caller!=null&&e.caller(supportsDynamicImport)),shouldTransformExportNamespaceFrom:!M,shouldParseTopLevelAwait:!e.caller||e.caller(supportsTopLevelAwait)});const L=(0,b.filterItems)(F,O.plugins,R.plugins,A,N,(0,n.default)({loose:v}),c.pluginSyntaxMap);(0,o.removeUnnecessaryItems)(L,p);(0,o.removeUnsupportedItems)(L,e.version);if(E){(0,o.addProposalSyntaxPlugins)(L,c.proposalSyntaxPlugins)}const B=getPolyfillPlugins({useBuiltIns:S,corejs:k,polyfillTargets:I,include:O.builtIns,exclude:R.builtIns,proposals:D,shippedProposals:E,regenerator:L.has("transform-regenerator"),debug:f});const W=S!==false;const U=Array.from(L).map((e=>{if(e==="proposal-class-properties"||e==="proposal-private-methods"||e==="proposal-private-property-in-object"){return[getPlugin(e),{loose:v?"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error":"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"}]}return[getPlugin(e),{spec:w,loose:v,useBuiltIns:W}]})).concat(B);if(f){console.log("@babel/preset-env: `DEBUG` option");console.log("\nUsing targets:");console.log(JSON.stringify((0,b.prettifyTargets)(I),null,2));console.log(`\nUsing modules transform: ${j.toString()}`);console.log("\nUsing plugins:");L.forEach((e=>{(0,a.logPlugin)(e,I,F)}));if(!S){console.log("\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.")}}return{plugins:U}}));t["default"]=S},9392:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r={auto:"transform-modules-commonjs",amd:"transform-modules-amd",commonjs:"transform-modules-commonjs",cjs:"transform-modules-commonjs",systemjs:"transform-modules-systemjs",umd:"transform-modules-umd"};t["default"]=r},9626:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkDuplicateIncludeExcludes=void 0;t["default"]=normalizeOptions;t.normalizeCoreJSOption=normalizeCoreJSOption;t.validateUseBuiltInsOption=t.validateModulesOption=t.normalizePluginName=void 0;var s=r(4073);var a=r(7849);var n=r(6686);var o=r(2187);var i=r(9392);var l=r(4130);var c=r(3317);const u=["web.timers","web.immediate","web.dom.iterable"];const p=new c.OptionValidator("@babel/preset-env");const d=Object.keys(o.plugins);const f=["proposal-dynamic-import",...Object.keys(i.default).map((e=>i.default[e]))];const getValidIncludesAndExcludes=(e,t)=>new Set([...d,...e==="exclude"?f:[],...t?t==2?[...Object.keys(n),...u]:Object.keys(s):[]]);const pluginToRegExp=e=>{if(e instanceof RegExp)return e;try{return new RegExp(`^${normalizePluginName(e)}$`)}catch(e){return null}};const selectPlugins=(e,t,r)=>Array.from(getValidIncludesAndExcludes(t,r)).filter((t=>e instanceof RegExp&&e.test(t)));const flatten=e=>[].concat(...e);const expandIncludesAndExcludes=(e=[],t,r)=>{if(e.length===0)return[];const s=e.map((e=>selectPlugins(pluginToRegExp(e),t,r)));const a=e.filter(((e,t)=>s[t].length===0));p.invariant(a.length===0,`The plugins/built-ins '${a.join(", ")}' passed to the '${t}' option are not\n valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`);return flatten(s)};const normalizePluginName=e=>e.replace(/^(@babel\/|babel-)(plugin-)?/,"");t.normalizePluginName=normalizePluginName;const checkDuplicateIncludeExcludes=(e=[],t=[])=>{const r=e.filter((e=>t.indexOf(e)>=0));p.invariant(r.length===0,`The plugins/built-ins '${r.join(", ")}' were found in both the "include" and\n "exclude" options.`)};t.checkDuplicateIncludeExcludes=checkDuplicateIncludeExcludes;const normalizeTargets=e=>{if(typeof e==="string"||Array.isArray(e)){return{browsers:e}}return Object.assign({},e)};const validateModulesOption=(e=l.ModulesOption.auto)=>{p.invariant(l.ModulesOption[e.toString()]||e===l.ModulesOption.false,`The 'modules' option must be one of \n`+` - 'false' to indicate no module processing\n`+` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'`+` - 'auto' (default) which will automatically select 'false' if the current\n`+` process is known to support ES module syntax, or "commonjs" otherwise\n`);return e};t.validateModulesOption=validateModulesOption;const validateUseBuiltInsOption=(e=false)=>{p.invariant(l.UseBuiltInsOption[e.toString()]||e===l.UseBuiltInsOption.false,`The 'useBuiltIns' option must be either\n 'false' (default) to indicate no polyfill,\n '"entry"' to indicate replacing the entry polyfill, or\n '"usage"' to import only used polyfills per file`);return e};t.validateUseBuiltInsOption=validateUseBuiltInsOption;function normalizeCoreJSOption(e,t){let r=false;let s;if(t&&e===undefined){s=2;console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a "+"core-js version. Currently, we assume version 2.x when no version "+"is passed. Since this default version will likely change in future "+"versions of Babel, we recommend explicitly setting the core-js version "+"you are using via the `corejs` option.\n"+"\nYou should also be sure that the version you pass to the `corejs` "+"option matches the version specified in your `package.json`'s "+"`dependencies` section. If it doesn't, you need to run one of the "+"following commands:\n\n"+" npm install --save core-js@2 npm install --save core-js@3\n"+" yarn add core-js@2 yarn add core-js@3\n\n"+"More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\n"+"More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs")}else if(typeof e==="object"&&e!==null){s=e.version;r=Boolean(e.proposals)}else{s=e}const n=s?(0,a.coerce)(String(s)):false;if(!t&&n){console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n")}if(t&&(!n||n.major<2||n.major>3)){throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, "+"only core-js@2 and core-js@3 are supported.")}return{version:n,proposals:r}}function normalizeOptions(e){p.validateTopLevelOptions(e,l.TopLevelOptions);const t=validateUseBuiltInsOption(e.useBuiltIns);const r=normalizeCoreJSOption(e.corejs,t);const s=expandIncludesAndExcludes(e.include,l.TopLevelOptions.include,!!r.version&&r.version.major);const a=expandIncludesAndExcludes(e.exclude,l.TopLevelOptions.exclude,!!r.version&&r.version.major);checkDuplicateIncludeExcludes(s,a);return{bugfixes:p.validateBooleanOption(l.TopLevelOptions.bugfixes,e.bugfixes,false),configPath:p.validateStringOption(l.TopLevelOptions.configPath,e.configPath,process.cwd()),corejs:r,debug:p.validateBooleanOption(l.TopLevelOptions.debug,e.debug,false),include:s,exclude:a,forceAllTransforms:p.validateBooleanOption(l.TopLevelOptions.forceAllTransforms,e.forceAllTransforms,false),ignoreBrowserslistConfig:p.validateBooleanOption(l.TopLevelOptions.ignoreBrowserslistConfig,e.ignoreBrowserslistConfig,false),loose:p.validateBooleanOption(l.TopLevelOptions.loose,e.loose),modules:validateModulesOption(e.modules),shippedProposals:p.validateBooleanOption(l.TopLevelOptions.shippedProposals,e.shippedProposals,false),spec:p.validateBooleanOption(l.TopLevelOptions.spec,e.spec,false),targets:normalizeTargets(e.targets),useBuiltIns:t,browserslistEnv:p.validateStringOption(l.TopLevelOptions.browserslistEnv,e.browserslistEnv)}}},4130:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.UseBuiltInsOption=t.TopLevelOptions=t.ModulesOption=void 0;const r={bugfixes:"bugfixes",configPath:"configPath",corejs:"corejs",debug:"debug",exclude:"exclude",forceAllTransforms:"forceAllTransforms",ignoreBrowserslistConfig:"ignoreBrowserslistConfig",include:"include",loose:"loose",modules:"modules",shippedProposals:"shippedProposals",spec:"spec",targets:"targets",useBuiltIns:"useBuiltIns",browserslistEnv:"browserslistEnv"};t.TopLevelOptions=r;const s={false:false,auto:"auto",amd:"amd",commonjs:"commonjs",cjs:"cjs",systemjs:"systemjs",umd:"umd"};t.ModulesOption=s;const a={false:false,entry:"entry",usage:"usage"};t.UseBuiltInsOption=a},2187:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.pluginsBugfixes=t.plugins=void 0;var s=r(6243);var a=r(8948);var n=r(1421);const o={};t.plugins=o;const i={};t.pluginsBugfixes=i;for(const e of Object.keys(s)){if(Object.hasOwnProperty.call(n.default,e)){o[e]=s[e]}}for(const e of Object.keys(a)){if(Object.hasOwnProperty.call(n.default,e)){i[e]=a[e]}}},4113:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(4462);const a=`\n \`@babel/polyfill\` is deprecated. Please, use required parts of \`core-js\`\n and \`regenerator-runtime/runtime\` separately`;const n=`\n When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed.\n Please remove the direct import of \`SPECIFIER\` or use \`useBuiltIns: 'entry'\` instead.`;function _default({template:e},{regenerator:t,deprecated:r,usage:o}){return{name:"preset-env/replace-babel-polyfill",visitor:{ImportDeclaration(i){const l=(0,s.getImportSource)(i);if(o&&(0,s.isPolyfillSource)(l)){console.warn(n.replace("SPECIFIER",l));if(!r)i.remove()}else if(l==="@babel/polyfill"){if(r){console.warn(a)}else if(t){i.replaceWithMultiple(e.ast` + `}},1146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(3242);var a=r(8304);var n=(0,s.declare)((e=>{e.assertVersion(7);const t=/[\ud800-\udfff]/g;const r=/(\\+)u\{([0-9a-fA-F]+)\}/g;function escape(e){let t=e.toString(16);while(t.length<4)t="0"+t;return"\\u"+t}function replacer(e,t,r){if(t.length%2===0){return e}const s=String.fromCodePoint(parseInt(r,16));const a=t.slice(0,-1)+escape(s.charCodeAt(0));return s.length===1?a:a+escape(s.charCodeAt(1))}function replaceUnicodeEscapes(e){return e.replace(r,replacer)}function getUnicodeEscape(e){let t;while(t=r.exec(e)){if(t[1].length%2===0)continue;r.lastIndex=0;return t[0]}return null}return{name:"transform-unicode-escapes",manipulateOptions({generatorOpts:e}){var t,r;if(!e.jsescOption){e.jsescOption={}}(r=(t=e.jsescOption).minimal)!=null?r:t.minimal=false},visitor:{Identifier(e){const{node:r,key:s}=e;const{name:n}=r;const o=n.replace(t,(e=>`_u${e.charCodeAt(0).toString(16)}`));if(n===o)return;const i=a.types.inherits(a.types.stringLiteral(n),r);if(s==="key"){e.replaceWith(i);return}const{parentPath:l,scope:c}=e;if(l.isMemberExpression({property:r})||l.isOptionalMemberExpression({property:r})){l.node.computed=true;e.replaceWith(i);return}const u=c.getBinding(n);if(u){c.rename(n,c.generateUid(o));return}throw e.buildCodeFrameError(`Can't reference '${n}' as a bare identifier`)},"StringLiteral|DirectiveLiteral"(e){const{node:t}=e;const{extra:r}=t;if(r!=null&&r.raw)r.raw=replaceUnicodeEscapes(r.raw)},TemplateElement(e){const{node:t,parentPath:r}=e;const{value:s}=t;const a=getUnicodeEscape(s.raw);if(!a)return;const n=r.parentPath;if(n.isTaggedTemplateExpression()){throw e.buildCodeFrameError(`Can't replace Unicode escape '${a}' inside tagged template literals. You can enable '@babel/plugin-transform-template-literals' to compile them to classic strings.`)}s.raw=replaceUnicodeEscapes(s.raw)}}}}));t["default"]=n},5037:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var s=r(6741);var a=r(3242);var n=(0,a.declare)((e=>{e.assertVersion(7);return(0,s.createRegExpFeaturePlugin)({name:"transform-unicode-regex",feature:"unicodeFlag"})}));t["default"]=n},9967:e=>{const t=new Set;const r=["syntax-import-assertions"];const s={"proposal-async-generator-functions":"syntax-async-generators","proposal-class-properties":"syntax-class-properties","proposal-class-static-block":"syntax-class-static-block","proposal-json-strings":"syntax-json-strings","proposal-nullish-coalescing-operator":"syntax-nullish-coalescing-operator","proposal-numeric-separator":"syntax-numeric-separator","proposal-object-rest-spread":"syntax-object-rest-spread","proposal-optional-catch-binding":"syntax-optional-catch-binding","proposal-optional-chaining":"syntax-optional-chaining","proposal-private-methods":"syntax-class-properties","proposal-private-property-in-object":"syntax-private-property-in-object","proposal-unicode-property-regex":null};const a=Object.keys(s).map((function(e){return[e,s[e]]}));const n=new Map(a);e.exports={pluginSyntaxMap:n,proposalPlugins:t,proposalSyntaxPlugins:r}},1421:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.minVersions=t["default"]=void 0;var s=r(7978);var a=r(749);var n=r(2288);var o=r(9854);var i=r(9081);var l=r(2228);var c=r(4602);var u=r(6709);var p=r(3835);var d=r(3537);var f=r(4396);var y=r(2690);var g=r(1648);var h=r(1603);var b=r(9723);var x=r(6009);var v=r(4718);var j=r(655);var E=r(2962);var w=r(2521);var _=r(113);var S=r(1740);var k=r(4742);var D=r(9448);var C=r(1963);var I=r(7601);var P=r(7082);var A=r(7806);var O=r(6722);var R=r(8226);var F=r(5333);var M=r(8137);var N=r(141);var L=r(265);var B=r(8323);var W=r(3879);var U=r(6857);var V=r(2452);var G=r(3829);var $=r(3467);var q=r(1532);var H=r(3930);var z=r(65);var K=r(627);var X=r(4711);var Y=r(4362);var J=r(7586);var Z=r(7538);var Q=r(330);var ee=r(931);var te=r(8413);var re=r(962);var se=r(5898);var ae=r(9230);var ne=r(7162);var oe=r(8290);var ie=r(8297);var le=r(5167);var ce=r(3853);var ue=r(6077);var pe=r(1146);var de=r(5037);var fe=r(5665);var ye=r(8961);var me=r(3978);var ge=r(7419);var he=r(9252);var be=r(5133);var xe=r(8430);var ve=r(1511);var je={"bugfix/transform-async-arrows-in-class":()=>fe,"bugfix/transform-edge-default-parameters":()=>ye,"bugfix/transform-edge-function-name":()=>me,"bugfix/transform-safari-block-shadowing":()=>he,"bugfix/transform-safari-for-shadowing":()=>be,"bugfix/transform-safari-id-destructuring-collision-in-function-expression":()=>xe.default,"bugfix/transform-tagged-template-caching":()=>ge,"bugfix/transform-v8-spread-parameters-in-optional-chaining":()=>ve.default,"proposal-async-generator-functions":()=>x.default,"proposal-class-properties":()=>v.default,"proposal-class-static-block":()=>j.default,"proposal-dynamic-import":()=>E.default,"proposal-export-namespace-from":()=>w.default,"proposal-json-strings":()=>_.default,"proposal-logical-assignment-operators":()=>S.default,"proposal-nullish-coalescing-operator":()=>k.default,"proposal-numeric-separator":()=>D.default,"proposal-object-rest-spread":()=>C.default,"proposal-optional-catch-binding":()=>I.default,"proposal-optional-chaining":()=>P.default,"proposal-private-methods":()=>A.default,"proposal-private-property-in-object":()=>O.default,"proposal-unicode-property-regex":()=>R.default,"syntax-async-generators":()=>s,"syntax-class-properties":()=>a,"syntax-class-static-block":()=>n,"syntax-dynamic-import":()=>o,"syntax-export-namespace-from":()=>i,"syntax-import-assertions":()=>l.default,"syntax-json-strings":()=>c,"syntax-logical-assignment-operators":()=>u,"syntax-nullish-coalescing-operator":()=>p,"syntax-numeric-separator":()=>d,"syntax-object-rest-spread":()=>f,"syntax-optional-catch-binding":()=>y,"syntax-optional-chaining":()=>g,"syntax-private-property-in-object":()=>h,"syntax-top-level-await":()=>b,"transform-arrow-functions":()=>M.default,"transform-async-to-generator":()=>F.default,"transform-block-scoped-functions":()=>N.default,"transform-block-scoping":()=>L.default,"transform-classes":()=>B.default,"transform-computed-properties":()=>W.default,"transform-destructuring":()=>U.default,"transform-dotall-regex":()=>V.default,"transform-duplicate-keys":()=>G.default,"transform-exponentiation-operator":()=>$.default,"transform-for-of":()=>q.default,"transform-function-name":()=>H.default,"transform-literals":()=>z.default,"transform-member-expression-literals":()=>K.default,"transform-modules-amd":()=>X.default,"transform-modules-commonjs":()=>Y.default,"transform-modules-systemjs":()=>J.default,"transform-modules-umd":()=>Z.default,"transform-named-capturing-groups-regex":()=>Q.default,"transform-new-target":()=>ee.default,"transform-object-super":()=>te.default,"transform-parameters":()=>re.default,"transform-property-literals":()=>se.default,"transform-regenerator":()=>ae.default,"transform-reserved-words":()=>ne.default,"transform-shorthand-properties":()=>oe.default,"transform-spread":()=>ie.default,"transform-sticky-regex":()=>le.default,"transform-template-literals":()=>ce.default,"transform-typeof-symbol":()=>ue.default,"transform-unicode-escapes":()=>pe.default,"transform-unicode-regex":()=>de.default};t["default"]=je;const Ee={"bugfix/transform-safari-id-destructuring-collision-in-function-expression":"7.16.0","proposal-class-static-block":"7.12.0","proposal-private-property-in-object":"7.10.0"};t.minVersions=Ee},3218:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.logPlugin=void 0;var s=r(3092);const logPlugin=(e,t,r)=>{const a=(0,s.getInclusionReasons)(e,t,r);const n=r[e];if(!n){console.log(` ${e}`);return}let o=`{`;let i=true;for(const e of Object.keys(a)){if(!i)o+=`,`;i=false;o+=` ${e}`;if(n[e])o+=` < ${n[e]}`}o+=` }`;console.log(` ${e} ${o}`)};t.logPlugin=logPlugin},7298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.addProposalSyntaxPlugins=addProposalSyntaxPlugins;t.removeUnnecessaryItems=removeUnnecessaryItems;t.removeUnsupportedItems=removeUnsupportedItems;var s=r(7849);var a=r(1421);const n=Function.call.bind(Object.hasOwnProperty);function addProposalSyntaxPlugins(e,t){t.forEach((t=>{e.add(t)}))}function removeUnnecessaryItems(e,t){e.forEach((r=>{var s;(s=t[r])==null?void 0:s.forEach((t=>e.delete(t)))}))}function removeUnsupportedItems(e,t){e.forEach((r=>{if(n(a.minVersions,r)&&(0,s.lt)(t,a.minVersions[r])){e.delete(r)}}))}},7102:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;const r=["transform-typeof-symbol"];function _default({loose:e}){return e?r:null}},6791:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getPolyfillPlugins=t.getModulesPluginNames=t["default"]=void 0;t.isPluginRequired=isPluginRequired;t.transformIncludesAndExcludes=void 0;var s=r(7849);var a=r(3218);var n=r(7102);var o=r(7298);var i=r(9392);var l=r(9626);var c=r(9967);var u=r(2187);var p=r(6474);var d=r(3952);var f=r(4113);var y=r(8943);var g=r(3096);var h=r(9504);var b=r(3092);var x=r(1421);var v=r(3242);const j=y.default||y;const E=g.default||g;const w=h.default||h;function isPluginRequired(e,t){return(0,b.isRequired)("fake-name",e,{compatData:{"fake-name":t}})}function filterStageFromList(e,t){return Object.keys(e).reduce(((r,s)=>{if(!t.has(s)){r[s]=e[s]}return r}),{})}const _={withProposals:{withoutBugfixes:u.plugins,withBugfixes:Object.assign({},u.plugins,u.pluginsBugfixes)},withoutProposals:{withoutBugfixes:filterStageFromList(u.plugins,c.proposalPlugins),withBugfixes:filterStageFromList(Object.assign({},u.plugins,u.pluginsBugfixes),c.proposalPlugins)}};function getPluginList(e,t){if(e){if(t)return _.withProposals.withBugfixes;else return _.withProposals.withoutBugfixes}else{if(t)return _.withoutProposals.withBugfixes;else return _.withoutProposals.withoutBugfixes}}const getPlugin=e=>{const t=x.default[e]();if(!t){throw new Error(`Could not find plugin "${e}". Ensure there is an entry in ./available-plugins.js for it.`)}return t};const transformIncludesAndExcludes=e=>e.reduce(((e,t)=>{const r=t.match(/^(es|es6|es7|esnext|web)\./)?"builtIns":"plugins";e[r].add(t);return e}),{all:e,plugins:new Set,builtIns:new Set});t.transformIncludesAndExcludes=transformIncludesAndExcludes;const getModulesPluginNames=({modules:e,transformations:t,shouldTransformESM:r,shouldTransformDynamicImport:s,shouldTransformExportNamespaceFrom:a,shouldParseTopLevelAwait:n})=>{const o=[];if(e!==false&&t[e]){if(r){o.push(t[e])}if(s&&r&&e!=="umd"){o.push("proposal-dynamic-import")}else{if(s){console.warn("Dynamic import can only be supported when transforming ES modules"+" to AMD, CommonJS or SystemJS. Only the parser plugin will be enabled.")}o.push("syntax-dynamic-import")}}else{o.push("syntax-dynamic-import")}if(a){o.push("proposal-export-namespace-from")}else{o.push("syntax-export-namespace-from")}if(n){o.push("syntax-top-level-await")}return o};t.getModulesPluginNames=getModulesPluginNames;const getPolyfillPlugins=({useBuiltIns:e,corejs:t,polyfillTargets:r,include:s,exclude:a,proposals:n,shippedProposals:o,regenerator:i,debug:l})=>{const c=[];if(e==="usage"||e==="entry"){const u={method:`${e}-global`,version:t?t.toString():undefined,targets:r,include:s,exclude:a,proposals:n,shippedProposals:o,debug:l};if(t){if(e==="usage"){if(t.major===2){c.push([j,u],[f.default,{usage:true}])}else{c.push([E,u],[f.default,{usage:true,deprecated:true}])}if(i){c.push([w,{method:"usage-global",debug:l}])}}else{if(t.major===2){c.push([f.default,{regenerator:i}],[j,u])}else{c.push([E,u],[f.default,{deprecated:true}]);if(!i){c.push([d.default,u])}}}}}return c};t.getPolyfillPlugins=getPolyfillPlugins;function getLocalTargets(e,t,r,s){if(e!=null&&e.esmodules&&e.browsers){console.warn(`\n@babel/preset-env: esmodules and browsers targets have been specified together.\n\`browsers\` target, \`${e.browsers.toString()}\` will be ignored.\n`)}return(0,b.default)(e,{ignoreBrowserslistConfig:t,configPath:r,browserslistEnv:s})}function supportsStaticESM(e){return!!(e!=null&&e.supportsStaticESM)}function supportsDynamicImport(e){return!!(e!=null&&e.supportsDynamicImport)}function supportsExportNamespaceFrom(e){return!!(e!=null&&e.supportsExportNamespaceFrom)}function supportsTopLevelAwait(e){return!!(e!=null&&e.supportsTopLevelAwait)}var S=(0,v.declarePreset)(((e,t)=>{e.assertVersion(7);const r=e.targets();const{bugfixes:u,configPath:d,debug:f,exclude:y,forceAllTransforms:g,ignoreBrowserslistConfig:h,include:x,loose:v,modules:j,shippedProposals:E,spec:w,targets:_,useBuiltIns:S,corejs:{version:k,proposals:D},browserslistEnv:C}=(0,l.default)(t);let I=r;if((0,s.lt)(e.version,"7.13.0")||t.targets||t.configPath||t.browserslistEnv||t.ignoreBrowserslistConfig){{var P=false;if(_!=null&&_.uglify){P=true;delete _.uglify;console.warn(`\nThe uglify target has been deprecated. Set the top level\noption \`forceAllTransforms: true\` instead.\n`)}}I=getLocalTargets(_,h,d,C)}const A=g||P?{}:I;const O=transformIncludesAndExcludes(x);const R=transformIncludesAndExcludes(y);const F=getPluginList(E,u);const M=j==="auto"&&(e.caller==null?void 0:e.caller(supportsExportNamespaceFrom))||j===false&&!(0,b.isRequired)("proposal-export-namespace-from",A,{compatData:F,includes:O.plugins,excludes:R.plugins});const N=getModulesPluginNames({modules:j,transformations:i.default,shouldTransformESM:j!=="auto"||!(e.caller!=null&&e.caller(supportsStaticESM)),shouldTransformDynamicImport:j!=="auto"||!(e.caller!=null&&e.caller(supportsDynamicImport)),shouldTransformExportNamespaceFrom:!M,shouldParseTopLevelAwait:!e.caller||e.caller(supportsTopLevelAwait)});const L=(0,b.filterItems)(F,O.plugins,R.plugins,A,N,(0,n.default)({loose:v}),c.pluginSyntaxMap);(0,o.removeUnnecessaryItems)(L,p);(0,o.removeUnsupportedItems)(L,e.version);if(E){(0,o.addProposalSyntaxPlugins)(L,c.proposalSyntaxPlugins)}const B=getPolyfillPlugins({useBuiltIns:S,corejs:k,polyfillTargets:I,include:O.builtIns,exclude:R.builtIns,proposals:D,shippedProposals:E,regenerator:L.has("transform-regenerator"),debug:f});const W=S!==false;const U=Array.from(L).map((e=>{if(e==="proposal-class-properties"||e==="proposal-private-methods"||e==="proposal-private-property-in-object"){return[getPlugin(e),{loose:v?"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error":"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"}]}return[getPlugin(e),{spec:w,loose:v,useBuiltIns:W}]})).concat(B);if(f){console.log("@babel/preset-env: `DEBUG` option");console.log("\nUsing targets:");console.log(JSON.stringify((0,b.prettifyTargets)(I),null,2));console.log(`\nUsing modules transform: ${j.toString()}`);console.log("\nUsing plugins:");L.forEach((e=>{(0,a.logPlugin)(e,I,F)}));if(!S){console.log("\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.")}}return{plugins:U}}));t["default"]=S},9392:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r={auto:"transform-modules-commonjs",amd:"transform-modules-amd",commonjs:"transform-modules-commonjs",cjs:"transform-modules-commonjs",systemjs:"transform-modules-systemjs",umd:"transform-modules-umd"};t["default"]=r},9626:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkDuplicateIncludeExcludes=void 0;t["default"]=normalizeOptions;t.normalizeCoreJSOption=normalizeCoreJSOption;t.validateUseBuiltInsOption=t.validateModulesOption=t.normalizePluginName=void 0;var s=r(4073);var a=r(7849);var n=r(6686);var o=r(2187);var i=r(9392);var l=r(4130);var c=r(3317);const u=["web.timers","web.immediate","web.dom.iterable"];const p=new c.OptionValidator("@babel/preset-env");const d=Object.keys(o.plugins);const f=["proposal-dynamic-import",...Object.keys(i.default).map((e=>i.default[e]))];const getValidIncludesAndExcludes=(e,t)=>new Set([...d,...e==="exclude"?f:[],...t?t==2?[...Object.keys(n),...u]:Object.keys(s):[]]);const pluginToRegExp=e=>{if(e instanceof RegExp)return e;try{return new RegExp(`^${normalizePluginName(e)}$`)}catch(e){return null}};const selectPlugins=(e,t,r)=>Array.from(getValidIncludesAndExcludes(t,r)).filter((t=>e instanceof RegExp&&e.test(t)));const flatten=e=>[].concat(...e);const expandIncludesAndExcludes=(e=[],t,r)=>{if(e.length===0)return[];const s=e.map((e=>selectPlugins(pluginToRegExp(e),t,r)));const a=e.filter(((e,t)=>s[t].length===0));p.invariant(a.length===0,`The plugins/built-ins '${a.join(", ")}' passed to the '${t}' option are not\n valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`);return flatten(s)};const normalizePluginName=e=>e.replace(/^(@babel\/|babel-)(plugin-)?/,"");t.normalizePluginName=normalizePluginName;const checkDuplicateIncludeExcludes=(e=[],t=[])=>{const r=e.filter((e=>t.indexOf(e)>=0));p.invariant(r.length===0,`The plugins/built-ins '${r.join(", ")}' were found in both the "include" and\n "exclude" options.`)};t.checkDuplicateIncludeExcludes=checkDuplicateIncludeExcludes;const normalizeTargets=e=>{if(typeof e==="string"||Array.isArray(e)){return{browsers:e}}return Object.assign({},e)};const validateModulesOption=(e=l.ModulesOption.auto)=>{p.invariant(l.ModulesOption[e.toString()]||e===l.ModulesOption.false,`The 'modules' option must be one of \n`+` - 'false' to indicate no module processing\n`+` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'`+` - 'auto' (default) which will automatically select 'false' if the current\n`+` process is known to support ES module syntax, or "commonjs" otherwise\n`);return e};t.validateModulesOption=validateModulesOption;const validateUseBuiltInsOption=(e=false)=>{p.invariant(l.UseBuiltInsOption[e.toString()]||e===l.UseBuiltInsOption.false,`The 'useBuiltIns' option must be either\n 'false' (default) to indicate no polyfill,\n '"entry"' to indicate replacing the entry polyfill, or\n '"usage"' to import only used polyfills per file`);return e};t.validateUseBuiltInsOption=validateUseBuiltInsOption;function normalizeCoreJSOption(e,t){let r=false;let s;if(t&&e===undefined){s=2;console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a "+"core-js version. Currently, we assume version 2.x when no version "+"is passed. Since this default version will likely change in future "+"versions of Babel, we recommend explicitly setting the core-js version "+"you are using via the `corejs` option.\n"+"\nYou should also be sure that the version you pass to the `corejs` "+"option matches the version specified in your `package.json`'s "+"`dependencies` section. If it doesn't, you need to run one of the "+"following commands:\n\n"+" npm install --save core-js@2 npm install --save core-js@3\n"+" yarn add core-js@2 yarn add core-js@3\n\n"+"More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\n"+"More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs")}else if(typeof e==="object"&&e!==null){s=e.version;r=Boolean(e.proposals)}else{s=e}const n=s?(0,a.coerce)(String(s)):false;if(!t&&n){console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n")}if(t&&(!n||n.major<2||n.major>3)){throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, "+"only core-js@2 and core-js@3 are supported.")}return{version:n,proposals:r}}function normalizeOptions(e){p.validateTopLevelOptions(e,l.TopLevelOptions);const t=validateUseBuiltInsOption(e.useBuiltIns);const r=normalizeCoreJSOption(e.corejs,t);const s=expandIncludesAndExcludes(e.include,l.TopLevelOptions.include,!!r.version&&r.version.major);const a=expandIncludesAndExcludes(e.exclude,l.TopLevelOptions.exclude,!!r.version&&r.version.major);checkDuplicateIncludeExcludes(s,a);return{bugfixes:p.validateBooleanOption(l.TopLevelOptions.bugfixes,e.bugfixes,false),configPath:p.validateStringOption(l.TopLevelOptions.configPath,e.configPath,process.cwd()),corejs:r,debug:p.validateBooleanOption(l.TopLevelOptions.debug,e.debug,false),include:s,exclude:a,forceAllTransforms:p.validateBooleanOption(l.TopLevelOptions.forceAllTransforms,e.forceAllTransforms,false),ignoreBrowserslistConfig:p.validateBooleanOption(l.TopLevelOptions.ignoreBrowserslistConfig,e.ignoreBrowserslistConfig,false),loose:p.validateBooleanOption(l.TopLevelOptions.loose,e.loose),modules:validateModulesOption(e.modules),shippedProposals:p.validateBooleanOption(l.TopLevelOptions.shippedProposals,e.shippedProposals,false),spec:p.validateBooleanOption(l.TopLevelOptions.spec,e.spec,false),targets:normalizeTargets(e.targets),useBuiltIns:t,browserslistEnv:p.validateStringOption(l.TopLevelOptions.browserslistEnv,e.browserslistEnv)}}},4130:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.UseBuiltInsOption=t.TopLevelOptions=t.ModulesOption=void 0;const r={bugfixes:"bugfixes",configPath:"configPath",corejs:"corejs",debug:"debug",exclude:"exclude",forceAllTransforms:"forceAllTransforms",ignoreBrowserslistConfig:"ignoreBrowserslistConfig",include:"include",loose:"loose",modules:"modules",shippedProposals:"shippedProposals",spec:"spec",targets:"targets",useBuiltIns:"useBuiltIns",browserslistEnv:"browserslistEnv"};t.TopLevelOptions=r;const s={false:false,auto:"auto",amd:"amd",commonjs:"commonjs",cjs:"cjs",systemjs:"systemjs",umd:"umd"};t.ModulesOption=s;const a={false:false,entry:"entry",usage:"usage"};t.UseBuiltInsOption=a},2187:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.pluginsBugfixes=t.plugins=void 0;var s=r(6243);var a=r(8948);var n=r(1421);const o={};t.plugins=o;const i={};t.pluginsBugfixes=i;for(const e of Object.keys(s)){if(Object.hasOwnProperty.call(n.default,e)){o[e]=s[e]}}for(const e of Object.keys(a)){if(Object.hasOwnProperty.call(n.default,e)){i[e]=a[e]}}},4113:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;var s=r(4462);const a=`\n \`@babel/polyfill\` is deprecated. Please, use required parts of \`core-js\`\n and \`regenerator-runtime/runtime\` separately`;const n=`\n When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed.\n Please remove the direct import of \`SPECIFIER\` or use \`useBuiltIns: 'entry'\` instead.`;function _default({template:e},{regenerator:t,deprecated:r,usage:o}){return{name:"preset-env/replace-babel-polyfill",visitor:{ImportDeclaration(i){const l=(0,s.getImportSource)(i);if(o&&(0,s.isPolyfillSource)(l)){console.warn(n.replace("SPECIFIER",l));if(!r)i.remove()}else if(l==="@babel/polyfill"){if(r){console.warn(a)}else if(t){i.replaceWithMultiple(e.ast` import "core-js"; import "regenerator-runtime/runtime.js"; `)}else{i.replaceWith(e.ast` @@ -256,4 +256,4 @@ * regjsgen 0.5.2 * Copyright 2014-2020 Benjamin Tan * Available under the MIT license - */(function(){"use strict";var r={function:true,object:true};var s=r[typeof window]&&window||this;var a=r[typeof t]&&t&&!t.nodeType&&t;var n=r["object"]&&e&&!e.nodeType;var o=a&&n&&typeof global=="object"&&global;if(o&&(o.global===o||o.window===o||o.self===o)){s=o}var i=Object.prototype.hasOwnProperty;function fromCodePoint(){var e=Number(arguments[0]);if(!isFinite(e)||e<0||e>1114111||Math.floor(e)!=e){throw RangeError("Invalid code point: "+e)}if(e<=65535){return String.fromCharCode(e)}else{e-=65536;var t=(e>>10)+55296;var r=e%1024+56320;return String.fromCharCode(t,r)}}var l={};function assertType(e,t){if(t.indexOf("|")==-1){if(e==t){return}throw Error("Invalid node type: "+e+"; expected type: "+t)}t=i.call(l,t)?l[t]:l[t]=RegExp("^(?:"+t+")$");if(t.test(e)){return}throw Error("Invalid node type: "+e+"; expected types: "+t)}function generate(e){var t=e.type;if(i.call(c,t)){return c[t](e)}throw Error("Invalid node type: "+t)}function generateSequence(e,t,r){var s=-1,a=t.length,n="",o;while(++s0)n+=r;if(s+1=48&&t[s+1].codePoint<=57){n+="\\000";continue}n+=e(o)}return n}function generateAlternative(e){assertType(e.type,"alternative");return generateSequence(generateTerm,e.body)}function generateAnchor(e){assertType(e.type,"anchor");switch(e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}}function generateAtom(e){assertType(e.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value");return generate(e)}function generateCharacterClass(e){assertType(e.type,"characterClass");var t=e.kind;var r=t==="intersection"?"&&":t==="subtraction"?"--":"";return"["+(e.negative?"^":"")+generateSequence(generateClassAtom,e.body,r)+"]"}function generateCharacterClassEscape(e){assertType(e.type,"characterClassEscape");return"\\"+e.value}function generateCharacterClassRange(e){assertType(e.type,"characterClassRange");var t=e.min,r=e.max;if(t.type=="characterClassRange"||r.type=="characterClassRange"){throw Error("Invalid character class range")}return generateClassAtom(t)+"-"+generateClassAtom(r)}function generateClassAtom(e){assertType(e.type,"anchor|characterClass|characterClassEscape|characterClassRange|dot|value|unicodePropertyEscape|classStrings");return generate(e)}function generateClassStrings(e){assertType(e.type,"classStrings");return"("+generateSequence(generateClassString,e.strings,"|")+")"}function generateClassString(e){assertType(e.type,"classString");return generateSequence(generate,e.characters)}function generateDisjunction(e){assertType(e.type,"disjunction");return generateSequence(generate,e.body,"|")}function generateDot(e){assertType(e.type,"dot");return"."}function generateGroup(e){assertType(e.type,"group");var t="";switch(e.behavior){case"normal":if(e.name){t+="?<"+generateIdentifier(e.name)+">"}break;case"ignore":t+="?:";break;case"lookahead":t+="?=";break;case"negativeLookahead":t+="?!";break;case"lookbehind":t+="?<=";break;case"negativeLookbehind":t+="?"}throw new Error("Unknown reference type")}function generateTerm(e){assertType(e.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|unicodePropertyEscape|value|dot");return generate(e)}function generateUnicodePropertyEscape(e){assertType(e.type,"unicodePropertyEscape");return"\\"+(e.negative?"P":"p")+"{"+e.value+"}"}function generateValue(e){assertType(e.type,"value");var t=e.kind,r=e.codePoint;if(typeof r!="number"){throw new Error("Invalid code point: "+r)}switch(t){case"controlLetter":return"\\c"+fromCodePoint(r+64);case"hexadecimalEscape":return"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+fromCodePoint(r);case"null":return"\\"+r;case"octal":return"\\"+("000"+r.toString(8)).slice(-3);case"singleEscape":switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";case 45:return"\\-";default:throw Error("Invalid code point: "+r)}case"symbol":return fromCodePoint(r);case"unicodeEscape":return"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+r.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+t)}}var c={alternative:generateAlternative,anchor:generateAnchor,characterClass:generateCharacterClass,characterClassEscape:generateCharacterClassEscape,characterClassRange:generateCharacterClassRange,classStrings:generateClassStrings,disjunction:generateDisjunction,dot:generateDot,group:generateGroup,quantifier:generateQuantifier,reference:generateReference,unicodePropertyEscape:generateUnicodePropertyEscape,value:generateValue};var u={generate:generate};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){define((function(){return u}));s.regjsgen=u}else if(a&&n){a.generate=generate}else{s.regjsgen=u}}).call(this)},7165:e=>{"use strict";(function(){var t=String.fromCodePoint||function(){var e=String.fromCharCode;var t=Math.floor;return function fromCodePoint(){var r=16384;var s=[];var a;var n;var o=-1;var i=arguments.length;if(!i){return""}var l="";while(++o1114111||t(c)!=c){throw RangeError("Invalid code point: "+c)}if(c<=65535){s.push(c)}else{c-=65536;a=(c>>10)+55296;n=c%1024+56320;s.push(a,n)}if(o+1==i||s.length>r){l+=e.apply(null,s);s.length=0}}return l}}();function parse(e,r,s){if(!s){s={}}function addRaw(t){t.raw=e.substring(t.range[0],t.range[1]);return t}function updateRawStart(e,t){e.range[0]=t;return addRaw(e)}function createAnchor(e,t){return addRaw({type:"anchor",kind:e,range:[p-t,p]})}function createValue(e,t,r,s){return addRaw({type:"value",kind:e,codePoint:t,range:[r,s]})}function createEscaped(e,t,r,s){s=s||0;return createValue(e,t,p-(r.length+s),p)}function createCharacter(e){var t=e[0];var r=t.charCodeAt(0);if(u){var s;if(t.length===1&&r>=55296&&r<=56319){s=lookahead().charCodeAt(0);if(s>=56320&&s<=57343){p++;return createValue("symbol",(r-55296)*1024+s-56320+65536,p-2,p)}}}return createValue("symbol",r,p-1,p)}function createDisjunction(e,t,r){return addRaw({type:"disjunction",body:e,range:[t,r]})}function createDot(){return addRaw({type:"dot",range:[p-1,p]})}function createCharacterClassEscape(e){return addRaw({type:"characterClassEscape",value:e,range:[p-2,p]})}function createReference(e){return addRaw({type:"reference",matchIndex:parseInt(e,10),range:[p-1-e.length,p]})}function createNamedReference(e){return addRaw({type:"reference",name:e,range:[e.range[0]-3,p]})}function createGroup(e,t,r,s){return addRaw({type:"group",behavior:e,body:t,range:[r,s]})}function createQuantifier(e,t,r,s,a){if(s==null){r=p-1;s=p}return addRaw({type:"quantifier",min:e,max:t,greedy:true,body:null,symbol:a,range:[r,s]})}function createAlternative(e,t,r){return addRaw({type:"alternative",body:e,range:[t,r]})}function createCharacterClass(e,t,r,s){return addRaw({type:"characterClass",kind:e.kind,body:e.body,negative:t,range:[r,s]})}function createClassRange(e,t,r,s){if(e.codePoint>t.codePoint){bail("invalid range in character class",e.raw+"-"+t.raw,r,s)}return addRaw({type:"characterClassRange",min:e,max:t,range:[r,s]})}function createClassStrings(e,t,r){return addRaw({type:"classStrings",strings:e,range:[t,r]})}function createClassString(e,t,r){return addRaw({type:"classString",characters:e,range:[t,r]})}function flattenBody(e){if(e.type==="alternative"){return e.body}else{return[e]}}function incr(t){t=t||1;var r=e.substring(p,p+t);p+=t||1;return r}function skip(e){if(!match(e)){bail("character",e)}}function match(t){if(e.indexOf(t,p)===p){return incr(t.length)}}function lookahead(){return e[p]}function current(t){return e.indexOf(t,p)===p}function next(t){return e[p+1]===t}function matchReg(t){var r=e.substring(p);var s=r.match(t);if(s){s.range=[];s.range[0]=p;incr(s[0].length);s.range[1]=p}return s}function parseDisjunction(){var e=[],t=p;e.push(parseAlternative());while(match("|")){e.push(parseAlternative())}if(e.length===1){return e[0]}return createDisjunction(e,t,p)}function parseAlternative(){var e=[],t=p;var r;while(r=parseTerm()){e.push(r)}if(e.length===1){return e[0]}return createAlternative(e,t,p)}function parseTerm(){if(p>=e.length||current("|")||current(")")){return null}var t=parseAnchor();if(t){return t}var r=parseAtomAndExtendedAtom();var s;if(!r){var a=p;s=parseQuantifier()||false;if(s){p=a;bail("Expected atom")}var n;if(!u&&(n=matchReg(/^{/))){r=createCharacter(n)}else{bail("Expected atom")}}s=parseQuantifier()||false;if(s){s.body=flattenBody(r);updateRawStart(s,r.range[0]);return s}return r}function parseGroup(e,t,r,s){var a=null,n=p;if(match(e)){a=t}else if(match(r)){a=s}else{return false}return finishGroup(a,n)}function finishGroup(e,t){var r=parseDisjunction();if(!r){bail("Expected disjunction")}skip(")");var s=createGroup(e,flattenBody(r),t,p);if(e=="normal"){if(o){n++}}return s}function parseAnchor(){if(match("^")){return createAnchor("start",1)}else if(match("$")){return createAnchor("end",1)}else if(match("\\b")){return createAnchor("boundary",2)}else if(match("\\B")){return createAnchor("not-boundary",2)}else{return parseGroup("(?=","lookahead","(?!","negativeLookahead")}}function parseQuantifier(){var e,t=p;var r;var s,a;if(match("*")){r=createQuantifier(0,undefined,undefined,undefined,"*")}else if(match("+")){r=createQuantifier(1,undefined,undefined,undefined,"+")}else if(match("?")){r=createQuantifier(0,1,undefined,undefined,"?")}else if(e=matchReg(/^\{([0-9]+)\}/)){s=parseInt(e[1],10);r=createQuantifier(s,s,e.range[0],e.range[1])}else if(e=matchReg(/^\{([0-9]+),\}/)){s=parseInt(e[1],10);r=createQuantifier(s,undefined,e.range[0],e.range[1])}else if(e=matchReg(/^\{([0-9]+),([0-9]+)\}/)){s=parseInt(e[1],10);a=parseInt(e[2],10);if(s>a){bail("numbers out of order in {} quantifier","",t,p)}r=createQuantifier(s,a,e.range[0],e.range[1])}if(s&&!Number.isSafeInteger(s)||a&&!Number.isSafeInteger(a)){bail("iterations outside JS safe integer range in quantifier","",t,p)}if(r){if(match("?")){r.greedy=false;r.range[1]+=1}}return r}function parseAtomAndExtendedAtom(){var e;if(e=matchReg(/^[^^$\\.*+?()[\]{}|]/)){return createCharacter(e)}else if(!u&&(e=matchReg(/^(?:]|})/))){return createCharacter(e)}else if(match(".")){return createDot()}else if(match("\\")){e=parseAtomEscape();if(!e){if(!u&&lookahead()=="c"){return createValue("symbol",92,p-1,p)}bail("atomEscape")}return e}else if(e=parseCharacterClass()){return e}else if(s.lookbehind&&(e=parseGroup("(?<=","lookbehind","(?");var r=finishGroup("normal",t.range[0]-3);r.name=t;return r}else{return parseGroup("(?:","ignore","(","normal")}}function parseUnicodeSurrogatePairEscape(e){if(u){var t,r;if(e.kind=="unicodeEscape"&&(t=e.codePoint)>=55296&&t<=56319&¤t("\\")&&next("u")){var s=p;p++;var a=parseClassEscape();if(a.kind=="unicodeEscape"&&(r=a.codePoint)>=56320&&r<=57343){e.range[1]=a.range[1];e.codePoint=(t-55296)*1024+r-56320+65536;e.type="value";e.kind="unicodeCodePointEscape";addRaw(e)}else{p=s}}}return e}function parseClassEscape(){return parseAtomEscape(true)}function parseAtomEscape(e){var t,r=p;t=parseDecimalEscape(e)||parseNamedReference();if(t){return t}if(e){if(match("b")){return createEscaped("singleEscape",8,"\\b")}else if(match("B")){bail("\\B not possible inside of CharacterClass","",r)}else if(!u&&(t=matchReg(/^c([0-9])/))){return createEscaped("controlLetter",t[1]+16,t[1],2)}else if(!u&&(t=matchReg(/^c_/))){return createEscaped("controlLetter",31,"_",2)}if(u&&match("-")){return createEscaped("singleEscape",45,"\\-")}}t=parseCharacterClassEscape()||parseCharacterEscape();return t}function parseDecimalEscape(e){var t,r,s=p;if(t=matchReg(/^(?!0)\d+/)){r=t[0];var l=parseInt(t[0],10);if(l<=n&&!e){return createReference(t[0])}else{a.push(l);if(o){i=true}else{bailOctalEscapeIfUnicode(s,p)}incr(-t[0].length);if(t=matchReg(/^[0-7]{1,3}/)){return createEscaped("octal",parseInt(t[0],8),t[0],1)}else{t=createCharacter(matchReg(/^[89]/));return updateRawStart(t,t.range[0]-1)}}}else if(t=matchReg(/^[0-7]{1,3}/)){r=t[0];if(r!=="0"){bailOctalEscapeIfUnicode(s,p)}if(/^0{1,3}$/.test(r)){return createEscaped("null",0,"0",r.length)}else{return createEscaped("octal",parseInt(r,8),r,1)}}return false}function bailOctalEscapeIfUnicode(e,t){if(u){bail("Invalid decimal escape in unicode mode",null,e,t)}}function parseCharacterClassEscape(){var e;if(e=matchReg(/^[dDsSwW]/)){return createCharacterClassEscape(e[0])}else if(s.unicodePropertyEscape&&u&&(e=matchReg(/^([pP])\{([^\}]+)\}/))){return addRaw({type:"unicodePropertyEscape",negative:e[1]==="P",value:e[2],range:[e.range[0]-1,e.range[1]],raw:e[0]})}else if(s.unicodeSet&&c&&match("q{")){return parseClassStrings()}return false}function parseNamedReference(){if(s.namedGroups&&matchReg(/^k<(?=.*?>)/)){var e=parseIdentifier();skip(">");return createNamedReference(e)}}function parseRegExpUnicodeEscapeSequence(){var e;if(e=matchReg(/^u([0-9a-fA-F]{4})/)){return parseUnicodeSurrogatePairEscape(createEscaped("unicodeEscape",parseInt(e[1],16),e[1],2))}else if(u&&(e=matchReg(/^u\{([0-9a-fA-F]+)\}/))){return createEscaped("unicodeCodePointEscape",parseInt(e[1],16),e[1],4)}}function parseCharacterEscape(){var e;var t=p;if(e=matchReg(/^[fnrtv]/)){var r=0;switch(e[0]){case"t":r=9;break;case"n":r=10;break;case"v":r=11;break;case"f":r=12;break;case"r":r=13;break}return createEscaped("singleEscape",r,"\\"+e[0])}else if(e=matchReg(/^c([a-zA-Z])/)){return createEscaped("controlLetter",e[1].charCodeAt(0)%32,e[1],2)}else if(e=matchReg(/^x([0-9a-fA-F]{2})/)){return createEscaped("hexadecimalEscape",parseInt(e[1],16),e[1],2)}else if(e=parseRegExpUnicodeEscapeSequence()){if(!e||e.codePoint>1114111){bail("Invalid escape sequence",null,t,p)}return e}else{return parseIdentityEscape()}}function parseIdentifierAtom(r){var s=lookahead();var a=p;if(s==="\\"){incr();var n=parseRegExpUnicodeEscapeSequence();if(!n||!r(n.codePoint)){bail("Invalid escape sequence",null,a,p)}return t(n.codePoint)}var o=s.charCodeAt(0);if(o>=55296&&o<=56319){s+=e[p+1];var i=s.charCodeAt(1);if(i>=56320&&i<=57343){o=(o-55296)*1024+i-56320+65536}}if(!r(o))return;incr();if(o>65535)incr();return s}function parseIdentifier(){var e=p;var t=parseIdentifierAtom(isIdentifierStart);if(!t){bail("Invalid identifier")}var r;while(r=parseIdentifierAtom(isIdentifierPart)){t+=r}return addRaw({type:"identifier",value:t,range:[e,p]})}function isIdentifierStart(e){var r=/[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=128&&r.test(t(e))}function isIdentifierPart(e){var r=/[0-9_\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC6F\uDC7F-\uDC82\uDCB0-\uDCBA\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDD0-\uDDD9\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6]|\uD81A[\uDE60-\uDE69\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uDB40[\uDD00-\uDDEF]/;return isIdentifierStart(e)||e>=48&&e<=57||e>=128&&r.test(t(e))}function parseIdentityEscape(){var e;var t=lookahead();if(u&&/[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/.test(t)||!u&&t!=="c"){if(t==="k"&&s.lookbehind){return null}e=incr();return createEscaped("identifier",e.charCodeAt(0),e,1)}return null}function parseCharacterClass(){var e,t=p;if(e=matchReg(/^\[\^/)){e=parseClassRanges();skip("]");return createCharacterClass(e,true,t,p)}else if(match("[")){e=parseClassRanges();skip("]");return createCharacterClass(e,false,t,p)}return null}function parseClassRanges(){var e;if(current("]")){return{kind:"union",body:[]}}else if(c){return parseClassContents()}else{e=parseNonemptyClassRanges();if(!e){bail("nonEmptyClassRanges")}return{kind:"union",body:e}}}function parseHelperClassRanges(e){var t,r,s,a,n;if(current("-")&&!next("]")){t=e.range[0];n=createCharacter(match("-"));a=parseClassAtom();if(!a){bail("classAtom")}r=p;var o=parseClassRanges();if(!o){bail("classRanges")}if(!("codePoint"in e)||!("codePoint"in a)){if(!u){s=[e,n,a]}else{bail("invalid character class")}}else{s=[createClassRange(e,a,t,r)]}if(o.type==="empty"){return s}return s.concat(o.body)}s=parseNonemptyClassRangesNoDash();if(!s){bail("nonEmptyClassRangesNoDash")}return[e].concat(s)}function parseNonemptyClassRanges(){var e=parseClassAtom();if(!e){bail("classAtom")}if(current("]")){return[e]}return parseHelperClassRanges(e)}function parseNonemptyClassRangesNoDash(){var e=parseClassAtom();if(!e){bail("classAtom")}if(current("]")){return e}return parseHelperClassRanges(e)}function parseClassAtom(){if(match("-")){return createCharacter("-")}else{return parseClassAtomNoDash()}}function parseClassAtomNoDash(){var e;if(e=matchReg(/^[^\\\]-]/)){return createCharacter(e[0])}else if(match("\\")){e=parseClassEscape();if(!e){bail("classEscape")}return parseUnicodeSurrogatePairEscape(e)}}function parseClassContents(){var e=[];var t;var r=parseClassOperand(true);e.push(r);if(r.type==="classRange"){t="union"}else if(current("&")){t="intersection"}else if(current("-")){t="subtraction"}else{t="union"}while(!current("]")){if(t==="intersection"){skip("&");skip("&");if(current("&")){bail("&& cannot be followed by &. Wrap it in brackets: &&[&].")}}else if(t==="subtraction"){skip("-");skip("-")}r=parseClassOperand(t==="union");e.push(r)}return{kind:t,body:e}}function parseClassOperand(e){var t=p;var r,s;if(match("\\")){if(s=parseClassEscape()){r=s}else if(s=parseClassCharacterEscapedHelper()){return s}else{bail("Invalid escape","\\"+lookahead(),t)}}else if(s=parseClassCharacterUnescapedHelper()){r=s}else if(s=parseCharacterClass()){return s}else{bail("Invalid character",lookahead())}if(e&¤t("-")&&!next("-")){skip("-");if(s=parseClassCharacter()){return createClassRange(r,s,t,p)}bail("Invalid range end",lookahead())}return r}function parseClassCharacter(){if(match("\\")){var e,t=p;if(e=parseClassCharacterEscapedHelper()){return e}else{bail("Invalid escape","\\"+lookahead(),t)}}return parseClassCharacterUnescapedHelper()}function parseClassCharacterUnescapedHelper(){var e;if(e=matchReg(/^[^()[\]{}/\-\\|]/)){return createCharacter(e)}}function parseClassCharacterEscapedHelper(){var e;if(match("b")){return createEscaped("singleEscape",8,"\\b")}else if(match("B")){bail("\\B not possible inside of ClassContents","",p-2)}else if(e=matchReg(/^[&\-!#%,:;<=>@_`~]/)){return createEscaped("identifier",e[0].codePointAt(0),e[0])}else if(e=parseCharacterEscape()){return e}else{return null}}function parseClassStrings(){var e=p-3;var t=[];do{t.push(parseClassString())}while(match("|"));skip("}");return createClassStrings(t,e,p)}function parseClassString(){var e=[],t=p;var r;while(r=parseClassCharacter()){e.push(r)}return createClassString(e,t,p)}function bail(t,r,s,a){s=s==null?p:s;a=a==null?s:a;var n=Math.max(0,s-10);var o=Math.min(a+10,e.length);var i=" "+e.substring(n,o);var l=" "+new Array(s-n+1).join(" ")+"^";throw SyntaxError(t+" at position "+s+(r?": "+r:"")+"\n"+i+"\n"+l)}var a=[];var n=0;var o=true;var i=false;var l=(r||"").indexOf("u")!==-1;var c=(r||"").indexOf("v")!==-1;var u=l||c;var p=0;if(c&&!s.unicodeSet){throw new Error('The "v" flag is only supported when the .unicodeSet option is enabled.')}if(l&&c){throw new Error('The "u" and "v" flags are mutually exclusive.')}e=String(e);if(e===""){e="(?:)"}var d=parseDisjunction();if(d.range[1]!==e.length){bail("Could not parse entire input - got stuck","",d.range[1])}i=i||a.some((function(e){return e<=n}));if(i){p=0;o=false;return parseDisjunction()}return d}var r={parse:parse};if(true&&e.exports){e.exports=r}else{window.regjsparser=r}})()},1493:(e,t,r)=>{var s=r(6313);s.core=r(5417);s.isCore=r(4069);s.sync=r(5921);e.exports=s},6313:(e,t,r)=>{var s=r(7147);var a=r(6899);var n=r(1017);var o=r(5495);var i=r(7873);var l=r(3025);var c=r(5259);var u=s.realpath&&typeof s.realpath.native==="function"?s.realpath.native:s.realpath;var p=a();var defaultPaths=function(){return[n.join(p,".node_modules"),n.join(p,".node_libraries")]};var d=function isFile(e,t){s.stat(e,(function(e,r){if(!e){return t(null,r.isFile()||r.isFIFO())}if(e.code==="ENOENT"||e.code==="ENOTDIR")return t(null,false);return t(e)}))};var f=function isDirectory(e,t){s.stat(e,(function(e,r){if(!e){return t(null,r.isDirectory())}if(e.code==="ENOENT"||e.code==="ENOTDIR")return t(null,false);return t(e)}))};var y=function realpath(e,t){u(e,(function(r,s){if(r&&r.code!=="ENOENT")t(r);else t(null,r?e:s)}))};var g=function maybeRealpath(e,t,r,s){if(r&&r.preserveSymlinks===false){e(t,s)}else{s(null,t)}};var h=function defaultReadPackage(e,t,r){e(t,(function(e,t){if(e)r(e);else{try{var s=JSON.parse(t);r(null,s)}catch(e){r(null)}}}))};var b=function getPackageCandidates(e,t,r){var s=i(t,r,e);for(var a=0;a{e.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=(new Error).stack;Error.prepareStackTrace=e;return t[2].getFileName()}},5417:(e,t,r)=>{var s=process.versions&&process.versions.node&&process.versions.node.split(".")||[];function specifierIncluded(e){var t=e.split(" ");var r=t.length>1?t[0]:"=";var a=(t.length>1?t[1]:t[0]).split(".");for(var n=0;n<3;++n){var o=parseInt(s[n]||0,10);var i=parseInt(a[n]||0,10);if(o===i){continue}if(r==="<"){return o="){return o>=i}return false}return r===">="}function matchesRange(e){var t=e.split(/ ?&& ?/);if(t.length===0){return false}for(var r=0;r{"use strict";var s=r(2037);e.exports=s.homedir||function homedir(){var e=process.env.HOME;var t=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;if(process.platform==="win32"){return process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||e||null}if(process.platform==="darwin"){return e||(t?"/Users/"+t:null)}if(process.platform==="linux"){return e||(process.getuid()===0?"/root":t?"/home/"+t:null)}return e||null}},4069:(e,t,r)=>{var s=r(5259);e.exports=function isCore(e){return s(e)}},7873:(e,t,r)=>{var s=r(1017);var a=s.parse||r(8937);var n=function getNodeModulesDirs(e,t){var r="/";if(/^([A-Za-z]:)/.test(e)){r=""}else if(/^\\\\/.test(e)){r="\\\\"}var n=[e];var o=a(e);while(o.dir!==n[n.length-1]){n.push(o.dir);o=a(o.dir)}return n.reduce((function(e,a){return e.concat(t.map((function(e){return s.resolve(r,a,e)})))}),[])};e.exports=function nodeModulesPaths(e,t,r){var s=t&&t.moduleDirectory?[].concat(t.moduleDirectory):["node_modules"];if(t&&typeof t.paths==="function"){return t.paths(r,e,(function(){return n(e,s)}),t)}var a=n(e,s);return t&&t.paths?a.concat(t.paths):a}},3025:e=>{e.exports=function(e,t){return t||{}}},5921:(e,t,r)=>{var s=r(5259);var a=r(7147);var n=r(1017);var o=r(6899);var i=r(5495);var l=r(7873);var c=r(3025);var u=a.realpathSync&&typeof a.realpathSync.native==="function"?a.realpathSync.native:a.realpathSync;var p=o();var defaultPaths=function(){return[n.join(p,".node_modules"),n.join(p,".node_libraries")]};var d=function isFile(e){try{var t=a.statSync(e,{throwIfNoEntry:false})}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR"))return false;throw e}return!!t&&(t.isFile()||t.isFIFO())};var f=function isDirectory(e){try{var t=a.statSync(e,{throwIfNoEntry:false})}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR"))return false;throw e}return!!t&&t.isDirectory()};var y=function realpathSync(e){try{return u(e)}catch(e){if(e.code!=="ENOENT"){throw e}}return e};var g=function maybeRealpathSync(e,t,r){if(r&&r.preserveSymlinks===false){return e(t)}return t};var h=function defaultReadPackageSync(e,t){var r=e(t);try{var s=JSON.parse(r);return s}catch(e){}};var b=function getPackageCandidates(e,t,r){var s=l(t,r,e);for(var a=0;a{const s=r(9060);const{MAX_LENGTH:a,MAX_SAFE_INTEGER:n}=r(8689);const{re:o,t:i}=r(9153);const{compareIdentifiers:l}=r(3463);class SemVer{constructor(e,t){if(!t||typeof t!=="object"){t={loose:!!t,includePrerelease:false}}if(e instanceof SemVer){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease){return e}else{e=e.version}}else if(typeof e!=="string"){throw new TypeError(`Invalid Version: ${e}`)}if(e.length>a){throw new TypeError(`version is longer than ${a} characters`)}s("SemVer",e,t);this.options=t;this.loose=!!t.loose;this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?o[i.LOOSE]:o[i.FULL]);if(!r){throw new TypeError(`Invalid Version: ${e}`)}this.raw=e;this.major=+r[1];this.minor=+r[2];this.patch=+r[3];if(this.major>n||this.major<0){throw new TypeError("Invalid major version")}if(this.minor>n||this.minor<0){throw new TypeError("Invalid minor version")}if(this.patch>n||this.patch<0){throw new TypeError("Invalid patch version")}if(!r[4]){this.prerelease=[]}else{this.prerelease=r[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0){if(typeof this.prerelease[e]==="number"){this.prerelease[e]++;e=-2}}if(e===-1){this.prerelease.push(0)}}if(t){if(this.prerelease[0]===t){if(isNaN(this.prerelease[1])){this.prerelease=[t,0]}}else{this.prerelease=[t,0]}}break;default:throw new Error(`invalid increment argument: ${e}`)}this.format();this.raw=this.version;return this}}e.exports=SemVer},5166:(e,t,r)=>{const s=r(5245);const a=r(7988);const n=r(3773);const o=r(3366);const i=r(3344);const l=r(3398);const cmp=(e,t,r,c)=>{switch(t){case"===":if(typeof e==="object")e=e.version;if(typeof r==="object")r=r.version;return e===r;case"!==":if(typeof e==="object")e=e.version;if(typeof r==="object")r=r.version;return e!==r;case"":case"=":case"==":return s(e,r,c);case"!=":return a(e,r,c);case">":return n(e,r,c);case">=":return o(e,r,c);case"<":return i(e,r,c);case"<=":return l(e,r,c);default:throw new TypeError(`Invalid operator: ${t}`)}};e.exports=cmp},7603:(e,t,r)=>{const s=r(1107);const a=r(3639);const{re:n,t:o}=r(9153);const coerce=(e,t)=>{if(e instanceof s){return e}if(typeof e==="number"){e=String(e)}if(typeof e!=="string"){return null}t=t||{};let r=null;if(!t.rtl){r=e.match(n[o.COERCE])}else{let t;while((t=n[o.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length)){if(!r||t.index+t[0].length!==r.index+r[0].length){r=t}n[o.COERCERTL].lastIndex=t.index+t[1].length+t[2].length}n[o.COERCERTL].lastIndex=-1}if(r===null)return null;return a(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)};e.exports=coerce},9742:(e,t,r)=>{const s=r(1107);const compare=(e,t,r)=>new s(e,r).compare(new s(t,r));e.exports=compare},5245:(e,t,r)=>{const s=r(9742);const eq=(e,t,r)=>s(e,t,r)===0;e.exports=eq},3773:(e,t,r)=>{const s=r(9742);const gt=(e,t,r)=>s(e,t,r)>0;e.exports=gt},3366:(e,t,r)=>{const s=r(9742);const gte=(e,t,r)=>s(e,t,r)>=0;e.exports=gte},3344:(e,t,r)=>{const s=r(9742);const lt=(e,t,r)=>s(e,t,r)<0;e.exports=lt},3398:(e,t,r)=>{const s=r(9742);const lte=(e,t,r)=>s(e,t,r)<=0;e.exports=lte},7988:(e,t,r)=>{const s=r(9742);const neq=(e,t,r)=>s(e,t,r)!==0;e.exports=neq},3639:(e,t,r)=>{const{MAX_LENGTH:s}=r(8689);const{re:a,t:n}=r(9153);const o=r(1107);const parse=(e,t)=>{if(!t||typeof t!=="object"){t={loose:!!t,includePrerelease:false}}if(e instanceof o){return e}if(typeof e!=="string"){return null}if(e.length>s){return null}const r=t.loose?a[n.LOOSE]:a[n.FULL];if(!r.test(e)){return null}try{return new o(e,t)}catch(e){return null}};e.exports=parse},8689:e=>{const t="2.0.0";const r=256;const s=Number.MAX_SAFE_INTEGER||9007199254740991;const a=16;e.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:r,MAX_SAFE_INTEGER:s,MAX_SAFE_COMPONENT_LENGTH:a}},9060:e=>{const t=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},3463:e=>{const t=/^[0-9]+$/;const compareIdentifiers=(e,r)=>{const s=t.test(e);const a=t.test(r);if(s&&a){e=+e;r=+r}return e===r?0:s&&!a?-1:a&&!s?1:ecompareIdentifiers(t,e);e.exports={compareIdentifiers:compareIdentifiers,rcompareIdentifiers:rcompareIdentifiers}},9153:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:s}=r(8689);const a=r(9060);t=e.exports={};const n=t.re=[];const o=t.src=[];const i=t.t={};let l=0;const createToken=(e,t,r)=>{const s=l++;a(s,t);i[e]=s;o[s]=t;n[s]=new RegExp(t,r?"g":undefined)};createToken("NUMERICIDENTIFIER","0|[1-9]\\d*");createToken("NUMERICIDENTIFIERLOOSE","[0-9]+");createToken("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");createToken("MAINVERSION",`(${o[i.NUMERICIDENTIFIER]})\\.`+`(${o[i.NUMERICIDENTIFIER]})\\.`+`(${o[i.NUMERICIDENTIFIER]})`);createToken("MAINVERSIONLOOSE",`(${o[i.NUMERICIDENTIFIERLOOSE]})\\.`+`(${o[i.NUMERICIDENTIFIERLOOSE]})\\.`+`(${o[i.NUMERICIDENTIFIERLOOSE]})`);createToken("PRERELEASEIDENTIFIER",`(?:${o[i.NUMERICIDENTIFIER]}|${o[i.NONNUMERICIDENTIFIER]})`);createToken("PRERELEASEIDENTIFIERLOOSE",`(?:${o[i.NUMERICIDENTIFIERLOOSE]}|${o[i.NONNUMERICIDENTIFIER]})`);createToken("PRERELEASE",`(?:-(${o[i.PRERELEASEIDENTIFIER]}(?:\\.${o[i.PRERELEASEIDENTIFIER]})*))`);createToken("PRERELEASELOOSE",`(?:-?(${o[i.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${o[i.PRERELEASEIDENTIFIERLOOSE]})*))`);createToken("BUILDIDENTIFIER","[0-9A-Za-z-]+");createToken("BUILD",`(?:\\+(${o[i.BUILDIDENTIFIER]}(?:\\.${o[i.BUILDIDENTIFIER]})*))`);createToken("FULLPLAIN",`v?${o[i.MAINVERSION]}${o[i.PRERELEASE]}?${o[i.BUILD]}?`);createToken("FULL",`^${o[i.FULLPLAIN]}$`);createToken("LOOSEPLAIN",`[v=\\s]*${o[i.MAINVERSIONLOOSE]}${o[i.PRERELEASELOOSE]}?${o[i.BUILD]}?`);createToken("LOOSE",`^${o[i.LOOSEPLAIN]}$`);createToken("GTLT","((?:<|>)?=?)");createToken("XRANGEIDENTIFIERLOOSE",`${o[i.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);createToken("XRANGEIDENTIFIER",`${o[i.NUMERICIDENTIFIER]}|x|X|\\*`);createToken("XRANGEPLAIN",`[v=\\s]*(${o[i.XRANGEIDENTIFIER]})`+`(?:\\.(${o[i.XRANGEIDENTIFIER]})`+`(?:\\.(${o[i.XRANGEIDENTIFIER]})`+`(?:${o[i.PRERELEASE]})?${o[i.BUILD]}?`+`)?)?`);createToken("XRANGEPLAINLOOSE",`[v=\\s]*(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:${o[i.PRERELEASELOOSE]})?${o[i.BUILD]}?`+`)?)?`);createToken("XRANGE",`^${o[i.GTLT]}\\s*${o[i.XRANGEPLAIN]}$`);createToken("XRANGELOOSE",`^${o[i.GTLT]}\\s*${o[i.XRANGEPLAINLOOSE]}$`);createToken("COERCE",`${"(^|[^\\d])"+"(\\d{1,"}${s}})`+`(?:\\.(\\d{1,${s}}))?`+`(?:\\.(\\d{1,${s}}))?`+`(?:$|[^\\d])`);createToken("COERCERTL",o[i.COERCE],true);createToken("LONETILDE","(?:~>?)");createToken("TILDETRIM",`(\\s*)${o[i.LONETILDE]}\\s+`,true);t.tildeTrimReplace="$1~";createToken("TILDE",`^${o[i.LONETILDE]}${o[i.XRANGEPLAIN]}$`);createToken("TILDELOOSE",`^${o[i.LONETILDE]}${o[i.XRANGEPLAINLOOSE]}$`);createToken("LONECARET","(?:\\^)");createToken("CARETTRIM",`(\\s*)${o[i.LONECARET]}\\s+`,true);t.caretTrimReplace="$1^";createToken("CARET",`^${o[i.LONECARET]}${o[i.XRANGEPLAIN]}$`);createToken("CARETLOOSE",`^${o[i.LONECARET]}${o[i.XRANGEPLAINLOOSE]}$`);createToken("COMPARATORLOOSE",`^${o[i.GTLT]}\\s*(${o[i.LOOSEPLAIN]})$|^$`);createToken("COMPARATOR",`^${o[i.GTLT]}\\s*(${o[i.FULLPLAIN]})$|^$`);createToken("COMPARATORTRIM",`(\\s*)${o[i.GTLT]}\\s*(${o[i.LOOSEPLAIN]}|${o[i.XRANGEPLAIN]})`,true);t.comparatorTrimReplace="$1$2$3";createToken("HYPHENRANGE",`^\\s*(${o[i.XRANGEPLAIN]})`+`\\s+-\\s+`+`(${o[i.XRANGEPLAIN]})`+`\\s*$`);createToken("HYPHENRANGELOOSE",`^\\s*(${o[i.XRANGEPLAINLOOSE]})`+`\\s+-\\s+`+`(${o[i.XRANGEPLAINLOOSE]})`+`\\s*$`);createToken("STAR","(<|>)?=?\\s*\\*")},8562:e=>{var t=e.exports=function(e){return new Traverse(e)};function Traverse(e){this.value=e}Traverse.prototype.get=function(e){var t=this.value;for(var r=0;r{e.exports=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"])},2339:(e,t,r)=>{"use strict";const s=r(3533);const a=r(4368);const matchProperty=function(e){if(s.has(e)){return e}if(a.has(e)){return a.get(e)}throw new Error(`Unknown property: ${e}`)};e.exports=matchProperty},8408:e=>{e.exports=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]])},1230:(e,t,r)=>{"use strict";const s=r(8408);const matchPropertyValue=function(e,t){const r=s.get(e);if(!r){throw new Error(`Unknown property \`${e}\`.`)}const a=r.get(t);if(a){return a}throw new Error(`Unknown value \`${t}\` for property \`${e}\`.`)};e.exports=matchPropertyValue},4368:e=>{e.exports=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]])},2076:(e,t,r)=>{function eslintParser(){return r(7652)}function pluginProposalClassProperties(){return r(1756)}function pluginProposalExportNamespaceFrom(){return r(985)}function pluginProposalNumericSeparator(){return r(1899)}function pluginProposalObjectRestSpread(){return r(6806)}function pluginSyntaxBigint(){return r(9140)}function pluginSyntaxDynamicImport(){return r(9854)}function pluginSyntaxImportAssertions(){return r(9905)}function pluginSyntaxJsx(){return r(6178)}function pluginTransformDefine(){return r(3864)}function pluginTransformModulesCommonjs(){return r(4362)}function pluginTransformReactRemovePropTypes(){return r(814)}function pluginTransformRuntime(){return r(6522)}function presetEnv(){return r(6791)}function presetReact(){return r(2545)}function presetTypescript(){return r(6127)}e.exports={eslintParser:eslintParser,pluginProposalClassProperties:pluginProposalClassProperties,pluginProposalExportNamespaceFrom:pluginProposalExportNamespaceFrom,pluginProposalNumericSeparator:pluginProposalNumericSeparator,pluginProposalObjectRestSpread:pluginProposalObjectRestSpread,pluginSyntaxBigint:pluginSyntaxBigint,pluginSyntaxDynamicImport:pluginSyntaxDynamicImport,pluginSyntaxImportAssertions:pluginSyntaxImportAssertions,pluginSyntaxJsx:pluginSyntaxJsx,pluginTransformDefine:pluginTransformDefine,pluginTransformModulesCommonjs:pluginTransformModulesCommonjs,pluginTransformReactRemovePropTypes:pluginTransformReactRemovePropTypes,pluginTransformRuntime:pluginTransformRuntime,presetEnv:presetEnv,presetReact:presetReact,presetTypescript:presetTypescript}},9491:e=>{"use strict";e.exports=require("assert")},7147:e=>{"use strict";e.exports=require("fs")},8188:e=>{"use strict";e.exports=require("module")},8304:e=>{"use strict";e.exports=require("next/dist/compiled/babel/core")},6949:e=>{"use strict";e.exports=require("next/dist/compiled/babel/parser")},7369:e=>{"use strict";e.exports=require("next/dist/compiled/babel/traverse")},8622:e=>{"use strict";e.exports=require("next/dist/compiled/babel/types")},4907:e=>{"use strict";e.exports=require("next/dist/compiled/browserslist")},8542:e=>{"use strict";e.exports=require("next/dist/compiled/chalk")},7849:e=>{"use strict";e.exports=require("next/dist/compiled/semver")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},3837:e=>{"use strict";e.exports=require("util")},1267:e=>{"use strict";e.exports=require("worker_threads")},9366:(e,t,r)=>{function _classPrivateFieldInitSpec(e,t,r){_checkPrivateRedeclaration(e,t);t.set(e,r)}function _checkPrivateRedeclaration(e,t){if(t.has(e)){throw new TypeError("Cannot initialize the same private elements twice on an object")}}function _classPrivateFieldGet(e,t){var r=_classExtractFieldDescriptor(e,t,"get");return _classApplyDescriptorGet(e,r)}function _classApplyDescriptorGet(e,t){if(t.get){return t.get.call(e)}return t.value}function _classPrivateFieldSet(e,t,r){var s=_classExtractFieldDescriptor(e,t,"set");_classApplyDescriptorSet(e,s,r);return r}function _classExtractFieldDescriptor(e,t,r){if(!t.has(e)){throw new TypeError("attempted to "+r+" private field on non-instance")}return t.get(e)}function _classApplyDescriptorSet(e,t,r){if(t.set){t.set.call(e,r)}else{if(!t.writable){throw new TypeError("attempted to set read only private field")}t.value=r}}const s=r(7736);const{Definition:a}=r(2411);const n=r(6274);const o=r(1759);const{getKeys:i}=r(4544);let l;function getVisitorValues(e,t){if(l)return l[e];const{FLOW_FLIPPED_ALIAS_KEYS:r,VISITOR_KEYS:s}=t.getTypesInfo();const a=r.concat(["ArrayPattern","ClassDeclaration","ClassExpression","FunctionDeclaration","FunctionExpression","Identifier","ObjectPattern","RestElement"]);l=Object.entries(s).reduce(((e,[t,r])=>{if(!a.includes(r)){e[t]=r}return e}),{});return l[e]}const c={callProperties:{type:"loop",values:["value"]},indexers:{type:"loop",values:["key","value"]},properties:{type:"loop",values:["argument","value"]},types:{type:"loop"},params:{type:"loop"},argument:{type:"single"},elementType:{type:"single"},qualification:{type:"single"},rest:{type:"single"},returnType:{type:"single"},typeAnnotation:{type:"typeAnnotation"},typeParameters:{type:"typeParameters"},id:{type:"id"}};class PatternVisitor extends n{ArrayPattern(e){e.elements.forEach(this.visit,this)}ObjectPattern(e){e.properties.forEach(this.visit,this)}}var u=new WeakMap;class Referencer extends o{constructor(e,t,r){super(e,t);_classPrivateFieldInitSpec(this,u,{writable:true,value:void 0});_classPrivateFieldSet(this,u,r)}visitPattern(e,t,r){if(!e){return}this._checkIdentifierOrVisit(e.typeAnnotation);if(e.type==="AssignmentPattern"){this._checkIdentifierOrVisit(e.left.typeAnnotation)}if(typeof t==="function"){r=t;t={processRightHandNodes:false}}const s=new PatternVisitor(this.options,e,r);s.visit(e);if(t.processRightHandNodes){s.rightHandNodes.forEach(this.visit,this)}}visitClass(e){this._visitArray(e.decorators);const t=this._nestTypeParamScope(e);this._visitTypeAnnotation(e.implements);this._visitTypeAnnotation(e.superTypeParameters&&e.superTypeParameters.params);super.visitClass(e);if(t){this.close(e)}}visitFunction(e){const t=this._nestTypeParamScope(e);this._checkIdentifierOrVisit(e.returnType);super.visitFunction(e);if(t){this.close(e)}}visitProperty(e){var t;if(((t=e.value)==null?void 0:t.type)==="TypeCastExpression"){this._visitTypeAnnotation(e.value)}this._visitArray(e.decorators);super.visitProperty(e)}InterfaceDeclaration(e){this._createScopeVariable(e,e.id);const t=this._nestTypeParamScope(e);this._visitArray(e.extends);this.visit(e.body);if(t){this.close(e)}}TypeAlias(e){this._createScopeVariable(e,e.id);const t=this._nestTypeParamScope(e);this.visit(e.right);if(t){this.close(e)}}ClassProperty(e){this._visitClassProperty(e)}ClassPrivateProperty(e){this._visitClassProperty(e)}PropertyDefinition(e){this._visitClassProperty(e)}ClassPrivateMethod(e){super.MethodDefinition(e)}DeclareModule(e){this._visitDeclareX(e)}DeclareFunction(e){this._visitDeclareX(e)}DeclareVariable(e){this._visitDeclareX(e)}DeclareClass(e){this._visitDeclareX(e)}OptionalMemberExpression(e){super.MemberExpression(e)}_visitClassProperty(e){this._visitTypeAnnotation(e.typeAnnotation);this.visitProperty(e)}_visitDeclareX(e){if(e.id){this._createScopeVariable(e,e.id)}const t=this._nestTypeParamScope(e);if(t){this.close(e)}}_createScopeVariable(e,t){this.currentScope().variableScope.__define(t,new a("Variable",t,e,null,null,null))}_nestTypeParamScope(e){if(!e.typeParameters){return null}const t=this.scopeManager.__currentScope;const r=new s.Scope(this.scopeManager,"type-parameters",t,e,false);this.scopeManager.__nestScope(r);for(let t=0;t{var s,a,n,o;function _classStaticPrivateFieldSpecSet(e,t,r,s){_classCheckPrivateStaticAccess(e,t);_classCheckPrivateStaticFieldDescriptor(r,"set");_classApplyDescriptorSet(e,r,s);return s}function _classStaticPrivateFieldSpecGet(e,t,r){_classCheckPrivateStaticAccess(e,t);_classCheckPrivateStaticFieldDescriptor(r,"get");return _classApplyDescriptorGet(e,r)}function _classCheckPrivateStaticFieldDescriptor(e,t){if(e===undefined){throw new TypeError("attempted to "+t+" private static field before its declaration")}}function _classCheckPrivateStaticAccess(e,t){if(e!==t){throw new TypeError("Private static access of wrong provenance")}}function _classPrivateFieldInitSpec(e,t,r){_checkPrivateRedeclaration(e,t);t.set(e,r)}function _checkPrivateRedeclaration(e,t){if(t.has(e)){throw new TypeError("Cannot initialize the same private elements twice on an object")}}function _classPrivateFieldGet(e,t){var r=_classExtractFieldDescriptor(e,t,"get");return _classApplyDescriptorGet(e,r)}function _classApplyDescriptorGet(e,t){if(t.get){return t.get.call(e)}return t.value}function _classPrivateFieldSet(e,t,r){var s=_classExtractFieldDescriptor(e,t,"set");_classApplyDescriptorSet(e,s,r);return r}function _classExtractFieldDescriptor(e,t,r){if(!t.has(e)){throw new TypeError("attempted to "+r+" private field on non-instance")}return t.get(e)}function _classApplyDescriptorSet(e,t,r){if(t.set){t.set.call(e,r)}else{if(!t.writable){throw new TypeError("attempted to set read only private field")}t.value=r}}const i=r(1017);const l={GET_VERSION:"GET_VERSION",GET_TYPES_INFO:"GET_TYPES_INFO",GET_VISITOR_KEYS:"GET_VISITOR_KEYS",GET_TOKEN_LABELS:"GET_TOKEN_LABELS",MAYBE_PARSE:"MAYBE_PARSE",MAYBE_PARSE_SYNC:"MAYBE_PARSE_SYNC"};var c=new WeakMap;var u=new WeakMap;var p=new WeakMap;var d=new WeakMap;var f=new WeakMap;class Client{constructor(e){_classPrivateFieldInitSpec(this,c,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,u,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,p,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,d,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,f,{writable:true,value:void 0});_classPrivateFieldSet(this,c,e)}getVersion(){var e;return(e=_classPrivateFieldGet(this,u))!=null?e:_classPrivateFieldSet(this,u,_classPrivateFieldGet(this,c).call(this,l.GET_VERSION,undefined))}getTypesInfo(){var e;return(e=_classPrivateFieldGet(this,p))!=null?e:_classPrivateFieldSet(this,p,_classPrivateFieldGet(this,c).call(this,l.GET_TYPES_INFO,undefined))}getVisitorKeys(){var e;return(e=_classPrivateFieldGet(this,d))!=null?e:_classPrivateFieldSet(this,d,_classPrivateFieldGet(this,c).call(this,l.GET_VISITOR_KEYS,undefined))}getTokLabels(){var e;return(e=_classPrivateFieldGet(this,f))!=null?e:_classPrivateFieldSet(this,f,_classPrivateFieldGet(this,c).call(this,l.GET_TOKEN_LABELS,undefined))}maybeParse(e,t){return _classPrivateFieldGet(this,c).call(this,l.MAYBE_PARSE,{code:e,options:t})}}t.WorkerClient=(a=new WeakMap,s=class WorkerClient extends Client{constructor(){super(((e,t)=>{const r=new Int32Array(new SharedArrayBuffer(8));const o=new(_classStaticPrivateFieldSpecGet(WorkerClient,s,n).MessageChannel);_classPrivateFieldGet(this,a).postMessage({signal:r,port:o.port1,action:e,payload:t},[o.port1]);Atomics.wait(r,0,0);const{message:i}=_classStaticPrivateFieldSpecGet(WorkerClient,s,n).receiveMessageOnPort(o.port2);if(i.error)throw Object.assign(i.error,i.errorData);else return i.result}));_classPrivateFieldInitSpec(this,a,{writable:true,value:new(_classStaticPrivateFieldSpecGet(WorkerClient,s,n).Worker)(i.resolve(__dirname,"../lib/worker/index.cjs"),{env:_classStaticPrivateFieldSpecGet(WorkerClient,s,n).SHARE_ENV})});_classPrivateFieldGet(this,a).unref()}},n={get:_get_worker_threads,set:void 0},o={writable:true,value:void 0},s);function _get_worker_threads(){var e;return(e=_classStaticPrivateFieldSpecGet(s,s,o))!=null?e:_classStaticPrivateFieldSpecSet(s,s,o,r(1267))}{var y,g;t.LocalClient=(y=class LocalClient extends Client{constructor(){var e;(e=_classStaticPrivateFieldSpecGet(LocalClient,y,g))!=null?e:_classStaticPrivateFieldSpecSet(LocalClient,y,g,r(2440));super(((e,t)=>_classStaticPrivateFieldSpecGet(LocalClient,y,g).call(LocalClient,e===l.MAYBE_PARSE?l.MAYBE_PARSE_SYNC:e,t)))}},g={writable:true,value:void 0},y)}},7471:(e,t)=>{const r=["babelOptions","ecmaVersion","sourceType","requireConfigFile"];function _objectWithoutPropertiesLoose(e,t){if(e==null)return{};var r={};var s=Object.keys(e);var a,n;for(n=0;n=0)continue;r[a]=e[a]}return r}t.normalizeESLintConfig=function(e){const{babelOptions:t={},ecmaVersion:s=2020,sourceType:a="module",requireConfigFile:n=true}=e,o=_objectWithoutPropertiesLoose(e,r);return Object.assign({babelOptions:Object.assign({cwd:process.cwd()},t),ecmaVersion:s==="latest"?1e8:s,sourceType:a,requireConfigFile:n},o)}},2505:(e,t,r)=>{const s=r(5904);function*it(e){if(Array.isArray(e))yield*e;else yield e}function traverse(e,t,r){const{type:s}=e;if(!s)return;const a=t[s];if(!a)return;for(const s of a){for(const a of it(e[s])){if(a&&typeof a==="object"){r.enter(a);traverse(a,t,r);r.exit(a)}}}}const a={enter(e){if(e.innerComments){delete e.innerComments}if(e.trailingComments){delete e.trailingComments}if(e.leadingComments){delete e.leadingComments}},exit(e){if(e.extra){delete e.extra}if(e.loc.identifierName){delete e.loc.identifierName}if(e.type==="TypeParameter"){e.type="Identifier";e.typeAnnotation=e.bound;delete e.bound}if(e.type==="QualifiedTypeIdentifier"){delete e.id}if(e.type==="ObjectTypeProperty"){delete e.key}if(e.type==="ObjectTypeIndexer"){delete e.id}if(e.type==="FunctionTypeParam"){delete e.name}if(e.type==="ImportDeclaration"){delete e.isType}if(e.type==="TemplateLiteral"){for(let t=0;t=8){r.start-=1;if(r.tail){r.end+=1}else{r.end+=2}}}}}};function convertNodes(e,t){traverse(e,t,a)}function convertProgramNode(e){e.type="Program";e.sourceType=e.program.sourceType;e.body=e.program.body;delete e.program;delete e.errors;if(e.comments.length){const t=e.comments[e.comments.length-1];if(e.tokens.length){const r=e.tokens[e.tokens.length-1];if(t.end>r.end){e.range[1]=r.end;e.loc.end.line=r.loc.end.line;e.loc.end.column=r.loc.end.column;if(s>=8){e.end=r.end}}}}else{if(!e.tokens.length){e.loc.start.line=1;e.loc.end.line=1}}if(e.body&&e.body.length>0){e.loc.start.line=e.body[0].loc.start.line;e.range[0]=e.body[0].start;if(s>=8){e.start=e.body[0].start}}}e.exports=function convertAST(e,t){convertNodes(e,t);convertProgramNode(e)}},1040:e=>{e.exports=function convertComments(e){for(const t of e){if(t.type==="CommentBlock"){t.type="Block"}else if(t.type==="CommentLine"){t.type="Line"}if(!t.range){t.range=[t.start,t.end]}}}},8616:(e,t,r)=>{const s=r(5904);function convertTemplateType(e,t){let r=null;let s=[];const a=[];function addTemplateType(){const e=s[0];const r=s[s.length-1];const n=s.reduce(((e,r)=>{if(r.value){e+=r.value}else if(r.type.label!==t.template){e+=r.type.label}return e}),"");a.push({type:"Template",value:n,start:e.start,end:r.end,loc:{start:e.loc.start,end:r.loc.end}});s=[]}e.forEach((e=>{switch(e.type.label){case t.backQuote:if(r){a.push(r);r=null}s.push(e);if(s.length>1){addTemplateType()}break;case t.dollarBraceL:s.push(e);addTemplateType();break;case t.braceR:if(r){a.push(r)}r=e;break;case t.template:if(r){s.push(r);r=null}s.push(e);break;default:if(r){a.push(r);r=null}a.push(e)}}));return a}function convertToken(e,t,r){const{type:s}=e;const{label:a}=s;e.range=[e.start,e.end];if(a===r.name){if(e.value==="static"){e.type="Keyword"}else{e.type="Identifier"}}else if(a===r.semi||a===r.comma||a===r.parenL||a===r.parenR||a===r.braceL||a===r.braceR||a===r.slash||a===r.dot||a===r.bracketL||a===r.bracketR||a===r.ellipsis||a===r.arrow||a===r.pipeline||a===r.star||a===r.incDec||a===r.colon||a===r.question||a===r.template||a===r.backQuote||a===r.dollarBraceL||a===r.at||a===r.logicalOR||a===r.logicalAND||a===r.nullishCoalescing||a===r.bitwiseOR||a===r.bitwiseXOR||a===r.bitwiseAND||a===r.equality||a===r.relational||a===r.bitShift||a===r.plusMin||a===r.modulo||a===r.exponent||a===r.bang||a===r.tilde||a===r.doubleColon||a===r.hash||a===r.questionDot||a===r.braceHashL||a===r.braceBarL||a===r.braceBarR||a===r.bracketHashL||a===r.bracketBarL||a===r.bracketBarR||a===r.doubleCaret||a===r.doubleAt||s.isAssign){var n;e.type="Punctuator";(n=e.value)!=null?n:e.value=a}else if(a===r.jsxTagStart){e.type="Punctuator";e.value="<"}else if(a===r.jsxTagEnd){e.type="Punctuator";e.value=">"}else if(a===r.jsxName){e.type="JSXIdentifier"}else if(a===r.jsxText){e.type="JSXText"}else if(s.keyword==="null"){e.type="Null"}else if(s.keyword==="false"||s.keyword==="true"){e.type="Boolean"}else if(s.keyword){e.type="Keyword"}else if(a===r.num){e.type="Numeric";e.value=t.slice(e.start,e.end)}else if(a===r.string){e.type="String";e.value=t.slice(e.start,e.end)}else if(a===r.regexp){e.type="RegularExpression";const t=e.value;e.regex={pattern:t.pattern,flags:t.flags};e.value=`/${t.pattern}/${t.flags}`}else if(a===r.bigint){e.type="Numeric";e.value=`${e.value}n`}else if(a===r.privateName){e.type="PrivateIdentifier"}else if(a===r.templateNonTail||a===r.templateTail){e.type="Template"}if(typeof e.type!=="string"){delete e.type.rightAssociative}}e.exports=function convertTokens(e,t,r){const a=[];const n=convertTemplateType(e,r);for(let e=0,{length:o}=n;e=8&&e+1{const s=r(8616);const a=r(1040);const n=r(2505);t.ast=function convert(e,t,r,o){e.tokens=s(e.tokens,t,r);a(e.comments);n(e,o);return e};t.error=function convertError(e){if(e instanceof SyntaxError){e.lineNumber=e.loc.line;e.column=e.loc.column}return e}},7652:(e,t,r)=>{const{normalizeESLintConfig:s}=r(7471);const a=r(9366);const n=r(298);const{LocalClient:o,WorkerClient:i}=r(8880);const l=new o;t.parse=function(e,t={}){return n(e,s(t),l)};t.parseForESLint=function(e,t={}){const r=s(t);const o=n(e,r,l);const i=a(o,r,l);return{ast:o,scopeManager:i,visitorKeys:l.getVisitorKeys()}}},298:(e,t,r)=>{"use strict";const s=r(7849);const a=r(9620);function noop(){}const n=r(6949);noop((((e,t)=>(e=e.split("."),t=t.split("."),+e[0]>+t[0]||e[0]==t[0]&&+e[1]>=+t[1]))(process.versions.node,"8.9")?noop:(e,{paths:[t]},s=r(8188))=>{let a=s._findPath(e,s._nodeModulePaths(t).concat(t));if(a)return a;a=new Error(`Cannot resolve module '${e}'`);a.code="MODULE_NOT_FOUND";throw a})("@babel/parser",{paths:[noop("@babel/core/package.json")]}));let o=null;e.exports=function parse(e,t,r){const i=">=7.2.0";if(typeof o!=="boolean"){o=s.satisfies(r.getVersion(),i)}if(!o){throw new Error(`@babel/eslint-parser@${"7.18.2"} does not support @babel/core@${r.getVersion()}. Please upgrade to @babel/core@${i}.`)}const{ast:l,parserOptions:c}=r.maybeParse(e,t);if(l)return l;try{return a.ast(n.parse(e,c),e,r.getTokLabels(),r.getVisitorKeys())}catch(e){throw a.error(e)}}},5904:(e,t,r)=>{e.exports=parseInt(r(4378).i8,10)},3702:(e,t,r)=>{const s=r(4544).KEYS;const a=r(5460);let n;t.getVisitorKeys=function getVisitorKeys(){if(!n){const e={ChainExpression:s.ChainExpression,ImportExpression:s.ImportExpression,Literal:s.Literal,MethodDefinition:["decorators"].concat(s.MethodDefinition),Property:["decorators"].concat(s.Property),PropertyDefinition:["decorators","typeAnnotation"].concat(s.PropertyDefinition)};const t={ClassPrivateMethod:["decorators"].concat(s.MethodDefinition),ExportAllDeclaration:s.ExportAllDeclaration};n=Object.assign({},e,a.types.VISITOR_KEYS,t)}return n};let o;t.getTokLabels=function getTokLabels(){return o||(o=(e=>e.reduce(((e,[t,r])=>Object.assign({},e,{[t]:r})),{}))(Object.entries(a.tokTypes).map((([e,t])=>[e,t.label]))))}},5460:(e,t,r)=>{function initialize(e){t.init=null;t.version=e.version;t.traverse=e.traverse;t.types=e.types;t.tokTypes=e.tokTypes;t.parseSync=e.parseSync;t.loadPartialConfigSync=e.loadPartialConfigSync;t.loadPartialConfigAsync=e.loadPartialConfigAsync;t.createConfigItem=e.createConfigItem}{initialize(r(8304))}},4095:(e,t,r)=>{function asyncGeneratorStep(e,t,r,s,a,n,o){try{var i=e[n](o);var l=i.value}catch(e){r(e);return}if(i.done){t(l)}else{Promise.resolve(l).then(s,a)}}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(s,a){var n=e.apply(t,r);function _next(e){asyncGeneratorStep(n,s,a,_next,_throw,"next",e)}function _throw(e){asyncGeneratorStep(n,s,a,_next,_throw,"throw",e)}_next(undefined)}))}}const s=r(5460);const a=r(5904);function getParserPlugins(e){var t,r;const s=(t=(r=e.parserOpts)==null?void 0:r.plugins)!=null?t:[];const n={classFeatures:a>=8};for(const e of s){if(Array.isArray(e)&&e[0]==="estree"){Object.assign(n,e[1]);break}}return[["estree",n],...s]}function normalizeParserOptions(e){var t,r,s;return Object.assign({sourceType:e.sourceType,filename:e.filePath},e.babelOptions,{parserOpts:Object.assign({},{allowImportExportEverywhere:(t=e.allowImportExportEverywhere)!=null?t:false,allowSuperOutsideMethod:true},{allowReturnOutsideFunction:(r=(s=e.ecmaFeatures)==null?void 0:s.globalReturn)!=null?r:true},e.babelOptions.parserOpts,{plugins:getParserPlugins(e.babelOptions),attachComment:false,ranges:true,tokens:true}),caller:Object.assign({name:"@babel/eslint-parser"},e.babelOptions.caller)})}function validateResolvedConfig(e,t,r){if(e!==null){if(t.requireConfigFile!==false){if(!e.hasFilesystemConfig()){let t=`No Babel config file detected for ${e.options.filename}. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files.`;if(e.options.filename.includes("node_modules")){t+=`\nIf you have a .babelrc.js file or use package.json#babel, keep in mind that it's not used when parsing dependencies. If you want your config to be applied to your whole app, consider using babel.config.js or babel.config.json instead.`}throw new Error(t)}}if(e.options)return e.options}return getDefaultParserOptions(r)}function getDefaultParserOptions(e){return Object.assign({plugins:[]},e,{babelrc:false,configFile:false,browserslistConfigFile:false,ignore:null,only:null})}t.normalizeBabelParseConfig=_asyncToGenerator((function*(e){const t=normalizeParserOptions(e);const r=yield s.loadPartialConfigAsync(t);return validateResolvedConfig(r,e,t)}));t.normalizeBabelParseConfigSync=function(e){const t=normalizeParserOptions(e);const r=s.loadPartialConfigSync(t);return validateResolvedConfig(r,e,t)}},8625:e=>{e.exports=function extractParserOptionsPlugin(){return{parserOverride(e,t){return t}}}},2440:(e,t,r)=>{const s=r(5460);const a=r(1855);const{getVisitorKeys:n,getTokLabels:o}=r(3702);const{normalizeBabelParseConfig:i,normalizeBabelParseConfigSync:l}=r(4095);e.exports=function handleMessage(e,t){switch(e){case"GET_VERSION":return s.version;case"GET_TYPES_INFO":return{FLOW_FLIPPED_ALIAS_KEYS:s.types.FLIPPED_ALIAS_KEYS.Flow,VISITOR_KEYS:s.types.VISITOR_KEYS};case"GET_TOKEN_LABELS":return o();case"GET_VISITOR_KEYS":return n();case"MAYBE_PARSE":return i(t.options).then((e=>a(t.code,e)));case"MAYBE_PARSE_SYNC":{return a(t.code,l(t.options))}}throw new Error(`Unknown internal parser worker action: ${e}`)}},1855:(e,t,r)=>{const s=r(5460);const a=r(9620);const{getVisitorKeys:n,getTokLabels:o}=r(3702);const i=r(8625);const l={};let c;const u=/More than one plugin attempted to override parsing/;e.exports=function maybeParse(e,t){if(!c){c=s.createConfigItem([i,l],{dirname:__dirname,type:"plugin"})}const{plugins:r}=t;t.plugins=r.concat(c);try{return{parserOptions:s.parseSync(e,t),ast:null}}catch(e){if(!u.test(e.message)){throw e}}t.plugins=r;let p;try{p=s.parseSync(e,t)}catch(e){throw a.error(e)}return{ast:a.ast(p,e,o(),n()),parserOptions:null}}},5585:e=>{"use strict";e.exports=JSON.parse('{"es6.array.copy-within":{"chrome":"45","opera":"32","edge":"12","firefox":"32","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.every":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.fill":{"chrome":"45","opera":"32","edge":"12","firefox":"31","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.filter":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.find":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.find-index":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es7.array.flat-map":{"chrome":"69","opera":"56","edge":"79","firefox":"62","safari":"12","node":"11","ios":"12","samsung":"10","electron":"4.0"},"es6.array.for-each":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.from":{"chrome":"51","opera":"38","edge":"15","firefox":"36","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.array.includes":{"chrome":"47","opera":"34","edge":"14","firefox":"43","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.array.index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.is-array":{"chrome":"5","opera":"10.50","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.iterator":{"chrome":"66","opera":"53","edge":"12","firefox":"60","safari":"9","node":"10","ios":"9","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.array.last-index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.map":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.of":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.reduce":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.reduce-right":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.slice":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.some":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.sort":{"chrome":"63","opera":"50","edge":"12","firefox":"5","safari":"12","node":"10","ie":"9","ios":"12","samsung":"8","rhino":"1.7.13","electron":"3.0"},"es6.array.species":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.date.now":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-iso-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-json":{"chrome":"5","opera":"12.10","edge":"12","firefox":"4","safari":"10","node":"0.10","ie":"9","android":"4","ios":"10","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-primitive":{"chrome":"47","opera":"34","edge":"15","firefox":"44","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.date.to-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.bind":{"chrome":"7","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.has-instance":{"chrome":"51","opera":"38","edge":"15","firefox":"50","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.function.name":{"chrome":"5","opera":"10.50","edge":"14","firefox":"2","safari":"4","node":"0.10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.math.acosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.asinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.atanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cbrt":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.clz32":{"chrome":"38","opera":"25","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.expm1":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.fround":{"chrome":"38","opera":"25","edge":"12","firefox":"26","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.hypot":{"chrome":"38","opera":"25","edge":"12","firefox":"27","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.imul":{"chrome":"30","opera":"17","edge":"12","firefox":"23","safari":"7","node":"0.12","android":"4.4","ios":"7","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.math.log1p":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log10":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log2":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sign":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.tanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.trunc":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.number.constructor":{"chrome":"41","opera":"28","edge":"12","firefox":"36","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.number.epsilon":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.is-finite":{"chrome":"19","opera":"15","edge":"12","firefox":"16","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"16","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.is-nan":{"chrome":"19","opera":"15","edge":"12","firefox":"15","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"32","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.max-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.min-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.parse-float":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.parse-int":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.object.assign":{"chrome":"49","opera":"36","edge":"13","firefox":"36","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.object.create":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.define-getter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.define-setter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.define-property":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.object.define-properties":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.entries":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.object.freeze":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.get-own-property-descriptor":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.get-own-property-descriptors":{"chrome":"54","opera":"41","edge":"15","firefox":"50","safari":"10.1","node":"7","ios":"10.3","samsung":"6","electron":"1.4"},"es6.object.get-own-property-names":{"chrome":"40","opera":"27","edge":"12","firefox":"33","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.get-prototype-of":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.lookup-getter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.lookup-setter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.prevent-extensions":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.to-string":{"chrome":"57","opera":"44","edge":"15","firefox":"51","safari":"10","node":"8","ios":"10","samsung":"7","electron":"1.7"},"es6.object.is":{"chrome":"19","opera":"15","edge":"12","firefox":"22","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.object.is-frozen":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-sealed":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-extensible":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.keys":{"chrome":"40","opera":"27","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.seal":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.set-prototype-of":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ie":"11","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es7.object.values":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.promise":{"chrome":"51","opera":"38","edge":"14","firefox":"45","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.promise.finally":{"chrome":"63","opera":"50","edge":"18","firefox":"58","safari":"11.1","node":"10","ios":"11.3","samsung":"8","electron":"3.0"},"es6.reflect.apply":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.construct":{"chrome":"49","opera":"36","edge":"13","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.define-property":{"chrome":"49","opera":"36","edge":"13","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.delete-property":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-own-property-descriptor":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.has":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.is-extensible":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.own-keys":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.prevent-extensions":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.regexp.constructor":{"chrome":"50","opera":"37","edge":"79","firefox":"40","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.flags":{"chrome":"49","opera":"36","edge":"79","firefox":"37","safari":"9","node":"6","ios":"9","samsung":"5","electron":"0.37"},"es6.regexp.match":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.replace":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.split":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.search":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.to-string":{"chrome":"50","opera":"37","edge":"79","firefox":"39","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.symbol":{"chrome":"51","opera":"38","edge":"79","firefox":"51","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.symbol.async-iterator":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","ios":"12","samsung":"8","electron":"3.0"},"es6.string.anchor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.big":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.blink":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.bold":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.code-point-at":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.ends-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.fixed":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontcolor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontsize":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.from-code-point":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.includes":{"chrome":"41","opera":"28","edge":"12","firefox":"40","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.italics":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.iterator":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.string.link":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es7.string.pad-start":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es7.string.pad-end":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es6.string.raw":{"chrome":"41","opera":"28","edge":"12","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.14","electron":"0.21"},"es6.string.repeat":{"chrome":"41","opera":"28","edge":"12","firefox":"24","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.small":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.starts-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.strike":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sub":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sup":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.trim":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.string.trim-left":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es7.string.trim-right":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.typed.array-buffer":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.data-view":{"chrome":"5","opera":"12","edge":"12","firefox":"15","safari":"5.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.typed.int8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-clamped-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float64-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.weak-map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"},"es6.weak-set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"}}')},6560:e=>{"use strict";e.exports=JSON.parse('{"es6.module":{"chrome":"61","and_chr":"61","edge":"16","firefox":"60","and_ff":"60","node":"13.2.0","opera":"48","op_mob":"48","safari":"10.1","ios":"10.3","samsung":"8.2","android":"61","electron":"2.0","ios_saf":"10.3"}}')},4718:e=>{"use strict";e.exports=JSON.parse('{"proposal-class-static-block":{"chrome":"94","opera":"80","edge":"94","firefox":"93","node":"16.11"},"proposal-private-property-in-object":{"chrome":"91","opera":"77","edge":"91","firefox":"90","safari":"15","node":"16.9","ios":"15","electron":"13.0"},"proposal-class-properties":{"chrome":"74","opera":"62","edge":"79","firefox":"90","safari":"14.1","node":"12","ios":"15","samsung":"11","electron":"6.0"},"proposal-private-methods":{"chrome":"84","opera":"70","edge":"84","firefox":"90","safari":"15","node":"14.6","ios":"15","samsung":"14","electron":"10.0"},"proposal-numeric-separator":{"chrome":"75","opera":"62","edge":"79","firefox":"70","safari":"13","node":"12.5","ios":"13","samsung":"11","rhino":"1.7.14","electron":"6.0"},"proposal-logical-assignment-operators":{"chrome":"85","opera":"71","edge":"85","firefox":"79","safari":"14","node":"15","ios":"14","samsung":"14","electron":"10.0"},"proposal-nullish-coalescing-operator":{"chrome":"80","opera":"67","edge":"80","firefox":"72","safari":"13.1","node":"14","ios":"13.4","samsung":"13","electron":"8.0"},"proposal-optional-chaining":{"chrome":"91","opera":"77","edge":"91","firefox":"74","safari":"13.1","node":"16.9","ios":"13.4","electron":"13.0"},"proposal-json-strings":{"chrome":"66","opera":"53","edge":"79","firefox":"62","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.14","electron":"3.0"},"proposal-optional-catch-binding":{"chrome":"66","opera":"53","edge":"79","firefox":"58","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-parameters":{"chrome":"49","opera":"36","edge":"18","firefox":"53","node":"6","samsung":"5","electron":"0.37"},"proposal-async-generator-functions":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","ios":"12","samsung":"8","electron":"3.0"},"proposal-object-rest-spread":{"chrome":"60","opera":"47","edge":"79","firefox":"55","safari":"11.1","node":"8.3","ios":"11.3","samsung":"8","electron":"2.0"},"transform-dotall-regex":{"chrome":"62","opera":"49","edge":"79","firefox":"78","safari":"11.1","node":"8.10","ios":"11.3","samsung":"8","electron":"3.0"},"proposal-unicode-property-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-named-capturing-groups-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-async-to-generator":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"11","node":"7.6","ios":"11","samsung":"6","electron":"1.6"},"transform-exponentiation-operator":{"chrome":"52","opera":"39","edge":"14","firefox":"52","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.3"},"transform-template-literals":{"chrome":"41","opera":"28","edge":"13","firefox":"34","safari":"13","node":"4","ios":"13","samsung":"3.4","electron":"0.21"},"transform-literals":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","ios":"9","samsung":"4","electron":"0.30"},"transform-function-name":{"chrome":"51","opera":"38","edge":"79","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-arrow-functions":{"chrome":"47","opera":"34","edge":"13","firefox":"43","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"0.36"},"transform-block-scoped-functions":{"chrome":"41","opera":"28","edge":"12","firefox":"46","safari":"10","node":"4","ie":"11","ios":"10","samsung":"3.4","electron":"0.21"},"transform-classes":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-object-super":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-shorthand-properties":{"chrome":"43","opera":"30","edge":"12","firefox":"33","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.14","electron":"0.27"},"transform-duplicate-keys":{"chrome":"42","opera":"29","edge":"12","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","electron":"0.25"},"transform-computed-properties":{"chrome":"44","opera":"31","edge":"12","firefox":"34","safari":"7.1","node":"4","ios":"8","samsung":"4","electron":"0.30"},"transform-for-of":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-sticky-regex":{"chrome":"49","opera":"36","edge":"13","firefox":"3","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"transform-unicode-escapes":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","ios":"9","samsung":"4","electron":"0.30"},"transform-unicode-regex":{"chrome":"50","opera":"37","edge":"13","firefox":"46","safari":"12","node":"6","ios":"12","samsung":"5","electron":"1.1"},"transform-spread":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-destructuring":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-block-scoping":{"chrome":"49","opera":"36","edge":"14","firefox":"51","safari":"11","node":"6","ios":"11","samsung":"5","electron":"0.37"},"transform-typeof-symbol":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"transform-new-target":{"chrome":"46","opera":"33","edge":"14","firefox":"41","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-regenerator":{"chrome":"50","opera":"37","edge":"13","firefox":"53","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"transform-member-expression-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-property-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-reserved-words":{"chrome":"13","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4.4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"proposal-export-namespace-from":{"chrome":"72","and_chr":"72","edge":"79","firefox":"80","and_ff":"80","node":"13.2","opera":"60","op_mob":"51","samsung":"11.0","android":"72","electron":"5.0"}}')},9696:e=>{"use strict";e.exports=JSON.parse('{"es6.array.copy-within":{"chrome":"45","opera":"32","edge":"12","firefox":"32","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.every":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.fill":{"chrome":"45","opera":"32","edge":"12","firefox":"31","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.filter":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.find":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.find-index":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es7.array.flat-map":{"chrome":"69","opera":"56","edge":"79","firefox":"62","safari":"12","node":"11","ios":"12","samsung":"10","electron":"4.0"},"es6.array.for-each":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.from":{"chrome":"51","opera":"38","edge":"15","firefox":"36","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.array.includes":{"chrome":"47","opera":"34","edge":"14","firefox":"43","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.array.index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.is-array":{"chrome":"5","opera":"10.50","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.iterator":{"chrome":"66","opera":"53","edge":"12","firefox":"60","safari":"9","node":"10","ios":"9","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.array.last-index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.map":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.of":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.reduce":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.reduce-right":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.slice":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.some":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.sort":{"chrome":"63","opera":"50","edge":"12","firefox":"5","safari":"12","node":"10","ie":"9","ios":"12","samsung":"8","rhino":"1.7.13","electron":"3.0"},"es6.array.species":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.date.now":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-iso-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-json":{"chrome":"5","opera":"12.10","edge":"12","firefox":"4","safari":"10","node":"0.10","ie":"9","android":"4","ios":"10","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-primitive":{"chrome":"47","opera":"34","edge":"15","firefox":"44","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.date.to-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.bind":{"chrome":"7","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.has-instance":{"chrome":"51","opera":"38","edge":"15","firefox":"50","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.function.name":{"chrome":"5","opera":"10.50","edge":"14","firefox":"2","safari":"4","node":"0.10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.math.acosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.asinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.atanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cbrt":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.clz32":{"chrome":"38","opera":"25","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.expm1":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.fround":{"chrome":"38","opera":"25","edge":"12","firefox":"26","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.hypot":{"chrome":"38","opera":"25","edge":"12","firefox":"27","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.imul":{"chrome":"30","opera":"17","edge":"12","firefox":"23","safari":"7","node":"0.12","android":"4.4","ios":"7","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.math.log1p":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log10":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log2":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sign":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.tanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.trunc":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.number.constructor":{"chrome":"41","opera":"28","edge":"12","firefox":"36","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.number.epsilon":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.is-finite":{"chrome":"19","opera":"15","edge":"12","firefox":"16","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"16","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.is-nan":{"chrome":"19","opera":"15","edge":"12","firefox":"15","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"32","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.max-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.min-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.parse-float":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.parse-int":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.object.assign":{"chrome":"49","opera":"36","edge":"13","firefox":"36","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.object.create":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.define-getter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.define-setter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.define-property":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.object.define-properties":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.entries":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.object.freeze":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.get-own-property-descriptor":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.get-own-property-descriptors":{"chrome":"54","opera":"41","edge":"15","firefox":"50","safari":"10.1","node":"7","ios":"10.3","samsung":"6","electron":"1.4"},"es6.object.get-own-property-names":{"chrome":"40","opera":"27","edge":"12","firefox":"33","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.get-prototype-of":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.lookup-getter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.lookup-setter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.prevent-extensions":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.to-string":{"chrome":"57","opera":"44","edge":"15","firefox":"51","safari":"10","node":"8","ios":"10","samsung":"7","electron":"1.7"},"es6.object.is":{"chrome":"19","opera":"15","edge":"12","firefox":"22","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.object.is-frozen":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-sealed":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-extensible":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.keys":{"chrome":"40","opera":"27","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.seal":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.set-prototype-of":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ie":"11","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es7.object.values":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.promise":{"chrome":"51","opera":"38","edge":"14","firefox":"45","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.promise.finally":{"chrome":"63","opera":"50","edge":"18","firefox":"58","safari":"11.1","node":"10","ios":"11.3","samsung":"8","electron":"3.0"},"es6.reflect.apply":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.construct":{"chrome":"49","opera":"36","edge":"13","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.define-property":{"chrome":"49","opera":"36","edge":"13","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.delete-property":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-own-property-descriptor":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.has":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.is-extensible":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.own-keys":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.prevent-extensions":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.regexp.constructor":{"chrome":"50","opera":"37","edge":"79","firefox":"40","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.flags":{"chrome":"49","opera":"36","edge":"79","firefox":"37","safari":"9","node":"6","ios":"9","samsung":"5","electron":"0.37"},"es6.regexp.match":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.replace":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.split":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.search":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.to-string":{"chrome":"50","opera":"37","edge":"79","firefox":"39","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.symbol":{"chrome":"51","opera":"38","edge":"79","firefox":"51","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.symbol.async-iterator":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","ios":"12","samsung":"8","electron":"3.0"},"es6.string.anchor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.big":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.blink":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.bold":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.code-point-at":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.ends-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.fixed":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontcolor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontsize":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.from-code-point":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.includes":{"chrome":"41","opera":"28","edge":"12","firefox":"40","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.italics":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.iterator":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.string.link":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es7.string.pad-start":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es7.string.pad-end":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es6.string.raw":{"chrome":"41","opera":"28","edge":"12","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.14","electron":"0.21"},"es6.string.repeat":{"chrome":"41","opera":"28","edge":"12","firefox":"24","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.small":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.starts-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.strike":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sub":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sup":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.trim":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.string.trim-left":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es7.string.trim-right":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.typed.array-buffer":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.data-view":{"chrome":"5","opera":"12","edge":"12","firefox":"15","safari":"5.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.typed.int8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-clamped-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float64-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.weak-map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"},"es6.weak-set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"}}')},9009:e=>{"use strict";e.exports=JSON.parse('{"es6.module":{"chrome":"61","and_chr":"61","edge":"16","firefox":"60","and_ff":"60","node":"13.2.0","opera":"48","op_mob":"48","safari":"10.1","ios":"10.3","samsung":"8.2","android":"61","electron":"2.0","ios_saf":"10.3"}}')},266:e=>{"use strict";e.exports=JSON.parse('{"transform-async-to-generator":["bugfix/transform-async-arrows-in-class"],"transform-parameters":["bugfix/transform-edge-default-parameters","bugfix/transform-safari-id-destructuring-collision-in-function-expression"],"transform-function-name":["bugfix/transform-edge-function-name"],"transform-block-scoping":["bugfix/transform-safari-block-shadowing","bugfix/transform-safari-for-shadowing"],"transform-template-literals":["bugfix/transform-tagged-template-caching"],"proposal-optional-chaining":["bugfix/transform-v8-spread-parameters-in-optional-chaining"]}')},4943:e=>{"use strict";e.exports=JSON.parse('{"bugfix/transform-async-arrows-in-class":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"11","node":"7.6","ios":"11","samsung":"6","electron":"1.6"},"bugfix/transform-edge-default-parameters":{"chrome":"49","opera":"36","edge":"18","firefox":"52","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"bugfix/transform-edge-function-name":{"chrome":"51","opera":"38","edge":"79","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"bugfix/transform-safari-block-shadowing":{"chrome":"49","opera":"36","edge":"12","firefox":"44","safari":"11","node":"6","ie":"11","ios":"11","samsung":"5","electron":"0.37"},"bugfix/transform-safari-for-shadowing":{"chrome":"49","opera":"36","edge":"12","firefox":"4","safari":"11","node":"6","ie":"11","ios":"11","samsung":"5","rhino":"1.7.13","electron":"0.37"},"bugfix/transform-safari-id-destructuring-collision-in-function-expression":{"chrome":"49","opera":"36","edge":"14","firefox":"2","node":"6","samsung":"5","electron":"0.37"},"bugfix/transform-tagged-template-caching":{"chrome":"41","opera":"28","edge":"12","firefox":"34","safari":"13","node":"4","ios":"13","samsung":"3.4","rhino":"1.7.14","electron":"0.21"},"bugfix/transform-v8-spread-parameters-in-optional-chaining":{"chrome":"91","opera":"77","edge":"91","firefox":"74","safari":"13.1","node":"16.9","ios":"13.4","electron":"13.0"},"proposal-optional-chaining":{"chrome":"80","opera":"67","edge":"80","firefox":"74","safari":"13.1","node":"14","ios":"13.4","samsung":"13","electron":"8.0"},"transform-parameters":{"chrome":"49","opera":"36","edge":"15","firefox":"53","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"transform-async-to-generator":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"10.1","node":"7.6","ios":"10.3","samsung":"6","electron":"1.6"},"transform-template-literals":{"chrome":"41","opera":"28","edge":"13","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","electron":"0.21"},"transform-function-name":{"chrome":"51","opera":"38","edge":"14","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-block-scoping":{"chrome":"49","opera":"36","edge":"14","firefox":"51","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"}}')},7385:e=>{"use strict";e.exports=JSON.parse('{"proposal-class-static-block":{"chrome":"94","opera":"80","edge":"94","firefox":"93","node":"16.11","electron":"15.0"},"proposal-private-property-in-object":{"chrome":"91","opera":"77","edge":"91","firefox":"90","safari":"15","node":"16.9","ios":"15","electron":"13.0"},"proposal-class-properties":{"chrome":"74","opera":"62","edge":"79","firefox":"90","safari":"14.1","node":"12","ios":"15","samsung":"11","electron":"6.0"},"proposal-private-methods":{"chrome":"84","opera":"70","edge":"84","firefox":"90","safari":"15","node":"14.6","ios":"15","samsung":"14","electron":"10.0"},"proposal-numeric-separator":{"chrome":"75","opera":"62","edge":"79","firefox":"70","safari":"13","node":"12.5","ios":"13","samsung":"11","rhino":"1.7.14","electron":"6.0"},"proposal-logical-assignment-operators":{"chrome":"85","opera":"71","edge":"85","firefox":"79","safari":"14","node":"15","ios":"14","samsung":"14","electron":"10.0"},"proposal-nullish-coalescing-operator":{"chrome":"80","opera":"67","edge":"80","firefox":"72","safari":"13.1","node":"14","ios":"13.4","samsung":"13","electron":"8.0"},"proposal-optional-chaining":{"chrome":"91","opera":"77","edge":"91","firefox":"74","safari":"13.1","node":"16.9","ios":"13.4","electron":"13.0"},"proposal-json-strings":{"chrome":"66","opera":"53","edge":"79","firefox":"62","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.14","electron":"3.0"},"proposal-optional-catch-binding":{"chrome":"66","opera":"53","edge":"79","firefox":"58","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-parameters":{"chrome":"49","opera":"36","edge":"18","firefox":"53","node":"6","samsung":"5","electron":"0.37"},"proposal-async-generator-functions":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","ios":"12","samsung":"8","electron":"3.0"},"proposal-object-rest-spread":{"chrome":"60","opera":"47","edge":"79","firefox":"55","safari":"11.1","node":"8.3","ios":"11.3","samsung":"8","electron":"2.0"},"transform-dotall-regex":{"chrome":"62","opera":"49","edge":"79","firefox":"78","safari":"11.1","node":"8.10","ios":"11.3","samsung":"8","electron":"3.0"},"proposal-unicode-property-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-named-capturing-groups-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-async-to-generator":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"11","node":"7.6","ios":"11","samsung":"6","electron":"1.6"},"transform-exponentiation-operator":{"chrome":"52","opera":"39","edge":"14","firefox":"52","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.3"},"transform-template-literals":{"chrome":"41","opera":"28","edge":"13","firefox":"34","safari":"13","node":"4","ios":"13","samsung":"3.4","electron":"0.21"},"transform-literals":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","ios":"9","samsung":"4","electron":"0.30"},"transform-function-name":{"chrome":"51","opera":"38","edge":"79","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-arrow-functions":{"chrome":"47","opera":"34","edge":"13","firefox":"43","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"0.36"},"transform-block-scoped-functions":{"chrome":"41","opera":"28","edge":"12","firefox":"46","safari":"10","node":"4","ie":"11","ios":"10","samsung":"3.4","electron":"0.21"},"transform-classes":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-object-super":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-shorthand-properties":{"chrome":"43","opera":"30","edge":"12","firefox":"33","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.14","electron":"0.27"},"transform-duplicate-keys":{"chrome":"42","opera":"29","edge":"12","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","electron":"0.25"},"transform-computed-properties":{"chrome":"44","opera":"31","edge":"12","firefox":"34","safari":"7.1","node":"4","ios":"8","samsung":"4","electron":"0.30"},"transform-for-of":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-sticky-regex":{"chrome":"49","opera":"36","edge":"13","firefox":"3","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"transform-unicode-escapes":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","ios":"9","samsung":"4","electron":"0.30"},"transform-unicode-regex":{"chrome":"50","opera":"37","edge":"13","firefox":"46","safari":"12","node":"6","ios":"12","samsung":"5","electron":"1.1"},"transform-spread":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-destructuring":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-block-scoping":{"chrome":"49","opera":"36","edge":"14","firefox":"51","safari":"11","node":"6","ios":"11","samsung":"5","electron":"0.37"},"transform-typeof-symbol":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"transform-new-target":{"chrome":"46","opera":"33","edge":"14","firefox":"41","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-regenerator":{"chrome":"50","opera":"37","edge":"13","firefox":"53","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"transform-member-expression-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-property-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-reserved-words":{"chrome":"13","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4.4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"proposal-export-namespace-from":{"chrome":"72","and_chr":"72","edge":"79","firefox":"80","and_ff":"80","node":"13.2","opera":"60","op_mob":"51","samsung":"11.0","android":"72","electron":"5.0"}}')},4073:e=>{"use strict";e.exports=JSON.parse('{"es.symbol":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"51","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.symbol.description":{"android":"70","chrome":"70","deno":"1.0","edge":"74","electron":"5.0","firefox":"63","ios":"12.2","node":"11.0","opera":"57","opera_mobile":"49","safari":"12.1","samsung":"10.0"},"es.symbol.async-iterator":{"android":"63","chrome":"63","deno":"1.0","edge":"74","electron":"3.0","firefox":"55","ios":"12.0","node":"10.0","opera":"50","opera_mobile":"46","safari":"12.0","samsung":"8.0"},"es.symbol.has-instance":{"android":"50","chrome":"50","deno":"1.0","edge":"15","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.is-concat-spreadable":{"android":"48","chrome":"48","deno":"1.0","edge":"15","electron":"0.37","firefox":"48","ios":"10.0","node":"6.0","opera":"35","opera_mobile":"35","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.iterator":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"36","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.symbol.match":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"40","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.match-all":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"67","ios":"13.0","node":"12.0","opera":"60","opera_mobile":"52","safari":"13","samsung":"11.0"},"es.symbol.replace":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.search":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.species":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"41","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.split":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.to-primitive":{"android":"47","chrome":"47","deno":"1.0","edge":"15","electron":"0.36","firefox":"44","ios":"10.0","node":"6.0","opera":"34","opera_mobile":"34","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.to-string-tag":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"51","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.unscopables":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"48","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.error.cause":{"android":"94","chrome":"94","deno":"1.14","edge":"94","electron":"15.0","firefox":"91","ios":"15.0","node":"16.11","opera":"80","opera_mobile":"66","safari":"15.0","samsung":"17.0"},"es.error.to-string":{"android":"4.4.3","chrome":"33","deno":"1.0","edge":"12","electron":"0.20","firefox":"11","ie":"9","ios":"9.0","node":"0.11.13","opera":"20","opera_mobile":"20","rhino":"1.7.14","safari":"8.0","samsung":"2.0"},"es.aggregate-error":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"es.aggregate-error.cause":{"android":"94","chrome":"94","deno":"1.14","edge":"94","electron":"15.0","firefox":"91","ios":"15.0","node":"16.11","opera":"80","opera_mobile":"66","safari":"15.0","samsung":"17.0"},"es.array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"es.array.concat":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.copy-within":{"android":"45","chrome":"45","deno":"1.0","edge":"12","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.every":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.fill":{"android":"45","chrome":"45","deno":"1.0","edge":"12","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.filter":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.find":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.find-index":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.flat":{"android":"69","chrome":"69","deno":"1.0","edge":"74","electron":"4.0","firefox":"62","ios":"12.0","node":"11.0","opera":"56","opera_mobile":"48","safari":"12.0","samsung":"10.0"},"es.array.flat-map":{"android":"69","chrome":"69","deno":"1.0","edge":"74","electron":"4.0","firefox":"62","ios":"12.0","node":"11.0","opera":"56","opera_mobile":"48","safari":"12.0","samsung":"10.0"},"es.array.for-each":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.from":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"9.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"9.0","samsung":"5.0"},"es.array.includes":{"android":"53","chrome":"53","deno":"1.0","edge":"14","electron":"1.4","firefox":"102","ios":"10.0","node":"7.0","opera":"40","opera_mobile":"40","safari":"10.0","samsung":"6.0"},"es.array.index-of":{"android":"51","chrome":"51","deno":"1.0","edge":"12","electron":"1.2","firefox":"47","ie":"9","ios":"8.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"7.1","samsung":"5.0"},"es.array.is-array":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"3.2","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.array.iterator":{"android":"66","chrome":"66","deno":"1.0","edge":"15","electron":"3.0","firefox":"60","ios":"10.0","node":"10.0","opera":"53","opera_mobile":"47","safari":"10.0","samsung":"9.0"},"es.array.join":{"android":"4.4","chrome":"26","deno":"1.0","edge":"13","electron":"0.20","firefox":"4","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.last-index-of":{"android":"51","chrome":"51","deno":"1.0","edge":"12","electron":"1.2","firefox":"47","ie":"9","ios":"8.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"7.1","samsung":"5.0"},"es.array.map":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"50","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.of":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"25","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","rhino":"1.7.13","safari":"9.0","samsung":"5.0"},"es.array.reduce":{"android":"83","chrome":"83","deno":"1.0","edge":"12","electron":"9.0","firefox":"4","ie":"9","ios":"8.0","node":"6.0","opera":"69","opera_mobile":"59","rhino":"1.7.13","safari":"7.1","samsung":"13.0"},"es.array.reduce-right":{"android":"83","chrome":"83","deno":"1.0","edge":"12","electron":"9.0","firefox":"4","ie":"9","ios":"8.0","node":"6.0","opera":"69","opera_mobile":"59","rhino":"1.7.13","safari":"7.1","samsung":"13.0"},"es.array.reverse":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"5.5","ios":"12.2","node":"0.0.3","opera":"10.50","opera_mobile":"10.50","rhino":"1.7.13","safari":"12.0.2","samsung":"1.0"},"es.array.slice":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.some":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.sort":{"android":"70","chrome":"70","deno":"1.0","edge":"74","electron":"5.0","firefox":"4","ios":"12.0","node":"11.0","opera":"57","opera_mobile":"49","safari":"12.0","samsung":"10.0"},"es.array.species":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.splice":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"49","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.unscopables.flat":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"67","ios":"13.0","node":"12.0","opera":"60","opera_mobile":"52","safari":"13","samsung":"11.0"},"es.array.unscopables.flat-map":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"67","ios":"13.0","node":"12.0","opera":"60","opera_mobile":"52","safari":"13","samsung":"11.0"},"es.array-buffer.constructor":{"android":"4.4","chrome":"26","deno":"1.0","edge":"14","electron":"0.20","firefox":"44","ios":"12.0","node":"0.11.0","opera":"16","opera_mobile":"16","safari":"12.0","samsung":"1.5"},"es.array-buffer.is-view":{"android":"4.4.3","chrome":"32","deno":"1.0","edge":"12","electron":"0.20","firefox":"29","ie":"11","ios":"8.0","node":"0.11.9","opera":"19","opera_mobile":"19","safari":"7.1","samsung":"2.0"},"es.array-buffer.slice":{"android":"4.4.3","chrome":"31","deno":"1.0","edge":"12","electron":"0.20","firefox":"46","ie":"11","ios":"12.2","node":"0.11.8","opera":"18","opera_mobile":"18","rhino":"1.7.13","safari":"12.1","samsung":"2.0"},"es.data-view":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"15","ie":"10","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.date.get-year":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"9","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.date.now":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ie":"9","ios":"3.2","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.date.set-year":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.date.to-gmt-string":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.date.to-iso-string":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"7","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.date.to-json":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"10.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"10.0","samsung":"1.5"},"es.date.to-primitive":{"android":"47","chrome":"47","deno":"1.0","edge":"15","electron":"0.36","firefox":"44","ios":"10.0","node":"6.0","opera":"34","opera_mobile":"34","safari":"10.0","samsung":"5.0"},"es.date.to-string":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ie":"9","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.escape":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.function.bind":{"android":"3.0","chrome":"7","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"5.1","node":"0.1.101","opera":"12","opera_mobile":"12","phantom":"2.0","rhino":"1.7.13","safari":"5.1","samsung":"1.0"},"es.function.has-instance":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"50","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.function.name":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"3.2","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.global-this":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"65","ios":"12.2","node":"12.0","opera":"58","opera_mobile":"50","rhino":"1.7.14","safari":"12.1","samsung":"10.0"},"es.json.stringify":{"android":"72","chrome":"72","deno":"1.0","edge":"74","electron":"5.0","firefox":"64","ios":"12.2","node":"12.0","opera":"59","opera_mobile":"51","safari":"12.1","samsung":"11.0"},"es.json.to-string-tag":{"android":"50","chrome":"50","deno":"1.0","edge":"15","electron":"1.1","firefox":"51","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","safari":"10.0","samsung":"5.0"},"es.map":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.math.acosh":{"android":"54","chrome":"54","deno":"1.0","edge":"13","electron":"1.4","firefox":"25","ios":"8.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"7.1","samsung":"6.0"},"es.math.asinh":{"android":"38","chrome":"38","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.atanh":{"android":"38","chrome":"38","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.cbrt":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.clz32":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ios":"9.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"9.0","samsung":"3.0"},"es.math.cosh":{"android":"39","chrome":"39","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"1.0","opera":"26","opera_mobile":"26","rhino":"1.7.13","safari":"7.1","samsung":"3.4"},"es.math.expm1":{"android":"39","chrome":"39","deno":"1.0","edge":"13","electron":"0.20","firefox":"46","ios":"8.0","node":"1.0","opera":"26","opera_mobile":"26","rhino":"1.7.13","safari":"7.1","samsung":"3.4"},"es.math.fround":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"26","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.hypot":{"android":"78","chrome":"78","deno":"1.0","edge":"12","electron":"7.0","firefox":"27","ios":"8.0","node":"13.0","opera":"65","opera_mobile":"56","rhino":"1.7.13","safari":"7.1","samsung":"12.0"},"es.math.imul":{"android":"4.4","chrome":"28","deno":"1.0","edge":"13","electron":"0.20","firefox":"20","ios":"9.0","node":"0.11.1","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.math.log10":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.log1p":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.log2":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.sign":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"9.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"9.0","samsung":"3.0"},"es.math.sinh":{"android":"39","chrome":"39","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"1.0","opera":"26","opera_mobile":"26","rhino":"1.7.13","safari":"7.1","samsung":"3.4"},"es.math.tanh":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.to-string-tag":{"android":"50","chrome":"50","deno":"1.0","edge":"15","electron":"1.1","firefox":"51","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","safari":"10.0","samsung":"5.0"},"es.math.trunc":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.number.constructor":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"46","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.number.epsilon":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.14","safari":"9.0","samsung":"2.0"},"es.number.is-finite":{"android":"4.1","chrome":"19","deno":"1.0","edge":"12","electron":"0.20","firefox":"16","ios":"9.0","node":"0.7.3","opera":"15","opera_mobile":"15","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.number.is-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"16","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.is-nan":{"android":"4.1","chrome":"19","deno":"1.0","edge":"12","electron":"0.20","firefox":"15","ios":"9.0","node":"0.7.3","opera":"15","opera_mobile":"15","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.number.is-safe-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"32","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.max-safe-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.min-safe-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.parse-float":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"39","ios":"11.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.14","safari":"11.0","samsung":"3.0"},"es.number.parse-int":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"39","ios":"9.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.14","safari":"9.0","samsung":"3.0"},"es.number.to-exponential":{"android":"51","chrome":"51","deno":"1.0","edge":"18","electron":"1.2","firefox":"87","ios":"11.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.14","safari":"11","samsung":"5.0"},"es.number.to-fixed":{"android":"4.4","chrome":"26","deno":"1.0","edge":"74","electron":"0.20","firefox":"4","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.number.to-precision":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"8","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.object.assign":{"android":"49","chrome":"49","deno":"1.0","edge":"74","electron":"0.37","firefox":"36","ios":"9.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"9.0","samsung":"5.0"},"es.object.create":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"3.2","node":"0.1.27","opera":"12","opera_mobile":"12","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.object.define-getter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.define-properties":{"android":"37","chrome":"37","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"5.1","node":"0.11.15","opera":"12","opera_mobile":"12","phantom":"2.0","rhino":"1.7.13","safari":"5.1","samsung":"3.0"},"es.object.define-property":{"android":"37","chrome":"37","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"5.1","node":"0.11.15","opera":"12","opera_mobile":"12","phantom":"2.0","rhino":"1.7.13","safari":"5.1","samsung":"3.0"},"es.object.define-setter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.entries":{"android":"54","chrome":"54","deno":"1.0","edge":"14","electron":"1.4","firefox":"47","ios":"10.3","node":"7.0","opera":"41","opera_mobile":"41","rhino":"1.7.14","safari":"10.1","samsung":"6.0"},"es.object.freeze":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.from-entries":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"63","ios":"12.2","node":"12.0","opera":"60","opera_mobile":"52","rhino":"1.7.14","safari":"12.1","samsung":"11.0"},"es.object.get-own-property-descriptor":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.get-own-property-descriptors":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"50","ios":"10.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"10.0","samsung":"6.0"},"es.object.get-own-property-names":{"android":"40","chrome":"40","deno":"1.0","edge":"13","electron":"0.21","firefox":"34","ios":"9.0","node":"1.0","opera":"27","opera_mobile":"27","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.object.get-prototype-of":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.has-own":{"android":"93","chrome":"93","deno":"1.13","edge":"93","electron":"14.0","firefox":"92","ios":"15.4","node":"16.9","opera":"79","opera_mobile":"66","safari":"15.4","samsung":"17.0"},"es.object.is":{"android":"4.1","chrome":"19","deno":"1.0","edge":"12","electron":"0.20","firefox":"22","ios":"9.0","node":"0.7.3","opera":"15","opera_mobile":"15","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.object.is-extensible":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.is-frozen":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.is-sealed":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.keys":{"android":"40","chrome":"40","deno":"1.0","edge":"13","electron":"0.21","firefox":"35","ios":"9.0","node":"1.0","opera":"27","opera_mobile":"27","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.object.lookup-getter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.lookup-setter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.prevent-extensions":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.seal":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.set-prototype-of":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ie":"11","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.object.to-string":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"51","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.object.values":{"android":"54","chrome":"54","deno":"1.0","edge":"14","electron":"1.4","firefox":"47","ios":"10.3","node":"7.0","opera":"41","opera_mobile":"41","rhino":"1.7.14","safari":"10.1","samsung":"6.0"},"es.parse-float":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"8","ie":"8","ios":"8.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.parse-int":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"21","ie":"9","ios":"8.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.promise":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"69","ios":"11.0","node":"10.4","opera":"54","opera_mobile":"48","rhino":"1.7.14","safari":"11.0","samsung":"9.0"},"es.promise.all-settled":{"android":"76","chrome":"76","deno":"1.0","edge":"76","electron":"6.0","firefox":"71","ios":"13.0","node":"12.9","opera":"63","opera_mobile":"54","safari":"13","samsung":"12.0"},"es.promise.any":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"es.promise.finally":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"69","ios":"13.2.3","node":"10.4","opera":"54","opera_mobile":"48","rhino":"1.7.14","safari":"13.0.3","samsung":"9.0"},"es.reflect.apply":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.construct":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"44","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.define-property":{"android":"49","chrome":"49","deno":"1.0","edge":"13","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.delete-property":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.get":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.get-own-property-descriptor":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.get-prototype-of":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.has":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.is-extensible":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.own-keys":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.prevent-extensions":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.set":{"android":"49","chrome":"49","deno":"1.0","edge":"74","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.set-prototype-of":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.to-string-tag":{"android":"86","chrome":"86","deno":"1.3","edge":"86","electron":"11.0","firefox":"82","ios":"14.0","node":"15.0","opera":"72","opera_mobile":"61","safari":"14.0","samsung":"14.0"},"es.regexp.constructor":{"android":"64","chrome":"64","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"10.0","opera":"51","opera_mobile":"47","safari":"11.1","samsung":"9.0"},"es.regexp.dot-all":{"android":"62","chrome":"62","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"8.10","opera":"49","opera_mobile":"46","safari":"11.1","samsung":"8.0"},"es.regexp.exec":{"android":"64","chrome":"64","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"10.0","opera":"51","opera_mobile":"47","safari":"11.1","samsung":"9.0"},"es.regexp.flags":{"android":"62","chrome":"62","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"8.10","opera":"49","opera_mobile":"46","safari":"11.1","samsung":"8.0"},"es.regexp.sticky":{"android":"49","chrome":"49","deno":"1.0","edge":"13","electron":"0.37","firefox":"3","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.regexp.test":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"46","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.regexp.to-string":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"46","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","safari":"10.0","samsung":"5.0"},"es.set":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.string.at-alternative":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"es.string.code-point-at":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"29","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.ends-with":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"40","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.from-code-point":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"29","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.includes":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"40","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.iterator":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"36","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.match":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"49","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.match-all":{"android":"80","chrome":"80","deno":"1.0","edge":"80","electron":"8.0","firefox":"73","ios":"13.4","node":"14.0","opera":"67","opera_mobile":"57","safari":"13.1","samsung":"13.0"},"es.string.pad-end":{"android":"57","chrome":"57","deno":"1.0","edge":"15","electron":"1.7","firefox":"48","ios":"11.0","node":"8.0","opera":"44","opera_mobile":"43","rhino":"1.7.13","safari":"11.0","samsung":"7.0"},"es.string.pad-start":{"android":"57","chrome":"57","deno":"1.0","edge":"15","electron":"1.7","firefox":"48","ios":"11.0","node":"8.0","opera":"44","opera_mobile":"43","rhino":"1.7.13","safari":"11.0","samsung":"7.0"},"es.string.raw":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"34","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.14","safari":"9.0","samsung":"3.4"},"es.string.repeat":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"24","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.replace":{"android":"64","chrome":"64","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"14.0","node":"10.0","opera":"51","opera_mobile":"47","safari":"14.0","samsung":"9.0"},"es.string.replace-all":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"77","ios":"13.4","node":"15.0","opera":"71","opera_mobile":"60","safari":"13.1","samsung":"14.0"},"es.string.search":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"49","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.split":{"android":"54","chrome":"54","deno":"1.0","edge":"74","electron":"1.4","firefox":"49","ios":"10.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"10.0","samsung":"6.0"},"es.string.starts-with":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"40","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.substr":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"9","ios":"1.0","node":"0.0.3","opera":"4","opera_mobile":"4","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.string.trim":{"android":"59","chrome":"59","deno":"1.0","edge":"15","electron":"1.8","firefox":"52","ios":"12.2","node":"8.3","opera":"46","opera_mobile":"43","safari":"12.1","samsung":"7.0"},"es.string.trim-end":{"android":"66","chrome":"66","deno":"1.0","edge":"74","electron":"3.0","firefox":"61","ios":"12.2","node":"10.0","opera":"53","opera_mobile":"47","safari":"12.1","samsung":"9.0"},"es.string.trim-start":{"android":"66","chrome":"66","deno":"1.0","edge":"74","electron":"3.0","firefox":"61","ios":"12.0","node":"10.0","opera":"53","opera_mobile":"47","safari":"12.0","samsung":"9.0"},"es.string.anchor":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.big":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.blink":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.bold":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.fixed":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.fontcolor":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.fontsize":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.italics":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.link":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.small":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.strike":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.sub":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.sup":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.typed-array.float32-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.float64-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.int8-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.int16-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.int32-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint8-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint8-clamped-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint16-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint32-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"es.typed-array.copy-within":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"34","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.every":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.fill":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.filter":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.find":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.find-index":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.for-each":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.from":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.includes":{"android":"49","chrome":"49","deno":"1.0","edge":"14","electron":"0.37","firefox":"43","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.typed-array.index-of":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.iterator":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"37","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.typed-array.join":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.last-index-of":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.map":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.of":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.reduce":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.reduce-right":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.reverse":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.set":{"android":"95","chrome":"95","deno":"1.15","edge":"95","electron":"16.0","firefox":"54","ios":"14.5","node":"17.0","opera":"81","opera_mobile":"67","safari":"14.1","samsung":"17.0"},"es.typed-array.slice":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.some":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.sort":{"android":"74","chrome":"74","deno":"1.0","edge":"74","electron":"6.0","firefox":"67","ios":"14.5","node":"12.0","opera":"61","opera_mobile":"53","safari":"14.1","samsung":"11.0"},"es.typed-array.subarray":{"android":"4.4","chrome":"26","deno":"1.0","edge":"13","electron":"0.20","firefox":"15","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","safari":"7.1","samsung":"1.5"},"es.typed-array.to-locale-string":{"android":"45","chrome":"45","deno":"1.0","edge":"74","electron":"0.31","firefox":"51","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.to-string":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"51","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.unescape":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.weak-map":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.weak-set":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"esnext.aggregate-error":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"esnext.array.from-async":{},"esnext.array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"esnext.array.filter-out":{},"esnext.array.filter-reject":{},"esnext.array.find-last":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.array.find-last-index":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.array.group-by":{},"esnext.array.group-by-to-map":{},"esnext.array.is-template-object":{},"esnext.array.last-index":{},"esnext.array.last-item":{},"esnext.array.to-reversed":{},"esnext.array.to-sorted":{},"esnext.array.to-spliced":{},"esnext.array.unique-by":{},"esnext.array.with":{},"esnext.async-iterator.constructor":{},"esnext.async-iterator.as-indexed-pairs":{},"esnext.async-iterator.drop":{},"esnext.async-iterator.every":{},"esnext.async-iterator.filter":{},"esnext.async-iterator.find":{},"esnext.async-iterator.flat-map":{},"esnext.async-iterator.for-each":{},"esnext.async-iterator.from":{},"esnext.async-iterator.map":{},"esnext.async-iterator.reduce":{},"esnext.async-iterator.some":{},"esnext.async-iterator.take":{},"esnext.async-iterator.to-array":{},"esnext.bigint.range":{},"esnext.composite-key":{},"esnext.composite-symbol":{},"esnext.function.is-callable":{},"esnext.function.is-constructor":{},"esnext.function.un-this":{},"esnext.global-this":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"65","ios":"12.2","node":"12.0","opera":"58","opera_mobile":"50","rhino":"1.7.14","safari":"12.1","samsung":"10.0"},"esnext.iterator.constructor":{},"esnext.iterator.as-indexed-pairs":{},"esnext.iterator.drop":{},"esnext.iterator.every":{},"esnext.iterator.filter":{},"esnext.iterator.find":{},"esnext.iterator.flat-map":{},"esnext.iterator.for-each":{},"esnext.iterator.from":{},"esnext.iterator.map":{},"esnext.iterator.reduce":{},"esnext.iterator.some":{},"esnext.iterator.take":{},"esnext.iterator.to-array":{},"esnext.iterator.to-async":{},"esnext.map.delete-all":{},"esnext.map.emplace":{},"esnext.map.every":{},"esnext.map.filter":{},"esnext.map.find":{},"esnext.map.find-key":{},"esnext.map.from":{},"esnext.map.group-by":{},"esnext.map.includes":{},"esnext.map.key-by":{},"esnext.map.key-of":{},"esnext.map.map-keys":{},"esnext.map.map-values":{},"esnext.map.merge":{},"esnext.map.of":{},"esnext.map.reduce":{},"esnext.map.some":{},"esnext.map.update":{},"esnext.map.update-or-insert":{},"esnext.map.upsert":{},"esnext.math.clamp":{},"esnext.math.deg-per-rad":{},"esnext.math.degrees":{},"esnext.math.fscale":{},"esnext.math.iaddh":{},"esnext.math.imulh":{},"esnext.math.isubh":{},"esnext.math.rad-per-deg":{},"esnext.math.radians":{},"esnext.math.scale":{},"esnext.math.seeded-prng":{},"esnext.math.signbit":{},"esnext.math.umulh":{},"esnext.number.from-string":{},"esnext.number.range":{},"esnext.object.has-own":{"android":"93","chrome":"93","deno":"1.13","edge":"93","electron":"14.0","firefox":"92","ios":"15.4","node":"16.9","opera":"79","opera_mobile":"66","safari":"15.4","samsung":"17.0"},"esnext.object.iterate-entries":{},"esnext.object.iterate-keys":{},"esnext.object.iterate-values":{},"esnext.observable":{},"esnext.promise.all-settled":{"android":"76","chrome":"76","deno":"1.0","edge":"76","electron":"6.0","firefox":"71","ios":"13.0","node":"12.9","opera":"63","opera_mobile":"54","safari":"13","samsung":"12.0"},"esnext.promise.any":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"esnext.promise.try":{},"esnext.reflect.define-metadata":{},"esnext.reflect.delete-metadata":{},"esnext.reflect.get-metadata":{},"esnext.reflect.get-metadata-keys":{},"esnext.reflect.get-own-metadata":{},"esnext.reflect.get-own-metadata-keys":{},"esnext.reflect.has-metadata":{},"esnext.reflect.has-own-metadata":{},"esnext.reflect.metadata":{},"esnext.set.add-all":{},"esnext.set.delete-all":{},"esnext.set.difference":{},"esnext.set.every":{},"esnext.set.filter":{},"esnext.set.find":{},"esnext.set.from":{},"esnext.set.intersection":{},"esnext.set.is-disjoint-from":{},"esnext.set.is-subset-of":{},"esnext.set.is-superset-of":{},"esnext.set.join":{},"esnext.set.map":{},"esnext.set.of":{},"esnext.set.reduce":{},"esnext.set.some":{},"esnext.set.symmetric-difference":{},"esnext.set.union":{},"esnext.string.at":{},"esnext.string.cooked":{},"esnext.string.code-points":{},"esnext.string.match-all":{"android":"80","chrome":"80","deno":"1.0","edge":"80","electron":"8.0","firefox":"73","ios":"13.4","node":"14.0","opera":"67","opera_mobile":"57","safari":"13.1","samsung":"13.0"},"esnext.string.replace-all":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"77","ios":"13.4","node":"15.0","opera":"71","opera_mobile":"60","safari":"13.1","samsung":"14.0"},"esnext.symbol.async-dispose":{},"esnext.symbol.dispose":{},"esnext.symbol.matcher":{},"esnext.symbol.metadata":{},"esnext.symbol.observable":{},"esnext.symbol.pattern-match":{},"esnext.symbol.replace-all":{},"esnext.typed-array.from-async":{},"esnext.typed-array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"esnext.typed-array.filter-out":{},"esnext.typed-array.filter-reject":{},"esnext.typed-array.find-last":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.typed-array.find-last-index":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.typed-array.group-by":{},"esnext.typed-array.to-reversed":{},"esnext.typed-array.to-sorted":{},"esnext.typed-array.to-spliced":{},"esnext.typed-array.unique-by":{},"esnext.typed-array.with":{},"esnext.weak-map.delete-all":{},"esnext.weak-map.from":{},"esnext.weak-map.of":{},"esnext.weak-map.emplace":{},"esnext.weak-map.upsert":{},"esnext.weak-set.add-all":{},"esnext.weak-set.delete-all":{},"esnext.weak-set.from":{},"esnext.weak-set.of":{},"web.atob":{"android":"37","chrome":"34","deno":"1.0","edge":"16","electron":"0.20","firefox":"27","ios":"10.3","node":"18.0","opera":"10.5","opera_mobile":"10.5","safari":"10.1","samsung":"2.0"},"web.btoa":{"android":"3.0","chrome":"4","deno":"1.0","edge":"16","electron":"0.20","firefox":"27","ios":"1.0","node":"17.5","opera":"10.5","opera_mobile":"10.5","phantom":"1.9","safari":"3.0","samsung":"1.0"},"web.dom-collections.for-each":{"android":"58","chrome":"58","deno":"1.0","edge":"16","electron":"1.7","firefox":"50","ios":"10.0","node":"0.0.1","opera":"45","opera_mobile":"43","rhino":"1.7.13","safari":"10.0","samsung":"7.0"},"web.dom-collections.iterator":{"android":"66","chrome":"66","deno":"1.0","edge":"74","electron":"3.0","firefox":"60","ios":"13.4","node":"0.0.1","opera":"53","opera_mobile":"47","rhino":"1.7.13","safari":"13.1","samsung":"9.0"},"web.dom-exception.constructor":{"android":"46","chrome":"46","deno":"1.7","edge":"74","electron":"0.36","firefox":"37","ios":"11.3","node":"17.0","opera":"33","opera_mobile":"33","safari":"11.1","samsung":"5.0"},"web.dom-exception.stack":{"deno":"1.15","firefox":"37","node":"17.0"},"web.dom-exception.to-string-tag":{"android":"49","chrome":"49","deno":"1.7","edge":"74","electron":"0.37","firefox":"51","ios":"11.3","node":"17.0","opera":"36","opera_mobile":"36","safari":"11.1","samsung":"5.0"},"web.immediate":{"ie":"10","node":"0.9.1"},"web.queue-microtask":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"69","ios":"12.2","node":"12.0","opera":"58","opera_mobile":"50","safari":"12.1","samsung":"10.0"},"web.structured-clone":{},"web.timers":{"android":"1.5","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"10","ios":"1.0","node":"0.0.1","opera":"7","opera_mobile":"7","phantom":"1.9","rhino":"1.7.13","safari":"1.0","samsung":"1.0"},"web.url":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"57","ios":"14.0","node":"10.0","opera":"54","opera_mobile":"48","safari":"14.0","samsung":"9.0"},"web.url.to-json":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"57","ios":"14.0","node":"10.0","opera":"58","opera_mobile":"50","safari":"14.0","samsung":"10.0"},"web.url-search-params":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"57","ios":"14.0","node":"10.0","opera":"54","opera_mobile":"48","safari":"14.0","samsung":"9.0"}}')},2856:e=>{"use strict";e.exports=JSON.parse('{"core-js":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/actual":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.global-this","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.string.match-all","esnext.string.replace-all","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/actual/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/actual/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","es.string.iterator","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/actual/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/actual/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/actual/array-buffer/slice":["es.array-buffer.slice"],"core-js/actual/array/at":["es.array.at"],"core-js/actual/array/concat":["es.array.concat"],"core-js/actual/array/copy-within":["es.array.copy-within"],"core-js/actual/array/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/every":["es.array.every"],"core-js/actual/array/fill":["es.array.fill"],"core-js/actual/array/filter":["es.array.filter"],"core-js/actual/array/find":["es.array.find"],"core-js/actual/array/find-index":["es.array.find-index"],"core-js/actual/array/find-last":["esnext.array.find-last"],"core-js/actual/array/find-last-index":["esnext.array.find-last-index"],"core-js/actual/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/for-each":["es.array.for-each"],"core-js/actual/array/from":["es.array.from","es.string.iterator"],"core-js/actual/array/group-by":["esnext.array.group-by"],"core-js/actual/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/includes":["es.array.includes"],"core-js/actual/array/index-of":["es.array.index-of"],"core-js/actual/array/is-array":["es.array.is-array"],"core-js/actual/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/join":["es.array.join"],"core-js/actual/array/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/last-index-of":["es.array.last-index-of"],"core-js/actual/array/map":["es.array.map"],"core-js/actual/array/of":["es.array.of"],"core-js/actual/array/reduce":["es.array.reduce"],"core-js/actual/array/reduce-right":["es.array.reduce-right"],"core-js/actual/array/reverse":["es.array.reverse"],"core-js/actual/array/slice":["es.array.slice"],"core-js/actual/array/some":["es.array.some"],"core-js/actual/array/sort":["es.array.sort"],"core-js/actual/array/splice":["es.array.splice"],"core-js/actual/array/to-reversed":["esnext.array.to-reversed"],"core-js/actual/array/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/actual/array/to-spliced":["esnext.array.to-spliced"],"core-js/actual/array/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array/virtual/at":["es.array.at"],"core-js/actual/array/virtual/concat":["es.array.concat"],"core-js/actual/array/virtual/copy-within":["es.array.copy-within"],"core-js/actual/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/every":["es.array.every"],"core-js/actual/array/virtual/fill":["es.array.fill"],"core-js/actual/array/virtual/filter":["es.array.filter"],"core-js/actual/array/virtual/find":["es.array.find"],"core-js/actual/array/virtual/find-index":["es.array.find-index"],"core-js/actual/array/virtual/find-last":["esnext.array.find-last"],"core-js/actual/array/virtual/find-last-index":["esnext.array.find-last-index"],"core-js/actual/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/virtual/for-each":["es.array.for-each"],"core-js/actual/array/virtual/group-by":["esnext.array.group-by"],"core-js/actual/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/virtual/includes":["es.array.includes"],"core-js/actual/array/virtual/index-of":["es.array.index-of"],"core-js/actual/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/join":["es.array.join"],"core-js/actual/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/actual/array/virtual/map":["es.array.map"],"core-js/actual/array/virtual/reduce":["es.array.reduce"],"core-js/actual/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/actual/array/virtual/reverse":["es.array.reverse"],"core-js/actual/array/virtual/slice":["es.array.slice"],"core-js/actual/array/virtual/some":["es.array.some"],"core-js/actual/array/virtual/sort":["es.array.sort"],"core-js/actual/array/virtual/splice":["es.array.splice"],"core-js/actual/array/virtual/to-reversed":["esnext.array.to-reversed"],"core-js/actual/array/virtual/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/actual/array/virtual/to-spliced":["esnext.array.to-spliced"],"core-js/actual/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/with":["esnext.array.with"],"core-js/actual/array/with":["esnext.array.with"],"core-js/actual/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/clear-immediate":["web.immediate"],"core-js/actual/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/actual/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/actual/date/get-year":["es.date.get-year"],"core-js/actual/date/now":["es.date.now"],"core-js/actual/date/set-year":["es.date.set-year"],"core-js/actual/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/actual/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/actual/date/to-json":["es.date.to-json"],"core-js/actual/date/to-primitive":["es.date.to-primitive"],"core-js/actual/date/to-string":["es.date.to-string"],"core-js/actual/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/actual/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/actual/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/actual/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/actual/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/actual/error":["es.error.cause","es.error.to-string"],"core-js/actual/error/constructor":["es.error.cause"],"core-js/actual/error/to-string":["es.error.to-string"],"core-js/actual/escape":["es.escape"],"core-js/actual/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/actual/function/bind":["es.function.bind"],"core-js/actual/function/has-instance":["es.function.has-instance"],"core-js/actual/function/name":["es.function.name"],"core-js/actual/function/virtual":["es.function.bind"],"core-js/actual/function/virtual/bind":["es.function.bind"],"core-js/actual/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/global-this":["es.global-this"],"core-js/actual/instance/at":["es.array.at","es.string.at-alternative"],"core-js/actual/instance/bind":["es.function.bind"],"core-js/actual/instance/code-point-at":["es.string.code-point-at"],"core-js/actual/instance/concat":["es.array.concat"],"core-js/actual/instance/copy-within":["es.array.copy-within"],"core-js/actual/instance/ends-with":["es.string.ends-with"],"core-js/actual/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/every":["es.array.every"],"core-js/actual/instance/fill":["es.array.fill"],"core-js/actual/instance/filter":["es.array.filter"],"core-js/actual/instance/find":["es.array.find"],"core-js/actual/instance/find-index":["es.array.find-index"],"core-js/actual/instance/find-last":["esnext.array.find-last"],"core-js/actual/instance/find-last-index":["esnext.array.find-last-index"],"core-js/actual/instance/flags":["es.regexp.flags"],"core-js/actual/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/actual/instance/group-by":["esnext.array.group-by"],"core-js/actual/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/instance/includes":["es.array.includes","es.string.includes"],"core-js/actual/instance/index-of":["es.array.index-of"],"core-js/actual/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/last-index-of":["es.array.last-index-of"],"core-js/actual/instance/map":["es.array.map"],"core-js/actual/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/instance/pad-end":["es.string.pad-end"],"core-js/actual/instance/pad-start":["es.string.pad-start"],"core-js/actual/instance/reduce":["es.array.reduce"],"core-js/actual/instance/reduce-right":["es.array.reduce-right"],"core-js/actual/instance/repeat":["es.string.repeat"],"core-js/actual/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/instance/reverse":["es.array.reverse"],"core-js/actual/instance/slice":["es.array.slice"],"core-js/actual/instance/some":["es.array.some"],"core-js/actual/instance/sort":["es.array.sort"],"core-js/actual/instance/splice":["es.array.splice"],"core-js/actual/instance/starts-with":["es.string.starts-with"],"core-js/actual/instance/to-reversed":["esnext.array.to-reversed"],"core-js/actual/instance/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/actual/instance/to-spliced":["esnext.array.to-spliced"],"core-js/actual/instance/trim":["es.string.trim"],"core-js/actual/instance/trim-end":["es.string.trim-end"],"core-js/actual/instance/trim-left":["es.string.trim-start"],"core-js/actual/instance/trim-right":["es.string.trim-end"],"core-js/actual/instance/trim-start":["es.string.trim-start"],"core-js/actual/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/with":["esnext.array.with"],"core-js/actual/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/json":["es.json.stringify","es.json.to-string-tag"],"core-js/actual/json/stringify":["es.json.stringify"],"core-js/actual/json/to-string-tag":["es.json.to-string-tag"],"core-js/actual/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/actual/math/acosh":["es.math.acosh"],"core-js/actual/math/asinh":["es.math.asinh"],"core-js/actual/math/atanh":["es.math.atanh"],"core-js/actual/math/cbrt":["es.math.cbrt"],"core-js/actual/math/clz32":["es.math.clz32"],"core-js/actual/math/cosh":["es.math.cosh"],"core-js/actual/math/expm1":["es.math.expm1"],"core-js/actual/math/fround":["es.math.fround"],"core-js/actual/math/hypot":["es.math.hypot"],"core-js/actual/math/imul":["es.math.imul"],"core-js/actual/math/log10":["es.math.log10"],"core-js/actual/math/log1p":["es.math.log1p"],"core-js/actual/math/log2":["es.math.log2"],"core-js/actual/math/sign":["es.math.sign"],"core-js/actual/math/sinh":["es.math.sinh"],"core-js/actual/math/tanh":["es.math.tanh"],"core-js/actual/math/to-string-tag":["es.math.to-string-tag"],"core-js/actual/math/trunc":["es.math.trunc"],"core-js/actual/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/constructor":["es.number.constructor"],"core-js/actual/number/epsilon":["es.number.epsilon"],"core-js/actual/number/is-finite":["es.number.is-finite"],"core-js/actual/number/is-integer":["es.number.is-integer"],"core-js/actual/number/is-nan":["es.number.is-nan"],"core-js/actual/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/actual/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/actual/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/actual/number/parse-float":["es.number.parse-float"],"core-js/actual/number/parse-int":["es.number.parse-int"],"core-js/actual/number/to-exponential":["es.number.to-exponential"],"core-js/actual/number/to-fixed":["es.number.to-fixed"],"core-js/actual/number/to-precision":["es.number.to-precision"],"core-js/actual/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/actual/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/actual/number/virtual/to-precision":["es.number.to-precision"],"core-js/actual/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/actual/object/assign":["es.object.assign"],"core-js/actual/object/create":["es.object.create"],"core-js/actual/object/define-getter":["es.object.define-getter"],"core-js/actual/object/define-properties":["es.object.define-properties"],"core-js/actual/object/define-property":["es.object.define-property"],"core-js/actual/object/define-setter":["es.object.define-setter"],"core-js/actual/object/entries":["es.object.entries"],"core-js/actual/object/freeze":["es.object.freeze"],"core-js/actual/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/actual/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/actual/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/actual/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/actual/object/get-own-property-symbols":["es.symbol"],"core-js/actual/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/actual/object/has-own":["es.object.has-own"],"core-js/actual/object/is":["es.object.is"],"core-js/actual/object/is-extensible":["es.object.is-extensible"],"core-js/actual/object/is-frozen":["es.object.is-frozen"],"core-js/actual/object/is-sealed":["es.object.is-sealed"],"core-js/actual/object/keys":["es.object.keys"],"core-js/actual/object/lookup-getter":["es.object.lookup-getter"],"core-js/actual/object/lookup-setter":["es.object.lookup-setter"],"core-js/actual/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/actual/object/seal":["es.object.seal"],"core-js/actual/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/actual/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/object/values":["es.object.values"],"core-js/actual/parse-float":["es.parse-float"],"core-js/actual/parse-int":["es.parse-int"],"core-js/actual/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/actual/queue-microtask":["web.queue-microtask"],"core-js/actual/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/actual/reflect/apply":["es.reflect.apply"],"core-js/actual/reflect/construct":["es.reflect.construct"],"core-js/actual/reflect/define-property":["es.reflect.define-property"],"core-js/actual/reflect/delete-property":["es.reflect.delete-property"],"core-js/actual/reflect/get":["es.reflect.get"],"core-js/actual/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/actual/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/actual/reflect/has":["es.reflect.has"],"core-js/actual/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/actual/reflect/own-keys":["es.reflect.own-keys"],"core-js/actual/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/actual/reflect/set":["es.reflect.set"],"core-js/actual/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/actual/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/actual/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/actual/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/actual/regexp/flags":["es.regexp.flags"],"core-js/actual/regexp/match":["es.regexp.exec","es.string.match"],"core-js/actual/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/regexp/search":["es.regexp.exec","es.string.search"],"core-js/actual/regexp/split":["es.regexp.exec","es.string.split"],"core-js/actual/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/actual/regexp/to-string":["es.regexp.to-string"],"core-js/actual/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/set-immediate":["web.immediate"],"core-js/actual/set-interval":["web.timers"],"core-js/actual/set-timeout":["web.timers"],"core-js/actual/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/actual/string/anchor":["es.string.anchor"],"core-js/actual/string/at":["es.string.at-alternative"],"core-js/actual/string/big":["es.string.big"],"core-js/actual/string/blink":["es.string.blink"],"core-js/actual/string/bold":["es.string.bold"],"core-js/actual/string/code-point-at":["es.string.code-point-at"],"core-js/actual/string/ends-with":["es.string.ends-with"],"core-js/actual/string/fixed":["es.string.fixed"],"core-js/actual/string/fontcolor":["es.string.fontcolor"],"core-js/actual/string/fontsize":["es.string.fontsize"],"core-js/actual/string/from-code-point":["es.string.from-code-point"],"core-js/actual/string/includes":["es.string.includes"],"core-js/actual/string/italics":["es.string.italics"],"core-js/actual/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/link":["es.string.link"],"core-js/actual/string/match":["es.regexp.exec","es.string.match"],"core-js/actual/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/pad-end":["es.string.pad-end"],"core-js/actual/string/pad-start":["es.string.pad-start"],"core-js/actual/string/raw":["es.string.raw"],"core-js/actual/string/repeat":["es.string.repeat"],"core-js/actual/string/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/search":["es.regexp.exec","es.string.search"],"core-js/actual/string/small":["es.string.small"],"core-js/actual/string/split":["es.regexp.exec","es.string.split"],"core-js/actual/string/starts-with":["es.string.starts-with"],"core-js/actual/string/strike":["es.string.strike"],"core-js/actual/string/sub":["es.string.sub"],"core-js/actual/string/substr":["es.string.substr"],"core-js/actual/string/sup":["es.string.sup"],"core-js/actual/string/trim":["es.string.trim"],"core-js/actual/string/trim-end":["es.string.trim-end"],"core-js/actual/string/trim-left":["es.string.trim-start"],"core-js/actual/string/trim-right":["es.string.trim-end"],"core-js/actual/string/trim-start":["es.string.trim-start"],"core-js/actual/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/actual/string/virtual/anchor":["es.string.anchor"],"core-js/actual/string/virtual/at":["es.string.at-alternative"],"core-js/actual/string/virtual/big":["es.string.big"],"core-js/actual/string/virtual/blink":["es.string.blink"],"core-js/actual/string/virtual/bold":["es.string.bold"],"core-js/actual/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/actual/string/virtual/ends-with":["es.string.ends-with"],"core-js/actual/string/virtual/fixed":["es.string.fixed"],"core-js/actual/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/actual/string/virtual/fontsize":["es.string.fontsize"],"core-js/actual/string/virtual/includes":["es.string.includes"],"core-js/actual/string/virtual/italics":["es.string.italics"],"core-js/actual/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/virtual/link":["es.string.link"],"core-js/actual/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/virtual/pad-end":["es.string.pad-end"],"core-js/actual/string/virtual/pad-start":["es.string.pad-start"],"core-js/actual/string/virtual/repeat":["es.string.repeat"],"core-js/actual/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/virtual/small":["es.string.small"],"core-js/actual/string/virtual/starts-with":["es.string.starts-with"],"core-js/actual/string/virtual/strike":["es.string.strike"],"core-js/actual/string/virtual/sub":["es.string.sub"],"core-js/actual/string/virtual/substr":["es.string.substr"],"core-js/actual/string/virtual/sup":["es.string.sup"],"core-js/actual/string/virtual/trim":["es.string.trim"],"core-js/actual/string/virtual/trim-end":["es.string.trim-end"],"core-js/actual/string/virtual/trim-left":["es.string.trim-start"],"core-js/actual/string/virtual/trim-right":["es.string.trim-end"],"core-js/actual/string/virtual/trim-start":["es.string.trim-start"],"core-js/actual/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/actual/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/actual/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/actual/symbol/description":["es.symbol.description"],"core-js/actual/symbol/for":["es.symbol"],"core-js/actual/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/actual/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/actual/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/symbol/key-for":["es.symbol"],"core-js/actual/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/actual/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/actual/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/actual/symbol/species":["es.symbol.species"],"core-js/actual/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/actual/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/actual/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/symbol/unscopables":["es.symbol.unscopables"],"core-js/actual/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/at":["es.typed-array.every"],"core-js/actual/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/actual/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/every":["es.typed-array.every"],"core-js/actual/typed-array/fill":["es.typed-array.fill"],"core-js/actual/typed-array/filter":["es.typed-array.filter"],"core-js/actual/typed-array/find":["es.typed-array.find"],"core-js/actual/typed-array/find-index":["es.typed-array.find-index"],"core-js/actual/typed-array/find-last":["esnext.typed-array.find-last"],"core-js/actual/typed-array/find-last-index":["esnext.typed-array.find-last-index"],"core-js/actual/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/for-each":["es.typed-array.for-each"],"core-js/actual/typed-array/from":["es.typed-array.from"],"core-js/actual/typed-array/includes":["es.typed-array.includes"],"core-js/actual/typed-array/index-of":["es.typed-array.index-of"],"core-js/actual/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/join":["es.typed-array.join"],"core-js/actual/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/actual/typed-array/map":["es.typed-array.map"],"core-js/actual/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/of":["es.typed-array.of"],"core-js/actual/typed-array/reduce":["es.typed-array.reduce"],"core-js/actual/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/actual/typed-array/reverse":["es.typed-array.reverse"],"core-js/actual/typed-array/set":["es.typed-array.set"],"core-js/actual/typed-array/slice":["es.typed-array.slice"],"core-js/actual/typed-array/some":["es.typed-array.some"],"core-js/actual/typed-array/sort":["es.typed-array.sort"],"core-js/actual/typed-array/subarray":["es.typed-array.subarray"],"core-js/actual/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/actual/typed-array/to-reversed":["esnext.typed-array.to-reversed"],"core-js/actual/typed-array/to-sorted":["es.typed-array.sort","esnext.typed-array.to-sorted"],"core-js/actual/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/actual/typed-array/to-string":["es.typed-array.to-string"],"core-js/actual/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/with":["esnext.typed-array.with"],"core-js/actual/unescape":["es.unescape"],"core-js/actual/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/actual/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/actual/url/to-json":["web.url.to-json"],"core-js/actual/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","web.dom-collections.iterator"],"core-js/actual/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/es":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set"],"core-js/es/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator"],"core-js/es/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string","es.string.iterator"],"core-js/es/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/es/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/es/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/es/array-buffer/slice":["es.array-buffer.slice"],"core-js/es/array/at":["es.array.at"],"core-js/es/array/concat":["es.array.concat"],"core-js/es/array/copy-within":["es.array.copy-within"],"core-js/es/array/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/every":["es.array.every"],"core-js/es/array/fill":["es.array.fill"],"core-js/es/array/filter":["es.array.filter"],"core-js/es/array/find":["es.array.find"],"core-js/es/array/find-index":["es.array.find-index"],"core-js/es/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/for-each":["es.array.for-each"],"core-js/es/array/from":["es.array.from","es.string.iterator"],"core-js/es/array/includes":["es.array.includes"],"core-js/es/array/index-of":["es.array.index-of"],"core-js/es/array/is-array":["es.array.is-array"],"core-js/es/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/join":["es.array.join"],"core-js/es/array/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/last-index-of":["es.array.last-index-of"],"core-js/es/array/map":["es.array.map"],"core-js/es/array/of":["es.array.of"],"core-js/es/array/reduce":["es.array.reduce"],"core-js/es/array/reduce-right":["es.array.reduce-right"],"core-js/es/array/reverse":["es.array.reverse"],"core-js/es/array/slice":["es.array.slice"],"core-js/es/array/some":["es.array.some"],"core-js/es/array/sort":["es.array.sort"],"core-js/es/array/splice":["es.array.splice"],"core-js/es/array/values":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string"],"core-js/es/array/virtual/at":["es.array.at"],"core-js/es/array/virtual/concat":["es.array.concat"],"core-js/es/array/virtual/copy-within":["es.array.copy-within"],"core-js/es/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/every":["es.array.every"],"core-js/es/array/virtual/fill":["es.array.fill"],"core-js/es/array/virtual/filter":["es.array.filter"],"core-js/es/array/virtual/find":["es.array.find"],"core-js/es/array/virtual/find-index":["es.array.find-index"],"core-js/es/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/virtual/for-each":["es.array.for-each"],"core-js/es/array/virtual/includes":["es.array.includes"],"core-js/es/array/virtual/index-of":["es.array.index-of"],"core-js/es/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/join":["es.array.join"],"core-js/es/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/es/array/virtual/map":["es.array.map"],"core-js/es/array/virtual/reduce":["es.array.reduce"],"core-js/es/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/es/array/virtual/reverse":["es.array.reverse"],"core-js/es/array/virtual/slice":["es.array.slice"],"core-js/es/array/virtual/some":["es.array.some"],"core-js/es/array/virtual/sort":["es.array.sort"],"core-js/es/array/virtual/splice":["es.array.splice"],"core-js/es/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/es/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/es/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/es/date/get-year":["es.date.get-year"],"core-js/es/date/now":["es.date.now"],"core-js/es/date/set-year":["es.date.set-year"],"core-js/es/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/es/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/es/date/to-json":["es.date.to-json"],"core-js/es/date/to-primitive":["es.date.to-primitive"],"core-js/es/date/to-string":["es.date.to-string"],"core-js/es/error":["es.error.cause","es.error.to-string"],"core-js/es/error/constructor":["es.error.cause"],"core-js/es/error/to-string":["es.error.to-string"],"core-js/es/escape":["es.escape"],"core-js/es/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/es/function/bind":["es.function.bind"],"core-js/es/function/has-instance":["es.function.has-instance"],"core-js/es/function/name":["es.function.name"],"core-js/es/function/virtual":["es.function.bind"],"core-js/es/function/virtual/bind":["es.function.bind"],"core-js/es/get-iterator":["es.array.iterator","es.string.iterator"],"core-js/es/get-iterator-method":["es.array.iterator","es.string.iterator"],"core-js/es/global-this":["es.global-this"],"core-js/es/instance/at":["es.array.at","es.string.at-alternative"],"core-js/es/instance/bind":["es.function.bind"],"core-js/es/instance/code-point-at":["es.string.code-point-at"],"core-js/es/instance/concat":["es.array.concat"],"core-js/es/instance/copy-within":["es.array.copy-within"],"core-js/es/instance/ends-with":["es.string.ends-with"],"core-js/es/instance/entries":["es.array.iterator","es.object.to-string"],"core-js/es/instance/every":["es.array.every"],"core-js/es/instance/fill":["es.array.fill"],"core-js/es/instance/filter":["es.array.filter"],"core-js/es/instance/find":["es.array.find"],"core-js/es/instance/find-index":["es.array.find-index"],"core-js/es/instance/flags":["es.regexp.flags"],"core-js/es/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/instance/for-each":["es.array.for-each"],"core-js/es/instance/includes":["es.array.includes","es.string.includes"],"core-js/es/instance/index-of":["es.array.index-of"],"core-js/es/instance/keys":["es.array.iterator","es.object.to-string"],"core-js/es/instance/last-index-of":["es.array.last-index-of"],"core-js/es/instance/map":["es.array.map"],"core-js/es/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/instance/pad-end":["es.string.pad-end"],"core-js/es/instance/pad-start":["es.string.pad-start"],"core-js/es/instance/reduce":["es.array.reduce"],"core-js/es/instance/reduce-right":["es.array.reduce-right"],"core-js/es/instance/repeat":["es.string.repeat"],"core-js/es/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/instance/reverse":["es.array.reverse"],"core-js/es/instance/slice":["es.array.slice"],"core-js/es/instance/some":["es.array.some"],"core-js/es/instance/sort":["es.array.sort"],"core-js/es/instance/splice":["es.array.splice"],"core-js/es/instance/starts-with":["es.string.starts-with"],"core-js/es/instance/trim":["es.string.trim"],"core-js/es/instance/trim-end":["es.string.trim-end"],"core-js/es/instance/trim-left":["es.string.trim-start"],"core-js/es/instance/trim-right":["es.string.trim-end"],"core-js/es/instance/trim-start":["es.string.trim-start"],"core-js/es/instance/values":["es.array.iterator","es.object.to-string"],"core-js/es/is-iterable":["es.array.iterator","es.string.iterator"],"core-js/es/json":["es.json.stringify","es.json.to-string-tag"],"core-js/es/json/stringify":["es.json.stringify"],"core-js/es/json/to-string-tag":["es.json.to-string-tag"],"core-js/es/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator"],"core-js/es/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/es/math/acosh":["es.math.acosh"],"core-js/es/math/asinh":["es.math.asinh"],"core-js/es/math/atanh":["es.math.atanh"],"core-js/es/math/cbrt":["es.math.cbrt"],"core-js/es/math/clz32":["es.math.clz32"],"core-js/es/math/cosh":["es.math.cosh"],"core-js/es/math/expm1":["es.math.expm1"],"core-js/es/math/fround":["es.math.fround"],"core-js/es/math/hypot":["es.math.hypot"],"core-js/es/math/imul":["es.math.imul"],"core-js/es/math/log10":["es.math.log10"],"core-js/es/math/log1p":["es.math.log1p"],"core-js/es/math/log2":["es.math.log2"],"core-js/es/math/sign":["es.math.sign"],"core-js/es/math/sinh":["es.math.sinh"],"core-js/es/math/tanh":["es.math.tanh"],"core-js/es/math/to-string-tag":["es.math.to-string-tag"],"core-js/es/math/trunc":["es.math.trunc"],"core-js/es/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/constructor":["es.number.constructor"],"core-js/es/number/epsilon":["es.number.epsilon"],"core-js/es/number/is-finite":["es.number.is-finite"],"core-js/es/number/is-integer":["es.number.is-integer"],"core-js/es/number/is-nan":["es.number.is-nan"],"core-js/es/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/es/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/es/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/es/number/parse-float":["es.number.parse-float"],"core-js/es/number/parse-int":["es.number.parse-int"],"core-js/es/number/to-exponential":["es.number.to-exponential"],"core-js/es/number/to-fixed":["es.number.to-fixed"],"core-js/es/number/to-precision":["es.number.to-precision"],"core-js/es/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/es/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/es/number/virtual/to-precision":["es.number.to-precision"],"core-js/es/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag"],"core-js/es/object/assign":["es.object.assign"],"core-js/es/object/create":["es.object.create"],"core-js/es/object/define-getter":["es.object.define-getter"],"core-js/es/object/define-properties":["es.object.define-properties"],"core-js/es/object/define-property":["es.object.define-property"],"core-js/es/object/define-setter":["es.object.define-setter"],"core-js/es/object/entries":["es.object.entries"],"core-js/es/object/freeze":["es.object.freeze"],"core-js/es/object/from-entries":["es.array.iterator","es.object.from-entries"],"core-js/es/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/es/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/es/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/es/object/get-own-property-symbols":["es.symbol"],"core-js/es/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/es/object/has-own":["es.object.has-own"],"core-js/es/object/is":["es.object.is"],"core-js/es/object/is-extensible":["es.object.is-extensible"],"core-js/es/object/is-frozen":["es.object.is-frozen"],"core-js/es/object/is-sealed":["es.object.is-sealed"],"core-js/es/object/keys":["es.object.keys"],"core-js/es/object/lookup-getter":["es.object.lookup-getter"],"core-js/es/object/lookup-setter":["es.object.lookup-setter"],"core-js/es/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/es/object/seal":["es.object.seal"],"core-js/es/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/es/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/object/values":["es.object.values"],"core-js/es/parse-float":["es.parse-float"],"core-js/es/parse-int":["es.parse-int"],"core-js/es/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator"],"core-js/es/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator"],"core-js/es/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator"],"core-js/es/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/es/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/es/reflect/apply":["es.reflect.apply"],"core-js/es/reflect/construct":["es.reflect.construct"],"core-js/es/reflect/define-property":["es.reflect.define-property"],"core-js/es/reflect/delete-property":["es.reflect.delete-property"],"core-js/es/reflect/get":["es.reflect.get"],"core-js/es/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/es/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/es/reflect/has":["es.reflect.has"],"core-js/es/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/es/reflect/own-keys":["es.reflect.own-keys"],"core-js/es/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/es/reflect/set":["es.reflect.set"],"core-js/es/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/es/reflect/to-string-tag":["es.object.to-string","es.reflect.to-string-tag"],"core-js/es/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/es/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/es/regexp/flags":["es.regexp.flags"],"core-js/es/regexp/match":["es.regexp.exec","es.string.match"],"core-js/es/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/es/regexp/search":["es.regexp.exec","es.string.search"],"core-js/es/regexp/split":["es.regexp.exec","es.string.split"],"core-js/es/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/es/regexp/to-string":["es.regexp.to-string"],"core-js/es/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator"],"core-js/es/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/anchor":["es.string.anchor"],"core-js/es/string/at":["es.string.at-alternative"],"core-js/es/string/big":["es.string.big"],"core-js/es/string/blink":["es.string.blink"],"core-js/es/string/bold":["es.string.bold"],"core-js/es/string/code-point-at":["es.string.code-point-at"],"core-js/es/string/ends-with":["es.string.ends-with"],"core-js/es/string/fixed":["es.string.fixed"],"core-js/es/string/fontcolor":["es.string.fontcolor"],"core-js/es/string/fontsize":["es.string.fontsize"],"core-js/es/string/from-code-point":["es.string.from-code-point"],"core-js/es/string/includes":["es.string.includes"],"core-js/es/string/italics":["es.string.italics"],"core-js/es/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/link":["es.string.link"],"core-js/es/string/match":["es.regexp.exec","es.string.match"],"core-js/es/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/pad-end":["es.string.pad-end"],"core-js/es/string/pad-start":["es.string.pad-start"],"core-js/es/string/raw":["es.string.raw"],"core-js/es/string/repeat":["es.string.repeat"],"core-js/es/string/replace":["es.regexp.exec","es.string.replace"],"core-js/es/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/search":["es.regexp.exec","es.string.search"],"core-js/es/string/small":["es.string.small"],"core-js/es/string/split":["es.regexp.exec","es.string.split"],"core-js/es/string/starts-with":["es.string.starts-with"],"core-js/es/string/strike":["es.string.strike"],"core-js/es/string/sub":["es.string.sub"],"core-js/es/string/substr":["es.string.substr"],"core-js/es/string/sup":["es.string.sup"],"core-js/es/string/trim":["es.string.trim"],"core-js/es/string/trim-end":["es.string.trim-end"],"core-js/es/string/trim-left":["es.string.trim-start"],"core-js/es/string/trim-right":["es.string.trim-end"],"core-js/es/string/trim-start":["es.string.trim-start"],"core-js/es/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/virtual/anchor":["es.string.anchor"],"core-js/es/string/virtual/at":["es.string.at-alternative"],"core-js/es/string/virtual/big":["es.string.big"],"core-js/es/string/virtual/blink":["es.string.blink"],"core-js/es/string/virtual/bold":["es.string.bold"],"core-js/es/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/es/string/virtual/ends-with":["es.string.ends-with"],"core-js/es/string/virtual/fixed":["es.string.fixed"],"core-js/es/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/es/string/virtual/fontsize":["es.string.fontsize"],"core-js/es/string/virtual/includes":["es.string.includes"],"core-js/es/string/virtual/italics":["es.string.italics"],"core-js/es/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/virtual/link":["es.string.link"],"core-js/es/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/virtual/pad-end":["es.string.pad-end"],"core-js/es/string/virtual/pad-start":["es.string.pad-start"],"core-js/es/string/virtual/repeat":["es.string.repeat"],"core-js/es/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/virtual/small":["es.string.small"],"core-js/es/string/virtual/starts-with":["es.string.starts-with"],"core-js/es/string/virtual/strike":["es.string.strike"],"core-js/es/string/virtual/sub":["es.string.sub"],"core-js/es/string/virtual/substr":["es.string.substr"],"core-js/es/string/virtual/sup":["es.string.sup"],"core-js/es/string/virtual/trim":["es.string.trim"],"core-js/es/string/virtual/trim-end":["es.string.trim-end"],"core-js/es/string/virtual/trim-left":["es.string.trim-start"],"core-js/es/string/virtual/trim-right":["es.string.trim-end"],"core-js/es/string/virtual/trim-start":["es.string.trim-start"],"core-js/es/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/es/symbol/description":["es.symbol.description"],"core-js/es/symbol/for":["es.symbol"],"core-js/es/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/es/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/es/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator"],"core-js/es/symbol/key-for":["es.symbol"],"core-js/es/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/es/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/es/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/es/symbol/species":["es.symbol.species"],"core-js/es/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/es/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/es/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/unscopables":["es.symbol.unscopables"],"core-js/es/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/at":["es.typed-array.at"],"core-js/es/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/es/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/every":["es.typed-array.every"],"core-js/es/typed-array/fill":["es.typed-array.fill"],"core-js/es/typed-array/filter":["es.typed-array.filter"],"core-js/es/typed-array/find":["es.typed-array.find"],"core-js/es/typed-array/find-index":["es.typed-array.find-index"],"core-js/es/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/for-each":["es.typed-array.for-each"],"core-js/es/typed-array/from":["es.typed-array.from"],"core-js/es/typed-array/includes":["es.typed-array.includes"],"core-js/es/typed-array/index-of":["es.typed-array.index-of"],"core-js/es/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/join":["es.typed-array.join"],"core-js/es/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/es/typed-array/map":["es.typed-array.map"],"core-js/es/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/of":["es.typed-array.of"],"core-js/es/typed-array/reduce":["es.typed-array.reduce"],"core-js/es/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/es/typed-array/reverse":["es.typed-array.reverse"],"core-js/es/typed-array/set":["es.typed-array.set"],"core-js/es/typed-array/slice":["es.typed-array.slice"],"core-js/es/typed-array/some":["es.typed-array.some"],"core-js/es/typed-array/sort":["es.typed-array.sort"],"core-js/es/typed-array/subarray":["es.typed-array.subarray"],"core-js/es/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/es/typed-array/to-string":["es.typed-array.to-string"],"core-js/es/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/es/unescape":["es.unescape"],"core-js/es/weak-map":["es.array.iterator","es.object.to-string","es.weak-map"],"core-js/es/weak-set":["es.array.iterator","es.object.to-string","es.weak-set"],"core-js/features":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/features/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/features/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/features/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/features/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/features/array-buffer/slice":["es.array-buffer.slice"],"core-js/features/array/at":["es.array.at","esnext.array.at"],"core-js/features/array/concat":["es.array.concat"],"core-js/features/array/copy-within":["es.array.copy-within"],"core-js/features/array/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/every":["es.array.every"],"core-js/features/array/fill":["es.array.fill"],"core-js/features/array/filter":["es.array.filter"],"core-js/features/array/filter-out":["esnext.array.filter-out"],"core-js/features/array/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/find":["es.array.find"],"core-js/features/array/find-index":["es.array.find-index"],"core-js/features/array/find-last":["esnext.array.find-last"],"core-js/features/array/find-last-index":["esnext.array.find-last-index"],"core-js/features/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/for-each":["es.array.for-each"],"core-js/features/array/from":["es.array.from","es.string.iterator"],"core-js/features/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async"],"core-js/features/array/group-by":["esnext.array.group-by"],"core-js/features/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/includes":["es.array.includes"],"core-js/features/array/index-of":["es.array.index-of"],"core-js/features/array/is-array":["es.array.is-array"],"core-js/features/array/is-template-object":["esnext.array.is-template-object"],"core-js/features/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/join":["es.array.join"],"core-js/features/array/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/last-index":["esnext.array.last-index"],"core-js/features/array/last-index-of":["es.array.last-index-of"],"core-js/features/array/last-item":["esnext.array.last-item"],"core-js/features/array/map":["es.array.map"],"core-js/features/array/of":["es.array.of"],"core-js/features/array/reduce":["es.array.reduce"],"core-js/features/array/reduce-right":["es.array.reduce-right"],"core-js/features/array/reverse":["es.array.reverse"],"core-js/features/array/slice":["es.array.slice"],"core-js/features/array/some":["es.array.some"],"core-js/features/array/sort":["es.array.sort"],"core-js/features/array/splice":["es.array.splice"],"core-js/features/array/to-reversed":["esnext.array.to-reversed"],"core-js/features/array/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/features/array/to-spliced":["esnext.array.to-spliced"],"core-js/features/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/features/array/virtual/concat":["es.array.concat"],"core-js/features/array/virtual/copy-within":["es.array.copy-within"],"core-js/features/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/every":["es.array.every"],"core-js/features/array/virtual/fill":["es.array.fill"],"core-js/features/array/virtual/filter":["es.array.filter"],"core-js/features/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/features/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/virtual/find":["es.array.find"],"core-js/features/array/virtual/find-index":["es.array.find-index"],"core-js/features/array/virtual/find-last":["esnext.array.find-last"],"core-js/features/array/virtual/find-last-index":["esnext.array.find-last-index"],"core-js/features/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/virtual/for-each":["es.array.for-each"],"core-js/features/array/virtual/group-by":["esnext.array.group-by"],"core-js/features/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/virtual/includes":["es.array.includes"],"core-js/features/array/virtual/index-of":["es.array.index-of"],"core-js/features/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/join":["es.array.join"],"core-js/features/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/features/array/virtual/map":["es.array.map"],"core-js/features/array/virtual/reduce":["es.array.reduce"],"core-js/features/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/features/array/virtual/reverse":["es.array.reverse"],"core-js/features/array/virtual/slice":["es.array.slice"],"core-js/features/array/virtual/some":["es.array.some"],"core-js/features/array/virtual/sort":["es.array.sort"],"core-js/features/array/virtual/splice":["es.array.splice"],"core-js/features/array/virtual/to-reversed":["esnext.array.to-reversed"],"core-js/features/array/virtual/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/features/array/virtual/to-spliced":["esnext.array.to-spliced"],"core-js/features/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/with":["esnext.array.with"],"core-js/features/array/with":["esnext.array.with"],"core-js/features/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/features/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/features/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/features/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/features/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/features/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/features/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/features/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/features/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.from","web.dom-collections.iterator"],"core-js/features/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/features/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/features/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/features/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/features/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/features/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/features/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/features/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/clear-immediate":["web.immediate"],"core-js/features/composite-key":["esnext.composite-key"],"core-js/features/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/features/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/features/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/features/date/get-year":["es.date.get-year"],"core-js/features/date/now":["es.date.now"],"core-js/features/date/set-year":["es.date.set-year"],"core-js/features/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/features/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/features/date/to-json":["es.date.to-json"],"core-js/features/date/to-primitive":["es.date.to-primitive"],"core-js/features/date/to-string":["es.date.to-string"],"core-js/features/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/features/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/features/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/features/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/features/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/features/error":["es.error.cause","es.error.to-string"],"core-js/features/error/constructor":["es.error.cause"],"core-js/features/error/to-string":["es.error.to-string"],"core-js/features/escape":["es.escape"],"core-js/features/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this"],"core-js/features/function/bind":["es.function.bind"],"core-js/features/function/has-instance":["es.function.has-instance"],"core-js/features/function/is-callable":["esnext.function.is-callable"],"core-js/features/function/is-constructor":["esnext.function.is-constructor"],"core-js/features/function/name":["es.function.name"],"core-js/features/function/un-this":["esnext.function.un-this"],"core-js/features/function/virtual":["es.function.bind","esnext.function.un-this"],"core-js/features/function/virtual/bind":["es.function.bind"],"core-js/features/function/virtual/un-this":["esnext.function.un-this"],"core-js/features/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/global-this":["es.global-this","esnext.global-this"],"core-js/features/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/features/instance/bind":["es.function.bind"],"core-js/features/instance/code-point-at":["es.string.code-point-at"],"core-js/features/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/instance/concat":["es.array.concat"],"core-js/features/instance/copy-within":["es.array.copy-within"],"core-js/features/instance/ends-with":["es.string.ends-with"],"core-js/features/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/every":["es.array.every"],"core-js/features/instance/fill":["es.array.fill"],"core-js/features/instance/filter":["es.array.filter"],"core-js/features/instance/filter-out":["esnext.array.filter-out"],"core-js/features/instance/filter-reject":["esnext.array.filter-reject"],"core-js/features/instance/find":["es.array.find"],"core-js/features/instance/find-index":["es.array.find-index"],"core-js/features/instance/find-last":["esnext.array.find-last"],"core-js/features/instance/find-last-index":["esnext.array.find-last-index"],"core-js/features/instance/flags":["es.regexp.flags"],"core-js/features/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/features/instance/group-by":["esnext.array.group-by"],"core-js/features/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/instance/includes":["es.array.includes","es.string.includes"],"core-js/features/instance/index-of":["es.array.index-of"],"core-js/features/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/last-index-of":["es.array.last-index-of"],"core-js/features/instance/map":["es.array.map"],"core-js/features/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/instance/pad-end":["es.string.pad-end"],"core-js/features/instance/pad-start":["es.string.pad-start"],"core-js/features/instance/reduce":["es.array.reduce"],"core-js/features/instance/reduce-right":["es.array.reduce-right"],"core-js/features/instance/repeat":["es.string.repeat"],"core-js/features/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/features/instance/reverse":["es.array.reverse"],"core-js/features/instance/slice":["es.array.slice"],"core-js/features/instance/some":["es.array.some"],"core-js/features/instance/sort":["es.array.sort"],"core-js/features/instance/splice":["es.array.splice"],"core-js/features/instance/starts-with":["es.string.starts-with"],"core-js/features/instance/to-reversed":["esnext.array.to-reversed"],"core-js/features/instance/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/features/instance/to-spliced":["esnext.array.to-spliced"],"core-js/features/instance/trim":["es.string.trim"],"core-js/features/instance/trim-end":["es.string.trim-end"],"core-js/features/instance/trim-left":["es.string.trim-start"],"core-js/features/instance/trim-right":["es.string.trim-end"],"core-js/features/instance/trim-start":["es.string.trim-start"],"core-js/features/instance/un-this":["esnext.function.un-this"],"core-js/features/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/with":["esnext.array.with"],"core-js/features/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/features/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/features/iterator/drop":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/features/iterator/every":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/features/iterator/filter":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/features/iterator/find":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/features/iterator/flat-map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map"],"core-js/features/iterator/for-each":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/features/iterator/from":["es.array.iterator","es.object.to-string","es.string.iterator","esnext.iterator.constructor","esnext.iterator.from","web.dom-collections.iterator"],"core-js/features/iterator/map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/features/iterator/reduce":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/features/iterator/some":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/features/iterator/take":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/features/iterator/to-array":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/features/iterator/to-async":["es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/features/json":["es.json.stringify","es.json.to-string-tag"],"core-js/features/json/stringify":["es.json.stringify"],"core-js/features/json/to-string-tag":["es.json.to-string-tag"],"core-js/features/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/features/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/features/map/emplace":["es.map","esnext.map.emplace"],"core-js/features/map/every":["es.map","esnext.map.every"],"core-js/features/map/filter":["es.map","esnext.map.filter"],"core-js/features/map/find":["es.map","esnext.map.find"],"core-js/features/map/find-key":["es.map","esnext.map.find-key"],"core-js/features/map/from":["es.array.iterator","es.map","es.string.iterator","esnext.map.from","web.dom-collections.iterator"],"core-js/features/map/group-by":["es.map","esnext.map.group-by"],"core-js/features/map/includes":["es.map","esnext.map.includes"],"core-js/features/map/key-by":["es.map","esnext.map.key-by"],"core-js/features/map/key-of":["es.map","esnext.map.key-of"],"core-js/features/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/features/map/map-values":["es.map","esnext.map.map-values"],"core-js/features/map/merge":["es.map","esnext.map.merge"],"core-js/features/map/of":["es.array.iterator","es.map","esnext.map.of"],"core-js/features/map/reduce":["es.map","esnext.map.reduce"],"core-js/features/map/some":["es.map","esnext.map.some"],"core-js/features/map/update":["es.map","esnext.map.update"],"core-js/features/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/features/map/upsert":["es.map","esnext.map.upsert"],"core-js/features/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh"],"core-js/features/math/acosh":["es.math.acosh"],"core-js/features/math/asinh":["es.math.asinh"],"core-js/features/math/atanh":["es.math.atanh"],"core-js/features/math/cbrt":["es.math.cbrt"],"core-js/features/math/clamp":["esnext.math.clamp"],"core-js/features/math/clz32":["es.math.clz32"],"core-js/features/math/cosh":["es.math.cosh"],"core-js/features/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/features/math/degrees":["esnext.math.degrees"],"core-js/features/math/expm1":["es.math.expm1"],"core-js/features/math/fround":["es.math.fround"],"core-js/features/math/fscale":["esnext.math.fscale"],"core-js/features/math/hypot":["es.math.hypot"],"core-js/features/math/iaddh":["esnext.math.iaddh"],"core-js/features/math/imul":["es.math.imul"],"core-js/features/math/imulh":["esnext.math.imulh"],"core-js/features/math/isubh":["esnext.math.isubh"],"core-js/features/math/log10":["es.math.log10"],"core-js/features/math/log1p":["es.math.log1p"],"core-js/features/math/log2":["es.math.log2"],"core-js/features/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/features/math/radians":["esnext.math.radians"],"core-js/features/math/scale":["esnext.math.scale"],"core-js/features/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/features/math/sign":["es.math.sign"],"core-js/features/math/signbit":["esnext.math.signbit"],"core-js/features/math/sinh":["es.math.sinh"],"core-js/features/math/tanh":["es.math.tanh"],"core-js/features/math/to-string-tag":["es.math.to-string-tag"],"core-js/features/math/trunc":["es.math.trunc"],"core-js/features/math/umulh":["esnext.math.umulh"],"core-js/features/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.from-string","esnext.number.range"],"core-js/features/number/constructor":["es.number.constructor"],"core-js/features/number/epsilon":["es.number.epsilon"],"core-js/features/number/from-string":["esnext.number.from-string"],"core-js/features/number/is-finite":["es.number.is-finite"],"core-js/features/number/is-integer":["es.number.is-integer"],"core-js/features/number/is-nan":["es.number.is-nan"],"core-js/features/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/features/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/features/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/features/number/parse-float":["es.number.parse-float"],"core-js/features/number/parse-int":["es.number.parse-int"],"core-js/features/number/range":["es.object.to-string","esnext.number.range"],"core-js/features/number/to-exponential":["es.number.to-exponential"],"core-js/features/number/to-fixed":["es.number.to-fixed"],"core-js/features/number/to-precision":["es.number.to-precision"],"core-js/features/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/features/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/features/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/features/number/virtual/to-precision":["es.number.to-precision"],"core-js/features/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","web.dom-collections.iterator"],"core-js/features/object/assign":["es.object.assign"],"core-js/features/object/create":["es.object.create"],"core-js/features/object/define-getter":["es.object.define-getter"],"core-js/features/object/define-properties":["es.object.define-properties"],"core-js/features/object/define-property":["es.object.define-property"],"core-js/features/object/define-setter":["es.object.define-setter"],"core-js/features/object/entries":["es.object.entries"],"core-js/features/object/freeze":["es.object.freeze"],"core-js/features/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/features/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/features/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/features/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/features/object/get-own-property-symbols":["es.symbol"],"core-js/features/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/features/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/features/object/is":["es.object.is"],"core-js/features/object/is-extensible":["es.object.is-extensible"],"core-js/features/object/is-frozen":["es.object.is-frozen"],"core-js/features/object/is-sealed":["es.object.is-sealed"],"core-js/features/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/features/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/features/object/iterate-values":["esnext.object.iterate-values"],"core-js/features/object/keys":["es.object.keys"],"core-js/features/object/lookup-getter":["es.object.lookup-getter"],"core-js/features/object/lookup-setter":["es.object.lookup-setter"],"core-js/features/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/features/object/seal":["es.object.seal"],"core-js/features/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/features/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/object/values":["es.object.values"],"core-js/features/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/features/parse-float":["es.parse-float"],"core-js/features/parse-int":["es.parse-int"],"core-js/features/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","web.dom-collections.iterator"],"core-js/features/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/features/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/features/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/features/promise/try":["es.promise","esnext.promise.try"],"core-js/features/queue-microtask":["web.queue-microtask"],"core-js/features/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/features/reflect/apply":["es.reflect.apply"],"core-js/features/reflect/construct":["es.reflect.construct"],"core-js/features/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/features/reflect/define-property":["es.reflect.define-property"],"core-js/features/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/features/reflect/delete-property":["es.reflect.delete-property"],"core-js/features/reflect/get":["es.reflect.get"],"core-js/features/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/features/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/features/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/features/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/features/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/features/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/features/reflect/has":["es.reflect.has"],"core-js/features/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/features/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/features/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/features/reflect/metadata":["esnext.reflect.metadata"],"core-js/features/reflect/own-keys":["es.reflect.own-keys"],"core-js/features/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/features/reflect/set":["es.reflect.set"],"core-js/features/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/features/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/features/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/features/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/features/regexp/flags":["es.regexp.flags"],"core-js/features/regexp/match":["es.regexp.exec","es.string.match"],"core-js/features/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/features/regexp/search":["es.regexp.exec","es.string.search"],"core-js/features/regexp/split":["es.regexp.exec","es.string.split"],"core-js/features/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/features/regexp/to-string":["es.regexp.to-string"],"core-js/features/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","web.dom-collections.iterator"],"core-js/features/set-immediate":["web.immediate"],"core-js/features/set-interval":["web.timers"],"core-js/features/set-timeout":["web.timers"],"core-js/features/set/add-all":["es.set","esnext.set.add-all"],"core-js/features/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/features/set/difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.difference","web.dom-collections.iterator"],"core-js/features/set/every":["es.set","esnext.set.every"],"core-js/features/set/filter":["es.set","esnext.set.filter"],"core-js/features/set/find":["es.set","esnext.set.find"],"core-js/features/set/from":["es.array.iterator","es.set","es.string.iterator","esnext.set.from","web.dom-collections.iterator"],"core-js/features/set/intersection":["es.array.iterator","es.set","es.string.iterator","esnext.set.intersection","web.dom-collections.iterator"],"core-js/features/set/is-disjoint-from":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/features/set/is-subset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/features/set/is-superset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/features/set/join":["es.set","esnext.set.join"],"core-js/features/set/map":["es.set","esnext.set.map"],"core-js/features/set/of":["es.array.iterator","es.set","esnext.set.of"],"core-js/features/set/reduce":["es.set","esnext.set.reduce"],"core-js/features/set/some":["es.set","esnext.set.some"],"core-js/features/set/symmetric-difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/features/set/union":["es.array.iterator","es.set","es.string.iterator","esnext.set.union","web.dom-collections.iterator"],"core-js/features/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/features/string/anchor":["es.string.anchor"],"core-js/features/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/big":["es.string.big"],"core-js/features/string/blink":["es.string.blink"],"core-js/features/string/bold":["es.string.bold"],"core-js/features/string/code-point-at":["es.string.code-point-at"],"core-js/features/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/cooked":["esnext.string.cooked"],"core-js/features/string/ends-with":["es.string.ends-with"],"core-js/features/string/fixed":["es.string.fixed"],"core-js/features/string/fontcolor":["es.string.fontcolor"],"core-js/features/string/fontsize":["es.string.fontsize"],"core-js/features/string/from-code-point":["es.string.from-code-point"],"core-js/features/string/includes":["es.string.includes"],"core-js/features/string/italics":["es.string.italics"],"core-js/features/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/link":["es.string.link"],"core-js/features/string/match":["es.regexp.exec","es.string.match"],"core-js/features/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/pad-end":["es.string.pad-end"],"core-js/features/string/pad-start":["es.string.pad-start"],"core-js/features/string/raw":["es.string.raw"],"core-js/features/string/repeat":["es.string.repeat"],"core-js/features/string/replace":["es.regexp.exec","es.string.replace"],"core-js/features/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/search":["es.regexp.exec","es.string.search"],"core-js/features/string/small":["es.string.small"],"core-js/features/string/split":["es.regexp.exec","es.string.split"],"core-js/features/string/starts-with":["es.string.starts-with"],"core-js/features/string/strike":["es.string.strike"],"core-js/features/string/sub":["es.string.sub"],"core-js/features/string/substr":["es.string.substr"],"core-js/features/string/sup":["es.string.sup"],"core-js/features/string/trim":["es.string.trim"],"core-js/features/string/trim-end":["es.string.trim-end"],"core-js/features/string/trim-left":["es.string.trim-start"],"core-js/features/string/trim-right":["es.string.trim-end"],"core-js/features/string/trim-start":["es.string.trim-start"],"core-js/features/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/features/string/virtual/anchor":["es.string.anchor"],"core-js/features/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/virtual/big":["es.string.big"],"core-js/features/string/virtual/blink":["es.string.blink"],"core-js/features/string/virtual/bold":["es.string.bold"],"core-js/features/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/features/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/virtual/ends-with":["es.string.ends-with"],"core-js/features/string/virtual/fixed":["es.string.fixed"],"core-js/features/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/features/string/virtual/fontsize":["es.string.fontsize"],"core-js/features/string/virtual/includes":["es.string.includes"],"core-js/features/string/virtual/italics":["es.string.italics"],"core-js/features/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/virtual/link":["es.string.link"],"core-js/features/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/virtual/pad-end":["es.string.pad-end"],"core-js/features/string/virtual/pad-start":["es.string.pad-start"],"core-js/features/string/virtual/repeat":["es.string.repeat"],"core-js/features/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/virtual/small":["es.string.small"],"core-js/features/string/virtual/starts-with":["es.string.starts-with"],"core-js/features/string/virtual/strike":["es.string.strike"],"core-js/features/string/virtual/sub":["es.string.sub"],"core-js/features/string/virtual/substr":["es.string.substr"],"core-js/features/string/virtual/sup":["es.string.sup"],"core-js/features/string/virtual/trim":["es.string.trim"],"core-js/features/string/virtual/trim-end":["es.string.trim-end"],"core-js/features/string/virtual/trim-left":["es.string.trim-start"],"core-js/features/string/virtual/trim-right":["es.string.trim-end"],"core-js/features/string/virtual/trim-start":["es.string.trim-start"],"core-js/features/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/features/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/features/symbol/async-dispose":["esnext.symbol.async-dispose"],"core-js/features/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/features/symbol/description":["es.symbol.description"],"core-js/features/symbol/dispose":["esnext.symbol.dispose"],"core-js/features/symbol/for":["es.symbol"],"core-js/features/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/features/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/features/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/features/symbol/key-for":["es.symbol"],"core-js/features/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/features/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/features/symbol/matcher":["esnext.symbol.matcher"],"core-js/features/symbol/metadata":["esnext.symbol.metadata"],"core-js/features/symbol/observable":["esnext.symbol.observable"],"core-js/features/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/features/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/features/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/features/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/features/symbol/species":["es.symbol.species"],"core-js/features/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/features/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/features/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/symbol/unscopables":["es.symbol.unscopables"],"core-js/features/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/at":["es.typed-array.every","esnext.typed-array.at"],"core-js/features/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/features/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/every":["es.typed-array.every"],"core-js/features/typed-array/fill":["es.typed-array.fill"],"core-js/features/typed-array/filter":["es.typed-array.filter"],"core-js/features/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/features/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/features/typed-array/find":["es.typed-array.find"],"core-js/features/typed-array/find-index":["es.typed-array.find-index"],"core-js/features/typed-array/find-last":["esnext.typed-array.find-last"],"core-js/features/typed-array/find-last-index":["esnext.typed-array.find-last-index"],"core-js/features/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/for-each":["es.typed-array.for-each"],"core-js/features/typed-array/from":["es.typed-array.from"],"core-js/features/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/features/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/features/typed-array/includes":["es.typed-array.includes"],"core-js/features/typed-array/index-of":["es.typed-array.index-of"],"core-js/features/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/join":["es.typed-array.join"],"core-js/features/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/features/typed-array/map":["es.typed-array.map"],"core-js/features/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/of":["es.typed-array.of"],"core-js/features/typed-array/reduce":["es.typed-array.reduce"],"core-js/features/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/features/typed-array/reverse":["es.typed-array.reverse"],"core-js/features/typed-array/set":["es.typed-array.set"],"core-js/features/typed-array/slice":["es.typed-array.slice"],"core-js/features/typed-array/some":["es.typed-array.some"],"core-js/features/typed-array/sort":["es.typed-array.sort"],"core-js/features/typed-array/subarray":["es.typed-array.subarray"],"core-js/features/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/features/typed-array/to-reversed":["esnext.typed-array.to-reversed"],"core-js/features/typed-array/to-sorted":["es.typed-array.sort","esnext.typed-array.to-sorted"],"core-js/features/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/features/typed-array/to-string":["es.typed-array.to-string"],"core-js/features/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/features/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/with":["esnext.typed-array.with"],"core-js/features/unescape":["es.unescape"],"core-js/features/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/features/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/features/url/to-json":["web.url.to-json"],"core-js/features/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/features/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/features/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/features/weak-map/from":["es.array.iterator","es.string.iterator","es.weak-map","esnext.weak-map.from","web.dom-collections.iterator"],"core-js/features/weak-map/of":["es.array.iterator","es.weak-map","esnext.weak-map.of"],"core-js/features/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/features/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/features/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/features/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/features/weak-set/from":["es.array.iterator","es.string.iterator","es.weak-set","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/features/weak-set/of":["es.array.iterator","es.weak-set","esnext.weak-set.of"],"core-js/full":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/full/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/full/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/full/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/full/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/full/array-buffer/slice":["es.array-buffer.slice"],"core-js/full/array/at":["es.array.at","esnext.array.at"],"core-js/full/array/concat":["es.array.concat"],"core-js/full/array/copy-within":["es.array.copy-within"],"core-js/full/array/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/every":["es.array.every"],"core-js/full/array/fill":["es.array.fill"],"core-js/full/array/filter":["es.array.filter"],"core-js/full/array/filter-out":["esnext.array.filter-out"],"core-js/full/array/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/find":["es.array.find"],"core-js/full/array/find-index":["es.array.find-index"],"core-js/full/array/find-last":["esnext.array.find-last"],"core-js/full/array/find-last-index":["esnext.array.find-last-index"],"core-js/full/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/for-each":["es.array.for-each"],"core-js/full/array/from":["es.array.from","es.string.iterator"],"core-js/full/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async"],"core-js/full/array/group-by":["esnext.array.group-by"],"core-js/full/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/includes":["es.array.includes"],"core-js/full/array/index-of":["es.array.index-of"],"core-js/full/array/is-array":["es.array.is-array"],"core-js/full/array/is-template-object":["esnext.array.is-template-object"],"core-js/full/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/join":["es.array.join"],"core-js/full/array/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/last-index":["esnext.array.last-index"],"core-js/full/array/last-index-of":["es.array.last-index-of"],"core-js/full/array/last-item":["esnext.array.last-item"],"core-js/full/array/map":["es.array.map"],"core-js/full/array/of":["es.array.of"],"core-js/full/array/reduce":["es.array.reduce"],"core-js/full/array/reduce-right":["es.array.reduce-right"],"core-js/full/array/reverse":["es.array.reverse"],"core-js/full/array/slice":["es.array.slice"],"core-js/full/array/some":["es.array.some"],"core-js/full/array/sort":["es.array.sort"],"core-js/full/array/splice":["es.array.splice"],"core-js/full/array/to-reversed":["esnext.array.to-reversed"],"core-js/full/array/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/full/array/to-spliced":["esnext.array.to-spliced"],"core-js/full/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/full/array/virtual/concat":["es.array.concat"],"core-js/full/array/virtual/copy-within":["es.array.copy-within"],"core-js/full/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/every":["es.array.every"],"core-js/full/array/virtual/fill":["es.array.fill"],"core-js/full/array/virtual/filter":["es.array.filter"],"core-js/full/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/full/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/virtual/find":["es.array.find"],"core-js/full/array/virtual/find-index":["es.array.find-index"],"core-js/full/array/virtual/find-last":["esnext.array.find-last"],"core-js/full/array/virtual/find-last-index":["esnext.array.find-last-index"],"core-js/full/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/virtual/for-each":["es.array.for-each"],"core-js/full/array/virtual/group-by":["esnext.array.group-by"],"core-js/full/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/virtual/includes":["es.array.includes"],"core-js/full/array/virtual/index-of":["es.array.index-of"],"core-js/full/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/join":["es.array.join"],"core-js/full/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/full/array/virtual/map":["es.array.map"],"core-js/full/array/virtual/reduce":["es.array.reduce"],"core-js/full/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/full/array/virtual/reverse":["es.array.reverse"],"core-js/full/array/virtual/slice":["es.array.slice"],"core-js/full/array/virtual/some":["es.array.some"],"core-js/full/array/virtual/sort":["es.array.sort"],"core-js/full/array/virtual/splice":["es.array.splice"],"core-js/full/array/virtual/to-reversed":["esnext.array.to-reversed"],"core-js/full/array/virtual/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/full/array/virtual/to-spliced":["esnext.array.to-spliced"],"core-js/full/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/with":["esnext.array.with"],"core-js/full/array/with":["esnext.array.with"],"core-js/full/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/full/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/full/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/full/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/full/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/full/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/full/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/full/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/full/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.from","web.dom-collections.iterator"],"core-js/full/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/full/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/full/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/full/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/full/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/full/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/full/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/full/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/clear-immediate":["web.immediate"],"core-js/full/composite-key":["esnext.composite-key"],"core-js/full/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/full/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/full/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/full/date/get-year":["es.date.get-year"],"core-js/full/date/now":["es.date.now"],"core-js/full/date/set-year":["es.date.set-year"],"core-js/full/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/full/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/full/date/to-json":["es.date.to-json"],"core-js/full/date/to-primitive":["es.date.to-primitive"],"core-js/full/date/to-string":["es.date.to-string"],"core-js/full/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/full/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/full/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/full/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/full/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/full/error":["es.error.cause","es.error.to-string"],"core-js/full/error/constructor":["es.error.cause"],"core-js/full/error/to-string":["es.error.to-string"],"core-js/full/escape":["es.escape"],"core-js/full/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this"],"core-js/full/function/bind":["es.function.bind"],"core-js/full/function/has-instance":["es.function.has-instance"],"core-js/full/function/is-callable":["esnext.function.is-callable"],"core-js/full/function/is-constructor":["esnext.function.is-constructor"],"core-js/full/function/name":["es.function.name"],"core-js/full/function/un-this":["esnext.function.un-this"],"core-js/full/function/virtual":["es.function.bind","esnext.function.un-this"],"core-js/full/function/virtual/bind":["es.function.bind"],"core-js/full/function/virtual/un-this":["esnext.function.un-this"],"core-js/full/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/global-this":["es.global-this","esnext.global-this"],"core-js/full/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/full/instance/bind":["es.function.bind"],"core-js/full/instance/code-point-at":["es.string.code-point-at"],"core-js/full/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/instance/concat":["es.array.concat"],"core-js/full/instance/copy-within":["es.array.copy-within"],"core-js/full/instance/ends-with":["es.string.ends-with"],"core-js/full/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/every":["es.array.every"],"core-js/full/instance/fill":["es.array.fill"],"core-js/full/instance/filter":["es.array.filter"],"core-js/full/instance/filter-out":["esnext.array.filter-out"],"core-js/full/instance/filter-reject":["esnext.array.filter-reject"],"core-js/full/instance/find":["es.array.find"],"core-js/full/instance/find-index":["es.array.find-index"],"core-js/full/instance/find-last":["esnext.array.find-last"],"core-js/full/instance/find-last-index":["esnext.array.find-last-index"],"core-js/full/instance/flags":["es.regexp.flags"],"core-js/full/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/full/instance/group-by":["esnext.array.group-by"],"core-js/full/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/instance/includes":["es.array.includes","es.string.includes"],"core-js/full/instance/index-of":["es.array.index-of"],"core-js/full/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/last-index-of":["es.array.last-index-of"],"core-js/full/instance/map":["es.array.map"],"core-js/full/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/instance/pad-end":["es.string.pad-end"],"core-js/full/instance/pad-start":["es.string.pad-start"],"core-js/full/instance/reduce":["es.array.reduce"],"core-js/full/instance/reduce-right":["es.array.reduce-right"],"core-js/full/instance/repeat":["es.string.repeat"],"core-js/full/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/full/instance/reverse":["es.array.reverse"],"core-js/full/instance/slice":["es.array.slice"],"core-js/full/instance/some":["es.array.some"],"core-js/full/instance/sort":["es.array.sort"],"core-js/full/instance/splice":["es.array.splice"],"core-js/full/instance/starts-with":["es.string.starts-with"],"core-js/full/instance/to-reversed":["esnext.array.to-reversed"],"core-js/full/instance/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/full/instance/to-spliced":["esnext.array.to-spliced"],"core-js/full/instance/trim":["es.string.trim"],"core-js/full/instance/trim-end":["es.string.trim-end"],"core-js/full/instance/trim-left":["es.string.trim-start"],"core-js/full/instance/trim-right":["es.string.trim-end"],"core-js/full/instance/trim-start":["es.string.trim-start"],"core-js/full/instance/un-this":["esnext.function.un-this"],"core-js/full/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/with":["esnext.array.with"],"core-js/full/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/full/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/full/iterator/drop":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/full/iterator/every":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/full/iterator/filter":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/full/iterator/find":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/full/iterator/flat-map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map"],"core-js/full/iterator/for-each":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/full/iterator/from":["es.array.iterator","es.object.to-string","es.string.iterator","esnext.iterator.constructor","esnext.iterator.from","web.dom-collections.iterator"],"core-js/full/iterator/map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/full/iterator/reduce":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/full/iterator/some":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/full/iterator/take":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/full/iterator/to-array":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/full/iterator/to-async":["es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/full/json":["es.json.stringify","es.json.to-string-tag"],"core-js/full/json/stringify":["es.json.stringify"],"core-js/full/json/to-string-tag":["es.json.to-string-tag"],"core-js/full/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/full/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/full/map/emplace":["es.map","esnext.map.emplace"],"core-js/full/map/every":["es.map","esnext.map.every"],"core-js/full/map/filter":["es.map","esnext.map.filter"],"core-js/full/map/find":["es.map","esnext.map.find"],"core-js/full/map/find-key":["es.map","esnext.map.find-key"],"core-js/full/map/from":["es.array.iterator","es.map","es.string.iterator","esnext.map.from","web.dom-collections.iterator"],"core-js/full/map/group-by":["es.map","esnext.map.group-by"],"core-js/full/map/includes":["es.map","esnext.map.includes"],"core-js/full/map/key-by":["es.map","esnext.map.key-by"],"core-js/full/map/key-of":["es.map","esnext.map.key-of"],"core-js/full/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/full/map/map-values":["es.map","esnext.map.map-values"],"core-js/full/map/merge":["es.map","esnext.map.merge"],"core-js/full/map/of":["es.array.iterator","es.map","esnext.map.of"],"core-js/full/map/reduce":["es.map","esnext.map.reduce"],"core-js/full/map/some":["es.map","esnext.map.some"],"core-js/full/map/update":["es.map","esnext.map.update"],"core-js/full/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/full/map/upsert":["es.map","esnext.map.upsert"],"core-js/full/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh"],"core-js/full/math/acosh":["es.math.acosh"],"core-js/full/math/asinh":["es.math.asinh"],"core-js/full/math/atanh":["es.math.atanh"],"core-js/full/math/cbrt":["es.math.cbrt"],"core-js/full/math/clamp":["esnext.math.clamp"],"core-js/full/math/clz32":["es.math.clz32"],"core-js/full/math/cosh":["es.math.cosh"],"core-js/full/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/full/math/degrees":["esnext.math.degrees"],"core-js/full/math/expm1":["es.math.expm1"],"core-js/full/math/fround":["es.math.fround"],"core-js/full/math/fscale":["esnext.math.fscale"],"core-js/full/math/hypot":["es.math.hypot"],"core-js/full/math/iaddh":["esnext.math.iaddh"],"core-js/full/math/imul":["es.math.imul"],"core-js/full/math/imulh":["esnext.math.imulh"],"core-js/full/math/isubh":["esnext.math.isubh"],"core-js/full/math/log10":["es.math.log10"],"core-js/full/math/log1p":["es.math.log1p"],"core-js/full/math/log2":["es.math.log2"],"core-js/full/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/full/math/radians":["esnext.math.radians"],"core-js/full/math/scale":["esnext.math.scale"],"core-js/full/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/full/math/sign":["es.math.sign"],"core-js/full/math/signbit":["esnext.math.signbit"],"core-js/full/math/sinh":["es.math.sinh"],"core-js/full/math/tanh":["es.math.tanh"],"core-js/full/math/to-string-tag":["es.math.to-string-tag"],"core-js/full/math/trunc":["es.math.trunc"],"core-js/full/math/umulh":["esnext.math.umulh"],"core-js/full/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.from-string","esnext.number.range"],"core-js/full/number/constructor":["es.number.constructor"],"core-js/full/number/epsilon":["es.number.epsilon"],"core-js/full/number/from-string":["esnext.number.from-string"],"core-js/full/number/is-finite":["es.number.is-finite"],"core-js/full/number/is-integer":["es.number.is-integer"],"core-js/full/number/is-nan":["es.number.is-nan"],"core-js/full/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/full/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/full/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/full/number/parse-float":["es.number.parse-float"],"core-js/full/number/parse-int":["es.number.parse-int"],"core-js/full/number/range":["es.object.to-string","esnext.number.range"],"core-js/full/number/to-exponential":["es.number.to-exponential"],"core-js/full/number/to-fixed":["es.number.to-fixed"],"core-js/full/number/to-precision":["es.number.to-precision"],"core-js/full/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/full/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/full/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/full/number/virtual/to-precision":["es.number.to-precision"],"core-js/full/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","web.dom-collections.iterator"],"core-js/full/object/assign":["es.object.assign"],"core-js/full/object/create":["es.object.create"],"core-js/full/object/define-getter":["es.object.define-getter"],"core-js/full/object/define-properties":["es.object.define-properties"],"core-js/full/object/define-property":["es.object.define-property"],"core-js/full/object/define-setter":["es.object.define-setter"],"core-js/full/object/entries":["es.object.entries"],"core-js/full/object/freeze":["es.object.freeze"],"core-js/full/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/full/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/full/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/full/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/full/object/get-own-property-symbols":["es.symbol"],"core-js/full/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/full/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/full/object/is":["es.object.is"],"core-js/full/object/is-extensible":["es.object.is-extensible"],"core-js/full/object/is-frozen":["es.object.is-frozen"],"core-js/full/object/is-sealed":["es.object.is-sealed"],"core-js/full/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/full/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/full/object/iterate-values":["esnext.object.iterate-values"],"core-js/full/object/keys":["es.object.keys"],"core-js/full/object/lookup-getter":["es.object.lookup-getter"],"core-js/full/object/lookup-setter":["es.object.lookup-setter"],"core-js/full/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/full/object/seal":["es.object.seal"],"core-js/full/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/full/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/object/values":["es.object.values"],"core-js/full/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/full/parse-float":["es.parse-float"],"core-js/full/parse-int":["es.parse-int"],"core-js/full/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","web.dom-collections.iterator"],"core-js/full/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/full/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/full/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/full/promise/try":["es.promise","esnext.promise.try"],"core-js/full/queue-microtask":["web.queue-microtask"],"core-js/full/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/full/reflect/apply":["es.reflect.apply"],"core-js/full/reflect/construct":["es.reflect.construct"],"core-js/full/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/full/reflect/define-property":["es.reflect.define-property"],"core-js/full/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/full/reflect/delete-property":["es.reflect.delete-property"],"core-js/full/reflect/get":["es.reflect.get"],"core-js/full/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/full/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/full/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/full/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/full/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/full/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/full/reflect/has":["es.reflect.has"],"core-js/full/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/full/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/full/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/full/reflect/metadata":["esnext.reflect.metadata"],"core-js/full/reflect/own-keys":["es.reflect.own-keys"],"core-js/full/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/full/reflect/set":["es.reflect.set"],"core-js/full/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/full/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/full/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/full/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/full/regexp/flags":["es.regexp.flags"],"core-js/full/regexp/match":["es.regexp.exec","es.string.match"],"core-js/full/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/full/regexp/search":["es.regexp.exec","es.string.search"],"core-js/full/regexp/split":["es.regexp.exec","es.string.split"],"core-js/full/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/full/regexp/to-string":["es.regexp.to-string"],"core-js/full/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","web.dom-collections.iterator"],"core-js/full/set-immediate":["web.immediate"],"core-js/full/set-interval":["web.timers"],"core-js/full/set-timeout":["web.timers"],"core-js/full/set/add-all":["es.set","esnext.set.add-all"],"core-js/full/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/full/set/difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.difference","web.dom-collections.iterator"],"core-js/full/set/every":["es.set","esnext.set.every"],"core-js/full/set/filter":["es.set","esnext.set.filter"],"core-js/full/set/find":["es.set","esnext.set.find"],"core-js/full/set/from":["es.array.iterator","es.set","es.string.iterator","esnext.set.from","web.dom-collections.iterator"],"core-js/full/set/intersection":["es.array.iterator","es.set","es.string.iterator","esnext.set.intersection","web.dom-collections.iterator"],"core-js/full/set/is-disjoint-from":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/full/set/is-subset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/full/set/is-superset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/full/set/join":["es.set","esnext.set.join"],"core-js/full/set/map":["es.set","esnext.set.map"],"core-js/full/set/of":["es.array.iterator","es.set","esnext.set.of"],"core-js/full/set/reduce":["es.set","esnext.set.reduce"],"core-js/full/set/some":["es.set","esnext.set.some"],"core-js/full/set/symmetric-difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/full/set/union":["es.array.iterator","es.set","es.string.iterator","esnext.set.union","web.dom-collections.iterator"],"core-js/full/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/full/string/anchor":["es.string.anchor"],"core-js/full/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/big":["es.string.big"],"core-js/full/string/blink":["es.string.blink"],"core-js/full/string/bold":["es.string.bold"],"core-js/full/string/code-point-at":["es.string.code-point-at"],"core-js/full/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/cooked":["esnext.string.cooked"],"core-js/full/string/ends-with":["es.string.ends-with"],"core-js/full/string/fixed":["es.string.fixed"],"core-js/full/string/fontcolor":["es.string.fontcolor"],"core-js/full/string/fontsize":["es.string.fontsize"],"core-js/full/string/from-code-point":["es.string.from-code-point"],"core-js/full/string/includes":["es.string.includes"],"core-js/full/string/italics":["es.string.italics"],"core-js/full/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/link":["es.string.link"],"core-js/full/string/match":["es.regexp.exec","es.string.match"],"core-js/full/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/pad-end":["es.string.pad-end"],"core-js/full/string/pad-start":["es.string.pad-start"],"core-js/full/string/raw":["es.string.raw"],"core-js/full/string/repeat":["es.string.repeat"],"core-js/full/string/replace":["es.regexp.exec","es.string.replace"],"core-js/full/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/search":["es.regexp.exec","es.string.search"],"core-js/full/string/small":["es.string.small"],"core-js/full/string/split":["es.regexp.exec","es.string.split"],"core-js/full/string/starts-with":["es.string.starts-with"],"core-js/full/string/strike":["es.string.strike"],"core-js/full/string/sub":["es.string.sub"],"core-js/full/string/substr":["es.string.substr"],"core-js/full/string/sup":["es.string.sup"],"core-js/full/string/trim":["es.string.trim"],"core-js/full/string/trim-end":["es.string.trim-end"],"core-js/full/string/trim-left":["es.string.trim-start"],"core-js/full/string/trim-right":["es.string.trim-end"],"core-js/full/string/trim-start":["es.string.trim-start"],"core-js/full/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/full/string/virtual/anchor":["es.string.anchor"],"core-js/full/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/virtual/big":["es.string.big"],"core-js/full/string/virtual/blink":["es.string.blink"],"core-js/full/string/virtual/bold":["es.string.bold"],"core-js/full/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/full/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/virtual/ends-with":["es.string.ends-with"],"core-js/full/string/virtual/fixed":["es.string.fixed"],"core-js/full/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/full/string/virtual/fontsize":["es.string.fontsize"],"core-js/full/string/virtual/includes":["es.string.includes"],"core-js/full/string/virtual/italics":["es.string.italics"],"core-js/full/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/virtual/link":["es.string.link"],"core-js/full/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/virtual/pad-end":["es.string.pad-end"],"core-js/full/string/virtual/pad-start":["es.string.pad-start"],"core-js/full/string/virtual/repeat":["es.string.repeat"],"core-js/full/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/virtual/small":["es.string.small"],"core-js/full/string/virtual/starts-with":["es.string.starts-with"],"core-js/full/string/virtual/strike":["es.string.strike"],"core-js/full/string/virtual/sub":["es.string.sub"],"core-js/full/string/virtual/substr":["es.string.substr"],"core-js/full/string/virtual/sup":["es.string.sup"],"core-js/full/string/virtual/trim":["es.string.trim"],"core-js/full/string/virtual/trim-end":["es.string.trim-end"],"core-js/full/string/virtual/trim-left":["es.string.trim-start"],"core-js/full/string/virtual/trim-right":["es.string.trim-end"],"core-js/full/string/virtual/trim-start":["es.string.trim-start"],"core-js/full/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/full/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/full/symbol/async-dispose":["esnext.symbol.async-dispose"],"core-js/full/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/full/symbol/description":["es.symbol.description"],"core-js/full/symbol/dispose":["esnext.symbol.dispose"],"core-js/full/symbol/for":["es.symbol"],"core-js/full/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/full/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/full/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/full/symbol/key-for":["es.symbol"],"core-js/full/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/full/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/full/symbol/matcher":["esnext.symbol.matcher"],"core-js/full/symbol/metadata":["esnext.symbol.metadata"],"core-js/full/symbol/observable":["esnext.symbol.observable"],"core-js/full/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/full/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/full/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/full/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/full/symbol/species":["es.symbol.species"],"core-js/full/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/full/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/full/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/symbol/unscopables":["es.symbol.unscopables"],"core-js/full/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/at":["es.typed-array.every","esnext.typed-array.at"],"core-js/full/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/full/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/every":["es.typed-array.every"],"core-js/full/typed-array/fill":["es.typed-array.fill"],"core-js/full/typed-array/filter":["es.typed-array.filter"],"core-js/full/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/full/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/full/typed-array/find":["es.typed-array.find"],"core-js/full/typed-array/find-index":["es.typed-array.find-index"],"core-js/full/typed-array/find-last":["esnext.typed-array.find-last"],"core-js/full/typed-array/find-last-index":["esnext.typed-array.find-last-index"],"core-js/full/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/for-each":["es.typed-array.for-each"],"core-js/full/typed-array/from":["es.typed-array.from"],"core-js/full/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/full/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/full/typed-array/includes":["es.typed-array.includes"],"core-js/full/typed-array/index-of":["es.typed-array.index-of"],"core-js/full/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/join":["es.typed-array.join"],"core-js/full/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/full/typed-array/map":["es.typed-array.map"],"core-js/full/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/of":["es.typed-array.of"],"core-js/full/typed-array/reduce":["es.typed-array.reduce"],"core-js/full/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/full/typed-array/reverse":["es.typed-array.reverse"],"core-js/full/typed-array/set":["es.typed-array.set"],"core-js/full/typed-array/slice":["es.typed-array.slice"],"core-js/full/typed-array/some":["es.typed-array.some"],"core-js/full/typed-array/sort":["es.typed-array.sort"],"core-js/full/typed-array/subarray":["es.typed-array.subarray"],"core-js/full/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/full/typed-array/to-reversed":["esnext.typed-array.to-reversed"],"core-js/full/typed-array/to-sorted":["es.typed-array.sort","esnext.typed-array.to-sorted"],"core-js/full/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/full/typed-array/to-string":["es.typed-array.to-string"],"core-js/full/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/full/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/with":["esnext.typed-array.with"],"core-js/full/unescape":["es.unescape"],"core-js/full/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/full/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/full/url/to-json":["web.url.to-json"],"core-js/full/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/full/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/full/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/full/weak-map/from":["es.array.iterator","es.string.iterator","es.weak-map","esnext.weak-map.from","web.dom-collections.iterator"],"core-js/full/weak-map/of":["es.array.iterator","es.weak-map","esnext.weak-map.of"],"core-js/full/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/full/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/full/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/full/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/full/weak-set/from":["es.array.iterator","es.string.iterator","es.weak-set","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/full/weak-set/of":["es.array.iterator","es.weak-set","esnext.weak-set.of"],"core-js/modules/es.aggregate-error":["es.aggregate-error"],"core-js/modules/es.aggregate-error.cause":["es.aggregate-error.cause"],"core-js/modules/es.aggregate-error.constructor":["es.aggregate-error.constructor"],"core-js/modules/es.array-buffer.constructor":["es.array-buffer.constructor"],"core-js/modules/es.array-buffer.is-view":["es.array-buffer.is-view"],"core-js/modules/es.array-buffer.slice":["es.array-buffer.slice"],"core-js/modules/es.array.at":["es.array.at"],"core-js/modules/es.array.concat":["es.array.concat"],"core-js/modules/es.array.copy-within":["es.array.copy-within"],"core-js/modules/es.array.every":["es.array.every"],"core-js/modules/es.array.fill":["es.array.fill"],"core-js/modules/es.array.filter":["es.array.filter"],"core-js/modules/es.array.find":["es.array.find"],"core-js/modules/es.array.find-index":["es.array.find-index"],"core-js/modules/es.array.flat":["es.array.flat"],"core-js/modules/es.array.flat-map":["es.array.flat-map"],"core-js/modules/es.array.for-each":["es.array.for-each"],"core-js/modules/es.array.from":["es.array.from"],"core-js/modules/es.array.includes":["es.array.includes"],"core-js/modules/es.array.index-of":["es.array.index-of"],"core-js/modules/es.array.is-array":["es.array.is-array"],"core-js/modules/es.array.iterator":["es.array.iterator"],"core-js/modules/es.array.join":["es.array.join"],"core-js/modules/es.array.last-index-of":["es.array.last-index-of"],"core-js/modules/es.array.map":["es.array.map"],"core-js/modules/es.array.of":["es.array.of"],"core-js/modules/es.array.reduce":["es.array.reduce"],"core-js/modules/es.array.reduce-right":["es.array.reduce-right"],"core-js/modules/es.array.reverse":["es.array.reverse"],"core-js/modules/es.array.slice":["es.array.slice"],"core-js/modules/es.array.some":["es.array.some"],"core-js/modules/es.array.sort":["es.array.sort"],"core-js/modules/es.array.species":["es.array.species"],"core-js/modules/es.array.splice":["es.array.splice"],"core-js/modules/es.array.unscopables.flat":["es.array.unscopables.flat"],"core-js/modules/es.array.unscopables.flat-map":["es.array.unscopables.flat-map"],"core-js/modules/es.data-view":["es.data-view"],"core-js/modules/es.data-view.constructor":["es.data-view.constructor"],"core-js/modules/es.date.get-year":["es.date.get-year"],"core-js/modules/es.date.now":["es.date.now"],"core-js/modules/es.date.set-year":["es.date.set-year"],"core-js/modules/es.date.to-gmt-string":["es.date.to-gmt-string"],"core-js/modules/es.date.to-iso-string":["es.date.to-iso-string"],"core-js/modules/es.date.to-json":["es.date.to-json"],"core-js/modules/es.date.to-primitive":["es.date.to-primitive"],"core-js/modules/es.date.to-string":["es.date.to-string"],"core-js/modules/es.error.cause":["es.error.cause"],"core-js/modules/es.error.to-string":["es.error.to-string"],"core-js/modules/es.escape":["es.escape"],"core-js/modules/es.function.bind":["es.function.bind"],"core-js/modules/es.function.has-instance":["es.function.has-instance"],"core-js/modules/es.function.name":["es.function.name"],"core-js/modules/es.global-this":["es.global-this"],"core-js/modules/es.json.stringify":["es.json.stringify"],"core-js/modules/es.json.to-string-tag":["es.json.to-string-tag"],"core-js/modules/es.map":["es.map"],"core-js/modules/es.map.constructor":["es.map.constructor"],"core-js/modules/es.math.acosh":["es.math.acosh"],"core-js/modules/es.math.asinh":["es.math.asinh"],"core-js/modules/es.math.atanh":["es.math.atanh"],"core-js/modules/es.math.cbrt":["es.math.cbrt"],"core-js/modules/es.math.clz32":["es.math.clz32"],"core-js/modules/es.math.cosh":["es.math.cosh"],"core-js/modules/es.math.expm1":["es.math.expm1"],"core-js/modules/es.math.fround":["es.math.fround"],"core-js/modules/es.math.hypot":["es.math.hypot"],"core-js/modules/es.math.imul":["es.math.imul"],"core-js/modules/es.math.log10":["es.math.log10"],"core-js/modules/es.math.log1p":["es.math.log1p"],"core-js/modules/es.math.log2":["es.math.log2"],"core-js/modules/es.math.sign":["es.math.sign"],"core-js/modules/es.math.sinh":["es.math.sinh"],"core-js/modules/es.math.tanh":["es.math.tanh"],"core-js/modules/es.math.to-string-tag":["es.math.to-string-tag"],"core-js/modules/es.math.trunc":["es.math.trunc"],"core-js/modules/es.number.constructor":["es.number.constructor"],"core-js/modules/es.number.epsilon":["es.number.epsilon"],"core-js/modules/es.number.is-finite":["es.number.is-finite"],"core-js/modules/es.number.is-integer":["es.number.is-integer"],"core-js/modules/es.number.is-nan":["es.number.is-nan"],"core-js/modules/es.number.is-safe-integer":["es.number.is-safe-integer"],"core-js/modules/es.number.max-safe-integer":["es.number.max-safe-integer"],"core-js/modules/es.number.min-safe-integer":["es.number.min-safe-integer"],"core-js/modules/es.number.parse-float":["es.number.parse-float"],"core-js/modules/es.number.parse-int":["es.number.parse-int"],"core-js/modules/es.number.to-exponential":["es.number.to-exponential"],"core-js/modules/es.number.to-fixed":["es.number.to-fixed"],"core-js/modules/es.number.to-precision":["es.number.to-precision"],"core-js/modules/es.object.assign":["es.object.assign"],"core-js/modules/es.object.create":["es.object.create"],"core-js/modules/es.object.define-getter":["es.object.define-getter"],"core-js/modules/es.object.define-properties":["es.object.define-properties"],"core-js/modules/es.object.define-property":["es.object.define-property"],"core-js/modules/es.object.define-setter":["es.object.define-setter"],"core-js/modules/es.object.entries":["es.object.entries"],"core-js/modules/es.object.freeze":["es.object.freeze"],"core-js/modules/es.object.from-entries":["es.object.from-entries"],"core-js/modules/es.object.get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/modules/es.object.get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/modules/es.object.get-own-property-names":["es.object.get-own-property-names"],"core-js/modules/es.object.get-own-property-symbols":["es.object.get-own-property-symbols"],"core-js/modules/es.object.get-prototype-of":["es.object.get-prototype-of"],"core-js/modules/es.object.has-own":["es.object.has-own"],"core-js/modules/es.object.is":["es.object.is"],"core-js/modules/es.object.is-extensible":["es.object.is-extensible"],"core-js/modules/es.object.is-frozen":["es.object.is-frozen"],"core-js/modules/es.object.is-sealed":["es.object.is-sealed"],"core-js/modules/es.object.keys":["es.object.keys"],"core-js/modules/es.object.lookup-getter":["es.object.lookup-getter"],"core-js/modules/es.object.lookup-setter":["es.object.lookup-setter"],"core-js/modules/es.object.prevent-extensions":["es.object.prevent-extensions"],"core-js/modules/es.object.seal":["es.object.seal"],"core-js/modules/es.object.set-prototype-of":["es.object.set-prototype-of"],"core-js/modules/es.object.to-string":["es.object.to-string"],"core-js/modules/es.object.values":["es.object.values"],"core-js/modules/es.parse-float":["es.parse-float"],"core-js/modules/es.parse-int":["es.parse-int"],"core-js/modules/es.promise":["es.promise"],"core-js/modules/es.promise.all":["es.promise.all"],"core-js/modules/es.promise.all-settled":["es.promise.all-settled"],"core-js/modules/es.promise.any":["es.promise.any"],"core-js/modules/es.promise.catch":["es.promise.catch"],"core-js/modules/es.promise.constructor":["es.promise.constructor"],"core-js/modules/es.promise.finally":["es.promise.finally"],"core-js/modules/es.promise.race":["es.promise.race"],"core-js/modules/es.promise.reject":["es.promise.reject"],"core-js/modules/es.promise.resolve":["es.promise.resolve"],"core-js/modules/es.reflect.apply":["es.reflect.apply"],"core-js/modules/es.reflect.construct":["es.reflect.construct"],"core-js/modules/es.reflect.define-property":["es.reflect.define-property"],"core-js/modules/es.reflect.delete-property":["es.reflect.delete-property"],"core-js/modules/es.reflect.get":["es.reflect.get"],"core-js/modules/es.reflect.get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/modules/es.reflect.get-prototype-of":["es.reflect.get-prototype-of"],"core-js/modules/es.reflect.has":["es.reflect.has"],"core-js/modules/es.reflect.is-extensible":["es.reflect.is-extensible"],"core-js/modules/es.reflect.own-keys":["es.reflect.own-keys"],"core-js/modules/es.reflect.prevent-extensions":["es.reflect.prevent-extensions"],"core-js/modules/es.reflect.set":["es.reflect.set"],"core-js/modules/es.reflect.set-prototype-of":["es.reflect.set-prototype-of"],"core-js/modules/es.reflect.to-string-tag":["es.reflect.to-string-tag"],"core-js/modules/es.regexp.constructor":["es.regexp.constructor"],"core-js/modules/es.regexp.dot-all":["es.regexp.dot-all"],"core-js/modules/es.regexp.exec":["es.regexp.exec"],"core-js/modules/es.regexp.flags":["es.regexp.flags"],"core-js/modules/es.regexp.sticky":["es.regexp.sticky"],"core-js/modules/es.regexp.test":["es.regexp.test"],"core-js/modules/es.regexp.to-string":["es.regexp.to-string"],"core-js/modules/es.set":["es.set"],"core-js/modules/es.set.constructor":["es.set.constructor"],"core-js/modules/es.string.anchor":["es.string.anchor"],"core-js/modules/es.string.at-alternative":["es.string.at-alternative"],"core-js/modules/es.string.big":["es.string.big"],"core-js/modules/es.string.blink":["es.string.blink"],"core-js/modules/es.string.bold":["es.string.bold"],"core-js/modules/es.string.code-point-at":["es.string.code-point-at"],"core-js/modules/es.string.ends-with":["es.string.ends-with"],"core-js/modules/es.string.fixed":["es.string.fixed"],"core-js/modules/es.string.fontcolor":["es.string.fontcolor"],"core-js/modules/es.string.fontsize":["es.string.fontsize"],"core-js/modules/es.string.from-code-point":["es.string.from-code-point"],"core-js/modules/es.string.includes":["es.string.includes"],"core-js/modules/es.string.italics":["es.string.italics"],"core-js/modules/es.string.iterator":["es.string.iterator"],"core-js/modules/es.string.link":["es.string.link"],"core-js/modules/es.string.match":["es.string.match"],"core-js/modules/es.string.match-all":["es.string.match-all"],"core-js/modules/es.string.pad-end":["es.string.pad-end"],"core-js/modules/es.string.pad-start":["es.string.pad-start"],"core-js/modules/es.string.raw":["es.string.raw"],"core-js/modules/es.string.repeat":["es.string.repeat"],"core-js/modules/es.string.replace":["es.string.replace"],"core-js/modules/es.string.replace-all":["es.string.replace-all"],"core-js/modules/es.string.search":["es.string.search"],"core-js/modules/es.string.small":["es.string.small"],"core-js/modules/es.string.split":["es.string.split"],"core-js/modules/es.string.starts-with":["es.string.starts-with"],"core-js/modules/es.string.strike":["es.string.strike"],"core-js/modules/es.string.sub":["es.string.sub"],"core-js/modules/es.string.substr":["es.string.substr"],"core-js/modules/es.string.sup":["es.string.sup"],"core-js/modules/es.string.trim":["es.string.trim"],"core-js/modules/es.string.trim-end":["es.string.trim-end"],"core-js/modules/es.string.trim-left":["es.string.trim-left"],"core-js/modules/es.string.trim-right":["es.string.trim-right"],"core-js/modules/es.string.trim-start":["es.string.trim-start"],"core-js/modules/es.symbol":["es.symbol"],"core-js/modules/es.symbol.async-iterator":["es.symbol.async-iterator"],"core-js/modules/es.symbol.constructor":["es.symbol.constructor"],"core-js/modules/es.symbol.description":["es.symbol.description"],"core-js/modules/es.symbol.for":["es.symbol.for"],"core-js/modules/es.symbol.has-instance":["es.symbol.has-instance"],"core-js/modules/es.symbol.is-concat-spreadable":["es.symbol.is-concat-spreadable"],"core-js/modules/es.symbol.iterator":["es.symbol.iterator"],"core-js/modules/es.symbol.key-for":["es.symbol.key-for"],"core-js/modules/es.symbol.match":["es.symbol.match"],"core-js/modules/es.symbol.match-all":["es.symbol.match-all"],"core-js/modules/es.symbol.replace":["es.symbol.replace"],"core-js/modules/es.symbol.search":["es.symbol.search"],"core-js/modules/es.symbol.species":["es.symbol.species"],"core-js/modules/es.symbol.split":["es.symbol.split"],"core-js/modules/es.symbol.to-primitive":["es.symbol.to-primitive"],"core-js/modules/es.symbol.to-string-tag":["es.symbol.to-string-tag"],"core-js/modules/es.symbol.unscopables":["es.symbol.unscopables"],"core-js/modules/es.typed-array.at":["es.typed-array.at"],"core-js/modules/es.typed-array.copy-within":["es.typed-array.copy-within"],"core-js/modules/es.typed-array.every":["es.typed-array.every"],"core-js/modules/es.typed-array.fill":["es.typed-array.fill"],"core-js/modules/es.typed-array.filter":["es.typed-array.filter"],"core-js/modules/es.typed-array.find":["es.typed-array.find"],"core-js/modules/es.typed-array.find-index":["es.typed-array.find-index"],"core-js/modules/es.typed-array.float32-array":["es.typed-array.float32-array"],"core-js/modules/es.typed-array.float64-array":["es.typed-array.float64-array"],"core-js/modules/es.typed-array.for-each":["es.typed-array.for-each"],"core-js/modules/es.typed-array.from":["es.typed-array.from"],"core-js/modules/es.typed-array.includes":["es.typed-array.includes"],"core-js/modules/es.typed-array.index-of":["es.typed-array.index-of"],"core-js/modules/es.typed-array.int16-array":["es.typed-array.int16-array"],"core-js/modules/es.typed-array.int32-array":["es.typed-array.int32-array"],"core-js/modules/es.typed-array.int8-array":["es.typed-array.int8-array"],"core-js/modules/es.typed-array.iterator":["es.typed-array.iterator"],"core-js/modules/es.typed-array.join":["es.typed-array.join"],"core-js/modules/es.typed-array.last-index-of":["es.typed-array.last-index-of"],"core-js/modules/es.typed-array.map":["es.typed-array.map"],"core-js/modules/es.typed-array.of":["es.typed-array.of"],"core-js/modules/es.typed-array.reduce":["es.typed-array.reduce"],"core-js/modules/es.typed-array.reduce-right":["es.typed-array.reduce-right"],"core-js/modules/es.typed-array.reverse":["es.typed-array.reverse"],"core-js/modules/es.typed-array.set":["es.typed-array.set"],"core-js/modules/es.typed-array.slice":["es.typed-array.slice"],"core-js/modules/es.typed-array.some":["es.typed-array.some"],"core-js/modules/es.typed-array.sort":["es.typed-array.sort"],"core-js/modules/es.typed-array.subarray":["es.typed-array.subarray"],"core-js/modules/es.typed-array.to-locale-string":["es.typed-array.to-locale-string"],"core-js/modules/es.typed-array.to-string":["es.typed-array.to-string"],"core-js/modules/es.typed-array.uint16-array":["es.typed-array.uint16-array"],"core-js/modules/es.typed-array.uint32-array":["es.typed-array.uint32-array"],"core-js/modules/es.typed-array.uint8-array":["es.typed-array.uint8-array"],"core-js/modules/es.typed-array.uint8-clamped-array":["es.typed-array.uint8-clamped-array"],"core-js/modules/es.unescape":["es.unescape"],"core-js/modules/es.weak-map":["es.weak-map"],"core-js/modules/es.weak-map.constructor":["es.weak-map.constructor"],"core-js/modules/es.weak-set":["es.weak-set"],"core-js/modules/es.weak-set.constructor":["es.weak-set.constructor"],"core-js/modules/esnext.aggregate-error":["esnext.aggregate-error"],"core-js/modules/esnext.array.at":["esnext.array.at"],"core-js/modules/esnext.array.filter-out":["esnext.array.filter-out"],"core-js/modules/esnext.array.filter-reject":["esnext.array.filter-reject"],"core-js/modules/esnext.array.find-last":["esnext.array.find-last"],"core-js/modules/esnext.array.find-last-index":["esnext.array.find-last-index"],"core-js/modules/esnext.array.from-async":["esnext.array.from-async"],"core-js/modules/esnext.array.group-by":["esnext.array.group-by"],"core-js/modules/esnext.array.group-by-to-map":["esnext.array.group-by-to-map"],"core-js/modules/esnext.array.is-template-object":["esnext.array.is-template-object"],"core-js/modules/esnext.array.last-index":["esnext.array.last-index"],"core-js/modules/esnext.array.last-item":["esnext.array.last-item"],"core-js/modules/esnext.array.to-reversed":["esnext.array.to-reversed"],"core-js/modules/esnext.array.to-sorted":["esnext.array.to-sorted"],"core-js/modules/esnext.array.to-spliced":["esnext.array.to-spliced"],"core-js/modules/esnext.array.unique-by":["esnext.array.unique-by"],"core-js/modules/esnext.array.with":["esnext.array.with"],"core-js/modules/esnext.async-iterator.as-indexed-pairs":["esnext.async-iterator.as-indexed-pairs"],"core-js/modules/esnext.async-iterator.constructor":["esnext.async-iterator.constructor"],"core-js/modules/esnext.async-iterator.drop":["esnext.async-iterator.drop"],"core-js/modules/esnext.async-iterator.every":["esnext.async-iterator.every"],"core-js/modules/esnext.async-iterator.filter":["esnext.async-iterator.filter"],"core-js/modules/esnext.async-iterator.find":["esnext.async-iterator.find"],"core-js/modules/esnext.async-iterator.flat-map":["esnext.async-iterator.flat-map"],"core-js/modules/esnext.async-iterator.for-each":["esnext.async-iterator.for-each"],"core-js/modules/esnext.async-iterator.from":["esnext.async-iterator.from"],"core-js/modules/esnext.async-iterator.map":["esnext.async-iterator.map"],"core-js/modules/esnext.async-iterator.reduce":["esnext.async-iterator.reduce"],"core-js/modules/esnext.async-iterator.some":["esnext.async-iterator.some"],"core-js/modules/esnext.async-iterator.take":["esnext.async-iterator.take"],"core-js/modules/esnext.async-iterator.to-array":["esnext.async-iterator.to-array"],"core-js/modules/esnext.bigint.range":["esnext.bigint.range"],"core-js/modules/esnext.composite-key":["esnext.composite-key"],"core-js/modules/esnext.composite-symbol":["esnext.composite-symbol"],"core-js/modules/esnext.function.is-callable":["esnext.function.is-callable"],"core-js/modules/esnext.function.is-constructor":["esnext.function.is-constructor"],"core-js/modules/esnext.function.un-this":["esnext.function.un-this"],"core-js/modules/esnext.global-this":["esnext.global-this"],"core-js/modules/esnext.iterator.as-indexed-pairs":["esnext.iterator.as-indexed-pairs"],"core-js/modules/esnext.iterator.constructor":["esnext.iterator.constructor"],"core-js/modules/esnext.iterator.drop":["esnext.iterator.drop"],"core-js/modules/esnext.iterator.every":["esnext.iterator.every"],"core-js/modules/esnext.iterator.filter":["esnext.iterator.filter"],"core-js/modules/esnext.iterator.find":["esnext.iterator.find"],"core-js/modules/esnext.iterator.flat-map":["esnext.iterator.flat-map"],"core-js/modules/esnext.iterator.for-each":["esnext.iterator.for-each"],"core-js/modules/esnext.iterator.from":["esnext.iterator.from"],"core-js/modules/esnext.iterator.map":["esnext.iterator.map"],"core-js/modules/esnext.iterator.reduce":["esnext.iterator.reduce"],"core-js/modules/esnext.iterator.some":["esnext.iterator.some"],"core-js/modules/esnext.iterator.take":["esnext.iterator.take"],"core-js/modules/esnext.iterator.to-array":["esnext.iterator.to-array"],"core-js/modules/esnext.iterator.to-async":["esnext.iterator.to-async"],"core-js/modules/esnext.map.delete-all":["esnext.map.delete-all"],"core-js/modules/esnext.map.emplace":["esnext.map.emplace"],"core-js/modules/esnext.map.every":["esnext.map.every"],"core-js/modules/esnext.map.filter":["esnext.map.filter"],"core-js/modules/esnext.map.find":["esnext.map.find"],"core-js/modules/esnext.map.find-key":["esnext.map.find-key"],"core-js/modules/esnext.map.from":["esnext.map.from"],"core-js/modules/esnext.map.group-by":["esnext.map.group-by"],"core-js/modules/esnext.map.includes":["esnext.map.includes"],"core-js/modules/esnext.map.key-by":["esnext.map.key-by"],"core-js/modules/esnext.map.key-of":["esnext.map.key-of"],"core-js/modules/esnext.map.map-keys":["esnext.map.map-keys"],"core-js/modules/esnext.map.map-values":["esnext.map.map-values"],"core-js/modules/esnext.map.merge":["esnext.map.merge"],"core-js/modules/esnext.map.of":["esnext.map.of"],"core-js/modules/esnext.map.reduce":["esnext.map.reduce"],"core-js/modules/esnext.map.some":["esnext.map.some"],"core-js/modules/esnext.map.update":["esnext.map.update"],"core-js/modules/esnext.map.update-or-insert":["esnext.map.update-or-insert"],"core-js/modules/esnext.map.upsert":["esnext.map.upsert"],"core-js/modules/esnext.math.clamp":["esnext.math.clamp"],"core-js/modules/esnext.math.deg-per-rad":["esnext.math.deg-per-rad"],"core-js/modules/esnext.math.degrees":["esnext.math.degrees"],"core-js/modules/esnext.math.fscale":["esnext.math.fscale"],"core-js/modules/esnext.math.iaddh":["esnext.math.iaddh"],"core-js/modules/esnext.math.imulh":["esnext.math.imulh"],"core-js/modules/esnext.math.isubh":["esnext.math.isubh"],"core-js/modules/esnext.math.rad-per-deg":["esnext.math.rad-per-deg"],"core-js/modules/esnext.math.radians":["esnext.math.radians"],"core-js/modules/esnext.math.scale":["esnext.math.scale"],"core-js/modules/esnext.math.seeded-prng":["esnext.math.seeded-prng"],"core-js/modules/esnext.math.signbit":["esnext.math.signbit"],"core-js/modules/esnext.math.umulh":["esnext.math.umulh"],"core-js/modules/esnext.number.from-string":["esnext.number.from-string"],"core-js/modules/esnext.number.range":["esnext.number.range"],"core-js/modules/esnext.object.has-own":["esnext.object.has-own"],"core-js/modules/esnext.object.iterate-entries":["esnext.object.iterate-entries"],"core-js/modules/esnext.object.iterate-keys":["esnext.object.iterate-keys"],"core-js/modules/esnext.object.iterate-values":["esnext.object.iterate-values"],"core-js/modules/esnext.observable":["esnext.observable"],"core-js/modules/esnext.observable.constructor":["esnext.observable.constructor"],"core-js/modules/esnext.observable.from":["esnext.observable.from"],"core-js/modules/esnext.observable.of":["esnext.observable.of"],"core-js/modules/esnext.promise.all-settled":["esnext.promise.all-settled"],"core-js/modules/esnext.promise.any":["esnext.promise.any"],"core-js/modules/esnext.promise.try":["esnext.promise.try"],"core-js/modules/esnext.reflect.define-metadata":["esnext.reflect.define-metadata"],"core-js/modules/esnext.reflect.delete-metadata":["esnext.reflect.delete-metadata"],"core-js/modules/esnext.reflect.get-metadata":["esnext.reflect.get-metadata"],"core-js/modules/esnext.reflect.get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/modules/esnext.reflect.get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/modules/esnext.reflect.get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/modules/esnext.reflect.has-metadata":["esnext.reflect.has-metadata"],"core-js/modules/esnext.reflect.has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/modules/esnext.reflect.metadata":["esnext.reflect.metadata"],"core-js/modules/esnext.set.add-all":["esnext.set.add-all"],"core-js/modules/esnext.set.delete-all":["esnext.set.delete-all"],"core-js/modules/esnext.set.difference":["esnext.set.difference"],"core-js/modules/esnext.set.every":["esnext.set.every"],"core-js/modules/esnext.set.filter":["esnext.set.filter"],"core-js/modules/esnext.set.find":["esnext.set.find"],"core-js/modules/esnext.set.from":["esnext.set.from"],"core-js/modules/esnext.set.intersection":["esnext.set.intersection"],"core-js/modules/esnext.set.is-disjoint-from":["esnext.set.is-disjoint-from"],"core-js/modules/esnext.set.is-subset-of":["esnext.set.is-subset-of"],"core-js/modules/esnext.set.is-superset-of":["esnext.set.is-superset-of"],"core-js/modules/esnext.set.join":["esnext.set.join"],"core-js/modules/esnext.set.map":["esnext.set.map"],"core-js/modules/esnext.set.of":["esnext.set.of"],"core-js/modules/esnext.set.reduce":["esnext.set.reduce"],"core-js/modules/esnext.set.some":["esnext.set.some"],"core-js/modules/esnext.set.symmetric-difference":["esnext.set.symmetric-difference"],"core-js/modules/esnext.set.union":["esnext.set.union"],"core-js/modules/esnext.string.at":["esnext.string.at"],"core-js/modules/esnext.string.at-alternative":["esnext.string.at-alternative"],"core-js/modules/esnext.string.code-points":["esnext.string.code-points"],"core-js/modules/esnext.string.cooked":["esnext.string.cooked"],"core-js/modules/esnext.string.match-all":["esnext.string.match-all"],"core-js/modules/esnext.string.replace-all":["esnext.string.replace-all"],"core-js/modules/esnext.symbol.async-dispose":["esnext.symbol.async-dispose"],"core-js/modules/esnext.symbol.dispose":["esnext.symbol.dispose"],"core-js/modules/esnext.symbol.matcher":["esnext.symbol.matcher"],"core-js/modules/esnext.symbol.metadata":["esnext.symbol.metadata"],"core-js/modules/esnext.symbol.observable":["esnext.symbol.observable"],"core-js/modules/esnext.symbol.pattern-match":["esnext.symbol.pattern-match"],"core-js/modules/esnext.symbol.replace-all":["esnext.symbol.replace-all"],"core-js/modules/esnext.typed-array.at":["esnext.typed-array.at"],"core-js/modules/esnext.typed-array.filter-out":["esnext.typed-array.filter-out"],"core-js/modules/esnext.typed-array.filter-reject":["esnext.typed-array.filter-reject"],"core-js/modules/esnext.typed-array.find-last":["esnext.typed-array.find-last"],"core-js/modules/esnext.typed-array.find-last-index":["esnext.typed-array.find-last-index"],"core-js/modules/esnext.typed-array.from-async":["esnext.typed-array.from-async"],"core-js/modules/esnext.typed-array.group-by":["esnext.typed-array.group-by"],"core-js/modules/esnext.typed-array.to-reversed":["esnext.typed-array.to-reversed"],"core-js/modules/esnext.typed-array.to-sorted":["esnext.typed-array.to-sorted"],"core-js/modules/esnext.typed-array.to-spliced":["esnext.typed-array.to-spliced"],"core-js/modules/esnext.typed-array.unique-by":["esnext.typed-array.unique-by"],"core-js/modules/esnext.typed-array.with":["esnext.typed-array.with"],"core-js/modules/esnext.weak-map.delete-all":["esnext.weak-map.delete-all"],"core-js/modules/esnext.weak-map.emplace":["esnext.weak-map.emplace"],"core-js/modules/esnext.weak-map.from":["esnext.weak-map.from"],"core-js/modules/esnext.weak-map.of":["esnext.weak-map.of"],"core-js/modules/esnext.weak-map.upsert":["esnext.weak-map.upsert"],"core-js/modules/esnext.weak-set.add-all":["esnext.weak-set.add-all"],"core-js/modules/esnext.weak-set.delete-all":["esnext.weak-set.delete-all"],"core-js/modules/esnext.weak-set.from":["esnext.weak-set.from"],"core-js/modules/esnext.weak-set.of":["esnext.weak-set.of"],"core-js/modules/web.atob":["web.atob"],"core-js/modules/web.btoa":["web.btoa"],"core-js/modules/web.clear-immediate":["web.clear-immediate"],"core-js/modules/web.dom-collections.for-each":["web.dom-collections.for-each"],"core-js/modules/web.dom-collections.iterator":["web.dom-collections.iterator"],"core-js/modules/web.dom-exception.constructor":["web.dom-exception.constructor"],"core-js/modules/web.dom-exception.stack":["web.dom-exception.stack"],"core-js/modules/web.dom-exception.to-string-tag":["web.dom-exception.to-string-tag"],"core-js/modules/web.immediate":["web.immediate"],"core-js/modules/web.queue-microtask":["web.queue-microtask"],"core-js/modules/web.set-immediate":["web.set-immediate"],"core-js/modules/web.set-interval":["web.set-interval"],"core-js/modules/web.set-timeout":["web.set-timeout"],"core-js/modules/web.structured-clone":["web.structured-clone"],"core-js/modules/web.timers":["web.timers"],"core-js/modules/web.url":["web.url"],"core-js/modules/web.url-search-params":["web.url-search-params"],"core-js/modules/web.url-search-params.constructor":["web.url-search-params.constructor"],"core-js/modules/web.url.constructor":["web.url.constructor"],"core-js/modules/web.url.to-json":["web.url.to-json"],"core-js/proposals":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/proposals/accessible-object-hasownproperty":["esnext.object.has-own"],"core-js/proposals/array-filtering":["esnext.array.filter-out","esnext.array.filter-reject","esnext.typed-array.filter-out","esnext.typed-array.filter-reject"],"core-js/proposals/array-filtering-stage-1":["esnext.array.filter-reject","esnext.typed-array.filter-reject"],"core-js/proposals/array-find-from-last":["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index"],"core-js/proposals/array-flat-map":["es.array.flat","es.array.flat-map","es.array.unscopables.flat","es.array.unscopables.flat-map"],"core-js/proposals/array-from-async":["esnext.array.from-async","esnext.typed-array.from-async"],"core-js/proposals/array-from-async-stage-2":["esnext.array.from-async"],"core-js/proposals/array-grouping":["esnext.array.group-by","esnext.array.group-by-to-map","esnext.typed-array.group-by"],"core-js/proposals/array-grouping-stage-3":["esnext.array.group-by","esnext.array.group-by-to-map"],"core-js/proposals/array-includes":["es.array.includes","es.typed-array.includes"],"core-js/proposals/array-is-template-object":["esnext.array.is-template-object"],"core-js/proposals/array-last":["esnext.array.last-index","esnext.array.last-item"],"core-js/proposals/array-unique":["es.map","esnext.array.unique-by","esnext.typed-array.unique-by"],"core-js/proposals/async-iteration":["es.symbol.async-iterator"],"core-js/proposals/change-array-by-copy":["esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/proposals/collection-methods":["esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.set.add-all","esnext.set.delete-all","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.weak-map.delete-all","esnext.weak-set.add-all","esnext.weak-set.delete-all"],"core-js/proposals/collection-of-from":["esnext.map.from","esnext.map.of","esnext.set.from","esnext.set.of","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.from","esnext.weak-set.of"],"core-js/proposals/decorators":["esnext.symbol.metadata"],"core-js/proposals/efficient-64-bit-arithmetic":["esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.umulh"],"core-js/proposals/error-cause":["es.error.cause","es.aggregate-error.cause"],"core-js/proposals/function-is-callable-is-constructor":["esnext.function.is-callable","esnext.function.is-constructor"],"core-js/proposals/function-un-this":["esnext.function.un-this"],"core-js/proposals/global-this":["esnext.global-this"],"core-js/proposals/iterator-helpers":["esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/keys-composition":["esnext.composite-key","esnext.composite-symbol"],"core-js/proposals/map-update-or-insert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert-stage-2":["esnext.map.emplace","esnext.weak-map.emplace"],"core-js/proposals/math-extensions":["esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale"],"core-js/proposals/math-signbit":["esnext.math.signbit"],"core-js/proposals/number-from-string":["esnext.number.from-string"],"core-js/proposals/number-range":["esnext.bigint.range","esnext.number.range"],"core-js/proposals/object-from-entries":["es.object.from-entries"],"core-js/proposals/object-getownpropertydescriptors":["es.object.get-own-property-descriptors"],"core-js/proposals/object-iteration":["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],"core-js/proposals/object-values-entries":["es.object.entries","es.object.values"],"core-js/proposals/observable":["esnext.observable","esnext.symbol.observable"],"core-js/proposals/pattern-matching":["esnext.symbol.matcher","esnext.symbol.pattern-match"],"core-js/proposals/promise-all-settled":["esnext.promise.all-settled"],"core-js/proposals/promise-any":["esnext.aggregate-error","esnext.promise.any"],"core-js/proposals/promise-finally":["es.promise.finally"],"core-js/proposals/promise-try":["esnext.promise.try"],"core-js/proposals/reflect-metadata":["esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/proposals/regexp-dotall-flag":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags"],"core-js/proposals/regexp-named-groups":["es.regexp.constructor","es.regexp.exec","es.string.replace"],"core-js/proposals/relative-indexing-method":["es.string.at-alternative","esnext.array.at","esnext.typed-array.at"],"core-js/proposals/seeded-random":["esnext.math.seeded-prng"],"core-js/proposals/set-methods":["esnext.set.difference","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.symmetric-difference","esnext.set.union"],"core-js/proposals/string-at":["esnext.string.at"],"core-js/proposals/string-code-points":["esnext.string.code-points"],"core-js/proposals/string-cooked":["esnext.string.cooked"],"core-js/proposals/string-left-right-trim":["es.string.trim-end","es.string.trim-start"],"core-js/proposals/string-match-all":["esnext.string.match-all"],"core-js/proposals/string-padding":["es.string.pad-end","es.string.pad-start"],"core-js/proposals/string-replace-all":["esnext.string.replace-all","esnext.symbol.replace-all"],"core-js/proposals/string-replace-all-stage-4":["esnext.string.replace-all"],"core-js/proposals/symbol-description":["es.symbol.description"],"core-js/proposals/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/proposals/using-statement":["esnext.symbol.async-dispose","esnext.symbol.dispose"],"core-js/proposals/well-formed-stringify":["es.json.stringify"],"core-js/stable":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/stable/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/stable/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string","es.string.iterator"],"core-js/stable/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/stable/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/stable/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/stable/array-buffer/slice":["es.array-buffer.slice"],"core-js/stable/array/at":["es.array.at"],"core-js/stable/array/concat":["es.array.concat"],"core-js/stable/array/copy-within":["es.array.copy-within"],"core-js/stable/array/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/every":["es.array.every"],"core-js/stable/array/fill":["es.array.fill"],"core-js/stable/array/filter":["es.array.filter"],"core-js/stable/array/find":["es.array.find"],"core-js/stable/array/find-index":["es.array.find-index"],"core-js/stable/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/for-each":["es.array.for-each"],"core-js/stable/array/from":["es.array.from","es.string.iterator"],"core-js/stable/array/includes":["es.array.includes"],"core-js/stable/array/index-of":["es.array.index-of"],"core-js/stable/array/is-array":["es.array.is-array"],"core-js/stable/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/join":["es.array.join"],"core-js/stable/array/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/last-index-of":["es.array.last-index-of"],"core-js/stable/array/map":["es.array.map"],"core-js/stable/array/of":["es.array.of"],"core-js/stable/array/reduce":["es.array.reduce"],"core-js/stable/array/reduce-right":["es.array.reduce-right"],"core-js/stable/array/reverse":["es.array.reverse"],"core-js/stable/array/slice":["es.array.slice"],"core-js/stable/array/some":["es.array.some"],"core-js/stable/array/sort":["es.array.sort"],"core-js/stable/array/splice":["es.array.splice"],"core-js/stable/array/values":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string"],"core-js/stable/array/virtual/at":["es.array.at"],"core-js/stable/array/virtual/concat":["es.array.concat"],"core-js/stable/array/virtual/copy-within":["es.array.copy-within"],"core-js/stable/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/every":["es.array.every"],"core-js/stable/array/virtual/fill":["es.array.fill"],"core-js/stable/array/virtual/filter":["es.array.filter"],"core-js/stable/array/virtual/find":["es.array.find"],"core-js/stable/array/virtual/find-index":["es.array.find-index"],"core-js/stable/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/virtual/for-each":["es.array.for-each"],"core-js/stable/array/virtual/includes":["es.array.includes"],"core-js/stable/array/virtual/index-of":["es.array.index-of"],"core-js/stable/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/join":["es.array.join"],"core-js/stable/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/stable/array/virtual/map":["es.array.map"],"core-js/stable/array/virtual/reduce":["es.array.reduce"],"core-js/stable/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/stable/array/virtual/reverse":["es.array.reverse"],"core-js/stable/array/virtual/slice":["es.array.slice"],"core-js/stable/array/virtual/some":["es.array.some"],"core-js/stable/array/virtual/sort":["es.array.sort"],"core-js/stable/array/virtual/splice":["es.array.splice"],"core-js/stable/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/stable/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/clear-immediate":["web.immediate"],"core-js/stable/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/stable/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/stable/date/get-year":["es.date.get-year"],"core-js/stable/date/now":["es.date.now"],"core-js/stable/date/set-year":["es.date.set-year"],"core-js/stable/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/stable/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/stable/date/to-json":["es.date.to-json"],"core-js/stable/date/to-primitive":["es.date.to-primitive"],"core-js/stable/date/to-string":["es.date.to-string"],"core-js/stable/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/stable/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/stable/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/stable/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/stable/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/stable/error":["es.error.cause","es.error.to-string"],"core-js/stable/error/constructor":["es.error.cause"],"core-js/stable/error/to-string":["es.error.to-string"],"core-js/stable/escape":["es.escape"],"core-js/stable/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/stable/function/bind":["es.function.bind"],"core-js/stable/function/has-instance":["es.function.has-instance"],"core-js/stable/function/name":["es.function.name"],"core-js/stable/function/virtual":["es.function.bind"],"core-js/stable/function/virtual/bind":["es.function.bind"],"core-js/stable/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/global-this":["es.global-this"],"core-js/stable/instance/at":["es.array.at","es.string.at-alternative"],"core-js/stable/instance/bind":["es.function.bind"],"core-js/stable/instance/code-point-at":["es.string.code-point-at"],"core-js/stable/instance/concat":["es.array.concat"],"core-js/stable/instance/copy-within":["es.array.copy-within"],"core-js/stable/instance/ends-with":["es.string.ends-with"],"core-js/stable/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/every":["es.array.every"],"core-js/stable/instance/fill":["es.array.fill"],"core-js/stable/instance/filter":["es.array.filter"],"core-js/stable/instance/find":["es.array.find"],"core-js/stable/instance/find-index":["es.array.find-index"],"core-js/stable/instance/flags":["es.regexp.flags"],"core-js/stable/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/stable/instance/includes":["es.array.includes","es.string.includes"],"core-js/stable/instance/index-of":["es.array.index-of"],"core-js/stable/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/last-index-of":["es.array.last-index-of"],"core-js/stable/instance/map":["es.array.map"],"core-js/stable/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/instance/pad-end":["es.string.pad-end"],"core-js/stable/instance/pad-start":["es.string.pad-start"],"core-js/stable/instance/reduce":["es.array.reduce"],"core-js/stable/instance/reduce-right":["es.array.reduce-right"],"core-js/stable/instance/repeat":["es.string.repeat"],"core-js/stable/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/instance/reverse":["es.array.reverse"],"core-js/stable/instance/slice":["es.array.slice"],"core-js/stable/instance/some":["es.array.some"],"core-js/stable/instance/sort":["es.array.sort"],"core-js/stable/instance/splice":["es.array.splice"],"core-js/stable/instance/starts-with":["es.string.starts-with"],"core-js/stable/instance/trim":["es.string.trim"],"core-js/stable/instance/trim-end":["es.string.trim-end"],"core-js/stable/instance/trim-left":["es.string.trim-start"],"core-js/stable/instance/trim-right":["es.string.trim-end"],"core-js/stable/instance/trim-start":["es.string.trim-start"],"core-js/stable/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/json":["es.json.stringify","es.json.to-string-tag"],"core-js/stable/json/stringify":["es.json.stringify"],"core-js/stable/json/to-string-tag":["es.json.to-string-tag"],"core-js/stable/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/stable/math/acosh":["es.math.acosh"],"core-js/stable/math/asinh":["es.math.asinh"],"core-js/stable/math/atanh":["es.math.atanh"],"core-js/stable/math/cbrt":["es.math.cbrt"],"core-js/stable/math/clz32":["es.math.clz32"],"core-js/stable/math/cosh":["es.math.cosh"],"core-js/stable/math/expm1":["es.math.expm1"],"core-js/stable/math/fround":["es.math.fround"],"core-js/stable/math/hypot":["es.math.hypot"],"core-js/stable/math/imul":["es.math.imul"],"core-js/stable/math/log10":["es.math.log10"],"core-js/stable/math/log1p":["es.math.log1p"],"core-js/stable/math/log2":["es.math.log2"],"core-js/stable/math/sign":["es.math.sign"],"core-js/stable/math/sinh":["es.math.sinh"],"core-js/stable/math/tanh":["es.math.tanh"],"core-js/stable/math/to-string-tag":["es.math.to-string-tag"],"core-js/stable/math/trunc":["es.math.trunc"],"core-js/stable/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/constructor":["es.number.constructor"],"core-js/stable/number/epsilon":["es.number.epsilon"],"core-js/stable/number/is-finite":["es.number.is-finite"],"core-js/stable/number/is-integer":["es.number.is-integer"],"core-js/stable/number/is-nan":["es.number.is-nan"],"core-js/stable/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/stable/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/stable/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/stable/number/parse-float":["es.number.parse-float"],"core-js/stable/number/parse-int":["es.number.parse-int"],"core-js/stable/number/to-exponential":["es.number.to-exponential"],"core-js/stable/number/to-fixed":["es.number.to-fixed"],"core-js/stable/number/to-precision":["es.number.to-precision"],"core-js/stable/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/stable/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/stable/number/virtual/to-precision":["es.number.to-precision"],"core-js/stable/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/object/assign":["es.object.assign"],"core-js/stable/object/create":["es.object.create"],"core-js/stable/object/define-getter":["es.object.define-getter"],"core-js/stable/object/define-properties":["es.object.define-properties"],"core-js/stable/object/define-property":["es.object.define-property"],"core-js/stable/object/define-setter":["es.object.define-setter"],"core-js/stable/object/entries":["es.object.entries"],"core-js/stable/object/freeze":["es.object.freeze"],"core-js/stable/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/stable/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/stable/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/stable/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/stable/object/get-own-property-symbols":["es.symbol"],"core-js/stable/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/stable/object/has-own":["es.object.has-own"],"core-js/stable/object/is":["es.object.is"],"core-js/stable/object/is-extensible":["es.object.is-extensible"],"core-js/stable/object/is-frozen":["es.object.is-frozen"],"core-js/stable/object/is-sealed":["es.object.is-sealed"],"core-js/stable/object/keys":["es.object.keys"],"core-js/stable/object/lookup-getter":["es.object.lookup-getter"],"core-js/stable/object/lookup-setter":["es.object.lookup-setter"],"core-js/stable/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/stable/object/seal":["es.object.seal"],"core-js/stable/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/stable/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/object/values":["es.object.values"],"core-js/stable/parse-float":["es.parse-float"],"core-js/stable/parse-int":["es.parse-int"],"core-js/stable/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/stable/queue-microtask":["web.queue-microtask"],"core-js/stable/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/stable/reflect/apply":["es.reflect.apply"],"core-js/stable/reflect/construct":["es.reflect.construct"],"core-js/stable/reflect/define-property":["es.reflect.define-property"],"core-js/stable/reflect/delete-property":["es.reflect.delete-property"],"core-js/stable/reflect/get":["es.reflect.get"],"core-js/stable/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/stable/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/stable/reflect/has":["es.reflect.has"],"core-js/stable/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/stable/reflect/own-keys":["es.reflect.own-keys"],"core-js/stable/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/stable/reflect/set":["es.reflect.set"],"core-js/stable/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/stable/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/stable/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/stable/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/stable/regexp/flags":["es.regexp.flags"],"core-js/stable/regexp/match":["es.regexp.exec","es.string.match"],"core-js/stable/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/regexp/search":["es.regexp.exec","es.string.search"],"core-js/stable/regexp/split":["es.regexp.exec","es.string.split"],"core-js/stable/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/stable/regexp/to-string":["es.regexp.to-string"],"core-js/stable/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/set-immediate":["web.immediate"],"core-js/stable/set-interval":["web.timers"],"core-js/stable/set-timeout":["web.timers"],"core-js/stable/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/anchor":["es.string.anchor"],"core-js/stable/string/at":["es.string.at-alternative"],"core-js/stable/string/big":["es.string.big"],"core-js/stable/string/blink":["es.string.blink"],"core-js/stable/string/bold":["es.string.bold"],"core-js/stable/string/code-point-at":["es.string.code-point-at"],"core-js/stable/string/ends-with":["es.string.ends-with"],"core-js/stable/string/fixed":["es.string.fixed"],"core-js/stable/string/fontcolor":["es.string.fontcolor"],"core-js/stable/string/fontsize":["es.string.fontsize"],"core-js/stable/string/from-code-point":["es.string.from-code-point"],"core-js/stable/string/includes":["es.string.includes"],"core-js/stable/string/italics":["es.string.italics"],"core-js/stable/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/link":["es.string.link"],"core-js/stable/string/match":["es.regexp.exec","es.string.match"],"core-js/stable/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/pad-end":["es.string.pad-end"],"core-js/stable/string/pad-start":["es.string.pad-start"],"core-js/stable/string/raw":["es.string.raw"],"core-js/stable/string/repeat":["es.string.repeat"],"core-js/stable/string/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/search":["es.regexp.exec","es.string.search"],"core-js/stable/string/small":["es.string.small"],"core-js/stable/string/split":["es.regexp.exec","es.string.split"],"core-js/stable/string/starts-with":["es.string.starts-with"],"core-js/stable/string/strike":["es.string.strike"],"core-js/stable/string/sub":["es.string.sub"],"core-js/stable/string/substr":["es.string.substr"],"core-js/stable/string/sup":["es.string.sup"],"core-js/stable/string/trim":["es.string.trim"],"core-js/stable/string/trim-end":["es.string.trim-end"],"core-js/stable/string/trim-left":["es.string.trim-start"],"core-js/stable/string/trim-right":["es.string.trim-end"],"core-js/stable/string/trim-start":["es.string.trim-start"],"core-js/stable/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/virtual/anchor":["es.string.anchor"],"core-js/stable/string/virtual/at":["es.string.at-alternative"],"core-js/stable/string/virtual/big":["es.string.big"],"core-js/stable/string/virtual/blink":["es.string.blink"],"core-js/stable/string/virtual/bold":["es.string.bold"],"core-js/stable/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/stable/string/virtual/ends-with":["es.string.ends-with"],"core-js/stable/string/virtual/fixed":["es.string.fixed"],"core-js/stable/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/stable/string/virtual/fontsize":["es.string.fontsize"],"core-js/stable/string/virtual/includes":["es.string.includes"],"core-js/stable/string/virtual/italics":["es.string.italics"],"core-js/stable/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/virtual/link":["es.string.link"],"core-js/stable/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/virtual/pad-end":["es.string.pad-end"],"core-js/stable/string/virtual/pad-start":["es.string.pad-start"],"core-js/stable/string/virtual/repeat":["es.string.repeat"],"core-js/stable/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/virtual/small":["es.string.small"],"core-js/stable/string/virtual/starts-with":["es.string.starts-with"],"core-js/stable/string/virtual/strike":["es.string.strike"],"core-js/stable/string/virtual/sub":["es.string.sub"],"core-js/stable/string/virtual/substr":["es.string.substr"],"core-js/stable/string/virtual/sup":["es.string.sup"],"core-js/stable/string/virtual/trim":["es.string.trim"],"core-js/stable/string/virtual/trim-end":["es.string.trim-end"],"core-js/stable/string/virtual/trim-left":["es.string.trim-start"],"core-js/stable/string/virtual/trim-right":["es.string.trim-end"],"core-js/stable/string/virtual/trim-start":["es.string.trim-start"],"core-js/stable/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/stable/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/stable/symbol/description":["es.symbol.description"],"core-js/stable/symbol/for":["es.symbol"],"core-js/stable/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/stable/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/stable/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/symbol/key-for":["es.symbol"],"core-js/stable/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/stable/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/stable/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/stable/symbol/species":["es.symbol.species"],"core-js/stable/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/stable/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/stable/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/symbol/unscopables":["es.symbol.unscopables"],"core-js/stable/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/at":["es.typed-array.at"],"core-js/stable/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/stable/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/every":["es.typed-array.every"],"core-js/stable/typed-array/fill":["es.typed-array.fill"],"core-js/stable/typed-array/filter":["es.typed-array.filter"],"core-js/stable/typed-array/find":["es.typed-array.find"],"core-js/stable/typed-array/find-index":["es.typed-array.find-index"],"core-js/stable/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/for-each":["es.typed-array.for-each"],"core-js/stable/typed-array/from":["es.typed-array.from"],"core-js/stable/typed-array/includes":["es.typed-array.includes"],"core-js/stable/typed-array/index-of":["es.typed-array.index-of"],"core-js/stable/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/join":["es.typed-array.join"],"core-js/stable/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/stable/typed-array/map":["es.typed-array.map"],"core-js/stable/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/of":["es.typed-array.of"],"core-js/stable/typed-array/reduce":["es.typed-array.reduce"],"core-js/stable/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/stable/typed-array/reverse":["es.typed-array.reverse"],"core-js/stable/typed-array/set":["es.typed-array.set"],"core-js/stable/typed-array/slice":["es.typed-array.slice"],"core-js/stable/typed-array/some":["es.typed-array.some"],"core-js/stable/typed-array/sort":["es.typed-array.sort"],"core-js/stable/typed-array/subarray":["es.typed-array.subarray"],"core-js/stable/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/stable/typed-array/to-string":["es.typed-array.to-string"],"core-js/stable/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/unescape":["es.unescape"],"core-js/stable/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/stable/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/stable/url/to-json":["web.url.to-json"],"core-js/stable/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","web.dom-collections.iterator"],"core-js/stable/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/stage":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/stage/0":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/stage/1":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of"],"core-js/stage/2":["es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.emplace","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.set.difference","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.symmetric-difference","esnext.set.union","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.weak-map.emplace"],"core-js/stage/3":["es.string.at-alternative","esnext.aggregate-error","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.global-this","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.string.match-all","esnext.string.replace-all","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/stage/4":["es.string.at-alternative","esnext.aggregate-error","esnext.array.at","esnext.global-this","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.string.match-all","esnext.string.replace-all","esnext.typed-array.at"],"core-js/stage/pre":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/web":["web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/web/dom-collections":["web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/web/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/web/immediate":["web.immediate"],"core-js/web/queue-microtask":["web.queue-microtask"],"core-js/web/structured-clone":["es.array.iterator","es.map","es.object.to-string","es.set","web.structured-clone"],"core-js/web/timers":["web.timers"],"core-js/web/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/web/url-search-params":["web.url-search-params"]}')},4232:e=>{"use strict";e.exports=JSON.parse('{"3.0":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.now","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.function.bind","es.function.has-instance","es.function.name","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.regexp.constructor","es.regexp.exec","es.regexp.flags","es.regexp.to-string","es.set","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.search","es.string.split","es.string.starts-with","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.last-index","esnext.array.last-item","esnext.composite-key","esnext.composite-symbol","esnext.global-this","esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.dispose","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.for-each","web.dom-collections.iterator","web.immediate","web.queue-microtask","web.timers","web.url","web.url.to-json","web.url-search-params"],"3.1":["es.string.match-all","es.symbol.match-all","esnext.symbol.replace-all"],"3.2":["es.promise.all-settled","esnext.array.is-template-object","esnext.map.update-or-insert","esnext.symbol.async-dispose"],"3.3":["es.global-this","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.map.upsert","esnext.weak-map.upsert"],"3.4":["es.json.stringify"],"3.5":["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],"3.6":["es.regexp.sticky","es.regexp.test"],"3.7":["es.aggregate-error","es.promise.any","es.reflect.to-string-tag","es.string.replace-all","esnext.map.emplace","esnext.weak-map.emplace"],"3.8":["esnext.array.at","esnext.array.filter-out","esnext.array.unique-by","esnext.bigint.range","esnext.number.range","esnext.typed-array.at","esnext.typed-array.filter-out"],"3.9":["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.unique-by"],"3.11":["esnext.object.has-own"],"3.12":["esnext.symbol.matcher","esnext.symbol.metadata"],"3.15":["es.date.get-year","es.date.set-year","es.date.to-gmt-string","es.escape","es.regexp.dot-all","es.string.substr","es.unescape"],"3.16":["esnext.array.filter-reject","esnext.array.group-by","esnext.typed-array.filter-reject","esnext.typed-array.group-by"],"3.17":["es.array.at","es.object.has-own","es.string.at-alternative","es.typed-array.at"],"3.18":["esnext.array.from-async","esnext.typed-array.from-async"],"3.20":["es.error.cause","es.error.to-string","es.aggregate-error.cause","es.number.to-exponential","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.iterator.to-async","esnext.string.cooked","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"3.21":["web.atob","web.btoa"]}')},1335:e=>{"use strict";e.exports=JSON.parse('["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"]')},3348:e=>{"use strict";e.exports={i8:"5.1.1"}},7137:e=>{"use strict";e.exports=JSON.parse('{"AssignmentExpression":["left","right"],"AssignmentPattern":["left","right"],"ArrayExpression":["elements"],"ArrayPattern":["elements"],"ArrowFunctionExpression":["params","body"],"AwaitExpression":["argument"],"BlockStatement":["body"],"BinaryExpression":["left","right"],"BreakStatement":["label"],"CallExpression":["callee","arguments"],"CatchClause":["param","body"],"ChainExpression":["expression"],"ClassBody":["body"],"ClassDeclaration":["id","superClass","body"],"ClassExpression":["id","superClass","body"],"ConditionalExpression":["test","consequent","alternate"],"ContinueStatement":["label"],"DebuggerStatement":[],"DoWhileStatement":["body","test"],"EmptyStatement":[],"ExportAllDeclaration":["exported","source"],"ExportDefaultDeclaration":["declaration"],"ExportNamedDeclaration":["declaration","specifiers","source"],"ExportSpecifier":["exported","local"],"ExpressionStatement":["expression"],"ExperimentalRestProperty":["argument"],"ExperimentalSpreadProperty":["argument"],"ForStatement":["init","test","update","body"],"ForInStatement":["left","right","body"],"ForOfStatement":["left","right","body"],"FunctionDeclaration":["id","params","body"],"FunctionExpression":["id","params","body"],"Identifier":[],"IfStatement":["test","consequent","alternate"],"ImportDeclaration":["specifiers","source"],"ImportDefaultSpecifier":["local"],"ImportExpression":["source"],"ImportNamespaceSpecifier":["local"],"ImportSpecifier":["imported","local"],"JSXAttribute":["name","value"],"JSXClosingElement":["name"],"JSXElement":["openingElement","children","closingElement"],"JSXEmptyExpression":[],"JSXExpressionContainer":["expression"],"JSXIdentifier":[],"JSXMemberExpression":["object","property"],"JSXNamespacedName":["namespace","name"],"JSXOpeningElement":["name","attributes"],"JSXSpreadAttribute":["argument"],"JSXText":[],"JSXFragment":["openingFragment","children","closingFragment"],"Literal":[],"LabeledStatement":["label","body"],"LogicalExpression":["left","right"],"MemberExpression":["object","property"],"MetaProperty":["meta","property"],"MethodDefinition":["key","value"],"NewExpression":["callee","arguments"],"ObjectExpression":["properties"],"ObjectPattern":["properties"],"PrivateIdentifier":[],"Program":["body"],"Property":["key","value"],"PropertyDefinition":["key","value"],"RestElement":["argument"],"ReturnStatement":["argument"],"SequenceExpression":["expressions"],"SpreadElement":["argument"],"Super":[],"SwitchStatement":["discriminant","cases"],"SwitchCase":["test","consequent"],"TaggedTemplateExpression":["tag","quasi"],"TemplateElement":[],"TemplateLiteral":["quasis","expressions"],"ThisExpression":[],"ThrowStatement":["argument"],"TryStatement":["block","handler","finalizer"],"UnaryExpression":["argument"],"UpdateExpression":["argument"],"VariableDeclaration":["declarations"],"VariableDeclarator":["id","init"],"WhileStatement":["test","body"],"WithStatement":["object","body"],"YieldExpression":["argument"]}')},4378:e=>{"use strict";e.exports={i8:"7.32.0"}},4730:e=>{"use strict";e.exports={version:"4.3.0"}},1752:e=>{"use strict";e.exports={i8:"4.3.0"}},3676:e=>{"use strict";e.exports=JSON.parse('{"builtin":{"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es5":{"Array":false,"Boolean":false,"constructor":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"propertyIsEnumerable":false,"RangeError":false,"ReferenceError":false,"RegExp":false,"String":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false},"es2015":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2017":{"Array":false,"ArrayBuffer":false,"Atomics":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"browser":{"AbortController":false,"AbortSignal":false,"addEventListener":false,"alert":false,"AnalyserNode":false,"Animation":false,"AnimationEffectReadOnly":false,"AnimationEffectTiming":false,"AnimationEffectTimingReadOnly":false,"AnimationEvent":false,"AnimationPlaybackEvent":false,"AnimationTimeline":false,"applicationCache":false,"ApplicationCache":false,"ApplicationCacheErrorEvent":false,"atob":false,"Attr":false,"Audio":false,"AudioBuffer":false,"AudioBufferSourceNode":false,"AudioContext":false,"AudioDestinationNode":false,"AudioListener":false,"AudioNode":false,"AudioParam":false,"AudioProcessingEvent":false,"AudioScheduledSourceNode":false,"AudioWorkletGlobalScope ":false,"AudioWorkletNode":false,"AudioWorkletProcessor":false,"BarProp":false,"BaseAudioContext":false,"BatteryManager":false,"BeforeUnloadEvent":false,"BiquadFilterNode":false,"Blob":false,"BlobEvent":false,"blur":false,"BroadcastChannel":false,"btoa":false,"BudgetService":false,"ByteLengthQueuingStrategy":false,"Cache":false,"caches":false,"CacheStorage":false,"cancelAnimationFrame":false,"cancelIdleCallback":false,"CanvasCaptureMediaStreamTrack":false,"CanvasGradient":false,"CanvasPattern":false,"CanvasRenderingContext2D":false,"ChannelMergerNode":false,"ChannelSplitterNode":false,"CharacterData":false,"clearInterval":false,"clearTimeout":false,"clientInformation":false,"ClipboardEvent":false,"close":false,"closed":false,"CloseEvent":false,"Comment":false,"CompositionEvent":false,"confirm":false,"console":false,"ConstantSourceNode":false,"ConvolverNode":false,"CountQueuingStrategy":false,"createImageBitmap":false,"Credential":false,"CredentialsContainer":false,"crypto":false,"Crypto":false,"CryptoKey":false,"CSS":false,"CSSConditionRule":false,"CSSFontFaceRule":false,"CSSGroupingRule":false,"CSSImportRule":false,"CSSKeyframeRule":false,"CSSKeyframesRule":false,"CSSMediaRule":false,"CSSNamespaceRule":false,"CSSPageRule":false,"CSSRule":false,"CSSRuleList":false,"CSSStyleDeclaration":false,"CSSStyleRule":false,"CSSStyleSheet":false,"CSSSupportsRule":false,"CustomElementRegistry":false,"customElements":false,"CustomEvent":false,"DataTransfer":false,"DataTransferItem":false,"DataTransferItemList":false,"defaultstatus":false,"defaultStatus":false,"DelayNode":false,"DeviceMotionEvent":false,"DeviceOrientationEvent":false,"devicePixelRatio":false,"dispatchEvent":false,"document":false,"Document":false,"DocumentFragment":false,"DocumentType":false,"DOMError":false,"DOMException":false,"DOMImplementation":false,"DOMMatrix":false,"DOMMatrixReadOnly":false,"DOMParser":false,"DOMPoint":false,"DOMPointReadOnly":false,"DOMQuad":false,"DOMRect":false,"DOMRectReadOnly":false,"DOMStringList":false,"DOMStringMap":false,"DOMTokenList":false,"DragEvent":false,"DynamicsCompressorNode":false,"Element":false,"ErrorEvent":false,"event":false,"Event":false,"EventSource":false,"EventTarget":false,"external":false,"fetch":false,"File":false,"FileList":false,"FileReader":false,"find":false,"focus":false,"FocusEvent":false,"FontFace":false,"FontFaceSetLoadEvent":false,"FormData":false,"frameElement":false,"frames":false,"GainNode":false,"Gamepad":false,"GamepadButton":false,"GamepadEvent":false,"getComputedStyle":false,"getSelection":false,"HashChangeEvent":false,"Headers":false,"history":false,"History":false,"HTMLAllCollection":false,"HTMLAnchorElement":false,"HTMLAreaElement":false,"HTMLAudioElement":false,"HTMLBaseElement":false,"HTMLBodyElement":false,"HTMLBRElement":false,"HTMLButtonElement":false,"HTMLCanvasElement":false,"HTMLCollection":false,"HTMLContentElement":false,"HTMLDataElement":false,"HTMLDataListElement":false,"HTMLDetailsElement":false,"HTMLDialogElement":false,"HTMLDirectoryElement":false,"HTMLDivElement":false,"HTMLDListElement":false,"HTMLDocument":false,"HTMLElement":false,"HTMLEmbedElement":false,"HTMLFieldSetElement":false,"HTMLFontElement":false,"HTMLFormControlsCollection":false,"HTMLFormElement":false,"HTMLFrameElement":false,"HTMLFrameSetElement":false,"HTMLHeadElement":false,"HTMLHeadingElement":false,"HTMLHRElement":false,"HTMLHtmlElement":false,"HTMLIFrameElement":false,"HTMLImageElement":false,"HTMLInputElement":false,"HTMLLabelElement":false,"HTMLLegendElement":false,"HTMLLIElement":false,"HTMLLinkElement":false,"HTMLMapElement":false,"HTMLMarqueeElement":false,"HTMLMediaElement":false,"HTMLMenuElement":false,"HTMLMetaElement":false,"HTMLMeterElement":false,"HTMLModElement":false,"HTMLObjectElement":false,"HTMLOListElement":false,"HTMLOptGroupElement":false,"HTMLOptionElement":false,"HTMLOptionsCollection":false,"HTMLOutputElement":false,"HTMLParagraphElement":false,"HTMLParamElement":false,"HTMLPictureElement":false,"HTMLPreElement":false,"HTMLProgressElement":false,"HTMLQuoteElement":false,"HTMLScriptElement":false,"HTMLSelectElement":false,"HTMLShadowElement":false,"HTMLSlotElement":false,"HTMLSourceElement":false,"HTMLSpanElement":false,"HTMLStyleElement":false,"HTMLTableCaptionElement":false,"HTMLTableCellElement":false,"HTMLTableColElement":false,"HTMLTableElement":false,"HTMLTableRowElement":false,"HTMLTableSectionElement":false,"HTMLTemplateElement":false,"HTMLTextAreaElement":false,"HTMLTimeElement":false,"HTMLTitleElement":false,"HTMLTrackElement":false,"HTMLUListElement":false,"HTMLUnknownElement":false,"HTMLVideoElement":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"IdleDeadline":false,"IIRFilterNode":false,"Image":false,"ImageBitmap":false,"ImageBitmapRenderingContext":false,"ImageCapture":false,"ImageData":false,"indexedDB":false,"innerHeight":false,"innerWidth":false,"InputEvent":false,"IntersectionObserver":false,"IntersectionObserverEntry":false,"Intl":false,"isSecureContext":false,"KeyboardEvent":false,"KeyframeEffect":false,"KeyframeEffectReadOnly":false,"length":false,"localStorage":false,"location":true,"Location":false,"locationbar":false,"matchMedia":false,"MediaDeviceInfo":false,"MediaDevices":false,"MediaElementAudioSourceNode":false,"MediaEncryptedEvent":false,"MediaError":false,"MediaKeyMessageEvent":false,"MediaKeySession":false,"MediaKeyStatusMap":false,"MediaKeySystemAccess":false,"MediaList":false,"MediaQueryList":false,"MediaQueryListEvent":false,"MediaRecorder":false,"MediaSettingsRange":false,"MediaSource":false,"MediaStream":false,"MediaStreamAudioDestinationNode":false,"MediaStreamAudioSourceNode":false,"MediaStreamEvent":false,"MediaStreamTrack":false,"MediaStreamTrackEvent":false,"menubar":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"MIDIAccess":false,"MIDIConnectionEvent":false,"MIDIInput":false,"MIDIInputMap":false,"MIDIMessageEvent":false,"MIDIOutput":false,"MIDIOutputMap":false,"MIDIPort":false,"MimeType":false,"MimeTypeArray":false,"MouseEvent":false,"moveBy":false,"moveTo":false,"MutationEvent":false,"MutationObserver":false,"MutationRecord":false,"name":false,"NamedNodeMap":false,"NavigationPreloadManager":false,"navigator":false,"Navigator":false,"NetworkInformation":false,"Node":false,"NodeFilter":false,"NodeIterator":false,"NodeList":false,"Notification":false,"OfflineAudioCompletionEvent":false,"OfflineAudioContext":false,"offscreenBuffering":false,"OffscreenCanvas":true,"onabort":true,"onafterprint":true,"onanimationend":true,"onanimationiteration":true,"onanimationstart":true,"onappinstalled":true,"onauxclick":true,"onbeforeinstallprompt":true,"onbeforeprint":true,"onbeforeunload":true,"onblur":true,"oncancel":true,"oncanplay":true,"oncanplaythrough":true,"onchange":true,"onclick":true,"onclose":true,"oncontextmenu":true,"oncuechange":true,"ondblclick":true,"ondevicemotion":true,"ondeviceorientation":true,"ondeviceorientationabsolute":true,"ondrag":true,"ondragend":true,"ondragenter":true,"ondragleave":true,"ondragover":true,"ondragstart":true,"ondrop":true,"ondurationchange":true,"onemptied":true,"onended":true,"onerror":true,"onfocus":true,"ongotpointercapture":true,"onhashchange":true,"oninput":true,"oninvalid":true,"onkeydown":true,"onkeypress":true,"onkeyup":true,"onlanguagechange":true,"onload":true,"onloadeddata":true,"onloadedmetadata":true,"onloadstart":true,"onlostpointercapture":true,"onmessage":true,"onmessageerror":true,"onmousedown":true,"onmouseenter":true,"onmouseleave":true,"onmousemove":true,"onmouseout":true,"onmouseover":true,"onmouseup":true,"onmousewheel":true,"onoffline":true,"ononline":true,"onpagehide":true,"onpageshow":true,"onpause":true,"onplay":true,"onplaying":true,"onpointercancel":true,"onpointerdown":true,"onpointerenter":true,"onpointerleave":true,"onpointermove":true,"onpointerout":true,"onpointerover":true,"onpointerup":true,"onpopstate":true,"onprogress":true,"onratechange":true,"onrejectionhandled":true,"onreset":true,"onresize":true,"onscroll":true,"onsearch":true,"onseeked":true,"onseeking":true,"onselect":true,"onstalled":true,"onstorage":true,"onsubmit":true,"onsuspend":true,"ontimeupdate":true,"ontoggle":true,"ontransitionend":true,"onunhandledrejection":true,"onunload":true,"onvolumechange":true,"onwaiting":true,"onwheel":true,"open":false,"openDatabase":false,"opener":false,"Option":false,"origin":false,"OscillatorNode":false,"outerHeight":false,"outerWidth":false,"PageTransitionEvent":false,"pageXOffset":false,"pageYOffset":false,"PannerNode":false,"parent":false,"Path2D":false,"PaymentAddress":false,"PaymentRequest":false,"PaymentRequestUpdateEvent":false,"PaymentResponse":false,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceLongTaskTiming":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceNavigationTiming":false,"PerformanceObserver":false,"PerformanceObserverEntryList":false,"PerformancePaintTiming":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"PeriodicWave":false,"Permissions":false,"PermissionStatus":false,"personalbar":false,"PhotoCapabilities":false,"Plugin":false,"PluginArray":false,"PointerEvent":false,"PopStateEvent":false,"postMessage":false,"Presentation":false,"PresentationAvailability":false,"PresentationConnection":false,"PresentationConnectionAvailableEvent":false,"PresentationConnectionCloseEvent":false,"PresentationConnectionList":false,"PresentationReceiver":false,"PresentationRequest":false,"print":false,"ProcessingInstruction":false,"ProgressEvent":false,"PromiseRejectionEvent":false,"prompt":false,"PushManager":false,"PushSubscription":false,"PushSubscriptionOptions":false,"queueMicrotask":false,"RadioNodeList":false,"Range":false,"ReadableStream":false,"registerProcessor":false,"RemotePlayback":false,"removeEventListener":false,"Request":false,"requestAnimationFrame":false,"requestIdleCallback":false,"resizeBy":false,"ResizeObserver":false,"ResizeObserverEntry":false,"resizeTo":false,"Response":false,"RTCCertificate":false,"RTCDataChannel":false,"RTCDataChannelEvent":false,"RTCDtlsTransport":false,"RTCIceCandidate":false,"RTCIceGatherer":false,"RTCIceTransport":false,"RTCPeerConnection":false,"RTCPeerConnectionIceEvent":false,"RTCRtpContributingSource":false,"RTCRtpReceiver":false,"RTCRtpSender":false,"RTCSctpTransport":false,"RTCSessionDescription":false,"RTCStatsReport":false,"RTCTrackEvent":false,"screen":false,"Screen":false,"screenLeft":false,"ScreenOrientation":false,"screenTop":false,"screenX":false,"screenY":false,"ScriptProcessorNode":false,"scroll":false,"scrollbars":false,"scrollBy":false,"scrollTo":false,"scrollX":false,"scrollY":false,"SecurityPolicyViolationEvent":false,"Selection":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerRegistration":false,"sessionStorage":false,"setInterval":false,"setTimeout":false,"ShadowRoot":false,"SharedWorker":false,"SourceBuffer":false,"SourceBufferList":false,"speechSynthesis":false,"SpeechSynthesisEvent":false,"SpeechSynthesisUtterance":false,"StaticRange":false,"status":false,"statusbar":false,"StereoPannerNode":false,"stop":false,"Storage":false,"StorageEvent":false,"StorageManager":false,"styleMedia":false,"StyleSheet":false,"StyleSheetList":false,"SubtleCrypto":false,"SVGAElement":false,"SVGAngle":false,"SVGAnimatedAngle":false,"SVGAnimatedBoolean":false,"SVGAnimatedEnumeration":false,"SVGAnimatedInteger":false,"SVGAnimatedLength":false,"SVGAnimatedLengthList":false,"SVGAnimatedNumber":false,"SVGAnimatedNumberList":false,"SVGAnimatedPreserveAspectRatio":false,"SVGAnimatedRect":false,"SVGAnimatedString":false,"SVGAnimatedTransformList":false,"SVGAnimateElement":false,"SVGAnimateMotionElement":false,"SVGAnimateTransformElement":false,"SVGAnimationElement":false,"SVGCircleElement":false,"SVGClipPathElement":false,"SVGComponentTransferFunctionElement":false,"SVGDefsElement":false,"SVGDescElement":false,"SVGDiscardElement":false,"SVGElement":false,"SVGEllipseElement":false,"SVGFEBlendElement":false,"SVGFEColorMatrixElement":false,"SVGFEComponentTransferElement":false,"SVGFECompositeElement":false,"SVGFEConvolveMatrixElement":false,"SVGFEDiffuseLightingElement":false,"SVGFEDisplacementMapElement":false,"SVGFEDistantLightElement":false,"SVGFEDropShadowElement":false,"SVGFEFloodElement":false,"SVGFEFuncAElement":false,"SVGFEFuncBElement":false,"SVGFEFuncGElement":false,"SVGFEFuncRElement":false,"SVGFEGaussianBlurElement":false,"SVGFEImageElement":false,"SVGFEMergeElement":false,"SVGFEMergeNodeElement":false,"SVGFEMorphologyElement":false,"SVGFEOffsetElement":false,"SVGFEPointLightElement":false,"SVGFESpecularLightingElement":false,"SVGFESpotLightElement":false,"SVGFETileElement":false,"SVGFETurbulenceElement":false,"SVGFilterElement":false,"SVGForeignObjectElement":false,"SVGGElement":false,"SVGGeometryElement":false,"SVGGradientElement":false,"SVGGraphicsElement":false,"SVGImageElement":false,"SVGLength":false,"SVGLengthList":false,"SVGLinearGradientElement":false,"SVGLineElement":false,"SVGMarkerElement":false,"SVGMaskElement":false,"SVGMatrix":false,"SVGMetadataElement":false,"SVGMPathElement":false,"SVGNumber":false,"SVGNumberList":false,"SVGPathElement":false,"SVGPatternElement":false,"SVGPoint":false,"SVGPointList":false,"SVGPolygonElement":false,"SVGPolylineElement":false,"SVGPreserveAspectRatio":false,"SVGRadialGradientElement":false,"SVGRect":false,"SVGRectElement":false,"SVGScriptElement":false,"SVGSetElement":false,"SVGStopElement":false,"SVGStringList":false,"SVGStyleElement":false,"SVGSVGElement":false,"SVGSwitchElement":false,"SVGSymbolElement":false,"SVGTextContentElement":false,"SVGTextElement":false,"SVGTextPathElement":false,"SVGTextPositioningElement":false,"SVGTitleElement":false,"SVGTransform":false,"SVGTransformList":false,"SVGTSpanElement":false,"SVGUnitTypes":false,"SVGUseElement":false,"SVGViewElement":false,"TaskAttributionTiming":false,"Text":false,"TextDecoder":false,"TextEncoder":false,"TextEvent":false,"TextMetrics":false,"TextTrack":false,"TextTrackCue":false,"TextTrackCueList":false,"TextTrackList":false,"TimeRanges":false,"toolbar":false,"top":false,"Touch":false,"TouchEvent":false,"TouchList":false,"TrackEvent":false,"TransitionEvent":false,"TreeWalker":false,"UIEvent":false,"URL":false,"URLSearchParams":false,"ValidityState":false,"visualViewport":false,"VisualViewport":false,"VTTCue":false,"WaveShaperNode":false,"WebAssembly":false,"WebGL2RenderingContext":false,"WebGLActiveInfo":false,"WebGLBuffer":false,"WebGLContextEvent":false,"WebGLFramebuffer":false,"WebGLProgram":false,"WebGLQuery":false,"WebGLRenderbuffer":false,"WebGLRenderingContext":false,"WebGLSampler":false,"WebGLShader":false,"WebGLShaderPrecisionFormat":false,"WebGLSync":false,"WebGLTexture":false,"WebGLTransformFeedback":false,"WebGLUniformLocation":false,"WebGLVertexArrayObject":false,"WebSocket":false,"WheelEvent":false,"window":false,"Window":false,"Worker":false,"WritableStream":false,"XMLDocument":false,"XMLHttpRequest":false,"XMLHttpRequestEventTarget":false,"XMLHttpRequestUpload":false,"XMLSerializer":false,"XPathEvaluator":false,"XPathExpression":false,"XPathResult":false,"XSLTProcessor":false},"worker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"clearInterval":false,"clearTimeout":false,"close":true,"console":false,"fetch":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":true,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onlanguagechange":true,"onmessage":true,"onoffline":true,"ononline":true,"onrejectionhandled":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"removeEventListener":false,"Request":false,"Response":false,"self":true,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"node":{"__dirname":false,"__filename":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"exports":true,"global":false,"Intl":false,"module":false,"process":false,"queueMicrotask":false,"require":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"commonjs":{"exports":true,"global":false,"module":false,"require":false},"amd":{"define":false,"require":false},"mocha":{"after":false,"afterEach":false,"before":false,"beforeEach":false,"context":false,"describe":false,"it":false,"mocha":false,"run":false,"setup":false,"specify":false,"suite":false,"suiteSetup":false,"suiteTeardown":false,"teardown":false,"test":false,"xcontext":false,"xdescribe":false,"xit":false,"xspecify":false},"jasmine":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fail":false,"fdescribe":false,"fit":false,"it":false,"jasmine":false,"pending":false,"runs":false,"spyOn":false,"spyOnProperty":false,"waits":false,"waitsFor":false,"xdescribe":false,"xit":false},"jest":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fdescribe":false,"fit":false,"it":false,"jest":false,"pit":false,"require":false,"test":false,"xdescribe":false,"xit":false,"xtest":false},"qunit":{"asyncTest":false,"deepEqual":false,"equal":false,"expect":false,"module":false,"notDeepEqual":false,"notEqual":false,"notOk":false,"notPropEqual":false,"notStrictEqual":false,"ok":false,"propEqual":false,"QUnit":false,"raises":false,"start":false,"stop":false,"strictEqual":false,"test":false,"throws":false},"phantomjs":{"console":true,"exports":true,"phantom":true,"require":true,"WebPage":true},"couch":{"emit":false,"exports":false,"getRow":false,"log":false,"module":false,"provides":false,"require":false,"respond":false,"send":false,"start":false,"sum":false},"rhino":{"defineClass":false,"deserialize":false,"gc":false,"help":false,"importClass":false,"importPackage":false,"java":false,"load":false,"loadClass":false,"Packages":false,"print":false,"quit":false,"readFile":false,"readUrl":false,"runCommand":false,"seal":false,"serialize":false,"spawn":false,"sync":false,"toint32":false,"version":false},"nashorn":{"__DIR__":false,"__FILE__":false,"__LINE__":false,"com":false,"edu":false,"exit":false,"java":false,"Java":false,"javafx":false,"JavaImporter":false,"javax":false,"JSAdapter":false,"load":false,"loadWithNewGlobal":false,"org":false,"Packages":false,"print":false,"quit":false},"wsh":{"ActiveXObject":true,"Enumerator":true,"GetObject":true,"ScriptEngine":true,"ScriptEngineBuildVersion":true,"ScriptEngineMajorVersion":true,"ScriptEngineMinorVersion":true,"VBArray":true,"WScript":true,"WSH":true,"XDomainRequest":true},"jquery":{"$":false,"jQuery":false},"yui":{"YAHOO":false,"YAHOO_config":false,"YUI":false,"YUI_config":false},"shelljs":{"cat":false,"cd":false,"chmod":false,"config":false,"cp":false,"dirs":false,"echo":false,"env":false,"error":false,"exec":false,"exit":false,"find":false,"grep":false,"ln":false,"ls":false,"mkdir":false,"mv":false,"popd":false,"pushd":false,"pwd":false,"rm":false,"sed":false,"set":false,"target":false,"tempdir":false,"test":false,"touch":false,"which":false},"prototypejs":{"$":false,"$$":false,"$A":false,"$break":false,"$continue":false,"$F":false,"$H":false,"$R":false,"$w":false,"Abstract":false,"Ajax":false,"Autocompleter":false,"Builder":false,"Class":false,"Control":false,"Draggable":false,"Draggables":false,"Droppables":false,"Effect":false,"Element":false,"Enumerable":false,"Event":false,"Field":false,"Form":false,"Hash":false,"Insertion":false,"ObjectRange":false,"PeriodicalExecuter":false,"Position":false,"Prototype":false,"Scriptaculous":false,"Selector":false,"Sortable":false,"SortableObserver":false,"Sound":false,"Template":false,"Toggle":false,"Try":false},"meteor":{"_":false,"$":false,"Accounts":false,"AccountsClient":false,"AccountsCommon":false,"AccountsServer":false,"App":false,"Assets":false,"Blaze":false,"check":false,"Cordova":false,"DDP":false,"DDPRateLimiter":false,"DDPServer":false,"Deps":false,"EJSON":false,"Email":false,"HTTP":false,"Log":false,"Match":false,"Meteor":false,"Mongo":false,"MongoInternals":false,"Npm":false,"Package":false,"Plugin":false,"process":false,"Random":false,"ReactiveDict":false,"ReactiveVar":false,"Router":false,"ServiceConfiguration":false,"Session":false,"share":false,"Spacebars":false,"Template":false,"Tinytest":false,"Tracker":false,"UI":false,"Utils":false,"WebApp":false,"WebAppInternals":false},"mongo":{"_isWindows":false,"_rand":false,"BulkWriteResult":false,"cat":false,"cd":false,"connect":false,"db":false,"getHostName":false,"getMemInfo":false,"hostname":false,"ISODate":false,"listFiles":false,"load":false,"ls":false,"md5sumFile":false,"mkdir":false,"Mongo":false,"NumberInt":false,"NumberLong":false,"ObjectId":false,"PlanCache":false,"print":false,"printjson":false,"pwd":false,"quit":false,"removeFile":false,"rs":false,"sh":false,"UUID":false,"version":false,"WriteResult":false},"applescript":{"$":false,"Application":false,"Automation":false,"console":false,"delay":false,"Library":false,"ObjC":false,"ObjectSpecifier":false,"Path":false,"Progress":false,"Ref":false},"serviceworker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"CacheStorage":false,"clearInterval":false,"clearTimeout":false,"Client":false,"clients":false,"Clients":false,"close":true,"console":false,"ExtendableEvent":false,"ExtendableMessageEvent":false,"fetch":false,"FetchEvent":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":false,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onfetch":true,"oninstall":true,"onlanguagechange":true,"onmessage":true,"onmessageerror":true,"onnotificationclick":true,"onnotificationclose":true,"onoffline":true,"ononline":true,"onpush":true,"onpushsubscriptionchange":true,"onrejectionhandled":true,"onsync":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"registration":false,"removeEventListener":false,"Request":false,"Response":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerGlobalScope":false,"ServiceWorkerMessageEvent":false,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"skipWaiting":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"WindowClient":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"atomtest":{"advanceClock":false,"fakeClearInterval":false,"fakeClearTimeout":false,"fakeSetInterval":false,"fakeSetTimeout":false,"resetTimeouts":false,"waitsForPromise":false},"embertest":{"andThen":false,"click":false,"currentPath":false,"currentRouteName":false,"currentURL":false,"fillIn":false,"find":false,"findAll":false,"findWithAssert":false,"keyEvent":false,"pauseTest":false,"resumeTest":false,"triggerEvent":false,"visit":false,"wait":false},"protractor":{"$":false,"$$":false,"browser":false,"by":false,"By":false,"DartObject":false,"element":false,"protractor":false},"shared-node-browser":{"clearInterval":false,"clearTimeout":false,"console":false,"setInterval":false,"setTimeout":false,"URL":false,"URLSearchParams":false},"webextensions":{"browser":false,"chrome":false,"opr":false},"greasemonkey":{"cloneInto":false,"createObjectIn":false,"exportFunction":false,"GM":false,"GM_addStyle":false,"GM_deleteValue":false,"GM_getResourceText":false,"GM_getResourceURL":false,"GM_getValue":false,"GM_info":false,"GM_listValues":false,"GM_log":false,"GM_openInTab":false,"GM_registerMenuCommand":false,"GM_setClipboard":false,"GM_setValue":false,"GM_xmlhttpRequest":false,"unsafeWindow":false},"devtools":{"$":false,"$_":false,"$$":false,"$0":false,"$1":false,"$2":false,"$3":false,"$4":false,"$x":false,"chrome":false,"clear":false,"copy":false,"debug":false,"dir":false,"dirxml":false,"getEventListeners":false,"inspect":false,"keys":false,"monitor":false,"monitorEvents":false,"profile":false,"profileEnd":false,"queryObjects":false,"table":false,"undebug":false,"unmonitor":false,"unmonitorEvents":false,"values":false}}')},9928:e=>{"use strict";e.exports=JSON.parse('{"assert":true,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16","async_hooks":">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],"buffer_ieee754":">= 0.5 && < 0.9.7","buffer":true,"node:buffer":[">= 14.18 && < 15",">= 16"],"child_process":true,"node:child_process":[">= 14.18 && < 15",">= 16"],"cluster":">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],"console":true,"node:console":[">= 14.18 && < 15",">= 16"],"constants":true,"node:constants":[">= 14.18 && < 15",">= 16"],"crypto":true,"node:crypto":[">= 14.18 && < 15",">= 16"],"_debug_agent":">= 1 && < 8","_debugger":"< 8","dgram":true,"node:dgram":[">= 14.18 && < 15",">= 16"],"diagnostics_channel":[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],"dns":true,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16","domain":">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],"events":true,"node:events":[">= 14.18 && < 15",">= 16"],"freelist":"< 6","fs":true,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],"_http_agent":">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],"_http_client":">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],"_http_common":">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],"_http_incoming":">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],"_http_outgoing":">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],"_http_server":">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],"http":true,"node:http":[">= 14.18 && < 15",">= 16"],"http2":">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],"https":true,"node:https":[">= 14.18 && < 15",">= 16"],"inspector":">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"_linklist":"< 8","module":true,"node:module":[">= 14.18 && < 15",">= 16"],"net":true,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12","os":true,"node:os":[">= 14.18 && < 15",">= 16"],"path":true,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16","perf_hooks":">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],"process":">= 1","node:process":[">= 14.18 && < 15",">= 16"],"punycode":">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],"querystring":true,"node:querystring":[">= 14.18 && < 15",">= 16"],"readline":true,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17","repl":true,"node:repl":[">= 14.18 && < 15",">= 16"],"smalloc":">= 0.11.5 && < 3","_stream_duplex":">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],"_stream_transform":">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],"_stream_wrap":">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],"_stream_passthrough":">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],"_stream_readable":">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],"_stream_writable":">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],"stream":true,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5","string_decoder":true,"node:string_decoder":[">= 14.18 && < 15",">= 16"],"sys":[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"node:test":">= 18","timers":true,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16","_tls_common":">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],"_tls_legacy":">= 0.11.3 && < 10","_tls_wrap":">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],"tls":true,"node:tls":[">= 14.18 && < 15",">= 16"],"trace_events":">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],"tty":true,"node:tty":[">= 14.18 && < 15",">= 16"],"url":true,"node:url":[">= 14.18 && < 15",">= 16"],"util":true,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8":">= 1","node:v8":[">= 14.18 && < 15",">= 16"],"vm":true,"node:vm":[">= 14.18 && < 15",">= 16"],"wasi":">= 13.4 && < 13.5","worker_threads":">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],"zlib":">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}')},7665:e=>{"use strict";e.exports=JSON.parse('{"assert":true,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16","async_hooks":">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],"buffer_ieee754":">= 0.5 && < 0.9.7","buffer":true,"node:buffer":[">= 14.18 && < 15",">= 16"],"child_process":true,"node:child_process":[">= 14.18 && < 15",">= 16"],"cluster":">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],"console":true,"node:console":[">= 14.18 && < 15",">= 16"],"constants":true,"node:constants":[">= 14.18 && < 15",">= 16"],"crypto":true,"node:crypto":[">= 14.18 && < 15",">= 16"],"_debug_agent":">= 1 && < 8","_debugger":"< 8","dgram":true,"node:dgram":[">= 14.18 && < 15",">= 16"],"diagnostics_channel":[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],"dns":true,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16","domain":">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],"events":true,"node:events":[">= 14.18 && < 15",">= 16"],"freelist":"< 6","fs":true,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],"_http_agent":">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],"_http_client":">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],"_http_common":">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],"_http_incoming":">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],"_http_outgoing":">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],"_http_server":">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],"http":true,"node:http":[">= 14.18 && < 15",">= 16"],"http2":">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],"https":true,"node:https":[">= 14.18 && < 15",">= 16"],"inspector":">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"_linklist":"< 8","module":true,"node:module":[">= 14.18 && < 15",">= 16"],"net":true,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12","os":true,"node:os":[">= 14.18 && < 15",">= 16"],"path":true,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16","perf_hooks":">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],"process":">= 1","node:process":[">= 14.18 && < 15",">= 16"],"punycode":">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],"querystring":true,"node:querystring":[">= 14.18 && < 15",">= 16"],"readline":true,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17","repl":true,"node:repl":[">= 14.18 && < 15",">= 16"],"smalloc":">= 0.11.5 && < 3","_stream_duplex":">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],"_stream_transform":">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],"_stream_wrap":">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],"_stream_passthrough":">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],"_stream_readable":">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],"_stream_writable":">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],"stream":true,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5","string_decoder":true,"node:string_decoder":[">= 14.18 && < 15",">= 16"],"sys":[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"timers":true,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16","_tls_common":">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],"_tls_legacy":">= 0.11.3 && < 10","_tls_wrap":">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],"tls":true,"node:tls":[">= 14.18 && < 15",">= 16"],"trace_events":">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],"tty":true,"node:tty":[">= 14.18 && < 15",">= 16"],"url":true,"node:url":[">= 14.18 && < 15",">= 16"],"util":true,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8":">= 1","node:v8":[">= 14.18 && < 15",">= 16"],"vm":true,"node:vm":[">= 14.18 && < 15",">= 16"],"wasi":">= 13.4 && < 13.5","worker_threads":">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],"zlib":">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}')}};var t={};function __nccwpck_require__(r){var s=t[r];if(s!==undefined){return s.exports}var a=t[r]={id:r,loaded:false,exports:{}};var n=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete t[r]}a.loaded=true;return a.exports}(()=>{__nccwpck_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(2076);module.exports=r})(); \ No newline at end of file + */(function(){"use strict";var r={function:true,object:true};var s=r[typeof window]&&window||this;var a=r[typeof t]&&t&&!t.nodeType&&t;var n=r["object"]&&e&&!e.nodeType;var o=a&&n&&typeof global=="object"&&global;if(o&&(o.global===o||o.window===o||o.self===o)){s=o}var i=Object.prototype.hasOwnProperty;function fromCodePoint(){var e=Number(arguments[0]);if(!isFinite(e)||e<0||e>1114111||Math.floor(e)!=e){throw RangeError("Invalid code point: "+e)}if(e<=65535){return String.fromCharCode(e)}else{e-=65536;var t=(e>>10)+55296;var r=e%1024+56320;return String.fromCharCode(t,r)}}var l={};function assertType(e,t){if(t.indexOf("|")==-1){if(e==t){return}throw Error("Invalid node type: "+e+"; expected type: "+t)}t=i.call(l,t)?l[t]:l[t]=RegExp("^(?:"+t+")$");if(t.test(e)){return}throw Error("Invalid node type: "+e+"; expected types: "+t)}function generate(e){var t=e.type;if(i.call(c,t)){return c[t](e)}throw Error("Invalid node type: "+t)}function generateSequence(e,t,r){var s=-1,a=t.length,n="",o;while(++s0)n+=r;if(s+1=48&&t[s+1].codePoint<=57){n+="\\000";continue}n+=e(o)}return n}function generateAlternative(e){assertType(e.type,"alternative");return generateSequence(generateTerm,e.body)}function generateAnchor(e){assertType(e.type,"anchor");switch(e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}}function generateAtom(e){assertType(e.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value");return generate(e)}function generateCharacterClass(e){assertType(e.type,"characterClass");var t=e.kind;var r=t==="intersection"?"&&":t==="subtraction"?"--":"";return"["+(e.negative?"^":"")+generateSequence(generateClassAtom,e.body,r)+"]"}function generateCharacterClassEscape(e){assertType(e.type,"characterClassEscape");return"\\"+e.value}function generateCharacterClassRange(e){assertType(e.type,"characterClassRange");var t=e.min,r=e.max;if(t.type=="characterClassRange"||r.type=="characterClassRange"){throw Error("Invalid character class range")}return generateClassAtom(t)+"-"+generateClassAtom(r)}function generateClassAtom(e){assertType(e.type,"anchor|characterClass|characterClassEscape|characterClassRange|dot|value|unicodePropertyEscape|classStrings");return generate(e)}function generateClassStrings(e){assertType(e.type,"classStrings");return"("+generateSequence(generateClassString,e.strings,"|")+")"}function generateClassString(e){assertType(e.type,"classString");return generateSequence(generate,e.characters)}function generateDisjunction(e){assertType(e.type,"disjunction");return generateSequence(generate,e.body,"|")}function generateDot(e){assertType(e.type,"dot");return"."}function generateGroup(e){assertType(e.type,"group");var t="";switch(e.behavior){case"normal":if(e.name){t+="?<"+generateIdentifier(e.name)+">"}break;case"ignore":t+="?:";break;case"lookahead":t+="?=";break;case"negativeLookahead":t+="?!";break;case"lookbehind":t+="?<=";break;case"negativeLookbehind":t+="?"}throw new Error("Unknown reference type")}function generateTerm(e){assertType(e.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|unicodePropertyEscape|value|dot");return generate(e)}function generateUnicodePropertyEscape(e){assertType(e.type,"unicodePropertyEscape");return"\\"+(e.negative?"P":"p")+"{"+e.value+"}"}function generateValue(e){assertType(e.type,"value");var t=e.kind,r=e.codePoint;if(typeof r!="number"){throw new Error("Invalid code point: "+r)}switch(t){case"controlLetter":return"\\c"+fromCodePoint(r+64);case"hexadecimalEscape":return"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+fromCodePoint(r);case"null":return"\\"+r;case"octal":return"\\"+("000"+r.toString(8)).slice(-3);case"singleEscape":switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";case 45:return"\\-";default:throw Error("Invalid code point: "+r)}case"symbol":return fromCodePoint(r);case"unicodeEscape":return"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+r.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+t)}}var c={alternative:generateAlternative,anchor:generateAnchor,characterClass:generateCharacterClass,characterClassEscape:generateCharacterClassEscape,characterClassRange:generateCharacterClassRange,classStrings:generateClassStrings,disjunction:generateDisjunction,dot:generateDot,group:generateGroup,quantifier:generateQuantifier,reference:generateReference,unicodePropertyEscape:generateUnicodePropertyEscape,value:generateValue};var u={generate:generate};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){define((function(){return u}));s.regjsgen=u}else if(a&&n){a.generate=generate}else{s.regjsgen=u}}).call(this)},7165:e=>{"use strict";(function(){var t=String.fromCodePoint||function(){var e=String.fromCharCode;var t=Math.floor;return function fromCodePoint(){var r=16384;var s=[];var a;var n;var o=-1;var i=arguments.length;if(!i){return""}var l="";while(++o1114111||t(c)!=c){throw RangeError("Invalid code point: "+c)}if(c<=65535){s.push(c)}else{c-=65536;a=(c>>10)+55296;n=c%1024+56320;s.push(a,n)}if(o+1==i||s.length>r){l+=e.apply(null,s);s.length=0}}return l}}();function parse(e,r,s){if(!s){s={}}function addRaw(t){t.raw=e.substring(t.range[0],t.range[1]);return t}function updateRawStart(e,t){e.range[0]=t;return addRaw(e)}function createAnchor(e,t){return addRaw({type:"anchor",kind:e,range:[p-t,p]})}function createValue(e,t,r,s){return addRaw({type:"value",kind:e,codePoint:t,range:[r,s]})}function createEscaped(e,t,r,s){s=s||0;return createValue(e,t,p-(r.length+s),p)}function createCharacter(e){var t=e[0];var r=t.charCodeAt(0);if(u){var s;if(t.length===1&&r>=55296&&r<=56319){s=lookahead().charCodeAt(0);if(s>=56320&&s<=57343){p++;return createValue("symbol",(r-55296)*1024+s-56320+65536,p-2,p)}}}return createValue("symbol",r,p-1,p)}function createDisjunction(e,t,r){return addRaw({type:"disjunction",body:e,range:[t,r]})}function createDot(){return addRaw({type:"dot",range:[p-1,p]})}function createCharacterClassEscape(e){return addRaw({type:"characterClassEscape",value:e,range:[p-2,p]})}function createReference(e){return addRaw({type:"reference",matchIndex:parseInt(e,10),range:[p-1-e.length,p]})}function createNamedReference(e){return addRaw({type:"reference",name:e,range:[e.range[0]-3,p]})}function createGroup(e,t,r,s){return addRaw({type:"group",behavior:e,body:t,range:[r,s]})}function createQuantifier(e,t,r,s,a){if(s==null){r=p-1;s=p}return addRaw({type:"quantifier",min:e,max:t,greedy:true,body:null,symbol:a,range:[r,s]})}function createAlternative(e,t,r){return addRaw({type:"alternative",body:e,range:[t,r]})}function createCharacterClass(e,t,r,s){return addRaw({type:"characterClass",kind:e.kind,body:e.body,negative:t,range:[r,s]})}function createClassRange(e,t,r,s){if(e.codePoint>t.codePoint){bail("invalid range in character class",e.raw+"-"+t.raw,r,s)}return addRaw({type:"characterClassRange",min:e,max:t,range:[r,s]})}function createClassStrings(e,t,r){return addRaw({type:"classStrings",strings:e,range:[t,r]})}function createClassString(e,t,r){return addRaw({type:"classString",characters:e,range:[t,r]})}function flattenBody(e){if(e.type==="alternative"){return e.body}else{return[e]}}function incr(t){t=t||1;var r=e.substring(p,p+t);p+=t||1;return r}function skip(e){if(!match(e)){bail("character",e)}}function match(t){if(e.indexOf(t,p)===p){return incr(t.length)}}function lookahead(){return e[p]}function current(t){return e.indexOf(t,p)===p}function next(t){return e[p+1]===t}function matchReg(t){var r=e.substring(p);var s=r.match(t);if(s){s.range=[];s.range[0]=p;incr(s[0].length);s.range[1]=p}return s}function parseDisjunction(){var e=[],t=p;e.push(parseAlternative());while(match("|")){e.push(parseAlternative())}if(e.length===1){return e[0]}return createDisjunction(e,t,p)}function parseAlternative(){var e=[],t=p;var r;while(r=parseTerm()){e.push(r)}if(e.length===1){return e[0]}return createAlternative(e,t,p)}function parseTerm(){if(p>=e.length||current("|")||current(")")){return null}var t=parseAnchor();if(t){return t}var r=parseAtomAndExtendedAtom();var s;if(!r){var a=p;s=parseQuantifier()||false;if(s){p=a;bail("Expected atom")}var n;if(!u&&(n=matchReg(/^{/))){r=createCharacter(n)}else{bail("Expected atom")}}s=parseQuantifier()||false;if(s){s.body=flattenBody(r);updateRawStart(s,r.range[0]);return s}return r}function parseGroup(e,t,r,s){var a=null,n=p;if(match(e)){a=t}else if(match(r)){a=s}else{return false}return finishGroup(a,n)}function finishGroup(e,t){var r=parseDisjunction();if(!r){bail("Expected disjunction")}skip(")");var s=createGroup(e,flattenBody(r),t,p);if(e=="normal"){if(o){n++}}return s}function parseAnchor(){if(match("^")){return createAnchor("start",1)}else if(match("$")){return createAnchor("end",1)}else if(match("\\b")){return createAnchor("boundary",2)}else if(match("\\B")){return createAnchor("not-boundary",2)}else{return parseGroup("(?=","lookahead","(?!","negativeLookahead")}}function parseQuantifier(){var e,t=p;var r;var s,a;if(match("*")){r=createQuantifier(0,undefined,undefined,undefined,"*")}else if(match("+")){r=createQuantifier(1,undefined,undefined,undefined,"+")}else if(match("?")){r=createQuantifier(0,1,undefined,undefined,"?")}else if(e=matchReg(/^\{([0-9]+)\}/)){s=parseInt(e[1],10);r=createQuantifier(s,s,e.range[0],e.range[1])}else if(e=matchReg(/^\{([0-9]+),\}/)){s=parseInt(e[1],10);r=createQuantifier(s,undefined,e.range[0],e.range[1])}else if(e=matchReg(/^\{([0-9]+),([0-9]+)\}/)){s=parseInt(e[1],10);a=parseInt(e[2],10);if(s>a){bail("numbers out of order in {} quantifier","",t,p)}r=createQuantifier(s,a,e.range[0],e.range[1])}if(s&&!Number.isSafeInteger(s)||a&&!Number.isSafeInteger(a)){bail("iterations outside JS safe integer range in quantifier","",t,p)}if(r){if(match("?")){r.greedy=false;r.range[1]+=1}}return r}function parseAtomAndExtendedAtom(){var e;if(e=matchReg(/^[^^$\\.*+?()[\]{}|]/)){return createCharacter(e)}else if(!u&&(e=matchReg(/^(?:]|})/))){return createCharacter(e)}else if(match(".")){return createDot()}else if(match("\\")){e=parseAtomEscape();if(!e){if(!u&&lookahead()=="c"){return createValue("symbol",92,p-1,p)}bail("atomEscape")}return e}else if(e=parseCharacterClass()){return e}else if(s.lookbehind&&(e=parseGroup("(?<=","lookbehind","(?");var r=finishGroup("normal",t.range[0]-3);r.name=t;return r}else{return parseGroup("(?:","ignore","(","normal")}}function parseUnicodeSurrogatePairEscape(e){if(u){var t,r;if(e.kind=="unicodeEscape"&&(t=e.codePoint)>=55296&&t<=56319&¤t("\\")&&next("u")){var s=p;p++;var a=parseClassEscape();if(a.kind=="unicodeEscape"&&(r=a.codePoint)>=56320&&r<=57343){e.range[1]=a.range[1];e.codePoint=(t-55296)*1024+r-56320+65536;e.type="value";e.kind="unicodeCodePointEscape";addRaw(e)}else{p=s}}}return e}function parseClassEscape(){return parseAtomEscape(true)}function parseAtomEscape(e){var t,r=p;t=parseDecimalEscape(e)||parseNamedReference();if(t){return t}if(e){if(match("b")){return createEscaped("singleEscape",8,"\\b")}else if(match("B")){bail("\\B not possible inside of CharacterClass","",r)}else if(!u&&(t=matchReg(/^c([0-9])/))){return createEscaped("controlLetter",t[1]+16,t[1],2)}else if(!u&&(t=matchReg(/^c_/))){return createEscaped("controlLetter",31,"_",2)}if(u&&match("-")){return createEscaped("singleEscape",45,"\\-")}}t=parseCharacterClassEscape()||parseCharacterEscape();return t}function parseDecimalEscape(e){var t,r,s=p;if(t=matchReg(/^(?!0)\d+/)){r=t[0];var l=parseInt(t[0],10);if(l<=n&&!e){return createReference(t[0])}else{a.push(l);if(o){i=true}else{bailOctalEscapeIfUnicode(s,p)}incr(-t[0].length);if(t=matchReg(/^[0-7]{1,3}/)){return createEscaped("octal",parseInt(t[0],8),t[0],1)}else{t=createCharacter(matchReg(/^[89]/));return updateRawStart(t,t.range[0]-1)}}}else if(t=matchReg(/^[0-7]{1,3}/)){r=t[0];if(r!=="0"){bailOctalEscapeIfUnicode(s,p)}if(/^0{1,3}$/.test(r)){return createEscaped("null",0,"0",r.length)}else{return createEscaped("octal",parseInt(r,8),r,1)}}return false}function bailOctalEscapeIfUnicode(e,t){if(u){bail("Invalid decimal escape in unicode mode",null,e,t)}}function parseCharacterClassEscape(){var e;if(e=matchReg(/^[dDsSwW]/)){return createCharacterClassEscape(e[0])}else if(s.unicodePropertyEscape&&u&&(e=matchReg(/^([pP])\{([^\}]+)\}/))){return addRaw({type:"unicodePropertyEscape",negative:e[1]==="P",value:e[2],range:[e.range[0]-1,e.range[1]],raw:e[0]})}else if(s.unicodeSet&&c&&match("q{")){return parseClassStrings()}return false}function parseNamedReference(){if(s.namedGroups&&matchReg(/^k<(?=.*?>)/)){var e=parseIdentifier();skip(">");return createNamedReference(e)}}function parseRegExpUnicodeEscapeSequence(){var e;if(e=matchReg(/^u([0-9a-fA-F]{4})/)){return parseUnicodeSurrogatePairEscape(createEscaped("unicodeEscape",parseInt(e[1],16),e[1],2))}else if(u&&(e=matchReg(/^u\{([0-9a-fA-F]+)\}/))){return createEscaped("unicodeCodePointEscape",parseInt(e[1],16),e[1],4)}}function parseCharacterEscape(){var e;var t=p;if(e=matchReg(/^[fnrtv]/)){var r=0;switch(e[0]){case"t":r=9;break;case"n":r=10;break;case"v":r=11;break;case"f":r=12;break;case"r":r=13;break}return createEscaped("singleEscape",r,"\\"+e[0])}else if(e=matchReg(/^c([a-zA-Z])/)){return createEscaped("controlLetter",e[1].charCodeAt(0)%32,e[1],2)}else if(e=matchReg(/^x([0-9a-fA-F]{2})/)){return createEscaped("hexadecimalEscape",parseInt(e[1],16),e[1],2)}else if(e=parseRegExpUnicodeEscapeSequence()){if(!e||e.codePoint>1114111){bail("Invalid escape sequence",null,t,p)}return e}else{return parseIdentityEscape()}}function parseIdentifierAtom(r){var s=lookahead();var a=p;if(s==="\\"){incr();var n=parseRegExpUnicodeEscapeSequence();if(!n||!r(n.codePoint)){bail("Invalid escape sequence",null,a,p)}return t(n.codePoint)}var o=s.charCodeAt(0);if(o>=55296&&o<=56319){s+=e[p+1];var i=s.charCodeAt(1);if(i>=56320&&i<=57343){o=(o-55296)*1024+i-56320+65536}}if(!r(o))return;incr();if(o>65535)incr();return s}function parseIdentifier(){var e=p;var t=parseIdentifierAtom(isIdentifierStart);if(!t){bail("Invalid identifier")}var r;while(r=parseIdentifierAtom(isIdentifierPart)){t+=r}return addRaw({type:"identifier",value:t,range:[e,p]})}function isIdentifierStart(e){var r=/[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=128&&r.test(t(e))}function isIdentifierPart(e){var r=/[0-9_\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC6F\uDC7F-\uDC82\uDCB0-\uDCBA\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDD0-\uDDD9\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6]|\uD81A[\uDE60-\uDE69\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uDB40[\uDD00-\uDDEF]/;return isIdentifierStart(e)||e>=48&&e<=57||e>=128&&r.test(t(e))}function parseIdentityEscape(){var e;var t=lookahead();if(u&&/[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/.test(t)||!u&&t!=="c"){if(t==="k"&&s.lookbehind){return null}e=incr();return createEscaped("identifier",e.charCodeAt(0),e,1)}return null}function parseCharacterClass(){var e,t=p;if(e=matchReg(/^\[\^/)){e=parseClassRanges();skip("]");return createCharacterClass(e,true,t,p)}else if(match("[")){e=parseClassRanges();skip("]");return createCharacterClass(e,false,t,p)}return null}function parseClassRanges(){var e;if(current("]")){return{kind:"union",body:[]}}else if(c){return parseClassContents()}else{e=parseNonemptyClassRanges();if(!e){bail("nonEmptyClassRanges")}return{kind:"union",body:e}}}function parseHelperClassRanges(e){var t,r,s,a,n;if(current("-")&&!next("]")){t=e.range[0];n=createCharacter(match("-"));a=parseClassAtom();if(!a){bail("classAtom")}r=p;var o=parseClassRanges();if(!o){bail("classRanges")}if(!("codePoint"in e)||!("codePoint"in a)){if(!u){s=[e,n,a]}else{bail("invalid character class")}}else{s=[createClassRange(e,a,t,r)]}if(o.type==="empty"){return s}return s.concat(o.body)}s=parseNonemptyClassRangesNoDash();if(!s){bail("nonEmptyClassRangesNoDash")}return[e].concat(s)}function parseNonemptyClassRanges(){var e=parseClassAtom();if(!e){bail("classAtom")}if(current("]")){return[e]}return parseHelperClassRanges(e)}function parseNonemptyClassRangesNoDash(){var e=parseClassAtom();if(!e){bail("classAtom")}if(current("]")){return e}return parseHelperClassRanges(e)}function parseClassAtom(){if(match("-")){return createCharacter("-")}else{return parseClassAtomNoDash()}}function parseClassAtomNoDash(){var e;if(e=matchReg(/^[^\\\]-]/)){return createCharacter(e[0])}else if(match("\\")){e=parseClassEscape();if(!e){bail("classEscape")}return parseUnicodeSurrogatePairEscape(e)}}function parseClassContents(){var e=[];var t;var r=parseClassOperand(true);e.push(r);if(r.type==="classRange"){t="union"}else if(current("&")){t="intersection"}else if(current("-")){t="subtraction"}else{t="union"}while(!current("]")){if(t==="intersection"){skip("&");skip("&");if(current("&")){bail("&& cannot be followed by &. Wrap it in brackets: &&[&].")}}else if(t==="subtraction"){skip("-");skip("-")}r=parseClassOperand(t==="union");e.push(r)}return{kind:t,body:e}}function parseClassOperand(e){var t=p;var r,s;if(match("\\")){if(s=parseClassEscape()){r=s}else if(s=parseClassCharacterEscapedHelper()){return s}else{bail("Invalid escape","\\"+lookahead(),t)}}else if(s=parseClassCharacterUnescapedHelper()){r=s}else if(s=parseCharacterClass()){return s}else{bail("Invalid character",lookahead())}if(e&¤t("-")&&!next("-")){skip("-");if(s=parseClassCharacter()){return createClassRange(r,s,t,p)}bail("Invalid range end",lookahead())}return r}function parseClassCharacter(){if(match("\\")){var e,t=p;if(e=parseClassCharacterEscapedHelper()){return e}else{bail("Invalid escape","\\"+lookahead(),t)}}return parseClassCharacterUnescapedHelper()}function parseClassCharacterUnescapedHelper(){var e;if(e=matchReg(/^[^()[\]{}/\-\\|]/)){return createCharacter(e)}}function parseClassCharacterEscapedHelper(){var e;if(match("b")){return createEscaped("singleEscape",8,"\\b")}else if(match("B")){bail("\\B not possible inside of ClassContents","",p-2)}else if(e=matchReg(/^[&\-!#%,:;<=>@_`~]/)){return createEscaped("identifier",e[0].codePointAt(0),e[0])}else if(e=parseCharacterEscape()){return e}else{return null}}function parseClassStrings(){var e=p-3;var t=[];do{t.push(parseClassString())}while(match("|"));skip("}");return createClassStrings(t,e,p)}function parseClassString(){var e=[],t=p;var r;while(r=parseClassCharacter()){e.push(r)}return createClassString(e,t,p)}function bail(t,r,s,a){s=s==null?p:s;a=a==null?s:a;var n=Math.max(0,s-10);var o=Math.min(a+10,e.length);var i=" "+e.substring(n,o);var l=" "+new Array(s-n+1).join(" ")+"^";throw SyntaxError(t+" at position "+s+(r?": "+r:"")+"\n"+i+"\n"+l)}var a=[];var n=0;var o=true;var i=false;var l=(r||"").indexOf("u")!==-1;var c=(r||"").indexOf("v")!==-1;var u=l||c;var p=0;if(c&&!s.unicodeSet){throw new Error('The "v" flag is only supported when the .unicodeSet option is enabled.')}if(l&&c){throw new Error('The "u" and "v" flags are mutually exclusive.')}e=String(e);if(e===""){e="(?:)"}var d=parseDisjunction();if(d.range[1]!==e.length){bail("Could not parse entire input - got stuck","",d.range[1])}i=i||a.some((function(e){return e<=n}));if(i){p=0;o=false;return parseDisjunction()}return d}var r={parse:parse};if(true&&e.exports){e.exports=r}else{window.regjsparser=r}})()},1493:(e,t,r)=>{var s=r(6313);s.core=r(5417);s.isCore=r(4069);s.sync=r(5921);e.exports=s},6313:(e,t,r)=>{var s=r(7147);var a=r(6899);var n=r(1017);var o=r(5495);var i=r(7873);var l=r(3025);var c=r(5259);var u=s.realpath&&typeof s.realpath.native==="function"?s.realpath.native:s.realpath;var p=a();var defaultPaths=function(){return[n.join(p,".node_modules"),n.join(p,".node_libraries")]};var d=function isFile(e,t){s.stat(e,(function(e,r){if(!e){return t(null,r.isFile()||r.isFIFO())}if(e.code==="ENOENT"||e.code==="ENOTDIR")return t(null,false);return t(e)}))};var f=function isDirectory(e,t){s.stat(e,(function(e,r){if(!e){return t(null,r.isDirectory())}if(e.code==="ENOENT"||e.code==="ENOTDIR")return t(null,false);return t(e)}))};var y=function realpath(e,t){u(e,(function(r,s){if(r&&r.code!=="ENOENT")t(r);else t(null,r?e:s)}))};var g=function maybeRealpath(e,t,r,s){if(r&&r.preserveSymlinks===false){e(t,s)}else{s(null,t)}};var h=function defaultReadPackage(e,t,r){e(t,(function(e,t){if(e)r(e);else{try{var s=JSON.parse(t);r(null,s)}catch(e){r(null)}}}))};var b=function getPackageCandidates(e,t,r){var s=i(t,r,e);for(var a=0;a{e.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=(new Error).stack;Error.prepareStackTrace=e;return t[2].getFileName()}},5417:(e,t,r)=>{var s=process.versions&&process.versions.node&&process.versions.node.split(".")||[];function specifierIncluded(e){var t=e.split(" ");var r=t.length>1?t[0]:"=";var a=(t.length>1?t[1]:t[0]).split(".");for(var n=0;n<3;++n){var o=parseInt(s[n]||0,10);var i=parseInt(a[n]||0,10);if(o===i){continue}if(r==="<"){return o="){return o>=i}return false}return r===">="}function matchesRange(e){var t=e.split(/ ?&& ?/);if(t.length===0){return false}for(var r=0;r{"use strict";var s=r(2037);e.exports=s.homedir||function homedir(){var e=process.env.HOME;var t=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;if(process.platform==="win32"){return process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||e||null}if(process.platform==="darwin"){return e||(t?"/Users/"+t:null)}if(process.platform==="linux"){return e||(process.getuid()===0?"/root":t?"/home/"+t:null)}return e||null}},4069:(e,t,r)=>{var s=r(5259);e.exports=function isCore(e){return s(e)}},7873:(e,t,r)=>{var s=r(1017);var a=s.parse||r(8937);var n=function getNodeModulesDirs(e,t){var r="/";if(/^([A-Za-z]:)/.test(e)){r=""}else if(/^\\\\/.test(e)){r="\\\\"}var n=[e];var o=a(e);while(o.dir!==n[n.length-1]){n.push(o.dir);o=a(o.dir)}return n.reduce((function(e,a){return e.concat(t.map((function(e){return s.resolve(r,a,e)})))}),[])};e.exports=function nodeModulesPaths(e,t,r){var s=t&&t.moduleDirectory?[].concat(t.moduleDirectory):["node_modules"];if(t&&typeof t.paths==="function"){return t.paths(r,e,(function(){return n(e,s)}),t)}var a=n(e,s);return t&&t.paths?a.concat(t.paths):a}},3025:e=>{e.exports=function(e,t){return t||{}}},5921:(e,t,r)=>{var s=r(5259);var a=r(7147);var n=r(1017);var o=r(6899);var i=r(5495);var l=r(7873);var c=r(3025);var u=a.realpathSync&&typeof a.realpathSync.native==="function"?a.realpathSync.native:a.realpathSync;var p=o();var defaultPaths=function(){return[n.join(p,".node_modules"),n.join(p,".node_libraries")]};var d=function isFile(e){try{var t=a.statSync(e,{throwIfNoEntry:false})}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR"))return false;throw e}return!!t&&(t.isFile()||t.isFIFO())};var f=function isDirectory(e){try{var t=a.statSync(e,{throwIfNoEntry:false})}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR"))return false;throw e}return!!t&&t.isDirectory()};var y=function realpathSync(e){try{return u(e)}catch(e){if(e.code!=="ENOENT"){throw e}}return e};var g=function maybeRealpathSync(e,t,r){if(r&&r.preserveSymlinks===false){return e(t)}return t};var h=function defaultReadPackageSync(e,t){var r=e(t);try{var s=JSON.parse(r);return s}catch(e){}};var b=function getPackageCandidates(e,t,r){var s=l(t,r,e);for(var a=0;a{const s=r(9060);const{MAX_LENGTH:a,MAX_SAFE_INTEGER:n}=r(8689);const{re:o,t:i}=r(9153);const{compareIdentifiers:l}=r(3463);class SemVer{constructor(e,t){if(!t||typeof t!=="object"){t={loose:!!t,includePrerelease:false}}if(e instanceof SemVer){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease){return e}else{e=e.version}}else if(typeof e!=="string"){throw new TypeError(`Invalid Version: ${e}`)}if(e.length>a){throw new TypeError(`version is longer than ${a} characters`)}s("SemVer",e,t);this.options=t;this.loose=!!t.loose;this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?o[i.LOOSE]:o[i.FULL]);if(!r){throw new TypeError(`Invalid Version: ${e}`)}this.raw=e;this.major=+r[1];this.minor=+r[2];this.patch=+r[3];if(this.major>n||this.major<0){throw new TypeError("Invalid major version")}if(this.minor>n||this.minor<0){throw new TypeError("Invalid minor version")}if(this.patch>n||this.patch<0){throw new TypeError("Invalid patch version")}if(!r[4]){this.prerelease=[]}else{this.prerelease=r[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0){if(typeof this.prerelease[e]==="number"){this.prerelease[e]++;e=-2}}if(e===-1){this.prerelease.push(0)}}if(t){if(this.prerelease[0]===t){if(isNaN(this.prerelease[1])){this.prerelease=[t,0]}}else{this.prerelease=[t,0]}}break;default:throw new Error(`invalid increment argument: ${e}`)}this.format();this.raw=this.version;return this}}e.exports=SemVer},5166:(e,t,r)=>{const s=r(5245);const a=r(7988);const n=r(3773);const o=r(3366);const i=r(3344);const l=r(3398);const cmp=(e,t,r,c)=>{switch(t){case"===":if(typeof e==="object")e=e.version;if(typeof r==="object")r=r.version;return e===r;case"!==":if(typeof e==="object")e=e.version;if(typeof r==="object")r=r.version;return e!==r;case"":case"=":case"==":return s(e,r,c);case"!=":return a(e,r,c);case">":return n(e,r,c);case">=":return o(e,r,c);case"<":return i(e,r,c);case"<=":return l(e,r,c);default:throw new TypeError(`Invalid operator: ${t}`)}};e.exports=cmp},7603:(e,t,r)=>{const s=r(1107);const a=r(3639);const{re:n,t:o}=r(9153);const coerce=(e,t)=>{if(e instanceof s){return e}if(typeof e==="number"){e=String(e)}if(typeof e!=="string"){return null}t=t||{};let r=null;if(!t.rtl){r=e.match(n[o.COERCE])}else{let t;while((t=n[o.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length)){if(!r||t.index+t[0].length!==r.index+r[0].length){r=t}n[o.COERCERTL].lastIndex=t.index+t[1].length+t[2].length}n[o.COERCERTL].lastIndex=-1}if(r===null)return null;return a(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)};e.exports=coerce},9742:(e,t,r)=>{const s=r(1107);const compare=(e,t,r)=>new s(e,r).compare(new s(t,r));e.exports=compare},5245:(e,t,r)=>{const s=r(9742);const eq=(e,t,r)=>s(e,t,r)===0;e.exports=eq},3773:(e,t,r)=>{const s=r(9742);const gt=(e,t,r)=>s(e,t,r)>0;e.exports=gt},3366:(e,t,r)=>{const s=r(9742);const gte=(e,t,r)=>s(e,t,r)>=0;e.exports=gte},3344:(e,t,r)=>{const s=r(9742);const lt=(e,t,r)=>s(e,t,r)<0;e.exports=lt},3398:(e,t,r)=>{const s=r(9742);const lte=(e,t,r)=>s(e,t,r)<=0;e.exports=lte},7988:(e,t,r)=>{const s=r(9742);const neq=(e,t,r)=>s(e,t,r)!==0;e.exports=neq},3639:(e,t,r)=>{const{MAX_LENGTH:s}=r(8689);const{re:a,t:n}=r(9153);const o=r(1107);const parse=(e,t)=>{if(!t||typeof t!=="object"){t={loose:!!t,includePrerelease:false}}if(e instanceof o){return e}if(typeof e!=="string"){return null}if(e.length>s){return null}const r=t.loose?a[n.LOOSE]:a[n.FULL];if(!r.test(e)){return null}try{return new o(e,t)}catch(e){return null}};e.exports=parse},8689:e=>{const t="2.0.0";const r=256;const s=Number.MAX_SAFE_INTEGER||9007199254740991;const a=16;e.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:r,MAX_SAFE_INTEGER:s,MAX_SAFE_COMPONENT_LENGTH:a}},9060:e=>{const t=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},3463:e=>{const t=/^[0-9]+$/;const compareIdentifiers=(e,r)=>{const s=t.test(e);const a=t.test(r);if(s&&a){e=+e;r=+r}return e===r?0:s&&!a?-1:a&&!s?1:ecompareIdentifiers(t,e);e.exports={compareIdentifiers:compareIdentifiers,rcompareIdentifiers:rcompareIdentifiers}},9153:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:s}=r(8689);const a=r(9060);t=e.exports={};const n=t.re=[];const o=t.src=[];const i=t.t={};let l=0;const createToken=(e,t,r)=>{const s=l++;a(s,t);i[e]=s;o[s]=t;n[s]=new RegExp(t,r?"g":undefined)};createToken("NUMERICIDENTIFIER","0|[1-9]\\d*");createToken("NUMERICIDENTIFIERLOOSE","[0-9]+");createToken("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");createToken("MAINVERSION",`(${o[i.NUMERICIDENTIFIER]})\\.`+`(${o[i.NUMERICIDENTIFIER]})\\.`+`(${o[i.NUMERICIDENTIFIER]})`);createToken("MAINVERSIONLOOSE",`(${o[i.NUMERICIDENTIFIERLOOSE]})\\.`+`(${o[i.NUMERICIDENTIFIERLOOSE]})\\.`+`(${o[i.NUMERICIDENTIFIERLOOSE]})`);createToken("PRERELEASEIDENTIFIER",`(?:${o[i.NUMERICIDENTIFIER]}|${o[i.NONNUMERICIDENTIFIER]})`);createToken("PRERELEASEIDENTIFIERLOOSE",`(?:${o[i.NUMERICIDENTIFIERLOOSE]}|${o[i.NONNUMERICIDENTIFIER]})`);createToken("PRERELEASE",`(?:-(${o[i.PRERELEASEIDENTIFIER]}(?:\\.${o[i.PRERELEASEIDENTIFIER]})*))`);createToken("PRERELEASELOOSE",`(?:-?(${o[i.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${o[i.PRERELEASEIDENTIFIERLOOSE]})*))`);createToken("BUILDIDENTIFIER","[0-9A-Za-z-]+");createToken("BUILD",`(?:\\+(${o[i.BUILDIDENTIFIER]}(?:\\.${o[i.BUILDIDENTIFIER]})*))`);createToken("FULLPLAIN",`v?${o[i.MAINVERSION]}${o[i.PRERELEASE]}?${o[i.BUILD]}?`);createToken("FULL",`^${o[i.FULLPLAIN]}$`);createToken("LOOSEPLAIN",`[v=\\s]*${o[i.MAINVERSIONLOOSE]}${o[i.PRERELEASELOOSE]}?${o[i.BUILD]}?`);createToken("LOOSE",`^${o[i.LOOSEPLAIN]}$`);createToken("GTLT","((?:<|>)?=?)");createToken("XRANGEIDENTIFIERLOOSE",`${o[i.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);createToken("XRANGEIDENTIFIER",`${o[i.NUMERICIDENTIFIER]}|x|X|\\*`);createToken("XRANGEPLAIN",`[v=\\s]*(${o[i.XRANGEIDENTIFIER]})`+`(?:\\.(${o[i.XRANGEIDENTIFIER]})`+`(?:\\.(${o[i.XRANGEIDENTIFIER]})`+`(?:${o[i.PRERELEASE]})?${o[i.BUILD]}?`+`)?)?`);createToken("XRANGEPLAINLOOSE",`[v=\\s]*(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:${o[i.PRERELEASELOOSE]})?${o[i.BUILD]}?`+`)?)?`);createToken("XRANGE",`^${o[i.GTLT]}\\s*${o[i.XRANGEPLAIN]}$`);createToken("XRANGELOOSE",`^${o[i.GTLT]}\\s*${o[i.XRANGEPLAINLOOSE]}$`);createToken("COERCE",`${"(^|[^\\d])"+"(\\d{1,"}${s}})`+`(?:\\.(\\d{1,${s}}))?`+`(?:\\.(\\d{1,${s}}))?`+`(?:$|[^\\d])`);createToken("COERCERTL",o[i.COERCE],true);createToken("LONETILDE","(?:~>?)");createToken("TILDETRIM",`(\\s*)${o[i.LONETILDE]}\\s+`,true);t.tildeTrimReplace="$1~";createToken("TILDE",`^${o[i.LONETILDE]}${o[i.XRANGEPLAIN]}$`);createToken("TILDELOOSE",`^${o[i.LONETILDE]}${o[i.XRANGEPLAINLOOSE]}$`);createToken("LONECARET","(?:\\^)");createToken("CARETTRIM",`(\\s*)${o[i.LONECARET]}\\s+`,true);t.caretTrimReplace="$1^";createToken("CARET",`^${o[i.LONECARET]}${o[i.XRANGEPLAIN]}$`);createToken("CARETLOOSE",`^${o[i.LONECARET]}${o[i.XRANGEPLAINLOOSE]}$`);createToken("COMPARATORLOOSE",`^${o[i.GTLT]}\\s*(${o[i.LOOSEPLAIN]})$|^$`);createToken("COMPARATOR",`^${o[i.GTLT]}\\s*(${o[i.FULLPLAIN]})$|^$`);createToken("COMPARATORTRIM",`(\\s*)${o[i.GTLT]}\\s*(${o[i.LOOSEPLAIN]}|${o[i.XRANGEPLAIN]})`,true);t.comparatorTrimReplace="$1$2$3";createToken("HYPHENRANGE",`^\\s*(${o[i.XRANGEPLAIN]})`+`\\s+-\\s+`+`(${o[i.XRANGEPLAIN]})`+`\\s*$`);createToken("HYPHENRANGELOOSE",`^\\s*(${o[i.XRANGEPLAINLOOSE]})`+`\\s+-\\s+`+`(${o[i.XRANGEPLAINLOOSE]})`+`\\s*$`);createToken("STAR","(<|>)?=?\\s*\\*")},8562:e=>{var t=e.exports=function(e){return new Traverse(e)};function Traverse(e){this.value=e}Traverse.prototype.get=function(e){var t=this.value;for(var r=0;r{e.exports=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"])},2339:(e,t,r)=>{"use strict";const s=r(3533);const a=r(4368);const matchProperty=function(e){if(s.has(e)){return e}if(a.has(e)){return a.get(e)}throw new Error(`Unknown property: ${e}`)};e.exports=matchProperty},8408:e=>{e.exports=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]])},1230:(e,t,r)=>{"use strict";const s=r(8408);const matchPropertyValue=function(e,t){const r=s.get(e);if(!r){throw new Error(`Unknown property \`${e}\`.`)}const a=r.get(t);if(a){return a}throw new Error(`Unknown value \`${t}\` for property \`${e}\`.`)};e.exports=matchPropertyValue},4368:e=>{e.exports=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]])},2076:(e,t,r)=>{function eslintParser(){return r(7652)}function pluginProposalClassProperties(){return r(1756)}function pluginProposalExportNamespaceFrom(){return r(985)}function pluginProposalNumericSeparator(){return r(1899)}function pluginProposalObjectRestSpread(){return r(6806)}function pluginSyntaxBigint(){return r(9140)}function pluginSyntaxDynamicImport(){return r(9854)}function pluginSyntaxImportAssertions(){return r(9905)}function pluginSyntaxJsx(){return r(6178)}function pluginTransformDefine(){return r(3864)}function pluginTransformModulesCommonjs(){return r(4362)}function pluginTransformReactRemovePropTypes(){return r(814)}function pluginTransformRuntime(){return r(6522)}function presetEnv(){return r(6791)}function presetReact(){return r(2545)}function presetTypescript(){return r(6127)}e.exports={eslintParser:eslintParser,pluginProposalClassProperties:pluginProposalClassProperties,pluginProposalExportNamespaceFrom:pluginProposalExportNamespaceFrom,pluginProposalNumericSeparator:pluginProposalNumericSeparator,pluginProposalObjectRestSpread:pluginProposalObjectRestSpread,pluginSyntaxBigint:pluginSyntaxBigint,pluginSyntaxDynamicImport:pluginSyntaxDynamicImport,pluginSyntaxImportAssertions:pluginSyntaxImportAssertions,pluginSyntaxJsx:pluginSyntaxJsx,pluginTransformDefine:pluginTransformDefine,pluginTransformModulesCommonjs:pluginTransformModulesCommonjs,pluginTransformReactRemovePropTypes:pluginTransformReactRemovePropTypes,pluginTransformRuntime:pluginTransformRuntime,presetEnv:presetEnv,presetReact:presetReact,presetTypescript:presetTypescript}},9491:e=>{"use strict";e.exports=require("assert")},7147:e=>{"use strict";e.exports=require("fs")},8188:e=>{"use strict";e.exports=require("module")},8304:e=>{"use strict";e.exports=require("next/dist/compiled/babel/core")},6949:e=>{"use strict";e.exports=require("next/dist/compiled/babel/parser")},7369:e=>{"use strict";e.exports=require("next/dist/compiled/babel/traverse")},8622:e=>{"use strict";e.exports=require("next/dist/compiled/babel/types")},4907:e=>{"use strict";e.exports=require("next/dist/compiled/browserslist")},8542:e=>{"use strict";e.exports=require("next/dist/compiled/chalk")},7849:e=>{"use strict";e.exports=require("next/dist/compiled/semver")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},3837:e=>{"use strict";e.exports=require("util")},1267:e=>{"use strict";e.exports=require("worker_threads")},9366:(e,t,r)=>{function _classPrivateFieldInitSpec(e,t,r){_checkPrivateRedeclaration(e,t);t.set(e,r)}function _checkPrivateRedeclaration(e,t){if(t.has(e)){throw new TypeError("Cannot initialize the same private elements twice on an object")}}function _classPrivateFieldGet(e,t){var r=_classExtractFieldDescriptor(e,t,"get");return _classApplyDescriptorGet(e,r)}function _classApplyDescriptorGet(e,t){if(t.get){return t.get.call(e)}return t.value}function _classPrivateFieldSet(e,t,r){var s=_classExtractFieldDescriptor(e,t,"set");_classApplyDescriptorSet(e,s,r);return r}function _classExtractFieldDescriptor(e,t,r){if(!t.has(e)){throw new TypeError("attempted to "+r+" private field on non-instance")}return t.get(e)}function _classApplyDescriptorSet(e,t,r){if(t.set){t.set.call(e,r)}else{if(!t.writable){throw new TypeError("attempted to set read only private field")}t.value=r}}const s=r(7736);const{Definition:a}=r(2411);const n=r(6274);const o=r(1759);const{getKeys:i}=r(4544);let l;function getVisitorValues(e,t){if(l)return l[e];const{FLOW_FLIPPED_ALIAS_KEYS:r,VISITOR_KEYS:s}=t.getTypesInfo();const a=r.concat(["ArrayPattern","ClassDeclaration","ClassExpression","FunctionDeclaration","FunctionExpression","Identifier","ObjectPattern","RestElement"]);l=Object.entries(s).reduce(((e,[t,r])=>{if(!a.includes(r)){e[t]=r}return e}),{});return l[e]}const c={callProperties:{type:"loop",values:["value"]},indexers:{type:"loop",values:["key","value"]},properties:{type:"loop",values:["argument","value"]},types:{type:"loop"},params:{type:"loop"},argument:{type:"single"},elementType:{type:"single"},qualification:{type:"single"},rest:{type:"single"},returnType:{type:"single"},typeAnnotation:{type:"typeAnnotation"},typeParameters:{type:"typeParameters"},id:{type:"id"}};class PatternVisitor extends n{ArrayPattern(e){e.elements.forEach(this.visit,this)}ObjectPattern(e){e.properties.forEach(this.visit,this)}}var u=new WeakMap;class Referencer extends o{constructor(e,t,r){super(e,t);_classPrivateFieldInitSpec(this,u,{writable:true,value:void 0});_classPrivateFieldSet(this,u,r)}visitPattern(e,t,r){if(!e){return}this._checkIdentifierOrVisit(e.typeAnnotation);if(e.type==="AssignmentPattern"){this._checkIdentifierOrVisit(e.left.typeAnnotation)}if(typeof t==="function"){r=t;t={processRightHandNodes:false}}const s=new PatternVisitor(this.options,e,r);s.visit(e);if(t.processRightHandNodes){s.rightHandNodes.forEach(this.visit,this)}}visitClass(e){this._visitArray(e.decorators);const t=this._nestTypeParamScope(e);this._visitTypeAnnotation(e.implements);this._visitTypeAnnotation(e.superTypeParameters&&e.superTypeParameters.params);super.visitClass(e);if(t){this.close(e)}}visitFunction(e){const t=this._nestTypeParamScope(e);this._checkIdentifierOrVisit(e.returnType);super.visitFunction(e);if(t){this.close(e)}}visitProperty(e){var t;if(((t=e.value)==null?void 0:t.type)==="TypeCastExpression"){this._visitTypeAnnotation(e.value)}this._visitArray(e.decorators);super.visitProperty(e)}InterfaceDeclaration(e){this._createScopeVariable(e,e.id);const t=this._nestTypeParamScope(e);this._visitArray(e.extends);this.visit(e.body);if(t){this.close(e)}}TypeAlias(e){this._createScopeVariable(e,e.id);const t=this._nestTypeParamScope(e);this.visit(e.right);if(t){this.close(e)}}ClassProperty(e){this._visitClassProperty(e)}ClassPrivateProperty(e){this._visitClassProperty(e)}PropertyDefinition(e){this._visitClassProperty(e)}ClassPrivateMethod(e){super.MethodDefinition(e)}DeclareModule(e){this._visitDeclareX(e)}DeclareFunction(e){this._visitDeclareX(e)}DeclareVariable(e){this._visitDeclareX(e)}DeclareClass(e){this._visitDeclareX(e)}OptionalMemberExpression(e){super.MemberExpression(e)}_visitClassProperty(e){this._visitTypeAnnotation(e.typeAnnotation);this.visitProperty(e)}_visitDeclareX(e){if(e.id){this._createScopeVariable(e,e.id)}const t=this._nestTypeParamScope(e);if(t){this.close(e)}}_createScopeVariable(e,t){this.currentScope().variableScope.__define(t,new a("Variable",t,e,null,null,null))}_nestTypeParamScope(e){if(!e.typeParameters){return null}const t=this.scopeManager.__currentScope;const r=new s.Scope(this.scopeManager,"type-parameters",t,e,false);this.scopeManager.__nestScope(r);for(let t=0;t{var s,a,n,o;function _classStaticPrivateFieldSpecSet(e,t,r,s){_classCheckPrivateStaticAccess(e,t);_classCheckPrivateStaticFieldDescriptor(r,"set");_classApplyDescriptorSet(e,r,s);return s}function _classStaticPrivateFieldSpecGet(e,t,r){_classCheckPrivateStaticAccess(e,t);_classCheckPrivateStaticFieldDescriptor(r,"get");return _classApplyDescriptorGet(e,r)}function _classCheckPrivateStaticFieldDescriptor(e,t){if(e===undefined){throw new TypeError("attempted to "+t+" private static field before its declaration")}}function _classCheckPrivateStaticAccess(e,t){if(e!==t){throw new TypeError("Private static access of wrong provenance")}}function _classPrivateFieldInitSpec(e,t,r){_checkPrivateRedeclaration(e,t);t.set(e,r)}function _checkPrivateRedeclaration(e,t){if(t.has(e)){throw new TypeError("Cannot initialize the same private elements twice on an object")}}function _classPrivateFieldGet(e,t){var r=_classExtractFieldDescriptor(e,t,"get");return _classApplyDescriptorGet(e,r)}function _classApplyDescriptorGet(e,t){if(t.get){return t.get.call(e)}return t.value}function _classPrivateFieldSet(e,t,r){var s=_classExtractFieldDescriptor(e,t,"set");_classApplyDescriptorSet(e,s,r);return r}function _classExtractFieldDescriptor(e,t,r){if(!t.has(e)){throw new TypeError("attempted to "+r+" private field on non-instance")}return t.get(e)}function _classApplyDescriptorSet(e,t,r){if(t.set){t.set.call(e,r)}else{if(!t.writable){throw new TypeError("attempted to set read only private field")}t.value=r}}const i=r(1017);const l={GET_VERSION:"GET_VERSION",GET_TYPES_INFO:"GET_TYPES_INFO",GET_VISITOR_KEYS:"GET_VISITOR_KEYS",GET_TOKEN_LABELS:"GET_TOKEN_LABELS",MAYBE_PARSE:"MAYBE_PARSE",MAYBE_PARSE_SYNC:"MAYBE_PARSE_SYNC"};var c=new WeakMap;var u=new WeakMap;var p=new WeakMap;var d=new WeakMap;var f=new WeakMap;class Client{constructor(e){_classPrivateFieldInitSpec(this,c,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,u,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,p,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,d,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,f,{writable:true,value:void 0});_classPrivateFieldSet(this,c,e)}getVersion(){var e;return(e=_classPrivateFieldGet(this,u))!=null?e:_classPrivateFieldSet(this,u,_classPrivateFieldGet(this,c).call(this,l.GET_VERSION,undefined))}getTypesInfo(){var e;return(e=_classPrivateFieldGet(this,p))!=null?e:_classPrivateFieldSet(this,p,_classPrivateFieldGet(this,c).call(this,l.GET_TYPES_INFO,undefined))}getVisitorKeys(){var e;return(e=_classPrivateFieldGet(this,d))!=null?e:_classPrivateFieldSet(this,d,_classPrivateFieldGet(this,c).call(this,l.GET_VISITOR_KEYS,undefined))}getTokLabels(){var e;return(e=_classPrivateFieldGet(this,f))!=null?e:_classPrivateFieldSet(this,f,_classPrivateFieldGet(this,c).call(this,l.GET_TOKEN_LABELS,undefined))}maybeParse(e,t){return _classPrivateFieldGet(this,c).call(this,l.MAYBE_PARSE,{code:e,options:t})}}t.WorkerClient=(a=new WeakMap,s=class WorkerClient extends Client{constructor(){super(((e,t)=>{const r=new Int32Array(new SharedArrayBuffer(8));const o=new(_classStaticPrivateFieldSpecGet(WorkerClient,s,n).MessageChannel);_classPrivateFieldGet(this,a).postMessage({signal:r,port:o.port1,action:e,payload:t},[o.port1]);Atomics.wait(r,0,0);const{message:i}=_classStaticPrivateFieldSpecGet(WorkerClient,s,n).receiveMessageOnPort(o.port2);if(i.error)throw Object.assign(i.error,i.errorData);else return i.result}));_classPrivateFieldInitSpec(this,a,{writable:true,value:new(_classStaticPrivateFieldSpecGet(WorkerClient,s,n).Worker)(i.resolve(__dirname,"../lib/worker/index.cjs"),{env:_classStaticPrivateFieldSpecGet(WorkerClient,s,n).SHARE_ENV})});_classPrivateFieldGet(this,a).unref()}},n={get:_get_worker_threads,set:void 0},o={writable:true,value:void 0},s);function _get_worker_threads(){var e;return(e=_classStaticPrivateFieldSpecGet(s,s,o))!=null?e:_classStaticPrivateFieldSpecSet(s,s,o,r(1267))}{var y,g;t.LocalClient=(y=class LocalClient extends Client{constructor(){var e;(e=_classStaticPrivateFieldSpecGet(LocalClient,y,g))!=null?e:_classStaticPrivateFieldSpecSet(LocalClient,y,g,r(2440));super(((e,t)=>_classStaticPrivateFieldSpecGet(LocalClient,y,g).call(LocalClient,e===l.MAYBE_PARSE?l.MAYBE_PARSE_SYNC:e,t)))}},g={writable:true,value:void 0},y)}},7471:(e,t)=>{const r=["babelOptions","ecmaVersion","sourceType","requireConfigFile"];function _objectWithoutPropertiesLoose(e,t){if(e==null)return{};var r={};var s=Object.keys(e);var a,n;for(n=0;n=0)continue;r[a]=e[a]}return r}t.normalizeESLintConfig=function(e){const{babelOptions:t={},ecmaVersion:s=2020,sourceType:a="module",requireConfigFile:n=true}=e,o=_objectWithoutPropertiesLoose(e,r);return Object.assign({babelOptions:Object.assign({cwd:process.cwd()},t),ecmaVersion:s==="latest"?1e8:s,sourceType:a,requireConfigFile:n},o)}},2505:(e,t,r)=>{const s=r(5904);function*it(e){if(Array.isArray(e))yield*e;else yield e}function traverse(e,t,r){const{type:s}=e;if(!s)return;const a=t[s];if(!a)return;for(const s of a){for(const a of it(e[s])){if(a&&typeof a==="object"){r.enter(a);traverse(a,t,r);r.exit(a)}}}}const a={enter(e){if(e.innerComments){delete e.innerComments}if(e.trailingComments){delete e.trailingComments}if(e.leadingComments){delete e.leadingComments}},exit(e){if(e.extra){delete e.extra}if(e.loc.identifierName){delete e.loc.identifierName}if(e.type==="TypeParameter"){e.type="Identifier";e.typeAnnotation=e.bound;delete e.bound}if(e.type==="QualifiedTypeIdentifier"){delete e.id}if(e.type==="ObjectTypeProperty"){delete e.key}if(e.type==="ObjectTypeIndexer"){delete e.id}if(e.type==="FunctionTypeParam"){delete e.name}if(e.type==="ImportDeclaration"){delete e.isType}if(e.type==="TemplateLiteral"){for(let t=0;t=8){r.start-=1;if(r.tail){r.end+=1}else{r.end+=2}}}}}};function convertNodes(e,t){traverse(e,t,a)}function convertProgramNode(e){e.type="Program";e.sourceType=e.program.sourceType;e.body=e.program.body;delete e.program;delete e.errors;if(e.comments.length){const t=e.comments[e.comments.length-1];if(e.tokens.length){const r=e.tokens[e.tokens.length-1];if(t.end>r.end){e.range[1]=r.end;e.loc.end.line=r.loc.end.line;e.loc.end.column=r.loc.end.column;if(s>=8){e.end=r.end}}}}else{if(!e.tokens.length){e.loc.start.line=1;e.loc.end.line=1}}if(e.body&&e.body.length>0){e.loc.start.line=e.body[0].loc.start.line;e.range[0]=e.body[0].start;if(s>=8){e.start=e.body[0].start}}}e.exports=function convertAST(e,t){convertNodes(e,t);convertProgramNode(e)}},1040:e=>{e.exports=function convertComments(e){for(const t of e){if(t.type==="CommentBlock"){t.type="Block"}else if(t.type==="CommentLine"){t.type="Line"}if(!t.range){t.range=[t.start,t.end]}}}},8616:(e,t,r)=>{const s=r(5904);function convertTemplateType(e,t){let r=null;let s=[];const a=[];function addTemplateType(){const e=s[0];const r=s[s.length-1];const n=s.reduce(((e,r)=>{if(r.value){e+=r.value}else if(r.type.label!==t.template){e+=r.type.label}return e}),"");a.push({type:"Template",value:n,start:e.start,end:r.end,loc:{start:e.loc.start,end:r.loc.end}});s=[]}e.forEach((e=>{switch(e.type.label){case t.backQuote:if(r){a.push(r);r=null}s.push(e);if(s.length>1){addTemplateType()}break;case t.dollarBraceL:s.push(e);addTemplateType();break;case t.braceR:if(r){a.push(r)}r=e;break;case t.template:if(r){s.push(r);r=null}s.push(e);break;default:if(r){a.push(r);r=null}a.push(e)}}));return a}function convertToken(e,t,r){const{type:s}=e;const{label:a}=s;e.range=[e.start,e.end];if(a===r.name){if(e.value==="static"){e.type="Keyword"}else{e.type="Identifier"}}else if(a===r.semi||a===r.comma||a===r.parenL||a===r.parenR||a===r.braceL||a===r.braceR||a===r.slash||a===r.dot||a===r.bracketL||a===r.bracketR||a===r.ellipsis||a===r.arrow||a===r.pipeline||a===r.star||a===r.incDec||a===r.colon||a===r.question||a===r.template||a===r.backQuote||a===r.dollarBraceL||a===r.at||a===r.logicalOR||a===r.logicalAND||a===r.nullishCoalescing||a===r.bitwiseOR||a===r.bitwiseXOR||a===r.bitwiseAND||a===r.equality||a===r.relational||a===r.bitShift||a===r.plusMin||a===r.modulo||a===r.exponent||a===r.bang||a===r.tilde||a===r.doubleColon||a===r.hash||a===r.questionDot||a===r.braceHashL||a===r.braceBarL||a===r.braceBarR||a===r.bracketHashL||a===r.bracketBarL||a===r.bracketBarR||a===r.doubleCaret||a===r.doubleAt||s.isAssign){var n;e.type="Punctuator";(n=e.value)!=null?n:e.value=a}else if(a===r.jsxTagStart){e.type="Punctuator";e.value="<"}else if(a===r.jsxTagEnd){e.type="Punctuator";e.value=">"}else if(a===r.jsxName){e.type="JSXIdentifier"}else if(a===r.jsxText){e.type="JSXText"}else if(s.keyword==="null"){e.type="Null"}else if(s.keyword==="false"||s.keyword==="true"){e.type="Boolean"}else if(s.keyword){e.type="Keyword"}else if(a===r.num){e.type="Numeric";e.value=t.slice(e.start,e.end)}else if(a===r.string){e.type="String";e.value=t.slice(e.start,e.end)}else if(a===r.regexp){e.type="RegularExpression";const t=e.value;e.regex={pattern:t.pattern,flags:t.flags};e.value=`/${t.pattern}/${t.flags}`}else if(a===r.bigint){e.type="Numeric";e.value=`${e.value}n`}else if(a===r.privateName){e.type="PrivateIdentifier"}else if(a===r.templateNonTail||a===r.templateTail){e.type="Template"}if(typeof e.type!=="string"){delete e.type.rightAssociative}}e.exports=function convertTokens(e,t,r){const a=[];const n=convertTemplateType(e,r);for(let e=0,{length:o}=n;e=8&&e+1{const s=r(8616);const a=r(1040);const n=r(2505);t.ast=function convert(e,t,r,o){e.tokens=s(e.tokens,t,r);a(e.comments);n(e,o);return e};t.error=function convertError(e){if(e instanceof SyntaxError){e.lineNumber=e.loc.line;e.column=e.loc.column}return e}},7652:(e,t,r)=>{const{normalizeESLintConfig:s}=r(7471);const a=r(9366);const n=r(298);const{LocalClient:o,WorkerClient:i}=r(8880);const l=new o;t.parse=function(e,t={}){return n(e,s(t),l)};t.parseForESLint=function(e,t={}){const r=s(t);const o=n(e,r,l);const i=a(o,r,l);return{ast:o,scopeManager:i,visitorKeys:l.getVisitorKeys()}}},298:(e,t,r)=>{"use strict";const s=r(7849);const a=r(9620);function noop(){}const n=r(6949);noop((((e,t)=>(e=e.split("."),t=t.split("."),+e[0]>+t[0]||e[0]==t[0]&&+e[1]>=+t[1]))(process.versions.node,"8.9")?noop:(e,{paths:[t]},s=r(8188))=>{let a=s._findPath(e,s._nodeModulePaths(t).concat(t));if(a)return a;a=new Error(`Cannot resolve module '${e}'`);a.code="MODULE_NOT_FOUND";throw a})("@babel/parser",{paths:[noop("@babel/core/package.json")]}));let o=null;e.exports=function parse(e,t,r){const i=">=7.2.0";if(typeof o!=="boolean"){o=s.satisfies(r.getVersion(),i)}if(!o){throw new Error(`@babel/eslint-parser@${"7.18.2"} does not support @babel/core@${r.getVersion()}. Please upgrade to @babel/core@${i}.`)}const{ast:l,parserOptions:c}=r.maybeParse(e,t);if(l)return l;try{return a.ast(n.parse(e,c),e,r.getTokLabels(),r.getVisitorKeys())}catch(e){throw a.error(e)}}},5904:(e,t,r)=>{e.exports=parseInt(r(4378).i8,10)},3702:(e,t,r)=>{const s=r(4544).KEYS;const a=r(5460);let n;t.getVisitorKeys=function getVisitorKeys(){if(!n){const e={ChainExpression:s.ChainExpression,ImportExpression:s.ImportExpression,Literal:s.Literal,MethodDefinition:["decorators"].concat(s.MethodDefinition),Property:["decorators"].concat(s.Property),PropertyDefinition:["decorators","typeAnnotation"].concat(s.PropertyDefinition)};const t={ClassPrivateMethod:["decorators"].concat(s.MethodDefinition),ExportAllDeclaration:s.ExportAllDeclaration};n=Object.assign({},e,a.types.VISITOR_KEYS,t)}return n};let o;t.getTokLabels=function getTokLabels(){return o||(o=(e=>e.reduce(((e,[t,r])=>Object.assign({},e,{[t]:r})),{}))(Object.entries(a.tokTypes).map((([e,t])=>[e,t.label]))))}},5460:(e,t,r)=>{function initialize(e){t.init=null;t.version=e.version;t.traverse=e.traverse;t.types=e.types;t.tokTypes=e.tokTypes;t.parseSync=e.parseSync;t.loadPartialConfigSync=e.loadPartialConfigSync;t.loadPartialConfigAsync=e.loadPartialConfigAsync;t.createConfigItem=e.createConfigItem}{initialize(r(8304))}},4095:(e,t,r)=>{function asyncGeneratorStep(e,t,r,s,a,n,o){try{var i=e[n](o);var l=i.value}catch(e){r(e);return}if(i.done){t(l)}else{Promise.resolve(l).then(s,a)}}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(s,a){var n=e.apply(t,r);function _next(e){asyncGeneratorStep(n,s,a,_next,_throw,"next",e)}function _throw(e){asyncGeneratorStep(n,s,a,_next,_throw,"throw",e)}_next(undefined)}))}}const s=r(5460);const a=r(5904);function getParserPlugins(e){var t,r;const s=(t=(r=e.parserOpts)==null?void 0:r.plugins)!=null?t:[];const n={classFeatures:a>=8};for(const e of s){if(Array.isArray(e)&&e[0]==="estree"){Object.assign(n,e[1]);break}}return[["estree",n],...s]}function normalizeParserOptions(e){var t,r,s;return Object.assign({sourceType:e.sourceType,filename:e.filePath},e.babelOptions,{parserOpts:Object.assign({},{allowImportExportEverywhere:(t=e.allowImportExportEverywhere)!=null?t:false,allowSuperOutsideMethod:true},{allowReturnOutsideFunction:(r=(s=e.ecmaFeatures)==null?void 0:s.globalReturn)!=null?r:true},e.babelOptions.parserOpts,{plugins:getParserPlugins(e.babelOptions),attachComment:false,ranges:true,tokens:true}),caller:Object.assign({name:"@babel/eslint-parser"},e.babelOptions.caller)})}function validateResolvedConfig(e,t,r){if(e!==null){if(t.requireConfigFile!==false){if(!e.hasFilesystemConfig()){let t=`No Babel config file detected for ${e.options.filename}. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files.`;if(e.options.filename.includes("node_modules")){t+=`\nIf you have a .babelrc.js file or use package.json#babel, keep in mind that it's not used when parsing dependencies. If you want your config to be applied to your whole app, consider using babel.config.js or babel.config.json instead.`}throw new Error(t)}}if(e.options)return e.options}return getDefaultParserOptions(r)}function getDefaultParserOptions(e){return Object.assign({plugins:[]},e,{babelrc:false,configFile:false,browserslistConfigFile:false,ignore:null,only:null})}t.normalizeBabelParseConfig=_asyncToGenerator((function*(e){const t=normalizeParserOptions(e);const r=yield s.loadPartialConfigAsync(t);return validateResolvedConfig(r,e,t)}));t.normalizeBabelParseConfigSync=function(e){const t=normalizeParserOptions(e);const r=s.loadPartialConfigSync(t);return validateResolvedConfig(r,e,t)}},8625:e=>{e.exports=function extractParserOptionsPlugin(){return{parserOverride(e,t){return t}}}},2440:(e,t,r)=>{const s=r(5460);const a=r(1855);const{getVisitorKeys:n,getTokLabels:o}=r(3702);const{normalizeBabelParseConfig:i,normalizeBabelParseConfigSync:l}=r(4095);e.exports=function handleMessage(e,t){switch(e){case"GET_VERSION":return s.version;case"GET_TYPES_INFO":return{FLOW_FLIPPED_ALIAS_KEYS:s.types.FLIPPED_ALIAS_KEYS.Flow,VISITOR_KEYS:s.types.VISITOR_KEYS};case"GET_TOKEN_LABELS":return o();case"GET_VISITOR_KEYS":return n();case"MAYBE_PARSE":return i(t.options).then((e=>a(t.code,e)));case"MAYBE_PARSE_SYNC":{return a(t.code,l(t.options))}}throw new Error(`Unknown internal parser worker action: ${e}`)}},1855:(e,t,r)=>{const s=r(5460);const a=r(9620);const{getVisitorKeys:n,getTokLabels:o}=r(3702);const i=r(8625);const l={};let c;const u=/More than one plugin attempted to override parsing/;e.exports=function maybeParse(e,t){if(!c){c=s.createConfigItem([i,l],{dirname:__dirname,type:"plugin"})}const{plugins:r}=t;t.plugins=r.concat(c);try{return{parserOptions:s.parseSync(e,t),ast:null}}catch(e){if(!u.test(e.message)){throw e}}t.plugins=r;let p;try{p=s.parseSync(e,t)}catch(e){throw a.error(e)}return{ast:a.ast(p,e,o(),n()),parserOptions:null}}},5585:e=>{"use strict";e.exports=JSON.parse('{"es6.array.copy-within":{"chrome":"45","opera":"32","edge":"12","firefox":"32","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.every":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.fill":{"chrome":"45","opera":"32","edge":"12","firefox":"31","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.filter":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.find":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.find-index":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es7.array.flat-map":{"chrome":"69","opera":"56","edge":"79","firefox":"62","safari":"12","node":"11","ios":"12","samsung":"10","electron":"4.0"},"es6.array.for-each":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.from":{"chrome":"51","opera":"38","edge":"15","firefox":"36","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.array.includes":{"chrome":"47","opera":"34","edge":"14","firefox":"43","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.array.index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.is-array":{"chrome":"5","opera":"10.50","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.iterator":{"chrome":"66","opera":"53","edge":"12","firefox":"60","safari":"9","node":"10","ios":"9","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.array.last-index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.map":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.of":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.reduce":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.reduce-right":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.slice":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.some":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.sort":{"chrome":"63","opera":"50","edge":"12","firefox":"5","safari":"12","node":"10","ie":"9","ios":"12","samsung":"8","rhino":"1.7.13","electron":"3.0"},"es6.array.species":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.date.now":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-iso-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-json":{"chrome":"5","opera":"12.10","edge":"12","firefox":"4","safari":"10","node":"0.10","ie":"9","android":"4","ios":"10","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-primitive":{"chrome":"47","opera":"34","edge":"15","firefox":"44","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.date.to-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.bind":{"chrome":"7","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.has-instance":{"chrome":"51","opera":"38","edge":"15","firefox":"50","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.function.name":{"chrome":"5","opera":"10.50","edge":"14","firefox":"2","safari":"4","node":"0.10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.math.acosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.asinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.atanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cbrt":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.clz32":{"chrome":"38","opera":"25","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.expm1":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.fround":{"chrome":"38","opera":"25","edge":"12","firefox":"26","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.hypot":{"chrome":"38","opera":"25","edge":"12","firefox":"27","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.imul":{"chrome":"30","opera":"17","edge":"12","firefox":"23","safari":"7","node":"0.12","android":"4.4","ios":"7","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.math.log1p":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log10":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log2":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sign":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.tanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.trunc":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.number.constructor":{"chrome":"41","opera":"28","edge":"12","firefox":"36","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.number.epsilon":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.is-finite":{"chrome":"19","opera":"15","edge":"12","firefox":"16","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"16","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.is-nan":{"chrome":"19","opera":"15","edge":"12","firefox":"15","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"32","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.max-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.min-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.parse-float":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.parse-int":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.object.assign":{"chrome":"49","opera":"36","edge":"13","firefox":"36","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.object.create":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.define-getter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.define-setter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.define-property":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.object.define-properties":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.entries":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.object.freeze":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.get-own-property-descriptor":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.get-own-property-descriptors":{"chrome":"54","opera":"41","edge":"15","firefox":"50","safari":"10.1","node":"7","ios":"10.3","samsung":"6","electron":"1.4"},"es6.object.get-own-property-names":{"chrome":"40","opera":"27","edge":"12","firefox":"33","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.get-prototype-of":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.lookup-getter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.lookup-setter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.prevent-extensions":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.to-string":{"chrome":"57","opera":"44","edge":"15","firefox":"51","safari":"10","node":"8","ios":"10","samsung":"7","electron":"1.7"},"es6.object.is":{"chrome":"19","opera":"15","edge":"12","firefox":"22","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.object.is-frozen":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-sealed":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-extensible":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.keys":{"chrome":"40","opera":"27","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.seal":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.set-prototype-of":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ie":"11","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es7.object.values":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.promise":{"chrome":"51","opera":"38","edge":"14","firefox":"45","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.promise.finally":{"chrome":"63","opera":"50","edge":"18","firefox":"58","safari":"11.1","node":"10","ios":"11.3","samsung":"8","electron":"3.0"},"es6.reflect.apply":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.construct":{"chrome":"49","opera":"36","edge":"13","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.define-property":{"chrome":"49","opera":"36","edge":"13","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.delete-property":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-own-property-descriptor":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.has":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.is-extensible":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.own-keys":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.prevent-extensions":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.regexp.constructor":{"chrome":"50","opera":"37","edge":"79","firefox":"40","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.flags":{"chrome":"49","opera":"36","edge":"79","firefox":"37","safari":"9","node":"6","ios":"9","samsung":"5","electron":"0.37"},"es6.regexp.match":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.replace":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.split":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.search":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.to-string":{"chrome":"50","opera":"37","edge":"79","firefox":"39","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.symbol":{"chrome":"51","opera":"38","edge":"79","firefox":"51","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.symbol.async-iterator":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","ios":"12","samsung":"8","electron":"3.0"},"es6.string.anchor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.big":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.blink":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.bold":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.code-point-at":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.ends-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.fixed":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontcolor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontsize":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.from-code-point":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.includes":{"chrome":"41","opera":"28","edge":"12","firefox":"40","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.italics":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.iterator":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.string.link":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es7.string.pad-start":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es7.string.pad-end":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es6.string.raw":{"chrome":"41","opera":"28","edge":"12","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.14","electron":"0.21"},"es6.string.repeat":{"chrome":"41","opera":"28","edge":"12","firefox":"24","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.small":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.starts-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.strike":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sub":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sup":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.trim":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.string.trim-left":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es7.string.trim-right":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.typed.array-buffer":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.data-view":{"chrome":"5","opera":"12","edge":"12","firefox":"15","safari":"5.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.typed.int8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-clamped-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float64-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.weak-map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"},"es6.weak-set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"}}')},9696:e=>{"use strict";e.exports=JSON.parse('{"es6.array.copy-within":{"chrome":"45","opera":"32","edge":"12","firefox":"32","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.every":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.fill":{"chrome":"45","opera":"32","edge":"12","firefox":"31","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.filter":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.find":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.find-index":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"7.1","node":"4","ios":"8","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es7.array.flat-map":{"chrome":"69","opera":"56","edge":"79","firefox":"62","safari":"12","node":"11","ios":"12","samsung":"10","electron":"4.0"},"es6.array.for-each":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.from":{"chrome":"51","opera":"38","edge":"15","firefox":"36","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.array.includes":{"chrome":"47","opera":"34","edge":"14","firefox":"43","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.array.index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.is-array":{"chrome":"5","opera":"10.50","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.iterator":{"chrome":"66","opera":"53","edge":"12","firefox":"60","safari":"9","node":"10","ios":"9","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.array.last-index-of":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.map":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.of":{"chrome":"45","opera":"32","edge":"12","firefox":"25","safari":"9","node":"4","ios":"9","samsung":"5","rhino":"1.7.13","electron":"0.31"},"es6.array.reduce":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.reduce-right":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.slice":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.array.some":{"chrome":"5","opera":"10.10","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.array.sort":{"chrome":"63","opera":"50","edge":"12","firefox":"5","safari":"12","node":"10","ie":"9","ios":"12","samsung":"8","rhino":"1.7.13","electron":"3.0"},"es6.array.species":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.date.now":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-iso-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-json":{"chrome":"5","opera":"12.10","edge":"12","firefox":"4","safari":"10","node":"0.10","ie":"9","android":"4","ios":"10","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.date.to-primitive":{"chrome":"47","opera":"34","edge":"15","firefox":"44","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.36"},"es6.date.to-string":{"chrome":"5","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.bind":{"chrome":"7","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.function.has-instance":{"chrome":"51","opera":"38","edge":"15","firefox":"50","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.function.name":{"chrome":"5","opera":"10.50","edge":"14","firefox":"2","safari":"4","node":"0.10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.math.acosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.asinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.atanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cbrt":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.clz32":{"chrome":"38","opera":"25","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.cosh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.expm1":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.fround":{"chrome":"38","opera":"25","edge":"12","firefox":"26","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.hypot":{"chrome":"38","opera":"25","edge":"12","firefox":"27","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.imul":{"chrome":"30","opera":"17","edge":"12","firefox":"23","safari":"7","node":"0.12","android":"4.4","ios":"7","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.math.log1p":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log10":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.log2":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sign":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.sinh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.tanh":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.math.trunc":{"chrome":"38","opera":"25","edge":"12","firefox":"25","safari":"7.1","node":"0.12","ios":"8","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.number.constructor":{"chrome":"41","opera":"28","edge":"12","firefox":"36","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.number.epsilon":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.is-finite":{"chrome":"19","opera":"15","edge":"12","firefox":"16","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"16","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.is-nan":{"chrome":"19","opera":"15","edge":"12","firefox":"15","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.number.is-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"32","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.max-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.min-safe-integer":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es6.number.parse-float":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.number.parse-int":{"chrome":"34","opera":"21","edge":"12","firefox":"25","safari":"9","node":"0.12","ios":"9","samsung":"2","rhino":"1.7.14","electron":"0.20"},"es6.object.assign":{"chrome":"49","opera":"36","edge":"13","firefox":"36","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.object.create":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.define-getter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.define-setter":{"chrome":"62","opera":"49","edge":"16","firefox":"48","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.define-property":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.object.define-properties":{"chrome":"5","opera":"12","edge":"12","firefox":"4","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.object.entries":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.object.freeze":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.get-own-property-descriptor":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.get-own-property-descriptors":{"chrome":"54","opera":"41","edge":"15","firefox":"50","safari":"10.1","node":"7","ios":"10.3","samsung":"6","electron":"1.4"},"es6.object.get-own-property-names":{"chrome":"40","opera":"27","edge":"12","firefox":"33","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.get-prototype-of":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es7.object.lookup-getter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es7.object.lookup-setter":{"chrome":"62","opera":"49","edge":"79","firefox":"36","safari":"9","node":"8.10","ios":"9","samsung":"8","electron":"3.0"},"es6.object.prevent-extensions":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.to-string":{"chrome":"57","opera":"44","edge":"15","firefox":"51","safari":"10","node":"8","ios":"10","samsung":"7","electron":"1.7"},"es6.object.is":{"chrome":"19","opera":"15","edge":"12","firefox":"22","safari":"9","node":"0.12","android":"4.1","ios":"9","samsung":"1.5","rhino":"1.7.13","electron":"0.20"},"es6.object.is-frozen":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-sealed":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.is-extensible":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.keys":{"chrome":"40","opera":"27","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.object.seal":{"chrome":"44","opera":"31","edge":"12","firefox":"35","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.13","electron":"0.30"},"es6.object.set-prototype-of":{"chrome":"34","opera":"21","edge":"12","firefox":"31","safari":"9","node":"0.12","ie":"11","ios":"9","samsung":"2","rhino":"1.7.13","electron":"0.20"},"es7.object.values":{"chrome":"54","opera":"41","edge":"14","firefox":"47","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.4"},"es6.promise":{"chrome":"51","opera":"38","edge":"14","firefox":"45","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.promise.finally":{"chrome":"63","opera":"50","edge":"18","firefox":"58","safari":"11.1","node":"10","ios":"11.3","samsung":"8","electron":"3.0"},"es6.reflect.apply":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.construct":{"chrome":"49","opera":"36","edge":"13","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.define-property":{"chrome":"49","opera":"36","edge":"13","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.delete-property":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-own-property-descriptor":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.get-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.has":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.is-extensible":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.own-keys":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.prevent-extensions":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.reflect.set-prototype-of":{"chrome":"49","opera":"36","edge":"12","firefox":"42","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"es6.regexp.constructor":{"chrome":"50","opera":"37","edge":"79","firefox":"40","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.flags":{"chrome":"49","opera":"36","edge":"79","firefox":"37","safari":"9","node":"6","ios":"9","samsung":"5","electron":"0.37"},"es6.regexp.match":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.replace":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.split":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.regexp.search":{"chrome":"50","opera":"37","edge":"79","firefox":"49","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"1.1"},"es6.regexp.to-string":{"chrome":"50","opera":"37","edge":"79","firefox":"39","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"es6.set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.symbol":{"chrome":"51","opera":"38","edge":"79","firefox":"51","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es7.symbol.async-iterator":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","ios":"12","samsung":"8","electron":"3.0"},"es6.string.anchor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.big":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.blink":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.bold":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.code-point-at":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.ends-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.fixed":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontcolor":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.fontsize":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.from-code-point":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.includes":{"chrome":"41","opera":"28","edge":"12","firefox":"40","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.italics":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.iterator":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"es6.string.link":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es7.string.pad-start":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es7.string.pad-end":{"chrome":"57","opera":"44","edge":"15","firefox":"48","safari":"10","node":"8","ios":"10","samsung":"7","rhino":"1.7.13","electron":"1.7"},"es6.string.raw":{"chrome":"41","opera":"28","edge":"12","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.14","electron":"0.21"},"es6.string.repeat":{"chrome":"41","opera":"28","edge":"12","firefox":"24","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.small":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.starts-with":{"chrome":"41","opera":"28","edge":"12","firefox":"29","safari":"9","node":"4","ios":"9","samsung":"3.4","rhino":"1.7.13","electron":"0.21"},"es6.string.strike":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sub":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.sup":{"chrome":"5","opera":"15","edge":"12","firefox":"17","safari":"6","node":"0.10","android":"4","ios":"7","phantom":"2","samsung":"1","rhino":"1.7.14","electron":"0.20"},"es6.string.trim":{"chrome":"5","opera":"10.50","edge":"12","firefox":"3.5","safari":"4","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es7.string.trim-left":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es7.string.trim-right":{"chrome":"66","opera":"53","edge":"79","firefox":"61","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.13","electron":"3.0"},"es6.typed.array-buffer":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.data-view":{"chrome":"5","opera":"12","edge":"12","firefox":"15","safari":"5.1","node":"0.10","ie":"10","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"es6.typed.int8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint8-clamped-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint16-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.int32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.uint32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float32-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.typed.float64-array":{"chrome":"51","opera":"38","edge":"13","firefox":"48","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"es6.weak-map":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"},"es6.weak-set":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"9","node":"6.5","ios":"9","samsung":"5","electron":"1.2"}}')},9009:e=>{"use strict";e.exports=JSON.parse('{"es6.module":{"chrome":"61","and_chr":"61","edge":"16","firefox":"60","and_ff":"60","node":"13.2.0","opera":"48","op_mob":"48","safari":"10.1","ios":"10.3","samsung":"8.2","android":"61","electron":"2.0","ios_saf":"10.3"}}')},266:e=>{"use strict";e.exports=JSON.parse('{"transform-async-to-generator":["bugfix/transform-async-arrows-in-class"],"transform-parameters":["bugfix/transform-edge-default-parameters","bugfix/transform-safari-id-destructuring-collision-in-function-expression"],"transform-function-name":["bugfix/transform-edge-function-name"],"transform-block-scoping":["bugfix/transform-safari-block-shadowing","bugfix/transform-safari-for-shadowing"],"transform-template-literals":["bugfix/transform-tagged-template-caching"],"proposal-optional-chaining":["bugfix/transform-v8-spread-parameters-in-optional-chaining"]}')},4943:e=>{"use strict";e.exports=JSON.parse('{"bugfix/transform-async-arrows-in-class":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"11","node":"7.6","ios":"11","samsung":"6","electron":"1.6"},"bugfix/transform-edge-default-parameters":{"chrome":"49","opera":"36","edge":"18","firefox":"52","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"bugfix/transform-edge-function-name":{"chrome":"51","opera":"38","edge":"79","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"bugfix/transform-safari-block-shadowing":{"chrome":"49","opera":"36","edge":"12","firefox":"44","safari":"11","node":"6","ie":"11","ios":"11","samsung":"5","electron":"0.37"},"bugfix/transform-safari-for-shadowing":{"chrome":"49","opera":"36","edge":"12","firefox":"4","safari":"11","node":"6","ie":"11","ios":"11","samsung":"5","rhino":"1.7.13","electron":"0.37"},"bugfix/transform-safari-id-destructuring-collision-in-function-expression":{"chrome":"49","opera":"36","edge":"14","firefox":"2","node":"6","samsung":"5","electron":"0.37"},"bugfix/transform-tagged-template-caching":{"chrome":"41","opera":"28","edge":"12","firefox":"34","safari":"13","node":"4","ios":"13","samsung":"3.4","rhino":"1.7.14","electron":"0.21"},"bugfix/transform-v8-spread-parameters-in-optional-chaining":{"chrome":"91","opera":"77","edge":"91","firefox":"74","safari":"13.1","node":"16.9","ios":"13.4","electron":"13.0"},"proposal-optional-chaining":{"chrome":"80","opera":"67","edge":"80","firefox":"74","safari":"13.1","node":"14","ios":"13.4","samsung":"13","electron":"8.0"},"transform-parameters":{"chrome":"49","opera":"36","edge":"15","firefox":"53","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"transform-async-to-generator":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"10.1","node":"7.6","ios":"10.3","samsung":"6","electron":"1.6"},"transform-template-literals":{"chrome":"41","opera":"28","edge":"13","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","electron":"0.21"},"transform-function-name":{"chrome":"51","opera":"38","edge":"14","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-block-scoping":{"chrome":"49","opera":"36","edge":"14","firefox":"51","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"}}')},7385:e=>{"use strict";e.exports=JSON.parse('{"proposal-class-static-block":{"chrome":"94","opera":"80","edge":"94","firefox":"93","node":"16.11","electron":"15.0"},"proposal-private-property-in-object":{"chrome":"91","opera":"77","edge":"91","firefox":"90","safari":"15","node":"16.9","ios":"15","electron":"13.0"},"proposal-class-properties":{"chrome":"74","opera":"62","edge":"79","firefox":"90","safari":"14.1","node":"12","ios":"15","samsung":"11","electron":"6.0"},"proposal-private-methods":{"chrome":"84","opera":"70","edge":"84","firefox":"90","safari":"15","node":"14.6","ios":"15","samsung":"14","electron":"10.0"},"proposal-numeric-separator":{"chrome":"75","opera":"62","edge":"79","firefox":"70","safari":"13","node":"12.5","ios":"13","samsung":"11","rhino":"1.7.14","electron":"6.0"},"proposal-logical-assignment-operators":{"chrome":"85","opera":"71","edge":"85","firefox":"79","safari":"14","node":"15","ios":"14","samsung":"14","electron":"10.0"},"proposal-nullish-coalescing-operator":{"chrome":"80","opera":"67","edge":"80","firefox":"72","safari":"13.1","node":"14","ios":"13.4","samsung":"13","electron":"8.0"},"proposal-optional-chaining":{"chrome":"91","opera":"77","edge":"91","firefox":"74","safari":"13.1","node":"16.9","ios":"13.4","electron":"13.0"},"proposal-json-strings":{"chrome":"66","opera":"53","edge":"79","firefox":"62","safari":"12","node":"10","ios":"12","samsung":"9","rhino":"1.7.14","electron":"3.0"},"proposal-optional-catch-binding":{"chrome":"66","opera":"53","edge":"79","firefox":"58","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-parameters":{"chrome":"49","opera":"36","edge":"18","firefox":"53","node":"6","samsung":"5","electron":"0.37"},"proposal-async-generator-functions":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","ios":"12","samsung":"8","electron":"3.0"},"proposal-object-rest-spread":{"chrome":"60","opera":"47","edge":"79","firefox":"55","safari":"11.1","node":"8.3","ios":"11.3","samsung":"8","electron":"2.0"},"transform-dotall-regex":{"chrome":"62","opera":"49","edge":"79","firefox":"78","safari":"11.1","node":"8.10","ios":"11.3","samsung":"8","electron":"3.0"},"proposal-unicode-property-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-named-capturing-groups-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","ios":"11.3","samsung":"9","electron":"3.0"},"transform-async-to-generator":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"11","node":"7.6","ios":"11","samsung":"6","electron":"1.6"},"transform-exponentiation-operator":{"chrome":"52","opera":"39","edge":"14","firefox":"52","safari":"10.1","node":"7","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.3"},"transform-template-literals":{"chrome":"41","opera":"28","edge":"13","firefox":"34","safari":"13","node":"4","ios":"13","samsung":"3.4","electron":"0.21"},"transform-literals":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","ios":"9","samsung":"4","electron":"0.30"},"transform-function-name":{"chrome":"51","opera":"38","edge":"79","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-arrow-functions":{"chrome":"47","opera":"34","edge":"13","firefox":"43","safari":"10","node":"6","ios":"10","samsung":"5","rhino":"1.7.13","electron":"0.36"},"transform-block-scoped-functions":{"chrome":"41","opera":"28","edge":"12","firefox":"46","safari":"10","node":"4","ie":"11","ios":"10","samsung":"3.4","electron":"0.21"},"transform-classes":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-object-super":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-shorthand-properties":{"chrome":"43","opera":"30","edge":"12","firefox":"33","safari":"9","node":"4","ios":"9","samsung":"4","rhino":"1.7.14","electron":"0.27"},"transform-duplicate-keys":{"chrome":"42","opera":"29","edge":"12","firefox":"34","safari":"9","node":"4","ios":"9","samsung":"3.4","electron":"0.25"},"transform-computed-properties":{"chrome":"44","opera":"31","edge":"12","firefox":"34","safari":"7.1","node":"4","ios":"8","samsung":"4","electron":"0.30"},"transform-for-of":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-sticky-regex":{"chrome":"49","opera":"36","edge":"13","firefox":"3","safari":"10","node":"6","ios":"10","samsung":"5","electron":"0.37"},"transform-unicode-escapes":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","ios":"9","samsung":"4","electron":"0.30"},"transform-unicode-regex":{"chrome":"50","opera":"37","edge":"13","firefox":"46","safari":"12","node":"6","ios":"12","samsung":"5","electron":"1.1"},"transform-spread":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-destructuring":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","ios":"10","samsung":"5","electron":"1.2"},"transform-block-scoping":{"chrome":"49","opera":"36","edge":"14","firefox":"51","safari":"11","node":"6","ios":"11","samsung":"5","electron":"0.37"},"transform-typeof-symbol":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"transform-new-target":{"chrome":"46","opera":"33","edge":"14","firefox":"41","safari":"10","node":"5","ios":"10","samsung":"5","electron":"0.36"},"transform-regenerator":{"chrome":"50","opera":"37","edge":"13","firefox":"53","safari":"10","node":"6","ios":"10","samsung":"5","electron":"1.1"},"transform-member-expression-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-property-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.10","ie":"9","android":"4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-reserved-words":{"chrome":"13","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.10","ie":"9","android":"4.4","ios":"6","phantom":"2","samsung":"1","rhino":"1.7.13","electron":"0.20"},"proposal-export-namespace-from":{"chrome":"72","and_chr":"72","edge":"79","firefox":"80","and_ff":"80","node":"13.2","opera":"60","op_mob":"51","samsung":"11.0","android":"72","electron":"5.0"}}')},4073:e=>{"use strict";e.exports=JSON.parse('{"es.symbol":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"51","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.symbol.description":{"android":"70","chrome":"70","deno":"1.0","edge":"74","electron":"5.0","firefox":"63","ios":"12.2","node":"11.0","opera":"57","opera_mobile":"49","safari":"12.1","samsung":"10.0"},"es.symbol.async-iterator":{"android":"63","chrome":"63","deno":"1.0","edge":"74","electron":"3.0","firefox":"55","ios":"12.0","node":"10.0","opera":"50","opera_mobile":"46","safari":"12.0","samsung":"8.0"},"es.symbol.has-instance":{"android":"50","chrome":"50","deno":"1.0","edge":"15","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.is-concat-spreadable":{"android":"48","chrome":"48","deno":"1.0","edge":"15","electron":"0.37","firefox":"48","ios":"10.0","node":"6.0","opera":"35","opera_mobile":"35","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.iterator":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"36","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.symbol.match":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"40","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.match-all":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"67","ios":"13.0","node":"12.0","opera":"60","opera_mobile":"52","safari":"13","samsung":"11.0"},"es.symbol.replace":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.search":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.species":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"41","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.split":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"49","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.to-primitive":{"android":"47","chrome":"47","deno":"1.0","edge":"15","electron":"0.36","firefox":"44","ios":"10.0","node":"6.0","opera":"34","opera_mobile":"34","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.to-string-tag":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"51","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.symbol.unscopables":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"48","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.error.cause":{"android":"94","chrome":"94","deno":"1.14","edge":"94","electron":"15.0","firefox":"91","ios":"15.0","node":"16.11","opera":"80","opera_mobile":"66","safari":"15.0","samsung":"17.0"},"es.error.to-string":{"android":"4.4.3","chrome":"33","deno":"1.0","edge":"12","electron":"0.20","firefox":"11","ie":"9","ios":"9.0","node":"0.11.13","opera":"20","opera_mobile":"20","rhino":"1.7.14","safari":"8.0","samsung":"2.0"},"es.aggregate-error":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"es.aggregate-error.cause":{"android":"94","chrome":"94","deno":"1.14","edge":"94","electron":"15.0","firefox":"91","ios":"15.0","node":"16.11","opera":"80","opera_mobile":"66","safari":"15.0","samsung":"17.0"},"es.array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"es.array.concat":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.copy-within":{"android":"45","chrome":"45","deno":"1.0","edge":"12","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.every":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.fill":{"android":"45","chrome":"45","deno":"1.0","edge":"12","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.filter":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.find":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.find-index":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"48","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"9.0","samsung":"5.0"},"es.array.flat":{"android":"69","chrome":"69","deno":"1.0","edge":"74","electron":"4.0","firefox":"62","ios":"12.0","node":"11.0","opera":"56","opera_mobile":"48","safari":"12.0","samsung":"10.0"},"es.array.flat-map":{"android":"69","chrome":"69","deno":"1.0","edge":"74","electron":"4.0","firefox":"62","ios":"12.0","node":"11.0","opera":"56","opera_mobile":"48","safari":"12.0","samsung":"10.0"},"es.array.for-each":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.from":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"9.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"9.0","samsung":"5.0"},"es.array.includes":{"android":"53","chrome":"53","deno":"1.0","edge":"14","electron":"1.4","firefox":"102","ios":"10.0","node":"7.0","opera":"40","opera_mobile":"40","safari":"10.0","samsung":"6.0"},"es.array.index-of":{"android":"51","chrome":"51","deno":"1.0","edge":"12","electron":"1.2","firefox":"47","ie":"9","ios":"8.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"7.1","samsung":"5.0"},"es.array.is-array":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"3.2","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.array.iterator":{"android":"66","chrome":"66","deno":"1.0","edge":"15","electron":"3.0","firefox":"60","ios":"10.0","node":"10.0","opera":"53","opera_mobile":"47","safari":"10.0","samsung":"9.0"},"es.array.join":{"android":"4.4","chrome":"26","deno":"1.0","edge":"13","electron":"0.20","firefox":"4","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.last-index-of":{"android":"51","chrome":"51","deno":"1.0","edge":"12","electron":"1.2","firefox":"47","ie":"9","ios":"8.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"7.1","samsung":"5.0"},"es.array.map":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"50","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.of":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"25","ios":"9.0","node":"4.0","opera":"32","opera_mobile":"32","rhino":"1.7.13","safari":"9.0","samsung":"5.0"},"es.array.reduce":{"android":"83","chrome":"83","deno":"1.0","edge":"12","electron":"9.0","firefox":"4","ie":"9","ios":"8.0","node":"6.0","opera":"69","opera_mobile":"59","rhino":"1.7.13","safari":"7.1","samsung":"13.0"},"es.array.reduce-right":{"android":"83","chrome":"83","deno":"1.0","edge":"12","electron":"9.0","firefox":"4","ie":"9","ios":"8.0","node":"6.0","opera":"69","opera_mobile":"59","rhino":"1.7.13","safari":"7.1","samsung":"13.0"},"es.array.reverse":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"5.5","ios":"12.2","node":"0.0.3","opera":"10.50","opera_mobile":"10.50","rhino":"1.7.13","safari":"12.0.2","samsung":"1.0"},"es.array.slice":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.some":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.array.sort":{"android":"70","chrome":"70","deno":"1.0","edge":"74","electron":"5.0","firefox":"4","ios":"12.0","node":"11.0","opera":"57","opera_mobile":"49","safari":"12.0","samsung":"10.0"},"es.array.species":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"48","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.splice":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"49","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.array.unscopables.flat":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"67","ios":"13.0","node":"12.0","opera":"60","opera_mobile":"52","safari":"13","samsung":"11.0"},"es.array.unscopables.flat-map":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"67","ios":"13.0","node":"12.0","opera":"60","opera_mobile":"52","safari":"13","samsung":"11.0"},"es.array-buffer.constructor":{"android":"4.4","chrome":"26","deno":"1.0","edge":"14","electron":"0.20","firefox":"44","ios":"12.0","node":"0.11.0","opera":"16","opera_mobile":"16","safari":"12.0","samsung":"1.5"},"es.array-buffer.is-view":{"android":"4.4.3","chrome":"32","deno":"1.0","edge":"12","electron":"0.20","firefox":"29","ie":"11","ios":"8.0","node":"0.11.9","opera":"19","opera_mobile":"19","safari":"7.1","samsung":"2.0"},"es.array-buffer.slice":{"android":"4.4.3","chrome":"31","deno":"1.0","edge":"12","electron":"0.20","firefox":"46","ie":"11","ios":"12.2","node":"0.11.8","opera":"18","opera_mobile":"18","rhino":"1.7.13","safari":"12.1","samsung":"2.0"},"es.data-view":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"15","ie":"10","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.date.get-year":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"9","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.date.now":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ie":"9","ios":"3.2","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.date.set-year":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.date.to-gmt-string":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.date.to-iso-string":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"7","ie":"9","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.date.to-json":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"10.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"10.0","samsung":"1.5"},"es.date.to-primitive":{"android":"47","chrome":"47","deno":"1.0","edge":"15","electron":"0.36","firefox":"44","ios":"10.0","node":"6.0","opera":"34","opera_mobile":"34","safari":"10.0","samsung":"5.0"},"es.date.to-string":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ie":"9","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.escape":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.function.bind":{"android":"3.0","chrome":"7","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"5.1","node":"0.1.101","opera":"12","opera_mobile":"12","phantom":"2.0","rhino":"1.7.13","safari":"5.1","samsung":"1.0"},"es.function.has-instance":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"50","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.function.name":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"3.2","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.global-this":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"65","ios":"12.2","node":"12.0","opera":"58","opera_mobile":"50","rhino":"1.7.14","safari":"12.1","samsung":"10.0"},"es.json.stringify":{"android":"72","chrome":"72","deno":"1.0","edge":"74","electron":"5.0","firefox":"64","ios":"12.2","node":"12.0","opera":"59","opera_mobile":"51","safari":"12.1","samsung":"11.0"},"es.json.to-string-tag":{"android":"50","chrome":"50","deno":"1.0","edge":"15","electron":"1.1","firefox":"51","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","safari":"10.0","samsung":"5.0"},"es.map":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.math.acosh":{"android":"54","chrome":"54","deno":"1.0","edge":"13","electron":"1.4","firefox":"25","ios":"8.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"7.1","samsung":"6.0"},"es.math.asinh":{"android":"38","chrome":"38","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.atanh":{"android":"38","chrome":"38","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.cbrt":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.clz32":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ios":"9.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"9.0","samsung":"3.0"},"es.math.cosh":{"android":"39","chrome":"39","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"1.0","opera":"26","opera_mobile":"26","rhino":"1.7.13","safari":"7.1","samsung":"3.4"},"es.math.expm1":{"android":"39","chrome":"39","deno":"1.0","edge":"13","electron":"0.20","firefox":"46","ios":"8.0","node":"1.0","opera":"26","opera_mobile":"26","rhino":"1.7.13","safari":"7.1","samsung":"3.4"},"es.math.fround":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"26","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.hypot":{"android":"78","chrome":"78","deno":"1.0","edge":"12","electron":"7.0","firefox":"27","ios":"8.0","node":"13.0","opera":"65","opera_mobile":"56","rhino":"1.7.13","safari":"7.1","samsung":"12.0"},"es.math.imul":{"android":"4.4","chrome":"28","deno":"1.0","edge":"13","electron":"0.20","firefox":"20","ios":"9.0","node":"0.11.1","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.math.log10":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.log1p":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.log2":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.sign":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"9.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"9.0","samsung":"3.0"},"es.math.sinh":{"android":"39","chrome":"39","deno":"1.0","edge":"13","electron":"0.20","firefox":"25","ios":"8.0","node":"1.0","opera":"26","opera_mobile":"26","rhino":"1.7.13","safari":"7.1","samsung":"3.4"},"es.math.tanh":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.math.to-string-tag":{"android":"50","chrome":"50","deno":"1.0","edge":"15","electron":"1.1","firefox":"51","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","safari":"10.0","samsung":"5.0"},"es.math.trunc":{"android":"38","chrome":"38","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"8.0","node":"0.11.15","opera":"25","opera_mobile":"25","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.number.constructor":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"46","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.number.epsilon":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"25","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.14","safari":"9.0","samsung":"2.0"},"es.number.is-finite":{"android":"4.1","chrome":"19","deno":"1.0","edge":"12","electron":"0.20","firefox":"16","ios":"9.0","node":"0.7.3","opera":"15","opera_mobile":"15","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.number.is-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"16","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.is-nan":{"android":"4.1","chrome":"19","deno":"1.0","edge":"12","electron":"0.20","firefox":"15","ios":"9.0","node":"0.7.3","opera":"15","opera_mobile":"15","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.number.is-safe-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"32","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.max-safe-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.min-safe-integer":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.number.parse-float":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"39","ios":"11.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.14","safari":"11.0","samsung":"3.0"},"es.number.parse-int":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"39","ios":"9.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.14","safari":"9.0","samsung":"3.0"},"es.number.to-exponential":{"android":"51","chrome":"51","deno":"1.0","edge":"18","electron":"1.2","firefox":"87","ios":"11.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.14","safari":"11","samsung":"5.0"},"es.number.to-fixed":{"android":"4.4","chrome":"26","deno":"1.0","edge":"74","electron":"0.20","firefox":"4","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.number.to-precision":{"android":"4.4","chrome":"26","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"8","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","rhino":"1.7.13","safari":"7.1","samsung":"1.5"},"es.object.assign":{"android":"49","chrome":"49","deno":"1.0","edge":"74","electron":"0.37","firefox":"36","ios":"9.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"9.0","samsung":"5.0"},"es.object.create":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"3.2","node":"0.1.27","opera":"12","opera_mobile":"12","phantom":"1.9","rhino":"1.7.13","safari":"4.0","samsung":"1.0"},"es.object.define-getter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.define-properties":{"android":"37","chrome":"37","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"5.1","node":"0.11.15","opera":"12","opera_mobile":"12","phantom":"2.0","rhino":"1.7.13","safari":"5.1","samsung":"3.0"},"es.object.define-property":{"android":"37","chrome":"37","deno":"1.0","edge":"12","electron":"0.20","firefox":"4","ie":"9","ios":"5.1","node":"0.11.15","opera":"12","opera_mobile":"12","phantom":"2.0","rhino":"1.7.13","safari":"5.1","samsung":"3.0"},"es.object.define-setter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.entries":{"android":"54","chrome":"54","deno":"1.0","edge":"14","electron":"1.4","firefox":"47","ios":"10.3","node":"7.0","opera":"41","opera_mobile":"41","rhino":"1.7.14","safari":"10.1","samsung":"6.0"},"es.object.freeze":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.from-entries":{"android":"73","chrome":"73","deno":"1.0","edge":"74","electron":"5.0","firefox":"63","ios":"12.2","node":"12.0","opera":"60","opera_mobile":"52","rhino":"1.7.14","safari":"12.1","samsung":"11.0"},"es.object.get-own-property-descriptor":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.get-own-property-descriptors":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"50","ios":"10.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"10.0","samsung":"6.0"},"es.object.get-own-property-names":{"android":"40","chrome":"40","deno":"1.0","edge":"13","electron":"0.21","firefox":"34","ios":"9.0","node":"1.0","opera":"27","opera_mobile":"27","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.object.get-prototype-of":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.has-own":{"android":"93","chrome":"93","deno":"1.13","edge":"93","electron":"14.0","firefox":"92","ios":"15.4","node":"16.9","opera":"79","opera_mobile":"66","safari":"15.4","samsung":"17.0"},"es.object.is":{"android":"4.1","chrome":"19","deno":"1.0","edge":"12","electron":"0.20","firefox":"22","ios":"9.0","node":"0.7.3","opera":"15","opera_mobile":"15","rhino":"1.7.13","safari":"9.0","samsung":"1.5"},"es.object.is-extensible":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.is-frozen":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.is-sealed":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.keys":{"android":"40","chrome":"40","deno":"1.0","edge":"13","electron":"0.21","firefox":"35","ios":"9.0","node":"1.0","opera":"27","opera_mobile":"27","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.object.lookup-getter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.lookup-setter":{"android":"62","chrome":"62","deno":"1.0","edge":"16","electron":"3.0","firefox":"48","ios":"8.0","node":"8.10","opera":"49","opera_mobile":"46","rhino":"1.7.13","safari":"7.1","samsung":"8.0"},"es.object.prevent-extensions":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.seal":{"android":"44","chrome":"44","deno":"1.0","edge":"13","electron":"0.30","firefox":"35","ios":"9.0","node":"3.0","opera":"31","opera_mobile":"31","rhino":"1.7.13","safari":"9.0","samsung":"4.0"},"es.object.set-prototype-of":{"android":"37","chrome":"34","deno":"1.0","edge":"12","electron":"0.20","firefox":"31","ie":"11","ios":"9.0","node":"0.11.13","opera":"21","opera_mobile":"21","rhino":"1.7.13","safari":"9.0","samsung":"2.0"},"es.object.to-string":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"51","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.object.values":{"android":"54","chrome":"54","deno":"1.0","edge":"14","electron":"1.4","firefox":"47","ios":"10.3","node":"7.0","opera":"41","opera_mobile":"41","rhino":"1.7.14","safari":"10.1","samsung":"6.0"},"es.parse-float":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"8","ie":"8","ios":"8.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.parse-int":{"android":"37","chrome":"35","deno":"1.0","edge":"74","electron":"0.20","firefox":"21","ie":"9","ios":"8.0","node":"0.11.13","opera":"22","opera_mobile":"22","rhino":"1.7.13","safari":"7.1","samsung":"3.0"},"es.promise":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"69","ios":"11.0","node":"10.4","opera":"54","opera_mobile":"48","rhino":"1.7.14","safari":"11.0","samsung":"9.0"},"es.promise.all-settled":{"android":"76","chrome":"76","deno":"1.0","edge":"76","electron":"6.0","firefox":"71","ios":"13.0","node":"12.9","opera":"63","opera_mobile":"54","safari":"13","samsung":"12.0"},"es.promise.any":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"es.promise.finally":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"69","ios":"13.2.3","node":"10.4","opera":"54","opera_mobile":"48","rhino":"1.7.14","safari":"13.0.3","samsung":"9.0"},"es.reflect.apply":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.construct":{"android":"49","chrome":"49","deno":"1.0","edge":"15","electron":"0.37","firefox":"44","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.define-property":{"android":"49","chrome":"49","deno":"1.0","edge":"13","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.delete-property":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.get":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.get-own-property-descriptor":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.get-prototype-of":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.has":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.is-extensible":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.own-keys":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.prevent-extensions":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.set":{"android":"49","chrome":"49","deno":"1.0","edge":"74","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.set-prototype-of":{"android":"49","chrome":"49","deno":"1.0","edge":"12","electron":"0.37","firefox":"42","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.reflect.to-string-tag":{"android":"86","chrome":"86","deno":"1.3","edge":"86","electron":"11.0","firefox":"82","ios":"14.0","node":"15.0","opera":"72","opera_mobile":"61","safari":"14.0","samsung":"14.0"},"es.regexp.constructor":{"android":"64","chrome":"64","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"10.0","opera":"51","opera_mobile":"47","safari":"11.1","samsung":"9.0"},"es.regexp.dot-all":{"android":"62","chrome":"62","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"8.10","opera":"49","opera_mobile":"46","safari":"11.1","samsung":"8.0"},"es.regexp.exec":{"android":"64","chrome":"64","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"10.0","opera":"51","opera_mobile":"47","safari":"11.1","samsung":"9.0"},"es.regexp.flags":{"android":"62","chrome":"62","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"11.3","node":"8.10","opera":"49","opera_mobile":"46","safari":"11.1","samsung":"8.0"},"es.regexp.sticky":{"android":"49","chrome":"49","deno":"1.0","edge":"13","electron":"0.37","firefox":"3","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.regexp.test":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"46","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.regexp.to-string":{"android":"50","chrome":"50","deno":"1.0","edge":"74","electron":"1.1","firefox":"46","ios":"10.0","node":"6.0","opera":"37","opera_mobile":"37","safari":"10.0","samsung":"5.0"},"es.set":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.string.at-alternative":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"es.string.code-point-at":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"29","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.ends-with":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"40","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.from-code-point":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"29","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.includes":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"40","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.iterator":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"36","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.match":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"49","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.match-all":{"android":"80","chrome":"80","deno":"1.0","edge":"80","electron":"8.0","firefox":"73","ios":"13.4","node":"14.0","opera":"67","opera_mobile":"57","safari":"13.1","samsung":"13.0"},"es.string.pad-end":{"android":"57","chrome":"57","deno":"1.0","edge":"15","electron":"1.7","firefox":"48","ios":"11.0","node":"8.0","opera":"44","opera_mobile":"43","rhino":"1.7.13","safari":"11.0","samsung":"7.0"},"es.string.pad-start":{"android":"57","chrome":"57","deno":"1.0","edge":"15","electron":"1.7","firefox":"48","ios":"11.0","node":"8.0","opera":"44","opera_mobile":"43","rhino":"1.7.13","safari":"11.0","samsung":"7.0"},"es.string.raw":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"34","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.14","safari":"9.0","samsung":"3.4"},"es.string.repeat":{"android":"41","chrome":"41","deno":"1.0","edge":"13","electron":"0.21","firefox":"24","ios":"9.0","node":"1.0","opera":"28","opera_mobile":"28","rhino":"1.7.13","safari":"9.0","samsung":"3.4"},"es.string.replace":{"android":"64","chrome":"64","deno":"1.0","edge":"74","electron":"3.0","firefox":"78","ios":"14.0","node":"10.0","opera":"51","opera_mobile":"47","safari":"14.0","samsung":"9.0"},"es.string.replace-all":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"77","ios":"13.4","node":"15.0","opera":"71","opera_mobile":"60","safari":"13.1","samsung":"14.0"},"es.string.search":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"49","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.split":{"android":"54","chrome":"54","deno":"1.0","edge":"74","electron":"1.4","firefox":"49","ios":"10.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"10.0","samsung":"6.0"},"es.string.starts-with":{"android":"51","chrome":"51","deno":"1.0","edge":"74","electron":"1.2","firefox":"40","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.string.substr":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"9","ios":"1.0","node":"0.0.3","opera":"4","opera_mobile":"4","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.string.trim":{"android":"59","chrome":"59","deno":"1.0","edge":"15","electron":"1.8","firefox":"52","ios":"12.2","node":"8.3","opera":"46","opera_mobile":"43","safari":"12.1","samsung":"7.0"},"es.string.trim-end":{"android":"66","chrome":"66","deno":"1.0","edge":"74","electron":"3.0","firefox":"61","ios":"12.2","node":"10.0","opera":"53","opera_mobile":"47","safari":"12.1","samsung":"9.0"},"es.string.trim-start":{"android":"66","chrome":"66","deno":"1.0","edge":"74","electron":"3.0","firefox":"61","ios":"12.0","node":"10.0","opera":"53","opera_mobile":"47","safari":"12.0","samsung":"9.0"},"es.string.anchor":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.big":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.blink":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.bold":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.fixed":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.fontcolor":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.fontsize":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.italics":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.link":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"17","ios":"6.0","node":"0.1.27","opera":"15","opera_mobile":"15","phantom":"2.0","rhino":"1.7.14","safari":"6.0","samsung":"1.0"},"es.string.small":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.strike":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.sub":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.string.sup":{"android":"3.0","chrome":"5","deno":"1.0","edge":"12","electron":"0.20","firefox":"2","ios":"2.0","node":"0.1.27","opera":"10.50","opera_mobile":"10.50","phantom":"1.9","rhino":"1.7.13","safari":"3.1","samsung":"1.0"},"es.typed-array.float32-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.float64-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.int8-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.int16-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.int32-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint8-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint8-clamped-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint16-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.uint32-array":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"es.typed-array.copy-within":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"34","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.every":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.fill":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.filter":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.find":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.find-index":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.for-each":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.from":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.includes":{"android":"49","chrome":"49","deno":"1.0","edge":"14","electron":"0.37","firefox":"43","ios":"10.0","node":"6.0","opera":"36","opera_mobile":"36","safari":"10.0","samsung":"5.0"},"es.typed-array.index-of":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.iterator":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"37","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.typed-array.join":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.last-index-of":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.map":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.of":{"android":"54","chrome":"54","deno":"1.0","edge":"15","electron":"1.4","firefox":"55","ios":"14.0","node":"7.0","opera":"41","opera_mobile":"41","safari":"14.0","samsung":"6.0"},"es.typed-array.reduce":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.reduce-right":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.reverse":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.set":{"android":"95","chrome":"95","deno":"1.15","edge":"95","electron":"16.0","firefox":"54","ios":"14.5","node":"17.0","opera":"81","opera_mobile":"67","safari":"14.1","samsung":"17.0"},"es.typed-array.slice":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"38","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.some":{"android":"45","chrome":"45","deno":"1.0","edge":"13","electron":"0.31","firefox":"37","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.sort":{"android":"74","chrome":"74","deno":"1.0","edge":"74","electron":"6.0","firefox":"67","ios":"14.5","node":"12.0","opera":"61","opera_mobile":"53","safari":"14.1","samsung":"11.0"},"es.typed-array.subarray":{"android":"4.4","chrome":"26","deno":"1.0","edge":"13","electron":"0.20","firefox":"15","ios":"8.0","node":"0.11.0","opera":"16","opera_mobile":"16","safari":"7.1","samsung":"1.5"},"es.typed-array.to-locale-string":{"android":"45","chrome":"45","deno":"1.0","edge":"74","electron":"0.31","firefox":"51","ios":"10.0","node":"4.0","opera":"32","opera_mobile":"32","safari":"10.0","samsung":"5.0"},"es.typed-array.to-string":{"android":"51","chrome":"51","deno":"1.0","edge":"13","electron":"1.2","firefox":"51","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","safari":"10.0","samsung":"5.0"},"es.unescape":{"android":"3.0","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"3","ios":"1.0","node":"0.0.3","opera":"3","opera_mobile":"3","phantom":"1.9","rhino":"1.7.13","safari":"1","samsung":"1.0"},"es.weak-map":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"es.weak-set":{"android":"51","chrome":"51","deno":"1.0","edge":"15","electron":"1.2","firefox":"53","ios":"10.0","node":"6.5","opera":"38","opera_mobile":"38","rhino":"1.7.13","safari":"10.0","samsung":"5.0"},"esnext.aggregate-error":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"esnext.array.from-async":{},"esnext.array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"esnext.array.filter-out":{},"esnext.array.filter-reject":{},"esnext.array.find-last":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.array.find-last-index":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.array.group-by":{},"esnext.array.group-by-to-map":{},"esnext.array.is-template-object":{},"esnext.array.last-index":{},"esnext.array.last-item":{},"esnext.array.to-reversed":{},"esnext.array.to-sorted":{},"esnext.array.to-spliced":{},"esnext.array.unique-by":{},"esnext.array.with":{},"esnext.async-iterator.constructor":{},"esnext.async-iterator.as-indexed-pairs":{},"esnext.async-iterator.drop":{},"esnext.async-iterator.every":{},"esnext.async-iterator.filter":{},"esnext.async-iterator.find":{},"esnext.async-iterator.flat-map":{},"esnext.async-iterator.for-each":{},"esnext.async-iterator.from":{},"esnext.async-iterator.map":{},"esnext.async-iterator.reduce":{},"esnext.async-iterator.some":{},"esnext.async-iterator.take":{},"esnext.async-iterator.to-array":{},"esnext.bigint.range":{},"esnext.composite-key":{},"esnext.composite-symbol":{},"esnext.function.is-callable":{},"esnext.function.is-constructor":{},"esnext.function.un-this":{},"esnext.global-this":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"65","ios":"12.2","node":"12.0","opera":"58","opera_mobile":"50","rhino":"1.7.14","safari":"12.1","samsung":"10.0"},"esnext.iterator.constructor":{},"esnext.iterator.as-indexed-pairs":{},"esnext.iterator.drop":{},"esnext.iterator.every":{},"esnext.iterator.filter":{},"esnext.iterator.find":{},"esnext.iterator.flat-map":{},"esnext.iterator.for-each":{},"esnext.iterator.from":{},"esnext.iterator.map":{},"esnext.iterator.reduce":{},"esnext.iterator.some":{},"esnext.iterator.take":{},"esnext.iterator.to-array":{},"esnext.iterator.to-async":{},"esnext.map.delete-all":{},"esnext.map.emplace":{},"esnext.map.every":{},"esnext.map.filter":{},"esnext.map.find":{},"esnext.map.find-key":{},"esnext.map.from":{},"esnext.map.group-by":{},"esnext.map.includes":{},"esnext.map.key-by":{},"esnext.map.key-of":{},"esnext.map.map-keys":{},"esnext.map.map-values":{},"esnext.map.merge":{},"esnext.map.of":{},"esnext.map.reduce":{},"esnext.map.some":{},"esnext.map.update":{},"esnext.map.update-or-insert":{},"esnext.map.upsert":{},"esnext.math.clamp":{},"esnext.math.deg-per-rad":{},"esnext.math.degrees":{},"esnext.math.fscale":{},"esnext.math.iaddh":{},"esnext.math.imulh":{},"esnext.math.isubh":{},"esnext.math.rad-per-deg":{},"esnext.math.radians":{},"esnext.math.scale":{},"esnext.math.seeded-prng":{},"esnext.math.signbit":{},"esnext.math.umulh":{},"esnext.number.from-string":{},"esnext.number.range":{},"esnext.object.has-own":{"android":"93","chrome":"93","deno":"1.13","edge":"93","electron":"14.0","firefox":"92","ios":"15.4","node":"16.9","opera":"79","opera_mobile":"66","safari":"15.4","samsung":"17.0"},"esnext.object.iterate-entries":{},"esnext.object.iterate-keys":{},"esnext.object.iterate-values":{},"esnext.observable":{},"esnext.promise.all-settled":{"android":"76","chrome":"76","deno":"1.0","edge":"76","electron":"6.0","firefox":"71","ios":"13.0","node":"12.9","opera":"63","opera_mobile":"54","safari":"13","samsung":"12.0"},"esnext.promise.any":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"79","ios":"14.0","node":"15.0","opera":"71","opera_mobile":"60","safari":"14.0","samsung":"14.0"},"esnext.promise.try":{},"esnext.reflect.define-metadata":{},"esnext.reflect.delete-metadata":{},"esnext.reflect.get-metadata":{},"esnext.reflect.get-metadata-keys":{},"esnext.reflect.get-own-metadata":{},"esnext.reflect.get-own-metadata-keys":{},"esnext.reflect.has-metadata":{},"esnext.reflect.has-own-metadata":{},"esnext.reflect.metadata":{},"esnext.set.add-all":{},"esnext.set.delete-all":{},"esnext.set.difference":{},"esnext.set.every":{},"esnext.set.filter":{},"esnext.set.find":{},"esnext.set.from":{},"esnext.set.intersection":{},"esnext.set.is-disjoint-from":{},"esnext.set.is-subset-of":{},"esnext.set.is-superset-of":{},"esnext.set.join":{},"esnext.set.map":{},"esnext.set.of":{},"esnext.set.reduce":{},"esnext.set.some":{},"esnext.set.symmetric-difference":{},"esnext.set.union":{},"esnext.string.at":{},"esnext.string.cooked":{},"esnext.string.code-points":{},"esnext.string.match-all":{"android":"80","chrome":"80","deno":"1.0","edge":"80","electron":"8.0","firefox":"73","ios":"13.4","node":"14.0","opera":"67","opera_mobile":"57","safari":"13.1","samsung":"13.0"},"esnext.string.replace-all":{"android":"85","chrome":"85","deno":"1.2","edge":"85","electron":"10.0","firefox":"77","ios":"13.4","node":"15.0","opera":"71","opera_mobile":"60","safari":"13.1","samsung":"14.0"},"esnext.symbol.async-dispose":{},"esnext.symbol.dispose":{},"esnext.symbol.matcher":{},"esnext.symbol.metadata":{},"esnext.symbol.observable":{},"esnext.symbol.pattern-match":{},"esnext.symbol.replace-all":{},"esnext.typed-array.from-async":{},"esnext.typed-array.at":{"android":"92","chrome":"92","deno":"1.12","edge":"92","electron":"14.0","firefox":"90","ios":"15.4","node":"16.6","opera":"78","opera_mobile":"65","safari":"15.4","samsung":"16.0"},"esnext.typed-array.filter-out":{},"esnext.typed-array.filter-reject":{},"esnext.typed-array.find-last":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.typed-array.find-last-index":{"android":"97","chrome":"97","deno":"1.16","edge":"97","electron":"17.0","ios":"15.4","node":"18.0","opera":"83","opera_mobile":"68","safari":"15.4"},"esnext.typed-array.group-by":{},"esnext.typed-array.to-reversed":{},"esnext.typed-array.to-sorted":{},"esnext.typed-array.to-spliced":{},"esnext.typed-array.unique-by":{},"esnext.typed-array.with":{},"esnext.weak-map.delete-all":{},"esnext.weak-map.from":{},"esnext.weak-map.of":{},"esnext.weak-map.emplace":{},"esnext.weak-map.upsert":{},"esnext.weak-set.add-all":{},"esnext.weak-set.delete-all":{},"esnext.weak-set.from":{},"esnext.weak-set.of":{},"web.atob":{"android":"37","chrome":"34","deno":"1.0","edge":"16","electron":"0.20","firefox":"27","ios":"10.3","node":"18.0","opera":"10.5","opera_mobile":"10.5","safari":"10.1","samsung":"2.0"},"web.btoa":{"android":"3.0","chrome":"4","deno":"1.0","edge":"16","electron":"0.20","firefox":"27","ios":"1.0","node":"17.5","opera":"10.5","opera_mobile":"10.5","phantom":"1.9","safari":"3.0","samsung":"1.0"},"web.dom-collections.for-each":{"android":"58","chrome":"58","deno":"1.0","edge":"16","electron":"1.7","firefox":"50","ios":"10.0","node":"0.0.1","opera":"45","opera_mobile":"43","rhino":"1.7.13","safari":"10.0","samsung":"7.0"},"web.dom-collections.iterator":{"android":"66","chrome":"66","deno":"1.0","edge":"74","electron":"3.0","firefox":"60","ios":"13.4","node":"0.0.1","opera":"53","opera_mobile":"47","rhino":"1.7.13","safari":"13.1","samsung":"9.0"},"web.dom-exception.constructor":{"android":"46","chrome":"46","deno":"1.7","edge":"74","electron":"0.36","firefox":"37","ios":"11.3","node":"17.0","opera":"33","opera_mobile":"33","safari":"11.1","samsung":"5.0"},"web.dom-exception.stack":{"deno":"1.15","firefox":"37","node":"17.0"},"web.dom-exception.to-string-tag":{"android":"49","chrome":"49","deno":"1.7","edge":"74","electron":"0.37","firefox":"51","ios":"11.3","node":"17.0","opera":"36","opera_mobile":"36","safari":"11.1","samsung":"5.0"},"web.immediate":{"ie":"10","node":"0.9.1"},"web.queue-microtask":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"69","ios":"12.2","node":"12.0","opera":"58","opera_mobile":"50","safari":"12.1","samsung":"10.0"},"web.structured-clone":{},"web.timers":{"android":"1.5","chrome":"1","deno":"1.0","edge":"12","electron":"0.20","firefox":"1","ie":"10","ios":"1.0","node":"0.0.1","opera":"7","opera_mobile":"7","phantom":"1.9","rhino":"1.7.13","safari":"1.0","samsung":"1.0"},"web.url":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"57","ios":"14.0","node":"10.0","opera":"54","opera_mobile":"48","safari":"14.0","samsung":"9.0"},"web.url.to-json":{"android":"71","chrome":"71","deno":"1.0","edge":"74","electron":"5.0","firefox":"57","ios":"14.0","node":"10.0","opera":"58","opera_mobile":"50","safari":"14.0","samsung":"10.0"},"web.url-search-params":{"android":"67","chrome":"67","deno":"1.0","edge":"74","electron":"4.0","firefox":"57","ios":"14.0","node":"10.0","opera":"54","opera_mobile":"48","safari":"14.0","samsung":"9.0"}}')},2856:e=>{"use strict";e.exports=JSON.parse('{"core-js":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/actual":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.global-this","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.string.match-all","esnext.string.replace-all","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/actual/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/actual/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","es.string.iterator","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/actual/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/actual/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/actual/array-buffer/slice":["es.array-buffer.slice"],"core-js/actual/array/at":["es.array.at"],"core-js/actual/array/concat":["es.array.concat"],"core-js/actual/array/copy-within":["es.array.copy-within"],"core-js/actual/array/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/every":["es.array.every"],"core-js/actual/array/fill":["es.array.fill"],"core-js/actual/array/filter":["es.array.filter"],"core-js/actual/array/find":["es.array.find"],"core-js/actual/array/find-index":["es.array.find-index"],"core-js/actual/array/find-last":["esnext.array.find-last"],"core-js/actual/array/find-last-index":["esnext.array.find-last-index"],"core-js/actual/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/for-each":["es.array.for-each"],"core-js/actual/array/from":["es.array.from","es.string.iterator"],"core-js/actual/array/group-by":["esnext.array.group-by"],"core-js/actual/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/includes":["es.array.includes"],"core-js/actual/array/index-of":["es.array.index-of"],"core-js/actual/array/is-array":["es.array.is-array"],"core-js/actual/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/join":["es.array.join"],"core-js/actual/array/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/last-index-of":["es.array.last-index-of"],"core-js/actual/array/map":["es.array.map"],"core-js/actual/array/of":["es.array.of"],"core-js/actual/array/reduce":["es.array.reduce"],"core-js/actual/array/reduce-right":["es.array.reduce-right"],"core-js/actual/array/reverse":["es.array.reverse"],"core-js/actual/array/slice":["es.array.slice"],"core-js/actual/array/some":["es.array.some"],"core-js/actual/array/sort":["es.array.sort"],"core-js/actual/array/splice":["es.array.splice"],"core-js/actual/array/to-reversed":["esnext.array.to-reversed"],"core-js/actual/array/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/actual/array/to-spliced":["esnext.array.to-spliced"],"core-js/actual/array/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array/virtual/at":["es.array.at"],"core-js/actual/array/virtual/concat":["es.array.concat"],"core-js/actual/array/virtual/copy-within":["es.array.copy-within"],"core-js/actual/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/every":["es.array.every"],"core-js/actual/array/virtual/fill":["es.array.fill"],"core-js/actual/array/virtual/filter":["es.array.filter"],"core-js/actual/array/virtual/find":["es.array.find"],"core-js/actual/array/virtual/find-index":["es.array.find-index"],"core-js/actual/array/virtual/find-last":["esnext.array.find-last"],"core-js/actual/array/virtual/find-last-index":["esnext.array.find-last-index"],"core-js/actual/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/virtual/for-each":["es.array.for-each"],"core-js/actual/array/virtual/group-by":["esnext.array.group-by"],"core-js/actual/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/virtual/includes":["es.array.includes"],"core-js/actual/array/virtual/index-of":["es.array.index-of"],"core-js/actual/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/join":["es.array.join"],"core-js/actual/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/actual/array/virtual/map":["es.array.map"],"core-js/actual/array/virtual/reduce":["es.array.reduce"],"core-js/actual/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/actual/array/virtual/reverse":["es.array.reverse"],"core-js/actual/array/virtual/slice":["es.array.slice"],"core-js/actual/array/virtual/some":["es.array.some"],"core-js/actual/array/virtual/sort":["es.array.sort"],"core-js/actual/array/virtual/splice":["es.array.splice"],"core-js/actual/array/virtual/to-reversed":["esnext.array.to-reversed"],"core-js/actual/array/virtual/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/actual/array/virtual/to-spliced":["esnext.array.to-spliced"],"core-js/actual/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/with":["esnext.array.with"],"core-js/actual/array/with":["esnext.array.with"],"core-js/actual/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/clear-immediate":["web.immediate"],"core-js/actual/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/actual/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/actual/date/get-year":["es.date.get-year"],"core-js/actual/date/now":["es.date.now"],"core-js/actual/date/set-year":["es.date.set-year"],"core-js/actual/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/actual/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/actual/date/to-json":["es.date.to-json"],"core-js/actual/date/to-primitive":["es.date.to-primitive"],"core-js/actual/date/to-string":["es.date.to-string"],"core-js/actual/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/actual/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/actual/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/actual/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/actual/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/actual/error":["es.error.cause","es.error.to-string"],"core-js/actual/error/constructor":["es.error.cause"],"core-js/actual/error/to-string":["es.error.to-string"],"core-js/actual/escape":["es.escape"],"core-js/actual/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/actual/function/bind":["es.function.bind"],"core-js/actual/function/has-instance":["es.function.has-instance"],"core-js/actual/function/name":["es.function.name"],"core-js/actual/function/virtual":["es.function.bind"],"core-js/actual/function/virtual/bind":["es.function.bind"],"core-js/actual/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/global-this":["es.global-this"],"core-js/actual/instance/at":["es.array.at","es.string.at-alternative"],"core-js/actual/instance/bind":["es.function.bind"],"core-js/actual/instance/code-point-at":["es.string.code-point-at"],"core-js/actual/instance/concat":["es.array.concat"],"core-js/actual/instance/copy-within":["es.array.copy-within"],"core-js/actual/instance/ends-with":["es.string.ends-with"],"core-js/actual/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/every":["es.array.every"],"core-js/actual/instance/fill":["es.array.fill"],"core-js/actual/instance/filter":["es.array.filter"],"core-js/actual/instance/find":["es.array.find"],"core-js/actual/instance/find-index":["es.array.find-index"],"core-js/actual/instance/find-last":["esnext.array.find-last"],"core-js/actual/instance/find-last-index":["esnext.array.find-last-index"],"core-js/actual/instance/flags":["es.regexp.flags"],"core-js/actual/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/actual/instance/group-by":["esnext.array.group-by"],"core-js/actual/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/instance/includes":["es.array.includes","es.string.includes"],"core-js/actual/instance/index-of":["es.array.index-of"],"core-js/actual/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/last-index-of":["es.array.last-index-of"],"core-js/actual/instance/map":["es.array.map"],"core-js/actual/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/instance/pad-end":["es.string.pad-end"],"core-js/actual/instance/pad-start":["es.string.pad-start"],"core-js/actual/instance/reduce":["es.array.reduce"],"core-js/actual/instance/reduce-right":["es.array.reduce-right"],"core-js/actual/instance/repeat":["es.string.repeat"],"core-js/actual/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/instance/reverse":["es.array.reverse"],"core-js/actual/instance/slice":["es.array.slice"],"core-js/actual/instance/some":["es.array.some"],"core-js/actual/instance/sort":["es.array.sort"],"core-js/actual/instance/splice":["es.array.splice"],"core-js/actual/instance/starts-with":["es.string.starts-with"],"core-js/actual/instance/to-reversed":["esnext.array.to-reversed"],"core-js/actual/instance/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/actual/instance/to-spliced":["esnext.array.to-spliced"],"core-js/actual/instance/trim":["es.string.trim"],"core-js/actual/instance/trim-end":["es.string.trim-end"],"core-js/actual/instance/trim-left":["es.string.trim-start"],"core-js/actual/instance/trim-right":["es.string.trim-end"],"core-js/actual/instance/trim-start":["es.string.trim-start"],"core-js/actual/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/with":["esnext.array.with"],"core-js/actual/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/json":["es.json.stringify","es.json.to-string-tag"],"core-js/actual/json/stringify":["es.json.stringify"],"core-js/actual/json/to-string-tag":["es.json.to-string-tag"],"core-js/actual/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/actual/math/acosh":["es.math.acosh"],"core-js/actual/math/asinh":["es.math.asinh"],"core-js/actual/math/atanh":["es.math.atanh"],"core-js/actual/math/cbrt":["es.math.cbrt"],"core-js/actual/math/clz32":["es.math.clz32"],"core-js/actual/math/cosh":["es.math.cosh"],"core-js/actual/math/expm1":["es.math.expm1"],"core-js/actual/math/fround":["es.math.fround"],"core-js/actual/math/hypot":["es.math.hypot"],"core-js/actual/math/imul":["es.math.imul"],"core-js/actual/math/log10":["es.math.log10"],"core-js/actual/math/log1p":["es.math.log1p"],"core-js/actual/math/log2":["es.math.log2"],"core-js/actual/math/sign":["es.math.sign"],"core-js/actual/math/sinh":["es.math.sinh"],"core-js/actual/math/tanh":["es.math.tanh"],"core-js/actual/math/to-string-tag":["es.math.to-string-tag"],"core-js/actual/math/trunc":["es.math.trunc"],"core-js/actual/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/constructor":["es.number.constructor"],"core-js/actual/number/epsilon":["es.number.epsilon"],"core-js/actual/number/is-finite":["es.number.is-finite"],"core-js/actual/number/is-integer":["es.number.is-integer"],"core-js/actual/number/is-nan":["es.number.is-nan"],"core-js/actual/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/actual/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/actual/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/actual/number/parse-float":["es.number.parse-float"],"core-js/actual/number/parse-int":["es.number.parse-int"],"core-js/actual/number/to-exponential":["es.number.to-exponential"],"core-js/actual/number/to-fixed":["es.number.to-fixed"],"core-js/actual/number/to-precision":["es.number.to-precision"],"core-js/actual/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/actual/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/actual/number/virtual/to-precision":["es.number.to-precision"],"core-js/actual/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/actual/object/assign":["es.object.assign"],"core-js/actual/object/create":["es.object.create"],"core-js/actual/object/define-getter":["es.object.define-getter"],"core-js/actual/object/define-properties":["es.object.define-properties"],"core-js/actual/object/define-property":["es.object.define-property"],"core-js/actual/object/define-setter":["es.object.define-setter"],"core-js/actual/object/entries":["es.object.entries"],"core-js/actual/object/freeze":["es.object.freeze"],"core-js/actual/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/actual/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/actual/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/actual/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/actual/object/get-own-property-symbols":["es.symbol"],"core-js/actual/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/actual/object/has-own":["es.object.has-own"],"core-js/actual/object/is":["es.object.is"],"core-js/actual/object/is-extensible":["es.object.is-extensible"],"core-js/actual/object/is-frozen":["es.object.is-frozen"],"core-js/actual/object/is-sealed":["es.object.is-sealed"],"core-js/actual/object/keys":["es.object.keys"],"core-js/actual/object/lookup-getter":["es.object.lookup-getter"],"core-js/actual/object/lookup-setter":["es.object.lookup-setter"],"core-js/actual/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/actual/object/seal":["es.object.seal"],"core-js/actual/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/actual/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/object/values":["es.object.values"],"core-js/actual/parse-float":["es.parse-float"],"core-js/actual/parse-int":["es.parse-int"],"core-js/actual/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/actual/queue-microtask":["web.queue-microtask"],"core-js/actual/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/actual/reflect/apply":["es.reflect.apply"],"core-js/actual/reflect/construct":["es.reflect.construct"],"core-js/actual/reflect/define-property":["es.reflect.define-property"],"core-js/actual/reflect/delete-property":["es.reflect.delete-property"],"core-js/actual/reflect/get":["es.reflect.get"],"core-js/actual/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/actual/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/actual/reflect/has":["es.reflect.has"],"core-js/actual/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/actual/reflect/own-keys":["es.reflect.own-keys"],"core-js/actual/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/actual/reflect/set":["es.reflect.set"],"core-js/actual/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/actual/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/actual/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/actual/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/actual/regexp/flags":["es.regexp.flags"],"core-js/actual/regexp/match":["es.regexp.exec","es.string.match"],"core-js/actual/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/regexp/search":["es.regexp.exec","es.string.search"],"core-js/actual/regexp/split":["es.regexp.exec","es.string.split"],"core-js/actual/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/actual/regexp/to-string":["es.regexp.to-string"],"core-js/actual/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/set-immediate":["web.immediate"],"core-js/actual/set-interval":["web.timers"],"core-js/actual/set-timeout":["web.timers"],"core-js/actual/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/actual/string/anchor":["es.string.anchor"],"core-js/actual/string/at":["es.string.at-alternative"],"core-js/actual/string/big":["es.string.big"],"core-js/actual/string/blink":["es.string.blink"],"core-js/actual/string/bold":["es.string.bold"],"core-js/actual/string/code-point-at":["es.string.code-point-at"],"core-js/actual/string/ends-with":["es.string.ends-with"],"core-js/actual/string/fixed":["es.string.fixed"],"core-js/actual/string/fontcolor":["es.string.fontcolor"],"core-js/actual/string/fontsize":["es.string.fontsize"],"core-js/actual/string/from-code-point":["es.string.from-code-point"],"core-js/actual/string/includes":["es.string.includes"],"core-js/actual/string/italics":["es.string.italics"],"core-js/actual/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/link":["es.string.link"],"core-js/actual/string/match":["es.regexp.exec","es.string.match"],"core-js/actual/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/pad-end":["es.string.pad-end"],"core-js/actual/string/pad-start":["es.string.pad-start"],"core-js/actual/string/raw":["es.string.raw"],"core-js/actual/string/repeat":["es.string.repeat"],"core-js/actual/string/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/search":["es.regexp.exec","es.string.search"],"core-js/actual/string/small":["es.string.small"],"core-js/actual/string/split":["es.regexp.exec","es.string.split"],"core-js/actual/string/starts-with":["es.string.starts-with"],"core-js/actual/string/strike":["es.string.strike"],"core-js/actual/string/sub":["es.string.sub"],"core-js/actual/string/substr":["es.string.substr"],"core-js/actual/string/sup":["es.string.sup"],"core-js/actual/string/trim":["es.string.trim"],"core-js/actual/string/trim-end":["es.string.trim-end"],"core-js/actual/string/trim-left":["es.string.trim-start"],"core-js/actual/string/trim-right":["es.string.trim-end"],"core-js/actual/string/trim-start":["es.string.trim-start"],"core-js/actual/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/actual/string/virtual/anchor":["es.string.anchor"],"core-js/actual/string/virtual/at":["es.string.at-alternative"],"core-js/actual/string/virtual/big":["es.string.big"],"core-js/actual/string/virtual/blink":["es.string.blink"],"core-js/actual/string/virtual/bold":["es.string.bold"],"core-js/actual/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/actual/string/virtual/ends-with":["es.string.ends-with"],"core-js/actual/string/virtual/fixed":["es.string.fixed"],"core-js/actual/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/actual/string/virtual/fontsize":["es.string.fontsize"],"core-js/actual/string/virtual/includes":["es.string.includes"],"core-js/actual/string/virtual/italics":["es.string.italics"],"core-js/actual/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/virtual/link":["es.string.link"],"core-js/actual/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/virtual/pad-end":["es.string.pad-end"],"core-js/actual/string/virtual/pad-start":["es.string.pad-start"],"core-js/actual/string/virtual/repeat":["es.string.repeat"],"core-js/actual/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/virtual/small":["es.string.small"],"core-js/actual/string/virtual/starts-with":["es.string.starts-with"],"core-js/actual/string/virtual/strike":["es.string.strike"],"core-js/actual/string/virtual/sub":["es.string.sub"],"core-js/actual/string/virtual/substr":["es.string.substr"],"core-js/actual/string/virtual/sup":["es.string.sup"],"core-js/actual/string/virtual/trim":["es.string.trim"],"core-js/actual/string/virtual/trim-end":["es.string.trim-end"],"core-js/actual/string/virtual/trim-left":["es.string.trim-start"],"core-js/actual/string/virtual/trim-right":["es.string.trim-end"],"core-js/actual/string/virtual/trim-start":["es.string.trim-start"],"core-js/actual/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/actual/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/actual/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/actual/symbol/description":["es.symbol.description"],"core-js/actual/symbol/for":["es.symbol"],"core-js/actual/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/actual/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/actual/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/symbol/key-for":["es.symbol"],"core-js/actual/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/actual/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/actual/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/actual/symbol/species":["es.symbol.species"],"core-js/actual/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/actual/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/actual/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/symbol/unscopables":["es.symbol.unscopables"],"core-js/actual/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/at":["es.typed-array.every"],"core-js/actual/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/actual/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/every":["es.typed-array.every"],"core-js/actual/typed-array/fill":["es.typed-array.fill"],"core-js/actual/typed-array/filter":["es.typed-array.filter"],"core-js/actual/typed-array/find":["es.typed-array.find"],"core-js/actual/typed-array/find-index":["es.typed-array.find-index"],"core-js/actual/typed-array/find-last":["esnext.typed-array.find-last"],"core-js/actual/typed-array/find-last-index":["esnext.typed-array.find-last-index"],"core-js/actual/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/for-each":["es.typed-array.for-each"],"core-js/actual/typed-array/from":["es.typed-array.from"],"core-js/actual/typed-array/includes":["es.typed-array.includes"],"core-js/actual/typed-array/index-of":["es.typed-array.index-of"],"core-js/actual/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/join":["es.typed-array.join"],"core-js/actual/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/actual/typed-array/map":["es.typed-array.map"],"core-js/actual/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/of":["es.typed-array.of"],"core-js/actual/typed-array/reduce":["es.typed-array.reduce"],"core-js/actual/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/actual/typed-array/reverse":["es.typed-array.reverse"],"core-js/actual/typed-array/set":["es.typed-array.set"],"core-js/actual/typed-array/slice":["es.typed-array.slice"],"core-js/actual/typed-array/some":["es.typed-array.some"],"core-js/actual/typed-array/sort":["es.typed-array.sort"],"core-js/actual/typed-array/subarray":["es.typed-array.subarray"],"core-js/actual/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/actual/typed-array/to-reversed":["esnext.typed-array.to-reversed"],"core-js/actual/typed-array/to-sorted":["es.typed-array.sort","esnext.typed-array.to-sorted"],"core-js/actual/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/actual/typed-array/to-string":["es.typed-array.to-string"],"core-js/actual/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/actual/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/with":["esnext.typed-array.with"],"core-js/actual/unescape":["es.unescape"],"core-js/actual/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/actual/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/actual/url/to-json":["web.url.to-json"],"core-js/actual/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","web.dom-collections.iterator"],"core-js/actual/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/es":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set"],"core-js/es/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator"],"core-js/es/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string","es.string.iterator"],"core-js/es/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/es/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/es/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/es/array-buffer/slice":["es.array-buffer.slice"],"core-js/es/array/at":["es.array.at"],"core-js/es/array/concat":["es.array.concat"],"core-js/es/array/copy-within":["es.array.copy-within"],"core-js/es/array/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/every":["es.array.every"],"core-js/es/array/fill":["es.array.fill"],"core-js/es/array/filter":["es.array.filter"],"core-js/es/array/find":["es.array.find"],"core-js/es/array/find-index":["es.array.find-index"],"core-js/es/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/for-each":["es.array.for-each"],"core-js/es/array/from":["es.array.from","es.string.iterator"],"core-js/es/array/includes":["es.array.includes"],"core-js/es/array/index-of":["es.array.index-of"],"core-js/es/array/is-array":["es.array.is-array"],"core-js/es/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/join":["es.array.join"],"core-js/es/array/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/last-index-of":["es.array.last-index-of"],"core-js/es/array/map":["es.array.map"],"core-js/es/array/of":["es.array.of"],"core-js/es/array/reduce":["es.array.reduce"],"core-js/es/array/reduce-right":["es.array.reduce-right"],"core-js/es/array/reverse":["es.array.reverse"],"core-js/es/array/slice":["es.array.slice"],"core-js/es/array/some":["es.array.some"],"core-js/es/array/sort":["es.array.sort"],"core-js/es/array/splice":["es.array.splice"],"core-js/es/array/values":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string"],"core-js/es/array/virtual/at":["es.array.at"],"core-js/es/array/virtual/concat":["es.array.concat"],"core-js/es/array/virtual/copy-within":["es.array.copy-within"],"core-js/es/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/every":["es.array.every"],"core-js/es/array/virtual/fill":["es.array.fill"],"core-js/es/array/virtual/filter":["es.array.filter"],"core-js/es/array/virtual/find":["es.array.find"],"core-js/es/array/virtual/find-index":["es.array.find-index"],"core-js/es/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/virtual/for-each":["es.array.for-each"],"core-js/es/array/virtual/includes":["es.array.includes"],"core-js/es/array/virtual/index-of":["es.array.index-of"],"core-js/es/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/join":["es.array.join"],"core-js/es/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/es/array/virtual/map":["es.array.map"],"core-js/es/array/virtual/reduce":["es.array.reduce"],"core-js/es/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/es/array/virtual/reverse":["es.array.reverse"],"core-js/es/array/virtual/slice":["es.array.slice"],"core-js/es/array/virtual/some":["es.array.some"],"core-js/es/array/virtual/sort":["es.array.sort"],"core-js/es/array/virtual/splice":["es.array.splice"],"core-js/es/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/es/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/es/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/es/date/get-year":["es.date.get-year"],"core-js/es/date/now":["es.date.now"],"core-js/es/date/set-year":["es.date.set-year"],"core-js/es/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/es/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/es/date/to-json":["es.date.to-json"],"core-js/es/date/to-primitive":["es.date.to-primitive"],"core-js/es/date/to-string":["es.date.to-string"],"core-js/es/error":["es.error.cause","es.error.to-string"],"core-js/es/error/constructor":["es.error.cause"],"core-js/es/error/to-string":["es.error.to-string"],"core-js/es/escape":["es.escape"],"core-js/es/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/es/function/bind":["es.function.bind"],"core-js/es/function/has-instance":["es.function.has-instance"],"core-js/es/function/name":["es.function.name"],"core-js/es/function/virtual":["es.function.bind"],"core-js/es/function/virtual/bind":["es.function.bind"],"core-js/es/get-iterator":["es.array.iterator","es.string.iterator"],"core-js/es/get-iterator-method":["es.array.iterator","es.string.iterator"],"core-js/es/global-this":["es.global-this"],"core-js/es/instance/at":["es.array.at","es.string.at-alternative"],"core-js/es/instance/bind":["es.function.bind"],"core-js/es/instance/code-point-at":["es.string.code-point-at"],"core-js/es/instance/concat":["es.array.concat"],"core-js/es/instance/copy-within":["es.array.copy-within"],"core-js/es/instance/ends-with":["es.string.ends-with"],"core-js/es/instance/entries":["es.array.iterator","es.object.to-string"],"core-js/es/instance/every":["es.array.every"],"core-js/es/instance/fill":["es.array.fill"],"core-js/es/instance/filter":["es.array.filter"],"core-js/es/instance/find":["es.array.find"],"core-js/es/instance/find-index":["es.array.find-index"],"core-js/es/instance/flags":["es.regexp.flags"],"core-js/es/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/instance/for-each":["es.array.for-each"],"core-js/es/instance/includes":["es.array.includes","es.string.includes"],"core-js/es/instance/index-of":["es.array.index-of"],"core-js/es/instance/keys":["es.array.iterator","es.object.to-string"],"core-js/es/instance/last-index-of":["es.array.last-index-of"],"core-js/es/instance/map":["es.array.map"],"core-js/es/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/instance/pad-end":["es.string.pad-end"],"core-js/es/instance/pad-start":["es.string.pad-start"],"core-js/es/instance/reduce":["es.array.reduce"],"core-js/es/instance/reduce-right":["es.array.reduce-right"],"core-js/es/instance/repeat":["es.string.repeat"],"core-js/es/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/instance/reverse":["es.array.reverse"],"core-js/es/instance/slice":["es.array.slice"],"core-js/es/instance/some":["es.array.some"],"core-js/es/instance/sort":["es.array.sort"],"core-js/es/instance/splice":["es.array.splice"],"core-js/es/instance/starts-with":["es.string.starts-with"],"core-js/es/instance/trim":["es.string.trim"],"core-js/es/instance/trim-end":["es.string.trim-end"],"core-js/es/instance/trim-left":["es.string.trim-start"],"core-js/es/instance/trim-right":["es.string.trim-end"],"core-js/es/instance/trim-start":["es.string.trim-start"],"core-js/es/instance/values":["es.array.iterator","es.object.to-string"],"core-js/es/is-iterable":["es.array.iterator","es.string.iterator"],"core-js/es/json":["es.json.stringify","es.json.to-string-tag"],"core-js/es/json/stringify":["es.json.stringify"],"core-js/es/json/to-string-tag":["es.json.to-string-tag"],"core-js/es/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator"],"core-js/es/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/es/math/acosh":["es.math.acosh"],"core-js/es/math/asinh":["es.math.asinh"],"core-js/es/math/atanh":["es.math.atanh"],"core-js/es/math/cbrt":["es.math.cbrt"],"core-js/es/math/clz32":["es.math.clz32"],"core-js/es/math/cosh":["es.math.cosh"],"core-js/es/math/expm1":["es.math.expm1"],"core-js/es/math/fround":["es.math.fround"],"core-js/es/math/hypot":["es.math.hypot"],"core-js/es/math/imul":["es.math.imul"],"core-js/es/math/log10":["es.math.log10"],"core-js/es/math/log1p":["es.math.log1p"],"core-js/es/math/log2":["es.math.log2"],"core-js/es/math/sign":["es.math.sign"],"core-js/es/math/sinh":["es.math.sinh"],"core-js/es/math/tanh":["es.math.tanh"],"core-js/es/math/to-string-tag":["es.math.to-string-tag"],"core-js/es/math/trunc":["es.math.trunc"],"core-js/es/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/constructor":["es.number.constructor"],"core-js/es/number/epsilon":["es.number.epsilon"],"core-js/es/number/is-finite":["es.number.is-finite"],"core-js/es/number/is-integer":["es.number.is-integer"],"core-js/es/number/is-nan":["es.number.is-nan"],"core-js/es/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/es/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/es/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/es/number/parse-float":["es.number.parse-float"],"core-js/es/number/parse-int":["es.number.parse-int"],"core-js/es/number/to-exponential":["es.number.to-exponential"],"core-js/es/number/to-fixed":["es.number.to-fixed"],"core-js/es/number/to-precision":["es.number.to-precision"],"core-js/es/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/es/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/es/number/virtual/to-precision":["es.number.to-precision"],"core-js/es/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag"],"core-js/es/object/assign":["es.object.assign"],"core-js/es/object/create":["es.object.create"],"core-js/es/object/define-getter":["es.object.define-getter"],"core-js/es/object/define-properties":["es.object.define-properties"],"core-js/es/object/define-property":["es.object.define-property"],"core-js/es/object/define-setter":["es.object.define-setter"],"core-js/es/object/entries":["es.object.entries"],"core-js/es/object/freeze":["es.object.freeze"],"core-js/es/object/from-entries":["es.array.iterator","es.object.from-entries"],"core-js/es/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/es/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/es/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/es/object/get-own-property-symbols":["es.symbol"],"core-js/es/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/es/object/has-own":["es.object.has-own"],"core-js/es/object/is":["es.object.is"],"core-js/es/object/is-extensible":["es.object.is-extensible"],"core-js/es/object/is-frozen":["es.object.is-frozen"],"core-js/es/object/is-sealed":["es.object.is-sealed"],"core-js/es/object/keys":["es.object.keys"],"core-js/es/object/lookup-getter":["es.object.lookup-getter"],"core-js/es/object/lookup-setter":["es.object.lookup-setter"],"core-js/es/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/es/object/seal":["es.object.seal"],"core-js/es/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/es/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/object/values":["es.object.values"],"core-js/es/parse-float":["es.parse-float"],"core-js/es/parse-int":["es.parse-int"],"core-js/es/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator"],"core-js/es/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator"],"core-js/es/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator"],"core-js/es/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/es/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/es/reflect/apply":["es.reflect.apply"],"core-js/es/reflect/construct":["es.reflect.construct"],"core-js/es/reflect/define-property":["es.reflect.define-property"],"core-js/es/reflect/delete-property":["es.reflect.delete-property"],"core-js/es/reflect/get":["es.reflect.get"],"core-js/es/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/es/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/es/reflect/has":["es.reflect.has"],"core-js/es/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/es/reflect/own-keys":["es.reflect.own-keys"],"core-js/es/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/es/reflect/set":["es.reflect.set"],"core-js/es/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/es/reflect/to-string-tag":["es.object.to-string","es.reflect.to-string-tag"],"core-js/es/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/es/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/es/regexp/flags":["es.regexp.flags"],"core-js/es/regexp/match":["es.regexp.exec","es.string.match"],"core-js/es/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/es/regexp/search":["es.regexp.exec","es.string.search"],"core-js/es/regexp/split":["es.regexp.exec","es.string.split"],"core-js/es/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/es/regexp/to-string":["es.regexp.to-string"],"core-js/es/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator"],"core-js/es/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/anchor":["es.string.anchor"],"core-js/es/string/at":["es.string.at-alternative"],"core-js/es/string/big":["es.string.big"],"core-js/es/string/blink":["es.string.blink"],"core-js/es/string/bold":["es.string.bold"],"core-js/es/string/code-point-at":["es.string.code-point-at"],"core-js/es/string/ends-with":["es.string.ends-with"],"core-js/es/string/fixed":["es.string.fixed"],"core-js/es/string/fontcolor":["es.string.fontcolor"],"core-js/es/string/fontsize":["es.string.fontsize"],"core-js/es/string/from-code-point":["es.string.from-code-point"],"core-js/es/string/includes":["es.string.includes"],"core-js/es/string/italics":["es.string.italics"],"core-js/es/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/link":["es.string.link"],"core-js/es/string/match":["es.regexp.exec","es.string.match"],"core-js/es/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/pad-end":["es.string.pad-end"],"core-js/es/string/pad-start":["es.string.pad-start"],"core-js/es/string/raw":["es.string.raw"],"core-js/es/string/repeat":["es.string.repeat"],"core-js/es/string/replace":["es.regexp.exec","es.string.replace"],"core-js/es/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/search":["es.regexp.exec","es.string.search"],"core-js/es/string/small":["es.string.small"],"core-js/es/string/split":["es.regexp.exec","es.string.split"],"core-js/es/string/starts-with":["es.string.starts-with"],"core-js/es/string/strike":["es.string.strike"],"core-js/es/string/sub":["es.string.sub"],"core-js/es/string/substr":["es.string.substr"],"core-js/es/string/sup":["es.string.sup"],"core-js/es/string/trim":["es.string.trim"],"core-js/es/string/trim-end":["es.string.trim-end"],"core-js/es/string/trim-left":["es.string.trim-start"],"core-js/es/string/trim-right":["es.string.trim-end"],"core-js/es/string/trim-start":["es.string.trim-start"],"core-js/es/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/virtual/anchor":["es.string.anchor"],"core-js/es/string/virtual/at":["es.string.at-alternative"],"core-js/es/string/virtual/big":["es.string.big"],"core-js/es/string/virtual/blink":["es.string.blink"],"core-js/es/string/virtual/bold":["es.string.bold"],"core-js/es/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/es/string/virtual/ends-with":["es.string.ends-with"],"core-js/es/string/virtual/fixed":["es.string.fixed"],"core-js/es/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/es/string/virtual/fontsize":["es.string.fontsize"],"core-js/es/string/virtual/includes":["es.string.includes"],"core-js/es/string/virtual/italics":["es.string.italics"],"core-js/es/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/virtual/link":["es.string.link"],"core-js/es/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/virtual/pad-end":["es.string.pad-end"],"core-js/es/string/virtual/pad-start":["es.string.pad-start"],"core-js/es/string/virtual/repeat":["es.string.repeat"],"core-js/es/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/virtual/small":["es.string.small"],"core-js/es/string/virtual/starts-with":["es.string.starts-with"],"core-js/es/string/virtual/strike":["es.string.strike"],"core-js/es/string/virtual/sub":["es.string.sub"],"core-js/es/string/virtual/substr":["es.string.substr"],"core-js/es/string/virtual/sup":["es.string.sup"],"core-js/es/string/virtual/trim":["es.string.trim"],"core-js/es/string/virtual/trim-end":["es.string.trim-end"],"core-js/es/string/virtual/trim-left":["es.string.trim-start"],"core-js/es/string/virtual/trim-right":["es.string.trim-end"],"core-js/es/string/virtual/trim-start":["es.string.trim-start"],"core-js/es/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/es/symbol/description":["es.symbol.description"],"core-js/es/symbol/for":["es.symbol"],"core-js/es/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/es/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/es/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator"],"core-js/es/symbol/key-for":["es.symbol"],"core-js/es/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/es/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/es/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/es/symbol/species":["es.symbol.species"],"core-js/es/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/es/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/es/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/unscopables":["es.symbol.unscopables"],"core-js/es/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/at":["es.typed-array.at"],"core-js/es/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/es/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/every":["es.typed-array.every"],"core-js/es/typed-array/fill":["es.typed-array.fill"],"core-js/es/typed-array/filter":["es.typed-array.filter"],"core-js/es/typed-array/find":["es.typed-array.find"],"core-js/es/typed-array/find-index":["es.typed-array.find-index"],"core-js/es/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/for-each":["es.typed-array.for-each"],"core-js/es/typed-array/from":["es.typed-array.from"],"core-js/es/typed-array/includes":["es.typed-array.includes"],"core-js/es/typed-array/index-of":["es.typed-array.index-of"],"core-js/es/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/join":["es.typed-array.join"],"core-js/es/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/es/typed-array/map":["es.typed-array.map"],"core-js/es/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/of":["es.typed-array.of"],"core-js/es/typed-array/reduce":["es.typed-array.reduce"],"core-js/es/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/es/typed-array/reverse":["es.typed-array.reverse"],"core-js/es/typed-array/set":["es.typed-array.set"],"core-js/es/typed-array/slice":["es.typed-array.slice"],"core-js/es/typed-array/some":["es.typed-array.some"],"core-js/es/typed-array/sort":["es.typed-array.sort"],"core-js/es/typed-array/subarray":["es.typed-array.subarray"],"core-js/es/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/es/typed-array/to-string":["es.typed-array.to-string"],"core-js/es/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/es/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/es/unescape":["es.unescape"],"core-js/es/weak-map":["es.array.iterator","es.object.to-string","es.weak-map"],"core-js/es/weak-set":["es.array.iterator","es.object.to-string","es.weak-set"],"core-js/features":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/features/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/features/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/features/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/features/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/features/array-buffer/slice":["es.array-buffer.slice"],"core-js/features/array/at":["es.array.at","esnext.array.at"],"core-js/features/array/concat":["es.array.concat"],"core-js/features/array/copy-within":["es.array.copy-within"],"core-js/features/array/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/every":["es.array.every"],"core-js/features/array/fill":["es.array.fill"],"core-js/features/array/filter":["es.array.filter"],"core-js/features/array/filter-out":["esnext.array.filter-out"],"core-js/features/array/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/find":["es.array.find"],"core-js/features/array/find-index":["es.array.find-index"],"core-js/features/array/find-last":["esnext.array.find-last"],"core-js/features/array/find-last-index":["esnext.array.find-last-index"],"core-js/features/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/for-each":["es.array.for-each"],"core-js/features/array/from":["es.array.from","es.string.iterator"],"core-js/features/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async"],"core-js/features/array/group-by":["esnext.array.group-by"],"core-js/features/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/includes":["es.array.includes"],"core-js/features/array/index-of":["es.array.index-of"],"core-js/features/array/is-array":["es.array.is-array"],"core-js/features/array/is-template-object":["esnext.array.is-template-object"],"core-js/features/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/join":["es.array.join"],"core-js/features/array/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/last-index":["esnext.array.last-index"],"core-js/features/array/last-index-of":["es.array.last-index-of"],"core-js/features/array/last-item":["esnext.array.last-item"],"core-js/features/array/map":["es.array.map"],"core-js/features/array/of":["es.array.of"],"core-js/features/array/reduce":["es.array.reduce"],"core-js/features/array/reduce-right":["es.array.reduce-right"],"core-js/features/array/reverse":["es.array.reverse"],"core-js/features/array/slice":["es.array.slice"],"core-js/features/array/some":["es.array.some"],"core-js/features/array/sort":["es.array.sort"],"core-js/features/array/splice":["es.array.splice"],"core-js/features/array/to-reversed":["esnext.array.to-reversed"],"core-js/features/array/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/features/array/to-spliced":["esnext.array.to-spliced"],"core-js/features/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/features/array/virtual/concat":["es.array.concat"],"core-js/features/array/virtual/copy-within":["es.array.copy-within"],"core-js/features/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/every":["es.array.every"],"core-js/features/array/virtual/fill":["es.array.fill"],"core-js/features/array/virtual/filter":["es.array.filter"],"core-js/features/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/features/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/virtual/find":["es.array.find"],"core-js/features/array/virtual/find-index":["es.array.find-index"],"core-js/features/array/virtual/find-last":["esnext.array.find-last"],"core-js/features/array/virtual/find-last-index":["esnext.array.find-last-index"],"core-js/features/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/virtual/for-each":["es.array.for-each"],"core-js/features/array/virtual/group-by":["esnext.array.group-by"],"core-js/features/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/virtual/includes":["es.array.includes"],"core-js/features/array/virtual/index-of":["es.array.index-of"],"core-js/features/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/join":["es.array.join"],"core-js/features/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/features/array/virtual/map":["es.array.map"],"core-js/features/array/virtual/reduce":["es.array.reduce"],"core-js/features/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/features/array/virtual/reverse":["es.array.reverse"],"core-js/features/array/virtual/slice":["es.array.slice"],"core-js/features/array/virtual/some":["es.array.some"],"core-js/features/array/virtual/sort":["es.array.sort"],"core-js/features/array/virtual/splice":["es.array.splice"],"core-js/features/array/virtual/to-reversed":["esnext.array.to-reversed"],"core-js/features/array/virtual/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/features/array/virtual/to-spliced":["esnext.array.to-spliced"],"core-js/features/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/with":["esnext.array.with"],"core-js/features/array/with":["esnext.array.with"],"core-js/features/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/features/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/features/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/features/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/features/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/features/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/features/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/features/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/features/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.from","web.dom-collections.iterator"],"core-js/features/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/features/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/features/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/features/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/features/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/features/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/features/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/features/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/clear-immediate":["web.immediate"],"core-js/features/composite-key":["esnext.composite-key"],"core-js/features/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/features/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/features/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/features/date/get-year":["es.date.get-year"],"core-js/features/date/now":["es.date.now"],"core-js/features/date/set-year":["es.date.set-year"],"core-js/features/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/features/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/features/date/to-json":["es.date.to-json"],"core-js/features/date/to-primitive":["es.date.to-primitive"],"core-js/features/date/to-string":["es.date.to-string"],"core-js/features/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/features/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/features/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/features/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/features/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/features/error":["es.error.cause","es.error.to-string"],"core-js/features/error/constructor":["es.error.cause"],"core-js/features/error/to-string":["es.error.to-string"],"core-js/features/escape":["es.escape"],"core-js/features/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this"],"core-js/features/function/bind":["es.function.bind"],"core-js/features/function/has-instance":["es.function.has-instance"],"core-js/features/function/is-callable":["esnext.function.is-callable"],"core-js/features/function/is-constructor":["esnext.function.is-constructor"],"core-js/features/function/name":["es.function.name"],"core-js/features/function/un-this":["esnext.function.un-this"],"core-js/features/function/virtual":["es.function.bind","esnext.function.un-this"],"core-js/features/function/virtual/bind":["es.function.bind"],"core-js/features/function/virtual/un-this":["esnext.function.un-this"],"core-js/features/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/global-this":["es.global-this","esnext.global-this"],"core-js/features/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/features/instance/bind":["es.function.bind"],"core-js/features/instance/code-point-at":["es.string.code-point-at"],"core-js/features/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/instance/concat":["es.array.concat"],"core-js/features/instance/copy-within":["es.array.copy-within"],"core-js/features/instance/ends-with":["es.string.ends-with"],"core-js/features/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/every":["es.array.every"],"core-js/features/instance/fill":["es.array.fill"],"core-js/features/instance/filter":["es.array.filter"],"core-js/features/instance/filter-out":["esnext.array.filter-out"],"core-js/features/instance/filter-reject":["esnext.array.filter-reject"],"core-js/features/instance/find":["es.array.find"],"core-js/features/instance/find-index":["es.array.find-index"],"core-js/features/instance/find-last":["esnext.array.find-last"],"core-js/features/instance/find-last-index":["esnext.array.find-last-index"],"core-js/features/instance/flags":["es.regexp.flags"],"core-js/features/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/features/instance/group-by":["esnext.array.group-by"],"core-js/features/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/instance/includes":["es.array.includes","es.string.includes"],"core-js/features/instance/index-of":["es.array.index-of"],"core-js/features/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/last-index-of":["es.array.last-index-of"],"core-js/features/instance/map":["es.array.map"],"core-js/features/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/instance/pad-end":["es.string.pad-end"],"core-js/features/instance/pad-start":["es.string.pad-start"],"core-js/features/instance/reduce":["es.array.reduce"],"core-js/features/instance/reduce-right":["es.array.reduce-right"],"core-js/features/instance/repeat":["es.string.repeat"],"core-js/features/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/features/instance/reverse":["es.array.reverse"],"core-js/features/instance/slice":["es.array.slice"],"core-js/features/instance/some":["es.array.some"],"core-js/features/instance/sort":["es.array.sort"],"core-js/features/instance/splice":["es.array.splice"],"core-js/features/instance/starts-with":["es.string.starts-with"],"core-js/features/instance/to-reversed":["esnext.array.to-reversed"],"core-js/features/instance/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/features/instance/to-spliced":["esnext.array.to-spliced"],"core-js/features/instance/trim":["es.string.trim"],"core-js/features/instance/trim-end":["es.string.trim-end"],"core-js/features/instance/trim-left":["es.string.trim-start"],"core-js/features/instance/trim-right":["es.string.trim-end"],"core-js/features/instance/trim-start":["es.string.trim-start"],"core-js/features/instance/un-this":["esnext.function.un-this"],"core-js/features/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/with":["esnext.array.with"],"core-js/features/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/features/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/features/iterator/drop":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/features/iterator/every":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/features/iterator/filter":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/features/iterator/find":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/features/iterator/flat-map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map"],"core-js/features/iterator/for-each":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/features/iterator/from":["es.array.iterator","es.object.to-string","es.string.iterator","esnext.iterator.constructor","esnext.iterator.from","web.dom-collections.iterator"],"core-js/features/iterator/map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/features/iterator/reduce":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/features/iterator/some":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/features/iterator/take":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/features/iterator/to-array":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/features/iterator/to-async":["es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/features/json":["es.json.stringify","es.json.to-string-tag"],"core-js/features/json/stringify":["es.json.stringify"],"core-js/features/json/to-string-tag":["es.json.to-string-tag"],"core-js/features/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/features/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/features/map/emplace":["es.map","esnext.map.emplace"],"core-js/features/map/every":["es.map","esnext.map.every"],"core-js/features/map/filter":["es.map","esnext.map.filter"],"core-js/features/map/find":["es.map","esnext.map.find"],"core-js/features/map/find-key":["es.map","esnext.map.find-key"],"core-js/features/map/from":["es.array.iterator","es.map","es.string.iterator","esnext.map.from","web.dom-collections.iterator"],"core-js/features/map/group-by":["es.map","esnext.map.group-by"],"core-js/features/map/includes":["es.map","esnext.map.includes"],"core-js/features/map/key-by":["es.map","esnext.map.key-by"],"core-js/features/map/key-of":["es.map","esnext.map.key-of"],"core-js/features/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/features/map/map-values":["es.map","esnext.map.map-values"],"core-js/features/map/merge":["es.map","esnext.map.merge"],"core-js/features/map/of":["es.array.iterator","es.map","esnext.map.of"],"core-js/features/map/reduce":["es.map","esnext.map.reduce"],"core-js/features/map/some":["es.map","esnext.map.some"],"core-js/features/map/update":["es.map","esnext.map.update"],"core-js/features/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/features/map/upsert":["es.map","esnext.map.upsert"],"core-js/features/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh"],"core-js/features/math/acosh":["es.math.acosh"],"core-js/features/math/asinh":["es.math.asinh"],"core-js/features/math/atanh":["es.math.atanh"],"core-js/features/math/cbrt":["es.math.cbrt"],"core-js/features/math/clamp":["esnext.math.clamp"],"core-js/features/math/clz32":["es.math.clz32"],"core-js/features/math/cosh":["es.math.cosh"],"core-js/features/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/features/math/degrees":["esnext.math.degrees"],"core-js/features/math/expm1":["es.math.expm1"],"core-js/features/math/fround":["es.math.fround"],"core-js/features/math/fscale":["esnext.math.fscale"],"core-js/features/math/hypot":["es.math.hypot"],"core-js/features/math/iaddh":["esnext.math.iaddh"],"core-js/features/math/imul":["es.math.imul"],"core-js/features/math/imulh":["esnext.math.imulh"],"core-js/features/math/isubh":["esnext.math.isubh"],"core-js/features/math/log10":["es.math.log10"],"core-js/features/math/log1p":["es.math.log1p"],"core-js/features/math/log2":["es.math.log2"],"core-js/features/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/features/math/radians":["esnext.math.radians"],"core-js/features/math/scale":["esnext.math.scale"],"core-js/features/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/features/math/sign":["es.math.sign"],"core-js/features/math/signbit":["esnext.math.signbit"],"core-js/features/math/sinh":["es.math.sinh"],"core-js/features/math/tanh":["es.math.tanh"],"core-js/features/math/to-string-tag":["es.math.to-string-tag"],"core-js/features/math/trunc":["es.math.trunc"],"core-js/features/math/umulh":["esnext.math.umulh"],"core-js/features/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.from-string","esnext.number.range"],"core-js/features/number/constructor":["es.number.constructor"],"core-js/features/number/epsilon":["es.number.epsilon"],"core-js/features/number/from-string":["esnext.number.from-string"],"core-js/features/number/is-finite":["es.number.is-finite"],"core-js/features/number/is-integer":["es.number.is-integer"],"core-js/features/number/is-nan":["es.number.is-nan"],"core-js/features/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/features/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/features/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/features/number/parse-float":["es.number.parse-float"],"core-js/features/number/parse-int":["es.number.parse-int"],"core-js/features/number/range":["es.object.to-string","esnext.number.range"],"core-js/features/number/to-exponential":["es.number.to-exponential"],"core-js/features/number/to-fixed":["es.number.to-fixed"],"core-js/features/number/to-precision":["es.number.to-precision"],"core-js/features/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/features/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/features/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/features/number/virtual/to-precision":["es.number.to-precision"],"core-js/features/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","web.dom-collections.iterator"],"core-js/features/object/assign":["es.object.assign"],"core-js/features/object/create":["es.object.create"],"core-js/features/object/define-getter":["es.object.define-getter"],"core-js/features/object/define-properties":["es.object.define-properties"],"core-js/features/object/define-property":["es.object.define-property"],"core-js/features/object/define-setter":["es.object.define-setter"],"core-js/features/object/entries":["es.object.entries"],"core-js/features/object/freeze":["es.object.freeze"],"core-js/features/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/features/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/features/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/features/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/features/object/get-own-property-symbols":["es.symbol"],"core-js/features/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/features/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/features/object/is":["es.object.is"],"core-js/features/object/is-extensible":["es.object.is-extensible"],"core-js/features/object/is-frozen":["es.object.is-frozen"],"core-js/features/object/is-sealed":["es.object.is-sealed"],"core-js/features/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/features/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/features/object/iterate-values":["esnext.object.iterate-values"],"core-js/features/object/keys":["es.object.keys"],"core-js/features/object/lookup-getter":["es.object.lookup-getter"],"core-js/features/object/lookup-setter":["es.object.lookup-setter"],"core-js/features/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/features/object/seal":["es.object.seal"],"core-js/features/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/features/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/object/values":["es.object.values"],"core-js/features/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/features/parse-float":["es.parse-float"],"core-js/features/parse-int":["es.parse-int"],"core-js/features/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","web.dom-collections.iterator"],"core-js/features/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/features/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/features/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/features/promise/try":["es.promise","esnext.promise.try"],"core-js/features/queue-microtask":["web.queue-microtask"],"core-js/features/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/features/reflect/apply":["es.reflect.apply"],"core-js/features/reflect/construct":["es.reflect.construct"],"core-js/features/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/features/reflect/define-property":["es.reflect.define-property"],"core-js/features/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/features/reflect/delete-property":["es.reflect.delete-property"],"core-js/features/reflect/get":["es.reflect.get"],"core-js/features/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/features/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/features/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/features/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/features/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/features/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/features/reflect/has":["es.reflect.has"],"core-js/features/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/features/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/features/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/features/reflect/metadata":["esnext.reflect.metadata"],"core-js/features/reflect/own-keys":["es.reflect.own-keys"],"core-js/features/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/features/reflect/set":["es.reflect.set"],"core-js/features/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/features/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/features/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/features/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/features/regexp/flags":["es.regexp.flags"],"core-js/features/regexp/match":["es.regexp.exec","es.string.match"],"core-js/features/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/features/regexp/search":["es.regexp.exec","es.string.search"],"core-js/features/regexp/split":["es.regexp.exec","es.string.split"],"core-js/features/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/features/regexp/to-string":["es.regexp.to-string"],"core-js/features/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","web.dom-collections.iterator"],"core-js/features/set-immediate":["web.immediate"],"core-js/features/set-interval":["web.timers"],"core-js/features/set-timeout":["web.timers"],"core-js/features/set/add-all":["es.set","esnext.set.add-all"],"core-js/features/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/features/set/difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.difference","web.dom-collections.iterator"],"core-js/features/set/every":["es.set","esnext.set.every"],"core-js/features/set/filter":["es.set","esnext.set.filter"],"core-js/features/set/find":["es.set","esnext.set.find"],"core-js/features/set/from":["es.array.iterator","es.set","es.string.iterator","esnext.set.from","web.dom-collections.iterator"],"core-js/features/set/intersection":["es.array.iterator","es.set","es.string.iterator","esnext.set.intersection","web.dom-collections.iterator"],"core-js/features/set/is-disjoint-from":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/features/set/is-subset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/features/set/is-superset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/features/set/join":["es.set","esnext.set.join"],"core-js/features/set/map":["es.set","esnext.set.map"],"core-js/features/set/of":["es.array.iterator","es.set","esnext.set.of"],"core-js/features/set/reduce":["es.set","esnext.set.reduce"],"core-js/features/set/some":["es.set","esnext.set.some"],"core-js/features/set/symmetric-difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/features/set/union":["es.array.iterator","es.set","es.string.iterator","esnext.set.union","web.dom-collections.iterator"],"core-js/features/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/features/string/anchor":["es.string.anchor"],"core-js/features/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/big":["es.string.big"],"core-js/features/string/blink":["es.string.blink"],"core-js/features/string/bold":["es.string.bold"],"core-js/features/string/code-point-at":["es.string.code-point-at"],"core-js/features/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/cooked":["esnext.string.cooked"],"core-js/features/string/ends-with":["es.string.ends-with"],"core-js/features/string/fixed":["es.string.fixed"],"core-js/features/string/fontcolor":["es.string.fontcolor"],"core-js/features/string/fontsize":["es.string.fontsize"],"core-js/features/string/from-code-point":["es.string.from-code-point"],"core-js/features/string/includes":["es.string.includes"],"core-js/features/string/italics":["es.string.italics"],"core-js/features/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/link":["es.string.link"],"core-js/features/string/match":["es.regexp.exec","es.string.match"],"core-js/features/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/pad-end":["es.string.pad-end"],"core-js/features/string/pad-start":["es.string.pad-start"],"core-js/features/string/raw":["es.string.raw"],"core-js/features/string/repeat":["es.string.repeat"],"core-js/features/string/replace":["es.regexp.exec","es.string.replace"],"core-js/features/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/search":["es.regexp.exec","es.string.search"],"core-js/features/string/small":["es.string.small"],"core-js/features/string/split":["es.regexp.exec","es.string.split"],"core-js/features/string/starts-with":["es.string.starts-with"],"core-js/features/string/strike":["es.string.strike"],"core-js/features/string/sub":["es.string.sub"],"core-js/features/string/substr":["es.string.substr"],"core-js/features/string/sup":["es.string.sup"],"core-js/features/string/trim":["es.string.trim"],"core-js/features/string/trim-end":["es.string.trim-end"],"core-js/features/string/trim-left":["es.string.trim-start"],"core-js/features/string/trim-right":["es.string.trim-end"],"core-js/features/string/trim-start":["es.string.trim-start"],"core-js/features/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/features/string/virtual/anchor":["es.string.anchor"],"core-js/features/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/virtual/big":["es.string.big"],"core-js/features/string/virtual/blink":["es.string.blink"],"core-js/features/string/virtual/bold":["es.string.bold"],"core-js/features/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/features/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/virtual/ends-with":["es.string.ends-with"],"core-js/features/string/virtual/fixed":["es.string.fixed"],"core-js/features/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/features/string/virtual/fontsize":["es.string.fontsize"],"core-js/features/string/virtual/includes":["es.string.includes"],"core-js/features/string/virtual/italics":["es.string.italics"],"core-js/features/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/virtual/link":["es.string.link"],"core-js/features/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/virtual/pad-end":["es.string.pad-end"],"core-js/features/string/virtual/pad-start":["es.string.pad-start"],"core-js/features/string/virtual/repeat":["es.string.repeat"],"core-js/features/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/virtual/small":["es.string.small"],"core-js/features/string/virtual/starts-with":["es.string.starts-with"],"core-js/features/string/virtual/strike":["es.string.strike"],"core-js/features/string/virtual/sub":["es.string.sub"],"core-js/features/string/virtual/substr":["es.string.substr"],"core-js/features/string/virtual/sup":["es.string.sup"],"core-js/features/string/virtual/trim":["es.string.trim"],"core-js/features/string/virtual/trim-end":["es.string.trim-end"],"core-js/features/string/virtual/trim-left":["es.string.trim-start"],"core-js/features/string/virtual/trim-right":["es.string.trim-end"],"core-js/features/string/virtual/trim-start":["es.string.trim-start"],"core-js/features/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/features/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/features/symbol/async-dispose":["esnext.symbol.async-dispose"],"core-js/features/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/features/symbol/description":["es.symbol.description"],"core-js/features/symbol/dispose":["esnext.symbol.dispose"],"core-js/features/symbol/for":["es.symbol"],"core-js/features/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/features/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/features/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/features/symbol/key-for":["es.symbol"],"core-js/features/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/features/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/features/symbol/matcher":["esnext.symbol.matcher"],"core-js/features/symbol/metadata":["esnext.symbol.metadata"],"core-js/features/symbol/observable":["esnext.symbol.observable"],"core-js/features/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/features/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/features/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/features/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/features/symbol/species":["es.symbol.species"],"core-js/features/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/features/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/features/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/symbol/unscopables":["es.symbol.unscopables"],"core-js/features/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/at":["es.typed-array.every","esnext.typed-array.at"],"core-js/features/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/features/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/every":["es.typed-array.every"],"core-js/features/typed-array/fill":["es.typed-array.fill"],"core-js/features/typed-array/filter":["es.typed-array.filter"],"core-js/features/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/features/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/features/typed-array/find":["es.typed-array.find"],"core-js/features/typed-array/find-index":["es.typed-array.find-index"],"core-js/features/typed-array/find-last":["esnext.typed-array.find-last"],"core-js/features/typed-array/find-last-index":["esnext.typed-array.find-last-index"],"core-js/features/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/for-each":["es.typed-array.for-each"],"core-js/features/typed-array/from":["es.typed-array.from"],"core-js/features/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/features/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/features/typed-array/includes":["es.typed-array.includes"],"core-js/features/typed-array/index-of":["es.typed-array.index-of"],"core-js/features/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/join":["es.typed-array.join"],"core-js/features/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/features/typed-array/map":["es.typed-array.map"],"core-js/features/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/of":["es.typed-array.of"],"core-js/features/typed-array/reduce":["es.typed-array.reduce"],"core-js/features/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/features/typed-array/reverse":["es.typed-array.reverse"],"core-js/features/typed-array/set":["es.typed-array.set"],"core-js/features/typed-array/slice":["es.typed-array.slice"],"core-js/features/typed-array/some":["es.typed-array.some"],"core-js/features/typed-array/sort":["es.typed-array.sort"],"core-js/features/typed-array/subarray":["es.typed-array.subarray"],"core-js/features/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/features/typed-array/to-reversed":["esnext.typed-array.to-reversed"],"core-js/features/typed-array/to-sorted":["es.typed-array.sort","esnext.typed-array.to-sorted"],"core-js/features/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/features/typed-array/to-string":["es.typed-array.to-string"],"core-js/features/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/features/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/features/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/with":["esnext.typed-array.with"],"core-js/features/unescape":["es.unescape"],"core-js/features/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/features/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/features/url/to-json":["web.url.to-json"],"core-js/features/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/features/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/features/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/features/weak-map/from":["es.array.iterator","es.string.iterator","es.weak-map","esnext.weak-map.from","web.dom-collections.iterator"],"core-js/features/weak-map/of":["es.array.iterator","es.weak-map","esnext.weak-map.of"],"core-js/features/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/features/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/features/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/features/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/features/weak-set/from":["es.array.iterator","es.string.iterator","es.weak-set","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/features/weak-set/of":["es.array.iterator","es.weak-set","esnext.weak-set.of"],"core-js/full":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/full/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/full/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/full/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/full/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/full/array-buffer/slice":["es.array-buffer.slice"],"core-js/full/array/at":["es.array.at","esnext.array.at"],"core-js/full/array/concat":["es.array.concat"],"core-js/full/array/copy-within":["es.array.copy-within"],"core-js/full/array/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/every":["es.array.every"],"core-js/full/array/fill":["es.array.fill"],"core-js/full/array/filter":["es.array.filter"],"core-js/full/array/filter-out":["esnext.array.filter-out"],"core-js/full/array/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/find":["es.array.find"],"core-js/full/array/find-index":["es.array.find-index"],"core-js/full/array/find-last":["esnext.array.find-last"],"core-js/full/array/find-last-index":["esnext.array.find-last-index"],"core-js/full/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/for-each":["es.array.for-each"],"core-js/full/array/from":["es.array.from","es.string.iterator"],"core-js/full/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.array.from-async"],"core-js/full/array/group-by":["esnext.array.group-by"],"core-js/full/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/includes":["es.array.includes"],"core-js/full/array/index-of":["es.array.index-of"],"core-js/full/array/is-array":["es.array.is-array"],"core-js/full/array/is-template-object":["esnext.array.is-template-object"],"core-js/full/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/join":["es.array.join"],"core-js/full/array/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/last-index":["esnext.array.last-index"],"core-js/full/array/last-index-of":["es.array.last-index-of"],"core-js/full/array/last-item":["esnext.array.last-item"],"core-js/full/array/map":["es.array.map"],"core-js/full/array/of":["es.array.of"],"core-js/full/array/reduce":["es.array.reduce"],"core-js/full/array/reduce-right":["es.array.reduce-right"],"core-js/full/array/reverse":["es.array.reverse"],"core-js/full/array/slice":["es.array.slice"],"core-js/full/array/some":["es.array.some"],"core-js/full/array/sort":["es.array.sort"],"core-js/full/array/splice":["es.array.splice"],"core-js/full/array/to-reversed":["esnext.array.to-reversed"],"core-js/full/array/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/full/array/to-spliced":["esnext.array.to-spliced"],"core-js/full/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/full/array/virtual/concat":["es.array.concat"],"core-js/full/array/virtual/copy-within":["es.array.copy-within"],"core-js/full/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/every":["es.array.every"],"core-js/full/array/virtual/fill":["es.array.fill"],"core-js/full/array/virtual/filter":["es.array.filter"],"core-js/full/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/full/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/virtual/find":["es.array.find"],"core-js/full/array/virtual/find-index":["es.array.find-index"],"core-js/full/array/virtual/find-last":["esnext.array.find-last"],"core-js/full/array/virtual/find-last-index":["esnext.array.find-last-index"],"core-js/full/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/virtual/for-each":["es.array.for-each"],"core-js/full/array/virtual/group-by":["esnext.array.group-by"],"core-js/full/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/virtual/includes":["es.array.includes"],"core-js/full/array/virtual/index-of":["es.array.index-of"],"core-js/full/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/join":["es.array.join"],"core-js/full/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/full/array/virtual/map":["es.array.map"],"core-js/full/array/virtual/reduce":["es.array.reduce"],"core-js/full/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/full/array/virtual/reverse":["es.array.reverse"],"core-js/full/array/virtual/slice":["es.array.slice"],"core-js/full/array/virtual/some":["es.array.some"],"core-js/full/array/virtual/sort":["es.array.sort"],"core-js/full/array/virtual/splice":["es.array.splice"],"core-js/full/array/virtual/to-reversed":["esnext.array.to-reversed"],"core-js/full/array/virtual/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/full/array/virtual/to-spliced":["esnext.array.to-spliced"],"core-js/full/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/with":["esnext.array.with"],"core-js/full/array/with":["esnext.array.with"],"core-js/full/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/full/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/full/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/full/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/full/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/full/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/full/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/full/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/full/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.from","web.dom-collections.iterator"],"core-js/full/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/full/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/full/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/full/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/full/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/full/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/full/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/full/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/clear-immediate":["web.immediate"],"core-js/full/composite-key":["esnext.composite-key"],"core-js/full/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/full/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/full/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/full/date/get-year":["es.date.get-year"],"core-js/full/date/now":["es.date.now"],"core-js/full/date/set-year":["es.date.set-year"],"core-js/full/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/full/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/full/date/to-json":["es.date.to-json"],"core-js/full/date/to-primitive":["es.date.to-primitive"],"core-js/full/date/to-string":["es.date.to-string"],"core-js/full/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/full/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/full/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/full/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/full/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/full/error":["es.error.cause","es.error.to-string"],"core-js/full/error/constructor":["es.error.cause"],"core-js/full/error/to-string":["es.error.to-string"],"core-js/full/escape":["es.escape"],"core-js/full/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this"],"core-js/full/function/bind":["es.function.bind"],"core-js/full/function/has-instance":["es.function.has-instance"],"core-js/full/function/is-callable":["esnext.function.is-callable"],"core-js/full/function/is-constructor":["esnext.function.is-constructor"],"core-js/full/function/name":["es.function.name"],"core-js/full/function/un-this":["esnext.function.un-this"],"core-js/full/function/virtual":["es.function.bind","esnext.function.un-this"],"core-js/full/function/virtual/bind":["es.function.bind"],"core-js/full/function/virtual/un-this":["esnext.function.un-this"],"core-js/full/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/global-this":["es.global-this","esnext.global-this"],"core-js/full/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/full/instance/bind":["es.function.bind"],"core-js/full/instance/code-point-at":["es.string.code-point-at"],"core-js/full/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/instance/concat":["es.array.concat"],"core-js/full/instance/copy-within":["es.array.copy-within"],"core-js/full/instance/ends-with":["es.string.ends-with"],"core-js/full/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/every":["es.array.every"],"core-js/full/instance/fill":["es.array.fill"],"core-js/full/instance/filter":["es.array.filter"],"core-js/full/instance/filter-out":["esnext.array.filter-out"],"core-js/full/instance/filter-reject":["esnext.array.filter-reject"],"core-js/full/instance/find":["es.array.find"],"core-js/full/instance/find-index":["es.array.find-index"],"core-js/full/instance/find-last":["esnext.array.find-last"],"core-js/full/instance/find-last-index":["esnext.array.find-last-index"],"core-js/full/instance/flags":["es.regexp.flags"],"core-js/full/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/full/instance/group-by":["esnext.array.group-by"],"core-js/full/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/instance/includes":["es.array.includes","es.string.includes"],"core-js/full/instance/index-of":["es.array.index-of"],"core-js/full/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/last-index-of":["es.array.last-index-of"],"core-js/full/instance/map":["es.array.map"],"core-js/full/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/instance/pad-end":["es.string.pad-end"],"core-js/full/instance/pad-start":["es.string.pad-start"],"core-js/full/instance/reduce":["es.array.reduce"],"core-js/full/instance/reduce-right":["es.array.reduce-right"],"core-js/full/instance/repeat":["es.string.repeat"],"core-js/full/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/full/instance/reverse":["es.array.reverse"],"core-js/full/instance/slice":["es.array.slice"],"core-js/full/instance/some":["es.array.some"],"core-js/full/instance/sort":["es.array.sort"],"core-js/full/instance/splice":["es.array.splice"],"core-js/full/instance/starts-with":["es.string.starts-with"],"core-js/full/instance/to-reversed":["esnext.array.to-reversed"],"core-js/full/instance/to-sorted":["es.array.sort","esnext.array.to-sorted"],"core-js/full/instance/to-spliced":["esnext.array.to-spliced"],"core-js/full/instance/trim":["es.string.trim"],"core-js/full/instance/trim-end":["es.string.trim-end"],"core-js/full/instance/trim-left":["es.string.trim-start"],"core-js/full/instance/trim-right":["es.string.trim-end"],"core-js/full/instance/trim-start":["es.string.trim-start"],"core-js/full/instance/un-this":["esnext.function.un-this"],"core-js/full/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/with":["esnext.array.with"],"core-js/full/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/iterator":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/full/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/full/iterator/drop":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/full/iterator/every":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/full/iterator/filter":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/full/iterator/find":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/full/iterator/flat-map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map"],"core-js/full/iterator/for-each":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/full/iterator/from":["es.array.iterator","es.object.to-string","es.string.iterator","esnext.iterator.constructor","esnext.iterator.from","web.dom-collections.iterator"],"core-js/full/iterator/map":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/full/iterator/reduce":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/full/iterator/some":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/full/iterator/take":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/full/iterator/to-array":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/full/iterator/to-async":["es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/full/json":["es.json.stringify","es.json.to-string-tag"],"core-js/full/json/stringify":["es.json.stringify"],"core-js/full/json/to-string-tag":["es.json.to-string-tag"],"core-js/full/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/full/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/full/map/emplace":["es.map","esnext.map.emplace"],"core-js/full/map/every":["es.map","esnext.map.every"],"core-js/full/map/filter":["es.map","esnext.map.filter"],"core-js/full/map/find":["es.map","esnext.map.find"],"core-js/full/map/find-key":["es.map","esnext.map.find-key"],"core-js/full/map/from":["es.array.iterator","es.map","es.string.iterator","esnext.map.from","web.dom-collections.iterator"],"core-js/full/map/group-by":["es.map","esnext.map.group-by"],"core-js/full/map/includes":["es.map","esnext.map.includes"],"core-js/full/map/key-by":["es.map","esnext.map.key-by"],"core-js/full/map/key-of":["es.map","esnext.map.key-of"],"core-js/full/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/full/map/map-values":["es.map","esnext.map.map-values"],"core-js/full/map/merge":["es.map","esnext.map.merge"],"core-js/full/map/of":["es.array.iterator","es.map","esnext.map.of"],"core-js/full/map/reduce":["es.map","esnext.map.reduce"],"core-js/full/map/some":["es.map","esnext.map.some"],"core-js/full/map/update":["es.map","esnext.map.update"],"core-js/full/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/full/map/upsert":["es.map","esnext.map.upsert"],"core-js/full/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh"],"core-js/full/math/acosh":["es.math.acosh"],"core-js/full/math/asinh":["es.math.asinh"],"core-js/full/math/atanh":["es.math.atanh"],"core-js/full/math/cbrt":["es.math.cbrt"],"core-js/full/math/clamp":["esnext.math.clamp"],"core-js/full/math/clz32":["es.math.clz32"],"core-js/full/math/cosh":["es.math.cosh"],"core-js/full/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/full/math/degrees":["esnext.math.degrees"],"core-js/full/math/expm1":["es.math.expm1"],"core-js/full/math/fround":["es.math.fround"],"core-js/full/math/fscale":["esnext.math.fscale"],"core-js/full/math/hypot":["es.math.hypot"],"core-js/full/math/iaddh":["esnext.math.iaddh"],"core-js/full/math/imul":["es.math.imul"],"core-js/full/math/imulh":["esnext.math.imulh"],"core-js/full/math/isubh":["esnext.math.isubh"],"core-js/full/math/log10":["es.math.log10"],"core-js/full/math/log1p":["es.math.log1p"],"core-js/full/math/log2":["es.math.log2"],"core-js/full/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/full/math/radians":["esnext.math.radians"],"core-js/full/math/scale":["esnext.math.scale"],"core-js/full/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/full/math/sign":["es.math.sign"],"core-js/full/math/signbit":["esnext.math.signbit"],"core-js/full/math/sinh":["es.math.sinh"],"core-js/full/math/tanh":["es.math.tanh"],"core-js/full/math/to-string-tag":["es.math.to-string-tag"],"core-js/full/math/trunc":["es.math.trunc"],"core-js/full/math/umulh":["esnext.math.umulh"],"core-js/full/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.from-string","esnext.number.range"],"core-js/full/number/constructor":["es.number.constructor"],"core-js/full/number/epsilon":["es.number.epsilon"],"core-js/full/number/from-string":["esnext.number.from-string"],"core-js/full/number/is-finite":["es.number.is-finite"],"core-js/full/number/is-integer":["es.number.is-integer"],"core-js/full/number/is-nan":["es.number.is-nan"],"core-js/full/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/full/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/full/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/full/number/parse-float":["es.number.parse-float"],"core-js/full/number/parse-int":["es.number.parse-int"],"core-js/full/number/range":["es.object.to-string","esnext.number.range"],"core-js/full/number/to-exponential":["es.number.to-exponential"],"core-js/full/number/to-fixed":["es.number.to-fixed"],"core-js/full/number/to-precision":["es.number.to-precision"],"core-js/full/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/full/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/full/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/full/number/virtual/to-precision":["es.number.to-precision"],"core-js/full/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","web.dom-collections.iterator"],"core-js/full/object/assign":["es.object.assign"],"core-js/full/object/create":["es.object.create"],"core-js/full/object/define-getter":["es.object.define-getter"],"core-js/full/object/define-properties":["es.object.define-properties"],"core-js/full/object/define-property":["es.object.define-property"],"core-js/full/object/define-setter":["es.object.define-setter"],"core-js/full/object/entries":["es.object.entries"],"core-js/full/object/freeze":["es.object.freeze"],"core-js/full/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/full/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/full/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/full/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/full/object/get-own-property-symbols":["es.symbol"],"core-js/full/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/full/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/full/object/is":["es.object.is"],"core-js/full/object/is-extensible":["es.object.is-extensible"],"core-js/full/object/is-frozen":["es.object.is-frozen"],"core-js/full/object/is-sealed":["es.object.is-sealed"],"core-js/full/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/full/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/full/object/iterate-values":["esnext.object.iterate-values"],"core-js/full/object/keys":["es.object.keys"],"core-js/full/object/lookup-getter":["es.object.lookup-getter"],"core-js/full/object/lookup-setter":["es.object.lookup-setter"],"core-js/full/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/full/object/seal":["es.object.seal"],"core-js/full/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/full/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/object/values":["es.object.values"],"core-js/full/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/full/parse-float":["es.parse-float"],"core-js/full/parse-int":["es.parse-int"],"core-js/full/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","web.dom-collections.iterator"],"core-js/full/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/full/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/full/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/full/promise/try":["es.promise","esnext.promise.try"],"core-js/full/queue-microtask":["web.queue-microtask"],"core-js/full/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/full/reflect/apply":["es.reflect.apply"],"core-js/full/reflect/construct":["es.reflect.construct"],"core-js/full/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/full/reflect/define-property":["es.reflect.define-property"],"core-js/full/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/full/reflect/delete-property":["es.reflect.delete-property"],"core-js/full/reflect/get":["es.reflect.get"],"core-js/full/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/full/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/full/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/full/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/full/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/full/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/full/reflect/has":["es.reflect.has"],"core-js/full/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/full/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/full/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/full/reflect/metadata":["esnext.reflect.metadata"],"core-js/full/reflect/own-keys":["es.reflect.own-keys"],"core-js/full/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/full/reflect/set":["es.reflect.set"],"core-js/full/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/full/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/full/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/full/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/full/regexp/flags":["es.regexp.flags"],"core-js/full/regexp/match":["es.regexp.exec","es.string.match"],"core-js/full/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/full/regexp/search":["es.regexp.exec","es.string.search"],"core-js/full/regexp/split":["es.regexp.exec","es.string.split"],"core-js/full/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/full/regexp/to-string":["es.regexp.to-string"],"core-js/full/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","web.dom-collections.iterator"],"core-js/full/set-immediate":["web.immediate"],"core-js/full/set-interval":["web.timers"],"core-js/full/set-timeout":["web.timers"],"core-js/full/set/add-all":["es.set","esnext.set.add-all"],"core-js/full/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/full/set/difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.difference","web.dom-collections.iterator"],"core-js/full/set/every":["es.set","esnext.set.every"],"core-js/full/set/filter":["es.set","esnext.set.filter"],"core-js/full/set/find":["es.set","esnext.set.find"],"core-js/full/set/from":["es.array.iterator","es.set","es.string.iterator","esnext.set.from","web.dom-collections.iterator"],"core-js/full/set/intersection":["es.array.iterator","es.set","es.string.iterator","esnext.set.intersection","web.dom-collections.iterator"],"core-js/full/set/is-disjoint-from":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/full/set/is-subset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/full/set/is-superset-of":["es.array.iterator","es.set","es.string.iterator","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/full/set/join":["es.set","esnext.set.join"],"core-js/full/set/map":["es.set","esnext.set.map"],"core-js/full/set/of":["es.array.iterator","es.set","esnext.set.of"],"core-js/full/set/reduce":["es.set","esnext.set.reduce"],"core-js/full/set/some":["es.set","esnext.set.some"],"core-js/full/set/symmetric-difference":["es.array.iterator","es.set","es.string.iterator","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/full/set/union":["es.array.iterator","es.set","es.string.iterator","esnext.set.union","web.dom-collections.iterator"],"core-js/full/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/full/string/anchor":["es.string.anchor"],"core-js/full/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/big":["es.string.big"],"core-js/full/string/blink":["es.string.blink"],"core-js/full/string/bold":["es.string.bold"],"core-js/full/string/code-point-at":["es.string.code-point-at"],"core-js/full/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/cooked":["esnext.string.cooked"],"core-js/full/string/ends-with":["es.string.ends-with"],"core-js/full/string/fixed":["es.string.fixed"],"core-js/full/string/fontcolor":["es.string.fontcolor"],"core-js/full/string/fontsize":["es.string.fontsize"],"core-js/full/string/from-code-point":["es.string.from-code-point"],"core-js/full/string/includes":["es.string.includes"],"core-js/full/string/italics":["es.string.italics"],"core-js/full/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/link":["es.string.link"],"core-js/full/string/match":["es.regexp.exec","es.string.match"],"core-js/full/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/pad-end":["es.string.pad-end"],"core-js/full/string/pad-start":["es.string.pad-start"],"core-js/full/string/raw":["es.string.raw"],"core-js/full/string/repeat":["es.string.repeat"],"core-js/full/string/replace":["es.regexp.exec","es.string.replace"],"core-js/full/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/search":["es.regexp.exec","es.string.search"],"core-js/full/string/small":["es.string.small"],"core-js/full/string/split":["es.regexp.exec","es.string.split"],"core-js/full/string/starts-with":["es.string.starts-with"],"core-js/full/string/strike":["es.string.strike"],"core-js/full/string/sub":["es.string.sub"],"core-js/full/string/substr":["es.string.substr"],"core-js/full/string/sup":["es.string.sup"],"core-js/full/string/trim":["es.string.trim"],"core-js/full/string/trim-end":["es.string.trim-end"],"core-js/full/string/trim-left":["es.string.trim-start"],"core-js/full/string/trim-right":["es.string.trim-end"],"core-js/full/string/trim-start":["es.string.trim-start"],"core-js/full/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all"],"core-js/full/string/virtual/anchor":["es.string.anchor"],"core-js/full/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/virtual/big":["es.string.big"],"core-js/full/string/virtual/blink":["es.string.blink"],"core-js/full/string/virtual/bold":["es.string.bold"],"core-js/full/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/full/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/virtual/ends-with":["es.string.ends-with"],"core-js/full/string/virtual/fixed":["es.string.fixed"],"core-js/full/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/full/string/virtual/fontsize":["es.string.fontsize"],"core-js/full/string/virtual/includes":["es.string.includes"],"core-js/full/string/virtual/italics":["es.string.italics"],"core-js/full/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/virtual/link":["es.string.link"],"core-js/full/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/virtual/pad-end":["es.string.pad-end"],"core-js/full/string/virtual/pad-start":["es.string.pad-start"],"core-js/full/string/virtual/repeat":["es.string.repeat"],"core-js/full/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/virtual/small":["es.string.small"],"core-js/full/string/virtual/starts-with":["es.string.starts-with"],"core-js/full/string/virtual/strike":["es.string.strike"],"core-js/full/string/virtual/sub":["es.string.sub"],"core-js/full/string/virtual/substr":["es.string.substr"],"core-js/full/string/virtual/sup":["es.string.sup"],"core-js/full/string/virtual/trim":["es.string.trim"],"core-js/full/string/virtual/trim-end":["es.string.trim-end"],"core-js/full/string/virtual/trim-left":["es.string.trim-start"],"core-js/full/string/virtual/trim-right":["es.string.trim-end"],"core-js/full/string/virtual/trim-start":["es.string.trim-start"],"core-js/full/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/full/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/full/symbol/async-dispose":["esnext.symbol.async-dispose"],"core-js/full/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/full/symbol/description":["es.symbol.description"],"core-js/full/symbol/dispose":["esnext.symbol.dispose"],"core-js/full/symbol/for":["es.symbol"],"core-js/full/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/full/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/full/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/full/symbol/key-for":["es.symbol"],"core-js/full/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/full/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/full/symbol/matcher":["esnext.symbol.matcher"],"core-js/full/symbol/metadata":["esnext.symbol.metadata"],"core-js/full/symbol/observable":["esnext.symbol.observable"],"core-js/full/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/full/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/full/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/full/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/full/symbol/species":["es.symbol.species"],"core-js/full/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/full/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/full/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/symbol/unscopables":["es.symbol.unscopables"],"core-js/full/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/at":["es.typed-array.every","esnext.typed-array.at"],"core-js/full/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/full/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/every":["es.typed-array.every"],"core-js/full/typed-array/fill":["es.typed-array.fill"],"core-js/full/typed-array/filter":["es.typed-array.filter"],"core-js/full/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/full/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/full/typed-array/find":["es.typed-array.find"],"core-js/full/typed-array/find-index":["es.typed-array.find-index"],"core-js/full/typed-array/find-last":["esnext.typed-array.find-last"],"core-js/full/typed-array/find-last-index":["esnext.typed-array.find-last-index"],"core-js/full/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/for-each":["es.typed-array.for-each"],"core-js/full/typed-array/from":["es.typed-array.from"],"core-js/full/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/full/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/full/typed-array/includes":["es.typed-array.includes"],"core-js/full/typed-array/index-of":["es.typed-array.index-of"],"core-js/full/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/join":["es.typed-array.join"],"core-js/full/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/full/typed-array/map":["es.typed-array.map"],"core-js/full/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/of":["es.typed-array.of"],"core-js/full/typed-array/reduce":["es.typed-array.reduce"],"core-js/full/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/full/typed-array/reverse":["es.typed-array.reverse"],"core-js/full/typed-array/set":["es.typed-array.set"],"core-js/full/typed-array/slice":["es.typed-array.slice"],"core-js/full/typed-array/some":["es.typed-array.some"],"core-js/full/typed-array/sort":["es.typed-array.sort"],"core-js/full/typed-array/subarray":["es.typed-array.subarray"],"core-js/full/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/full/typed-array/to-reversed":["esnext.typed-array.to-reversed"],"core-js/full/typed-array/to-sorted":["es.typed-array.sort","esnext.typed-array.to-sorted"],"core-js/full/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/full/typed-array/to-string":["es.typed-array.to-string"],"core-js/full/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with"],"core-js/full/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/full/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/with":["esnext.typed-array.with"],"core-js/full/unescape":["es.unescape"],"core-js/full/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/full/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/full/url/to-json":["web.url.to-json"],"core-js/full/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/full/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/full/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/full/weak-map/from":["es.array.iterator","es.string.iterator","es.weak-map","esnext.weak-map.from","web.dom-collections.iterator"],"core-js/full/weak-map/of":["es.array.iterator","es.weak-map","esnext.weak-map.of"],"core-js/full/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/full/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/full/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/full/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/full/weak-set/from":["es.array.iterator","es.string.iterator","es.weak-set","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/full/weak-set/of":["es.array.iterator","es.weak-set","esnext.weak-set.of"],"core-js/modules/es.aggregate-error":["es.aggregate-error"],"core-js/modules/es.aggregate-error.cause":["es.aggregate-error.cause"],"core-js/modules/es.aggregate-error.constructor":["es.aggregate-error.constructor"],"core-js/modules/es.array-buffer.constructor":["es.array-buffer.constructor"],"core-js/modules/es.array-buffer.is-view":["es.array-buffer.is-view"],"core-js/modules/es.array-buffer.slice":["es.array-buffer.slice"],"core-js/modules/es.array.at":["es.array.at"],"core-js/modules/es.array.concat":["es.array.concat"],"core-js/modules/es.array.copy-within":["es.array.copy-within"],"core-js/modules/es.array.every":["es.array.every"],"core-js/modules/es.array.fill":["es.array.fill"],"core-js/modules/es.array.filter":["es.array.filter"],"core-js/modules/es.array.find":["es.array.find"],"core-js/modules/es.array.find-index":["es.array.find-index"],"core-js/modules/es.array.flat":["es.array.flat"],"core-js/modules/es.array.flat-map":["es.array.flat-map"],"core-js/modules/es.array.for-each":["es.array.for-each"],"core-js/modules/es.array.from":["es.array.from"],"core-js/modules/es.array.includes":["es.array.includes"],"core-js/modules/es.array.index-of":["es.array.index-of"],"core-js/modules/es.array.is-array":["es.array.is-array"],"core-js/modules/es.array.iterator":["es.array.iterator"],"core-js/modules/es.array.join":["es.array.join"],"core-js/modules/es.array.last-index-of":["es.array.last-index-of"],"core-js/modules/es.array.map":["es.array.map"],"core-js/modules/es.array.of":["es.array.of"],"core-js/modules/es.array.reduce":["es.array.reduce"],"core-js/modules/es.array.reduce-right":["es.array.reduce-right"],"core-js/modules/es.array.reverse":["es.array.reverse"],"core-js/modules/es.array.slice":["es.array.slice"],"core-js/modules/es.array.some":["es.array.some"],"core-js/modules/es.array.sort":["es.array.sort"],"core-js/modules/es.array.species":["es.array.species"],"core-js/modules/es.array.splice":["es.array.splice"],"core-js/modules/es.array.unscopables.flat":["es.array.unscopables.flat"],"core-js/modules/es.array.unscopables.flat-map":["es.array.unscopables.flat-map"],"core-js/modules/es.data-view":["es.data-view"],"core-js/modules/es.data-view.constructor":["es.data-view.constructor"],"core-js/modules/es.date.get-year":["es.date.get-year"],"core-js/modules/es.date.now":["es.date.now"],"core-js/modules/es.date.set-year":["es.date.set-year"],"core-js/modules/es.date.to-gmt-string":["es.date.to-gmt-string"],"core-js/modules/es.date.to-iso-string":["es.date.to-iso-string"],"core-js/modules/es.date.to-json":["es.date.to-json"],"core-js/modules/es.date.to-primitive":["es.date.to-primitive"],"core-js/modules/es.date.to-string":["es.date.to-string"],"core-js/modules/es.error.cause":["es.error.cause"],"core-js/modules/es.error.to-string":["es.error.to-string"],"core-js/modules/es.escape":["es.escape"],"core-js/modules/es.function.bind":["es.function.bind"],"core-js/modules/es.function.has-instance":["es.function.has-instance"],"core-js/modules/es.function.name":["es.function.name"],"core-js/modules/es.global-this":["es.global-this"],"core-js/modules/es.json.stringify":["es.json.stringify"],"core-js/modules/es.json.to-string-tag":["es.json.to-string-tag"],"core-js/modules/es.map":["es.map"],"core-js/modules/es.map.constructor":["es.map.constructor"],"core-js/modules/es.math.acosh":["es.math.acosh"],"core-js/modules/es.math.asinh":["es.math.asinh"],"core-js/modules/es.math.atanh":["es.math.atanh"],"core-js/modules/es.math.cbrt":["es.math.cbrt"],"core-js/modules/es.math.clz32":["es.math.clz32"],"core-js/modules/es.math.cosh":["es.math.cosh"],"core-js/modules/es.math.expm1":["es.math.expm1"],"core-js/modules/es.math.fround":["es.math.fround"],"core-js/modules/es.math.hypot":["es.math.hypot"],"core-js/modules/es.math.imul":["es.math.imul"],"core-js/modules/es.math.log10":["es.math.log10"],"core-js/modules/es.math.log1p":["es.math.log1p"],"core-js/modules/es.math.log2":["es.math.log2"],"core-js/modules/es.math.sign":["es.math.sign"],"core-js/modules/es.math.sinh":["es.math.sinh"],"core-js/modules/es.math.tanh":["es.math.tanh"],"core-js/modules/es.math.to-string-tag":["es.math.to-string-tag"],"core-js/modules/es.math.trunc":["es.math.trunc"],"core-js/modules/es.number.constructor":["es.number.constructor"],"core-js/modules/es.number.epsilon":["es.number.epsilon"],"core-js/modules/es.number.is-finite":["es.number.is-finite"],"core-js/modules/es.number.is-integer":["es.number.is-integer"],"core-js/modules/es.number.is-nan":["es.number.is-nan"],"core-js/modules/es.number.is-safe-integer":["es.number.is-safe-integer"],"core-js/modules/es.number.max-safe-integer":["es.number.max-safe-integer"],"core-js/modules/es.number.min-safe-integer":["es.number.min-safe-integer"],"core-js/modules/es.number.parse-float":["es.number.parse-float"],"core-js/modules/es.number.parse-int":["es.number.parse-int"],"core-js/modules/es.number.to-exponential":["es.number.to-exponential"],"core-js/modules/es.number.to-fixed":["es.number.to-fixed"],"core-js/modules/es.number.to-precision":["es.number.to-precision"],"core-js/modules/es.object.assign":["es.object.assign"],"core-js/modules/es.object.create":["es.object.create"],"core-js/modules/es.object.define-getter":["es.object.define-getter"],"core-js/modules/es.object.define-properties":["es.object.define-properties"],"core-js/modules/es.object.define-property":["es.object.define-property"],"core-js/modules/es.object.define-setter":["es.object.define-setter"],"core-js/modules/es.object.entries":["es.object.entries"],"core-js/modules/es.object.freeze":["es.object.freeze"],"core-js/modules/es.object.from-entries":["es.object.from-entries"],"core-js/modules/es.object.get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/modules/es.object.get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/modules/es.object.get-own-property-names":["es.object.get-own-property-names"],"core-js/modules/es.object.get-own-property-symbols":["es.object.get-own-property-symbols"],"core-js/modules/es.object.get-prototype-of":["es.object.get-prototype-of"],"core-js/modules/es.object.has-own":["es.object.has-own"],"core-js/modules/es.object.is":["es.object.is"],"core-js/modules/es.object.is-extensible":["es.object.is-extensible"],"core-js/modules/es.object.is-frozen":["es.object.is-frozen"],"core-js/modules/es.object.is-sealed":["es.object.is-sealed"],"core-js/modules/es.object.keys":["es.object.keys"],"core-js/modules/es.object.lookup-getter":["es.object.lookup-getter"],"core-js/modules/es.object.lookup-setter":["es.object.lookup-setter"],"core-js/modules/es.object.prevent-extensions":["es.object.prevent-extensions"],"core-js/modules/es.object.seal":["es.object.seal"],"core-js/modules/es.object.set-prototype-of":["es.object.set-prototype-of"],"core-js/modules/es.object.to-string":["es.object.to-string"],"core-js/modules/es.object.values":["es.object.values"],"core-js/modules/es.parse-float":["es.parse-float"],"core-js/modules/es.parse-int":["es.parse-int"],"core-js/modules/es.promise":["es.promise"],"core-js/modules/es.promise.all":["es.promise.all"],"core-js/modules/es.promise.all-settled":["es.promise.all-settled"],"core-js/modules/es.promise.any":["es.promise.any"],"core-js/modules/es.promise.catch":["es.promise.catch"],"core-js/modules/es.promise.constructor":["es.promise.constructor"],"core-js/modules/es.promise.finally":["es.promise.finally"],"core-js/modules/es.promise.race":["es.promise.race"],"core-js/modules/es.promise.reject":["es.promise.reject"],"core-js/modules/es.promise.resolve":["es.promise.resolve"],"core-js/modules/es.reflect.apply":["es.reflect.apply"],"core-js/modules/es.reflect.construct":["es.reflect.construct"],"core-js/modules/es.reflect.define-property":["es.reflect.define-property"],"core-js/modules/es.reflect.delete-property":["es.reflect.delete-property"],"core-js/modules/es.reflect.get":["es.reflect.get"],"core-js/modules/es.reflect.get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/modules/es.reflect.get-prototype-of":["es.reflect.get-prototype-of"],"core-js/modules/es.reflect.has":["es.reflect.has"],"core-js/modules/es.reflect.is-extensible":["es.reflect.is-extensible"],"core-js/modules/es.reflect.own-keys":["es.reflect.own-keys"],"core-js/modules/es.reflect.prevent-extensions":["es.reflect.prevent-extensions"],"core-js/modules/es.reflect.set":["es.reflect.set"],"core-js/modules/es.reflect.set-prototype-of":["es.reflect.set-prototype-of"],"core-js/modules/es.reflect.to-string-tag":["es.reflect.to-string-tag"],"core-js/modules/es.regexp.constructor":["es.regexp.constructor"],"core-js/modules/es.regexp.dot-all":["es.regexp.dot-all"],"core-js/modules/es.regexp.exec":["es.regexp.exec"],"core-js/modules/es.regexp.flags":["es.regexp.flags"],"core-js/modules/es.regexp.sticky":["es.regexp.sticky"],"core-js/modules/es.regexp.test":["es.regexp.test"],"core-js/modules/es.regexp.to-string":["es.regexp.to-string"],"core-js/modules/es.set":["es.set"],"core-js/modules/es.set.constructor":["es.set.constructor"],"core-js/modules/es.string.anchor":["es.string.anchor"],"core-js/modules/es.string.at-alternative":["es.string.at-alternative"],"core-js/modules/es.string.big":["es.string.big"],"core-js/modules/es.string.blink":["es.string.blink"],"core-js/modules/es.string.bold":["es.string.bold"],"core-js/modules/es.string.code-point-at":["es.string.code-point-at"],"core-js/modules/es.string.ends-with":["es.string.ends-with"],"core-js/modules/es.string.fixed":["es.string.fixed"],"core-js/modules/es.string.fontcolor":["es.string.fontcolor"],"core-js/modules/es.string.fontsize":["es.string.fontsize"],"core-js/modules/es.string.from-code-point":["es.string.from-code-point"],"core-js/modules/es.string.includes":["es.string.includes"],"core-js/modules/es.string.italics":["es.string.italics"],"core-js/modules/es.string.iterator":["es.string.iterator"],"core-js/modules/es.string.link":["es.string.link"],"core-js/modules/es.string.match":["es.string.match"],"core-js/modules/es.string.match-all":["es.string.match-all"],"core-js/modules/es.string.pad-end":["es.string.pad-end"],"core-js/modules/es.string.pad-start":["es.string.pad-start"],"core-js/modules/es.string.raw":["es.string.raw"],"core-js/modules/es.string.repeat":["es.string.repeat"],"core-js/modules/es.string.replace":["es.string.replace"],"core-js/modules/es.string.replace-all":["es.string.replace-all"],"core-js/modules/es.string.search":["es.string.search"],"core-js/modules/es.string.small":["es.string.small"],"core-js/modules/es.string.split":["es.string.split"],"core-js/modules/es.string.starts-with":["es.string.starts-with"],"core-js/modules/es.string.strike":["es.string.strike"],"core-js/modules/es.string.sub":["es.string.sub"],"core-js/modules/es.string.substr":["es.string.substr"],"core-js/modules/es.string.sup":["es.string.sup"],"core-js/modules/es.string.trim":["es.string.trim"],"core-js/modules/es.string.trim-end":["es.string.trim-end"],"core-js/modules/es.string.trim-left":["es.string.trim-left"],"core-js/modules/es.string.trim-right":["es.string.trim-right"],"core-js/modules/es.string.trim-start":["es.string.trim-start"],"core-js/modules/es.symbol":["es.symbol"],"core-js/modules/es.symbol.async-iterator":["es.symbol.async-iterator"],"core-js/modules/es.symbol.constructor":["es.symbol.constructor"],"core-js/modules/es.symbol.description":["es.symbol.description"],"core-js/modules/es.symbol.for":["es.symbol.for"],"core-js/modules/es.symbol.has-instance":["es.symbol.has-instance"],"core-js/modules/es.symbol.is-concat-spreadable":["es.symbol.is-concat-spreadable"],"core-js/modules/es.symbol.iterator":["es.symbol.iterator"],"core-js/modules/es.symbol.key-for":["es.symbol.key-for"],"core-js/modules/es.symbol.match":["es.symbol.match"],"core-js/modules/es.symbol.match-all":["es.symbol.match-all"],"core-js/modules/es.symbol.replace":["es.symbol.replace"],"core-js/modules/es.symbol.search":["es.symbol.search"],"core-js/modules/es.symbol.species":["es.symbol.species"],"core-js/modules/es.symbol.split":["es.symbol.split"],"core-js/modules/es.symbol.to-primitive":["es.symbol.to-primitive"],"core-js/modules/es.symbol.to-string-tag":["es.symbol.to-string-tag"],"core-js/modules/es.symbol.unscopables":["es.symbol.unscopables"],"core-js/modules/es.typed-array.at":["es.typed-array.at"],"core-js/modules/es.typed-array.copy-within":["es.typed-array.copy-within"],"core-js/modules/es.typed-array.every":["es.typed-array.every"],"core-js/modules/es.typed-array.fill":["es.typed-array.fill"],"core-js/modules/es.typed-array.filter":["es.typed-array.filter"],"core-js/modules/es.typed-array.find":["es.typed-array.find"],"core-js/modules/es.typed-array.find-index":["es.typed-array.find-index"],"core-js/modules/es.typed-array.float32-array":["es.typed-array.float32-array"],"core-js/modules/es.typed-array.float64-array":["es.typed-array.float64-array"],"core-js/modules/es.typed-array.for-each":["es.typed-array.for-each"],"core-js/modules/es.typed-array.from":["es.typed-array.from"],"core-js/modules/es.typed-array.includes":["es.typed-array.includes"],"core-js/modules/es.typed-array.index-of":["es.typed-array.index-of"],"core-js/modules/es.typed-array.int16-array":["es.typed-array.int16-array"],"core-js/modules/es.typed-array.int32-array":["es.typed-array.int32-array"],"core-js/modules/es.typed-array.int8-array":["es.typed-array.int8-array"],"core-js/modules/es.typed-array.iterator":["es.typed-array.iterator"],"core-js/modules/es.typed-array.join":["es.typed-array.join"],"core-js/modules/es.typed-array.last-index-of":["es.typed-array.last-index-of"],"core-js/modules/es.typed-array.map":["es.typed-array.map"],"core-js/modules/es.typed-array.of":["es.typed-array.of"],"core-js/modules/es.typed-array.reduce":["es.typed-array.reduce"],"core-js/modules/es.typed-array.reduce-right":["es.typed-array.reduce-right"],"core-js/modules/es.typed-array.reverse":["es.typed-array.reverse"],"core-js/modules/es.typed-array.set":["es.typed-array.set"],"core-js/modules/es.typed-array.slice":["es.typed-array.slice"],"core-js/modules/es.typed-array.some":["es.typed-array.some"],"core-js/modules/es.typed-array.sort":["es.typed-array.sort"],"core-js/modules/es.typed-array.subarray":["es.typed-array.subarray"],"core-js/modules/es.typed-array.to-locale-string":["es.typed-array.to-locale-string"],"core-js/modules/es.typed-array.to-string":["es.typed-array.to-string"],"core-js/modules/es.typed-array.uint16-array":["es.typed-array.uint16-array"],"core-js/modules/es.typed-array.uint32-array":["es.typed-array.uint32-array"],"core-js/modules/es.typed-array.uint8-array":["es.typed-array.uint8-array"],"core-js/modules/es.typed-array.uint8-clamped-array":["es.typed-array.uint8-clamped-array"],"core-js/modules/es.unescape":["es.unescape"],"core-js/modules/es.weak-map":["es.weak-map"],"core-js/modules/es.weak-map.constructor":["es.weak-map.constructor"],"core-js/modules/es.weak-set":["es.weak-set"],"core-js/modules/es.weak-set.constructor":["es.weak-set.constructor"],"core-js/modules/esnext.aggregate-error":["esnext.aggregate-error"],"core-js/modules/esnext.array.at":["esnext.array.at"],"core-js/modules/esnext.array.filter-out":["esnext.array.filter-out"],"core-js/modules/esnext.array.filter-reject":["esnext.array.filter-reject"],"core-js/modules/esnext.array.find-last":["esnext.array.find-last"],"core-js/modules/esnext.array.find-last-index":["esnext.array.find-last-index"],"core-js/modules/esnext.array.from-async":["esnext.array.from-async"],"core-js/modules/esnext.array.group-by":["esnext.array.group-by"],"core-js/modules/esnext.array.group-by-to-map":["esnext.array.group-by-to-map"],"core-js/modules/esnext.array.is-template-object":["esnext.array.is-template-object"],"core-js/modules/esnext.array.last-index":["esnext.array.last-index"],"core-js/modules/esnext.array.last-item":["esnext.array.last-item"],"core-js/modules/esnext.array.to-reversed":["esnext.array.to-reversed"],"core-js/modules/esnext.array.to-sorted":["esnext.array.to-sorted"],"core-js/modules/esnext.array.to-spliced":["esnext.array.to-spliced"],"core-js/modules/esnext.array.unique-by":["esnext.array.unique-by"],"core-js/modules/esnext.array.with":["esnext.array.with"],"core-js/modules/esnext.async-iterator.as-indexed-pairs":["esnext.async-iterator.as-indexed-pairs"],"core-js/modules/esnext.async-iterator.constructor":["esnext.async-iterator.constructor"],"core-js/modules/esnext.async-iterator.drop":["esnext.async-iterator.drop"],"core-js/modules/esnext.async-iterator.every":["esnext.async-iterator.every"],"core-js/modules/esnext.async-iterator.filter":["esnext.async-iterator.filter"],"core-js/modules/esnext.async-iterator.find":["esnext.async-iterator.find"],"core-js/modules/esnext.async-iterator.flat-map":["esnext.async-iterator.flat-map"],"core-js/modules/esnext.async-iterator.for-each":["esnext.async-iterator.for-each"],"core-js/modules/esnext.async-iterator.from":["esnext.async-iterator.from"],"core-js/modules/esnext.async-iterator.map":["esnext.async-iterator.map"],"core-js/modules/esnext.async-iterator.reduce":["esnext.async-iterator.reduce"],"core-js/modules/esnext.async-iterator.some":["esnext.async-iterator.some"],"core-js/modules/esnext.async-iterator.take":["esnext.async-iterator.take"],"core-js/modules/esnext.async-iterator.to-array":["esnext.async-iterator.to-array"],"core-js/modules/esnext.bigint.range":["esnext.bigint.range"],"core-js/modules/esnext.composite-key":["esnext.composite-key"],"core-js/modules/esnext.composite-symbol":["esnext.composite-symbol"],"core-js/modules/esnext.function.is-callable":["esnext.function.is-callable"],"core-js/modules/esnext.function.is-constructor":["esnext.function.is-constructor"],"core-js/modules/esnext.function.un-this":["esnext.function.un-this"],"core-js/modules/esnext.global-this":["esnext.global-this"],"core-js/modules/esnext.iterator.as-indexed-pairs":["esnext.iterator.as-indexed-pairs"],"core-js/modules/esnext.iterator.constructor":["esnext.iterator.constructor"],"core-js/modules/esnext.iterator.drop":["esnext.iterator.drop"],"core-js/modules/esnext.iterator.every":["esnext.iterator.every"],"core-js/modules/esnext.iterator.filter":["esnext.iterator.filter"],"core-js/modules/esnext.iterator.find":["esnext.iterator.find"],"core-js/modules/esnext.iterator.flat-map":["esnext.iterator.flat-map"],"core-js/modules/esnext.iterator.for-each":["esnext.iterator.for-each"],"core-js/modules/esnext.iterator.from":["esnext.iterator.from"],"core-js/modules/esnext.iterator.map":["esnext.iterator.map"],"core-js/modules/esnext.iterator.reduce":["esnext.iterator.reduce"],"core-js/modules/esnext.iterator.some":["esnext.iterator.some"],"core-js/modules/esnext.iterator.take":["esnext.iterator.take"],"core-js/modules/esnext.iterator.to-array":["esnext.iterator.to-array"],"core-js/modules/esnext.iterator.to-async":["esnext.iterator.to-async"],"core-js/modules/esnext.map.delete-all":["esnext.map.delete-all"],"core-js/modules/esnext.map.emplace":["esnext.map.emplace"],"core-js/modules/esnext.map.every":["esnext.map.every"],"core-js/modules/esnext.map.filter":["esnext.map.filter"],"core-js/modules/esnext.map.find":["esnext.map.find"],"core-js/modules/esnext.map.find-key":["esnext.map.find-key"],"core-js/modules/esnext.map.from":["esnext.map.from"],"core-js/modules/esnext.map.group-by":["esnext.map.group-by"],"core-js/modules/esnext.map.includes":["esnext.map.includes"],"core-js/modules/esnext.map.key-by":["esnext.map.key-by"],"core-js/modules/esnext.map.key-of":["esnext.map.key-of"],"core-js/modules/esnext.map.map-keys":["esnext.map.map-keys"],"core-js/modules/esnext.map.map-values":["esnext.map.map-values"],"core-js/modules/esnext.map.merge":["esnext.map.merge"],"core-js/modules/esnext.map.of":["esnext.map.of"],"core-js/modules/esnext.map.reduce":["esnext.map.reduce"],"core-js/modules/esnext.map.some":["esnext.map.some"],"core-js/modules/esnext.map.update":["esnext.map.update"],"core-js/modules/esnext.map.update-or-insert":["esnext.map.update-or-insert"],"core-js/modules/esnext.map.upsert":["esnext.map.upsert"],"core-js/modules/esnext.math.clamp":["esnext.math.clamp"],"core-js/modules/esnext.math.deg-per-rad":["esnext.math.deg-per-rad"],"core-js/modules/esnext.math.degrees":["esnext.math.degrees"],"core-js/modules/esnext.math.fscale":["esnext.math.fscale"],"core-js/modules/esnext.math.iaddh":["esnext.math.iaddh"],"core-js/modules/esnext.math.imulh":["esnext.math.imulh"],"core-js/modules/esnext.math.isubh":["esnext.math.isubh"],"core-js/modules/esnext.math.rad-per-deg":["esnext.math.rad-per-deg"],"core-js/modules/esnext.math.radians":["esnext.math.radians"],"core-js/modules/esnext.math.scale":["esnext.math.scale"],"core-js/modules/esnext.math.seeded-prng":["esnext.math.seeded-prng"],"core-js/modules/esnext.math.signbit":["esnext.math.signbit"],"core-js/modules/esnext.math.umulh":["esnext.math.umulh"],"core-js/modules/esnext.number.from-string":["esnext.number.from-string"],"core-js/modules/esnext.number.range":["esnext.number.range"],"core-js/modules/esnext.object.has-own":["esnext.object.has-own"],"core-js/modules/esnext.object.iterate-entries":["esnext.object.iterate-entries"],"core-js/modules/esnext.object.iterate-keys":["esnext.object.iterate-keys"],"core-js/modules/esnext.object.iterate-values":["esnext.object.iterate-values"],"core-js/modules/esnext.observable":["esnext.observable"],"core-js/modules/esnext.observable.constructor":["esnext.observable.constructor"],"core-js/modules/esnext.observable.from":["esnext.observable.from"],"core-js/modules/esnext.observable.of":["esnext.observable.of"],"core-js/modules/esnext.promise.all-settled":["esnext.promise.all-settled"],"core-js/modules/esnext.promise.any":["esnext.promise.any"],"core-js/modules/esnext.promise.try":["esnext.promise.try"],"core-js/modules/esnext.reflect.define-metadata":["esnext.reflect.define-metadata"],"core-js/modules/esnext.reflect.delete-metadata":["esnext.reflect.delete-metadata"],"core-js/modules/esnext.reflect.get-metadata":["esnext.reflect.get-metadata"],"core-js/modules/esnext.reflect.get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/modules/esnext.reflect.get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/modules/esnext.reflect.get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/modules/esnext.reflect.has-metadata":["esnext.reflect.has-metadata"],"core-js/modules/esnext.reflect.has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/modules/esnext.reflect.metadata":["esnext.reflect.metadata"],"core-js/modules/esnext.set.add-all":["esnext.set.add-all"],"core-js/modules/esnext.set.delete-all":["esnext.set.delete-all"],"core-js/modules/esnext.set.difference":["esnext.set.difference"],"core-js/modules/esnext.set.every":["esnext.set.every"],"core-js/modules/esnext.set.filter":["esnext.set.filter"],"core-js/modules/esnext.set.find":["esnext.set.find"],"core-js/modules/esnext.set.from":["esnext.set.from"],"core-js/modules/esnext.set.intersection":["esnext.set.intersection"],"core-js/modules/esnext.set.is-disjoint-from":["esnext.set.is-disjoint-from"],"core-js/modules/esnext.set.is-subset-of":["esnext.set.is-subset-of"],"core-js/modules/esnext.set.is-superset-of":["esnext.set.is-superset-of"],"core-js/modules/esnext.set.join":["esnext.set.join"],"core-js/modules/esnext.set.map":["esnext.set.map"],"core-js/modules/esnext.set.of":["esnext.set.of"],"core-js/modules/esnext.set.reduce":["esnext.set.reduce"],"core-js/modules/esnext.set.some":["esnext.set.some"],"core-js/modules/esnext.set.symmetric-difference":["esnext.set.symmetric-difference"],"core-js/modules/esnext.set.union":["esnext.set.union"],"core-js/modules/esnext.string.at":["esnext.string.at"],"core-js/modules/esnext.string.at-alternative":["esnext.string.at-alternative"],"core-js/modules/esnext.string.code-points":["esnext.string.code-points"],"core-js/modules/esnext.string.cooked":["esnext.string.cooked"],"core-js/modules/esnext.string.match-all":["esnext.string.match-all"],"core-js/modules/esnext.string.replace-all":["esnext.string.replace-all"],"core-js/modules/esnext.symbol.async-dispose":["esnext.symbol.async-dispose"],"core-js/modules/esnext.symbol.dispose":["esnext.symbol.dispose"],"core-js/modules/esnext.symbol.matcher":["esnext.symbol.matcher"],"core-js/modules/esnext.symbol.metadata":["esnext.symbol.metadata"],"core-js/modules/esnext.symbol.observable":["esnext.symbol.observable"],"core-js/modules/esnext.symbol.pattern-match":["esnext.symbol.pattern-match"],"core-js/modules/esnext.symbol.replace-all":["esnext.symbol.replace-all"],"core-js/modules/esnext.typed-array.at":["esnext.typed-array.at"],"core-js/modules/esnext.typed-array.filter-out":["esnext.typed-array.filter-out"],"core-js/modules/esnext.typed-array.filter-reject":["esnext.typed-array.filter-reject"],"core-js/modules/esnext.typed-array.find-last":["esnext.typed-array.find-last"],"core-js/modules/esnext.typed-array.find-last-index":["esnext.typed-array.find-last-index"],"core-js/modules/esnext.typed-array.from-async":["esnext.typed-array.from-async"],"core-js/modules/esnext.typed-array.group-by":["esnext.typed-array.group-by"],"core-js/modules/esnext.typed-array.to-reversed":["esnext.typed-array.to-reversed"],"core-js/modules/esnext.typed-array.to-sorted":["esnext.typed-array.to-sorted"],"core-js/modules/esnext.typed-array.to-spliced":["esnext.typed-array.to-spliced"],"core-js/modules/esnext.typed-array.unique-by":["esnext.typed-array.unique-by"],"core-js/modules/esnext.typed-array.with":["esnext.typed-array.with"],"core-js/modules/esnext.weak-map.delete-all":["esnext.weak-map.delete-all"],"core-js/modules/esnext.weak-map.emplace":["esnext.weak-map.emplace"],"core-js/modules/esnext.weak-map.from":["esnext.weak-map.from"],"core-js/modules/esnext.weak-map.of":["esnext.weak-map.of"],"core-js/modules/esnext.weak-map.upsert":["esnext.weak-map.upsert"],"core-js/modules/esnext.weak-set.add-all":["esnext.weak-set.add-all"],"core-js/modules/esnext.weak-set.delete-all":["esnext.weak-set.delete-all"],"core-js/modules/esnext.weak-set.from":["esnext.weak-set.from"],"core-js/modules/esnext.weak-set.of":["esnext.weak-set.of"],"core-js/modules/web.atob":["web.atob"],"core-js/modules/web.btoa":["web.btoa"],"core-js/modules/web.clear-immediate":["web.clear-immediate"],"core-js/modules/web.dom-collections.for-each":["web.dom-collections.for-each"],"core-js/modules/web.dom-collections.iterator":["web.dom-collections.iterator"],"core-js/modules/web.dom-exception.constructor":["web.dom-exception.constructor"],"core-js/modules/web.dom-exception.stack":["web.dom-exception.stack"],"core-js/modules/web.dom-exception.to-string-tag":["web.dom-exception.to-string-tag"],"core-js/modules/web.immediate":["web.immediate"],"core-js/modules/web.queue-microtask":["web.queue-microtask"],"core-js/modules/web.set-immediate":["web.set-immediate"],"core-js/modules/web.set-interval":["web.set-interval"],"core-js/modules/web.set-timeout":["web.set-timeout"],"core-js/modules/web.structured-clone":["web.structured-clone"],"core-js/modules/web.timers":["web.timers"],"core-js/modules/web.url":["web.url"],"core-js/modules/web.url-search-params":["web.url-search-params"],"core-js/modules/web.url-search-params.constructor":["web.url-search-params.constructor"],"core-js/modules/web.url.constructor":["web.url.constructor"],"core-js/modules/web.url.to-json":["web.url.to-json"],"core-js/proposals":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/proposals/accessible-object-hasownproperty":["esnext.object.has-own"],"core-js/proposals/array-filtering":["esnext.array.filter-out","esnext.array.filter-reject","esnext.typed-array.filter-out","esnext.typed-array.filter-reject"],"core-js/proposals/array-filtering-stage-1":["esnext.array.filter-reject","esnext.typed-array.filter-reject"],"core-js/proposals/array-find-from-last":["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index"],"core-js/proposals/array-flat-map":["es.array.flat","es.array.flat-map","es.array.unscopables.flat","es.array.unscopables.flat-map"],"core-js/proposals/array-from-async":["esnext.array.from-async","esnext.typed-array.from-async"],"core-js/proposals/array-from-async-stage-2":["esnext.array.from-async"],"core-js/proposals/array-grouping":["esnext.array.group-by","esnext.array.group-by-to-map","esnext.typed-array.group-by"],"core-js/proposals/array-grouping-stage-3":["esnext.array.group-by","esnext.array.group-by-to-map"],"core-js/proposals/array-includes":["es.array.includes","es.typed-array.includes"],"core-js/proposals/array-is-template-object":["esnext.array.is-template-object"],"core-js/proposals/array-last":["esnext.array.last-index","esnext.array.last-item"],"core-js/proposals/array-unique":["es.map","esnext.array.unique-by","esnext.typed-array.unique-by"],"core-js/proposals/async-iteration":["es.symbol.async-iterator"],"core-js/proposals/change-array-by-copy":["esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/proposals/collection-methods":["esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.set.add-all","esnext.set.delete-all","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.weak-map.delete-all","esnext.weak-set.add-all","esnext.weak-set.delete-all"],"core-js/proposals/collection-of-from":["esnext.map.from","esnext.map.of","esnext.set.from","esnext.set.of","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.from","esnext.weak-set.of"],"core-js/proposals/decorators":["esnext.symbol.metadata"],"core-js/proposals/efficient-64-bit-arithmetic":["esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.umulh"],"core-js/proposals/error-cause":["es.error.cause","es.aggregate-error.cause"],"core-js/proposals/function-is-callable-is-constructor":["esnext.function.is-callable","esnext.function.is-constructor"],"core-js/proposals/function-un-this":["esnext.function.un-this"],"core-js/proposals/global-this":["esnext.global-this"],"core-js/proposals/iterator-helpers":["esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/keys-composition":["esnext.composite-key","esnext.composite-symbol"],"core-js/proposals/map-update-or-insert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert-stage-2":["esnext.map.emplace","esnext.weak-map.emplace"],"core-js/proposals/math-extensions":["esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale"],"core-js/proposals/math-signbit":["esnext.math.signbit"],"core-js/proposals/number-from-string":["esnext.number.from-string"],"core-js/proposals/number-range":["esnext.bigint.range","esnext.number.range"],"core-js/proposals/object-from-entries":["es.object.from-entries"],"core-js/proposals/object-getownpropertydescriptors":["es.object.get-own-property-descriptors"],"core-js/proposals/object-iteration":["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],"core-js/proposals/object-values-entries":["es.object.entries","es.object.values"],"core-js/proposals/observable":["esnext.observable","esnext.symbol.observable"],"core-js/proposals/pattern-matching":["esnext.symbol.matcher","esnext.symbol.pattern-match"],"core-js/proposals/promise-all-settled":["esnext.promise.all-settled"],"core-js/proposals/promise-any":["esnext.aggregate-error","esnext.promise.any"],"core-js/proposals/promise-finally":["es.promise.finally"],"core-js/proposals/promise-try":["esnext.promise.try"],"core-js/proposals/reflect-metadata":["esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/proposals/regexp-dotall-flag":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags"],"core-js/proposals/regexp-named-groups":["es.regexp.constructor","es.regexp.exec","es.string.replace"],"core-js/proposals/relative-indexing-method":["es.string.at-alternative","esnext.array.at","esnext.typed-array.at"],"core-js/proposals/seeded-random":["esnext.math.seeded-prng"],"core-js/proposals/set-methods":["esnext.set.difference","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.symmetric-difference","esnext.set.union"],"core-js/proposals/string-at":["esnext.string.at"],"core-js/proposals/string-code-points":["esnext.string.code-points"],"core-js/proposals/string-cooked":["esnext.string.cooked"],"core-js/proposals/string-left-right-trim":["es.string.trim-end","es.string.trim-start"],"core-js/proposals/string-match-all":["esnext.string.match-all"],"core-js/proposals/string-padding":["es.string.pad-end","es.string.pad-start"],"core-js/proposals/string-replace-all":["esnext.string.replace-all","esnext.symbol.replace-all"],"core-js/proposals/string-replace-all-stage-4":["esnext.string.replace-all"],"core-js/proposals/symbol-description":["es.symbol.description"],"core-js/proposals/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/proposals/using-statement":["esnext.symbol.async-dispose","esnext.symbol.dispose"],"core-js/proposals/well-formed-stringify":["es.json.stringify"],"core-js/stable":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/stable/aggregate-error":["es.error.cause","es.aggregate-error","es.aggregate-error.cause","es.array.iterator","es.string.iterator","esnext.aggregate-error","web.dom-collections.iterator"],"core-js/stable/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string","es.string.iterator"],"core-js/stable/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.object.to-string"],"core-js/stable/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string"],"core-js/stable/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/stable/array-buffer/slice":["es.array-buffer.slice"],"core-js/stable/array/at":["es.array.at"],"core-js/stable/array/concat":["es.array.concat"],"core-js/stable/array/copy-within":["es.array.copy-within"],"core-js/stable/array/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/every":["es.array.every"],"core-js/stable/array/fill":["es.array.fill"],"core-js/stable/array/filter":["es.array.filter"],"core-js/stable/array/find":["es.array.find"],"core-js/stable/array/find-index":["es.array.find-index"],"core-js/stable/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/for-each":["es.array.for-each"],"core-js/stable/array/from":["es.array.from","es.string.iterator"],"core-js/stable/array/includes":["es.array.includes"],"core-js/stable/array/index-of":["es.array.index-of"],"core-js/stable/array/is-array":["es.array.is-array"],"core-js/stable/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/join":["es.array.join"],"core-js/stable/array/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/last-index-of":["es.array.last-index-of"],"core-js/stable/array/map":["es.array.map"],"core-js/stable/array/of":["es.array.of"],"core-js/stable/array/reduce":["es.array.reduce"],"core-js/stable/array/reduce-right":["es.array.reduce-right"],"core-js/stable/array/reverse":["es.array.reverse"],"core-js/stable/array/slice":["es.array.slice"],"core-js/stable/array/some":["es.array.some"],"core-js/stable/array/sort":["es.array.sort"],"core-js/stable/array/splice":["es.array.splice"],"core-js/stable/array/values":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.object.to-string"],"core-js/stable/array/virtual/at":["es.array.at"],"core-js/stable/array/virtual/concat":["es.array.concat"],"core-js/stable/array/virtual/copy-within":["es.array.copy-within"],"core-js/stable/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/every":["es.array.every"],"core-js/stable/array/virtual/fill":["es.array.fill"],"core-js/stable/array/virtual/filter":["es.array.filter"],"core-js/stable/array/virtual/find":["es.array.find"],"core-js/stable/array/virtual/find-index":["es.array.find-index"],"core-js/stable/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/virtual/for-each":["es.array.for-each"],"core-js/stable/array/virtual/includes":["es.array.includes"],"core-js/stable/array/virtual/index-of":["es.array.index-of"],"core-js/stable/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/join":["es.array.join"],"core-js/stable/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/stable/array/virtual/map":["es.array.map"],"core-js/stable/array/virtual/reduce":["es.array.reduce"],"core-js/stable/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/stable/array/virtual/reverse":["es.array.reverse"],"core-js/stable/array/virtual/slice":["es.array.slice"],"core-js/stable/array/virtual/some":["es.array.some"],"core-js/stable/array/virtual/sort":["es.array.sort"],"core-js/stable/array/virtual/splice":["es.array.splice"],"core-js/stable/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/stable/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/clear-immediate":["web.immediate"],"core-js/stable/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.object.to-string"],"core-js/stable/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/stable/date/get-year":["es.date.get-year"],"core-js/stable/date/now":["es.date.now"],"core-js/stable/date/set-year":["es.date.set-year"],"core-js/stable/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/stable/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/stable/date/to-json":["es.date.to-json"],"core-js/stable/date/to-primitive":["es.date.to-primitive"],"core-js/stable/date/to-string":["es.date.to-string"],"core-js/stable/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/stable/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/stable/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/stable/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/stable/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/stable/error":["es.error.cause","es.error.to-string"],"core-js/stable/error/constructor":["es.error.cause"],"core-js/stable/error/to-string":["es.error.to-string"],"core-js/stable/escape":["es.escape"],"core-js/stable/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/stable/function/bind":["es.function.bind"],"core-js/stable/function/has-instance":["es.function.has-instance"],"core-js/stable/function/name":["es.function.name"],"core-js/stable/function/virtual":["es.function.bind"],"core-js/stable/function/virtual/bind":["es.function.bind"],"core-js/stable/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/global-this":["es.global-this"],"core-js/stable/instance/at":["es.array.at","es.string.at-alternative"],"core-js/stable/instance/bind":["es.function.bind"],"core-js/stable/instance/code-point-at":["es.string.code-point-at"],"core-js/stable/instance/concat":["es.array.concat"],"core-js/stable/instance/copy-within":["es.array.copy-within"],"core-js/stable/instance/ends-with":["es.string.ends-with"],"core-js/stable/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/every":["es.array.every"],"core-js/stable/instance/fill":["es.array.fill"],"core-js/stable/instance/filter":["es.array.filter"],"core-js/stable/instance/find":["es.array.find"],"core-js/stable/instance/find-index":["es.array.find-index"],"core-js/stable/instance/flags":["es.regexp.flags"],"core-js/stable/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/instance/for-each":["es.array.for-each","web.dom-collections.iterator"],"core-js/stable/instance/includes":["es.array.includes","es.string.includes"],"core-js/stable/instance/index-of":["es.array.index-of"],"core-js/stable/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/last-index-of":["es.array.last-index-of"],"core-js/stable/instance/map":["es.array.map"],"core-js/stable/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/instance/pad-end":["es.string.pad-end"],"core-js/stable/instance/pad-start":["es.string.pad-start"],"core-js/stable/instance/reduce":["es.array.reduce"],"core-js/stable/instance/reduce-right":["es.array.reduce-right"],"core-js/stable/instance/repeat":["es.string.repeat"],"core-js/stable/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/instance/reverse":["es.array.reverse"],"core-js/stable/instance/slice":["es.array.slice"],"core-js/stable/instance/some":["es.array.some"],"core-js/stable/instance/sort":["es.array.sort"],"core-js/stable/instance/splice":["es.array.splice"],"core-js/stable/instance/starts-with":["es.string.starts-with"],"core-js/stable/instance/trim":["es.string.trim"],"core-js/stable/instance/trim-end":["es.string.trim-end"],"core-js/stable/instance/trim-left":["es.string.trim-start"],"core-js/stable/instance/trim-right":["es.string.trim-end"],"core-js/stable/instance/trim-start":["es.string.trim-start"],"core-js/stable/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/json":["es.json.stringify","es.json.to-string-tag"],"core-js/stable/json/stringify":["es.json.stringify"],"core-js/stable/json/to-string-tag":["es.json.to-string-tag"],"core-js/stable/map":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/math":["es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/stable/math/acosh":["es.math.acosh"],"core-js/stable/math/asinh":["es.math.asinh"],"core-js/stable/math/atanh":["es.math.atanh"],"core-js/stable/math/cbrt":["es.math.cbrt"],"core-js/stable/math/clz32":["es.math.clz32"],"core-js/stable/math/cosh":["es.math.cosh"],"core-js/stable/math/expm1":["es.math.expm1"],"core-js/stable/math/fround":["es.math.fround"],"core-js/stable/math/hypot":["es.math.hypot"],"core-js/stable/math/imul":["es.math.imul"],"core-js/stable/math/log10":["es.math.log10"],"core-js/stable/math/log1p":["es.math.log1p"],"core-js/stable/math/log2":["es.math.log2"],"core-js/stable/math/sign":["es.math.sign"],"core-js/stable/math/sinh":["es.math.sinh"],"core-js/stable/math/tanh":["es.math.tanh"],"core-js/stable/math/to-string-tag":["es.math.to-string-tag"],"core-js/stable/math/trunc":["es.math.trunc"],"core-js/stable/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/constructor":["es.number.constructor"],"core-js/stable/number/epsilon":["es.number.epsilon"],"core-js/stable/number/is-finite":["es.number.is-finite"],"core-js/stable/number/is-integer":["es.number.is-integer"],"core-js/stable/number/is-nan":["es.number.is-nan"],"core-js/stable/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/stable/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/stable/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/stable/number/parse-float":["es.number.parse-float"],"core-js/stable/number/parse-int":["es.number.parse-int"],"core-js/stable/number/to-exponential":["es.number.to-exponential"],"core-js/stable/number/to-fixed":["es.number.to-fixed"],"core-js/stable/number/to-precision":["es.number.to-precision"],"core-js/stable/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/stable/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/stable/number/virtual/to-precision":["es.number.to-precision"],"core-js/stable/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/object/assign":["es.object.assign"],"core-js/stable/object/create":["es.object.create"],"core-js/stable/object/define-getter":["es.object.define-getter"],"core-js/stable/object/define-properties":["es.object.define-properties"],"core-js/stable/object/define-property":["es.object.define-property"],"core-js/stable/object/define-setter":["es.object.define-setter"],"core-js/stable/object/entries":["es.object.entries"],"core-js/stable/object/freeze":["es.object.freeze"],"core-js/stable/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/stable/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/stable/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/stable/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/stable/object/get-own-property-symbols":["es.symbol"],"core-js/stable/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/stable/object/has-own":["es.object.has-own"],"core-js/stable/object/is":["es.object.is"],"core-js/stable/object/is-extensible":["es.object.is-extensible"],"core-js/stable/object/is-frozen":["es.object.is-frozen"],"core-js/stable/object/is-sealed":["es.object.is-sealed"],"core-js/stable/object/keys":["es.object.keys"],"core-js/stable/object/lookup-getter":["es.object.lookup-getter"],"core-js/stable/object/lookup-setter":["es.object.lookup-setter"],"core-js/stable/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/stable/object/seal":["es.object.seal"],"core-js/stable/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/stable/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/object/values":["es.object.values"],"core-js/stable/parse-float":["es.parse-float"],"core-js/stable/parse-int":["es.parse-int"],"core-js/stable/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/stable/queue-microtask":["web.queue-microtask"],"core-js/stable/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/stable/reflect/apply":["es.reflect.apply"],"core-js/stable/reflect/construct":["es.reflect.construct"],"core-js/stable/reflect/define-property":["es.reflect.define-property"],"core-js/stable/reflect/delete-property":["es.reflect.delete-property"],"core-js/stable/reflect/get":["es.reflect.get"],"core-js/stable/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/stable/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/stable/reflect/has":["es.reflect.has"],"core-js/stable/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/stable/reflect/own-keys":["es.reflect.own-keys"],"core-js/stable/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/stable/reflect/set":["es.reflect.set"],"core-js/stable/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/stable/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/stable/regexp":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/stable/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/stable/regexp/flags":["es.regexp.flags"],"core-js/stable/regexp/match":["es.regexp.exec","es.string.match"],"core-js/stable/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/regexp/search":["es.regexp.exec","es.string.search"],"core-js/stable/regexp/split":["es.regexp.exec","es.string.split"],"core-js/stable/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/stable/regexp/to-string":["es.regexp.to-string"],"core-js/stable/set":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/set-immediate":["web.immediate"],"core-js/stable/set-interval":["web.timers"],"core-js/stable/set-timeout":["web.timers"],"core-js/stable/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/anchor":["es.string.anchor"],"core-js/stable/string/at":["es.string.at-alternative"],"core-js/stable/string/big":["es.string.big"],"core-js/stable/string/blink":["es.string.blink"],"core-js/stable/string/bold":["es.string.bold"],"core-js/stable/string/code-point-at":["es.string.code-point-at"],"core-js/stable/string/ends-with":["es.string.ends-with"],"core-js/stable/string/fixed":["es.string.fixed"],"core-js/stable/string/fontcolor":["es.string.fontcolor"],"core-js/stable/string/fontsize":["es.string.fontsize"],"core-js/stable/string/from-code-point":["es.string.from-code-point"],"core-js/stable/string/includes":["es.string.includes"],"core-js/stable/string/italics":["es.string.italics"],"core-js/stable/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/link":["es.string.link"],"core-js/stable/string/match":["es.regexp.exec","es.string.match"],"core-js/stable/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/pad-end":["es.string.pad-end"],"core-js/stable/string/pad-start":["es.string.pad-start"],"core-js/stable/string/raw":["es.string.raw"],"core-js/stable/string/repeat":["es.string.repeat"],"core-js/stable/string/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/search":["es.regexp.exec","es.string.search"],"core-js/stable/string/small":["es.string.small"],"core-js/stable/string/split":["es.regexp.exec","es.string.split"],"core-js/stable/string/starts-with":["es.string.starts-with"],"core-js/stable/string/strike":["es.string.strike"],"core-js/stable/string/sub":["es.string.sub"],"core-js/stable/string/substr":["es.string.substr"],"core-js/stable/string/sup":["es.string.sup"],"core-js/stable/string/trim":["es.string.trim"],"core-js/stable/string/trim-end":["es.string.trim-end"],"core-js/stable/string/trim-left":["es.string.trim-start"],"core-js/stable/string/trim-right":["es.string.trim-end"],"core-js/stable/string/trim-start":["es.string.trim-start"],"core-js/stable/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/virtual/anchor":["es.string.anchor"],"core-js/stable/string/virtual/at":["es.string.at-alternative"],"core-js/stable/string/virtual/big":["es.string.big"],"core-js/stable/string/virtual/blink":["es.string.blink"],"core-js/stable/string/virtual/bold":["es.string.bold"],"core-js/stable/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/stable/string/virtual/ends-with":["es.string.ends-with"],"core-js/stable/string/virtual/fixed":["es.string.fixed"],"core-js/stable/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/stable/string/virtual/fontsize":["es.string.fontsize"],"core-js/stable/string/virtual/includes":["es.string.includes"],"core-js/stable/string/virtual/italics":["es.string.italics"],"core-js/stable/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/virtual/link":["es.string.link"],"core-js/stable/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/virtual/pad-end":["es.string.pad-end"],"core-js/stable/string/virtual/pad-start":["es.string.pad-start"],"core-js/stable/string/virtual/repeat":["es.string.repeat"],"core-js/stable/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/virtual/small":["es.string.small"],"core-js/stable/string/virtual/starts-with":["es.string.starts-with"],"core-js/stable/string/virtual/strike":["es.string.strike"],"core-js/stable/string/virtual/sub":["es.string.sub"],"core-js/stable/string/virtual/substr":["es.string.substr"],"core-js/stable/string/virtual/sup":["es.string.sup"],"core-js/stable/string/virtual/trim":["es.string.trim"],"core-js/stable/string/virtual/trim-end":["es.string.trim-end"],"core-js/stable/string/virtual/trim-left":["es.string.trim-start"],"core-js/stable/string/virtual/trim-right":["es.string.trim-end"],"core-js/stable/string/virtual/trim-start":["es.string.trim-start"],"core-js/stable/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/stable/symbol":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/stable/symbol/description":["es.symbol.description"],"core-js/stable/symbol/for":["es.symbol"],"core-js/stable/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/stable/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/stable/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/symbol/key-for":["es.symbol"],"core-js/stable/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/stable/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/stable/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/stable/symbol/species":["es.symbol.species"],"core-js/stable/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/stable/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/stable/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/symbol/unscopables":["es.symbol.unscopables"],"core-js/stable/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/at":["es.typed-array.at"],"core-js/stable/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/stable/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/every":["es.typed-array.every"],"core-js/stable/typed-array/fill":["es.typed-array.fill"],"core-js/stable/typed-array/filter":["es.typed-array.filter"],"core-js/stable/typed-array/find":["es.typed-array.find"],"core-js/stable/typed-array/find-index":["es.typed-array.find-index"],"core-js/stable/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/for-each":["es.typed-array.for-each"],"core-js/stable/typed-array/from":["es.typed-array.from"],"core-js/stable/typed-array/includes":["es.typed-array.includes"],"core-js/stable/typed-array/index-of":["es.typed-array.index-of"],"core-js/stable/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/join":["es.typed-array.join"],"core-js/stable/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/stable/typed-array/map":["es.typed-array.map"],"core-js/stable/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/of":["es.typed-array.of"],"core-js/stable/typed-array/reduce":["es.typed-array.reduce"],"core-js/stable/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/stable/typed-array/reverse":["es.typed-array.reverse"],"core-js/stable/typed-array/set":["es.typed-array.set"],"core-js/stable/typed-array/slice":["es.typed-array.slice"],"core-js/stable/typed-array/some":["es.typed-array.some"],"core-js/stable/typed-array/sort":["es.typed-array.sort"],"core-js/stable/typed-array/subarray":["es.typed-array.subarray"],"core-js/stable/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/stable/typed-array/to-string":["es.typed-array.to-string"],"core-js/stable/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string"],"core-js/stable/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/unescape":["es.unescape"],"core-js/stable/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/stable/url-search-params":["web.dom-collections.iterator","web.url-search-params"],"core-js/stable/url/to-json":["web.url.to-json"],"core-js/stable/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","web.dom-collections.iterator"],"core-js/stable/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/stage":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/stage/0":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/stage/1":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of"],"core-js/stage/2":["es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.emplace","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.set.difference","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.symmetric-difference","esnext.set.union","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.weak-map.emplace"],"core-js/stage/3":["es.string.at-alternative","esnext.aggregate-error","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.global-this","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.string.match-all","esnext.string.replace-all","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/stage/4":["es.string.at-alternative","esnext.aggregate-error","esnext.array.at","esnext.global-this","esnext.object.has-own","esnext.promise.all-settled","esnext.promise.any","esnext.string.match-all","esnext.string.replace-all","esnext.typed-array.at"],"core-js/stage/pre":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.to-json","web.url-search-params"],"core-js/web":["web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"],"core-js/web/dom-collections":["web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/web/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/web/immediate":["web.immediate"],"core-js/web/queue-microtask":["web.queue-microtask"],"core-js/web/structured-clone":["es.array.iterator","es.map","es.object.to-string","es.set","web.structured-clone"],"core-js/web/timers":["web.timers"],"core-js/web/url":["web.url","web.url.to-json","web.url-search-params"],"core-js/web/url-search-params":["web.url-search-params"]}')},4232:e=>{"use strict";e.exports=JSON.parse('{"3.0":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.now","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.function.bind","es.function.has-instance","es.function.name","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.regexp.constructor","es.regexp.exec","es.regexp.flags","es.regexp.to-string","es.set","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.search","es.string.split","es.string.starts-with","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.last-index","esnext.array.last-item","esnext.composite-key","esnext.composite-symbol","esnext.global-this","esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.dispose","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.for-each","web.dom-collections.iterator","web.immediate","web.queue-microtask","web.timers","web.url","web.url.to-json","web.url-search-params"],"3.1":["es.string.match-all","es.symbol.match-all","esnext.symbol.replace-all"],"3.2":["es.promise.all-settled","esnext.array.is-template-object","esnext.map.update-or-insert","esnext.symbol.async-dispose"],"3.3":["es.global-this","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.map.upsert","esnext.weak-map.upsert"],"3.4":["es.json.stringify"],"3.5":["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],"3.6":["es.regexp.sticky","es.regexp.test"],"3.7":["es.aggregate-error","es.promise.any","es.reflect.to-string-tag","es.string.replace-all","esnext.map.emplace","esnext.weak-map.emplace"],"3.8":["esnext.array.at","esnext.array.filter-out","esnext.array.unique-by","esnext.bigint.range","esnext.number.range","esnext.typed-array.at","esnext.typed-array.filter-out"],"3.9":["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.unique-by"],"3.11":["esnext.object.has-own"],"3.12":["esnext.symbol.matcher","esnext.symbol.metadata"],"3.15":["es.date.get-year","es.date.set-year","es.date.to-gmt-string","es.escape","es.regexp.dot-all","es.string.substr","es.unescape"],"3.16":["esnext.array.filter-reject","esnext.array.group-by","esnext.typed-array.filter-reject","esnext.typed-array.group-by"],"3.17":["es.array.at","es.object.has-own","es.string.at-alternative","es.typed-array.at"],"3.18":["esnext.array.from-async","esnext.typed-array.from-async"],"3.20":["es.error.cause","es.error.to-string","es.aggregate-error.cause","es.number.to-exponential","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.iterator.to-async","esnext.string.cooked","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"3.21":["web.atob","web.btoa"]}')},1335:e=>{"use strict";e.exports=JSON.parse('["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.json.stringify","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.unescape","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.structured-clone","web.timers","web.url","web.url.to-json","web.url-search-params"]')},3348:e=>{"use strict";e.exports={i8:"5.1.1"}},7137:e=>{"use strict";e.exports=JSON.parse('{"AssignmentExpression":["left","right"],"AssignmentPattern":["left","right"],"ArrayExpression":["elements"],"ArrayPattern":["elements"],"ArrowFunctionExpression":["params","body"],"AwaitExpression":["argument"],"BlockStatement":["body"],"BinaryExpression":["left","right"],"BreakStatement":["label"],"CallExpression":["callee","arguments"],"CatchClause":["param","body"],"ChainExpression":["expression"],"ClassBody":["body"],"ClassDeclaration":["id","superClass","body"],"ClassExpression":["id","superClass","body"],"ConditionalExpression":["test","consequent","alternate"],"ContinueStatement":["label"],"DebuggerStatement":[],"DoWhileStatement":["body","test"],"EmptyStatement":[],"ExportAllDeclaration":["exported","source"],"ExportDefaultDeclaration":["declaration"],"ExportNamedDeclaration":["declaration","specifiers","source"],"ExportSpecifier":["exported","local"],"ExpressionStatement":["expression"],"ExperimentalRestProperty":["argument"],"ExperimentalSpreadProperty":["argument"],"ForStatement":["init","test","update","body"],"ForInStatement":["left","right","body"],"ForOfStatement":["left","right","body"],"FunctionDeclaration":["id","params","body"],"FunctionExpression":["id","params","body"],"Identifier":[],"IfStatement":["test","consequent","alternate"],"ImportDeclaration":["specifiers","source"],"ImportDefaultSpecifier":["local"],"ImportExpression":["source"],"ImportNamespaceSpecifier":["local"],"ImportSpecifier":["imported","local"],"JSXAttribute":["name","value"],"JSXClosingElement":["name"],"JSXElement":["openingElement","children","closingElement"],"JSXEmptyExpression":[],"JSXExpressionContainer":["expression"],"JSXIdentifier":[],"JSXMemberExpression":["object","property"],"JSXNamespacedName":["namespace","name"],"JSXOpeningElement":["name","attributes"],"JSXSpreadAttribute":["argument"],"JSXText":[],"JSXFragment":["openingFragment","children","closingFragment"],"Literal":[],"LabeledStatement":["label","body"],"LogicalExpression":["left","right"],"MemberExpression":["object","property"],"MetaProperty":["meta","property"],"MethodDefinition":["key","value"],"NewExpression":["callee","arguments"],"ObjectExpression":["properties"],"ObjectPattern":["properties"],"PrivateIdentifier":[],"Program":["body"],"Property":["key","value"],"PropertyDefinition":["key","value"],"RestElement":["argument"],"ReturnStatement":["argument"],"SequenceExpression":["expressions"],"SpreadElement":["argument"],"Super":[],"SwitchStatement":["discriminant","cases"],"SwitchCase":["test","consequent"],"TaggedTemplateExpression":["tag","quasi"],"TemplateElement":[],"TemplateLiteral":["quasis","expressions"],"ThisExpression":[],"ThrowStatement":["argument"],"TryStatement":["block","handler","finalizer"],"UnaryExpression":["argument"],"UpdateExpression":["argument"],"VariableDeclaration":["declarations"],"VariableDeclarator":["id","init"],"WhileStatement":["test","body"],"WithStatement":["object","body"],"YieldExpression":["argument"]}')},4378:e=>{"use strict";e.exports={i8:"7.32.0"}},4730:e=>{"use strict";e.exports={version:"4.3.0"}},1752:e=>{"use strict";e.exports={i8:"4.3.0"}},3676:e=>{"use strict";e.exports=JSON.parse('{"builtin":{"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es5":{"Array":false,"Boolean":false,"constructor":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"propertyIsEnumerable":false,"RangeError":false,"ReferenceError":false,"RegExp":false,"String":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false},"es2015":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2017":{"Array":false,"ArrayBuffer":false,"Atomics":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"browser":{"AbortController":false,"AbortSignal":false,"addEventListener":false,"alert":false,"AnalyserNode":false,"Animation":false,"AnimationEffectReadOnly":false,"AnimationEffectTiming":false,"AnimationEffectTimingReadOnly":false,"AnimationEvent":false,"AnimationPlaybackEvent":false,"AnimationTimeline":false,"applicationCache":false,"ApplicationCache":false,"ApplicationCacheErrorEvent":false,"atob":false,"Attr":false,"Audio":false,"AudioBuffer":false,"AudioBufferSourceNode":false,"AudioContext":false,"AudioDestinationNode":false,"AudioListener":false,"AudioNode":false,"AudioParam":false,"AudioProcessingEvent":false,"AudioScheduledSourceNode":false,"AudioWorkletGlobalScope ":false,"AudioWorkletNode":false,"AudioWorkletProcessor":false,"BarProp":false,"BaseAudioContext":false,"BatteryManager":false,"BeforeUnloadEvent":false,"BiquadFilterNode":false,"Blob":false,"BlobEvent":false,"blur":false,"BroadcastChannel":false,"btoa":false,"BudgetService":false,"ByteLengthQueuingStrategy":false,"Cache":false,"caches":false,"CacheStorage":false,"cancelAnimationFrame":false,"cancelIdleCallback":false,"CanvasCaptureMediaStreamTrack":false,"CanvasGradient":false,"CanvasPattern":false,"CanvasRenderingContext2D":false,"ChannelMergerNode":false,"ChannelSplitterNode":false,"CharacterData":false,"clearInterval":false,"clearTimeout":false,"clientInformation":false,"ClipboardEvent":false,"close":false,"closed":false,"CloseEvent":false,"Comment":false,"CompositionEvent":false,"confirm":false,"console":false,"ConstantSourceNode":false,"ConvolverNode":false,"CountQueuingStrategy":false,"createImageBitmap":false,"Credential":false,"CredentialsContainer":false,"crypto":false,"Crypto":false,"CryptoKey":false,"CSS":false,"CSSConditionRule":false,"CSSFontFaceRule":false,"CSSGroupingRule":false,"CSSImportRule":false,"CSSKeyframeRule":false,"CSSKeyframesRule":false,"CSSMediaRule":false,"CSSNamespaceRule":false,"CSSPageRule":false,"CSSRule":false,"CSSRuleList":false,"CSSStyleDeclaration":false,"CSSStyleRule":false,"CSSStyleSheet":false,"CSSSupportsRule":false,"CustomElementRegistry":false,"customElements":false,"CustomEvent":false,"DataTransfer":false,"DataTransferItem":false,"DataTransferItemList":false,"defaultstatus":false,"defaultStatus":false,"DelayNode":false,"DeviceMotionEvent":false,"DeviceOrientationEvent":false,"devicePixelRatio":false,"dispatchEvent":false,"document":false,"Document":false,"DocumentFragment":false,"DocumentType":false,"DOMError":false,"DOMException":false,"DOMImplementation":false,"DOMMatrix":false,"DOMMatrixReadOnly":false,"DOMParser":false,"DOMPoint":false,"DOMPointReadOnly":false,"DOMQuad":false,"DOMRect":false,"DOMRectReadOnly":false,"DOMStringList":false,"DOMStringMap":false,"DOMTokenList":false,"DragEvent":false,"DynamicsCompressorNode":false,"Element":false,"ErrorEvent":false,"event":false,"Event":false,"EventSource":false,"EventTarget":false,"external":false,"fetch":false,"File":false,"FileList":false,"FileReader":false,"find":false,"focus":false,"FocusEvent":false,"FontFace":false,"FontFaceSetLoadEvent":false,"FormData":false,"frameElement":false,"frames":false,"GainNode":false,"Gamepad":false,"GamepadButton":false,"GamepadEvent":false,"getComputedStyle":false,"getSelection":false,"HashChangeEvent":false,"Headers":false,"history":false,"History":false,"HTMLAllCollection":false,"HTMLAnchorElement":false,"HTMLAreaElement":false,"HTMLAudioElement":false,"HTMLBaseElement":false,"HTMLBodyElement":false,"HTMLBRElement":false,"HTMLButtonElement":false,"HTMLCanvasElement":false,"HTMLCollection":false,"HTMLContentElement":false,"HTMLDataElement":false,"HTMLDataListElement":false,"HTMLDetailsElement":false,"HTMLDialogElement":false,"HTMLDirectoryElement":false,"HTMLDivElement":false,"HTMLDListElement":false,"HTMLDocument":false,"HTMLElement":false,"HTMLEmbedElement":false,"HTMLFieldSetElement":false,"HTMLFontElement":false,"HTMLFormControlsCollection":false,"HTMLFormElement":false,"HTMLFrameElement":false,"HTMLFrameSetElement":false,"HTMLHeadElement":false,"HTMLHeadingElement":false,"HTMLHRElement":false,"HTMLHtmlElement":false,"HTMLIFrameElement":false,"HTMLImageElement":false,"HTMLInputElement":false,"HTMLLabelElement":false,"HTMLLegendElement":false,"HTMLLIElement":false,"HTMLLinkElement":false,"HTMLMapElement":false,"HTMLMarqueeElement":false,"HTMLMediaElement":false,"HTMLMenuElement":false,"HTMLMetaElement":false,"HTMLMeterElement":false,"HTMLModElement":false,"HTMLObjectElement":false,"HTMLOListElement":false,"HTMLOptGroupElement":false,"HTMLOptionElement":false,"HTMLOptionsCollection":false,"HTMLOutputElement":false,"HTMLParagraphElement":false,"HTMLParamElement":false,"HTMLPictureElement":false,"HTMLPreElement":false,"HTMLProgressElement":false,"HTMLQuoteElement":false,"HTMLScriptElement":false,"HTMLSelectElement":false,"HTMLShadowElement":false,"HTMLSlotElement":false,"HTMLSourceElement":false,"HTMLSpanElement":false,"HTMLStyleElement":false,"HTMLTableCaptionElement":false,"HTMLTableCellElement":false,"HTMLTableColElement":false,"HTMLTableElement":false,"HTMLTableRowElement":false,"HTMLTableSectionElement":false,"HTMLTemplateElement":false,"HTMLTextAreaElement":false,"HTMLTimeElement":false,"HTMLTitleElement":false,"HTMLTrackElement":false,"HTMLUListElement":false,"HTMLUnknownElement":false,"HTMLVideoElement":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"IdleDeadline":false,"IIRFilterNode":false,"Image":false,"ImageBitmap":false,"ImageBitmapRenderingContext":false,"ImageCapture":false,"ImageData":false,"indexedDB":false,"innerHeight":false,"innerWidth":false,"InputEvent":false,"IntersectionObserver":false,"IntersectionObserverEntry":false,"Intl":false,"isSecureContext":false,"KeyboardEvent":false,"KeyframeEffect":false,"KeyframeEffectReadOnly":false,"length":false,"localStorage":false,"location":true,"Location":false,"locationbar":false,"matchMedia":false,"MediaDeviceInfo":false,"MediaDevices":false,"MediaElementAudioSourceNode":false,"MediaEncryptedEvent":false,"MediaError":false,"MediaKeyMessageEvent":false,"MediaKeySession":false,"MediaKeyStatusMap":false,"MediaKeySystemAccess":false,"MediaList":false,"MediaQueryList":false,"MediaQueryListEvent":false,"MediaRecorder":false,"MediaSettingsRange":false,"MediaSource":false,"MediaStream":false,"MediaStreamAudioDestinationNode":false,"MediaStreamAudioSourceNode":false,"MediaStreamEvent":false,"MediaStreamTrack":false,"MediaStreamTrackEvent":false,"menubar":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"MIDIAccess":false,"MIDIConnectionEvent":false,"MIDIInput":false,"MIDIInputMap":false,"MIDIMessageEvent":false,"MIDIOutput":false,"MIDIOutputMap":false,"MIDIPort":false,"MimeType":false,"MimeTypeArray":false,"MouseEvent":false,"moveBy":false,"moveTo":false,"MutationEvent":false,"MutationObserver":false,"MutationRecord":false,"name":false,"NamedNodeMap":false,"NavigationPreloadManager":false,"navigator":false,"Navigator":false,"NetworkInformation":false,"Node":false,"NodeFilter":false,"NodeIterator":false,"NodeList":false,"Notification":false,"OfflineAudioCompletionEvent":false,"OfflineAudioContext":false,"offscreenBuffering":false,"OffscreenCanvas":true,"onabort":true,"onafterprint":true,"onanimationend":true,"onanimationiteration":true,"onanimationstart":true,"onappinstalled":true,"onauxclick":true,"onbeforeinstallprompt":true,"onbeforeprint":true,"onbeforeunload":true,"onblur":true,"oncancel":true,"oncanplay":true,"oncanplaythrough":true,"onchange":true,"onclick":true,"onclose":true,"oncontextmenu":true,"oncuechange":true,"ondblclick":true,"ondevicemotion":true,"ondeviceorientation":true,"ondeviceorientationabsolute":true,"ondrag":true,"ondragend":true,"ondragenter":true,"ondragleave":true,"ondragover":true,"ondragstart":true,"ondrop":true,"ondurationchange":true,"onemptied":true,"onended":true,"onerror":true,"onfocus":true,"ongotpointercapture":true,"onhashchange":true,"oninput":true,"oninvalid":true,"onkeydown":true,"onkeypress":true,"onkeyup":true,"onlanguagechange":true,"onload":true,"onloadeddata":true,"onloadedmetadata":true,"onloadstart":true,"onlostpointercapture":true,"onmessage":true,"onmessageerror":true,"onmousedown":true,"onmouseenter":true,"onmouseleave":true,"onmousemove":true,"onmouseout":true,"onmouseover":true,"onmouseup":true,"onmousewheel":true,"onoffline":true,"ononline":true,"onpagehide":true,"onpageshow":true,"onpause":true,"onplay":true,"onplaying":true,"onpointercancel":true,"onpointerdown":true,"onpointerenter":true,"onpointerleave":true,"onpointermove":true,"onpointerout":true,"onpointerover":true,"onpointerup":true,"onpopstate":true,"onprogress":true,"onratechange":true,"onrejectionhandled":true,"onreset":true,"onresize":true,"onscroll":true,"onsearch":true,"onseeked":true,"onseeking":true,"onselect":true,"onstalled":true,"onstorage":true,"onsubmit":true,"onsuspend":true,"ontimeupdate":true,"ontoggle":true,"ontransitionend":true,"onunhandledrejection":true,"onunload":true,"onvolumechange":true,"onwaiting":true,"onwheel":true,"open":false,"openDatabase":false,"opener":false,"Option":false,"origin":false,"OscillatorNode":false,"outerHeight":false,"outerWidth":false,"PageTransitionEvent":false,"pageXOffset":false,"pageYOffset":false,"PannerNode":false,"parent":false,"Path2D":false,"PaymentAddress":false,"PaymentRequest":false,"PaymentRequestUpdateEvent":false,"PaymentResponse":false,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceLongTaskTiming":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceNavigationTiming":false,"PerformanceObserver":false,"PerformanceObserverEntryList":false,"PerformancePaintTiming":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"PeriodicWave":false,"Permissions":false,"PermissionStatus":false,"personalbar":false,"PhotoCapabilities":false,"Plugin":false,"PluginArray":false,"PointerEvent":false,"PopStateEvent":false,"postMessage":false,"Presentation":false,"PresentationAvailability":false,"PresentationConnection":false,"PresentationConnectionAvailableEvent":false,"PresentationConnectionCloseEvent":false,"PresentationConnectionList":false,"PresentationReceiver":false,"PresentationRequest":false,"print":false,"ProcessingInstruction":false,"ProgressEvent":false,"PromiseRejectionEvent":false,"prompt":false,"PushManager":false,"PushSubscription":false,"PushSubscriptionOptions":false,"queueMicrotask":false,"RadioNodeList":false,"Range":false,"ReadableStream":false,"registerProcessor":false,"RemotePlayback":false,"removeEventListener":false,"Request":false,"requestAnimationFrame":false,"requestIdleCallback":false,"resizeBy":false,"ResizeObserver":false,"ResizeObserverEntry":false,"resizeTo":false,"Response":false,"RTCCertificate":false,"RTCDataChannel":false,"RTCDataChannelEvent":false,"RTCDtlsTransport":false,"RTCIceCandidate":false,"RTCIceGatherer":false,"RTCIceTransport":false,"RTCPeerConnection":false,"RTCPeerConnectionIceEvent":false,"RTCRtpContributingSource":false,"RTCRtpReceiver":false,"RTCRtpSender":false,"RTCSctpTransport":false,"RTCSessionDescription":false,"RTCStatsReport":false,"RTCTrackEvent":false,"screen":false,"Screen":false,"screenLeft":false,"ScreenOrientation":false,"screenTop":false,"screenX":false,"screenY":false,"ScriptProcessorNode":false,"scroll":false,"scrollbars":false,"scrollBy":false,"scrollTo":false,"scrollX":false,"scrollY":false,"SecurityPolicyViolationEvent":false,"Selection":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerRegistration":false,"sessionStorage":false,"setInterval":false,"setTimeout":false,"ShadowRoot":false,"SharedWorker":false,"SourceBuffer":false,"SourceBufferList":false,"speechSynthesis":false,"SpeechSynthesisEvent":false,"SpeechSynthesisUtterance":false,"StaticRange":false,"status":false,"statusbar":false,"StereoPannerNode":false,"stop":false,"Storage":false,"StorageEvent":false,"StorageManager":false,"styleMedia":false,"StyleSheet":false,"StyleSheetList":false,"SubtleCrypto":false,"SVGAElement":false,"SVGAngle":false,"SVGAnimatedAngle":false,"SVGAnimatedBoolean":false,"SVGAnimatedEnumeration":false,"SVGAnimatedInteger":false,"SVGAnimatedLength":false,"SVGAnimatedLengthList":false,"SVGAnimatedNumber":false,"SVGAnimatedNumberList":false,"SVGAnimatedPreserveAspectRatio":false,"SVGAnimatedRect":false,"SVGAnimatedString":false,"SVGAnimatedTransformList":false,"SVGAnimateElement":false,"SVGAnimateMotionElement":false,"SVGAnimateTransformElement":false,"SVGAnimationElement":false,"SVGCircleElement":false,"SVGClipPathElement":false,"SVGComponentTransferFunctionElement":false,"SVGDefsElement":false,"SVGDescElement":false,"SVGDiscardElement":false,"SVGElement":false,"SVGEllipseElement":false,"SVGFEBlendElement":false,"SVGFEColorMatrixElement":false,"SVGFEComponentTransferElement":false,"SVGFECompositeElement":false,"SVGFEConvolveMatrixElement":false,"SVGFEDiffuseLightingElement":false,"SVGFEDisplacementMapElement":false,"SVGFEDistantLightElement":false,"SVGFEDropShadowElement":false,"SVGFEFloodElement":false,"SVGFEFuncAElement":false,"SVGFEFuncBElement":false,"SVGFEFuncGElement":false,"SVGFEFuncRElement":false,"SVGFEGaussianBlurElement":false,"SVGFEImageElement":false,"SVGFEMergeElement":false,"SVGFEMergeNodeElement":false,"SVGFEMorphologyElement":false,"SVGFEOffsetElement":false,"SVGFEPointLightElement":false,"SVGFESpecularLightingElement":false,"SVGFESpotLightElement":false,"SVGFETileElement":false,"SVGFETurbulenceElement":false,"SVGFilterElement":false,"SVGForeignObjectElement":false,"SVGGElement":false,"SVGGeometryElement":false,"SVGGradientElement":false,"SVGGraphicsElement":false,"SVGImageElement":false,"SVGLength":false,"SVGLengthList":false,"SVGLinearGradientElement":false,"SVGLineElement":false,"SVGMarkerElement":false,"SVGMaskElement":false,"SVGMatrix":false,"SVGMetadataElement":false,"SVGMPathElement":false,"SVGNumber":false,"SVGNumberList":false,"SVGPathElement":false,"SVGPatternElement":false,"SVGPoint":false,"SVGPointList":false,"SVGPolygonElement":false,"SVGPolylineElement":false,"SVGPreserveAspectRatio":false,"SVGRadialGradientElement":false,"SVGRect":false,"SVGRectElement":false,"SVGScriptElement":false,"SVGSetElement":false,"SVGStopElement":false,"SVGStringList":false,"SVGStyleElement":false,"SVGSVGElement":false,"SVGSwitchElement":false,"SVGSymbolElement":false,"SVGTextContentElement":false,"SVGTextElement":false,"SVGTextPathElement":false,"SVGTextPositioningElement":false,"SVGTitleElement":false,"SVGTransform":false,"SVGTransformList":false,"SVGTSpanElement":false,"SVGUnitTypes":false,"SVGUseElement":false,"SVGViewElement":false,"TaskAttributionTiming":false,"Text":false,"TextDecoder":false,"TextEncoder":false,"TextEvent":false,"TextMetrics":false,"TextTrack":false,"TextTrackCue":false,"TextTrackCueList":false,"TextTrackList":false,"TimeRanges":false,"toolbar":false,"top":false,"Touch":false,"TouchEvent":false,"TouchList":false,"TrackEvent":false,"TransitionEvent":false,"TreeWalker":false,"UIEvent":false,"URL":false,"URLSearchParams":false,"ValidityState":false,"visualViewport":false,"VisualViewport":false,"VTTCue":false,"WaveShaperNode":false,"WebAssembly":false,"WebGL2RenderingContext":false,"WebGLActiveInfo":false,"WebGLBuffer":false,"WebGLContextEvent":false,"WebGLFramebuffer":false,"WebGLProgram":false,"WebGLQuery":false,"WebGLRenderbuffer":false,"WebGLRenderingContext":false,"WebGLSampler":false,"WebGLShader":false,"WebGLShaderPrecisionFormat":false,"WebGLSync":false,"WebGLTexture":false,"WebGLTransformFeedback":false,"WebGLUniformLocation":false,"WebGLVertexArrayObject":false,"WebSocket":false,"WheelEvent":false,"window":false,"Window":false,"Worker":false,"WritableStream":false,"XMLDocument":false,"XMLHttpRequest":false,"XMLHttpRequestEventTarget":false,"XMLHttpRequestUpload":false,"XMLSerializer":false,"XPathEvaluator":false,"XPathExpression":false,"XPathResult":false,"XSLTProcessor":false},"worker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"clearInterval":false,"clearTimeout":false,"close":true,"console":false,"fetch":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":true,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onlanguagechange":true,"onmessage":true,"onoffline":true,"ononline":true,"onrejectionhandled":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"removeEventListener":false,"Request":false,"Response":false,"self":true,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"node":{"__dirname":false,"__filename":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"exports":true,"global":false,"Intl":false,"module":false,"process":false,"queueMicrotask":false,"require":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"commonjs":{"exports":true,"global":false,"module":false,"require":false},"amd":{"define":false,"require":false},"mocha":{"after":false,"afterEach":false,"before":false,"beforeEach":false,"context":false,"describe":false,"it":false,"mocha":false,"run":false,"setup":false,"specify":false,"suite":false,"suiteSetup":false,"suiteTeardown":false,"teardown":false,"test":false,"xcontext":false,"xdescribe":false,"xit":false,"xspecify":false},"jasmine":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fail":false,"fdescribe":false,"fit":false,"it":false,"jasmine":false,"pending":false,"runs":false,"spyOn":false,"spyOnProperty":false,"waits":false,"waitsFor":false,"xdescribe":false,"xit":false},"jest":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fdescribe":false,"fit":false,"it":false,"jest":false,"pit":false,"require":false,"test":false,"xdescribe":false,"xit":false,"xtest":false},"qunit":{"asyncTest":false,"deepEqual":false,"equal":false,"expect":false,"module":false,"notDeepEqual":false,"notEqual":false,"notOk":false,"notPropEqual":false,"notStrictEqual":false,"ok":false,"propEqual":false,"QUnit":false,"raises":false,"start":false,"stop":false,"strictEqual":false,"test":false,"throws":false},"phantomjs":{"console":true,"exports":true,"phantom":true,"require":true,"WebPage":true},"couch":{"emit":false,"exports":false,"getRow":false,"log":false,"module":false,"provides":false,"require":false,"respond":false,"send":false,"start":false,"sum":false},"rhino":{"defineClass":false,"deserialize":false,"gc":false,"help":false,"importClass":false,"importPackage":false,"java":false,"load":false,"loadClass":false,"Packages":false,"print":false,"quit":false,"readFile":false,"readUrl":false,"runCommand":false,"seal":false,"serialize":false,"spawn":false,"sync":false,"toint32":false,"version":false},"nashorn":{"__DIR__":false,"__FILE__":false,"__LINE__":false,"com":false,"edu":false,"exit":false,"java":false,"Java":false,"javafx":false,"JavaImporter":false,"javax":false,"JSAdapter":false,"load":false,"loadWithNewGlobal":false,"org":false,"Packages":false,"print":false,"quit":false},"wsh":{"ActiveXObject":true,"Enumerator":true,"GetObject":true,"ScriptEngine":true,"ScriptEngineBuildVersion":true,"ScriptEngineMajorVersion":true,"ScriptEngineMinorVersion":true,"VBArray":true,"WScript":true,"WSH":true,"XDomainRequest":true},"jquery":{"$":false,"jQuery":false},"yui":{"YAHOO":false,"YAHOO_config":false,"YUI":false,"YUI_config":false},"shelljs":{"cat":false,"cd":false,"chmod":false,"config":false,"cp":false,"dirs":false,"echo":false,"env":false,"error":false,"exec":false,"exit":false,"find":false,"grep":false,"ln":false,"ls":false,"mkdir":false,"mv":false,"popd":false,"pushd":false,"pwd":false,"rm":false,"sed":false,"set":false,"target":false,"tempdir":false,"test":false,"touch":false,"which":false},"prototypejs":{"$":false,"$$":false,"$A":false,"$break":false,"$continue":false,"$F":false,"$H":false,"$R":false,"$w":false,"Abstract":false,"Ajax":false,"Autocompleter":false,"Builder":false,"Class":false,"Control":false,"Draggable":false,"Draggables":false,"Droppables":false,"Effect":false,"Element":false,"Enumerable":false,"Event":false,"Field":false,"Form":false,"Hash":false,"Insertion":false,"ObjectRange":false,"PeriodicalExecuter":false,"Position":false,"Prototype":false,"Scriptaculous":false,"Selector":false,"Sortable":false,"SortableObserver":false,"Sound":false,"Template":false,"Toggle":false,"Try":false},"meteor":{"_":false,"$":false,"Accounts":false,"AccountsClient":false,"AccountsCommon":false,"AccountsServer":false,"App":false,"Assets":false,"Blaze":false,"check":false,"Cordova":false,"DDP":false,"DDPRateLimiter":false,"DDPServer":false,"Deps":false,"EJSON":false,"Email":false,"HTTP":false,"Log":false,"Match":false,"Meteor":false,"Mongo":false,"MongoInternals":false,"Npm":false,"Package":false,"Plugin":false,"process":false,"Random":false,"ReactiveDict":false,"ReactiveVar":false,"Router":false,"ServiceConfiguration":false,"Session":false,"share":false,"Spacebars":false,"Template":false,"Tinytest":false,"Tracker":false,"UI":false,"Utils":false,"WebApp":false,"WebAppInternals":false},"mongo":{"_isWindows":false,"_rand":false,"BulkWriteResult":false,"cat":false,"cd":false,"connect":false,"db":false,"getHostName":false,"getMemInfo":false,"hostname":false,"ISODate":false,"listFiles":false,"load":false,"ls":false,"md5sumFile":false,"mkdir":false,"Mongo":false,"NumberInt":false,"NumberLong":false,"ObjectId":false,"PlanCache":false,"print":false,"printjson":false,"pwd":false,"quit":false,"removeFile":false,"rs":false,"sh":false,"UUID":false,"version":false,"WriteResult":false},"applescript":{"$":false,"Application":false,"Automation":false,"console":false,"delay":false,"Library":false,"ObjC":false,"ObjectSpecifier":false,"Path":false,"Progress":false,"Ref":false},"serviceworker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"CacheStorage":false,"clearInterval":false,"clearTimeout":false,"Client":false,"clients":false,"Clients":false,"close":true,"console":false,"ExtendableEvent":false,"ExtendableMessageEvent":false,"fetch":false,"FetchEvent":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":false,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onfetch":true,"oninstall":true,"onlanguagechange":true,"onmessage":true,"onmessageerror":true,"onnotificationclick":true,"onnotificationclose":true,"onoffline":true,"ononline":true,"onpush":true,"onpushsubscriptionchange":true,"onrejectionhandled":true,"onsync":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"registration":false,"removeEventListener":false,"Request":false,"Response":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerGlobalScope":false,"ServiceWorkerMessageEvent":false,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"skipWaiting":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"WindowClient":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"atomtest":{"advanceClock":false,"fakeClearInterval":false,"fakeClearTimeout":false,"fakeSetInterval":false,"fakeSetTimeout":false,"resetTimeouts":false,"waitsForPromise":false},"embertest":{"andThen":false,"click":false,"currentPath":false,"currentRouteName":false,"currentURL":false,"fillIn":false,"find":false,"findAll":false,"findWithAssert":false,"keyEvent":false,"pauseTest":false,"resumeTest":false,"triggerEvent":false,"visit":false,"wait":false},"protractor":{"$":false,"$$":false,"browser":false,"by":false,"By":false,"DartObject":false,"element":false,"protractor":false},"shared-node-browser":{"clearInterval":false,"clearTimeout":false,"console":false,"setInterval":false,"setTimeout":false,"URL":false,"URLSearchParams":false},"webextensions":{"browser":false,"chrome":false,"opr":false},"greasemonkey":{"cloneInto":false,"createObjectIn":false,"exportFunction":false,"GM":false,"GM_addStyle":false,"GM_deleteValue":false,"GM_getResourceText":false,"GM_getResourceURL":false,"GM_getValue":false,"GM_info":false,"GM_listValues":false,"GM_log":false,"GM_openInTab":false,"GM_registerMenuCommand":false,"GM_setClipboard":false,"GM_setValue":false,"GM_xmlhttpRequest":false,"unsafeWindow":false},"devtools":{"$":false,"$_":false,"$$":false,"$0":false,"$1":false,"$2":false,"$3":false,"$4":false,"$x":false,"chrome":false,"clear":false,"copy":false,"debug":false,"dir":false,"dirxml":false,"getEventListeners":false,"inspect":false,"keys":false,"monitor":false,"monitorEvents":false,"profile":false,"profileEnd":false,"queryObjects":false,"table":false,"undebug":false,"unmonitor":false,"unmonitorEvents":false,"values":false}}')},9928:e=>{"use strict";e.exports=JSON.parse('{"assert":true,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16","async_hooks":">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],"buffer_ieee754":">= 0.5 && < 0.9.7","buffer":true,"node:buffer":[">= 14.18 && < 15",">= 16"],"child_process":true,"node:child_process":[">= 14.18 && < 15",">= 16"],"cluster":">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],"console":true,"node:console":[">= 14.18 && < 15",">= 16"],"constants":true,"node:constants":[">= 14.18 && < 15",">= 16"],"crypto":true,"node:crypto":[">= 14.18 && < 15",">= 16"],"_debug_agent":">= 1 && < 8","_debugger":"< 8","dgram":true,"node:dgram":[">= 14.18 && < 15",">= 16"],"diagnostics_channel":[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],"dns":true,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16","domain":">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],"events":true,"node:events":[">= 14.18 && < 15",">= 16"],"freelist":"< 6","fs":true,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],"_http_agent":">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],"_http_client":">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],"_http_common":">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],"_http_incoming":">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],"_http_outgoing":">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],"_http_server":">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],"http":true,"node:http":[">= 14.18 && < 15",">= 16"],"http2":">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],"https":true,"node:https":[">= 14.18 && < 15",">= 16"],"inspector":">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"_linklist":"< 8","module":true,"node:module":[">= 14.18 && < 15",">= 16"],"net":true,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12","os":true,"node:os":[">= 14.18 && < 15",">= 16"],"path":true,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16","perf_hooks":">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],"process":">= 1","node:process":[">= 14.18 && < 15",">= 16"],"punycode":">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],"querystring":true,"node:querystring":[">= 14.18 && < 15",">= 16"],"readline":true,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17","repl":true,"node:repl":[">= 14.18 && < 15",">= 16"],"smalloc":">= 0.11.5 && < 3","_stream_duplex":">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],"_stream_transform":">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],"_stream_wrap":">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],"_stream_passthrough":">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],"_stream_readable":">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],"_stream_writable":">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],"stream":true,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5","string_decoder":true,"node:string_decoder":[">= 14.18 && < 15",">= 16"],"sys":[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"node:test":">= 18","timers":true,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16","_tls_common":">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],"_tls_legacy":">= 0.11.3 && < 10","_tls_wrap":">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],"tls":true,"node:tls":[">= 14.18 && < 15",">= 16"],"trace_events":">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],"tty":true,"node:tty":[">= 14.18 && < 15",">= 16"],"url":true,"node:url":[">= 14.18 && < 15",">= 16"],"util":true,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8":">= 1","node:v8":[">= 14.18 && < 15",">= 16"],"vm":true,"node:vm":[">= 14.18 && < 15",">= 16"],"wasi":">= 13.4 && < 13.5","worker_threads":">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],"zlib":">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}')},7665:e=>{"use strict";e.exports=JSON.parse('{"assert":true,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16","async_hooks":">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],"buffer_ieee754":">= 0.5 && < 0.9.7","buffer":true,"node:buffer":[">= 14.18 && < 15",">= 16"],"child_process":true,"node:child_process":[">= 14.18 && < 15",">= 16"],"cluster":">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],"console":true,"node:console":[">= 14.18 && < 15",">= 16"],"constants":true,"node:constants":[">= 14.18 && < 15",">= 16"],"crypto":true,"node:crypto":[">= 14.18 && < 15",">= 16"],"_debug_agent":">= 1 && < 8","_debugger":"< 8","dgram":true,"node:dgram":[">= 14.18 && < 15",">= 16"],"diagnostics_channel":[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],"dns":true,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16","domain":">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],"events":true,"node:events":[">= 14.18 && < 15",">= 16"],"freelist":"< 6","fs":true,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],"_http_agent":">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],"_http_client":">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],"_http_common":">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],"_http_incoming":">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],"_http_outgoing":">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],"_http_server":">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],"http":true,"node:http":[">= 14.18 && < 15",">= 16"],"http2":">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],"https":true,"node:https":[">= 14.18 && < 15",">= 16"],"inspector":">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"_linklist":"< 8","module":true,"node:module":[">= 14.18 && < 15",">= 16"],"net":true,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12","os":true,"node:os":[">= 14.18 && < 15",">= 16"],"path":true,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16","perf_hooks":">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],"process":">= 1","node:process":[">= 14.18 && < 15",">= 16"],"punycode":">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],"querystring":true,"node:querystring":[">= 14.18 && < 15",">= 16"],"readline":true,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17","repl":true,"node:repl":[">= 14.18 && < 15",">= 16"],"smalloc":">= 0.11.5 && < 3","_stream_duplex":">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],"_stream_transform":">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],"_stream_wrap":">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],"_stream_passthrough":">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],"_stream_readable":">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],"_stream_writable":">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],"stream":true,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5","string_decoder":true,"node:string_decoder":[">= 14.18 && < 15",">= 16"],"sys":[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"timers":true,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16","_tls_common":">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],"_tls_legacy":">= 0.11.3 && < 10","_tls_wrap":">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],"tls":true,"node:tls":[">= 14.18 && < 15",">= 16"],"trace_events":">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],"tty":true,"node:tty":[">= 14.18 && < 15",">= 16"],"url":true,"node:url":[">= 14.18 && < 15",">= 16"],"util":true,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8":">= 1","node:v8":[">= 14.18 && < 15",">= 16"],"vm":true,"node:vm":[">= 14.18 && < 15",">= 16"],"wasi":">= 13.4 && < 13.5","worker_threads":">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],"zlib":">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}')}};var t={};function __nccwpck_require__(r){var s=t[r];if(s!==undefined){return s.exports}var a=t[r]={id:r,loaded:false,exports:{}};var n=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete t[r]}a.loaded=true;return a.exports}(()=>{__nccwpck_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(2076);module.exports=r})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/cjs.js b/packages/next/compiled/mini-css-extract-plugin/cjs.js index 98de23b5549b..0056ef466826 100644 --- a/packages/next/compiled/mini-css-extract-plugin/cjs.js +++ b/packages/next/compiled/mini-css-extract-plugin/cjs.js @@ -1 +1 @@ -(()=>{"use strict";var e={305:(e,r,_)=>{e.exports=_(717)["default"]},717:e=>{e.exports=require("./index.js")}};var r={};function __nccwpck_require__(_){var t=r[_];if(t!==undefined){return t.exports}var a=r[_]={exports:{}};var i=true;try{e[_](a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(305);module.exports=_})(); \ No newline at end of file +(()=>{"use strict";var e={471:(e,r,_)=>{e.exports=_(717)["default"]},717:e=>{e.exports=require("./index.js")}};var r={};function __nccwpck_require__(_){var t=r[_];if(t!==undefined){return t.exports}var a=r[_]={exports:{}};var i=true;try{e[_](a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(471);module.exports=_})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js b/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js index c289e0957c2e..6e4172917816 100644 --- a/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js +++ b/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js @@ -1 +1 @@ -(()=>{"use strict";var e={677:(e,r,t)=>{var n=t(996);var i=Object.create(null);var a=typeof document==="undefined";var o=Array.prototype.forEach;function debounce(e,r){var t=0;return function(){var n=this;var i=arguments;var a=function functionCall(){return e.apply(n,i)};clearTimeout(t);t=setTimeout(a,r)}}function noop(){}function getCurrentScriptUrl(e){var r=i[e];if(!r){if(document.currentScript){r=document.currentScript.src}else{var t=document.getElementsByTagName("script");var a=t[t.length-1];if(a){r=a.src}}i[e]=r}return function(e){if(!r){return null}var t=r.split(/([^\\/]+)\.js$/);var i=t&&t[1];if(!i){return[r.replace(".js",".css")]}if(!e){return[r.replace(".js",".css")]}return e.split(",").map((function(e){var t=new RegExp("".concat(i,"\\.js$"),"g");return n(r.replace(t,"".concat(e.replace(/{fileName}/g,i),".css")))}))}}function updateCss(e,r){if(!r){if(!e.href){return}r=e.href.split("?")[0]}if(!isUrlRequest(r)){return}if(e.isLoaded===false){return}if(!r||!(r.indexOf(".css")>-1)){return}e.visited=true;var t=e.cloneNode();t.isLoaded=false;t.addEventListener("load",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.addEventListener("error",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.href="".concat(r,"?").concat(Date.now());if(e.nextSibling){e.parentNode.insertBefore(t,e.nextSibling)}else{e.parentNode.appendChild(t)}}function getReloadUrl(e,r){var t;e=n(e,{stripWWW:false});r.some((function(n){if(e.indexOf(r)>-1){t=n}}));return t}function reloadStyle(e){if(!e){return false}var r=document.querySelectorAll("link");var t=false;o.call(r,(function(r){if(!r.href){return}var n=getReloadUrl(r.href,e);if(!isUrlRequest(n)){return}if(r.visited===true){return}if(n){updateCss(r,n);t=true}}));return t}function reloadAll(){var e=document.querySelectorAll("link");o.call(e,(function(e){if(e.visited===true){return}updateCss(e)}))}function isUrlRequest(e){if(!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)){return false}return true}e.exports=function(e,r){if(a){console.log("no window.document found, will not HMR CSS");return noop}var t=getCurrentScriptUrl(e);function update(){var e=t(r.filename);var n=reloadStyle(e);if(r.locals){console.log("[HMR] Detected local css modules. Reload all css");reloadAll();return}if(n){console.log("[HMR] css reload %s",e.join(" "))}else{console.log("[HMR] Reload all css");reloadAll()}}return debounce(update,50)}},996:e=>{function normalizeUrl(e){return e.reduce((function(e,r){switch(r){case"..":e.pop();break;case".":break;default:e.push(r)}return e}),[]).join("/")}e.exports=function(e){e=e.trim();if(/^data:/i.test(e)){return e}var r=e.indexOf("//")!==-1?e.split("//")[0]+"//":"";var t=e.replace(new RegExp(r,"i"),"").split("/");var n=t[0].toLowerCase().replace(/\.$/,"");t[0]="";var i=normalizeUrl(t);return r+n+i}}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var i=r[t]={exports:{}};var a=true;try{e[t](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(677);module.exports=t})(); \ No newline at end of file +(()=>{"use strict";var e={722:(e,r,t)=>{var n=t(121);var i=Object.create(null);var a=typeof document==="undefined";var o=Array.prototype.forEach;function debounce(e,r){var t=0;return function(){var n=this;var i=arguments;var a=function functionCall(){return e.apply(n,i)};clearTimeout(t);t=setTimeout(a,r)}}function noop(){}function getCurrentScriptUrl(e){var r=i[e];if(!r){if(document.currentScript){r=document.currentScript.src}else{var t=document.getElementsByTagName("script");var a=t[t.length-1];if(a){r=a.src}}i[e]=r}return function(e){if(!r){return null}var t=r.split(/([^\\/]+)\.js$/);var i=t&&t[1];if(!i){return[r.replace(".js",".css")]}if(!e){return[r.replace(".js",".css")]}return e.split(",").map((function(e){var t=new RegExp("".concat(i,"\\.js$"),"g");return n(r.replace(t,"".concat(e.replace(/{fileName}/g,i),".css")))}))}}function updateCss(e,r){if(!r){if(!e.href){return}r=e.href.split("?")[0]}if(!isUrlRequest(r)){return}if(e.isLoaded===false){return}if(!r||!(r.indexOf(".css")>-1)){return}e.visited=true;var t=e.cloneNode();t.isLoaded=false;t.addEventListener("load",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.addEventListener("error",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.href="".concat(r,"?").concat(Date.now());if(e.nextSibling){e.parentNode.insertBefore(t,e.nextSibling)}else{e.parentNode.appendChild(t)}}function getReloadUrl(e,r){var t;e=n(e,{stripWWW:false});r.some((function(n){if(e.indexOf(r)>-1){t=n}}));return t}function reloadStyle(e){if(!e){return false}var r=document.querySelectorAll("link");var t=false;o.call(r,(function(r){if(!r.href){return}var n=getReloadUrl(r.href,e);if(!isUrlRequest(n)){return}if(r.visited===true){return}if(n){updateCss(r,n);t=true}}));return t}function reloadAll(){var e=document.querySelectorAll("link");o.call(e,(function(e){if(e.visited===true){return}updateCss(e)}))}function isUrlRequest(e){if(!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)){return false}return true}e.exports=function(e,r){if(a){console.log("no window.document found, will not HMR CSS");return noop}var t=getCurrentScriptUrl(e);function update(){var e=t(r.filename);var n=reloadStyle(e);if(r.locals){console.log("[HMR] Detected local css modules. Reload all css");reloadAll();return}if(n){console.log("[HMR] css reload %s",e.join(" "))}else{console.log("[HMR] Reload all css");reloadAll()}}return debounce(update,50)}},121:e=>{function normalizeUrl(e){return e.reduce((function(e,r){switch(r){case"..":e.pop();break;case".":break;default:e.push(r)}return e}),[]).join("/")}e.exports=function(e){e=e.trim();if(/^data:/i.test(e)){return e}var r=e.indexOf("//")!==-1?e.split("//")[0]+"//":"";var t=e.replace(new RegExp(r,"i"),"").split("/");var n=t[0].toLowerCase().replace(/\.$/,"");t[0]="";var i=normalizeUrl(t);return r+n+i}}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var i=r[t]={exports:{}};var a=true;try{e[t](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(722);module.exports=t})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/index.js b/packages/next/compiled/mini-css-extract-plugin/index.js index 6e17f1e57a02..675159f92055 100644 --- a/packages/next/compiled/mini-css-extract-plugin/index.js +++ b/packages/next/compiled/mini-css-extract-plugin/index.js @@ -1 +1 @@ -(()=>{"use strict";var e={154:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var s=_interopRequireDefault(n(188));var i=_interopRequireDefault(n(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:n,chunkGraph:s}=e;for(const e of n){const n=typeof s!=="undefined"?s.getModuleId(e):e.id;if(n===t){return e}}return null}function evalModuleCode(e,t,n){const i=new s.default(n,e);i.paths=s.default._nodeModulePaths(e.context);i.filename=n;i._compile(t,n);return i.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const o="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=o;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return i.default.posix.isAbsolute(e)||i.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const n=t.split("!");const{context:s}=e;return JSON.stringify(n.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const n=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&s){r=i.default.relative(s,r);if(isAbsolutePath(r)){return r+n}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+n})).join("!"))}function getUndoPath(e,t,n){let s=-1;let i="";t=t.replace(/[\\/]$/,"");for(const n of e.split(/[/\\]+/)){if(n===".."){if(s>-1){s--}else{const e=t.lastIndexOf("/");const n=t.lastIndexOf("\\");const s=e<0?n:n<0?e:Math.max(e,n);if(s<0){return`${t}/`}i=`${t.slice(s+1)}/${i}`;t=t.slice(0,s)}}else if(n!=="."){s++}}return s>0?`${"../".repeat(s)}${i}`:n?`./${i}`:i}},188:e=>{e.exports=require("module")},476:e=>{e.exports=require("next/dist/compiled/schema-utils3")},17:e=>{e.exports=require("path")},910:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin options","type":"object","additionalProperties":false,"properties":{"filename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of each output CSS file.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#filename"},"chunkFilename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of non-entry chunk files.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#chunkfilename"},"experimentalUseImportModule":{"type":"boolean","description":"Enable the experimental importModule approach instead of using child compilers. This uses less memory and is faster.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#experimentaluseimportmodule"},"ignoreOrder":{"type":"boolean","description":"Remove Order Warnings.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#ignoreorder"},"insert":{"description":"Inserts the `link` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#insert","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"attributes":{"description":"Adds custom attributes to the `link` tag for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#attributes","type":"object"},"linkType":{"anyOf":[{"enum":["text/css"]},{"type":"boolean"}],"description":"This option allows loading asynchronous chunks with a custom link type","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#linktype"},"runtime":{"type":"boolean","description":"Enabled/Disables runtime generation. CSS will be still extracted and can be used for a custom loading methods.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#noRuntime"}}}')}};var t={};function __nccwpck_require__(n){var s=t[n];if(s!==undefined){return s.exports}var i=t[n]={exports:{}};var r=true;try{e[n](i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:true});e.pluginSymbol=e.pluginName=e["default"]=void 0;var t=__nccwpck_require__(476);var s=_interopRequireDefault(__nccwpck_require__(910));var i=__nccwpck_require__(154);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const r="mini-css-extract-plugin";e.pluginName=r;const o=Symbol(r);e.pluginSymbol=o;const a="[name].css";const u=new Set([i.MODULE_TYPE]);const l={sources:new Map,runtimeRequirements:new Set};const d=new WeakMap;const c=new WeakMap;const p=new WeakSet;class MiniCssExtractPlugin{static getCssModule(e){if(d.has(e)){return d.get(e)}class CssModule extends e.Module{constructor({context:e,identifier:t,identifierIndex:n,content:s,layer:r,supports:o,media:a,sourceMap:u,assets:l,assetsInfo:d}){super(i.MODULE_TYPE,e);this.id="";this._context=e;this._identifier=t;this._identifierIndex=n;this.content=s;this.layer=r;this.supports=o;this.media=a;this.sourceMap=u;this.assets=l;this.assetsInfo=d;this._needBuild=true}size(){return this.content.length}identifier(){return`css|${this._identifier}|${this._identifierIndex}`}readableIdentifier(e){return`css ${e.shorten(this._identifier)}${this._identifierIndex?` (${this._identifierIndex})`:""}`}getSourceTypes(){return u}codeGeneration(){return l}nameForCondition(){const e=this._identifier.split("!").pop();const t=e.indexOf("?");if(t>=0){return e.substring(0,t)}return e}updateCacheModule(e){if(this.content!==e.content||this.layer!==e.layer||this.supports!==e.supports||this.media!==e.media||this.sourceMap!==e.sourceMap||this.assets!==e.assets||this.assetsInfo!==e.assetsInfo){this._needBuild=true;this.content=e.content;this.layer=e.layer;this.supports=e.supports;this.media=e.media;this.sourceMap=e.sourceMap;this.assets=e.assets;this.assetsInfo=e.assetsInfo}}needRebuild(){return this._needBuild}needBuild(e,t){t(null,this._needBuild)}build(e,t,n,s,i){this.buildInfo={assets:this.assets,assetsInfo:this.assetsInfo,cacheable:true,hash:this._computeHash(t.outputOptions.hashFunction)};this.buildMeta={};this._needBuild=false;i()}_computeHash(t){const n=e.util.createHash(t);n.update(this.content);if(this.layer){n.update(this.layer)}n.update(this.supports||"");n.update(this.media||"");n.update(this.sourceMap||"");return n.digest("hex")}updateHash(e,t){super.updateHash(e,t);e.update(this.buildInfo.hash)}serialize(e){const{write:t}=e;t(this._context);t(this._identifier);t(this._identifierIndex);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.assets);t(this.assetsInfo);t(this._needBuild);super.serialize(e)}deserialize(e){this._needBuild=e.read();super.deserialize(e)}}d.set(e,CssModule);e.util.serialization.register(CssModule,"mini-css-extract-plugin/dist/CssModule",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=t();const s=t();const i=t();const r=t();const o=t();const a=t();const u=t();const l=t();const d=t();const c=t();const p=new CssModule({context:n,identifier:s,identifierIndex:i,content:r,layer:o,supports:a,media:u,sourceMap:l,assets:d,assetsInfo:c});p.deserialize(e);return p}});return CssModule}static getCssDependency(e){if(c.has(e)){return c.get(e)}class CssDependency extends e.Dependency{constructor({identifier:e,content:t,layer:n,supports:s,media:i,sourceMap:r},o,a){super();this.identifier=e;this.identifierIndex=a;this.content=t;this.layer=n;this.supports=s;this.media=i;this.sourceMap=r;this.context=o;this.assets=undefined;this.assetsInfo=undefined}getResourceIdentifier(){return`css-module-${this.identifier}-${this.identifierIndex}`}getModuleEvaluationSideEffectsState(){return e.ModuleGraphConnection.TRANSITIVE_ONLY}serialize(e){const{write:t}=e;t(this.identifier);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.context);t(this.identifierIndex);t(this.assets);t(this.assetsInfo);super.serialize(e)}deserialize(e){super.deserialize(e)}}c.set(e,CssDependency);e.util.serialization.register(CssDependency,"mini-css-extract-plugin/dist/CssDependency",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=new CssDependency({identifier:t(),content:t(),layer:t(),supports:t(),media:t(),sourceMap:t()},t(),t());const s=t();const i=t();n.assets=s;n.assetsInfo=i;n.deserialize(e);return n}});return CssDependency}constructor(e={}){(0,t.validate)(s.default,e,{baseDataPath:"options"});this._sortedModulesCache=new WeakMap;this.options=Object.assign({filename:a,ignoreOrder:false,experimentalUseImportModule:undefined,runtime:true},e);this.runtimeOptions={insert:e.insert,linkType:e.linkType===true||typeof e.linkType==="undefined"?"text/css":e.linkType,attributes:e.attributes};if(!this.options.chunkFilename){const{filename:e}=this.options;if(typeof e!=="function"){const t=e.includes("[name]");const n=e.includes("[id]");const s=e.includes("[chunkhash]");const i=e.includes("[contenthash]");if(s||i||t||n){this.options.chunkFilename=e}else{this.options.chunkFilename=e.replace(/(^|\/)([^/]*(?:\?|$))/,"$1[id].$2")}}else{this.options.chunkFilename="[id].css"}}}apply(e){const{webpack:t}=e;if(this.options.experimentalUseImportModule){if(typeof e.options.experiments.executeModule==="undefined"){e.options.experiments.executeModule=true}}if(!p.has(t)){p.add(t);t.util.serialization.registerLoader(/^mini-css-extract-plugin\//,i.trueFn)}const{splitChunks:n}=e.options.optimization;if(n){if(n.defaultSizeTypes.includes("...")){n.defaultSizeTypes.push(i.MODULE_TYPE)}}const s=MiniCssExtractPlugin.getCssModule(t);const a=MiniCssExtractPlugin.getCssDependency(t);const{NormalModule:u}=e.webpack;e.hooks.compilation.tap(r,(e=>{const{loader:t}=u.getCompilationHooks(e);t.tap(r,(e=>{e[o]={experimentalUseImportModule:this.options.experimentalUseImportModule}}))}));e.hooks.thisCompilation.tap(r,(n=>{class CssModuleFactory{create({dependencies:[e]},t){t(null,new s(e))}}n.dependencyFactories.set(a,new CssModuleFactory);class CssDependencyTemplate{apply(){}}n.dependencyTemplates.set(a,new CssDependencyTemplate);n.hooks.renderManifest.tap(r,((s,{chunk:o})=>{const{chunkGraph:a}=n;const{HotUpdateChunk:u}=t;if(o instanceof u){return}const l=Array.from(this.getChunkModules(o,a)).filter((e=>e.type===i.MODULE_TYPE));const d=o.canBeInitial()?this.options.filename:this.options.chunkFilename;if(l.length>0){s.push({render:()=>this.renderContentAsset(e,n,o,l,n.runtimeTemplate.requestShortener,d,{contentHashType:i.MODULE_TYPE,chunk:o}),filenameTemplate:d,pathOptions:{chunk:o,contentHashType:i.MODULE_TYPE},identifier:`${r}.${o.id}`,hash:o.contentHash[i.MODULE_TYPE]})}}));n.hooks.contentHash.tap(r,(t=>{const{outputOptions:s,chunkGraph:r}=n;const o=this.sortModules(n,t,r.getChunkModulesIterableBySourceType(t,i.MODULE_TYPE),n.runtimeTemplate.requestShortener);if(o){const{hashFunction:n,hashDigest:a,hashDigestLength:u}=s;const{createHash:l}=e.webpack.util;const d=l(n);for(const e of o){d.update(r.getModuleHash(e,t.runtime))}t.contentHash[i.MODULE_TYPE]=d.digest(a).substring(0,u)}}));if(!this.options.runtime){return}const{Template:o,RuntimeGlobals:u,RuntimeModule:l,runtime:d}=t;const getCssChunkObject=(e,t)=>{const n={};const{chunkGraph:s}=t;for(const t of e.getAllAsyncChunks()){const e=s.getOrderedChunkModulesIterable(t,i.compareModulesByIdentifier);for(const s of e){if(s.type===i.MODULE_TYPE){n[t.id]=1;break}}}return n};class CssLoadingRuntimeModule extends l{constructor(e,t){super("css loading",10);this.runtimeRequirements=e;this.runtimeOptions=t}generate(){const{chunk:e,runtimeRequirements:t}=this;const{runtimeTemplate:n,outputOptions:{crossOriginLoading:s}}=this.compilation;const i=getCssChunkObject(e,this.compilation);const r=t.has(u.ensureChunkHandlers)&&Object.keys(i).length>0;const a=t.has(u.hmrDownloadUpdateHandlers);if(!r&&!a){return null}return o.asString([`var createStylesheet = ${n.basicFunction("chunkId, fullhref, resolve, reject",['var linkTag = document.createElement("link");',this.runtimeOptions.attributes?o.asString(Object.entries(this.runtimeOptions.attributes).map((e=>{const[t,n]=e;return`linkTag.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(n)});`}))):"",'linkTag.rel = "stylesheet";',this.runtimeOptions.linkType?`linkTag.type = ${JSON.stringify(this.runtimeOptions.linkType)};`:"",`var onLinkComplete = ${n.basicFunction("event",["// avoid mem leaks.","linkTag.onerror = linkTag.onload = null;","if (event.type === 'load') {",o.indent(["resolve();"]),"} else {",o.indent(["var errorType = event && (event.type === 'load' ? 'missing' : event.type);","var realHref = event && event.target && event.target.href || fullhref;",'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");','err.code = "CSS_CHUNK_LOAD_FAILED";',"err.type = errorType;","err.request = realHref;","linkTag.parentNode.removeChild(linkTag)","reject(err);"]),"}"])}`,"linkTag.onerror = linkTag.onload = onLinkComplete;","linkTag.href = fullhref;",s?o.asString([`if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`,o.indent(`linkTag.crossOrigin = ${JSON.stringify(s)};`),"}"]):"",typeof this.runtimeOptions.insert!=="undefined"?typeof this.runtimeOptions.insert==="function"?`(${this.runtimeOptions.insert.toString()})(linkTag)`:o.asString([`var target = document.querySelector("${this.runtimeOptions.insert}");`,`target.parentNode.insertBefore(linkTag, target.nextSibling);`]):o.asString(["document.head.appendChild(linkTag);"]),"return linkTag;"])};`,`var findStylesheet = ${n.basicFunction("href, fullhref",['var existingLinkTags = document.getElementsByTagName("link");',"for(var i = 0; i < existingLinkTags.length; i++) {",o.indent(["var tag = existingLinkTags[i];",'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");','if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;']),"}",'var existingStyleTags = document.getElementsByTagName("style");',"for(var i = 0; i < existingStyleTags.length; i++) {",o.indent(["var tag = existingStyleTags[i];",'var dataHref = tag.getAttribute("data-href");',"if(dataHref === href || dataHref === fullhref) return tag;"]),"}"])};`,`var loadStylesheet = ${n.basicFunction("chunkId",`return new Promise(${n.basicFunction("resolve, reject",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"if(findStylesheet(href, fullhref)) return resolve();","createStylesheet(chunkId, fullhref, resolve, reject);"])});`)}`,r?o.asString(["// object to store loaded CSS chunks","var installedCssChunks = {",o.indent(e.ids.map((e=>`${JSON.stringify(e)}: 0`)).join(",\n")),"};","",`${u.ensureChunkHandlers}.miniCss = ${n.basicFunction("chunkId, promises",[`var cssChunks = ${JSON.stringify(i)};`,"if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);","else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {",o.indent([`promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${n.basicFunction("","installedCssChunks[chunkId] = 0;")}, ${n.basicFunction("e",["delete installedCssChunks[chunkId];","throw e;"])}));`]),"}"])};`]):"// no chunk loading","",a?o.asString(["var oldTags = [];","var newTags = [];",`var applyHandler = ${n.basicFunction("options",[`return { dispose: ${n.basicFunction("",["for(var i = 0; i < oldTags.length; i++) {",o.indent(["var oldTag = oldTags[i];","if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);"]),"}","oldTags.length = 0;"])}, apply: ${n.basicFunction("",['for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";',"newTags.length = 0;"])} };`])}`,`${u.hmrDownloadUpdateHandlers}.miniCss = ${n.basicFunction("chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList",["applyHandlers.push(applyHandler);",`chunkIds.forEach(${n.basicFunction("chunkId",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"var oldTag = findStylesheet(href, fullhref);","if(!oldTag) return;",`promises.push(new Promise(${n.basicFunction("resolve, reject",[`var tag = createStylesheet(chunkId, fullhref, ${n.basicFunction("",['tag.as = "style";','tag.rel = "preload";',"resolve();"])}, reject);`,"oldTags.push(oldTag);","newTags.push(tag);"])}));`])});`])}`]):"// no hmr"])}}const c=new WeakSet;const handler=(e,t)=>{if(c.has(e)){return}c.add(e);if(typeof this.options.chunkFilename==="string"&&/\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename)){t.add(u.getFullHash)}t.add(u.publicPath);n.addRuntimeModule(e,new d.GetChunkFilenameRuntimeModule(i.MODULE_TYPE,"mini-css",`${u.require}.miniCssF`,(e=>{if(!e.contentHash[i.MODULE_TYPE]){return false}return e.canBeInitial()?this.options.filename:this.options.chunkFilename}),true));n.addRuntimeModule(e,new CssLoadingRuntimeModule(t,this.runtimeOptions))};n.hooks.runtimeRequirementInTree.for(u.ensureChunkHandlers).tap(r,handler);n.hooks.runtimeRequirementInTree.for(u.hmrDownloadUpdateHandlers).tap(r,handler)}))}getChunkModules(e,t){return typeof t!=="undefined"?t.getOrderedChunkModulesIterable(e,i.compareModulesByIdentifier):e.modulesIterable}sortModules(e,t,n,s){let i=this._sortedModulesCache.get(t);if(i||!n){return i}const o=[...n];const a=new Map(o.map((e=>[e,new Set])));const u=new Map(o.map((e=>[e,new Map])));const l=Array.from(t.groupsIterable,(e=>{const t=o.map((t=>({module:t,index:e.getModulePostOrderIndex(t)}))).filter((e=>e.index!==undefined)).sort(((e,t)=>t.index-e.index)).map((e=>e.module));for(let n=0;n!i.has(e);while(i.size0&&i.has(e[e.length-1])){e.pop()}if(e.length!==0){const t=e[e.length-1];const s=a.get(t);const r=Array.from(s).filter(unusedModulesFilter);if(!d||d.length>r.length){o=e;d=r}if(r.length===0){i.add(e.pop());n=true;break}}}if(!n){const n=o.pop();if(!this.options.ignoreOrder){const i=u.get(n);e.warnings.push(new Error([`chunk ${t.name||t.id} [${r}]`,"Conflicting order. Following module has been added:",` * ${n.readableIdentifier(s)}`,"despite it was not able to fulfill desired ordering with these modules:",...d.map((e=>{const t=u.get(e);const r=t&&t.get(n);const o=Array.from(i.get(e),(e=>e.name)).join(", ");const a=r&&Array.from(r,(e=>e.name)).join(", ");return[` * ${e.readableIdentifier(s)}`,` - couldn't fulfill desired order of chunk group(s) ${o}`,a&&` - while fulfilling desired order of chunk group(s) ${a}`].filter(Boolean).join("\n")}))].join("\n")))}i.add(n)}}this._sortedModulesCache.set(t,i);return i}renderContentAsset(e,t,n,s,r,o,a){const u=this.sortModules(t,n,s,r);const{ConcatSource:l,SourceMapSource:d,RawSource:c}=e.webpack.sources;const p=new l;const h=new l;for(const n of u){let s=n.content.toString();const u=n.readableIdentifier(r);const l=/^@import url/.test(s);let f;if(t.outputOptions.pathinfo){const e=u.replace(/\*\//g,"*_/");const t="*".repeat(e.length);const n=`/*!****${t}****!*\\\n !*** ${e} ***!\n \\****${t}****/\n`;f=new c(n)}if(l){if(typeof f!=="undefined"){h.add(f)}if(n.media){s=s.replace(/;|\s*$/,n.media)}h.add(s);h.add("\n")}else{if(typeof f!=="undefined"){p.add(f)}if(n.supports){p.add(`@supports (${n.supports}) {\n`)}if(n.media){p.add(`@media ${n.media} {\n`)}const r=typeof n.layer!=="undefined";if(r){p.add(`@layer${n.layer.length>0?` ${n.layer}`:""} {\n`)}const{path:l}=t.getPathWithInfo(o,a);const h=(0,i.getUndoPath)(l,e.outputPath,false);s=s.replace(new RegExp(i.ABSOLUTE_PUBLIC_PATH,"g"),"");s=s.replace(new RegExp(i.SINGLE_DOT_PATH_SEGMENT,"g"),".");s=s.replace(new RegExp(i.AUTO_PUBLIC_PATH,"g"),h);if(n.sourceMap){p.add(new d(s,u,n.sourceMap.toString()))}else{p.add(new c(s,u))}p.add("\n");if(r){p.add("}\n")}if(n.media){p.add("}\n")}if(n.supports){p.add("}\n")}}}return new l(h,p)}}MiniCssExtractPlugin.loader=__nccwpck_require__.ab+"loader.js";var h=MiniCssExtractPlugin;e["default"]=h})();module.exports=n})(); \ No newline at end of file +(()=>{"use strict";var e={722:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var s=_interopRequireDefault(n(188));var i=_interopRequireDefault(n(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:n,chunkGraph:s}=e;for(const e of n){const n=typeof s!=="undefined"?s.getModuleId(e):e.id;if(n===t){return e}}return null}function evalModuleCode(e,t,n){const i=new s.default(n,e);i.paths=s.default._nodeModulePaths(e.context);i.filename=n;i._compile(t,n);return i.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const o="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=o;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return i.default.posix.isAbsolute(e)||i.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const n=t.split("!");const{context:s}=e;return JSON.stringify(n.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const n=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&s){r=i.default.relative(s,r);if(isAbsolutePath(r)){return r+n}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+n})).join("!"))}function getUndoPath(e,t,n){let s=-1;let i="";t=t.replace(/[\\/]$/,"");for(const n of e.split(/[/\\]+/)){if(n===".."){if(s>-1){s--}else{const e=t.lastIndexOf("/");const n=t.lastIndexOf("\\");const s=e<0?n:n<0?e:Math.max(e,n);if(s<0){return`${t}/`}i=`${t.slice(s+1)}/${i}`;t=t.slice(0,s)}}else if(n!=="."){s++}}return s>0?`${"../".repeat(s)}${i}`:n?`./${i}`:i}},188:e=>{e.exports=require("module")},476:e=>{e.exports=require("next/dist/compiled/schema-utils3")},17:e=>{e.exports=require("path")},3:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin options","type":"object","additionalProperties":false,"properties":{"filename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of each output CSS file.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#filename"},"chunkFilename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of non-entry chunk files.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#chunkfilename"},"experimentalUseImportModule":{"type":"boolean","description":"Enable the experimental importModule approach instead of using child compilers. This uses less memory and is faster.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#experimentaluseimportmodule"},"ignoreOrder":{"type":"boolean","description":"Remove Order Warnings.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#ignoreorder"},"insert":{"description":"Inserts the `link` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#insert","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"attributes":{"description":"Adds custom attributes to the `link` tag for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#attributes","type":"object"},"linkType":{"anyOf":[{"enum":["text/css"]},{"type":"boolean"}],"description":"This option allows loading asynchronous chunks with a custom link type","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#linktype"},"runtime":{"type":"boolean","description":"Enabled/Disables runtime generation. CSS will be still extracted and can be used for a custom loading methods.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#noRuntime"}}}')}};var t={};function __nccwpck_require__(n){var s=t[n];if(s!==undefined){return s.exports}var i=t[n]={exports:{}};var r=true;try{e[n](i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:true});e.pluginSymbol=e.pluginName=e["default"]=void 0;var t=__nccwpck_require__(476);var s=_interopRequireDefault(__nccwpck_require__(3));var i=__nccwpck_require__(722);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const r="mini-css-extract-plugin";e.pluginName=r;const o=Symbol(r);e.pluginSymbol=o;const a="[name].css";const u=new Set([i.MODULE_TYPE]);const l={sources:new Map,runtimeRequirements:new Set};const d=new WeakMap;const c=new WeakMap;const p=new WeakSet;class MiniCssExtractPlugin{static getCssModule(e){if(d.has(e)){return d.get(e)}class CssModule extends e.Module{constructor({context:e,identifier:t,identifierIndex:n,content:s,layer:r,supports:o,media:a,sourceMap:u,assets:l,assetsInfo:d}){super(i.MODULE_TYPE,e);this.id="";this._context=e;this._identifier=t;this._identifierIndex=n;this.content=s;this.layer=r;this.supports=o;this.media=a;this.sourceMap=u;this.assets=l;this.assetsInfo=d;this._needBuild=true}size(){return this.content.length}identifier(){return`css|${this._identifier}|${this._identifierIndex}`}readableIdentifier(e){return`css ${e.shorten(this._identifier)}${this._identifierIndex?` (${this._identifierIndex})`:""}`}getSourceTypes(){return u}codeGeneration(){return l}nameForCondition(){const e=this._identifier.split("!").pop();const t=e.indexOf("?");if(t>=0){return e.substring(0,t)}return e}updateCacheModule(e){if(this.content!==e.content||this.layer!==e.layer||this.supports!==e.supports||this.media!==e.media||this.sourceMap!==e.sourceMap||this.assets!==e.assets||this.assetsInfo!==e.assetsInfo){this._needBuild=true;this.content=e.content;this.layer=e.layer;this.supports=e.supports;this.media=e.media;this.sourceMap=e.sourceMap;this.assets=e.assets;this.assetsInfo=e.assetsInfo}}needRebuild(){return this._needBuild}needBuild(e,t){t(null,this._needBuild)}build(e,t,n,s,i){this.buildInfo={assets:this.assets,assetsInfo:this.assetsInfo,cacheable:true,hash:this._computeHash(t.outputOptions.hashFunction)};this.buildMeta={};this._needBuild=false;i()}_computeHash(t){const n=e.util.createHash(t);n.update(this.content);if(this.layer){n.update(this.layer)}n.update(this.supports||"");n.update(this.media||"");n.update(this.sourceMap||"");return n.digest("hex")}updateHash(e,t){super.updateHash(e,t);e.update(this.buildInfo.hash)}serialize(e){const{write:t}=e;t(this._context);t(this._identifier);t(this._identifierIndex);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.assets);t(this.assetsInfo);t(this._needBuild);super.serialize(e)}deserialize(e){this._needBuild=e.read();super.deserialize(e)}}d.set(e,CssModule);e.util.serialization.register(CssModule,"mini-css-extract-plugin/dist/CssModule",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=t();const s=t();const i=t();const r=t();const o=t();const a=t();const u=t();const l=t();const d=t();const c=t();const p=new CssModule({context:n,identifier:s,identifierIndex:i,content:r,layer:o,supports:a,media:u,sourceMap:l,assets:d,assetsInfo:c});p.deserialize(e);return p}});return CssModule}static getCssDependency(e){if(c.has(e)){return c.get(e)}class CssDependency extends e.Dependency{constructor({identifier:e,content:t,layer:n,supports:s,media:i,sourceMap:r},o,a){super();this.identifier=e;this.identifierIndex=a;this.content=t;this.layer=n;this.supports=s;this.media=i;this.sourceMap=r;this.context=o;this.assets=undefined;this.assetsInfo=undefined}getResourceIdentifier(){return`css-module-${this.identifier}-${this.identifierIndex}`}getModuleEvaluationSideEffectsState(){return e.ModuleGraphConnection.TRANSITIVE_ONLY}serialize(e){const{write:t}=e;t(this.identifier);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.context);t(this.identifierIndex);t(this.assets);t(this.assetsInfo);super.serialize(e)}deserialize(e){super.deserialize(e)}}c.set(e,CssDependency);e.util.serialization.register(CssDependency,"mini-css-extract-plugin/dist/CssDependency",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=new CssDependency({identifier:t(),content:t(),layer:t(),supports:t(),media:t(),sourceMap:t()},t(),t());const s=t();const i=t();n.assets=s;n.assetsInfo=i;n.deserialize(e);return n}});return CssDependency}constructor(e={}){(0,t.validate)(s.default,e,{baseDataPath:"options"});this._sortedModulesCache=new WeakMap;this.options=Object.assign({filename:a,ignoreOrder:false,experimentalUseImportModule:undefined,runtime:true},e);this.runtimeOptions={insert:e.insert,linkType:e.linkType===true||typeof e.linkType==="undefined"?"text/css":e.linkType,attributes:e.attributes};if(!this.options.chunkFilename){const{filename:e}=this.options;if(typeof e!=="function"){const t=e.includes("[name]");const n=e.includes("[id]");const s=e.includes("[chunkhash]");const i=e.includes("[contenthash]");if(s||i||t||n){this.options.chunkFilename=e}else{this.options.chunkFilename=e.replace(/(^|\/)([^/]*(?:\?|$))/,"$1[id].$2")}}else{this.options.chunkFilename="[id].css"}}}apply(e){const{webpack:t}=e;if(this.options.experimentalUseImportModule){if(typeof e.options.experiments.executeModule==="undefined"){e.options.experiments.executeModule=true}}if(!p.has(t)){p.add(t);t.util.serialization.registerLoader(/^mini-css-extract-plugin\//,i.trueFn)}const{splitChunks:n}=e.options.optimization;if(n){if(n.defaultSizeTypes.includes("...")){n.defaultSizeTypes.push(i.MODULE_TYPE)}}const s=MiniCssExtractPlugin.getCssModule(t);const a=MiniCssExtractPlugin.getCssDependency(t);const{NormalModule:u}=e.webpack;e.hooks.compilation.tap(r,(e=>{const{loader:t}=u.getCompilationHooks(e);t.tap(r,(e=>{e[o]={experimentalUseImportModule:this.options.experimentalUseImportModule}}))}));e.hooks.thisCompilation.tap(r,(n=>{class CssModuleFactory{create({dependencies:[e]},t){t(null,new s(e))}}n.dependencyFactories.set(a,new CssModuleFactory);class CssDependencyTemplate{apply(){}}n.dependencyTemplates.set(a,new CssDependencyTemplate);n.hooks.renderManifest.tap(r,((s,{chunk:o})=>{const{chunkGraph:a}=n;const{HotUpdateChunk:u}=t;if(o instanceof u){return}const l=Array.from(this.getChunkModules(o,a)).filter((e=>e.type===i.MODULE_TYPE));const d=o.canBeInitial()?this.options.filename:this.options.chunkFilename;if(l.length>0){s.push({render:()=>this.renderContentAsset(e,n,o,l,n.runtimeTemplate.requestShortener,d,{contentHashType:i.MODULE_TYPE,chunk:o}),filenameTemplate:d,pathOptions:{chunk:o,contentHashType:i.MODULE_TYPE},identifier:`${r}.${o.id}`,hash:o.contentHash[i.MODULE_TYPE]})}}));n.hooks.contentHash.tap(r,(t=>{const{outputOptions:s,chunkGraph:r}=n;const o=this.sortModules(n,t,r.getChunkModulesIterableBySourceType(t,i.MODULE_TYPE),n.runtimeTemplate.requestShortener);if(o){const{hashFunction:n,hashDigest:a,hashDigestLength:u}=s;const{createHash:l}=e.webpack.util;const d=l(n);for(const e of o){d.update(r.getModuleHash(e,t.runtime))}t.contentHash[i.MODULE_TYPE]=d.digest(a).substring(0,u)}}));if(!this.options.runtime){return}const{Template:o,RuntimeGlobals:u,RuntimeModule:l,runtime:d}=t;const getCssChunkObject=(e,t)=>{const n={};const{chunkGraph:s}=t;for(const t of e.getAllAsyncChunks()){const e=s.getOrderedChunkModulesIterable(t,i.compareModulesByIdentifier);for(const s of e){if(s.type===i.MODULE_TYPE){n[t.id]=1;break}}}return n};class CssLoadingRuntimeModule extends l{constructor(e,t){super("css loading",10);this.runtimeRequirements=e;this.runtimeOptions=t}generate(){const{chunk:e,runtimeRequirements:t}=this;const{runtimeTemplate:n,outputOptions:{crossOriginLoading:s}}=this.compilation;const i=getCssChunkObject(e,this.compilation);const r=t.has(u.ensureChunkHandlers)&&Object.keys(i).length>0;const a=t.has(u.hmrDownloadUpdateHandlers);if(!r&&!a){return null}return o.asString([`var createStylesheet = ${n.basicFunction("chunkId, fullhref, resolve, reject",['var linkTag = document.createElement("link");',this.runtimeOptions.attributes?o.asString(Object.entries(this.runtimeOptions.attributes).map((e=>{const[t,n]=e;return`linkTag.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(n)});`}))):"",'linkTag.rel = "stylesheet";',this.runtimeOptions.linkType?`linkTag.type = ${JSON.stringify(this.runtimeOptions.linkType)};`:"",`var onLinkComplete = ${n.basicFunction("event",["// avoid mem leaks.","linkTag.onerror = linkTag.onload = null;","if (event.type === 'load') {",o.indent(["resolve();"]),"} else {",o.indent(["var errorType = event && (event.type === 'load' ? 'missing' : event.type);","var realHref = event && event.target && event.target.href || fullhref;",'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");','err.code = "CSS_CHUNK_LOAD_FAILED";',"err.type = errorType;","err.request = realHref;","linkTag.parentNode.removeChild(linkTag)","reject(err);"]),"}"])}`,"linkTag.onerror = linkTag.onload = onLinkComplete;","linkTag.href = fullhref;",s?o.asString([`if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`,o.indent(`linkTag.crossOrigin = ${JSON.stringify(s)};`),"}"]):"",typeof this.runtimeOptions.insert!=="undefined"?typeof this.runtimeOptions.insert==="function"?`(${this.runtimeOptions.insert.toString()})(linkTag)`:o.asString([`var target = document.querySelector("${this.runtimeOptions.insert}");`,`target.parentNode.insertBefore(linkTag, target.nextSibling);`]):o.asString(["document.head.appendChild(linkTag);"]),"return linkTag;"])};`,`var findStylesheet = ${n.basicFunction("href, fullhref",['var existingLinkTags = document.getElementsByTagName("link");',"for(var i = 0; i < existingLinkTags.length; i++) {",o.indent(["var tag = existingLinkTags[i];",'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");','if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;']),"}",'var existingStyleTags = document.getElementsByTagName("style");',"for(var i = 0; i < existingStyleTags.length; i++) {",o.indent(["var tag = existingStyleTags[i];",'var dataHref = tag.getAttribute("data-href");',"if(dataHref === href || dataHref === fullhref) return tag;"]),"}"])};`,`var loadStylesheet = ${n.basicFunction("chunkId",`return new Promise(${n.basicFunction("resolve, reject",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"if(findStylesheet(href, fullhref)) return resolve();","createStylesheet(chunkId, fullhref, resolve, reject);"])});`)}`,r?o.asString(["// object to store loaded CSS chunks","var installedCssChunks = {",o.indent(e.ids.map((e=>`${JSON.stringify(e)}: 0`)).join(",\n")),"};","",`${u.ensureChunkHandlers}.miniCss = ${n.basicFunction("chunkId, promises",[`var cssChunks = ${JSON.stringify(i)};`,"if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);","else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {",o.indent([`promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${n.basicFunction("","installedCssChunks[chunkId] = 0;")}, ${n.basicFunction("e",["delete installedCssChunks[chunkId];","throw e;"])}));`]),"}"])};`]):"// no chunk loading","",a?o.asString(["var oldTags = [];","var newTags = [];",`var applyHandler = ${n.basicFunction("options",[`return { dispose: ${n.basicFunction("",["for(var i = 0; i < oldTags.length; i++) {",o.indent(["var oldTag = oldTags[i];","if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);"]),"}","oldTags.length = 0;"])}, apply: ${n.basicFunction("",['for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";',"newTags.length = 0;"])} };`])}`,`${u.hmrDownloadUpdateHandlers}.miniCss = ${n.basicFunction("chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList",["applyHandlers.push(applyHandler);",`chunkIds.forEach(${n.basicFunction("chunkId",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"var oldTag = findStylesheet(href, fullhref);","if(!oldTag) return;",`promises.push(new Promise(${n.basicFunction("resolve, reject",[`var tag = createStylesheet(chunkId, fullhref, ${n.basicFunction("",['tag.as = "style";','tag.rel = "preload";',"resolve();"])}, reject);`,"oldTags.push(oldTag);","newTags.push(tag);"])}));`])});`])}`]):"// no hmr"])}}const c=new WeakSet;const handler=(e,t)=>{if(c.has(e)){return}c.add(e);if(typeof this.options.chunkFilename==="string"&&/\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename)){t.add(u.getFullHash)}t.add(u.publicPath);n.addRuntimeModule(e,new d.GetChunkFilenameRuntimeModule(i.MODULE_TYPE,"mini-css",`${u.require}.miniCssF`,(e=>{if(!e.contentHash[i.MODULE_TYPE]){return false}return e.canBeInitial()?this.options.filename:this.options.chunkFilename}),true));n.addRuntimeModule(e,new CssLoadingRuntimeModule(t,this.runtimeOptions))};n.hooks.runtimeRequirementInTree.for(u.ensureChunkHandlers).tap(r,handler);n.hooks.runtimeRequirementInTree.for(u.hmrDownloadUpdateHandlers).tap(r,handler)}))}getChunkModules(e,t){return typeof t!=="undefined"?t.getOrderedChunkModulesIterable(e,i.compareModulesByIdentifier):e.modulesIterable}sortModules(e,t,n,s){let i=this._sortedModulesCache.get(t);if(i||!n){return i}const o=[...n];const a=new Map(o.map((e=>[e,new Set])));const u=new Map(o.map((e=>[e,new Map])));const l=Array.from(t.groupsIterable,(e=>{const t=o.map((t=>({module:t,index:e.getModulePostOrderIndex(t)}))).filter((e=>e.index!==undefined)).sort(((e,t)=>t.index-e.index)).map((e=>e.module));for(let n=0;n!i.has(e);while(i.size0&&i.has(e[e.length-1])){e.pop()}if(e.length!==0){const t=e[e.length-1];const s=a.get(t);const r=Array.from(s).filter(unusedModulesFilter);if(!d||d.length>r.length){o=e;d=r}if(r.length===0){i.add(e.pop());n=true;break}}}if(!n){const n=o.pop();if(!this.options.ignoreOrder){const i=u.get(n);e.warnings.push(new Error([`chunk ${t.name||t.id} [${r}]`,"Conflicting order. Following module has been added:",` * ${n.readableIdentifier(s)}`,"despite it was not able to fulfill desired ordering with these modules:",...d.map((e=>{const t=u.get(e);const r=t&&t.get(n);const o=Array.from(i.get(e),(e=>e.name)).join(", ");const a=r&&Array.from(r,(e=>e.name)).join(", ");return[` * ${e.readableIdentifier(s)}`,` - couldn't fulfill desired order of chunk group(s) ${o}`,a&&` - while fulfilling desired order of chunk group(s) ${a}`].filter(Boolean).join("\n")}))].join("\n")))}i.add(n)}}this._sortedModulesCache.set(t,i);return i}renderContentAsset(e,t,n,s,r,o,a){const u=this.sortModules(t,n,s,r);const{ConcatSource:l,SourceMapSource:d,RawSource:c}=e.webpack.sources;const p=new l;const h=new l;for(const n of u){let s=n.content.toString();const u=n.readableIdentifier(r);const l=/^@import url/.test(s);let f;if(t.outputOptions.pathinfo){const e=u.replace(/\*\//g,"*_/");const t="*".repeat(e.length);const n=`/*!****${t}****!*\\\n !*** ${e} ***!\n \\****${t}****/\n`;f=new c(n)}if(l){if(typeof f!=="undefined"){h.add(f)}if(n.media){s=s.replace(/;|\s*$/,n.media)}h.add(s);h.add("\n")}else{if(typeof f!=="undefined"){p.add(f)}if(n.supports){p.add(`@supports (${n.supports}) {\n`)}if(n.media){p.add(`@media ${n.media} {\n`)}const r=typeof n.layer!=="undefined";if(r){p.add(`@layer${n.layer.length>0?` ${n.layer}`:""} {\n`)}const{path:l}=t.getPathWithInfo(o,a);const h=(0,i.getUndoPath)(l,e.outputPath,false);s=s.replace(new RegExp(i.ABSOLUTE_PUBLIC_PATH,"g"),"");s=s.replace(new RegExp(i.SINGLE_DOT_PATH_SEGMENT,"g"),".");s=s.replace(new RegExp(i.AUTO_PUBLIC_PATH,"g"),h);if(n.sourceMap){p.add(new d(s,u,n.sourceMap.toString()))}else{p.add(new c(s,u))}p.add("\n");if(r){p.add("}\n")}if(n.media){p.add("}\n")}if(n.supports){p.add("}\n")}}}return new l(h,p)}}MiniCssExtractPlugin.loader=__nccwpck_require__.ab+"loader.js";var h=MiniCssExtractPlugin;e["default"]=h})();module.exports=n})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/loader.js b/packages/next/compiled/mini-css-extract-plugin/loader.js index eb76fda0d71a..aa8aacb8fce5 100644 --- a/packages/next/compiled/mini-css-extract-plugin/loader.js +++ b/packages/next/compiled/mini-css-extract-plugin/loader.js @@ -1 +1 @@ -(()=>{"use strict";var e={154:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var n=_interopRequireDefault(i(188));var o=_interopRequireDefault(i(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:i,chunkGraph:n}=e;for(const e of i){const i=typeof n!=="undefined"?n.getModuleId(e):e.id;if(i===t){return e}}return null}function evalModuleCode(e,t,i){const o=new n.default(i,e);o.paths=n.default._nodeModulePaths(e.context);o.filename=i;o._compile(t,i);return o.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const s="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=s;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return o.default.posix.isAbsolute(e)||o.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const i=t.split("!");const{context:n}=e;return JSON.stringify(i.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const i=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&n){r=o.default.relative(n,r);if(isAbsolutePath(r)){return r+i}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+i})).join("!"))}function getUndoPath(e,t,i){let n=-1;let o="";t=t.replace(/[\\/]$/,"");for(const i of e.split(/[/\\]+/)){if(i===".."){if(n>-1){n--}else{const e=t.lastIndexOf("/");const i=t.lastIndexOf("\\");const n=e<0?i:i<0?e:Math.max(e,i);if(n<0){return`${t}/`}o=`${t.slice(n+1)}/${o}`;t=t.slice(0,n)}}else if(i!=="."){n++}}return n>0?`${"../".repeat(n)}${o}`:i?`./${o}`:o}},717:e=>{e.exports=require("./index.js")},188:e=>{e.exports=require("module")},17:e=>{e.exports=require("path")},230:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin Loader options","type":"object","additionalProperties":false,"properties":{"publicPath":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"Specifies a custom public path for the external resources like images, files, etc inside CSS.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#publicpath"},"emit":{"type":"boolean","description":"If true, emits a file (writes a file to the filesystem). If false, the plugin will extract the CSS but will not emit the file","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#emit"},"esModule":{"type":"boolean","description":"Generates JS modules that use the ES modules syntax.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#esmodule"},"layer":{"type":"string"}}}')}};var t={};function __nccwpck_require__(i){var n=t[i];if(n!==undefined){return n.exports}var o=t[i]={exports:{}};var r=true;try{e[i](o,o.exports,__nccwpck_require__);r=false}finally{if(r)delete t[i]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i={};(()=>{var e=i;Object.defineProperty(e,"__esModule",{value:true});e["default"]=_default;e.pitch=pitch;var t=_interopRequireDefault(__nccwpck_require__(17));var n=__nccwpck_require__(154);var o=_interopRequireDefault(__nccwpck_require__(230));var r=_interopRequireWildcard(__nccwpck_require__(717));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var i=new WeakMap;return(_getRequireWildcardCache=function(e){return e?i:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var i=_getRequireWildcardCache(t);if(i&&i.has(e)){return i.get(e)}var n={};var o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e){if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)){var s=o?Object.getOwnPropertyDescriptor(e,r):null;if(s&&(s.get||s.set)){Object.defineProperty(n,r,s)}else{n[r]=e[r]}}}n.default=e;if(i){i.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function hotLoader(e,i){const o=i.locals?"":"module.hot.accept(undefined, cssReload);";return`${e}\n if(module.hot) {\n // ${Date.now()}\n var cssReload = require(${(0,n.stringifyRequest)(i.context,t.default.join(__dirname,"hmr/hotModuleReplacement.js"))})(module.id, ${JSON.stringify({...i.options,locals:!!i.locals})});\n module.hot.dispose(cssReload);\n ${o}\n }\n `}function pitch(e){const t=this.getOptions(o.default);const i=this.async();const s=this[r.pluginSymbol];if(!s){i(new Error("You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started"));return}const{webpack:a}=this._compiler;const handleExports=(e,o,s,u)=>{let l;let c;const p=typeof t.esModule!=="undefined"?t.esModule:true;const addDependencies=e=>{if(!Array.isArray(e)&&e!=null){throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(e)}`)}const i=new Map;const n=typeof t.emit!=="undefined"?t.emit:true;let o;for(const t of e){if(!t.identifier||!n){continue}const e=i.get(t.identifier)||0;const s=r.default.getCssDependency(a);this._module.addDependency(o=new s(t,t.context,e));i.set(t.identifier,e+1)}if(o&&s){o.assets=s;o.assetsInfo=u}};try{const t=e.__esModule?e.default:e;c=e.__esModule&&(!e.default||!("locals"in e.default));if(c){Object.keys(e).forEach((t=>{if(t!=="default"){if(!l){l={}}l[t]=e[t]}}))}else{l=t&&t.locals}let i;if(!Array.isArray(t)){i=[[null,t]]}else{i=t.map((([e,t,i,r,s,a])=>{let u=e;let l;if(o){const t=(0,n.findModuleById)(o,e);u=t.identifier();({context:l}=t)}else{l=this.rootContext}return{identifier:u,context:l,content:Buffer.from(t),media:i,supports:s,layer:a,sourceMap:r?Buffer.from(JSON.stringify(r)):undefined}}))}addDependencies(i)}catch(e){return i(e)}const d=l?c?Object.keys(l).map((e=>`\nexport var ${e} = ${JSON.stringify(l[e])};`)).join(""):`\n${p?"export default":"module.exports ="} ${JSON.stringify(l)};`:p?`\nexport {};`:"";let f=`// extracted by ${r.pluginName}`;f+=this.hot?hotLoader(d,{context:this.context,options:t,locals:l}):d;return i(null,f)};let{publicPath:u}=this._compilation.outputOptions;if(typeof t.publicPath==="string"){u=t.publicPath}else if(typeof t.publicPath==="function"){u=t.publicPath(this.resourcePath,this.rootContext)}if(u==="auto"){u=n.AUTO_PUBLIC_PATH}if(typeof s.experimentalUseImportModule==="undefined"&&typeof this.importModule==="function"||s.experimentalUseImportModule){if(!this.importModule){i(new Error("You are using 'experimentalUseImportModule' but 'this.importModule' is not available in loader context. You need to have at least webpack 5.33.2."));return}const o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(u);const r=o?u:`${n.ABSOLUTE_PUBLIC_PATH}${u.replace(/\./g,n.SINGLE_DOT_PATH_SEGMENT)}`;this.importModule(`${this.resourcePath}.webpack[javascript/auto]!=!!!${e}`,{layer:t.layer,publicPath:r},((e,t)=>{if(e){i(e);return}handleExports(t)}));return}const l=this.loaders.slice(this.loaderIndex+1);this.addDependency(this.resourcePath);const c="*";const p={filename:c,publicPath:u};const d=this._compilation.createChildCompiler(`${r.pluginName} ${e}`,p);d.options.module={...d.options.module};d.options.module.parser={...d.options.module.parser};d.options.module.parser.javascript={...d.options.module.parser.javascript,url:"relative"};const{NodeTemplatePlugin:f}=a.node;const{NodeTargetPlugin:_}=a.node;new f(p).apply(d);(new _).apply(d);const{EntryOptionPlugin:h}=a;const{library:{EnableLibraryPlugin:m}}=a;new m("commonjs2").apply(d);h.applyEntryOption(d,this.context,{child:{library:{type:"commonjs2"},import:[`!!${e}`]}});const{LimitChunkCountPlugin:y}=a.optimize;new y({maxChunks:1}).apply(d);const{NormalModule:g}=a;d.hooks.thisCompilation.tap(`${r.pluginName} loader`,(t=>{const i=g.getCompilationHooks(t).loader;i.tap(`${r.pluginName} loader`,((t,i)=>{if(i.request===e){i.loaders=l.map((e=>({loader:e.path,options:e.options,ident:e.ident})))}}))}));let b;d.hooks.compilation.tap(r.pluginName,(e=>{e.hooks.processAssets.tap(r.pluginName,(()=>{b=e.assets[c]&&e.assets[c].source();e.chunks.forEach((t=>{t.files.forEach((t=>{e.deleteAsset(t)}))}))}))}));d.runAsChild(((t,o,r)=>{if(t){return i(t)}if(r.errors.length>0){return i(r.errors[0])}const s=Object.create(null);const a=new Map;for(const e of r.getAssets()){s[e.name]=e.source;a.set(e.name,e.info)}r.fileDependencies.forEach((e=>{this.addDependency(e)}),this);r.contextDependencies.forEach((e=>{this.addContextDependency(e)}),this);if(!b){return i(new Error("Didn't get a result from child compiler"))}let u;try{u=(0,n.evalModuleCode)(this,b,e)}catch(e){return i(e)}return handleExports(u,r,s,a)}))}function _default(e){console.log(e)}})();module.exports=i})(); \ No newline at end of file +(()=>{"use strict";var e={722:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var n=_interopRequireDefault(i(188));var o=_interopRequireDefault(i(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:i,chunkGraph:n}=e;for(const e of i){const i=typeof n!=="undefined"?n.getModuleId(e):e.id;if(i===t){return e}}return null}function evalModuleCode(e,t,i){const o=new n.default(i,e);o.paths=n.default._nodeModulePaths(e.context);o.filename=i;o._compile(t,i);return o.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const s="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=s;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return o.default.posix.isAbsolute(e)||o.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const i=t.split("!");const{context:n}=e;return JSON.stringify(i.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const i=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&n){r=o.default.relative(n,r);if(isAbsolutePath(r)){return r+i}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+i})).join("!"))}function getUndoPath(e,t,i){let n=-1;let o="";t=t.replace(/[\\/]$/,"");for(const i of e.split(/[/\\]+/)){if(i===".."){if(n>-1){n--}else{const e=t.lastIndexOf("/");const i=t.lastIndexOf("\\");const n=e<0?i:i<0?e:Math.max(e,i);if(n<0){return`${t}/`}o=`${t.slice(n+1)}/${o}`;t=t.slice(0,n)}}else if(i!=="."){n++}}return n>0?`${"../".repeat(n)}${o}`:i?`./${o}`:o}},717:e=>{e.exports=require("./index.js")},188:e=>{e.exports=require("module")},17:e=>{e.exports=require("path")},594:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin Loader options","type":"object","additionalProperties":false,"properties":{"publicPath":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"Specifies a custom public path for the external resources like images, files, etc inside CSS.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#publicpath"},"emit":{"type":"boolean","description":"If true, emits a file (writes a file to the filesystem). If false, the plugin will extract the CSS but will not emit the file","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#emit"},"esModule":{"type":"boolean","description":"Generates JS modules that use the ES modules syntax.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#esmodule"},"layer":{"type":"string"}}}')}};var t={};function __nccwpck_require__(i){var n=t[i];if(n!==undefined){return n.exports}var o=t[i]={exports:{}};var r=true;try{e[i](o,o.exports,__nccwpck_require__);r=false}finally{if(r)delete t[i]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i={};(()=>{var e=i;Object.defineProperty(e,"__esModule",{value:true});e["default"]=_default;e.pitch=pitch;var t=_interopRequireDefault(__nccwpck_require__(17));var n=__nccwpck_require__(722);var o=_interopRequireDefault(__nccwpck_require__(594));var r=_interopRequireWildcard(__nccwpck_require__(717));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var i=new WeakMap;return(_getRequireWildcardCache=function(e){return e?i:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var i=_getRequireWildcardCache(t);if(i&&i.has(e)){return i.get(e)}var n={};var o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e){if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)){var s=o?Object.getOwnPropertyDescriptor(e,r):null;if(s&&(s.get||s.set)){Object.defineProperty(n,r,s)}else{n[r]=e[r]}}}n.default=e;if(i){i.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function hotLoader(e,i){const o=i.locals?"":"module.hot.accept(undefined, cssReload);";return`${e}\n if(module.hot) {\n // ${Date.now()}\n var cssReload = require(${(0,n.stringifyRequest)(i.context,t.default.join(__dirname,"hmr/hotModuleReplacement.js"))})(module.id, ${JSON.stringify({...i.options,locals:!!i.locals})});\n module.hot.dispose(cssReload);\n ${o}\n }\n `}function pitch(e){const t=this.getOptions(o.default);const i=this.async();const s=this[r.pluginSymbol];if(!s){i(new Error("You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started"));return}const{webpack:a}=this._compiler;const handleExports=(e,o,s,u)=>{let l;let c;const p=typeof t.esModule!=="undefined"?t.esModule:true;const addDependencies=e=>{if(!Array.isArray(e)&&e!=null){throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(e)}`)}const i=new Map;const n=typeof t.emit!=="undefined"?t.emit:true;let o;for(const t of e){if(!t.identifier||!n){continue}const e=i.get(t.identifier)||0;const s=r.default.getCssDependency(a);this._module.addDependency(o=new s(t,t.context,e));i.set(t.identifier,e+1)}if(o&&s){o.assets=s;o.assetsInfo=u}};try{const t=e.__esModule?e.default:e;c=e.__esModule&&(!e.default||!("locals"in e.default));if(c){Object.keys(e).forEach((t=>{if(t!=="default"){if(!l){l={}}l[t]=e[t]}}))}else{l=t&&t.locals}let i;if(!Array.isArray(t)){i=[[null,t]]}else{i=t.map((([e,t,i,r,s,a])=>{let u=e;let l;if(o){const t=(0,n.findModuleById)(o,e);u=t.identifier();({context:l}=t)}else{l=this.rootContext}return{identifier:u,context:l,content:Buffer.from(t),media:i,supports:s,layer:a,sourceMap:r?Buffer.from(JSON.stringify(r)):undefined}}))}addDependencies(i)}catch(e){return i(e)}const d=l?c?Object.keys(l).map((e=>`\nexport var ${e} = ${JSON.stringify(l[e])};`)).join(""):`\n${p?"export default":"module.exports ="} ${JSON.stringify(l)};`:p?`\nexport {};`:"";let f=`// extracted by ${r.pluginName}`;f+=this.hot?hotLoader(d,{context:this.context,options:t,locals:l}):d;return i(null,f)};let{publicPath:u}=this._compilation.outputOptions;if(typeof t.publicPath==="string"){u=t.publicPath}else if(typeof t.publicPath==="function"){u=t.publicPath(this.resourcePath,this.rootContext)}if(u==="auto"){u=n.AUTO_PUBLIC_PATH}if(typeof s.experimentalUseImportModule==="undefined"&&typeof this.importModule==="function"||s.experimentalUseImportModule){if(!this.importModule){i(new Error("You are using 'experimentalUseImportModule' but 'this.importModule' is not available in loader context. You need to have at least webpack 5.33.2."));return}const o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(u);const r=o?u:`${n.ABSOLUTE_PUBLIC_PATH}${u.replace(/\./g,n.SINGLE_DOT_PATH_SEGMENT)}`;this.importModule(`${this.resourcePath}.webpack[javascript/auto]!=!!!${e}`,{layer:t.layer,publicPath:r},((e,t)=>{if(e){i(e);return}handleExports(t)}));return}const l=this.loaders.slice(this.loaderIndex+1);this.addDependency(this.resourcePath);const c="*";const p={filename:c,publicPath:u};const d=this._compilation.createChildCompiler(`${r.pluginName} ${e}`,p);d.options.module={...d.options.module};d.options.module.parser={...d.options.module.parser};d.options.module.parser.javascript={...d.options.module.parser.javascript,url:"relative"};const{NodeTemplatePlugin:f}=a.node;const{NodeTargetPlugin:_}=a.node;new f(p).apply(d);(new _).apply(d);const{EntryOptionPlugin:h}=a;const{library:{EnableLibraryPlugin:m}}=a;new m("commonjs2").apply(d);h.applyEntryOption(d,this.context,{child:{library:{type:"commonjs2"},import:[`!!${e}`]}});const{LimitChunkCountPlugin:y}=a.optimize;new y({maxChunks:1}).apply(d);const{NormalModule:g}=a;d.hooks.thisCompilation.tap(`${r.pluginName} loader`,(t=>{const i=g.getCompilationHooks(t).loader;i.tap(`${r.pluginName} loader`,((t,i)=>{if(i.request===e){i.loaders=l.map((e=>({loader:e.path,options:e.options,ident:e.ident})))}}))}));let b;d.hooks.compilation.tap(r.pluginName,(e=>{e.hooks.processAssets.tap(r.pluginName,(()=>{b=e.assets[c]&&e.assets[c].source();e.chunks.forEach((t=>{t.files.forEach((t=>{e.deleteAsset(t)}))}))}))}));d.runAsChild(((t,o,r)=>{if(t){return i(t)}if(r.errors.length>0){return i(r.errors[0])}const s=Object.create(null);const a=new Map;for(const e of r.getAssets()){s[e.name]=e.source;a.set(e.name,e.info)}r.fileDependencies.forEach((e=>{this.addDependency(e)}),this);r.contextDependencies.forEach((e=>{this.addContextDependency(e)}),this);if(!b){return i(new Error("Didn't get a result from child compiler"))}let u;try{u=(0,n.evalModuleCode)(this,b,e)}catch(e){return i(e)}return handleExports(u,r,s,a)}))}function _default(e){console.log(e)}})();module.exports=i})(); \ No newline at end of file diff --git a/packages/next/compiled/sass-loader/cjs.js b/packages/next/compiled/sass-loader/cjs.js index e83ef689e55c..26dbe5b3c2c6 100644 --- a/packages/next/compiled/sass-loader/cjs.js +++ b/packages/next/compiled/sass-loader/cjs.js @@ -1 +1 @@ -(function(){var __webpack_modules__={814:function(e,t){function set(e,t,s){if(typeof s.value==="object")s.value=klona(s.value);if(!s.enumerable||s.get||s.set||!s.configurable||!s.writable||t==="__proto__"){Object.defineProperty(e,t,s)}else e[t]=s.value}function klona(e){if(typeof e!=="object")return e;var t=0,s,r,n,o=Object.prototype.toString.call(e);if(o==="[object Object]"){n=Object.create(e.__proto__||null)}else if(o==="[object Array]"){n=Array(e.length)}else if(o==="[object Set]"){n=new Set;e.forEach((function(e){n.add(klona(e))}))}else if(o==="[object Map]"){n=new Map;e.forEach((function(e,t){n.set(klona(t),klona(e))}))}else if(o==="[object Date]"){n=new Date(+e)}else if(o==="[object RegExp]"){n=new RegExp(e.source,e.flags)}else if(o==="[object DataView]"){n=new e.constructor(klona(e.buffer))}else if(o==="[object ArrayBuffer]"){n=e.slice(0)}else if(o.slice(-6)==="Array]"){n=new e.constructor(e)}if(n){for(r=Object.getOwnPropertySymbols(e);t{if(e){if(e.file){this.addDependency(r.default.normalize(e.file))}s(new a.default(e));return}let n=t.map?JSON.parse(t.map):null;if(n&&c){n=(0,o.normalizeSourceMap)(n,this.rootContext)}t.stats.includedFiles.forEach((e=>{const t=r.default.normalize(e);if(r.default.isAbsolute(t)){this.addDependency(t)}}));s(null,t.css.toString(),n)}))}var i=loader;t["default"]=i},429:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getRenderFunctionFromSassImplementation=getRenderFunctionFromSassImplementation;exports.getSassImplementation=getSassImplementation;exports.getSassOptions=getSassOptions;exports.getWebpackImporter=getWebpackImporter;exports.getWebpackResolver=getWebpackResolver;exports.isSupportedFibers=isSupportedFibers;exports.normalizeSourceMap=normalizeSourceMap;var _url=_interopRequireDefault(__nccwpck_require__(310));var _path=_interopRequireDefault(__nccwpck_require__(17));var _full=__nccwpck_require__(814);var _neoAsync=_interopRequireDefault(__nccwpck_require__(175));var _SassWarning=_interopRequireDefault(__nccwpck_require__(200));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getDefaultSassImplementation(){let sassImplPkg="sass";try{require.resolve("sass")}catch(error){try{eval("require.resolve('node-sass')");sassImplPkg="node-sass"}catch(e){sassImplPkg="sass"}}return require(sassImplPkg)}function getSassImplementation(e,t){let s=t;if(!s){try{s=getDefaultSassImplementation()}catch(t){e.emitError(t);return}}if(typeof s==="string"){try{s=require(s)}catch(t){e.emitError(t);return}}const{info:r}=s;if(!r){e.emitError(new Error("Unknown Sass implementation."));return}const n=r.split("\t");if(n.length<2){e.emitError(new Error(`Unknown Sass implementation "${r}".`));return}const[o]=n;if(o==="dart-sass"){return s}else if(o==="node-sass"){return s}e.emitError(new Error(`Unknown Sass implementation "${o}".`))}function isProductionLikeMode(e){return e.mode==="production"||!e.mode}function proxyCustomImporters(e,t){return[].concat(e).map((e=>function proxyImporter(...s){const r={...this,webpackLoaderContext:t};return e.apply(r,s)}))}function isSupportedFibers(){const[e]=process.versions.node.split(".");return Number(e)<16}async function getSassOptions(e,t,s,r,n){const o=(0,_full.klona)(t.sassOptions?typeof t.sassOptions==="function"?t.sassOptions(e)||{}:t.sassOptions:{});const a=r.info.includes("dart-sass");if(a&&isSupportedFibers()){const e=!o.fiber&&o.fiber!==false;if(e){let e;try{e=require.resolve("fibers")}catch(e){}if(e){o.fiber=require(e)}}else if(o.fiber===false){delete o.fiber}}else{delete o.fiber}o.file=e.resourcePath;o.data=t.additionalData?typeof t.additionalData==="function"?await t.additionalData(s,e):`${t.additionalData}\n${s}`:s;if(!o.outputStyle&&isProductionLikeMode(e)){o.outputStyle="compressed"}if(n){o.sourceMap=true;o.outFile=_path.default.join(e.rootContext,"style.css.map");o.sourceMapContents=true;o.omitSourceMapUrl=true;o.sourceMapEmbed=false}const{resourcePath:i}=e;const c=_path.default.extname(i);if(c&&c.toLowerCase()===".sass"&&typeof o.indentedSyntax==="undefined"){o.indentedSyntax=true}else{o.indentedSyntax=Boolean(o.indentedSyntax)}o.importer=o.importer?proxyCustomImporters(Array.isArray(o.importer)?o.importer:[o.importer],e):[];o.includePaths=[].concat(process.cwd()).concat((o.includePaths||[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);if(typeof o.charset==="undefined"){o.charset=true}if(!o.logger){const s=t.warnRuleAsWarning===true;const r=e.getLogger("sass-loader");const formatSpan=e=>`${e.url||"-"}:${e.start.line}:${e.start.column}: `;o.logger={debug(e,t){let s="";if(t.span){s=formatSpan(t.span)}s+=e;r.debug(s)},warn(t,n){let o="";if(n.deprecation){o+="Deprecation "}if(n.span&&!n.stack){o=formatSpan(n.span)}o+=t;if(n.stack){o+=`\n\n${n.stack}`}if(s){e.emitWarning(new _SassWarning.default(o,n))}else{r.warn(o)}}}}return o}const MODULE_REQUEST_REGEX=/^[^?]*~/;const IS_MODULE_IMPORT=/^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/]+\/)$/;function getPossibleRequests(e,t=false,s=false){let r=e;if(t){if(MODULE_REQUEST_REGEX.test(e)){r=r.replace(MODULE_REQUEST_REGEX,"")}if(IS_MODULE_IMPORT.test(e)){r=r[r.length-1]==="/"?r:`${r}/`;return[...new Set([r,e])]}}const n=_path.default.extname(r).toLowerCase();if(n===".css"){return[]}const o=_path.default.dirname(r);const a=o==="."?"":`${o}/`;const i=_path.default.basename(r);const c=_path.default.basename(r,n);return[...new Set([].concat(s?[`${a}_${c}.import${n}`,`${a}${c}.import${n}`]:[]).concat([`${a}_${i}`,`${a}${i}`]).concat(t?[e]:[]))]}function promiseResolve(e){return(t,s)=>new Promise(((r,n)=>{e(t,s,((e,t)=>{if(e){n(e)}else{r(t)}}))}))}const IS_SPECIAL_MODULE_IMPORT=/^~[^/]+$/;const IS_NATIVE_WIN32_PATH=/^[a-z]:[/\\]|^\\\\/i;function getWebpackResolver(e,t,s=[]){async function startResolving(e){if(e.length===0){return Promise.reject()}const[{possibleRequests:t}]=e;if(t.length===0){return Promise.reject()}const[{resolve:s,context:r}]=e;try{return await s(r,t[0])}catch(s){const[,...r]=t;if(r.length===0){const[,...t]=e;return startResolving(t)}e[0].possibleRequests=r;return startResolving(e)}}const r=t.info.includes("dart-sass");const n=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const o=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index.import","_index","index.import","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const a=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const i=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index.import","_index","index.import","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));return(e,t,c)=>{if(!r&&!_path.default.isAbsolute(e)){return Promise.reject()}const l=t;const u=l.slice(0,5).toLowerCase()==="file:";if(u){try{t=_url.default.fileURLToPath(l)}catch(e){t=t.slice(7)}}let p=[];const f=!IS_SPECIAL_MODULE_IMPORT.test(t)&&!u&&!l.startsWith("/")&&!IS_NATIVE_WIN32_PATH.test(l);if(s.length>0&&f){const a=getPossibleRequests(t,false,c);if(!r){p=p.concat({resolve:c?o:n,context:_path.default.dirname(e),possibleRequests:a})}p=p.concat(s.map((e=>({resolve:c?o:n,context:e,possibleRequests:a}))))}const d=getPossibleRequests(t,true,c);p=p.concat({resolve:c?i:a,context:_path.default.dirname(e),possibleRequests:d});return startResolving(p)}}const MATCH_CSS=/\.css$/i;function getWebpackImporter(e,t,s){const r=getWebpackResolver(e.getResolve,t,s);return function importer(t,s,n){const{fromImport:o}=this;r(s,t,o).then((t=>{e.addDependency(_path.default.normalize(t));n({file:t.replace(MATCH_CSS,"")})})).catch((()=>{n({file:t})}))}}let nodeSassJobQueue=null;function getRenderFunctionFromSassImplementation(e){const t=e.info.includes("dart-sass");if(t){return e.render.bind(e)}if(nodeSassJobQueue===null){const t=Number(process.env.UV_THREADPOOL_SIZE||4);nodeSassJobQueue=_neoAsync.default.queue(e.render.bind(e),t-1)}return nodeSassJobQueue.push.bind(nodeSassJobQueue)}const ABSOLUTE_SCHEME=/^[A-Za-z0-9+\-.]+:/;function getURLType(e){if(e[0]==="/"){if(e[1]==="/"){return"scheme-relative"}return"path-absolute"}if(IS_NATIVE_WIN32_PATH.test(e)){return"path-absolute"}return ABSOLUTE_SCHEME.test(e)?"absolute":"path-relative"}function normalizeSourceMap(e,t){const s=e;delete s.file;s.sourceRoot="";s.sources=s.sources.map((e=>{const s=getURLType(e);if(s==="path-relative"){return _path.default.resolve(t,_path.default.normalize(e))}return e}));return s}},175:function(e){"use strict";e.exports=require("next/dist/compiled/neo-async")},17:function(e){"use strict";e.exports=require("path")},310:function(e){"use strict";e.exports=require("url")},725:function(e){"use strict";e.exports=JSON.parse('{"title":"Sass Loader options","type":"object","properties":{"implementation":{"description":"The implementation of the sass to be used.","link":"https://github.com/webpack-contrib/sass-loader#implementation","anyOf":[{"type":"string"},{"type":"object"}]},"sassOptions":{"description":"Options for `node-sass` or `sass` (`Dart Sass`) implementation.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","anyOf":[{"type":"object","additionalProperties":true},{"instanceof":"Function"}]},"additionalData":{"description":"Prepends/Appends `Sass`/`SCSS` code before the actual entry file.","link":"https://github.com/webpack-contrib/sass-loader#additionaldata","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"sourceMap":{"description":"Enables/Disables generation of source maps.","link":"https://github.com/webpack-contrib/sass-loader#sourcemap","type":"boolean"},"webpackImporter":{"description":"Enables/Disables default `webpack` importer.","link":"https://github.com/webpack-contrib/sass-loader#webpackimporter","type":"boolean"},"warnRuleAsWarning":{"description":"Treats the \'@warn\' rule as a webpack warning.","link":"https://github.com/webpack-contrib/sass-loader#warnruleaswarning","type":"boolean"}},"additionalProperties":false}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(657);module.exports=__webpack_exports__})(); \ No newline at end of file +(function(){var __webpack_modules__={814:function(e,t){function set(e,t,s){if(typeof s.value==="object")s.value=klona(s.value);if(!s.enumerable||s.get||s.set||!s.configurable||!s.writable||t==="__proto__"){Object.defineProperty(e,t,s)}else e[t]=s.value}function klona(e){if(typeof e!=="object")return e;var t=0,s,r,n,o=Object.prototype.toString.call(e);if(o==="[object Object]"){n=Object.create(e.__proto__||null)}else if(o==="[object Array]"){n=Array(e.length)}else if(o==="[object Set]"){n=new Set;e.forEach((function(e){n.add(klona(e))}))}else if(o==="[object Map]"){n=new Map;e.forEach((function(e,t){n.set(klona(t),klona(e))}))}else if(o==="[object Date]"){n=new Date(+e)}else if(o==="[object RegExp]"){n=new RegExp(e.source,e.flags)}else if(o==="[object DataView]"){n=new e.constructor(klona(e.buffer))}else if(o==="[object ArrayBuffer]"){n=e.slice(0)}else if(o.slice(-6)==="Array]"){n=new e.constructor(e)}if(n){for(r=Object.getOwnPropertySymbols(e);t{if(e){if(e.file){this.addDependency(r.default.normalize(e.file))}s(new a.default(e));return}let n=t.map?JSON.parse(t.map):null;if(n&&c){n=(0,o.normalizeSourceMap)(n,this.rootContext)}t.stats.includedFiles.forEach((e=>{const t=r.default.normalize(e);if(r.default.isAbsolute(t)){this.addDependency(t)}}));s(null,t.css.toString(),n)}))}var i=loader;t["default"]=i},179:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getRenderFunctionFromSassImplementation=getRenderFunctionFromSassImplementation;exports.getSassImplementation=getSassImplementation;exports.getSassOptions=getSassOptions;exports.getWebpackImporter=getWebpackImporter;exports.getWebpackResolver=getWebpackResolver;exports.isSupportedFibers=isSupportedFibers;exports.normalizeSourceMap=normalizeSourceMap;var _url=_interopRequireDefault(__nccwpck_require__(310));var _path=_interopRequireDefault(__nccwpck_require__(17));var _full=__nccwpck_require__(814);var _neoAsync=_interopRequireDefault(__nccwpck_require__(175));var _SassWarning=_interopRequireDefault(__nccwpck_require__(66));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getDefaultSassImplementation(){let sassImplPkg="sass";try{require.resolve("sass")}catch(error){try{eval("require.resolve('node-sass')");sassImplPkg="node-sass"}catch(e){sassImplPkg="sass"}}return require(sassImplPkg)}function getSassImplementation(e,t){let s=t;if(!s){try{s=getDefaultSassImplementation()}catch(t){e.emitError(t);return}}if(typeof s==="string"){try{s=require(s)}catch(t){e.emitError(t);return}}const{info:r}=s;if(!r){e.emitError(new Error("Unknown Sass implementation."));return}const n=r.split("\t");if(n.length<2){e.emitError(new Error(`Unknown Sass implementation "${r}".`));return}const[o]=n;if(o==="dart-sass"){return s}else if(o==="node-sass"){return s}e.emitError(new Error(`Unknown Sass implementation "${o}".`))}function isProductionLikeMode(e){return e.mode==="production"||!e.mode}function proxyCustomImporters(e,t){return[].concat(e).map((e=>function proxyImporter(...s){const r={...this,webpackLoaderContext:t};return e.apply(r,s)}))}function isSupportedFibers(){const[e]=process.versions.node.split(".");return Number(e)<16}async function getSassOptions(e,t,s,r,n){const o=(0,_full.klona)(t.sassOptions?typeof t.sassOptions==="function"?t.sassOptions(e)||{}:t.sassOptions:{});const a=r.info.includes("dart-sass");if(a&&isSupportedFibers()){const e=!o.fiber&&o.fiber!==false;if(e){let e;try{e=require.resolve("fibers")}catch(e){}if(e){o.fiber=require(e)}}else if(o.fiber===false){delete o.fiber}}else{delete o.fiber}o.file=e.resourcePath;o.data=t.additionalData?typeof t.additionalData==="function"?await t.additionalData(s,e):`${t.additionalData}\n${s}`:s;if(!o.outputStyle&&isProductionLikeMode(e)){o.outputStyle="compressed"}if(n){o.sourceMap=true;o.outFile=_path.default.join(e.rootContext,"style.css.map");o.sourceMapContents=true;o.omitSourceMapUrl=true;o.sourceMapEmbed=false}const{resourcePath:i}=e;const c=_path.default.extname(i);if(c&&c.toLowerCase()===".sass"&&typeof o.indentedSyntax==="undefined"){o.indentedSyntax=true}else{o.indentedSyntax=Boolean(o.indentedSyntax)}o.importer=o.importer?proxyCustomImporters(Array.isArray(o.importer)?o.importer:[o.importer],e):[];o.includePaths=[].concat(process.cwd()).concat((o.includePaths||[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);if(typeof o.charset==="undefined"){o.charset=true}if(!o.logger){const s=t.warnRuleAsWarning===true;const r=e.getLogger("sass-loader");const formatSpan=e=>`${e.url||"-"}:${e.start.line}:${e.start.column}: `;o.logger={debug(e,t){let s="";if(t.span){s=formatSpan(t.span)}s+=e;r.debug(s)},warn(t,n){let o="";if(n.deprecation){o+="Deprecation "}if(n.span&&!n.stack){o=formatSpan(n.span)}o+=t;if(n.stack){o+=`\n\n${n.stack}`}if(s){e.emitWarning(new _SassWarning.default(o,n))}else{r.warn(o)}}}}return o}const MODULE_REQUEST_REGEX=/^[^?]*~/;const IS_MODULE_IMPORT=/^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/]+\/)$/;function getPossibleRequests(e,t=false,s=false){let r=e;if(t){if(MODULE_REQUEST_REGEX.test(e)){r=r.replace(MODULE_REQUEST_REGEX,"")}if(IS_MODULE_IMPORT.test(e)){r=r[r.length-1]==="/"?r:`${r}/`;return[...new Set([r,e])]}}const n=_path.default.extname(r).toLowerCase();if(n===".css"){return[]}const o=_path.default.dirname(r);const a=o==="."?"":`${o}/`;const i=_path.default.basename(r);const c=_path.default.basename(r,n);return[...new Set([].concat(s?[`${a}_${c}.import${n}`,`${a}${c}.import${n}`]:[]).concat([`${a}_${i}`,`${a}${i}`]).concat(t?[e]:[]))]}function promiseResolve(e){return(t,s)=>new Promise(((r,n)=>{e(t,s,((e,t)=>{if(e){n(e)}else{r(t)}}))}))}const IS_SPECIAL_MODULE_IMPORT=/^~[^/]+$/;const IS_NATIVE_WIN32_PATH=/^[a-z]:[/\\]|^\\\\/i;function getWebpackResolver(e,t,s=[]){async function startResolving(e){if(e.length===0){return Promise.reject()}const[{possibleRequests:t}]=e;if(t.length===0){return Promise.reject()}const[{resolve:s,context:r}]=e;try{return await s(r,t[0])}catch(s){const[,...r]=t;if(r.length===0){const[,...t]=e;return startResolving(t)}e[0].possibleRequests=r;return startResolving(e)}}const r=t.info.includes("dart-sass");const n=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const o=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index.import","_index","index.import","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const a=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const i=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index.import","_index","index.import","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));return(e,t,c)=>{if(!r&&!_path.default.isAbsolute(e)){return Promise.reject()}const l=t;const u=l.slice(0,5).toLowerCase()==="file:";if(u){try{t=_url.default.fileURLToPath(l)}catch(e){t=t.slice(7)}}let p=[];const f=!IS_SPECIAL_MODULE_IMPORT.test(t)&&!u&&!l.startsWith("/")&&!IS_NATIVE_WIN32_PATH.test(l);if(s.length>0&&f){const a=getPossibleRequests(t,false,c);if(!r){p=p.concat({resolve:c?o:n,context:_path.default.dirname(e),possibleRequests:a})}p=p.concat(s.map((e=>({resolve:c?o:n,context:e,possibleRequests:a}))))}const d=getPossibleRequests(t,true,c);p=p.concat({resolve:c?i:a,context:_path.default.dirname(e),possibleRequests:d});return startResolving(p)}}const MATCH_CSS=/\.css$/i;function getWebpackImporter(e,t,s){const r=getWebpackResolver(e.getResolve,t,s);return function importer(t,s,n){const{fromImport:o}=this;r(s,t,o).then((t=>{e.addDependency(_path.default.normalize(t));n({file:t.replace(MATCH_CSS,"")})})).catch((()=>{n({file:t})}))}}let nodeSassJobQueue=null;function getRenderFunctionFromSassImplementation(e){const t=e.info.includes("dart-sass");if(t){return e.render.bind(e)}if(nodeSassJobQueue===null){const t=Number(process.env.UV_THREADPOOL_SIZE||4);nodeSassJobQueue=_neoAsync.default.queue(e.render.bind(e),t-1)}return nodeSassJobQueue.push.bind(nodeSassJobQueue)}const ABSOLUTE_SCHEME=/^[A-Za-z0-9+\-.]+:/;function getURLType(e){if(e[0]==="/"){if(e[1]==="/"){return"scheme-relative"}return"path-absolute"}if(IS_NATIVE_WIN32_PATH.test(e)){return"path-absolute"}return ABSOLUTE_SCHEME.test(e)?"absolute":"path-relative"}function normalizeSourceMap(e,t){const s=e;delete s.file;s.sourceRoot="";s.sources=s.sources.map((e=>{const s=getURLType(e);if(s==="path-relative"){return _path.default.resolve(t,_path.default.normalize(e))}return e}));return s}},175:function(e){"use strict";e.exports=require("next/dist/compiled/neo-async")},17:function(e){"use strict";e.exports=require("path")},310:function(e){"use strict";e.exports=require("url")},615:function(e){"use strict";e.exports=JSON.parse('{"title":"Sass Loader options","type":"object","properties":{"implementation":{"description":"The implementation of the sass to be used.","link":"https://github.com/webpack-contrib/sass-loader#implementation","anyOf":[{"type":"string"},{"type":"object"}]},"sassOptions":{"description":"Options for `node-sass` or `sass` (`Dart Sass`) implementation.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","anyOf":[{"type":"object","additionalProperties":true},{"instanceof":"Function"}]},"additionalData":{"description":"Prepends/Appends `Sass`/`SCSS` code before the actual entry file.","link":"https://github.com/webpack-contrib/sass-loader#additionaldata","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"sourceMap":{"description":"Enables/Disables generation of source maps.","link":"https://github.com/webpack-contrib/sass-loader#sourcemap","type":"boolean"},"webpackImporter":{"description":"Enables/Disables default `webpack` importer.","link":"https://github.com/webpack-contrib/sass-loader#webpackimporter","type":"boolean"},"warnRuleAsWarning":{"description":"Treats the \'@warn\' rule as a webpack warning.","link":"https://github.com/webpack-contrib/sass-loader#warnruleaswarning","type":"boolean"}},"additionalProperties":false}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(172);module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/scripts/check-pre-compiled.sh b/scripts/check-pre-compiled.sh index b44d3e26b22e..f6a5c634f2bd 100755 --- a/scripts/check-pre-compiled.sh +++ b/scripts/check-pre-compiled.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + cd packages/next cp node_modules/webpack5/lib/hmr/HotModuleReplacement.runtime.js bundles/webpack/packages/ From 78cbfa06fb1e916d82c1aa1130da3fdd74339e01 Mon Sep 17 00:00:00 2001 From: Shu Ding Date: Thu, 9 Jun 2022 17:48:50 +0200 Subject: [PATCH 006/149] Revert "Revert "Avoid unnecessary router state changes"" (#37593) Reverts vercel/next.js#37572, with a new test case added about `routeChangeComplete`. --- packages/next/shared/lib/router/router.ts | 99 +++++++++++++------ .../rewrites-client-rerender/next.config.js | 10 ++ .../rewrites-client-rerender/pages/index.js | 17 ++++ .../test/index.test.js | 56 +++++++++++ 4 files changed, 154 insertions(+), 28 deletions(-) create mode 100644 test/integration/rewrites-client-rerender/next.config.js create mode 100644 test/integration/rewrites-client-rerender/pages/index.js create mode 100644 test/integration/rewrites-client-rerender/test/index.test.js diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 17586b1b1f29..2264635cf525 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -81,6 +81,37 @@ function buildCancellationError() { }) } +function compareRouterStates(a: Router['state'], b: Router['state']) { + const stateKeys = Object.keys(a) + if (stateKeys.length !== Object.keys(b).length) return false + + for (let i = stateKeys.length; i--; ) { + const key = stateKeys[i] + if (key === 'query') { + const queryKeys = Object.keys(a.query) + if (queryKeys.length !== Object.keys(b.query).length) { + return false + } + for (let j = queryKeys.length; j--; ) { + const queryKey = queryKeys[j] + if ( + !b.query.hasOwnProperty(queryKey) || + a.query[queryKey] !== b.query[queryKey] + ) { + return false + } + } + } else if ( + !b.hasOwnProperty(key) || + a[key as keyof Router['state']] !== b[key as keyof Router['state']] + ) { + return false + } + } + + return true +} + /** * Detects whether a given url is routable by the Next.js router (browser only). */ @@ -1312,38 +1343,50 @@ export default class Router implements BaseRouter { const shouldScroll = options.scroll ?? !isValidShallowRoute const resetScroll = shouldScroll ? { x: 0, y: 0 } : null - await this.set( - { - ...nextState, - route, - pathname, - query, - asPath: cleanedAs, - isFallback: false, - }, - routeInfo, - forcedScroll ?? resetScroll - ).catch((e) => { - if (e.cancelled) error = error || e - else throw e - }) - - if (error) { - Router.events.emit('routeChangeError', error, cleanedAs, routeProps) - throw error + const nextScroll = forcedScroll ?? resetScroll + const mergedNextState = { + ...nextState, + route, + pathname, + query, + asPath: cleanedAs, + isFallback: false, } - if (process.env.__NEXT_I18N_SUPPORT) { - if (nextState.locale) { - document.documentElement.lang = nextState.locale + // for query updates we can skip it if the state is unchanged and we don't + // need to scroll + // https://github.com/vercel/next.js/issues/37139 + const canSkipUpdating = + (options as any)._h && + !nextScroll && + compareRouterStates(mergedNextState, this.state) + + if (!canSkipUpdating) { + await this.set(mergedNextState, routeInfo, nextScroll).catch((e) => { + if (e.cancelled) error = error || e + else throw e + }) + + if (error) { + Router.events.emit('routeChangeError', error, cleanedAs, routeProps) + throw error } - } - Router.events.emit('routeChangeComplete', as, routeProps) - // A hash mark # is the optional last part of a URL - const hashRegex = /#.+$/ - if (shouldScroll && hashRegex.test(as)) { - this.scrollToHash(as) + if (process.env.__NEXT_I18N_SUPPORT) { + if (nextState.locale) { + document.documentElement.lang = nextState.locale + } + } + Router.events.emit('routeChangeComplete', as, routeProps) + + // A hash mark # is the optional last part of a URL + const hashRegex = /#.+$/ + if (shouldScroll && hashRegex.test(as)) { + this.scrollToHash(as) + } + } else { + // Still send the event to notify the inital load. + Router.events.emit('routeChangeComplete', as, routeProps) } return true diff --git a/test/integration/rewrites-client-rerender/next.config.js b/test/integration/rewrites-client-rerender/next.config.js new file mode 100644 index 000000000000..111b8e2c548f --- /dev/null +++ b/test/integration/rewrites-client-rerender/next.config.js @@ -0,0 +1,10 @@ +module.exports = { + rewrites() { + return [ + { + source: '/rewrite', + destination: '/?foo=bar', + }, + ] + }, +} diff --git a/test/integration/rewrites-client-rerender/pages/index.js b/test/integration/rewrites-client-rerender/pages/index.js new file mode 100644 index 000000000000..476896e5ba7b --- /dev/null +++ b/test/integration/rewrites-client-rerender/pages/index.js @@ -0,0 +1,17 @@ +import { useEffect } from 'react' +import Router, { useRouter } from 'next/router' + +Router.events.on('routeChangeComplete', (url) => { + window.__route_change_complete = url === '/' +}) + +export default function Index() { + const { query } = useRouter() + + useEffect(() => { + window.__renders = window.__renders || [] + window.__renders.push(query.foo) + }) + + return

A page should not be rerendered if unnecessary.

+} diff --git a/test/integration/rewrites-client-rerender/test/index.test.js b/test/integration/rewrites-client-rerender/test/index.test.js new file mode 100644 index 000000000000..f6aa5b4acfa6 --- /dev/null +++ b/test/integration/rewrites-client-rerender/test/index.test.js @@ -0,0 +1,56 @@ +/* eslint-env jest */ + +import { join } from 'path' +import { + findPort, + killApp, + launchApp, + nextBuild, + nextStart, +} from 'next-test-utils' +import webdriver from 'next-webdriver' + +const appDir = join(__dirname, '../') + +let appPort +let app + +const runTests = () => { + it('should not trigger unncessary rerenders', async () => { + const browser = await webdriver(appPort, '/') + await new Promise((resolve) => setTimeout(resolve, 100)) + + expect(await browser.eval('window.__renders')).toEqual([undefined]) + expect(await browser.eval('window.__route_change_complete')).toEqual(true) + }) + + it('should rerender with the correct query parameter if present', async () => { + const browser = await webdriver(appPort, '/rewrite') + await new Promise((resolve) => setTimeout(resolve, 100)) + + expect(await browser.eval('window.__renders')).toEqual([undefined, 'bar']) + }) +} + +describe('rewrites client rerender', () => { + describe('dev mode', () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(() => killApp(app)) + + runTests() + }) + + describe('production mode', () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(() => killApp(app)) + + runTests() + }) +}) From 607ff2b3225ea9fab04b4fca07e4a609b05e8038 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 10 Jun 2022 12:35:12 -0500 Subject: [PATCH 007/149] Update to process redirects/rewrites for _next/data with middleware (#37574) * Update to process redirects/rewrites for _next/data * correct matched-path resolving with middleware * Add next-data header * migrate middleware tests * lint-fix * update error case * update test case * Handle additional resolving cases and add more tests * update test from merge * fix test * rm .only * apply changes from review * ensure _next/data resolving does not apply without middleware --- packages/next/client/page-loader.ts | 5 +- packages/next/server/base-server.ts | 178 ++++--- packages/next/server/dev/next-dev-server.ts | 3 + packages/next/server/next-server.ts | 17 +- packages/next/server/request-meta.ts | 4 +- packages/next/server/router.ts | 8 +- packages/next/server/web/adapter.ts | 15 +- packages/next/shared/lib/router/router.ts | 318 ++++++------ .../lib/router/utils/prepare-destination.ts | 1 + pnpm-lock.yaml | 6 +- .../middleware-base-path/app}/middleware.js | 0 .../middleware-base-path/app}/next.config.js | 0 .../middleware-base-path/app}/pages/about.js | 0 .../middleware-base-path/app}/pages/index.js | 0 .../middleware-base-path/test/index.test.ts | 38 ++ .../middleware-general/app}/middleware.js | 17 +- .../middleware-general/app}/next.config.js | 9 + .../app}/node_modules/shared-package/index.js | 0 .../node_modules/shared-package/package.json | 0 .../middleware-general/app}/pages/[id].js | 0 .../middleware-general/app}/pages/about/a.js | 0 .../middleware-general/app}/pages/about/b.js | 0 .../app}/pages/api/headers.js | 0 .../app}/pages/error-throw.js | 0 .../middleware-general/app}/pages/error.js | 0 .../app}/pages/ssr-page-2.js | 0 .../middleware-general/app}/pages/ssr-page.js | 0 .../middleware-general/test/index.test.ts} | 334 ++++++------- .../middleware-redirects/app}/middleware.js | 7 + .../middleware-redirects/app}/next.config.js | 0 .../middleware-redirects/app}/pages/api/ok.js | 0 .../middleware-redirects/app}/pages/index.js | 0 .../app}/pages/new-home.js | 0 .../middleware-redirects/test/index.test.ts | 153 ++++++ .../middleware-responses/app}/middleware.js | 5 + .../middleware-responses/app}/next.config.js | 0 .../middleware-responses/app}/pages/index.js | 0 .../middleware-responses/test/index.test.ts | 99 ++++ .../middleware-rewrites/app}/middleware.js | 5 + .../middleware-rewrites/app}/next.config.js | 0 .../middleware-rewrites/app}/pages/[param].js | 0 .../app}/pages/ab-test/a.js | 0 .../app}/pages/ab-test/b.js | 0 .../app}/pages/about-bypass.js | 0 .../middleware-rewrites/app}/pages/about.js | 0 .../app}/pages/clear-query-params.js | 0 .../app}/pages/country/[country].js | 0 .../app}/pages/dynamic-fallback/[...parts].js | 0 .../app}/pages/fallback-true-blog/[slug].js | 8 +- .../middleware-rewrites/app}/pages/i18n.js | 0 .../middleware-rewrites/app}/pages/index.js | 0 .../middleware-rewrites/test/index.test.ts | 451 +++++++++++++++++ .../pages/nav/hash-changes-with-state.js | 12 +- .../middleware-base-path/test/index.test.js | 60 --- .../middleware-redirects/test/index.test.js | 187 ------- .../middleware-responses/test/index.test.js | 119 ----- .../middleware-rewrites/test/index.test.js | 460 ------------------ .../test/index.test.js | 34 +- test/lib/e2e-utils.ts | 1 + test/lib/next-modes/base.ts | 6 +- test/lib/next-modes/next-deploy.ts | 10 + test/lib/next-modes/next-dev.ts | 1 + test/lib/next-modes/next-start.ts | 1 + .../required-server-files-i18n.test.ts | 34 +- test/production/required-server-files.test.ts | 37 +- 65 files changed, 1310 insertions(+), 1333 deletions(-) rename test/{integration/middleware-base-path => e2e/middleware-base-path/app}/middleware.js (100%) rename test/{integration/middleware-base-path => e2e/middleware-base-path/app}/next.config.js (100%) rename test/{integration/middleware-base-path => e2e/middleware-base-path/app}/pages/about.js (100%) rename test/{integration/middleware-base-path => e2e/middleware-base-path/app}/pages/index.js (100%) create mode 100644 test/e2e/middleware-base-path/test/index.test.ts rename test/{integration/middleware-general => e2e/middleware-general/app}/middleware.js (92%) rename test/{integration/middleware-general => e2e/middleware-general/app}/next.config.js (65%) rename test/{integration/middleware-general => e2e/middleware-general/app}/node_modules/shared-package/index.js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/node_modules/shared-package/package.json (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/[id].js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/about/a.js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/about/b.js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/api/headers.js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/error-throw.js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/error.js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/ssr-page-2.js (100%) rename test/{integration/middleware-general => e2e/middleware-general/app}/pages/ssr-page.js (100%) rename test/{integration/middleware-general/test/index.test.js => e2e/middleware-general/test/index.test.ts} (55%) rename test/{integration/middleware-redirects => e2e/middleware-redirects/app}/middleware.js (90%) rename test/{integration/middleware-redirects => e2e/middleware-redirects/app}/next.config.js (100%) rename test/{integration/middleware-redirects => e2e/middleware-redirects/app}/pages/api/ok.js (100%) rename test/{integration/middleware-redirects => e2e/middleware-redirects/app}/pages/index.js (100%) rename test/{integration/middleware-redirects => e2e/middleware-redirects/app}/pages/new-home.js (100%) create mode 100644 test/e2e/middleware-redirects/test/index.test.ts rename test/{integration/middleware-responses => e2e/middleware-responses/app}/middleware.js (92%) rename test/{integration/middleware-responses => e2e/middleware-responses/app}/next.config.js (100%) rename test/{integration/middleware-responses => e2e/middleware-responses/app}/pages/index.js (100%) create mode 100644 test/e2e/middleware-responses/test/index.test.ts rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/middleware.js (95%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/next.config.js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/[param].js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/ab-test/a.js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/ab-test/b.js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/about-bypass.js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/about.js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/clear-query-params.js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/country/[country].js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/dynamic-fallback/[...parts].js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/fallback-true-blog/[slug].js (63%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/i18n.js (100%) rename test/{integration/middleware-rewrites => e2e/middleware-rewrites/app}/pages/index.js (100%) create mode 100644 test/e2e/middleware-rewrites/test/index.test.ts delete mode 100644 test/integration/middleware-base-path/test/index.test.js delete mode 100644 test/integration/middleware-redirects/test/index.test.js delete mode 100644 test/integration/middleware-responses/test/index.test.js delete mode 100644 test/integration/middleware-rewrites/test/index.test.js diff --git a/packages/next/client/page-loader.ts b/packages/next/client/page-loader.ts index 42de1eff4679..e30f4d279c15 100644 --- a/packages/next/client/page-loader.ts +++ b/packages/next/client/page-loader.ts @@ -117,6 +117,7 @@ export default class PageLoader { asPath: string href: string locale?: string | false + skipInterpolation?: boolean }): string { const { asPath, href, locale } = params const { pathname: hrefPathname, query, search } = parseRelativeUrl(href) @@ -138,7 +139,9 @@ export default class PageLoader { } return getHrefForSlug( - isDynamicRoute(route) + params.skipInterpolation + ? asPathname + : isDynamicRoute(route) ? interpolateAs(hrefPathname, asPathname, query).result : route ) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index 98f039af7e8f..fd6989fb9956 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -439,71 +439,60 @@ export default abstract class Server { if ( this.minimalMode && - req.headers['x-matched-path'] && typeof req.headers['x-matched-path'] === 'string' ) { - const reqUrlIsDataUrl = req.url?.includes('/_next/data') - const parsedMatchedPath = parseUrl(req.headers['x-matched-path'] || '') - const matchedPathIsDataUrl = - parsedMatchedPath.pathname?.includes('/_next/data') - const isDataUrl = reqUrlIsDataUrl || matchedPathIsDataUrl - - let parsedPath = parseUrl( - isDataUrl ? req.url! : (req.headers['x-matched-path'] as string), - true - ) - let matchedPathname = parsedPath.pathname! - - let matchedPathnameNoExt = isDataUrl - ? matchedPathname.replace(/\.json$/, '') - : matchedPathname - - let srcPathname = isDataUrl - ? this.stripNextDataPath( - parsedMatchedPath.pathname?.replace(/\.json$/, '') || - matchedPathnameNoExt - ) || '/' - : matchedPathnameNoExt - - if (this.nextConfig.i18n) { - const localePathResult = normalizeLocalePath( - matchedPathname || '/', - this.nextConfig.i18n.locales - ) - - if (localePathResult.detectedLocale) { - parsedUrl.query.__nextLocale = localePathResult.detectedLocale + try { + // x-matched-path is the source of truth, it tells what page + // should be rendered because we don't process rewrites in minimalMode + let matchedPath = new URL( + req.headers['x-matched-path'], + 'http://localhost' + ).pathname + + let urlPathname = new URL(req.url, 'http://localhost').pathname + + // For ISR the URL is normalized to the prerenderPath so if + // it's a data request the URL path will be the data URL, + // basePath is already stripped by this point + if (urlPathname.startsWith(`/_next/data/`)) { + parsedUrl.query.__nextDataReq = '1' } - } + matchedPath = this.stripNextDataPath(matchedPath, false) - if (isDataUrl) { - matchedPathname = denormalizePagePath(matchedPathname) - matchedPathnameNoExt = denormalizePagePath(matchedPathnameNoExt) - srcPathname = denormalizePagePath(srcPathname) - } + if (this.nextConfig.i18n) { + const localeResult = normalizeLocalePath( + matchedPath, + this.nextConfig.i18n.locales + ) + matchedPath = localeResult.pathname - if ( - !isDynamicRoute(srcPathname) && - !(await this.hasPage(srcPathname)) - ) { - for (const dynamicRoute of this.dynamicRoutes || []) { - if (dynamicRoute.match(srcPathname)) { - srcPathname = dynamicRoute.page - break + if (localeResult.detectedLocale) { + parsedUrl.query.__nextLocale = localeResult.detectedLocale } } - } + matchedPath = denormalizePagePath(matchedPath) + let srcPathname = matchedPath - const pageIsDynamic = isDynamicRoute(srcPathname) - const utils = getUtils({ - pageIsDynamic, - page: srcPathname, - i18n: this.nextConfig.i18n, - basePath: this.nextConfig.basePath, - rewrites: this.customRoutes.rewrites, - }) + if ( + !isDynamicRoute(srcPathname) && + !(await this.hasPage(srcPathname)) + ) { + for (const dynamicRoute of this.dynamicRoutes || []) { + if (dynamicRoute.match(srcPathname)) { + srcPathname = dynamicRoute.page + break + } + } + } - try { + const pageIsDynamic = isDynamicRoute(srcPathname) + const utils = getUtils({ + pageIsDynamic, + page: srcPathname, + i18n: this.nextConfig.i18n, + basePath: this.nextConfig.basePath, + rewrites: this.customRoutes.rewrites, + }) // ensure parsedUrl.pathname includes URL before processing // rewrites or they won't match correctly if (defaultLocale && !pathnameInfo.locale) { @@ -523,7 +512,6 @@ export default abstract class Server { if (pageIsDynamic) { let params: ParsedUrlQuery | false = {} - Object.assign(parsedUrl.query, parsedPath.query) const paramsResult = utils.normalizeDynamicRouteParams( parsedUrl.query ) @@ -542,7 +530,7 @@ export default abstract class Server { parsedUrl.query.__nextLocale = opts.locale } } else { - params = utils.dynamicRouteMatcher!(matchedPathnameNoExt) || {} + params = utils.dynamicRouteMatcher!(matchedPath) || {} } if (params) { @@ -550,19 +538,9 @@ export default abstract class Server { params = utils.normalizeDynamicRouteParams(params).params } - matchedPathname = utils.interpolateDynamicPath( - matchedPathname, - params - ) + matchedPath = utils.interpolateDynamicPath(srcPathname, params) req.url = utils.interpolateDynamicPath(req.url!, params) } - - if (reqUrlIsDataUrl && matchedPathIsDataUrl) { - req.url = formatUrl({ - ...parsedPath, - pathname: matchedPathname, - }) - } Object.assign(parsedUrl.query, params) } @@ -572,6 +550,10 @@ export default abstract class Server { ...Object.keys(utils.defaultRouteRegex?.groups || {}), ]) } + parsedUrl.pathname = `${this.nextConfig.basePath || ''}${ + matchedPath === '/' && this.nextConfig.basePath ? '' : matchedPath + }` + url.pathname = parsedUrl.pathname } catch (err) { if (err instanceof DecodeError || err instanceof NormalizeError) { res.statusCode = 400 @@ -579,13 +561,6 @@ export default abstract class Server { } throw err } - - parsedUrl.pathname = `${this.nextConfig.basePath || ''}${ - matchedPathname === '/' && this.nextConfig.basePath - ? '' - : matchedPathname - }` - url.pathname = parsedUrl.pathname } addRequestMeta(req, '__nextHadTrailingSlash', pathnameInfo.trailingSlash) @@ -773,18 +748,10 @@ export default abstract class Server { } } - const parsedUrl = parseUrl(pathname, true) - - await this.render( - req, - res, - pathname, - { ..._parsedUrl.query, _nextDataReq: '1' }, - parsedUrl, - true - ) return { - finished: true, + pathname, + query: { ..._parsedUrl.query, __nextDataReq: '1' }, + finished: false, } }, }, @@ -1136,7 +1103,7 @@ export default abstract class Server { if ( !internalRender && !this.minimalMode && - !query._nextDataReq && + !query.__nextDataReq && (req.url?.match(/^\/_next\//) || (this.hasStaticDir && req.url!.match(/^\/static\//))) ) { @@ -1208,9 +1175,36 @@ export default abstract class Server { // Toggle whether or not this is a Data request const isDataReq = - !!query._nextDataReq && (isSSG || hasServerProps || isServerComponent) + !!query.__nextDataReq && (isSSG || hasServerProps || isServerComponent) - delete query._nextDataReq + // normalize req.url for SSG paths as it is not exposed + // to getStaticProps and the asPath should not expose /_next/data + if ( + isSSG && + this.minimalMode && + req.headers['x-matched-path'] && + req.url.startsWith('/_next/data') + ) { + req.url = this.stripNextDataPath(req.url) + } + + if (!!query.__nextDataReq) { + res.setHeader( + 'x-nextjs-matched-path', + `${query.__nextLocale ? `/${query.__nextLocale}` : ''}${pathname}` + ) + // return empty JSON when not an SSG/SSP page and not an error + if ( + !(isSSG || hasServerProps) && + (!res.statusCode || res.statusCode === 200 || res.statusCode === 404) + ) { + res.setHeader('content-type', 'application/json') + res.body('{}') + res.send() + return null + } + } + delete query.__nextDataReq // Don't delete query.__flight__ yet, it still needs to be used in renderToHTML later const isFlightRequest = Boolean( @@ -1710,7 +1704,7 @@ export default abstract class Server { } } - private stripNextDataPath(path: string) { + private stripNextDataPath(path: string, stripLocale = true) { if (path.includes(this.buildId)) { const splitPath = path.substring( path.indexOf(this.buildId) + this.buildId.length @@ -1719,7 +1713,7 @@ export default abstract class Server { path = denormalizePagePath(splitPath.replace(/\.json$/, '')) } - if (this.nextConfig.i18n) { + if (this.nextConfig.i18n && stripLocale) { const { locales } = this.nextConfig.i18n return normalizeLocalePath(path, locales).pathname } diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index 2ba1c6b10d28..88565446d4cb 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -415,6 +415,9 @@ export default class DevServer extends Server { })) this.router.setDynamicRoutes(this.dynamicRoutes) + this.router.setCatchallMiddleware( + this.generateCatchAllMiddlewareRoute(true) + ) if (!resolved) { resolve() diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index a01efa2cb7e5..c1458a2dbdc8 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -707,7 +707,7 @@ export default class NextNodeServer extends BaseServer { ...(components.getStaticProps ? ({ amp: query.amp, - _nextDataReq: query._nextDataReq, + __nextDataReq: query.__nextDataReq, __nextLocale: query.__nextLocale, __nextDefaultLocale: query.__nextDefaultLocale, __flight__: query.__flight__, @@ -1116,7 +1116,12 @@ export default class NextNodeServer extends BaseServer { const normalizedPathname = removeTrailingSlash(params.parsedUrl.pathname) // For middleware to "fetch" we must always provide an absolute URL - const url = getRequestMeta(params.request, '__NEXT_INIT_URL')! + const query = urlQueryToSearchParams(params.parsed.query).toString() + const locale = params.parsed.query.__nextLocale + const url = `http://${this.hostname}:${this.port}${ + locale ? `/${locale}` : '' + }${params.parsed.pathname}${query ? `?${query}` : ''}` + if (!url.startsWith('http')) { throw new Error( 'To use middleware you must provide a `hostname` and `port` to the Next.js Server' @@ -1211,9 +1216,15 @@ export default class NextNodeServer extends BaseServer { return result } - protected generateCatchAllMiddlewareRoute(): Route | undefined { + protected generateCatchAllMiddlewareRoute( + devReady?: boolean + ): Route | undefined { if (this.minimalMode) return undefined + if ((!this.renderOpts.dev || devReady) && !this.getMiddleware().length) { + return undefined + } + return { match: getPathMatch('/:path*'), type: 'route', diff --git a/packages/next/server/request-meta.ts b/packages/next/server/request-meta.ts index f906e5f5f1f0..a799a464413e 100644 --- a/packages/next/server/request-meta.ts +++ b/packages/next/server/request-meta.ts @@ -59,7 +59,7 @@ type NextQueryMetadata = { __nextLocale?: string __nextSsgPath?: string _nextBubbleNoFallback?: '1' - _nextDataReq?: '1' + __nextDataReq?: '1' } export type NextParsedUrlQuery = ParsedUrlQuery & @@ -80,7 +80,7 @@ export function getNextInternalQuery( '__nextLocale', '__nextSsgPath', '_nextBubbleNoFallback', - '_nextDataReq', + '__nextDataReq', ] const nextInternalQuery: NextQueryMetadata = {} diff --git a/packages/next/server/router.ts b/packages/next/server/router.ts index 01cf8a7cfbc6..16bc54bd56c0 100644 --- a/packages/next/server/router.ts +++ b/packages/next/server/router.ts @@ -111,6 +111,9 @@ export default class Router { setDynamicRoutes(routes: DynamicRoutes = []) { this.dynamicRoutes = routes } + setCatchallMiddleware(route?: Route) { + this.catchAllMiddleware = route + } addFsRoute(fsRoute: Route) { this.fsRoutes.unshift(fsRoute) @@ -208,12 +211,15 @@ export default class Router { */ const allRoutes = [ + ...(this.catchAllMiddleware + ? this.fsRoutes.filter((r) => r.name === '_next/data catchall') + : []), ...this.headers, ...this.redirects, - ...this.rewrites.beforeFiles, ...(this.useFileSystemPublicRoutes && this.catchAllMiddleware ? [this.catchAllMiddleware] : []), + ...this.rewrites.beforeFiles, ...this.fsRoutes, // We only check the catch-all route if public page routes hasn't been // disabled diff --git a/packages/next/server/web/adapter.ts b/packages/next/server/web/adapter.ts index 45380a72cbf6..8b93126e2338 100644 --- a/packages/next/server/web/adapter.ts +++ b/packages/next/server/web/adapter.ts @@ -23,6 +23,15 @@ export async function adapter(params: { const buildId = requestUrl.buildId requestUrl.buildId = '' + const isDataReq = params.request.headers['x-nextjs-data'] + + // clean-up any internal query params + for (const key of [...requestUrl.searchParams.keys()]) { + if (key.startsWith('__next')) { + requestUrl.searchParams.delete(key) + } + } + const request = new NextRequestHint({ page: params.page, input: String(requestUrl), @@ -41,7 +50,7 @@ export async function adapter(params: { * need to know about this property neither use it. We add it for testing * purposes. */ - if (buildId) { + if (isDataReq) { Object.defineProperty(request, '__isData', { enumerable: false, value: true, @@ -75,7 +84,7 @@ export async function adapter(params: { * with an internal header so the client knows which component to load * from the data request. */ - if (buildId) { + if (isDataReq) { response.headers.set( 'x-nextjs-matched-path', relativizeURL(String(rewriteUrl), String(requestUrl)) @@ -112,7 +121,7 @@ export async function adapter(params: { * it may end up with CORS error. Instead we map to an internal header so * the client knows the destination. */ - if (buildId) { + if (isDataReq) { response.headers.delete('Location') response.headers.set( 'x-nextjs-redirect', diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 2264635cf525..5a1cd6a7e511 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -437,7 +437,9 @@ function fetchRetry( // https://github.com/github/fetch#caveats credentials: 'same-origin', method: options.method || 'GET', - headers: options.headers ?? {}, + headers: Object.assign({}, options.headers, { + 'x-nextjs-data': '1', + }), }).then((response) => { return !response.ok && attempts > 1 && response.status >= 500 ? fetchRetry(url, attempts - 1, options) @@ -492,7 +494,10 @@ function fetchNextData({ * mapped location. * TODO: Change the status code in the handler. */ - if (hasMiddleware && [301, 302, 308].includes(response.status)) { + if ( + hasMiddleware && + [301, 302, 307, 308].includes(response.status) + ) { return { dataHref, response, text, json: {} } } @@ -539,7 +544,11 @@ function fetchNextData({ } }) .then((data) => { - if (!persistCache || process.env.NODE_ENV !== 'production') { + if ( + !persistCache || + process.env.NODE_ENV !== 'production' || + data.response.headers.get('x-middleware-cache') === 'no-cache' + ) { delete inflightCache[cacheKey] } return data @@ -588,10 +597,8 @@ export default class Router implements BaseRouter { * Map of all components loaded in `Router` */ components: { [pathname: string]: PrivateRouteInfo } - // Static Data Cache + // Server Data Cache sdc: NextDataCache = {} - // In-flight Server Data Requests, for deduping - sdr: NextDataCache = {} sub: Subscription clc: ComponentLoadCancel @@ -740,14 +747,29 @@ export default class Router implements BaseRouter { // in order for `e.state` to work on the `onpopstate` event // we have to register the initial route upon initialization const options: TransitionOptions = { locale } - ;(options as any)._shouldResolveHref = as !== pathname - - this.changeState( - 'replaceState', - formatWithValidation({ pathname: addBasePath(pathname), query }), - getURL(), - options - ) + const asPath = getURL() + + matchesMiddleware({ + router: this, + locale, + asPath, + }).then((matches) => { + // if middleware matches we leave resolving to the change function + // as the server needs to resolve for correct priority + ;(options as any)._shouldResolveHref = as !== pathname + + this.changeState( + 'replaceState', + matches + ? asPath + : formatWithValidation({ + pathname: addBasePath(pathname), + query, + }), + asPath, + options + ) + }) } window.addEventListener('popstate', this.onPopState) @@ -1115,7 +1137,15 @@ export default class Router implements BaseRouter { ? removeTrailingSlash(removeBasePath(pathname)) : pathname - if (shouldResolveHref && pathname !== '/_error') { + // we don't attempt resolve asPath when we need to execute + // middleware as the resolving will occur server-side + const isMiddlewareMatch = await matchesMiddleware({ + asPath: as, + locale: nextState.locale, + router: this, + }) + + if (!isMiddlewareMatch && shouldResolveHref && pathname !== '/_error') { ;(options as any)._shouldResolveHref = true if (process.env.__NEXT_HAS_REWRITES && as.startsWith('/')) { @@ -1168,60 +1198,59 @@ export default class Router implements BaseRouter { const route = removeTrailingSlash(pathname) - if (isDynamicRoute(route)) { - const matchInfo = await matchHrefAndAsPath({ - href: { pathname, query }, - asPath: resolvedAs, - getData: () => - withMiddlewareEffects({ - fetchData: () => - fetchNextData({ - dataHref: this.pageLoader.getDataHref({ - asPath: resolvedAs, - href: as, - locale: nextState.locale, - }), - hasMiddleware: true, - isServerRender: this.isSsr, - parseJSON: true, - inflightCache: {}, - persistCache: false, - isPrefetch: false, - }), - asPath: resolvedAs, - locale: nextState.locale, - router: this, - }), - }) + if (!isMiddlewareMatch && isDynamicRoute(route)) { + const parsedAs = parseRelativeUrl(resolvedAs) + const asPathname = parsedAs.pathname - if (matchInfo.error) { - if (matchInfo.missingParams.length > 0) { - const missingParams = matchInfo.missingParams.join(', ') + const routeRegex = getRouteRegex(route) + const routeMatch = getRouteMatcher(routeRegex)(asPathname) + const shouldInterpolate = route === asPathname + const interpolatedAs = shouldInterpolate + ? interpolateAs(route, asPathname, query) + : ({} as { result: undefined; params: undefined }) + + if (!routeMatch || (shouldInterpolate && !interpolatedAs.result)) { + const missingParams = Object.keys(routeRegex.groups).filter( + (param) => !query[param] + ) + + if (missingParams.length > 0) { if (process.env.NODE_ENV !== 'production') { console.warn( `${ - matchInfo.error === 'interpolate' + shouldInterpolate ? `Interpolating href` : `Mismatching \`as\` and \`href\`` - } failed to manually provide the params: ${missingParams} in the \`href\`'s \`query\`` + } failed to manually provide ` + + `the params: ${missingParams.join( + ', ' + )} in the \`href\`'s \`query\`` ) } throw new Error( - (matchInfo.error === 'interpolate' - ? `The provided \`href\` (${url}) value is missing query values (${missingParams}) to be interpolated properly. ` - : `The provided \`as\` value (${matchInfo.asPathname}) is incompatible with the \`href\` value (${route}). `) + + (shouldInterpolate + ? `The provided \`href\` (${url}) value is missing query values (${missingParams.join( + ', ' + )}) to be interpolated properly. ` + : `The provided \`as\` value (${asPathname}) is incompatible with the \`href\` value (${route}). `) + `Read more: https://nextjs.org/docs/messages/${ - matchInfo.error === 'interpolate' + shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as' }` ) } - } else if (matchInfo.as) { - as = matchInfo.as + } else if (shouldInterpolate) { + as = formatWithValidation( + Object.assign({}, parsedAs, { + pathname: interpolatedAs.result, + query: omit(query, interpolatedAs.params!), + }) + ) } else { - Object.assign(query, matchInfo.routeMatch) + // Merge params into `query`, overwriting any specified in search + Object.assign(query, routeMatch) } } @@ -1549,14 +1578,15 @@ export default class Router implements BaseRouter { fetchNextData({ dataHref: this.pageLoader.getDataHref({ href: formatWithValidation({ pathname, query }), + skipInterpolation: true, asPath: resolvedAs, locale, }), hasMiddleware: true, isServerRender: this.isSsr, parseJSON: true, - inflightCache: cachedRouteInfo?.__N_SSG ? this.sdc : this.sdr, - persistCache: !!cachedRouteInfo?.__N_SSG && !isPreview, + inflightCache: this.sdc, + persistCache: !isPreview, isPrefetch: false, }), asPath: resolvedAs, @@ -1603,6 +1633,13 @@ export default class Router implements BaseRouter { }) )) + // TODO: we only bust the data cache for SSP routes + // although middleware can skip cache per request with + // x-middleware-cache: no-cache + if (routeInfo.__N_SSP && data?.dataHref) { + delete this.sdc[data?.dataHref] + } + if (process.env.NODE_ENV !== 'production') { const { isValidElementType } = require('next/dist/compiled/react-is') if (!isValidElementType(routeInfo.Component)) { @@ -1636,7 +1673,7 @@ export default class Router implements BaseRouter { }), isServerRender: this.isSsr, parseJSON: true, - inflightCache: routeInfo.__N_SSG ? this.sdc : this.sdr, + inflightCache: this.sdc, persistCache: !!routeInfo.__N_SSG && !isPreview, isPrefetch: false, })) @@ -1861,13 +1898,14 @@ export default class Router implements BaseRouter { fetchNextData({ dataHref: this.pageLoader.getDataHref({ href: formatWithValidation({ pathname, query }), + skipInterpolation: true, asPath: resolvedAs, locale, }), hasMiddleware: true, isServerRender: this.isSsr, parseJSON: true, - inflightCache: this.sdr, + inflightCache: this.sdc, persistCache: false, isPrefetch: false, }), @@ -2042,73 +2080,67 @@ export default class Router implements BaseRouter { } } -function matchesMiddleware(params: { - fns: [location: string, isSSR: boolean][] - asPath: string - locale?: string -}) { - const { pathname: asPathname } = parsePath(params.asPath) - const cleanedAs = removeLocale( - hasBasePath(asPathname) ? removeBasePath(asPathname) : asPathname, - params.locale - ) - - return params.fns.some(([middleware, isSSR]) => { - return getRouteMatcher( - getMiddlewareRegex(middleware, { - catchAll: !isSSR, - }) - )(cleanedAs) - }) -} - interface MiddlewareEffectParams { - fetchData: () => Promise + fetchData?: () => Promise locale?: string asPath: string router: Router } -function withMiddlewareEffects( +function matchesMiddleware( options: MiddlewareEffectParams -) { +): Promise { return Promise.resolve(options.router.pageLoader.getMiddlewareList()).then( (fns) => { - const matches = matchesMiddleware({ - asPath: options.asPath, - locale: options.locale, - fns: fns, - }) + const { pathname: asPathname } = parsePath(options.asPath) + const cleanedAs = removeLocale( + hasBasePath(asPathname) ? removeBasePath(asPathname) : asPathname, + options.locale + ) - if (matches) { - return options - .fetchData() - .then((data) => - getMiddlewareData(data.dataHref, data.response, options).then( - (effect) => ({ - dataHref: data.dataHref, - json: data.json, - response: data.response, - text: data.text, - effect, - }) - ) - ) - .catch(() => { - /** - * TODO: Revisit this in the future. - * For now we will not consider middleware data errors to be fatal. - * maybe we should revisit in the future. - */ - return null + return fns.some(([middleware, isSSR]) => { + return getRouteMatcher( + getMiddlewareRegex(middleware, { + catchAll: !isSSR, }) - } - - return null + )(cleanedAs) + }) } ) } +function withMiddlewareEffects( + options: MiddlewareEffectParams +) { + return matchesMiddleware(options).then((matches) => { + if (matches && options.fetchData) { + return options + .fetchData() + .then((data) => + getMiddlewareData(data.dataHref, data.response, options).then( + (effect) => ({ + dataHref: data.dataHref, + json: data.json, + response: data.response, + text: data.text, + effect, + }) + ) + ) + .catch((_err) => { + /** + * TODO: Revisit this in the future. + * For now we will not consider middleware data errors to be fatal. + * maybe we should revisit in the future. + */ + return null + }) + } + + return null + }) +} + function getMiddlewareData( source: string, response: Response, @@ -2121,6 +2153,7 @@ function getMiddlewareData( } const rewriteTarget = response.headers.get('x-nextjs-matched-path') + if (rewriteTarget) { if (rewriteTarget.startsWith('/')) { const parsedRewriteTarget = parseRelativeUrl(rewriteTarget) @@ -2156,6 +2189,7 @@ function getMiddlewareData( } const redirectTarget = response.headers.get('x-nextjs-redirect') + if (redirectTarget) { if (redirectTarget.startsWith('/')) { const src = parsePath(redirectTarget) @@ -2180,71 +2214,3 @@ function getMiddlewareData( return Promise.resolve({ type: 'next' as const }) } - -function matchHrefAndAsPath(params: { - asPath: string - href: { pathname: string; query: ParsedUrlQuery } - getData: () => ReturnType -}) { - const result = matchHrefAndAsPathData(params) - if (result.error === 'mismatch') { - return params.getData().then((data) => { - if (data?.effect?.type === 'rewrite') { - return Object.assign( - { effect: data.effect }, - matchHrefAndAsPathData({ - asPath: data.effect.parsedAs.pathname, - href: { - pathname: data.effect.resolvedHref, - query: { ...params.href.query, ...data.effect.parsedAs.query }, - }, - }) - ) - } - - return result - }) - } - - return Promise.resolve(result) -} - -function matchHrefAndAsPathData(params: { - href: { pathname: string; query: ParsedUrlQuery } - asPath: string -}) { - const { asPath, href } = params - const { pathname, query } = href - const route = removeTrailingSlash(pathname) - const regex = getRouteRegex(route) - const parsedAs = parseRelativeUrl(asPath) - const routeMatch = getRouteMatcher(regex)(parsedAs.pathname) - if (!routeMatch) { - return { - error: 'mismatch' as const, - asPathname: parsedAs.pathname, - missingParams: Object.keys(regex.groups).filter((key) => !query[key]), - } - } - - if (route === parsedAs.pathname) { - const interpolated = interpolateAs(route, parsedAs.pathname, query) - if (!interpolated?.result) { - return { - error: 'interpolate' as const, - missingParams: Object.keys(regex.groups).filter((key) => !query[key]), - } - } - - return { - as: formatWithValidation( - Object.assign({}, parsedAs, { - pathname: interpolated.result, - query: omit(query, interpolated.params!), - }) - ), - } - } - - return { routeMatch } -} diff --git a/packages/next/shared/lib/router/utils/prepare-destination.ts b/packages/next/shared/lib/router/utils/prepare-destination.ts index a34067e1af8d..72c48fd3c778 100644 --- a/packages/next/shared/lib/router/utils/prepare-destination.ts +++ b/packages/next/shared/lib/router/utils/prepare-destination.ts @@ -121,6 +121,7 @@ export function prepareDestination(args: { const query = Object.assign({}, args.query) delete query.__nextLocale delete query.__nextDefaultLocale + delete query.__nextDataReq let escapedDestination = args.destination diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f7cb38ef6d3..d8b010d52a9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16177,7 +16177,7 @@ packages: dev: true /object-assign/4.1.1: - resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} /object-copy/0.1.0: @@ -19866,7 +19866,7 @@ packages: source-map: 0.6.1 /source-map-url/0.4.0: - resolution: {integrity: sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=} + resolution: {integrity: sha512-liJwHPI9x9d9w5WSIjM58MqGmmb7XzNqwdUA3kSBQ4lmDngexlKwawGzK3J1mKXi6+sysoMDlpVyZh9sv5vRfw==} deprecated: See https://github.com/lydell/source-map-url#deprecated requiresBuild: true @@ -19878,7 +19878,7 @@ packages: dev: true /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} /source-map/0.6.1: diff --git a/test/integration/middleware-base-path/middleware.js b/test/e2e/middleware-base-path/app/middleware.js similarity index 100% rename from test/integration/middleware-base-path/middleware.js rename to test/e2e/middleware-base-path/app/middleware.js diff --git a/test/integration/middleware-base-path/next.config.js b/test/e2e/middleware-base-path/app/next.config.js similarity index 100% rename from test/integration/middleware-base-path/next.config.js rename to test/e2e/middleware-base-path/app/next.config.js diff --git a/test/integration/middleware-base-path/pages/about.js b/test/e2e/middleware-base-path/app/pages/about.js similarity index 100% rename from test/integration/middleware-base-path/pages/about.js rename to test/e2e/middleware-base-path/app/pages/about.js diff --git a/test/integration/middleware-base-path/pages/index.js b/test/e2e/middleware-base-path/app/pages/index.js similarity index 100% rename from test/integration/middleware-base-path/pages/index.js rename to test/e2e/middleware-base-path/app/pages/index.js diff --git a/test/e2e/middleware-base-path/test/index.test.ts b/test/e2e/middleware-base-path/test/index.test.ts new file mode 100644 index 000000000000..2b8ebcb8f878 --- /dev/null +++ b/test/e2e/middleware-base-path/test/index.test.ts @@ -0,0 +1,38 @@ +/* eslint-env jest */ +import { join } from 'path' +import cheerio from 'cheerio' +import webdriver from 'next-webdriver' +import { fetchViaHTTP } from 'next-test-utils' +import { createNext, FileRef } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' + +describe('Middleware base tests', () => { + let next: NextInstance + + beforeAll(async () => { + next = await createNext({ + files: { + pages: new FileRef(join(__dirname, '../app/pages')), + 'middleware.js': new FileRef(join(__dirname, '../app/middleware.js')), + 'next.config.js': new FileRef(join(__dirname, '../app/next.config.js')), + }, + }) + }) + afterAll(() => next.destroy()) + + it('should execute from absolute paths', async () => { + const browser = await webdriver(next.url, '/redirect-with-basepath') + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + '/root/redirect-with-basepath' + ) + } finally { + await browser.close() + } + + const res = await fetchViaHTTP(next.url, '/root/redirect-with-basepath') + const html = await res.text() + const $ = cheerio.load(html) + expect($('.title').text()).toBe('About Page') + }) +}) diff --git a/test/integration/middleware-general/middleware.js b/test/e2e/middleware-general/app/middleware.js similarity index 92% rename from test/integration/middleware-general/middleware.js rename to test/e2e/middleware-general/app/middleware.js index 081aa474576d..dac5bb370990 100644 --- a/test/integration/middleware-general/middleware.js +++ b/test/e2e/middleware-general/app/middleware.js @@ -36,11 +36,16 @@ const params = (url) => { export async function middleware(request) { const url = request.nextUrl + // this is needed for tests to get the BUILD_ID + if (url.pathname.startsWith('/_next/static/__BUILD_ID')) { + return NextResponse.next() + } + if (url.pathname.startsWith('/fetch-user-agent-default')) { try { const apiRoute = new URL(url) apiRoute.pathname = '/api/headers' - const res = await fetch(apiRoute) + const res = await fetch(withLocalIp(apiRoute)) return serializeData(await res.text()) } catch (err) { return serializeError(err) @@ -51,7 +56,7 @@ export async function middleware(request) { try { const apiRoute = new URL(url) apiRoute.pathname = '/api/headers' - const res = await fetch(apiRoute, { + const res = await fetch(withLocalIp(apiRoute), { headers: { 'user-agent': 'custom-agent', }, @@ -74,9 +79,9 @@ export async function middleware(request) { console.log('missing ANOTHER_MIDDLEWARE_TEST') } - const { 'STRING-ENV-VAR': stringEnvVar } = process['env'] + const { STRING_ENV_VAR: stringEnvVar } = process['env'] if (!stringEnvVar) { - console.log('missing STRING-ENV-VAR') + console.log('missing STRING_ENV_VAR') } return serializeData(JSON.stringify({ process: { env: process.env } })) @@ -211,3 +216,7 @@ function serializeData(data) { function serializeError(error) { return new NextResponse(null, { headers: { error: error.message } }) } + +function withLocalIp(url) { + return String(url).replace('localhost', '127.0.0.1') +} diff --git a/test/integration/middleware-general/next.config.js b/test/e2e/middleware-general/app/next.config.js similarity index 65% rename from test/integration/middleware-general/next.config.js rename to test/e2e/middleware-general/app/next.config.js index b652e0d98d7d..ea7f71ed65d6 100644 --- a/test/integration/middleware-general/next.config.js +++ b/test/e2e/middleware-general/app/next.config.js @@ -3,6 +3,15 @@ module.exports = { locales: ['en', 'fr', 'nl'], defaultLocale: 'en', }, + redirects() { + return [ + { + source: '/redirect-1', + destination: '/somewhere-else', + permanent: false, + }, + ] + }, rewrites() { return [ { diff --git a/test/integration/middleware-general/node_modules/shared-package/index.js b/test/e2e/middleware-general/app/node_modules/shared-package/index.js similarity index 100% rename from test/integration/middleware-general/node_modules/shared-package/index.js rename to test/e2e/middleware-general/app/node_modules/shared-package/index.js diff --git a/test/integration/middleware-general/node_modules/shared-package/package.json b/test/e2e/middleware-general/app/node_modules/shared-package/package.json similarity index 100% rename from test/integration/middleware-general/node_modules/shared-package/package.json rename to test/e2e/middleware-general/app/node_modules/shared-package/package.json diff --git a/test/integration/middleware-general/pages/[id].js b/test/e2e/middleware-general/app/pages/[id].js similarity index 100% rename from test/integration/middleware-general/pages/[id].js rename to test/e2e/middleware-general/app/pages/[id].js diff --git a/test/integration/middleware-general/pages/about/a.js b/test/e2e/middleware-general/app/pages/about/a.js similarity index 100% rename from test/integration/middleware-general/pages/about/a.js rename to test/e2e/middleware-general/app/pages/about/a.js diff --git a/test/integration/middleware-general/pages/about/b.js b/test/e2e/middleware-general/app/pages/about/b.js similarity index 100% rename from test/integration/middleware-general/pages/about/b.js rename to test/e2e/middleware-general/app/pages/about/b.js diff --git a/test/integration/middleware-general/pages/api/headers.js b/test/e2e/middleware-general/app/pages/api/headers.js similarity index 100% rename from test/integration/middleware-general/pages/api/headers.js rename to test/e2e/middleware-general/app/pages/api/headers.js diff --git a/test/integration/middleware-general/pages/error-throw.js b/test/e2e/middleware-general/app/pages/error-throw.js similarity index 100% rename from test/integration/middleware-general/pages/error-throw.js rename to test/e2e/middleware-general/app/pages/error-throw.js diff --git a/test/integration/middleware-general/pages/error.js b/test/e2e/middleware-general/app/pages/error.js similarity index 100% rename from test/integration/middleware-general/pages/error.js rename to test/e2e/middleware-general/app/pages/error.js diff --git a/test/integration/middleware-general/pages/ssr-page-2.js b/test/e2e/middleware-general/app/pages/ssr-page-2.js similarity index 100% rename from test/integration/middleware-general/pages/ssr-page-2.js rename to test/e2e/middleware-general/app/pages/ssr-page-2.js diff --git a/test/integration/middleware-general/pages/ssr-page.js b/test/e2e/middleware-general/app/pages/ssr-page.js similarity index 100% rename from test/integration/middleware-general/pages/ssr-page.js rename to test/e2e/middleware-general/app/pages/ssr-page.js diff --git a/test/integration/middleware-general/test/index.test.js b/test/e2e/middleware-general/test/index.test.ts similarity index 55% rename from test/integration/middleware-general/test/index.test.js rename to test/e2e/middleware-general/test/index.test.ts index 307b56834a62..95f8c86f2a9c 100644 --- a/test/integration/middleware-general/test/index.test.js +++ b/test/e2e/middleware-general/test/index.test.ts @@ -1,68 +1,66 @@ /* eslint-env jest */ -import { join } from 'path' import fs from 'fs-extra' +import { join } from 'path' import webdriver from 'next-webdriver' -import { - check, - fetchViaHTTP, - findPort, - killApp, - launchApp, - nextBuild, - nextStart, - waitFor, -} from 'next-test-utils' - -jest.setTimeout(1000 * 60 * 2) +import { NextInstance } from 'test/lib/next-modes/base' +import { check, fetchViaHTTP, renderViaHTTP, waitFor } from 'next-test-utils' +import { createNext, FileRef } from 'e2e-utils' +import escapeStringRegexp from 'escape-string-regexp' const middlewareWarning = 'using beta Middleware (not covered by semver)' const urlsError = 'Please use only absolute URLs' -const context = { - appDir: join(__dirname, '../'), - buildLogs: { output: '', stdout: '', stderr: '' }, - logs: { output: '', stdout: '', stderr: '' }, -} describe('Middleware Runtime', () => { - describe('dev mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - context.dev = true - context.appPort = await findPort() - context.buildId = 'development' - context.app = await launchApp(context.appDir, context.appPort, { - env: { - ANOTHER_MIDDLEWARE_TEST: 'asdf2', - 'STRING-ENV-VAR': 'asdf3', - MIDDLEWARE_TEST: 'asdf', - NEXT_RUNTIME: 'edge', - }, - onStdout(msg) { - context.logs.output += msg - context.logs.stdout += msg - }, - onStderr(msg) { - context.logs.output += msg - context.logs.stderr += msg + let next: NextInstance + let locale = '' + + afterAll(() => next.destroy()) + beforeAll(async () => { + next = await createNext({ + files: { + 'next.config.js': new FileRef(join(__dirname, '../app/next.config.js')), + 'middleware.js': new FileRef(join(__dirname, '../app/middleware.js')), + pages: new FileRef(join(__dirname, '../app/pages')), + 'shared-package': new FileRef( + join(__dirname, '../app/node_modules/shared-package') + ), + }, + packageJson: { + scripts: { + setup: `cp -r ./shared-package ./node_modules`, + build: 'yarn setup && next build', + dev: 'yarn setup && next dev', + start: 'next start', }, - }) + }, + startCommand: (global as any).isNextDev ? 'yarn dev' : 'yarn start', + buildCommand: 'yarn build', + env: { + ANOTHER_MIDDLEWARE_TEST: 'asdf2', + STRING_ENV_VAR: 'asdf3', + MIDDLEWARE_TEST: 'asdf', + NEXT_RUNTIME: 'edge', + }, }) + }) - tests(context) - - // This test has to be after something has been executed with middleware - it('should have showed warning for middleware usage', () => { - expect(context.logs.output).toContain(middlewareWarning) + if ((global as any).isNextDev) { + it('should have showed warning for middleware usage', async () => { + await renderViaHTTP(next.url, '/') + await check( + () => next.cliOutput, + new RegExp(escapeStringRegexp(middlewareWarning)) + ) }) it('refreshes the page when middleware changes ', async () => { - const browser = await webdriver(context.appPort, `/about`) + const browser = await webdriver(next.url, `/about`) await browser.eval('window.didrefresh = "hello"') const text = await browser.elementByCss('h1').text() expect(text).toEqual('AboutA') - const middlewarePath = join(context.appDir, '/middleware.js') + const middlewarePath = join(next.testDir, '/middleware.js') const originalContent = fs.readFileSync(middlewarePath, 'utf-8') const editedContent = originalContent.replace('/about/a', '/about/b') @@ -77,54 +75,16 @@ describe('Middleware Runtime', () => { await browser.close() } }) - }) - - describe('production mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - const build = await nextBuild(context.appDir, undefined, { - stderr: true, - stdout: true, - }) - - context.buildId = await fs.readFile( - join(context.appDir, '.next/BUILD_ID'), - 'utf8' - ) - - context.buildLogs = { - output: build.stdout + build.stderr, - stderr: build.stderr, - stdout: build.stdout, - } - context.dev = false - - context.appPort = await findPort() - context.app = await nextStart(context.appDir, context.appPort, { - env: { - ANOTHER_MIDDLEWARE_TEST: 'asdf2', - 'STRING-ENV-VAR': 'asdf3', - MIDDLEWARE_TEST: 'asdf', - NEXT_RUNTIME: 'edge', - }, - onStdout(msg) { - context.logs.output += msg - context.logs.stdout += msg - }, - onStderr(msg) { - context.logs.output += msg - context.logs.stderr += msg - }, - }) - }) + } + if ((global as any).isNextStart) { it('should have valid middleware field in manifest', async () => { const manifest = await fs.readJSON( - join(context.appDir, '.next/server/middleware-manifest.json') + join(next.testDir, '.next/server/middleware-manifest.json') ) expect(manifest.middleware).toEqual({ '/': { - env: ['MIDDLEWARE_TEST', 'ANOTHER_MIDDLEWARE_TEST', 'STRING-ENV-VAR'], + env: ['MIDDLEWARE_TEST', 'ANOTHER_MIDDLEWARE_TEST', 'STRING_ENV_VAR'], files: ['server/edge-runtime-webpack.js', 'server/middleware.js'], name: 'middleware', page: '/', @@ -135,16 +95,16 @@ describe('Middleware Runtime', () => { }) it('should have middleware warning during build', () => { - expect(context.buildLogs.output).toContain(middlewareWarning) + expect(next.cliOutput).toContain(middlewareWarning) }) it('should have middleware warning during start', () => { - expect(context.logs.output).toContain(middlewareWarning) + expect(next.cliOutput).toContain(middlewareWarning) }) it('should have correct files in manifest', async () => { const manifest = await fs.readJSON( - join(context.appDir, '.next/server/middleware-manifest.json') + join(next.testDir, '.next/server/middleware-manifest.json') ) for (const key of Object.keys(manifest.middleware)) { const middleware = manifest.middleware[key] @@ -156,19 +116,38 @@ describe('Middleware Runtime', () => { ) } }) + } + + // TODO: re-enable after fixing server-side resolving priority + it('should redirect the same for direct visit and client-transition', async () => { + const res = await fetchViaHTTP( + next.url, + `${locale}/redirect-1`, + undefined, + { + redirect: 'manual', + } + ) + expect(res.status).toBe(307) + expect(new URL(res.headers.get('location'), 'http://n').pathname).toBe( + '/somewhere-else' + ) - tests(context) + const browser = await webdriver(next.url, `${locale}/`) + await browser.eval(`next.router.push('/redirect-1')`) + await check(async () => { + const pathname = await browser.eval('location.pathname') + return pathname === '/somewhere-else' ? 'success' : pathname + }, 'success') }) -}) -function tests(context, locale = '') { // TODO: re-enable after fixing server-side resolving priority - it.skip('should rewrite the same for direct visit and client-transition', async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/rewrite-1`) + it('should rewrite the same for direct visit and client-transition', async () => { + const res = await fetchViaHTTP(next.url, `${locale}/rewrite-1`) expect(res.status).toBe(200) expect(await res.text()).toContain('Hello World') - const browser = await webdriver(context.appPort, `${locale}/`) + const browser = await webdriver(next.url, `${locale}/`) await browser.eval(`next.router.push('/rewrite-1')`) await check(async () => { const content = await browser.eval('document.documentElement.innerHTML') @@ -177,11 +156,11 @@ function tests(context, locale = '') { }) it('should rewrite correctly for non-SSG/SSP page', async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/rewrite-2`) + const res = await fetchViaHTTP(next.url, `${locale}/rewrite-2`) expect(res.status).toBe(200) expect(await res.text()).toContain('AboutA') - const browser = await webdriver(context.appPort, `${locale}/`) + const browser = await webdriver(next.url, `${locale}/`) await browser.eval(`next.router.push('/rewrite-2')`) await check(async () => { const content = await browser.eval('document.documentElement.innerHTML') @@ -190,63 +169,76 @@ function tests(context, locale = '') { }) it('should respond with 400 on decode failure', async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/%2`) + const res = await fetchViaHTTP(next.url, `${locale}/%2`) expect(res.status).toBe(400) - if (!context.dev) { + if ((global as any).isNextStart) { expect(await res.text()).toContain('Bad Request') } }) - it('should set fetch user agent correctly', async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/fetch-user-agent-default` - ) - expect(readMiddlewareJSON(res).headers['user-agent']).toBe( - 'Next.js Middleware' - ) + if (!(global as any).isNextDeploy) { + // user agent differs on Vercel + it('should set fetch user agent correctly', async () => { + const res = await fetchViaHTTP( + next.url, + `${locale}/fetch-user-agent-default` + ) - const res2 = await fetchViaHTTP( - context.appPort, - `${locale}/fetch-user-agent-crypto` - ) - expect(readMiddlewareJSON(res2).headers['user-agent']).toBe('custom-agent') - }) + expect(readMiddlewareJSON(res).headers['user-agent']).toBe( + 'Next.js Middleware' + ) + + const res2 = await fetchViaHTTP( + next.url, + `${locale}/fetch-user-agent-crypto` + ) + expect(readMiddlewareJSON(res2).headers['user-agent']).toBe( + 'custom-agent' + ) + }) + } it('should contain process polyfill', async () => { - const res = await fetchViaHTTP(context.appPort, `/global`) + const res = await fetchViaHTTP(next.url, `/global`) expect(readMiddlewareJSON(res)).toEqual({ process: { env: { ANOTHER_MIDDLEWARE_TEST: 'asdf2', - 'STRING-ENV-VAR': 'asdf3', + STRING_ENV_VAR: 'asdf3', MIDDLEWARE_TEST: 'asdf', - NEXT_RUNTIME: 'edge', + ...((global as any).isNextDeploy + ? {} + : { + NEXT_RUNTIME: 'edge', + }), }, }, }) }) it(`should contain \`globalThis\``, async () => { - const res = await fetchViaHTTP(context.appPort, '/globalthis') + const res = await fetchViaHTTP(next.url, '/globalthis') expect(readMiddlewareJSON(res).length > 0).toBe(true) }) it(`should contain crypto APIs`, async () => { - const res = await fetchViaHTTP(context.appPort, '/webcrypto') + const res = await fetchViaHTTP(next.url, '/webcrypto') expect('error' in readMiddlewareJSON(res)).toBe(false) }) - it(`should accept a URL instance for fetch`, async () => { - const response = await fetchViaHTTP(context.appPort, '/fetch-url') - const { error } = readMiddlewareJSON(response) - expect(error).toBeTruthy() - expect(error.message).not.toContain("Failed to construct 'URL'") - }) + if (!(global as any).isNextDeploy) { + it(`should accept a URL instance for fetch`, async () => { + const response = await fetchViaHTTP(next.url, '/fetch-url') + // TODO: why is an error expected here if it should work? + const { error } = readMiddlewareJSON(response) + expect(error).toBeTruthy() + expect(error.message).not.toContain("Failed to construct 'URL'") + }) + } it(`should allow to abort a fetch request`, async () => { - const response = await fetchViaHTTP(context.appPort, '/abort-controller') + const response = await fetchViaHTTP(next.url, '/abort-controller') const payload = readMiddlewareJSON(response) expect('error' in payload).toBe(true) expect(payload.error.name).toBe('AbortError') @@ -254,9 +246,9 @@ function tests(context, locale = '') { }) it(`should validate & parse request url from any route`, async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/static`) + const res = await fetchViaHTTP(next.url, `${locale}/static`) - expect(res.headers.get('req-url-basepath')).toBe('') + expect(res.headers.get('req-url-basepath')).toBeFalsy() expect(res.headers.get('req-url-pathname')).toBe('/static') const { pathname, params } = JSON.parse(res.headers.get('req-url-params')) @@ -270,9 +262,9 @@ function tests(context, locale = '') { }) it(`should validate & parse request url from a dynamic route with params`, async () => { - const res = await fetchViaHTTP(context.appPort, `/fr/1`) + const res = await fetchViaHTTP(next.url, `/fr/1`) - expect(res.headers.get('req-url-basepath')).toBe('') + expect(res.headers.get('req-url-basepath')).toBeFalsy() expect(res.headers.get('req-url-pathname')).toBe('/1') const { pathname, params } = JSON.parse(res.headers.get('req-url-params')) @@ -284,8 +276,8 @@ function tests(context, locale = '') { }) it(`should validate & parse request url from a dynamic route with params and no query`, async () => { - const res = await fetchViaHTTP(context.appPort, `/fr/abc123`) - expect(res.headers.get('req-url-basepath')).toBe('') + const res = await fetchViaHTTP(next.url, `/fr/abc123`) + expect(res.headers.get('req-url-basepath')).toBeFalsy() const { pathname, params } = JSON.parse(res.headers.get('req-url-params')) expect(pathname).toBe('/:locale/:id') @@ -296,8 +288,8 @@ function tests(context, locale = '') { }) it(`should validate & parse request url from a dynamic route with params and query`, async () => { - const res = await fetchViaHTTP(context.appPort, `/abc123?foo=bar`) - expect(res.headers.get('req-url-basepath')).toBe('') + const res = await fetchViaHTTP(next.url, `/abc123?foo=bar`) + expect(res.headers.get('req-url-basepath')).toBeFalsy() const { pathname, params } = JSON.parse(res.headers.get('req-url-params')) @@ -309,57 +301,45 @@ function tests(context, locale = '') { }) it('should throw when using URL with a relative URL', async () => { - const res = await fetchViaHTTP(context.appPort, `/url/relative-url`) + const res = await fetchViaHTTP(next.url, `/url/relative-url`) expect(readMiddlewareError(res)).toContain('Invalid URL') }) - it('should throw when using Request with a relative URL', async () => { - const response = await fetchViaHTTP( - context.appPort, - `/url/relative-request` - ) - expect(readMiddlewareError(response)).toContain(urlsError) - }) - it('should throw when using NextRequest with a relative URL', async () => { - const response = await fetchViaHTTP( - context.appPort, - `/url/relative-next-request` - ) + const response = await fetchViaHTTP(next.url, `/url/relative-next-request`) expect(readMiddlewareError(response)).toContain(urlsError) }) - it('should warn when using Response.redirect with a relative URL', async () => { - const response = await fetchViaHTTP( - context.appPort, - `/url/relative-redirect` - ) - expect(readMiddlewareError(response)).toContain(urlsError) - }) + if (!(global as any).isNextDeploy) { + // these errors differ on Vercel + it('should throw when using Request with a relative URL', async () => { + const response = await fetchViaHTTP(next.url, `/url/relative-request`) + expect(readMiddlewareError(response)).toContain(urlsError) + }) + + it('should warn when using Response.redirect with a relative URL', async () => { + const response = await fetchViaHTTP(next.url, `/url/relative-redirect`) + expect(readMiddlewareError(response)).toContain(urlsError) + }) + } it('should warn when using NextResponse.redirect with a relative URL', async () => { - const response = await fetchViaHTTP( - context.appPort, - `/url/relative-next-redirect` - ) + const response = await fetchViaHTTP(next.url, `/url/relative-next-redirect`) expect(readMiddlewareError(response)).toContain(urlsError) }) it('should throw when using NextResponse.rewrite with a relative URL', async () => { - const response = await fetchViaHTTP( - context.appPort, - `/url/relative-next-rewrite` - ) + const response = await fetchViaHTTP(next.url, `/url/relative-next-rewrite`) expect(readMiddlewareError(response)).toContain(urlsError) }) it('should trigger middleware for data requests', async () => { - const browser = await webdriver(context.appPort, `/ssr-page`) + const browser = await webdriver(next.url, `/ssr-page`) const text = await browser.elementByCss('h1').text() expect(text).toEqual('Bye Cruel World') const res = await fetchViaHTTP( - context.appPort, - `/_next/data/${context.buildId}/en/ssr-page.json` + next.url, + `/_next/data/${next.buildId}/en/ssr-page.json` ) const json = await res.json() expect(json.pageProps.message).toEqual('Bye Cruel World') @@ -367,44 +347,44 @@ function tests(context, locale = '') { it('should normalize data requests into page requests', async () => { const res = await fetchViaHTTP( - context.appPort, - `/_next/data/${context.buildId}/en/send-url.json` + next.url, + `/_next/data/${next.buildId}/en/send-url.json` ) expect(res.headers.get('req-url-path')).toEqual('/send-url') }) it('should keep non data requests in their original shape', async () => { const res = await fetchViaHTTP( - context.appPort, - `/_next/static/${context.buildId}/_devMiddlewareManifest.json?foo=1` + next.url, + `/_next/static/${next.buildId}/_devMiddlewareManifest.json?foo=1` ) expect(res.headers.get('req-url-path')).toEqual( - `/_next/static/${context.buildId}/_devMiddlewareManifest.json?foo=1` + `/_next/static/${next.buildId}/_devMiddlewareManifest.json?foo=1` ) }) it('should add a rewrite header on data requests for rewrites', async () => { - const res = await fetchViaHTTP(context.appPort, `/ssr-page`) + const res = await fetchViaHTTP(next.url, `/ssr-page`) const dataRes = await fetchViaHTTP( - context.appPort, - `/_next/data/${context.buildId}/en/ssr-page.json` + next.url, + `/_next/data/${next.buildId}/en/ssr-page.json` ) const json = await dataRes.json() expect(json.pageProps.message).toEqual('Bye Cruel World') expect(res.headers.get('x-nextjs-matched-path')).toBeNull() expect(dataRes.headers.get('x-nextjs-matched-path')).toEqual( - `/_next/data/${context.buildId}/en/ssr-page-2.json` + `/en/ssr-page-2` ) }) it(`hard-navigates when the data request failed`, async () => { - const browser = await webdriver(context.appPort, `/error`) + const browser = await webdriver(next.url, `/error`) await browser.eval('window.__SAME_PAGE = true') await browser.elementByCss('#throw-on-data').click() await browser.waitForElementByCss('.refreshed') expect(await browser.eval('window.__SAME_PAGE')).toBeUndefined() }) -} +}) function readMiddlewareJSON(response) { return JSON.parse(response.headers.get('data')) diff --git a/test/integration/middleware-redirects/middleware.js b/test/e2e/middleware-redirects/app/middleware.js similarity index 90% rename from test/integration/middleware-redirects/middleware.js rename to test/e2e/middleware-redirects/app/middleware.js index f0b152517e7f..a86848a42a45 100644 --- a/test/integration/middleware-redirects/middleware.js +++ b/test/e2e/middleware-redirects/app/middleware.js @@ -1,6 +1,13 @@ +import { NextResponse } from 'next/server' + export async function middleware(request) { const url = request.nextUrl + // this is needed for tests to get the BUILD_ID + if (url.pathname.startsWith('/_next/static/__BUILD_ID')) { + return NextResponse.next() + } + if (url.pathname === '/old-home') { if (url.searchParams.get('override') === 'external') { return Response.redirect('https://example.com') diff --git a/test/integration/middleware-redirects/next.config.js b/test/e2e/middleware-redirects/app/next.config.js similarity index 100% rename from test/integration/middleware-redirects/next.config.js rename to test/e2e/middleware-redirects/app/next.config.js diff --git a/test/integration/middleware-redirects/pages/api/ok.js b/test/e2e/middleware-redirects/app/pages/api/ok.js similarity index 100% rename from test/integration/middleware-redirects/pages/api/ok.js rename to test/e2e/middleware-redirects/app/pages/api/ok.js diff --git a/test/integration/middleware-redirects/pages/index.js b/test/e2e/middleware-redirects/app/pages/index.js similarity index 100% rename from test/integration/middleware-redirects/pages/index.js rename to test/e2e/middleware-redirects/app/pages/index.js diff --git a/test/integration/middleware-redirects/pages/new-home.js b/test/e2e/middleware-redirects/app/pages/new-home.js similarity index 100% rename from test/integration/middleware-redirects/pages/new-home.js rename to test/e2e/middleware-redirects/app/pages/new-home.js diff --git a/test/e2e/middleware-redirects/test/index.test.ts b/test/e2e/middleware-redirects/test/index.test.ts new file mode 100644 index 000000000000..d4c22e20763f --- /dev/null +++ b/test/e2e/middleware-redirects/test/index.test.ts @@ -0,0 +1,153 @@ +/* eslint-env jest */ + +import { join } from 'path' +import cheerio from 'cheerio' +import webdriver from 'next-webdriver' +import { check, fetchViaHTTP } from 'next-test-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { createNext, FileRef } from 'e2e-utils' + +describe('Middleware Redirect', () => { + let next: NextInstance + + afterAll(() => next.destroy()) + beforeAll(async () => { + next = await createNext({ + files: { + pages: new FileRef(join(__dirname, '../app/pages')), + 'middleware.js': new FileRef(join(__dirname, '../app/middleware.js')), + 'next.config.js': new FileRef(join(__dirname, '../app/next.config.js')), + }, + }) + }) + + tests() + testsWithLocale() + testsWithLocale('/fr') + + function tests() { + it('does not include the locale in redirects by default', async () => { + const res = await fetchViaHTTP(next.url, `/old-home`, undefined, { + redirect: 'manual', + }) + expect(res.headers.get('location')?.endsWith('/default/about')).toEqual( + false + ) + }) + + it(`should redirect to data urls with data requests and internal redirects`, async () => { + const res = await fetchViaHTTP( + next.url, + `/_next/data/${next.buildId}/es/old-home.json`, + { override: 'internal' }, + { redirect: 'manual', headers: { 'x-nextjs-data': '1' } } + ) + + expect( + res.headers + .get('x-nextjs-redirect') + ?.endsWith(`/es/new-home?override=internal`) + ).toEqual(true) + expect(res.headers.get('location')).toEqual(null) + }) + + it(`should redirect to external urls with data requests and external redirects`, async () => { + const res = await fetchViaHTTP( + next.url, + `/_next/data/${next.buildId}/es/old-home.json`, + { override: 'external' }, + { redirect: 'manual', headers: { 'x-nextjs-data': '1' } } + ) + + expect(res.headers.get('x-nextjs-redirect')).toEqual( + 'https://example.com/' + ) + expect(res.headers.get('location')).toEqual(null) + + const browser = await webdriver(next.url, '/') + await browser.elementByCss('#old-home-external').click() + await check(async () => { + expect(await browser.elementByCss('h1').text()).toEqual( + 'Example Domain' + ) + return 'yes' + }, 'yes') + }) + } + + function testsWithLocale(locale = '') { + const label = locale ? `${locale} ` : `` + + it(`${label}should redirect`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/old-home`) + const html = await res.text() + const $ = cheerio.load(html) + const browser = await webdriver(next.url, `${locale}/old-home`) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/new-home` + ) + } finally { + await browser.close() + } + expect($('.title').text()).toBe('Welcome to a new page') + }) + + it(`${label}should implement internal redirects`, async () => { + const browser = await webdriver(next.url, `${locale}`) + await browser.eval('window.__SAME_PAGE = true') + await browser.elementByCss('#old-home').click() + await browser.waitForElementByCss('#new-home-title') + expect(await browser.eval('window.__SAME_PAGE')).toBe(true) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/new-home` + ) + } finally { + await browser.close() + } + }) + + it(`${label}should redirect cleanly with the original url param`, async () => { + const browser = await webdriver(next.url, `${locale}/blank-page?foo=bar`) + try { + expect( + await browser.eval( + `window.location.href.replace(window.location.origin, '')` + ) + ).toBe(`${locale}/new-home`) + } finally { + await browser.close() + } + }) + + it(`${label}should redirect multiple times`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/redirect-me-alot`) + const browser = await webdriver(next.url, `${locale}/redirect-me-alot`) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/new-home` + ) + } finally { + await browser.close() + } + const html = await res.text() + const $ = cheerio.load(html) + expect($('.title').text()).toBe('Welcome to a new page') + }) + + it(`${label}should redirect (infinite-loop)`, async () => { + await expect( + fetchViaHTTP(next.url, `${locale}/infinite-loop`) + ).rejects.toThrow() + }) + + it(`${label}should redirect to api route with locale`, async () => { + const browser = await webdriver(next.url, `${locale}`) + await browser.elementByCss('#link-to-api-with-locale').click() + await browser.waitForCondition('window.location.pathname === "/api/ok"') + const body = await browser.elementByCss('body').text() + expect(body).toBe('ok') + }) + } +}) diff --git a/test/integration/middleware-responses/middleware.js b/test/e2e/middleware-responses/app/middleware.js similarity index 92% rename from test/integration/middleware-responses/middleware.js rename to test/e2e/middleware-responses/app/middleware.js index 2116abc64f1c..abc81bbe9101 100644 --- a/test/integration/middleware-responses/middleware.js +++ b/test/e2e/middleware-responses/app/middleware.js @@ -12,6 +12,11 @@ export async function middleware(request, ev) { const encoder = new TextEncoder() const next = NextResponse.next() + // this is needed for tests to get the BUILD_ID + if (url.pathname.startsWith('/_next/static/__BUILD_ID')) { + return NextResponse.next() + } + // Header based on query param if (url.searchParams.get('nested-header') === 'true') { next.headers.set('x-nested-header', 'valid') diff --git a/test/integration/middleware-responses/next.config.js b/test/e2e/middleware-responses/app/next.config.js similarity index 100% rename from test/integration/middleware-responses/next.config.js rename to test/e2e/middleware-responses/app/next.config.js diff --git a/test/integration/middleware-responses/pages/index.js b/test/e2e/middleware-responses/app/pages/index.js similarity index 100% rename from test/integration/middleware-responses/pages/index.js rename to test/e2e/middleware-responses/app/pages/index.js diff --git a/test/e2e/middleware-responses/test/index.test.ts b/test/e2e/middleware-responses/test/index.test.ts new file mode 100644 index 000000000000..181b67ed2e11 --- /dev/null +++ b/test/e2e/middleware-responses/test/index.test.ts @@ -0,0 +1,99 @@ +/* eslint-env jest */ + +import { join } from 'path' +import { fetchViaHTTP } from 'next-test-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { createNext, FileRef } from 'e2e-utils' + +describe('Middleware Responses', () => { + let next: NextInstance + + afterAll(() => next.destroy()) + beforeAll(async () => { + next = await createNext({ + files: { + pages: new FileRef(join(__dirname, '../app/pages')), + 'middleware.js': new FileRef(join(__dirname, '../app/middleware.js')), + 'next.config.js': new FileRef(join(__dirname, '../app/next.config.js')), + }, + }) + }) + + testsWithLocale() + testsWithLocale('/fr') + + function testsWithLocale(locale = '') { + const label = locale ? `${locale} ` : `` + + it(`${label}responds with multiple cookies`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/two-cookies`) + expect(res.headers.raw()['set-cookie']).toEqual([ + 'foo=chocochip', + 'bar=chocochip', + ]) + }) + + it(`${label}should fail when returning a stream`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/stream-a-response`) + expect(res.status).toBe(500) + + if ((global as any).isNextDeploy) { + expect(await res.text()).toContain( + 'INTERNAL_EDGE_FUNCTION_INVOCATION_FAILED' + ) + } else { + expect(await res.text()).toEqual('Internal Server Error') + expect(next.cliOutput).toContain( + `A middleware can not alter response's body. Learn more: https://nextjs.org/docs/messages/returning-response-body-in-middleware` + ) + } + }) + + it(`${label}should fail when returning a text body`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/send-response`) + expect(res.status).toBe(500) + + if ((global as any).isNextDeploy) { + expect(await res.text()).toContain( + 'INTERNAL_EDGE_FUNCTION_INVOCATION_FAILED' + ) + } else { + expect(await res.text()).toEqual('Internal Server Error') + expect(next.cliOutput).toContain( + `A middleware can not alter response's body. Learn more: https://nextjs.org/docs/messages/returning-response-body-in-middleware` + ) + } + }) + + it(`${label}should respond with a 401 status code`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/bad-status`) + const html = await res.text() + expect(res.status).toBe(401) + expect(html).toBe('') + }) + + it(`${label}should respond with one header`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/header`) + expect(res.headers.get('x-first-header')).toBe('valid') + }) + + it(`${label}should respond with two headers`, async () => { + const res = await fetchViaHTTP( + next.url, + `${locale}/header?nested-header=true` + ) + expect(res.headers.get('x-first-header')).toBe('valid') + expect(res.headers.get('x-nested-header')).toBe('valid') + }) + + it(`${label}should respond appending headers headers`, async () => { + const res = await fetchViaHTTP( + next.url, + `${locale}/?nested-header=true&append-me=true&cookie-me=true` + ) + expect(res.headers.get('x-nested-header')).toBe('valid') + expect(res.headers.get('x-append-me')).toBe('top') + expect(res.headers.raw()['set-cookie']).toEqual(['bar=chocochip']) + }) + } +}) diff --git a/test/integration/middleware-rewrites/middleware.js b/test/e2e/middleware-rewrites/app/middleware.js similarity index 95% rename from test/integration/middleware-rewrites/middleware.js rename to test/e2e/middleware-rewrites/app/middleware.js index 07ad1195d6f4..b1a97d4e2e1d 100644 --- a/test/integration/middleware-rewrites/middleware.js +++ b/test/e2e/middleware-rewrites/app/middleware.js @@ -8,6 +8,11 @@ const PUBLIC_FILE = /\.(.*)$/ export async function middleware(request) { const url = request.nextUrl + // this is needed for tests to get the BUILD_ID + if (url.pathname.startsWith('/_next/static/__BUILD_ID')) { + return NextResponse.next() + } + if (url.pathname.startsWith('/about') && url.searchParams.has('override')) { const isExternal = url.searchParams.get('override') === 'external' return NextResponse.rewrite( diff --git a/test/integration/middleware-rewrites/next.config.js b/test/e2e/middleware-rewrites/app/next.config.js similarity index 100% rename from test/integration/middleware-rewrites/next.config.js rename to test/e2e/middleware-rewrites/app/next.config.js diff --git a/test/integration/middleware-rewrites/pages/[param].js b/test/e2e/middleware-rewrites/app/pages/[param].js similarity index 100% rename from test/integration/middleware-rewrites/pages/[param].js rename to test/e2e/middleware-rewrites/app/pages/[param].js diff --git a/test/integration/middleware-rewrites/pages/ab-test/a.js b/test/e2e/middleware-rewrites/app/pages/ab-test/a.js similarity index 100% rename from test/integration/middleware-rewrites/pages/ab-test/a.js rename to test/e2e/middleware-rewrites/app/pages/ab-test/a.js diff --git a/test/integration/middleware-rewrites/pages/ab-test/b.js b/test/e2e/middleware-rewrites/app/pages/ab-test/b.js similarity index 100% rename from test/integration/middleware-rewrites/pages/ab-test/b.js rename to test/e2e/middleware-rewrites/app/pages/ab-test/b.js diff --git a/test/integration/middleware-rewrites/pages/about-bypass.js b/test/e2e/middleware-rewrites/app/pages/about-bypass.js similarity index 100% rename from test/integration/middleware-rewrites/pages/about-bypass.js rename to test/e2e/middleware-rewrites/app/pages/about-bypass.js diff --git a/test/integration/middleware-rewrites/pages/about.js b/test/e2e/middleware-rewrites/app/pages/about.js similarity index 100% rename from test/integration/middleware-rewrites/pages/about.js rename to test/e2e/middleware-rewrites/app/pages/about.js diff --git a/test/integration/middleware-rewrites/pages/clear-query-params.js b/test/e2e/middleware-rewrites/app/pages/clear-query-params.js similarity index 100% rename from test/integration/middleware-rewrites/pages/clear-query-params.js rename to test/e2e/middleware-rewrites/app/pages/clear-query-params.js diff --git a/test/integration/middleware-rewrites/pages/country/[country].js b/test/e2e/middleware-rewrites/app/pages/country/[country].js similarity index 100% rename from test/integration/middleware-rewrites/pages/country/[country].js rename to test/e2e/middleware-rewrites/app/pages/country/[country].js diff --git a/test/integration/middleware-rewrites/pages/dynamic-fallback/[...parts].js b/test/e2e/middleware-rewrites/app/pages/dynamic-fallback/[...parts].js similarity index 100% rename from test/integration/middleware-rewrites/pages/dynamic-fallback/[...parts].js rename to test/e2e/middleware-rewrites/app/pages/dynamic-fallback/[...parts].js diff --git a/test/integration/middleware-rewrites/pages/fallback-true-blog/[slug].js b/test/e2e/middleware-rewrites/app/pages/fallback-true-blog/[slug].js similarity index 63% rename from test/integration/middleware-rewrites/pages/fallback-true-blog/[slug].js rename to test/e2e/middleware-rewrites/app/pages/fallback-true-blog/[slug].js index acd458886ad5..24a936ad2ea6 100644 --- a/test/integration/middleware-rewrites/pages/fallback-true-blog/[slug].js +++ b/test/e2e/middleware-rewrites/app/pages/fallback-true-blog/[slug].js @@ -10,7 +10,13 @@ export default function Page(props) { export function getStaticPaths() { return { - paths: ['/fallback-true-blog/first'], + paths: [ + '/fallback-true-blog/first', + '/fallback-true-blog/build-time-1', + '/fallback-true-blog/build-time-2', + '/fallback-true-blog/build-time-3', + '/fallback-true-blog/build-time-4', + ], fallback: true, } } diff --git a/test/integration/middleware-rewrites/pages/i18n.js b/test/e2e/middleware-rewrites/app/pages/i18n.js similarity index 100% rename from test/integration/middleware-rewrites/pages/i18n.js rename to test/e2e/middleware-rewrites/app/pages/i18n.js diff --git a/test/integration/middleware-rewrites/pages/index.js b/test/e2e/middleware-rewrites/app/pages/index.js similarity index 100% rename from test/integration/middleware-rewrites/pages/index.js rename to test/e2e/middleware-rewrites/app/pages/index.js diff --git a/test/e2e/middleware-rewrites/test/index.test.ts b/test/e2e/middleware-rewrites/test/index.test.ts new file mode 100644 index 000000000000..e9a793064dd2 --- /dev/null +++ b/test/e2e/middleware-rewrites/test/index.test.ts @@ -0,0 +1,451 @@ +/* eslint-env jest */ + +import { join } from 'path' +import cheerio from 'cheerio' +import webdriver from 'next-webdriver' +import { NextInstance } from 'test/lib/next-modes/base' +import { check, fetchViaHTTP } from 'next-test-utils' +import { createNext, FileRef } from 'e2e-utils' + +describe('Middleware Rewrite', () => { + let next: NextInstance + + afterAll(() => next.destroy()) + beforeAll(async () => { + next = await createNext({ + files: { + pages: new FileRef(join(__dirname, '../app/pages')), + 'next.config.js': new FileRef(join(__dirname, '../app/next.config.js')), + 'middleware.js': new FileRef(join(__dirname, '../app/middleware.js')), + }, + }) + }) + + tests() + testsWithLocale() + testsWithLocale('/fr') + function tests() { + // TODO: middleware effect headers aren't available here + it.skip('includes the locale in rewrites by default', async () => { + const res = await fetchViaHTTP(next.url, `/rewrite-me-to-about`) + expect( + res.headers.get('x-middleware-rewrite')?.endsWith('/en/about') + ).toEqual(true) + }) + + it('should rewrite correctly when navigating via history', async () => { + const browser = await webdriver(next.url, '/') + await browser.elementByCss('#override-with-internal-rewrite').click() + await check(() => { + return browser.eval('document.documentElement.innerHTML') + }, /Welcome Page A/) + + await browser.refresh() + await browser.back() + await browser.waitForElementByCss('#override-with-internal-rewrite') + await browser.forward() + await check(() => { + return browser.eval('document.documentElement.innerHTML') + }, /Welcome Page A/) + }) + + it('should return HTML/data correctly for pre-rendered page', async () => { + for (const slug of [ + 'first', + 'build-time-1', + 'build-time-2', + 'build-time-3', + ]) { + const res = await fetchViaHTTP(next.url, `/fallback-true-blog/${slug}`) + expect(res.status).toBe(200) + + const $ = cheerio.load(await res.text()) + expect(JSON.parse($('#props').text())?.params).toEqual({ + slug, + }) + + const dataRes = await fetchViaHTTP( + next.url, + `/_next/data/${next.buildId}/en/fallback-true-blog/${slug}.json`, + undefined, + { + headers: { + 'x-nextjs-data': '1', + }, + } + ) + expect(dataRes.status).toBe(200) + expect((await dataRes.json())?.pageProps?.params).toEqual({ + slug, + }) + } + }) + + it('should override with rewrite internally correctly', async () => { + const res = await fetchViaHTTP( + next.url, + `/about`, + { override: 'internal' }, + { redirect: 'manual' } + ) + + expect(res.status).toBe(200) + expect(await res.text()).toContain('Welcome Page A') + + const browser = await webdriver(next.url, ``) + await browser.elementByCss('#override-with-internal-rewrite').click() + await check( + () => browser.eval('document.documentElement.innerHTML'), + /Welcome Page A/ + ) + expect(await browser.eval('window.location.pathname')).toBe(`/about`) + expect(await browser.eval('window.location.search')).toBe( + '?override=internal' + ) + }) + + it(`should rewrite to data urls for incoming data request internally rewritten`, async () => { + const res = await fetchViaHTTP( + next.url, + `/_next/data/${next.buildId}/es/about.json`, + { override: 'internal' }, + { redirect: 'manual', headers: { 'x-nextjs-data': '1' } } + ) + const json = await res.json() + expect(json.pageProps).toEqual({ abtest: true }) + }) + + it('should override with rewrite externally correctly', async () => { + const res = await fetchViaHTTP( + next.url, + `/about`, + { override: 'external' }, + { redirect: 'manual' } + ) + + expect(res.status).toBe(200) + expect(await res.text()).toContain('Example Domain') + + const browser = await webdriver(next.url, ``) + await browser.elementByCss('#override-with-external-rewrite').click() + await check( + () => browser.eval('document.documentElement.innerHTML'), + /Example Domain/ + ) + await check(() => browser.eval('window.location.pathname'), `/about`) + await check( + () => browser.eval('window.location.search'), + '?override=external' + ) + }) + + it(`should rewrite to the external url for incoming data request externally rewritten`, async () => { + const browser = await webdriver( + next.url, + `/_next/data/${next.buildId}/es/about.json?override=external`, + undefined + ) + await check( + () => browser.eval('document.documentElement.innerHTML'), + /Example Domain/ + ) + }) + + it('should rewrite to fallback: true page successfully', async () => { + const randomSlug = `another-${Date.now()}` + const res2 = await fetchViaHTTP(next.url, `/to-blog/${randomSlug}`) + expect(res2.status).toBe(200) + expect(await res2.text()).toContain('Loading...') + + const randomSlug2 = `another-${Date.now()}` + const browser = await webdriver(next.url, `/to-blog/${randomSlug2}`) + + await check(async () => { + const props = JSON.parse(await browser.elementByCss('#props').text()) + return props.params.slug === randomSlug2 + ? 'success' + : JSON.stringify(props) + }, 'success') + }) + + if (!(global as any).isNextDeploy) { + // runtime logs aren't currently available for deploy test + it(`warns about a query param deleted`, async () => { + await fetchViaHTTP(next.url, `/clear-query-params`, { + a: '1', + allowed: 'kept', + }) + expect(next.cliOutput).toContain( + 'Query params are no longer automatically merged for rewrites in middleware' + ) + }) + } + + it('should allow to opt-out prefetch caching', async () => { + const browser = await webdriver(next.url, '/') + await browser.addCookie({ name: 'about-bypass', value: '1' }) + await browser.refresh() + await browser.eval('window.__SAME_PAGE = true') + await browser.elementByCss('#link-with-rewritten-url').click() + await browser.waitForElementByCss('.refreshed') + await browser.deleteCookies() + expect(await browser.eval('window.__SAME_PAGE')).toBe(true) + const element = await browser.elementByCss('.title') + expect(await element.text()).toEqual('About Bypassed Page') + }) + + it(`should allow to rewrite keeping the locale in pathname`, async () => { + const res = await fetchViaHTTP(next.url, '/fr/country', { + country: 'spain', + }) + const html = await res.text() + const $ = cheerio.load(html) + expect($('#locale').text()).toBe('fr') + expect($('#country').text()).toBe('spain') + }) + + it(`should allow to rewrite to a different locale`, async () => { + const res = await fetchViaHTTP(next.url, '/country', { + 'my-locale': 'es', + }) + const html = await res.text() + const $ = cheerio.load(html) + expect($('#locale').text()).toBe('es') + expect($('#country').text()).toBe('us') + }) + + it(`should behave consistently on recursive rewrites`, async () => { + const res = await fetchViaHTTP(next.url, `/rewrite-me-to-about`, { + override: 'internal', + }) + const html = await res.text() + const $ = cheerio.load(html) + expect($('.title').text()).toBe('About Page') + + const browser = await webdriver(next.url, `/`) + await browser.elementByCss('#rewrite-me-to-about').click() + await check( + () => browser.eval(`window.location.pathname`), + `/rewrite-me-to-about` + ) + const element = await browser.elementByCss('.title') + expect(await element.text()).toEqual('About Page') + }) + + it(`should allow to switch locales`, async () => { + const browser = await webdriver(next.url, '/i18n') + await browser.waitForElementByCss('.en') + await browser.elementByCss('#link-ja').click() + await browser.waitForElementByCss('.ja') + await browser.elementByCss('#link-en').click() + await browser.waitForElementByCss('.en') + await browser.elementByCss('#link-fr').click() + await browser.waitForElementByCss('.fr') + await browser.elementByCss('#link-ja2').click() + await browser.waitForElementByCss('.ja') + await browser.elementByCss('#link-en2').click() + await browser.waitForElementByCss('.en') + }) + } + + function testsWithLocale(locale = '') { + const label = locale ? `${locale} ` : `` + + it(`${label}should add a cookie and rewrite to a/b test`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/rewrite-to-ab-test`) + const html = await res.text() + const $ = cheerio.load(html) + // Set-Cookie header with Expires should not be split into two + expect(res.headers.raw()['set-cookie']).toHaveLength(1) + const bucket = getCookieFromResponse(res, 'bucket') + const expectedText = bucket === 'a' ? 'Welcome Page A' : 'Welcome Page B' + const browser = await webdriver(next.url, `${locale}/rewrite-to-ab-test`) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/rewrite-to-ab-test` + ) + } finally { + await browser.close() + } + // -1 is returned if bucket was not found in func getCookieFromResponse + expect(bucket).not.toBe(-1) + expect($('.title').text()).toBe(expectedText) + }) + + it(`${label}should clear query parameters`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/clear-query-params`, { + a: '1', + b: '2', + foo: 'bar', + allowed: 'kept', + }) + const html = await res.text() + const $ = cheerio.load(html) + expect(JSON.parse($('#my-query-params').text())).toEqual({ + allowed: 'kept', + }) + }) + + it(`${label}should rewrite to about page`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/rewrite-me-to-about`) + const html = await res.text() + const $ = cheerio.load(html) + const browser = await webdriver(next.url, `${locale}/rewrite-me-to-about`) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/rewrite-me-to-about` + ) + } finally { + await browser.close() + } + expect($('.title').text()).toBe('About Page') + }) + + it(`${label}support colons in path`, async () => { + const path = `${locale}/not:param` + const res = await fetchViaHTTP(next.url, path) + const html = await res.text() + const $ = cheerio.load(html) + expect($('#props').text()).toBe('not:param') + const browser = await webdriver(next.url, path) + try { + expect(await browser.eval(`window.location.pathname`)).toBe(path) + } finally { + await browser.close() + } + }) + + it(`${label}can rewrite to path with colon`, async () => { + const path = `${locale}/rewrite-me-with-a-colon` + const res = await fetchViaHTTP(next.url, path) + const html = await res.text() + const $ = cheerio.load(html) + expect($('#props').text()).toBe('with:colon') + const browser = await webdriver(next.url, path) + try { + expect(await browser.eval(`window.location.pathname`)).toBe(path) + } finally { + await browser.close() + } + }) + + it(`${label}can rewrite from path with colon`, async () => { + const path = `${locale}/colon:here` + const res = await fetchViaHTTP(next.url, path) + const html = await res.text() + const $ = cheerio.load(html) + expect($('#props').text()).toBe('no-colon-here') + const browser = await webdriver(next.url, path) + try { + expect(await browser.eval(`window.location.pathname`)).toBe(path) + } finally { + await browser.close() + } + }) + + it(`${label}can rewrite from path with colon and retain query parameter`, async () => { + const path = `${locale}/colon:here?qp=arg` + const res = await fetchViaHTTP(next.url, path) + const html = await res.text() + const $ = cheerio.load(html) + expect($('#props').text()).toBe('no-colon-here') + expect($('#qp').text()).toBe('arg') + const browser = await webdriver(next.url, path) + try { + expect( + await browser.eval( + `window.location.href.replace(window.location.origin, '')` + ) + ).toBe(path) + } finally { + await browser.close() + } + }) + + it(`${label}can rewrite to path with colon and retain query parameter`, async () => { + const path = `${locale}/rewrite-me-with-a-colon?qp=arg` + const res = await fetchViaHTTP(next.url, path) + const html = await res.text() + const $ = cheerio.load(html) + expect($('#props').text()).toBe('with:colon') + expect($('#qp').text()).toBe('arg') + const browser = await webdriver(next.url, path) + try { + expect( + await browser.eval( + `window.location.href.replace(window.location.origin, '')` + ) + ).toBe(path) + } finally { + await browser.close() + } + }) + + if (!(global as any).isNextDeploy) { + it(`${label}should rewrite when not using localhost`, async () => { + const customUrl = new URL(next.url) + customUrl.hostname = 'localtest.me' + + const res = await fetchViaHTTP( + customUrl.toString(), + `${locale}/rewrite-me-without-hard-navigation` + ) + const html = await res.text() + const $ = cheerio.load(html) + expect($('.title').text()).toBe('About Page') + }) + } + + it(`${label}should rewrite to Vercel`, async () => { + const res = await fetchViaHTTP(next.url, `${locale}/rewrite-me-to-vercel`) + const html = await res.text() + // const browser = await webdriver(next.url, '/rewrite-me-to-vercel') + // TODO: running this to chech the window.location.pathname hangs for some reason; + expect(html).toContain('Example Domain') + }) + + it(`${label}should rewrite without hard navigation`, async () => { + const browser = await webdriver(next.url, '/') + await browser.eval('window.__SAME_PAGE = true') + await browser.elementByCss('#link-with-rewritten-url').click() + await browser.waitForElementByCss('.refreshed') + expect(await browser.eval('window.__SAME_PAGE')).toBe(true) + const element = await browser.elementByCss('.middleware') + expect(await element.text()).toEqual('foo') + }) + + it(`${label}should not call middleware with shallow push`, async () => { + const browser = await webdriver(next.url, '') + await browser.elementByCss('#link-to-shallow-push').click() + await browser.waitForCondition( + 'new URL(window.location.href).searchParams.get("path") === "rewrite-me-without-hard-navigation"' + ) + await expect(async () => { + await browser.waitForElementByCss('.refreshed', 500) + }).rejects.toThrow() + }) + + it(`${label}should correctly rewriting to a different dynamic path`, async () => { + const browser = await webdriver(next.url, '/dynamic-replace') + const element = await browser.elementByCss('.title') + expect(await element.text()).toEqual('Parts page') + const logs = await browser.log() + expect( + logs.every((log) => log.source === 'log' || log.source === 'info') + ).toEqual(true) + }) + } + + function getCookieFromResponse(res, cookieName) { + // node-fetch bundles the cookies as string in the Response + const cookieArray = res.headers.raw()['set-cookie'] + for (const cookie of cookieArray) { + let individualCookieParams = cookie.split(';') + let individualCookie = individualCookieParams[0].split('=') + if (individualCookie[0] === cookieName) { + return individualCookie[1] + } + } + return -1 + } +}) diff --git a/test/integration/client-navigation/pages/nav/hash-changes-with-state.js b/test/integration/client-navigation/pages/nav/hash-changes-with-state.js index 67f774d44c52..e6e2bb5a26fb 100644 --- a/test/integration/client-navigation/pages/nav/hash-changes-with-state.js +++ b/test/integration/client-navigation/pages/nav/hash-changes-with-state.js @@ -16,8 +16,8 @@ export default class SelfReload extends Component { '/nav/hash-changes-with-state', '/nav/hash-changes-with-state#hello' + Math.random(), { - historyCount: (window.history.state.options.historyCount || 0) + 1, - shallowHistoryCount: window.history.state.options.shallowHistoryCount, + historyCount: (window.history.state?.options?.historyCount || 0) + 1, + shallowHistoryCount: window.history.state?.options?.shallowHistoryCount, } ) } @@ -28,9 +28,9 @@ export default class SelfReload extends Component { '/nav/hash-changes-with-state#hello' + Math.random(), { shallow: true, - historyCount: window.history.state.options.historyCount, + historyCount: window.history.state?.options?.historyCount, shallowHistoryCount: - (window.history.state.options.shallowHistoryCount || 0) + 1, + (window.history.state?.options?.shallowHistoryCount || 0) + 1, } ) } @@ -45,7 +45,7 @@ export default class SelfReload extends Component {
HISTORY COUNT:{' '} {typeof window !== 'undefined' && - window.history.state.options.historyCount} + window.history.state?.options?.historyCount}
SHALLOW HISTORY COUNT:{' '} {typeof window !== 'undefined' && - window.history.state.options.shallowHistoryCount} + window.history.state?.options?.shallowHistoryCount} ) diff --git a/test/integration/middleware-base-path/test/index.test.js b/test/integration/middleware-base-path/test/index.test.js deleted file mode 100644 index 3c37ad2f3b94..000000000000 --- a/test/integration/middleware-base-path/test/index.test.js +++ /dev/null @@ -1,60 +0,0 @@ -/* eslint-env jest */ - -jest.setTimeout(1000 * 60 * 2) - -import { - fetchViaHTTP, - findPort, - killApp, - launchApp, - nextBuild, - nextStart, -} from 'next-test-utils' -import { join } from 'path' -import cheerio from 'cheerio' -import webdriver from 'next-webdriver' - -const context = {} -context.appDir = join(__dirname, '../') - -describe('Middleware base tests', () => { - describe('dev mode', () => { - beforeAll(async () => { - context.appPort = await findPort() - context.app = await launchApp(context.appDir, context.appPort) - }) - afterAll(() => killApp(context.app)) - runTests() - }) - - describe('production mode', () => { - beforeAll(async () => { - await nextBuild(context.appDir) - context.appPort = await findPort() - context.app = await nextStart(context.appDir, context.appPort) - }) - afterAll(() => killApp(context.app)) - runTests() - }) -}) - -function runTests() { - it('should execute from absolute paths', async () => { - const browser = await webdriver(context.appPort, '/redirect-with-basepath') - try { - expect(await browser.eval(`window.location.pathname`)).toBe( - '/root/redirect-with-basepath' - ) - } finally { - await browser.close() - } - - const res = await fetchViaHTTP( - context.appPort, - '/root/redirect-with-basepath' - ) - const html = await res.text() - const $ = cheerio.load(html) - expect($('.title').text()).toBe('About Page') - }) -} diff --git a/test/integration/middleware-redirects/test/index.test.js b/test/integration/middleware-redirects/test/index.test.js deleted file mode 100644 index 28caf0ce2a94..000000000000 --- a/test/integration/middleware-redirects/test/index.test.js +++ /dev/null @@ -1,187 +0,0 @@ -/* eslint-env jest */ - -import { join } from 'path' -import fs from 'fs-extra' -import cheerio from 'cheerio' -import webdriver from 'next-webdriver' -import { - check, - fetchViaHTTP, - findPort, - killApp, - launchApp, - nextBuild, - nextStart, -} from 'next-test-utils' - -jest.setTimeout(1000 * 60 * 2) - -const context = { - appDir: join(__dirname, '../'), - logs: { output: '', stdout: '', stderr: '' }, -} - -describe('Middleware Redirect', () => { - describe('dev mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - context.appPort = await findPort() - context.buildId = 'development' - context.app = await launchApp(context.appDir, context.appPort) - }) - - tests(context) - testsWithLocale(context) - testsWithLocale(context, '/fr') - }) - - describe('production mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - await nextBuild(context.appDir) - context.buildId = await fs.readFile( - join(context.appDir, '.next/BUILD_ID'), - 'utf8' - ) - context.appPort = await findPort() - context.app = await nextStart(context.appDir, context.appPort) - }) - - tests(context) - testsWithLocale(context) - testsWithLocale(context, '/fr') - }) -}) - -function tests(context) { - it('does not include the locale in redirects by default', async () => { - const res = await fetchViaHTTP(context.appPort, `/old-home`, undefined, { - redirect: 'manual', - }) - expect(res.headers.get('location')?.endsWith('/default/about')).toEqual( - false - ) - }) - - it(`should redirect to data urls with data requests and internal redirects`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `/_next/data/${context.buildId}/es/old-home.json`, - { override: 'internal' }, - { redirect: 'manual' } - ) - - expect( - res.headers - .get('x-nextjs-redirect') - ?.endsWith( - `/_next/data/${context.buildId}/es/new-home.json?override=internal` - ) - ).toEqual(true) - expect(res.headers.get('location')).toEqual(null) - }) - - it(`should redirect to external urls with data requests and external redirects`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `/_next/data/${context.buildId}/es/old-home.json`, - { override: 'external' }, - { redirect: 'manual' } - ) - - expect(res.headers.get('x-nextjs-redirect')).toEqual('https://example.com/') - expect(res.headers.get('location')).toEqual(null) - - const browser = await webdriver(context.appPort, '/') - await browser.elementByCss('#old-home-external').click() - await check(async () => { - expect(await browser.elementByCss('h1').text()).toEqual('Example Domain') - return 'yes' - }, 'yes') - }) -} - -function testsWithLocale(context, locale = '') { - const label = locale ? `${locale} ` : `` - - it(`${label}should redirect`, async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/old-home`) - const html = await res.text() - const $ = cheerio.load(html) - const browser = await webdriver(context.appPort, `${locale}/old-home`) - try { - expect(await browser.eval(`window.location.pathname`)).toBe( - `${locale}/new-home` - ) - } finally { - await browser.close() - } - expect($('.title').text()).toBe('Welcome to a new page') - }) - - it(`${label}should implement internal redirects`, async () => { - const browser = await webdriver(context.appPort, `${locale}`) - await browser.eval('window.__SAME_PAGE = true') - await browser.elementByCss('#old-home').click() - await browser.waitForElementByCss('#new-home-title') - expect(await browser.eval('window.__SAME_PAGE')).toBe(true) - try { - expect(await browser.eval(`window.location.pathname`)).toBe( - `${locale}/new-home` - ) - } finally { - await browser.close() - } - }) - - it(`${label}should redirect cleanly with the original url param`, async () => { - const browser = await webdriver( - context.appPort, - `${locale}/blank-page?foo=bar` - ) - try { - expect( - await browser.eval( - `window.location.href.replace(window.location.origin, '')` - ) - ).toBe(`${locale}/new-home`) - } finally { - await browser.close() - } - }) - - it(`${label}should redirect multiple times`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/redirect-me-alot` - ) - const browser = await webdriver( - context.appPort, - `${locale}/redirect-me-alot` - ) - try { - expect(await browser.eval(`window.location.pathname`)).toBe( - `${locale}/new-home` - ) - } finally { - await browser.close() - } - const html = await res.text() - const $ = cheerio.load(html) - expect($('.title').text()).toBe('Welcome to a new page') - }) - - it(`${label}should redirect (infinite-loop)`, async () => { - await expect( - fetchViaHTTP(context.appPort, `${locale}/infinite-loop`) - ).rejects.toThrow() - }) - - it(`${label}should redirect to api route with locale`, async () => { - const browser = await webdriver(context.appPort, `${locale}`) - await browser.elementByCss('#link-to-api-with-locale').click() - await browser.waitForCondition('window.location.pathname === "/api/ok"') - const body = await browser.elementByCss('body').text() - expect(body).toBe('ok') - }) -} diff --git a/test/integration/middleware-responses/test/index.test.js b/test/integration/middleware-responses/test/index.test.js deleted file mode 100644 index 19509dad2cb7..000000000000 --- a/test/integration/middleware-responses/test/index.test.js +++ /dev/null @@ -1,119 +0,0 @@ -/* eslint-env jest */ - -import { join } from 'path' -import { - fetchViaHTTP, - findPort, - killApp, - launchApp, - nextBuild, - nextStart, -} from 'next-test-utils' - -jest.setTimeout(1000 * 60 * 2) -const context = { appDir: join(__dirname, '../'), output: '' } - -describe('Middleware Responses', () => { - describe('dev mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - context.output = '' - context.appPort = await findPort() - context.app = await launchApp(context.appDir, context.appPort, { - onStdout(msg) { - context.output += msg - }, - onStderr(msg) { - context.output += msg - }, - }) - }) - - testsWithLocale(context) - testsWithLocale(context, '/fr') - }) - - describe('production mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - context.output = '' - await nextBuild(context.appDir) - context.appPort = await findPort() - context.app = await nextStart(context.appDir, context.appPort, { - onStdout(msg) { - context.output += msg - }, - onStderr(msg) { - context.output += msg - }, - }) - }) - - testsWithLocale(context) - testsWithLocale(context, '/fr') - }) -}) - -function testsWithLocale(context, locale = '') { - const label = locale ? `${locale} ` : `` - - it(`${label}responds with multiple cookies`, async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/two-cookies`) - expect(res.headers.raw()['set-cookie']).toEqual([ - 'foo=chocochip', - 'bar=chocochip', - ]) - }) - - it(`${label}should fail when returning a stream`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/stream-a-response` - ) - expect(res.status).toBe(500) - expect(await res.text()).toEqual('Internal Server Error') - expect(context.output).toContain( - `A middleware can not alter response's body. Learn more: https://nextjs.org/docs/messages/returning-response-body-in-middleware` - ) - }) - - it(`${label}should fail when returning a text body`, async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/send-response`) - expect(res.status).toBe(500) - expect(await res.text()).toEqual('Internal Server Error') - expect(context.output).toContain( - `A middleware can not alter response's body. Learn more: https://nextjs.org/docs/messages/returning-response-body-in-middleware` - ) - }) - - it(`${label}should respond with a 401 status code`, async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/bad-status`) - const html = await res.text() - expect(res.status).toBe(401) - expect(html).toBe('') - }) - - it(`${label}should respond with one header`, async () => { - const res = await fetchViaHTTP(context.appPort, `${locale}/header`) - expect(res.headers.get('x-first-header')).toBe('valid') - }) - - it(`${label}should respond with two headers`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/header?nested-header=true` - ) - expect(res.headers.get('x-first-header')).toBe('valid') - expect(res.headers.get('x-nested-header')).toBe('valid') - }) - - it(`${label}should respond appending headers headers`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/?nested-header=true&append-me=true&cookie-me=true` - ) - expect(res.headers.get('x-nested-header')).toBe('valid') - expect(res.headers.get('x-append-me')).toBe('top') - expect(res.headers.raw()['set-cookie']).toEqual(['bar=chocochip']) - }) -} diff --git a/test/integration/middleware-rewrites/test/index.test.js b/test/integration/middleware-rewrites/test/index.test.js deleted file mode 100644 index 1fc9e022ee0a..000000000000 --- a/test/integration/middleware-rewrites/test/index.test.js +++ /dev/null @@ -1,460 +0,0 @@ -/* eslint-env jest */ - -import { join } from 'path' -import fs from 'fs-extra' -import cheerio from 'cheerio' -import webdriver, { USE_SELENIUM } from 'next-webdriver' -import { - check, - fetchViaHTTP, - findPort, - killApp, - launchApp, - nextBuild, - nextStart, -} from 'next-test-utils' - -jest.setTimeout(1000 * 60 * 2) - -const context = { - appDir: join(__dirname, '../'), - logs: { output: '', stdout: '', stderr: '' }, -} - -describe('Middleware Rewrite', () => { - describe('dev mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - context.appPort = await findPort() - context.buildId = 'development' - context.app = await launchApp(context.appDir, context.appPort, { - onStdout(msg) { - context.logs.output += msg - context.logs.stdout += msg - }, - onStderr(msg) { - context.logs.output += msg - context.logs.stderr += msg - }, - }) - }) - - tests(context) - testsWithLocale(context) - testsWithLocale(context, '/fr') - }) - - describe('production mode', () => { - afterAll(() => killApp(context.app)) - beforeAll(async () => { - await nextBuild(context.appDir, undefined) - context.appPort = await findPort() - context.buildId = await fs.readFile( - join(context.appDir, '.next/BUILD_ID'), - 'utf8' - ) - - context.app = await nextStart(context.appDir, context.appPort, { - onStdout(msg) { - context.logs.output += msg - context.logs.stdout += msg - }, - onStderr(msg) { - context.logs.output += msg - context.logs.stderr += msg - }, - }) - }) - - tests(context) - testsWithLocale(context) - testsWithLocale(context, '/fr') - }) -}) - -function tests(context) { - it('includes the locale in rewrites by default', async () => { - const res = await fetchViaHTTP(context.appPort, `/rewrite-me-to-about`) - expect( - res.headers.get('x-middleware-rewrite')?.endsWith('/en/about') - ).toEqual(true) - }) - - it('should override with rewrite internally correctly', async () => { - const res = await fetchViaHTTP( - context.appPort, - `/about`, - { override: 'internal' }, - { redirect: 'manual' } - ) - - expect(res.status).toBe(200) - expect(await res.text()).toContain('Welcome Page A') - - const browser = await webdriver(context.appPort, ``) - await browser.elementByCss('#override-with-internal-rewrite').click() - await check( - () => browser.eval('document.documentElement.innerHTML'), - /Welcome Page A/ - ) - expect(await browser.eval('window.location.pathname')).toBe(`/about`) - expect(await browser.eval('window.location.search')).toBe( - '?override=internal' - ) - }) - - it(`should rewrite to data urls for incoming data request internally rewritten`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `/_next/data/${context.buildId}/es/about.json`, - { override: 'internal' }, - { redirect: 'manual' } - ) - const json = await res.json() - expect(json.pageProps).toEqual({ abtest: true }) - }) - - it('should override with rewrite externally correctly', async () => { - const res = await fetchViaHTTP( - context.appPort, - `/about`, - { override: 'external' }, - { redirect: 'manual' } - ) - - expect(res.status).toBe(200) - expect(await res.text()).toContain('Example Domain') - - const browser = await webdriver(context.appPort, ``) - await browser.elementByCss('#override-with-external-rewrite').click() - await check( - () => browser.eval('document.documentElement.innerHTML'), - /Example Domain/ - ) - await check(() => browser.eval('window.location.pathname'), `/about`) - await check( - () => browser.eval('window.location.search'), - '?override=external' - ) - }) - - it(`should rewrite to the external url for incoming data request externally rewritten`, async () => { - const browser = await webdriver( - context.appPort, - `/_next/data/${context.buildId}/es/about.json?override=external` - ) - await check( - () => browser.eval('document.documentElement.innerHTML'), - /Example Domain/ - ) - }) - - it('should rewrite to fallback: true page successfully', async () => { - const randomSlug = `another-${Date.now()}` - const res2 = await fetchViaHTTP(context.appPort, `/to-blog/${randomSlug}`) - expect(res2.status).toBe(200) - expect(await res2.text()).toContain('Loading...') - - const randomSlug2 = `another-${Date.now()}` - const browser = await webdriver(context.appPort, `/to-blog/${randomSlug2}`) - - await check(async () => { - const props = JSON.parse(await browser.elementByCss('#props').text()) - return props.params.slug === randomSlug2 - ? 'success' - : JSON.stringify(props) - }, 'success') - }) - - it(`warns about a query param deleted`, async () => { - await fetchViaHTTP(context.appPort, `/clear-query-params`, { - a: '1', - allowed: 'kept', - }) - expect(context.logs.output).toContain( - 'Query params are no longer automatically merged for rewrites in middleware' - ) - }) - - it('should allow to opt-out preflight caching', async () => { - const browser = await webdriver(context.appPort, '/') - await browser.addCookie({ name: 'about-bypass', value: '1' }) - await browser.eval('window.__SAME_PAGE = true') - await browser.elementByCss('#link-with-rewritten-url').click() - await browser.waitForElementByCss('.refreshed') - await browser.deleteCookies() - expect(await browser.eval('window.__SAME_PAGE')).toBe(true) - const element = await browser.elementByCss('.title') - expect(await element.text()).toEqual('About Bypassed Page') - }) - - it(`should allow to rewrite keeping the locale in pathname`, async () => { - const res = await fetchViaHTTP(context.appPort, '/fr/country', { - country: 'spain', - }) - const html = await res.text() - const $ = cheerio.load(html) - expect($('#locale').text()).toBe('fr') - expect($('#country').text()).toBe('spain') - }) - - it(`should allow to rewrite to a different locale`, async () => { - const res = await fetchViaHTTP(context.appPort, '/country', { - 'my-locale': 'es', - }) - const html = await res.text() - const $ = cheerio.load(html) - expect($('#locale').text()).toBe('es') - expect($('#country').text()).toBe('us') - }) - - it(`should behave consistently on recursive rewrites`, async () => { - const res = await fetchViaHTTP(context.appPort, `/rewrite-me-to-about`, { - override: 'internal', - }) - const html = await res.text() - const $ = cheerio.load(html) - expect($('.title').text()).toBe('About Page') - - const browser = await webdriver(context.appPort, `/`) - await browser.elementByCss('#rewrite-me-to-about').click() - await check( - () => browser.eval(`window.location.pathname`), - `/rewrite-me-to-about` - ) - const element = await browser.elementByCss('.title') - expect(await element.text()).toEqual('About Page') - }) - - if (!USE_SELENIUM) { - it(`should allow to switch locales`, async () => { - const browser = await webdriver(context.appPort, '/i18n') - await browser.waitForElementByCss('.en') - await browser.elementByCss('#link-ja').click() - await browser.waitForElementByCss('.ja') - await browser.elementByCss('#link-en').click() - await browser.waitForElementByCss('.en') - await browser.elementByCss('#link-fr').click() - await browser.waitForElementByCss('.fr') - await browser.elementByCss('#link-ja2').click() - await browser.waitForElementByCss('.ja') - await browser.elementByCss('#link-en2').click() - await browser.waitForElementByCss('.en') - }) - } -} - -function testsWithLocale(context, locale = '') { - const label = locale ? `${locale} ` : `` - - it(`${label}should add a cookie and rewrite to a/b test`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/rewrite-to-ab-test` - ) - const html = await res.text() - const $ = cheerio.load(html) - // Set-Cookie header with Expires should not be split into two - expect(res.headers.raw()['set-cookie']).toHaveLength(1) - const bucket = getCookieFromResponse(res, 'bucket') - const expectedText = bucket === 'a' ? 'Welcome Page A' : 'Welcome Page B' - const browser = await webdriver( - context.appPort, - `${locale}/rewrite-to-ab-test` - ) - try { - expect(await browser.eval(`window.location.pathname`)).toBe( - `${locale}/rewrite-to-ab-test` - ) - } finally { - await browser.close() - } - // -1 is returned if bucket was not found in func getCookieFromResponse - expect(bucket).not.toBe(-1) - expect($('.title').text()).toBe(expectedText) - }) - - it(`${label}should clear query parameters`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/clear-query-params`, - { - a: '1', - b: '2', - foo: 'bar', - allowed: 'kept', - } - ) - const html = await res.text() - const $ = cheerio.load(html) - expect(JSON.parse($('#my-query-params').text())).toEqual({ - allowed: 'kept', - }) - }) - - it(`${label}should rewrite to about page`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/rewrite-me-to-about` - ) - const html = await res.text() - const $ = cheerio.load(html) - const browser = await webdriver( - context.appPort, - `${locale}/rewrite-me-to-about` - ) - try { - expect(await browser.eval(`window.location.pathname`)).toBe( - `${locale}/rewrite-me-to-about` - ) - } finally { - await browser.close() - } - expect($('.title').text()).toBe('About Page') - }) - - it(`${label}support colons in path`, async () => { - const path = `${locale}/not:param` - const res = await fetchViaHTTP(context.appPort, path) - const html = await res.text() - const $ = cheerio.load(html) - expect($('#props').text()).toBe('not:param') - const browser = await webdriver(context.appPort, path) - try { - expect(await browser.eval(`window.location.pathname`)).toBe(path) - } finally { - await browser.close() - } - }) - - it(`${label}can rewrite to path with colon`, async () => { - const path = `${locale}/rewrite-me-with-a-colon` - const res = await fetchViaHTTP(context.appPort, path) - const html = await res.text() - const $ = cheerio.load(html) - expect($('#props').text()).toBe('with:colon') - const browser = await webdriver(context.appPort, path) - try { - expect(await browser.eval(`window.location.pathname`)).toBe(path) - } finally { - await browser.close() - } - }) - - it(`${label}can rewrite from path with colon`, async () => { - const path = `${locale}/colon:here` - const res = await fetchViaHTTP(context.appPort, path) - const html = await res.text() - const $ = cheerio.load(html) - expect($('#props').text()).toBe('no-colon-here') - const browser = await webdriver(context.appPort, path) - try { - expect(await browser.eval(`window.location.pathname`)).toBe(path) - } finally { - await browser.close() - } - }) - - it(`${label}can rewrite from path with colon and retain query parameter`, async () => { - const path = `${locale}/colon:here?qp=arg` - const res = await fetchViaHTTP(context.appPort, path) - const html = await res.text() - const $ = cheerio.load(html) - expect($('#props').text()).toBe('no-colon-here') - expect($('#qp').text()).toBe('arg') - const browser = await webdriver(context.appPort, path) - try { - expect( - await browser.eval( - `window.location.href.replace(window.location.origin, '')` - ) - ).toBe(path) - } finally { - await browser.close() - } - }) - - it(`${label}can rewrite to path with colon and retain query parameter`, async () => { - const path = `${locale}/rewrite-me-with-a-colon?qp=arg` - const res = await fetchViaHTTP(context.appPort, path) - const html = await res.text() - const $ = cheerio.load(html) - expect($('#props').text()).toBe('with:colon') - expect($('#qp').text()).toBe('arg') - const browser = await webdriver(context.appPort, path) - try { - expect( - await browser.eval( - `window.location.href.replace(window.location.origin, '')` - ) - ).toBe(path) - } finally { - await browser.close() - } - }) - - it(`${label}should rewrite when not using localhost`, async () => { - const res = await fetchViaHTTP( - `http://localtest.me:${context.appPort}`, - `${locale}/rewrite-me-without-hard-navigation` - ) - const html = await res.text() - const $ = cheerio.load(html) - expect($('.title').text()).toBe('About Page') - }) - - it(`${label}should rewrite to Vercel`, async () => { - const res = await fetchViaHTTP( - context.appPort, - `${locale}/rewrite-me-to-vercel` - ) - const html = await res.text() - // const browser = await webdriver(context.appPort, '/rewrite-me-to-vercel') - // TODO: running this to chech the window.location.pathname hangs for some reason; - expect(html).toContain('Example Domain') - }) - - it(`${label}should rewrite without hard navigation`, async () => { - const browser = await webdriver(context.appPort, '/') - await browser.eval('window.__SAME_PAGE = true') - await browser.elementByCss('#link-with-rewritten-url').click() - await browser.waitForElementByCss('.refreshed') - expect(await browser.eval('window.__SAME_PAGE')).toBe(true) - const element = await browser.elementByCss('.middleware') - expect(await element.text()).toEqual('foo') - }) - - it(`${label}should not call middleware with shallow push`, async () => { - const browser = await webdriver(context.appPort, '') - await browser.elementByCss('#link-to-shallow-push').click() - await browser.waitForCondition( - 'new URL(window.location.href).searchParams.get("path") === "rewrite-me-without-hard-navigation"' - ) - await expect(async () => { - await browser.waitForElementByCss('.refreshed', 500) - }).rejects.toThrow() - }) - - it(`${label}should correctly rewriting to a different dynamic path`, async () => { - const browser = await webdriver(context.appPort, '/dynamic-replace') - const element = await browser.elementByCss('.title') - expect(await element.text()).toEqual('Parts page') - const logs = await browser.log() - expect( - logs.every((log) => log.source === 'log' || log.source === 'info') - ).toEqual(true) - }) -} - -function getCookieFromResponse(res, cookieName) { - // node-fetch bundles the cookies as string in the Response - const cookieArray = res.headers.raw()['set-cookie'] - for (const cookie of cookieArray) { - let individualCookieParams = cookie.split(';') - let individualCookie = individualCookieParams[0].split('=') - if (individualCookie[0] === cookieName) { - return individualCookie[1] - } - } - return -1 -} diff --git a/test/integration/required-server-files-ssr-404/test/index.test.js b/test/integration/required-server-files-ssr-404/test/index.test.js index f87fa1d6f455..dd24cc93565f 100644 --- a/test/integration/required-server-files-ssr-404/test/index.test.js +++ b/test/integration/required-server-files-ssr-404/test/index.test.js @@ -191,11 +191,16 @@ describe('Required Server Files', () => { }) it('should render dynamic SSR page correctly with x-matched-path', async () => { - const html = await renderViaHTTP(appPort, '/some-other-path', undefined, { - headers: { - 'x-matched-path': '/dynamic/[slug]?slug=first', - }, - }) + const html = await renderViaHTTP( + appPort, + '/some-other-path?slug=first', + undefined, + { + headers: { + 'x-matched-path': '/dynamic/[slug]', + }, + } + ) const $ = cheerio.load(html) const data = JSON.parse($('#props').text()) @@ -203,11 +208,16 @@ describe('Required Server Files', () => { expect($('#slug').text()).toBe('first') expect(data.hello).toBe('world') - const html2 = await renderViaHTTP(appPort, '/some-other-path', undefined, { - headers: { - 'x-matched-path': '/dynamic/[slug]?slug=second', - }, - }) + const html2 = await renderViaHTTP( + appPort, + '/some-other-path?slug=second', + undefined, + { + headers: { + 'x-matched-path': '/dynamic/[slug]', + }, + } + ) const $2 = cheerio.load(html2) const data2 = JSON.parse($2('#props').text()) @@ -249,11 +259,11 @@ describe('Required Server Files', () => { it('should return data correctly with x-matched-path', async () => { const res = await fetchViaHTTP( appPort, - `/_next/data/${buildId}/dynamic/first.json`, + `/_next/data/${buildId}/dynamic/first.json?slug=first`, undefined, { headers: { - 'x-matched-path': '/dynamic/[slug]?slug=first', + 'x-matched-path': '/dynamic/[slug]', }, } ) diff --git a/test/lib/e2e-utils.ts b/test/lib/e2e-utils.ts index d5ce7f183973..462d95f32e57 100644 --- a/test/lib/e2e-utils.ts +++ b/test/lib/e2e-utils.ts @@ -124,6 +124,7 @@ export async function createNext(opts: { packageJson?: PackageJson startCommand?: string packageLockPath?: string + env?: Record }): Promise { try { if (nextInstance) { diff --git a/test/lib/next-modes/base.ts b/test/lib/next-modes/base.ts index 560db0e5aef7..c29082f126a4 100644 --- a/test/lib/next-modes/base.ts +++ b/test/lib/next-modes/base.ts @@ -34,6 +34,7 @@ export class NextInstance { protected packageJson: PackageJson protected packageLockPath?: string protected basePath?: string + protected env?: Record constructor({ files, @@ -44,6 +45,7 @@ export class NextInstance { startCommand, packageJson = {}, packageLockPath, + env, }: { files: { [filename: string]: string | FileRef @@ -57,6 +59,7 @@ export class NextInstance { installCommand?: InstallCommand buildCommand?: string startCommand?: string + env?: Record }) { this.files = files this.dependencies = dependencies @@ -69,6 +72,7 @@ export class NextInstance { this.events = {} this.isDestroyed = false this.isStopping = false + this.env = env } protected async createTestDir({ @@ -111,13 +115,13 @@ export class NextInstance { require('next/package.json').version, }, scripts: { + ...pkgScripts, build: (pkgScripts['build'] || this.buildCommand || 'next build') + ' && yarn post-build', // since we can't get the build id as a build artifact, make it // available under the static files 'post-build': 'cp .next/BUILD_ID .next/static/__BUILD_ID', - ...pkgScripts, }, }, null, diff --git a/test/lib/next-modes/next-deploy.ts b/test/lib/next-modes/next-deploy.ts index 6b81ad0ed4d0..2264014aacb6 100644 --- a/test/lib/next-modes/next-deploy.ts +++ b/test/lib/next-modes/next-deploy.ts @@ -65,6 +65,15 @@ export class NextDeployInstance extends NextInstance { } require('console').log(`Deploying project at ${this.testDir}`) + const additionalEnv = [] + + for (const key of Object.keys(this.env || {})) { + additionalEnv.push('--build-env') + additionalEnv.push(`${key}=${this.env[key]}`) + additionalEnv.push('--env') + additionalEnv.push(`${key}=${this.env[key]}`) + } + const deployRes = await execa( 'vercel', [ @@ -75,6 +84,7 @@ export class NextDeployInstance extends NextInstance { 'FORCE_RUNTIME_TAG=canary', '--build-env', 'NEXT_TELEMETRY_DISABLED=1', + ...additionalEnv, '--force', ...vercelFlags, ], diff --git a/test/lib/next-modes/next-dev.ts b/test/lib/next-modes/next-dev.ts index fcb424911d20..88057494e77d 100644 --- a/test/lib/next-modes/next-dev.ts +++ b/test/lib/next-modes/next-dev.ts @@ -35,6 +35,7 @@ export class NextDevInstance extends NextInstance { shell: false, env: { ...process.env, + ...this.env, NODE_ENV: '' as any, __NEXT_TEST_MODE: '1', __NEXT_RAND_PORT: '1', diff --git a/test/lib/next-modes/next-start.ts b/test/lib/next-modes/next-start.ts index 9f76e29d7f19..98f98c7614b4 100644 --- a/test/lib/next-modes/next-start.ts +++ b/test/lib/next-modes/next-start.ts @@ -46,6 +46,7 @@ export class NextStartInstance extends NextInstance { shell: false, env: { ...process.env, + ...this.env, NODE_ENV: '' as any, __NEXT_TEST_MODE: '1', __NEXT_RAND_PORT: '1', diff --git a/test/production/required-server-files-i18n.test.ts b/test/production/required-server-files-i18n.test.ts index a1b5d0d6f8d7..a14001e62b6b 100644 --- a/test/production/required-server-files-i18n.test.ts +++ b/test/production/required-server-files-i18n.test.ts @@ -294,11 +294,16 @@ describe('should set-up next', () => { }) it('should render dynamic SSR page correctly with x-matched-path', async () => { - const html = await renderViaHTTP(appPort, '/some-other-path', undefined, { - headers: { - 'x-matched-path': '/dynamic/[slug]?slug=first', - }, - }) + const html = await renderViaHTTP( + appPort, + '/some-other-path?slug=first', + undefined, + { + headers: { + 'x-matched-path': '/dynamic/[slug]', + }, + } + ) const $ = cheerio.load(html) const data = JSON.parse($('#props').text()) @@ -306,11 +311,16 @@ describe('should set-up next', () => { expect($('#slug').text()).toBe('first') expect(data.hello).toBe('world') - const html2 = await renderViaHTTP(appPort, '/some-other-path', undefined, { - headers: { - 'x-matched-path': '/dynamic/[slug]?slug=second', - }, - }) + const html2 = await renderViaHTTP( + appPort, + '/some-other-path?slug=second', + undefined, + { + headers: { + 'x-matched-path': '/dynamic/[slug]', + }, + } + ) const $2 = cheerio.load(html2) const data2 = JSON.parse($2('#props').text()) @@ -366,11 +376,11 @@ describe('should set-up next', () => { it('should return data correctly with x-matched-path', async () => { const res = await fetchViaHTTP( appPort, - `/_next/data/${next.buildId}/en/dynamic/first.json`, + `/_next/data/${next.buildId}/en/dynamic/first.json?slug=first`, undefined, { headers: { - 'x-matched-path': '/dynamic/[slug]?slug=first', + 'x-matched-path': '/dynamic/[slug]', }, } ) diff --git a/test/production/required-server-files.test.ts b/test/production/required-server-files.test.ts index a4d19c3352de..d03c4ac001e5 100644 --- a/test/production/required-server-files.test.ts +++ b/test/production/required-server-files.test.ts @@ -415,11 +415,16 @@ describe('should set-up next', () => { }) it('should render dynamic SSR page correctly with x-matched-path', async () => { - const html = await renderViaHTTP(appPort, '/some-other-path', undefined, { - headers: { - 'x-matched-path': '/dynamic/[slug]?slug=first', - }, - }) + const html = await renderViaHTTP( + appPort, + '/some-other-path?slug=first', + undefined, + { + headers: { + 'x-matched-path': '/dynamic/[slug]', + }, + } + ) const $ = cheerio.load(html) const data = JSON.parse($('#props').text()) @@ -427,11 +432,16 @@ describe('should set-up next', () => { expect($('#slug').text()).toBe('first') expect(data.hello).toBe('world') - const html2 = await renderViaHTTP(appPort, '/some-other-path', undefined, { - headers: { - 'x-matched-path': '/dynamic/[slug]?slug=second', - }, - }) + const html2 = await renderViaHTTP( + appPort, + '/some-other-path?slug=second', + undefined, + { + headers: { + 'x-matched-path': '/dynamic/[slug]', + }, + } + ) const $2 = cheerio.load(html2) const data2 = JSON.parse($2('#props').text()) @@ -442,7 +452,7 @@ describe('should set-up next', () => { const html3 = await renderViaHTTP(appPort, '/some-other-path', undefined, { headers: { - 'x-matched-path': '/dynamic/[slug]?slug=%5Bslug%5D.json', + 'x-matched-path': '/dynamic/[slug]', 'x-now-route-matches': '1=second&slug=second', }, }) @@ -487,11 +497,11 @@ describe('should set-up next', () => { it('should return data correctly with x-matched-path', async () => { const res = await fetchViaHTTP( appPort, - `/_next/data/${next.buildId}/dynamic/first.json`, + `/_next/data/${next.buildId}/dynamic/first.json?slug=first`, undefined, { headers: { - 'x-matched-path': '/dynamic/[slug]?slug=first', + 'x-matched-path': `/dynamic/[slug]`, }, } ) @@ -581,6 +591,7 @@ describe('should set-up next', () => { const res = await fetchViaHTTP( appPort, `/_next/data/${next.buildId}/catch-all.json`, + undefined, { headers: { From 2addf464d256d691cedef777e36db0cfb3c6b63e Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 10 Jun 2022 14:10:52 -0400 Subject: [PATCH 008/149] Bump @vercel/nft 0.20.0 (#37602) * Bump @vercel/nft 0.20.0 * Filter out wasm files * Revert filter that is no longer needed Co-authored-by: JJ Kasper --- .../plugins/next-trace-entrypoints-plugin.ts | 17 +++++--- packages/next/compiled/@vercel/nft/index.js | 4 +- packages/next/package.json | 2 +- pnpm-lock.yaml | 41 +++++++++---------- 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/packages/next/build/webpack/plugins/next-trace-entrypoints-plugin.ts b/packages/next/build/webpack/plugins/next-trace-entrypoints-plugin.ts index 0e25b554f149..24bb7fda7391 100644 --- a/packages/next/build/webpack/plugins/next-trace-entrypoints-plugin.ts +++ b/packages/next/build/webpack/plugins/next-trace-entrypoints-plugin.ts @@ -126,6 +126,7 @@ export class TraceEntryPointsPlugin implements webpack5.WebpackPluginInstance { await span.traceChild('create-trace-assets').traceAsyncFn(async () => { const entryFilesMap = new Map>() const chunksToTrace = new Set() + const isTraceable = (file: string) => !file.endsWith('.wasm') for (const entrypoint of compilation.entrypoints.values()) { const entryFiles = new Set() @@ -134,14 +135,18 @@ export class TraceEntryPointsPlugin implements webpack5.WebpackPluginInstance { .getEntrypointChunk() .getAllReferencedChunks()) { for (const file of chunk.files) { - const filePath = nodePath.join(outputPath, file) - chunksToTrace.add(filePath) - entryFiles.add(filePath) + if (isTraceable(file)) { + const filePath = nodePath.join(outputPath, file) + chunksToTrace.add(filePath) + entryFiles.add(filePath) + } } for (const file of chunk.auxiliaryFiles) { - const filePath = nodePath.join(outputPath, file) - chunksToTrace.add(filePath) - entryFiles.add(filePath) + if (isTraceable(file)) { + const filePath = nodePath.join(outputPath, file) + chunksToTrace.add(filePath) + entryFiles.add(filePath) + } } } entryFilesMap.set(entrypoint, entryFiles) diff --git a/packages/next/compiled/@vercel/nft/index.js b/packages/next/compiled/@vercel/nft/index.js index c5120f9d3b64..dac9262679f3 100644 --- a/packages/next/compiled/@vercel/nft/index.js +++ b/packages/next/compiled/@vercel/nft/index.js @@ -1,4 +1,4 @@ -(()=>{var __webpack_modules__={234:(e,t,r)=>{"use strict";e.exports=t;t.mockS3Http=r(6476).get_mockS3Http();t.mockS3Http("on");const a=t.mockS3Http("get");const o=r(7147);const s=r(1017);const u=r(6444);const c=r(7081);c.disableProgress();const d=r(251);const f=r(2361).EventEmitter;const p=r(3837).inherits;const h=["clean","install","reinstall","build","rebuild","package","testpackage","publish","unpublish","info","testbinary","reveal","configure"];const v={};c.heading="node-pre-gyp";if(a){c.warn(`mocking s3 to ${process.env.node_pre_gyp_mock_s3}`)}Object.defineProperty(t,"find",{get:function(){return r(846).find},enumerable:true});function Run({package_json_path:e="./package.json",argv:t}){this.package_json_path=e;this.commands={};const r=this;h.forEach((e=>{r.commands[e]=function(t,a){c.verbose("command",e,t);return require("./"+e)(r,t,a)}}));this.parseArgv(t);this.binaryHostSet=false}p(Run,f);t.Run=Run;const _=Run.prototype;_.package=r(7399);_.configDefs={help:Boolean,arch:String,debug:Boolean,directory:String,proxy:String,loglevel:String};_.shorthands={release:"--no-debug",C:"--directory",debug:"--debug",j:"--jobs",silent:"--loglevel=silent",silly:"--loglevel=silly",verbose:"--loglevel=verbose"};_.aliases=v;_.parseArgv=function parseOpts(e){this.opts=u(this.configDefs,this.shorthands,e);this.argv=this.opts.argv.remain.slice();const t=this.todo=[];e=this.argv.map((e=>{if(e in this.aliases){e=this.aliases[e]}return e}));e.slice().forEach((r=>{if(r in this.commands){const a=e.splice(0,e.indexOf(r));e.shift();if(t.length>0){t[t.length-1].args=a}t.push({name:r,args:[]})}}));if(t.length>0){t[t.length-1].args=e.splice(0)}let r=this.package_json_path;if(this.opts.directory){r=s.join(this.opts.directory,r)}this.package_json=JSON.parse(o.readFileSync(r));this.todo=d.expand_commands(this.package_json,this.opts,t);const a="npm_config_";Object.keys(process.env).forEach((e=>{if(e.indexOf(a)!==0)return;const t=process.env[e];if(e===a+"loglevel"){c.level=t}else{e=e.substring(a.length);if(e==="argv"){if(this.opts.argv&&this.opts.argv.remain&&this.opts.argv.remain.length){}else{this.opts[e]=t}}else{this.opts[e]=t}}}));if(this.opts.loglevel){c.level=this.opts.loglevel}c.resume()};_.setBinaryHostProperty=function(e){if(this.binaryHostSet){return this.package_json.binary.host}const t=this.package_json;if(!t||!t.binary||t.binary.host){return""}if(!t.binary.staging_host||!t.binary.production_host){return""}let r="production_host";if(e==="publish"){r="staging_host"}const a=process.env.node_pre_gyp_s3_host;if(a==="staging"||a==="production"){r=`${a}_host`}else if(this.opts["s3_host"]==="staging"||this.opts["s3_host"]==="production"){r=`${this.opts["s3_host"]}_host`}else if(this.opts["s3_host"]||a){throw new Error(`invalid s3_host ${this.opts["s3_host"]||a}`)}t.binary.host=t.binary[r];this.binaryHostSet=true;return t.binary.host};_.usage=function usage(){const e=[""," Usage: node-pre-gyp [options]",""," where is one of:",h.map((e=>" - "+e+" - "+require("./"+e).usage)).join("\n"),"","node-pre-gyp@"+this.version+" "+s.resolve(__dirname,".."),"node@"+process.versions.node].join("\n");return e};Object.defineProperty(_,"version",{get:function(){return this.package.version},enumerable:true})},846:(e,t,r)=>{"use strict";const a=r(234);const o=r(2998);const s=r(251);const u=r(7147).existsSync||r(1017).existsSync;const c=r(1017);e.exports=t;t.usage="Finds the require path for the node-pre-gyp installed module";t.validate=function(e,t){o.validate_config(e,t)};t.find=function(e,t){if(!u(e)){throw new Error(e+"does not exist")}const r=new a.Run({package_json_path:e,argv:process.argv});r.setBinaryHostProperty();const d=r.package_json;o.validate_config(d,t);let f;if(s.get_napi_build_versions(d,t)){f=s.get_best_napi_build_version(d,t)}t=t||{};if(!t.module_root)t.module_root=c.dirname(e);const p=o.evaluate(d,t,f);return p.module}},251:(e,t,r)=>{"use strict";const a=r(7147);e.exports=t;const o=process.version.substr(1).replace(/-.*$/,"").split(".").map((e=>+e));const s=["build","clean","configure","package","publish","reveal","testbinary","testpackage","unpublish"];const u="napi_build_version=";e.exports.get_napi_version=function(){let e=process.versions.napi;if(!e){if(o[0]===9&&o[1]>=3)e=2;else if(o[0]===8)e=1}return e};e.exports.get_napi_version_as_string=function(t){const r=e.exports.get_napi_version(t);return r?""+r:""};e.exports.validate_package_json=function(t,r){const a=t.binary;const o=pathOK(a.module_path);const s=pathOK(a.remote_path);const u=pathOK(a.package_name);const c=e.exports.get_napi_build_versions(t,r,true);const d=e.exports.get_napi_build_versions_raw(t);if(c){c.forEach((e=>{if(!(parseInt(e,10)===e&&e>0)){throw new Error("All values specified in napi_versions must be positive integers.")}}))}if(c&&(!o||!s&&!u)){throw new Error("When napi_versions is specified; module_path and either remote_path or "+"package_name must contain the substitution string '{napi_build_version}`.")}if((o||s||u)&&!d){throw new Error("When the substitution string '{napi_build_version}` is specified in "+"module_path, remote_path, or package_name; napi_versions must also be specified.")}if(c&&!e.exports.get_best_napi_build_version(t,r)&&e.exports.build_napi_only(t)){throw new Error("The Node-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports Node-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}if(d&&!c&&e.exports.build_napi_only(t)){throw new Error("The Node-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports Node-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}};function pathOK(e){return e&&(e.indexOf("{napi_build_version}")!==-1||e.indexOf("{node_napi_label}")!==-1)}e.exports.expand_commands=function(t,r,a){const o=[];const c=e.exports.get_napi_build_versions(t,r);a.forEach((a=>{if(c&&a.name==="install"){const s=e.exports.get_best_napi_build_version(t,r);const c=s?[u+s]:[];o.push({name:a.name,args:c})}else if(c&&s.indexOf(a.name)!==-1){c.forEach((e=>{const t=a.args.slice();t.push(u+e);o.push({name:a.name,args:t})}))}else{o.push(a)}}));return o};e.exports.get_napi_build_versions=function(t,a,o){const s=r(7081);let u=[];const c=e.exports.get_napi_version(a?a.target:undefined);if(t.binary&&t.binary.napi_versions){t.binary.napi_versions.forEach((e=>{const t=u.indexOf(e)!==-1;if(!t&&c&&e<=c){u.push(e)}else if(o&&!t&&c){s.info("This Node instance does not support builds for Node-API version",e)}}))}if(a&&a["build-latest-napi-version-only"]){let e=0;u.forEach((t=>{if(t>e)e=t}));u=e?[e]:[]}return u.length?u:undefined};e.exports.get_napi_build_versions_raw=function(e){const t=[];if(e.binary&&e.binary.napi_versions){e.binary.napi_versions.forEach((e=>{if(t.indexOf(e)===-1){t.push(e)}}))}return t.length?t:undefined};e.exports.get_command_arg=function(e){return u+e};e.exports.get_napi_build_version_from_command_args=function(e){for(let t=0;t{if(e>a&&e<=t){a=e}}))}return a===0?undefined:a};e.exports.build_napi_only=function(e){return e.binary&&e.binary.package_name&&e.binary.package_name.indexOf("{node_napi_label}")===-1}},6476:(e,t,r)=>{"use strict";e.exports=t;const a=r(7310);const o=r(7147);const s=r(1017);e.exports.detect=function(e,t){const r=e.hosted_path;const o=a.parse(r);t.prefix=!o.pathname||o.pathname==="/"?"":o.pathname.replace("/","");if(e.bucket&&e.region){t.bucket=e.bucket;t.region=e.region;t.endpoint=e.host;t.s3ForcePathStyle=e.s3ForcePathStyle}else{const e=o.hostname.split(".s3");const r=e[0];if(!r){return}if(!t.bucket){t.bucket=r}if(!t.region){const r=e[1].slice(1).split(".")[0];if(r==="amazonaws"){t.region="us-east-1"}else{t.region=r}}}};e.exports.get_s3=function(e){if(process.env.node_pre_gyp_mock_s3){const e=r(3458);const t=r(2037);e.config.basePath=`${t.tmpdir()}/mock`;const a=e.S3();const wcb=e=>(t,...r)=>{if(t&&t.code==="ENOENT"){t.code="NotFound"}return e(t,...r)};return{listObjects(e,t){return a.listObjects(e,wcb(t))},headObject(e,t){return a.headObject(e,wcb(t))},deleteObject(e,t){return a.deleteObject(e,wcb(t))},putObject(e,t){return a.putObject(e,wcb(t))}}}const t=r(1889);t.config.update(e);const a=new t.S3;return{listObjects(e,t){return a.listObjects(e,t)},headObject(e,t){return a.headObject(e,t)},deleteObject(e,t){return a.deleteObject(e,t)},putObject(e,t){return a.putObject(e,t)}}};e.exports.get_mockS3Http=function(){let e=false;if(!process.env.node_pre_gyp_mock_s3){return()=>e}const t=r(9101);const a="https://mapbox-node-pre-gyp-public-testing-bucket.s3.us-east-1.amazonaws.com";const u=process.env.node_pre_gyp_mock_s3+"/mapbox-node-pre-gyp-public-testing-bucket";const mock_http=()=>{function get(e,t){const r=s.join(u,e.replace("%2B","+"));try{o.accessSync(r,o.constants.R_OK)}catch(e){return[404,"not found\n"]}return[200,o.createReadStream(r)]}return t(a).persist().get((()=>e)).reply(get)};mock_http(t,a,u);const mockS3Http=t=>{const r=e;if(t==="off"){e=false}else if(t==="on"){e=true}else if(t!=="get"){throw new Error(`illegal action for setMockHttp ${t}`)}return r};return mockS3Http}},2998:(e,t,r)=>{"use strict";e.exports=t;const a=r(1017);const o=r(7849);const s=r(7310);const u=r(5092);const c=r(251);let d;if(process.env.NODE_PRE_GYP_ABI_CROSSWALK){d=require(process.env.NODE_PRE_GYP_ABI_CROSSWALK)}else{d=r(9448)}const f={};Object.keys(d).forEach((e=>{const t=e.split(".")[0];if(!f[t]){f[t]=e}}));function get_electron_abi(e,t){if(!e){throw new Error("get_electron_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if electron is the target.")}const r=o.parse(t);return e+"-v"+r.major+"."+r.minor}e.exports.get_electron_abi=get_electron_abi;function get_node_webkit_abi(e,t){if(!e){throw new Error("get_node_webkit_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if node-webkit is the target.")}return e+"-v"+t}e.exports.get_node_webkit_abi=get_node_webkit_abi;function get_node_abi(e,t){if(!e){throw new Error("get_node_abi requires valid runtime arg")}if(!t){throw new Error("get_node_abi requires valid process.versions object")}const r=o.parse(t.node);if(r.major===0&&r.minor%2){return e+"-v"+t.node}else{return t.modules?e+"-v"+ +t.modules:"v8-"+t.v8.split(".").slice(0,2).join(".")}}e.exports.get_node_abi=get_node_abi;function get_runtime_abi(e,t){if(!e){throw new Error("get_runtime_abi requires valid runtime arg")}if(e==="node-webkit"){return get_node_webkit_abi(e,t||process.versions["node-webkit"])}else if(e==="electron"){return get_electron_abi(e,t||process.versions.electron)}else{if(e!=="node"){throw new Error("Unknown Runtime: '"+e+"'")}if(!t){return get_node_abi(e,process.versions)}else{let r;if(d[t]){r=d[t]}else{const e=t.split(".").map((e=>+e));if(e.length!==3){throw new Error("Unknown target version: "+t)}const a=e[0];let o=e[1];let s=e[2];if(a===1){while(true){if(o>0)--o;if(s>0)--s;const e=""+a+"."+o+"."+s;if(d[e]){r=d[e];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+e+" as ABI compatible target");break}if(o===0&&s===0){break}}}else if(a>=2){if(f[a]){r=d[f[a]];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+f[a]+" as ABI compatible target")}}else if(a===0){if(e[1]%2===0){while(--s>0){const e=""+a+"."+o+"."+s;if(d[e]){r=d[e];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+e+" as ABI compatible target");break}}}}}if(!r){throw new Error("Unsupported target version: "+t)}const a={node:t,v8:r.v8+".0",modules:r.node_abi>1?r.node_abi:undefined};return get_node_abi(e,a)}}}e.exports.get_runtime_abi=get_runtime_abi;const p=["module_name","module_path","host"];function validate_config(e,t){const r=e.name+" package.json is not node-pre-gyp ready:\n";const a=[];if(!e.main){a.push("main")}if(!e.version){a.push("version")}if(!e.name){a.push("name")}if(!e.binary){a.push("binary")}const o=e.binary;if(o){p.forEach((e=>{if(!o[e]||typeof o[e]!=="string"){a.push("binary."+e)}}))}if(a.length>=1){throw new Error(r+"package.json must declare these properties: \n"+a.join("\n"))}if(o){const e=s.parse(o.host).protocol;if(e==="http:"){throw new Error("'host' protocol ("+e+") is invalid - only 'https:' is accepted")}}c.validate_package_json(e,t)}e.exports.validate_config=validate_config;function eval_template(e,t){Object.keys(t).forEach((r=>{const a="{"+r+"}";while(e.indexOf(a)>-1){e=e.replace(a,t[r])}}));return e}function fix_slashes(e){if(e.slice(-1)!=="/"){return e+"/"}return e}function drop_double_slashes(e){return e.replace(/\/\//g,"/")}function get_process_runtime(e){let t="node";if(e["node-webkit"]){t="node-webkit"}else if(e.electron){t="electron"}return t}e.exports.get_process_runtime=get_process_runtime;const h="{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz";const v="";e.exports.evaluate=function(e,t,r){t=t||{};validate_config(e,t);const d=e.version;const f=o.parse(d);const p=t.runtime||get_process_runtime(process.versions);const _={name:e.name,configuration:t.debug?"Debug":"Release",debug:t.debug,module_name:e.binary.module_name,version:f.version,prerelease:f.prerelease.length?f.prerelease.join("."):"",build:f.build.length?f.build.join("."):"",major:f.major,minor:f.minor,patch:f.patch,runtime:p,node_abi:get_runtime_abi(p,t.target),node_abi_napi:c.get_napi_version(t.target)?"napi":get_runtime_abi(p,t.target),napi_version:c.get_napi_version(t.target),napi_build_version:r||"",node_napi_label:r?"napi-v"+r:get_runtime_abi(p,t.target),target:t.target||"",platform:t.target_platform||process.platform,target_platform:t.target_platform||process.platform,arch:t.target_arch||process.arch,target_arch:t.target_arch||process.arch,libc:t.target_libc||u.family||"unknown",module_main:e.main,toolset:t.toolset||"",bucket:e.binary.bucket,region:e.binary.region,s3ForcePathStyle:e.binary.s3ForcePathStyle||false};const g=_.module_name.replace("-","_");const y=process.env["npm_config_"+g+"_binary_host_mirror"]||e.binary.host;_.host=fix_slashes(eval_template(y,_));_.module_path=eval_template(e.binary.module_path,_);if(t.module_root){_.module_path=a.join(t.module_root,_.module_path)}else{_.module_path=a.resolve(_.module_path)}_.module=a.join(_.module_path,_.module_name+".node");_.remote_path=e.binary.remote_path?drop_double_slashes(fix_slashes(eval_template(e.binary.remote_path,_))):v;const m=e.binary.package_name?e.binary.package_name:h;_.package_name=eval_template(m,_);_.staged_tarball=a.join("build/stage",_.remote_path,_.package_name);_.hosted_path=s.resolve(_.host,_.remote_path);_.hosted_tarball=s.resolve(_.hosted_path,_.package_name);return _}},9803:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const o=a(r(1017));const s=r(8781);const u=r(1847);const c=r(1988);const d=a(r(8942));const f=r(1577);const p=a(r(3535));const h=r(1288);const v=r(8485);const _=r(3788);const g=a(r(5644));const y=a(r(4253));const m=a(r(8526));const w=a(r(234));const x=r(7310);const E=r(4924).asyncWalk;const S=c.Parser.extend();const k=a(r(2037));const R=r(1710);const A=a(r(5035));const O={cwd:()=>G,env:{NODE_ENV:u.UNKNOWN,[u.UNKNOWN]:true},[u.UNKNOWN]:true};const T=Symbol();const C=Symbol();const j=Symbol();const N=Symbol();const L=Symbol();const I=Symbol();const P=Symbol();const D=Symbol();const M=Symbol();const W={access:I,accessSync:I,createReadStream:I,exists:I,existsSync:I,fstat:I,fstatSync:I,lstat:I,lstatSync:I,open:I,readdir:P,readdirSync:P,readFile:I,readFileSync:I,stat:I,statSync:I};const F=Object.assign(Object.create(null),{bindings:{default:D},express:{default:function(){return{[u.UNKNOWN]:true,set:T,engine:C}}},fs:Object.assign({default:W},W),process:Object.assign({default:O},O),path:{default:{}},os:Object.assign({default:k.default},k.default),"@mapbox/node-pre-gyp":Object.assign({default:w.default},w.default),"node-pre-gyp":v.pregyp,"node-pre-gyp/lib/pre-binding":v.pregyp,"node-pre-gyp/lib/pre-binding.js":v.pregyp,"node-gyp-build":{default:M},nbind:{init:j,default:{init:j}},"resolve-from":{default:A.default},"strong-globalize":{default:{SetRootDir:N},SetRootDir:N},pkginfo:{default:L}});const B={_interopRequireDefault:_.normalizeDefaultRequire,_interopRequireWildcard:_.normalizeWildcardRequire,__importDefault:_.normalizeDefaultRequire,__importStar:_.normalizeWildcardRequire,MONGOOSE_DRIVER_PATH:undefined,URL:x.URL,Object:{assign:Object.assign}};B.global=B.GLOBAL=B.globalThis=B;const $=Symbol();v.pregyp.find[$]=true;const U=F.path;Object.keys(o.default).forEach((e=>{const t=o.default[e];if(typeof t==="function"){const r=function mockPath(){return t.apply(mockPath,arguments)};r[$]=true;U[e]=U.default[e]=r}else{U[e]=U.default[e]=t}}));U.resolve=U.default.resolve=function(...e){return o.default.resolve.apply(this,[G,...e])};U.resolve[$]=true;const H=new Set([".h",".cmake",".c",".cpp"]);const q=new Set(["CHANGELOG.md","README.md","readme.md","changelog.md"]);let G;const K=/^\/[^\/]+|^[a-z]:[\\/][^\\/]+/i;function isAbsolutePathOrUrl(e){if(e instanceof x.URL)return e.protocol==="file:";if(typeof e==="string"){if(e.startsWith("file:")){try{new x.URL(e);return true}catch(e){return false}}return K.test(e)}return false}const z=Symbol();const V=/([\/\\]\*\*[\/\\]\*)+/g;async function analyze(e,t,r){const a=new Set;const c=new Set;const _=new Set;const w=o.default.dirname(e);G=r.cwd;const k=h.getPackageBase(e);const emitAssetDirectory=e=>{if(!r.analysis.emitGlobs)return;const t=e.indexOf(u.WILDCARD);const s=t===-1?e.length:e.lastIndexOf(o.default.sep,t);const c=e.substring(0,s);const d=e.slice(s);const f=d.replace(u.wildcardRegEx,((e,t)=>d[t-1]===o.default.sep?"**/*":"*")).replace(V,"/**/*")||"/**/*";if(r.ignoreFn(o.default.relative(r.base,c+f)))return;W=W.then((async()=>{if(r.log)console.log("Globbing "+c+f);const e=await new Promise(((e,t)=>p.default(c+f,{mark:true,ignore:c+"/**/node_modules/**/*"},((r,a)=>r?t(r):e(a)))));e.filter((e=>!H.has(o.default.extname(e))&&!q.has(o.default.basename(e))&&!e.endsWith("/"))).forEach((e=>a.add(e)))}))};let W=Promise.resolve();t=t.replace(/^#![^\n\r]*[\r\n]/,"");let U;let Y=false;try{U=S.parse(t,{ecmaVersion:"latest",allowReturnOutsideFunction:true});Y=false}catch(t){const a=t&&t.message&&t.message.includes("sourceType: module");if(!a){r.warnings.add(new Error(`Failed to parse ${e} as script:\n${t&&t.message}`))}}if(!U){try{U=S.parse(t,{ecmaVersion:"latest",sourceType:"module",allowAwaitOutsideFunction:true});Y=true}catch(t){r.warnings.add(new Error(`Failed to parse ${e} as module:\n${t&&t.message}`));return{assets:a,deps:c,imports:_,isESM:false}}}const Q=x.pathToFileURL(e).href;const X=Object.assign(Object.create(null),{__dirname:{shadowDepth:0,value:{value:o.default.resolve(e,"..")}},__filename:{shadowDepth:0,value:{value:e}},process:{shadowDepth:0,value:{value:O}}});if(!Y||r.mixedModules){X.require={shadowDepth:0,value:{value:{[u.FUNCTION](e){c.add(e);const t=F[e.startsWith("node:")?e.slice(5):e];return t.default},resolve(t){return y.default(t,e,r)}}}};X.require.value.value.resolve[$]=true}function setKnownBinding(e,t){if(e==="require")return;X[e]={shadowDepth:0,value:t}}function getKnownBinding(e){const t=X[e];if(t){if(t.shadowDepth===0){return t.value}}return undefined}function hasKnownBindingValue(e){const t=X[e];return t&&t.shadowDepth===0}if((Y||r.mixedModules)&&isAst(U)){for(const e of U.body){if(e.type==="ImportDeclaration"){const t=String(e.source.value);c.add(t);const r=F[t.startsWith("node:")?t.slice(5):t];if(r){for(const t of e.specifiers){if(t.type==="ImportNamespaceSpecifier")setKnownBinding(t.local.name,{value:r});else if(t.type==="ImportDefaultSpecifier"&&"default"in r)setKnownBinding(t.local.name,{value:r.default});else if(t.type==="ImportSpecifier"&&t.imported.name in r)setKnownBinding(t.local.name,{value:r[t.imported.name]})}}}else if(e.type==="ExportNamedDeclaration"||e.type==="ExportAllDeclaration"){if(e.source)c.add(String(e.source.value))}}}async function computePureStaticValue(e,t=true){const r=Object.create(null);Object.keys(B).forEach((e=>{r[e]={value:B[e]}}));Object.keys(X).forEach((e=>{r[e]=getKnownBinding(e)}));r["import.meta"]={url:Q};const a=await u.evaluate(e,r,t);return a}let Z;let J;let ee=false;function emitWildcardRequire(e){if(!r.analysis.emitGlobs||!e.startsWith("./")&&!e.startsWith("../"))return;e=o.default.resolve(w,e);const t=e.indexOf(u.WILDCARD);const s=t===-1?e.length:e.lastIndexOf(o.default.sep,t);const c=e.substring(0,s);const d=e.slice(s);let f=d.replace(u.wildcardRegEx,((e,t)=>d[t-1]===o.default.sep?"**/*":"*"))||"/**/*";if(!f.endsWith("*"))f+="?("+(r.ts?".ts|.tsx|":"")+".js|.json|.node)";if(r.ignoreFn(o.default.relative(r.base,c+f)))return;W=W.then((async()=>{if(r.log)console.log("Globbing "+c+f);const e=await new Promise(((e,t)=>p.default(c+f,{mark:true,ignore:c+"/**/node_modules/**/*"},((r,a)=>r?t(r):e(a)))));e.filter((e=>!H.has(o.default.extname(e))&&!q.has(o.default.basename(e))&&!e.endsWith("/"))).forEach((e=>a.add(e)))}))}async function processRequireArg(e,t=false){if(e.type==="ConditionalExpression"){await processRequireArg(e.consequent,t);await processRequireArg(e.alternate,t);return}if(e.type==="LogicalExpression"){await processRequireArg(e.left,t);await processRequireArg(e.right,t);return}let r=await computePureStaticValue(e,true);if(!r)return;if("value"in r&&typeof r.value==="string"){if(!r.wildcards)(t?_:c).add(r.value);else if(r.wildcards.length>=1)emitWildcardRequire(r.value)}else{if("then"in r&&typeof r.then==="string")(t?_:c).add(r.then);if("else"in r&&typeof r.else==="string")(t?_:c).add(r.else)}}let te=s.attachScopes(U,"scope");if(isAst(U)){R.handleWrappers(U);await g.default({id:e,ast:U,emitAsset:e=>a.add(e),emitAssetDirectory:emitAssetDirectory,job:r})}async function backtrack(e,t){if(!Z)throw new Error("Internal error: No staticChildNode for backtrack.");const r=await computePureStaticValue(e,true);if(r){if("value"in r&&typeof r.value!=="symbol"||"then"in r&&typeof r.then!=="symbol"&&typeof r.else!=="symbol"){J=r;Z=e;if(t)t.skip();return}}await emitStaticChildAsset()}await E(U,{async enter(t,s){var u;const p=t;const h=s;if(p.scope){te=p.scope;for(const e in p.scope.declarations){if(e in X)X[e].shadowDepth++}}if(Z)return;if(!h)return;if(p.type==="Identifier"){if(f.isIdentifierRead(p,h)&&r.analysis.computeFileReferences){let e;if(typeof(e=(u=getKnownBinding(p.name))===null||u===void 0?void 0:u.value)==="string"&&e.match(K)||e&&(typeof e==="function"||typeof e==="object")&&e[$]){J={value:typeof e==="string"?e:undefined};Z=p;await backtrack(h,this)}}}else if(r.analysis.computeFileReferences&&p.type==="MemberExpression"&&p.object.type==="MetaProperty"&&p.object.meta.name==="import"&&p.object.property.name==="meta"&&(p.property.computed?p.property.value:p.property.name)==="url"){J={value:Q};Z=p;await backtrack(h,this)}else if(p.type==="ImportExpression"){await processRequireArg(p.source,true);return}else if(p.type==="CallExpression"){if((!Y||r.mixedModules)&&p.callee.type==="Identifier"&&p.arguments.length){if(p.callee.name==="require"&&X.require.shadowDepth===0){await processRequireArg(p.arguments[0]);return}}else if((!Y||r.mixedModules)&&p.callee.type==="MemberExpression"&&p.callee.object.type==="Identifier"&&p.callee.object.name==="module"&&"module"in X===false&&p.callee.property.type==="Identifier"&&!p.callee.computed&&p.callee.property.name==="require"&&p.arguments.length){await processRequireArg(p.arguments[0]);return}const t=r.analysis.evaluatePureExpressions&&await computePureStaticValue(p.callee,false);if(t&&"value"in t&&typeof t.value==="function"&&t.value[$]&&r.analysis.computeFileReferences){J=await computePureStaticValue(p,true);if(J&&h){Z=p;await backtrack(h,this)}}else if(t&&"value"in t&&typeof t.value==="symbol"){switch(t.value){case z:if(p.arguments.length===1&&p.arguments[0].type==="Literal"&&p.callee.type==="Identifier"&&X.require.shadowDepth===0){await processRequireArg(p.arguments[0])}break;case D:if(p.arguments.length){const e=await computePureStaticValue(p.arguments[0],false);if(e&&"value"in e&&e.value){let t;if(typeof e.value==="object")t=e.value;else if(typeof e.value==="string")t={bindings:e.value};if(!t.path){t.path=true}t.module_root=k;let r;try{r=d.default(t)}catch(e){}if(r){J={value:r};Z=p;await emitStaticChildAsset()}}}break;case M:if(p.arguments.length===1&&p.arguments[0].type==="Identifier"&&p.arguments[0].name==="__dirname"&&X.__dirname.shadowDepth===0){let e;try{const t=A.default(w,"node-gyp-build");e=require(t).path(w)}catch(t){try{e=m.default.path(w)}catch(e){}}if(e){J={value:e};Z=p;await emitStaticChildAsset()}}break;case j:if(p.arguments.length){const e=await computePureStaticValue(p.arguments[0],false);if(e&&"value"in e&&(typeof e.value==="string"||typeof e.value==="undefined")){const t=v.nbind(e.value);if(t&&t.path){c.add(o.default.relative(w,t.path).replace(/\\/g,"/"));return this.skip()}}}break;case T:if(p.arguments.length===2&&p.arguments[0].type==="Literal"&&p.arguments[0].value==="view engine"&&!ee){await processRequireArg(p.arguments[1]);return this.skip()}break;case C:ee=true;break;case I:case P:if(p.arguments[0]&&r.analysis.computeFileReferences){J=await computePureStaticValue(p.arguments[0],true);if(J){Z=p.arguments[0];if(t.value===P&&p.arguments[0].type==="Identifier"&&p.arguments[0].name==="__dirname"){emitAssetDirectory(w)}else{await backtrack(h,this)}return this.skip()}}break;case N:if(p.arguments[0]){const e=await computePureStaticValue(p.arguments[0],false);if(e&&"value"in e&&e.value)emitAssetDirectory(e.value+"/intl");return this.skip()}break;case L:let s=o.default.resolve(e,"../package.json");const u=o.default.resolve("/package.json");while(s!==u&&await r.stat(s)===null)s=o.default.resolve(s,"../../package.json");if(s!==u)a.add(s);break}}}else if(p.type==="VariableDeclaration"&&h&&!f.isVarLoop(h)&&r.analysis.evaluatePureExpressions){for(const e of p.declarations){if(!e.init)continue;const t=await computePureStaticValue(e.init,true);if(t){if(e.id.type==="Identifier"){setKnownBinding(e.id.name,t)}else if(e.id.type==="ObjectPattern"&&"value"in t){for(const r of e.id.properties){if(r.type!=="Property"||r.key.type!=="Identifier"||r.value.type!=="Identifier"||typeof t.value!=="object"||t.value===null||!(r.key.name in t.value))continue;setKnownBinding(r.value.name,{value:t.value[r.key.name]})}}if(!("value"in t)&&isAbsolutePathOrUrl(t.then)&&isAbsolutePathOrUrl(t.else)){J=t;Z=e.init;await emitStaticChildAsset()}}}}else if(p.type==="AssignmentExpression"&&h&&!f.isLoop(h)&&r.analysis.evaluatePureExpressions){if(!hasKnownBindingValue(p.left.name)){const e=await computePureStaticValue(p.right,false);if(e&&"value"in e){if(p.left.type==="Identifier"){setKnownBinding(p.left.name,e)}else if(p.left.type==="ObjectPattern"){for(const t of p.left.properties){if(t.type!=="Property"||t.key.type!=="Identifier"||t.value.type!=="Identifier"||typeof e.value!=="object"||e.value===null||!(t.key.name in e.value))continue;setKnownBinding(t.value.name,{value:e.value[t.key.name]})}}if(isAbsolutePathOrUrl(e.value)){J=e;Z=p.right;await emitStaticChildAsset()}}}}else if((!Y||r.mixedModules)&&(p.type==="FunctionDeclaration"||p.type==="FunctionExpression"||p.type==="ArrowFunctionExpression")&&(p.arguments||p.params)[0]&&(p.arguments||p.params)[0].type==="Identifier"){let e;let t;if((p.type==="ArrowFunctionExpression"||p.type==="FunctionExpression")&&h&&h.type==="VariableDeclarator"&&h.id.type==="Identifier"){e=h.id;t=p.arguments||p.params}else if(p.id){e=p.id;t=p.arguments||p.params}if(e&&p.body.body){let r,a=false;for(let e=0;ee&&e.id&&e.id.type==="Identifier"&&e.init&&e.init.type==="CallExpression"&&e.init.callee.type==="Identifier"&&e.init.callee.name==="require"&&X.require.shadowDepth===0&&e.init.arguments[0]&&e.init.arguments[0].type==="Identifier"&&e.init.arguments[0].name===t[0].name))}if(r&&p.body.body[e].type==="ReturnStatement"&&p.body.body[e].argument&&p.body.body[e].argument.type==="Identifier"&&p.body.body[e].argument.name===r.id.name){a=true;break}}if(a)setKnownBinding(e.name,{value:z})}}},async leave(e,t){const r=e;const a=t;if(r.scope){if(te.parent){te=te.parent}for(const e in r.scope.declarations){if(e in X){if(X[e].shadowDepth>0)X[e].shadowDepth--;else delete X[e]}}}if(Z&&a)await backtrack(a,this)}});await W;return{assets:a,deps:c,imports:_,isESM:Y};async function emitAssetPath(e){const t=e.indexOf(u.WILDCARD);const s=t===-1?e.length:e.lastIndexOf(o.default.sep,t);const c=e.substring(0,s);try{var d=await r.stat(c);if(d===null){throw new Error("file not found")}}catch(e){return}if(t!==-1&&d.isFile())return;if(d.isFile()){a.add(e)}else if(d.isDirectory()){if(validWildcard(e))emitAssetDirectory(e)}}function validWildcard(t){let a="";if(t.endsWith(o.default.sep))a=o.default.sep;else if(t.endsWith(o.default.sep+u.WILDCARD))a=o.default.sep+u.WILDCARD;else if(t.endsWith(u.WILDCARD))a=u.WILDCARD;if(t===w+a)return false;if(t===G+a)return false;if(t.endsWith(o.default.sep+"node_modules"+a))return false;if(w.startsWith(t.slice(0,t.length-a.length)+o.default.sep))return false;if(k){const a=e.substring(0,e.indexOf(o.default.sep+"node_modules"))+o.default.sep+"node_modules"+o.default.sep;if(!t.startsWith(a)){if(r.log)console.log("Skipping asset emission of "+t.replace(u.wildcardRegEx,"*")+" for "+e+" as it is outside the package base "+k);return false}}return true}function resolveAbsolutePathOrUrl(e){return e instanceof x.URL?x.fileURLToPath(e):e.startsWith("file:")?x.fileURLToPath(new x.URL(e)):o.default.resolve(e)}async function emitStaticChildAsset(){if(!J){return}if("value"in J&&isAbsolutePathOrUrl(J.value)){try{const e=resolveAbsolutePathOrUrl(J.value);await emitAssetPath(e)}catch(e){}}else if("then"in J&&"else"in J&&isAbsolutePathOrUrl(J.then)&&isAbsolutePathOrUrl(J.else)){let e;try{e=resolveAbsolutePathOrUrl(J.then)}catch(e){}let t;try{t=resolveAbsolutePathOrUrl(J.else)}catch(e){}if(e)await emitAssetPath(e);if(t)await emitAssetPath(t)}else if(Z&&Z.type==="ArrayExpression"&&"value"in J&&J.value instanceof Array){for(const e of J.value){try{const t=resolveAbsolutePathOrUrl(e);await emitAssetPath(t)}catch(e){}}}Z=J=undefined}}t["default"]=analyze;function isAst(e){return"body"in e}},4731:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var o=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!t.hasOwnProperty(r))a(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});o(r(757),t);var s=r(7621);Object.defineProperty(t,"nodeFileTrace",{enumerable:true,get:function(){return s.nodeFileTrace}})},7621:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Job=t.nodeFileTrace=void 0;const o=r(1017);const s=a(r(1653));const u=a(r(9803));const c=a(r(4253));const d=r(2540);const f=r(8596);const p=r(1017);const h=s.default.promises.readFile;const v=s.default.promises.readlink;const _=s.default.promises.stat;function inPath(e,t){const r=p.join(t,o.sep);return e.startsWith(r)&&e!==r}async function nodeFileTrace(e,t={}){const r=new Job(t);if(t.readFile)r.readFile=t.readFile;if(t.stat)r.stat=t.stat;if(t.readlink)r.readlink=t.readlink;if(t.resolve)r.resolve=t.resolve;r.ts=true;await Promise.all(e.map((async e=>{const t=o.resolve(e);await r.emitFile(t,"initial");if(t.endsWith(".js")||t.endsWith(".cjs")||t.endsWith(".mjs")||t.endsWith(".node")||r.ts&&(t.endsWith(".ts")||t.endsWith(".tsx"))){return r.emitDependency(t)}return undefined})));const a={fileList:r.fileList,esmFileList:r.esmFileList,reasons:r.reasons,warnings:r.warnings};return a}t.nodeFileTrace=nodeFileTrace;class Job{constructor({base:e=process.cwd(),processCwd:t,exports:r,conditions:a=r||["node"],exportsOnly:s=false,paths:u={},ignore:c,log:f=false,mixedModules:p=false,ts:h=true,analysis:v={},cache:_}){this.reasons=new Map;this.ts=h;e=o.resolve(e);this.ignoreFn=e=>{if(e.startsWith(".."+o.sep))return true;return false};if(typeof c==="string")c=[c];if(typeof c==="function"){const e=c;this.ignoreFn=t=>{if(t.startsWith(".."+o.sep))return true;if(e(t))return true;return false}}else if(Array.isArray(c)){const t=c.map((t=>o.relative(e,o.resolve(e||process.cwd(),t))));this.ignoreFn=e=>{if(e.startsWith(".."+o.sep))return true;if(d.isMatch(e,t))return true;return false}}this.base=e;this.cwd=o.resolve(t||e);this.conditions=a;this.exportsOnly=s;const g={};for(const t of Object.keys(u)){const r=u[t].endsWith("/");const a=o.resolve(e,u[t]);g[t]=a+(r?"/":"")}this.paths=g;this.log=f;this.mixedModules=p;this.analysis={};if(v!==false){Object.assign(this.analysis,{emitGlobs:true,computeFileReferences:true,evaluatePureExpressions:true},v===true?{}:v)}this.fileCache=_&&_.fileCache||new Map;this.statCache=_&&_.statCache||new Map;this.symlinkCache=_&&_.symlinkCache||new Map;this.analysisCache=_&&_.analysisCache||new Map;if(_){_.fileCache=this.fileCache;_.statCache=this.statCache;_.symlinkCache=this.symlinkCache;_.analysisCache=this.analysisCache}this.fileList=new Set;this.esmFileList=new Set;this.processed=new Set;this.warnings=new Set}async readlink(e){const t=this.symlinkCache.get(e);if(t!==undefined)return t;try{const t=await v(e);const r=this.statCache.get(e);if(r)this.statCache.set(o.resolve(e,t),r);this.symlinkCache.set(e,t);return t}catch(t){if(t.code!=="EINVAL"&&t.code!=="ENOENT"&&t.code!=="UNKNOWN")throw t;this.symlinkCache.set(e,null);return null}}async isFile(e){const t=await this.stat(e);if(t)return t.isFile();return false}async isDir(e){const t=await this.stat(e);if(t)return t.isDirectory();return false}async stat(e){const t=this.statCache.get(e);if(t)return t;try{const t=await _(e);this.statCache.set(e,t);return t}catch(t){if(t.code==="ENOENT"){this.statCache.set(e,null);return null}throw t}}async resolve(e,t,r,a){return c.default(e,t,r,a)}async readFile(e){const t=this.fileCache.get(e);if(t!==undefined)return t;try{const t=(await h(e)).toString();this.fileCache.set(e,t);return t}catch(t){if(t.code==="ENOENT"||t.code==="EISDIR"){this.fileCache.set(e,null);return null}throw t}}async realpath(e,t,r=new Set){if(r.has(e))throw new Error("Recursive symlink detected resolving "+e);r.add(e);const a=await this.readlink(e);if(a){const s=o.dirname(e);const u=o.resolve(s,a);const c=await this.realpath(s,t);if(inPath(e,c))await this.emitFile(e,"resolve",t,true);return this.realpath(u,t,r)}if(!inPath(e,this.base))return e;return p.join(await this.realpath(o.dirname(e),t,r),o.basename(e))}async emitFile(e,t,r,a=false){if(!a){e=await this.realpath(e,r)}e=o.relative(this.base,e);if(r){r=o.relative(this.base,r)}let s=this.reasons.get(e);if(!s){s={type:[t],ignored:false,parents:new Set};this.reasons.set(e,s)}else if(!s.type.includes(t)){s.type.push(t)}if(r&&this.ignoreFn(e,r)){if(!this.fileList.has(e)&&s){s.ignored=true}return false}if(r){s.parents.add(r)}this.fileList.add(e);return true}async getPjsonBoundary(e){const t=e.indexOf(o.sep);let r;while((r=e.lastIndexOf(o.sep))>t){e=e.slice(0,r);if(await this.isFile(e+o.sep+"package.json"))return e}return undefined}async emitDependency(e,t){if(this.processed.has(e)){if(t){await this.emitFile(e,"dependency",t)}return}this.processed.add(e);const r=await this.emitFile(e,"dependency",t);if(!r)return;if(e.endsWith(".json"))return;if(e.endsWith(".node"))return await f.sharedLibEmit(e,this);if(e.endsWith(".js")){const t=await this.getPjsonBoundary(e);if(t)await this.emitFile(t+o.sep+"package.json","resolve",e)}let a;const s=this.analysisCache.get(e);if(s){a=s}else{const t=await this.readFile(e);if(t===null)throw new Error("File "+e+" does not exist.");a=await u.default(e,t.toString(),this);this.analysisCache.set(e,a)}const{deps:c,imports:d,assets:p,isESM:h}=a;if(h)this.esmFileList.add(o.relative(this.base,e));await Promise.all([...[...p].map((async t=>{const r=o.extname(t);if(r===".js"||r===".mjs"||r===".node"||r===""||this.ts&&(r===".ts"||r===".tsx")&&t.startsWith(this.base)&&t.slice(this.base.length).indexOf(o.sep+"node_modules"+o.sep)===-1)await this.emitDependency(t,e);else await this.emitFile(t,"asset",e)})),...[...c].map((async t=>{try{var r=await this.resolve(t,e,this,!h)}catch(e){this.warnings.add(new Error(`Failed to resolve dependency ${t}:\n${e&&e.message}`));return}if(Array.isArray(r)){for(const t of r){if(t.startsWith("node:"))return;await this.emitDependency(t,e)}}else{if(r.startsWith("node:"))return;await this.emitDependency(r,e)}})),...[...d].map((async t=>{try{var r=await this.resolve(t,e,this,false)}catch(e){this.warnings.add(new Error(`Failed to resolve dependency ${t}:\n${e&&e.message}`));return}if(Array.isArray(r)){for(const t of r){if(t.startsWith("node:"))return;await this.emitDependency(t,e)}}else{if(r.startsWith("node:"))return;await this.emitDependency(r,e)}}))])}}t.Job=Job},4253:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(1017);async function resolveDependency(e,t,r,o=true){let s;if(a.isAbsolute(e)||e==="."||e===".."||e.startsWith("./")||e.startsWith("../")){const o=e.endsWith("/");s=await resolvePath(a.resolve(t,"..",e)+(o?"/":""),t,r)}else if(e[0]==="#"){s=await packageImportsResolve(e,t,r,o)}else{s=await resolvePackage(e,t,r,o)}if(Array.isArray(s)){return Promise.all(s.map((e=>r.realpath(e,t))))}else if(s.startsWith("node:")){return s}else{return r.realpath(s,t)}}t["default"]=resolveDependency;async function resolvePath(e,t,r){const a=await resolveFile(e,t,r)||await resolveDir(e,t,r);if(!a){throw new NotFoundError(e,t)}return a}async function resolveFile(e,t,r){if(e.endsWith("/"))return undefined;e=await r.realpath(e,t);if(await r.isFile(e))return e;if(r.ts&&e.startsWith(r.base)&&e.slice(r.base.length).indexOf(a.sep+"node_modules"+a.sep)===-1&&await r.isFile(e+".ts"))return e+".ts";if(r.ts&&e.startsWith(r.base)&&e.slice(r.base.length).indexOf(a.sep+"node_modules"+a.sep)===-1&&await r.isFile(e+".tsx"))return e+".tsx";if(await r.isFile(e+".js"))return e+".js";if(await r.isFile(e+".json"))return e+".json";if(await r.isFile(e+".node"))return e+".node";return undefined}async function resolveDir(e,t,r){if(e.endsWith("/"))e=e.slice(0,-1);if(!await r.isDir(e))return;const o=await getPkgCfg(e,r);if(o&&typeof o.main==="string"){const s=await resolveFile(a.resolve(e,o.main),t,r)||await resolveFile(a.resolve(e,o.main,"index"),t,r);if(s){await r.emitFile(e+a.sep+"package.json","resolve",t);return s}}return resolveFile(a.resolve(e,"index"),t,r)}class NotFoundError extends Error{constructor(e,t){super("Cannot find module '"+e+"' loaded from "+t);this.code="MODULE_NOT_FOUND"}}const o=new Set([...r(8102)._builtinLibs,"constants","module","timers","console","_stream_writable","_stream_readable","_stream_duplex","process","sys"]);function getPkgName(e){const t=e.split("/");if(e[0]==="@"&&t.length>1)return t.length>1?t.slice(0,2).join("/"):null;return t.length?t[0]:null}async function getPkgCfg(e,t){const r=await t.readFile(e+a.sep+"package.json");if(r){try{return JSON.parse(r.toString())}catch(e){}}return undefined}function getExportsTarget(e,t,r){if(typeof e==="string"){return e}else if(e===null){return e}else if(Array.isArray(e)){for(const a of e){const e=getExportsTarget(a,t,r);if(e===null||typeof e==="string"&&e.startsWith("./"))return e}}else if(typeof e==="object"){for(const a of Object.keys(e)){if(a==="default"||a==="require"&&r||a==="import"&&!r||t.includes(a)){const o=getExportsTarget(e[a],t,r);if(o!==undefined)return o}}}return undefined}function resolveExportsImports(e,t,r,a,o,s){let u;if(o){if(!(typeof t==="object"&&!Array.isArray(t)&&t!==null))return undefined;u=t}else if(typeof t==="string"||Array.isArray(t)||t===null||typeof t==="object"&&Object.keys(t).length&&Object.keys(t)[0][0]!=="."){u={".":t}}else{u=t}if(r in u){const t=getExportsTarget(u[r],a.conditions,s);if(typeof t==="string"&&t.startsWith("./"))return e+t.slice(1)}for(const t of Object.keys(u).sort(((e,t)=>t.length-e.length))){if(t.endsWith("*")&&r.startsWith(t.slice(0,-1))){const o=getExportsTarget(u[t],a.conditions,s);if(typeof o==="string"&&o.startsWith("./"))return e+o.slice(1).replace(/\*/g,r.slice(t.length-1))}if(!t.endsWith("/"))continue;if(r.startsWith(t)){const o=getExportsTarget(u[t],a.conditions,s);if(typeof o==="string"&&o.endsWith("/")&&o.startsWith("./"))return e+o.slice(1)+r.slice(t.length)}}return undefined}async function packageImportsResolve(e,t,r,o){if(e!=="#"&&!e.startsWith("#/")&&r.conditions){const s=await r.getPjsonBoundary(t);if(s){const u=await getPkgCfg(s,r);const{imports:c}=u||{};if(u&&c!==null&&c!==undefined){let u=resolveExportsImports(s,c,e,r,true,o);if(u){if(o)u=await resolveFile(u,t,r)||await resolveDir(u,t,r);else if(!await r.isFile(u))throw new NotFoundError(u,t);if(u){await r.emitFile(s+a.sep+"package.json","resolve",t);return u}}}}}throw new NotFoundError(e,t)}async function resolvePackage(e,t,r,s){let u=t;if(o.has(e))return"node:"+e;if(e.startsWith("node:"))return e;const c=getPkgName(e)||"";let d;if(r.conditions){const o=await r.getPjsonBoundary(t);if(o){const u=await getPkgCfg(o,r);const{exports:f}=u||{};if(u&&u.name&&u.name===c&&f!==null&&f!==undefined){d=resolveExportsImports(o,f,"."+e.slice(c.length),r,false,s);if(d){if(s)d=await resolveFile(d,t,r)||await resolveDir(d,t,r);else if(!await r.isFile(d))throw new NotFoundError(d,t)}if(d)await r.emitFile(o+a.sep+"package.json","resolve",t)}}}let f;const p=u.indexOf(a.sep);while((f=u.lastIndexOf(a.sep))>p){u=u.slice(0,f);const o=u+a.sep+"node_modules";const p=await r.stat(o);if(!p||!p.isDirectory())continue;const h=await getPkgCfg(o+a.sep+c,r);const{exports:v}=h||{};if(r.conditions&&v!==undefined&&v!==null&&!d){let u;if(!r.exportsOnly)u=await resolveFile(o+a.sep+e,t,r)||await resolveDir(o+a.sep+e,t,r);let d=resolveExportsImports(o+a.sep+c,v,"."+e.slice(c.length),r,false,s);if(d){if(s)d=await resolveFile(d,t,r)||await resolveDir(d,t,r);else if(!await r.isFile(d))throw new NotFoundError(d,t)}if(d){await r.emitFile(o+a.sep+c+a.sep+"package.json","resolve",t);if(u&&u!==d)return[d,u];return d}if(u)return u}else{const s=await resolveFile(o+a.sep+e,t,r)||await resolveDir(o+a.sep+e,t,r);if(s){if(d&&d!==s)return[s,d];return s}}}if(d)return d;if(Object.hasOwnProperty.call(r.paths,e)){return r.paths[e]}for(const a of Object.keys(r.paths)){if(a.endsWith("/")&&e.startsWith(a)){const o=r.paths[a]+e.slice(a.length);const s=await resolveFile(o,t,r)||await resolveDir(o,t,r);if(!s){throw new NotFoundError(e,t)}return s}}throw new NotFoundError(e,t)}},757:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true})},1577:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isLoop=t.isVarLoop=t.isIdentifierRead=void 0;function isIdentifierRead(e,t){switch(t.type){case"ObjectPattern":case"ArrayPattern":return false;case"AssignmentExpression":return t.right===e;case"MemberExpression":return t.computed||e===t.object;case"Property":return e===t.value;case"MethodDefinition":return false;case"VariableDeclarator":return t.id!==e;case"ExportSpecifier":return false;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":return false;default:return true}}t.isIdentifierRead=isIdentifierRead;function isVarLoop(e){return e.type==="ForStatement"||e.type==="ForInStatement"||e.type==="ForOfStatement"}t.isVarLoop=isVarLoop;function isLoop(e){return e.type==="ForStatement"||e.type==="ForInStatement"||e.type==="ForOfStatement"||e.type==="WhileStatement"||e.type==="DoWhileStatement"}t.isLoop=isLoop},8485:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:true});exports.nbind=exports.pregyp=void 0;const path_1=__importDefault(__nccwpck_require__(1017));const graceful_fs_1=__importDefault(__nccwpck_require__(1653));const versioning=__nccwpck_require__(7595);const napi=__nccwpck_require__(5841);const pregypFind=(e,t)=>{const r=JSON.parse(graceful_fs_1.default.readFileSync(e).toString());versioning.validate_config(r,t);var a;if(napi.get_napi_build_versions(r,t)){a=napi.get_best_napi_build_version(r,t)}t=t||{};if(!t.module_root)t.module_root=path_1.default.dirname(e);var o=versioning.evaluate(r,t,a);return o.module};exports.pregyp={default:{find:pregypFind},find:pregypFind};function makeModulePathList(e,t){return[[e,t],[e,"build",t],[e,"build","Debug",t],[e,"build","Release",t],[e,"out","Debug",t],[e,"Debug",t],[e,"out","Release",t],[e,"Release",t],[e,"build","default",t],[e,process.env["NODE_BINDINGS_COMPILED_DIR"]||"compiled",process.versions.node,process.platform,process.arch,t]]}function findCompiledModule(basePath,specList){var resolvedList=[];var ext=path_1.default.extname(basePath);for(var _i=0,specList_1=specList;_i{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getPackageName=t.getPackageBase=void 0;const r=/^(@[^\\\/]+[\\\/])?[^\\\/]+/;function getPackageBase(e){const t=e.lastIndexOf("node_modules");if(t!==-1&&(e[t-1]==="/"||e[t-1]==="\\")&&(e[t+12]==="/"||e[t+12]==="\\")){const a=e.slice(t+13).match(r);if(a)return e.slice(0,t+13+a[0].length)}return undefined}t.getPackageBase=getPackageBase;function getPackageName(e){const t=e.lastIndexOf("node_modules");if(t!==-1&&(e[t-1]==="/"||e[t-1]==="\\")&&(e[t+12]==="/"||e[t+12]==="\\")){const a=e.slice(t+13).match(r);if(a&&a.length>0){return a[0].replace(/\\/g,"/")}}return undefined}t.getPackageName=getPackageName},3788:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.normalizeWildcardRequire=t.normalizeDefaultRequire=void 0;function normalizeDefaultRequire(e){if(e&&e.__esModule)return e;return{default:e}}t.normalizeDefaultRequire=normalizeDefaultRequire;const r=Object.prototype.hasOwnProperty;function normalizeWildcardRequire(e){if(e&&e.__esModule)return e;const t={};for(const a in e){if(!r.call(e,a))continue;t[a]=e[a]}t["default"]=e;return t}t.normalizeWildcardRequire=normalizeWildcardRequire},8596:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.sharedLibEmit=void 0;const o=a(r(2037));const s=a(r(3535));const u=r(1288);let c="";switch(o.default.platform()){case"darwin":c="/**/*.@(dylib|so?(.*))";break;case"win32":c="/**/*.dll";break;default:c="/**/*.so?(.*)"}async function sharedLibEmit(e,t){const r=u.getPackageBase(e);if(!r)return;const a=await new Promise(((e,t)=>s.default(r+c,{ignore:r+"/**/node_modules/**/*"},((r,a)=>r?t(r):e(a)))));await Promise.all(a.map((r=>t.emitFile(r,"sharedlib",e))))}t.sharedLibEmit=sharedLibEmit},5644:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const o=r(1017);const s=a(r(4253));const u=r(1288);const c=r(1653);const d={"@generated/photon"({id:e,emitAssetDirectory:t}){if(e.endsWith("@generated/photon/index.js")){t(o.resolve(o.dirname(e),"runtime/"))}},argon2({id:e,emitAssetDirectory:t}){if(e.endsWith("argon2/argon2.js")){t(o.resolve(o.dirname(e),"build","Release"));t(o.resolve(o.dirname(e),"prebuilds"));t(o.resolve(o.dirname(e),"lib","binding"))}},bull({id:e,emitAssetDirectory:t}){if(e.endsWith("bull/lib/commands/index.js")){t(o.resolve(o.dirname(e)))}},camaro({id:e,emitAsset:t}){if(e.endsWith("camaro/dist/camaro.js")){t(o.resolve(o.dirname(e),"camaro.wasm"))}},esbuild({id:e,emitAssetDirectory:t}){if(e.endsWith("esbuild/lib/main.js")){const r=o.resolve(e,"..","..","package.json");const a=JSON.parse(c.readFileSync(r,"utf8"));for(const r of Object.keys(a.optionalDependencies||{})){const a=o.resolve(e,"..","..","..",r);t(a)}}},"google-gax"({id:e,ast:t,emitAssetDirectory:r}){if(e.endsWith("google-gax/build/src/grpc.js")){for(const a of t.body){if(a.type==="VariableDeclaration"&&a.declarations[0].id.type==="Identifier"&&a.declarations[0].id.name==="googleProtoFilesDir"){r(o.resolve(o.dirname(e),"../../../google-proto-files"))}}}},oracledb({id:e,ast:t,emitAsset:r}){if(e.endsWith("oracledb/lib/oracledb.js")){for(const a of t.body){if(a.type==="ForStatement"&&"body"in a.body&&a.body.body&&Array.isArray(a.body.body)&&a.body.body[0]&&a.body.body[0].type==="TryStatement"&&a.body.body[0].block.body[0]&&a.body.body[0].block.body[0].type==="ExpressionStatement"&&a.body.body[0].block.body[0].expression.type==="AssignmentExpression"&&a.body.body[0].block.body[0].expression.operator==="="&&a.body.body[0].block.body[0].expression.left.type==="Identifier"&&a.body.body[0].block.body[0].expression.left.name==="oracledbCLib"&&a.body.body[0].block.body[0].expression.right.type==="CallExpression"&&a.body.body[0].block.body[0].expression.right.callee.type==="Identifier"&&a.body.body[0].block.body[0].expression.right.callee.name==="require"&&a.body.body[0].block.body[0].expression.right.arguments.length===1&&a.body.body[0].block.body[0].expression.right.arguments[0].type==="MemberExpression"&&a.body.body[0].block.body[0].expression.right.arguments[0].computed===true&&a.body.body[0].block.body[0].expression.right.arguments[0].object.type==="Identifier"&&a.body.body[0].block.body[0].expression.right.arguments[0].object.name==="binaryLocations"&&a.body.body[0].block.body[0].expression.right.arguments[0].property.type==="Identifier"&&a.body.body[0].block.body[0].expression.right.arguments[0].property.name==="i"){a.body.body[0].block.body[0].expression.right.arguments=[{type:"Literal",value:"_"}];const t=global._unit?"3.0.0":JSON.parse(c.readFileSync(e.slice(0,-15)+"package.json","utf8")).version;const s=Number(t.slice(0,t.indexOf(".")))>=4;const u="oracledb-"+(s?t:"abi"+process.versions.modules)+"-"+process.platform+"-"+process.arch+".node";r(o.resolve(e,"../../build/Release/"+u))}}}},"phantomjs-prebuilt"({id:e,emitAssetDirectory:t}){if(e.endsWith("phantomjs-prebuilt/lib/phantomjs.js")){t(o.resolve(o.dirname(e),"..","bin"))}},"remark-prism"({id:e,emitAssetDirectory:t}){const r="remark-prism/src/highlight.js";if(e.endsWith(r)){try{const a=e.slice(0,-r.length);t(o.resolve(a,"prismjs","components"))}catch(e){}}},semver({id:e,emitAsset:t}){if(e.endsWith("semver/index.js")){t(o.resolve(e.replace("index.js","preload.js")))}},"socket.io":async function({id:e,ast:t,job:r}){if(e.endsWith("socket.io/lib/index.js")){async function replaceResolvePathStatement(t){if(t.type==="ExpressionStatement"&&t.expression.type==="AssignmentExpression"&&t.expression.operator==="="&&t.expression.right.type==="CallExpression"&&t.expression.right.callee.type==="Identifier"&&t.expression.right.callee.name==="read"&&t.expression.right.arguments.length>=1&&t.expression.right.arguments[0].type==="CallExpression"&&t.expression.right.arguments[0].callee.type==="Identifier"&&t.expression.right.arguments[0].callee.name==="resolvePath"&&t.expression.right.arguments[0].arguments.length===1&&t.expression.right.arguments[0].arguments[0].type==="Literal"){const a=t.expression.right.arguments[0].arguments[0].value;let u;try{const t=await s.default(String(a),e,r);if(typeof t==="string"){u=t}else{return undefined}}catch(e){return undefined}const c="/"+o.relative(o.dirname(e),u);t.expression.right.arguments[0]={type:"BinaryExpression",start:t.expression.right.arguments[0].start,end:t.expression.right.arguments[0].end,operator:"+",left:{type:"Identifier",name:"__dirname"},right:{type:"Literal",value:c,raw:JSON.stringify(c)}}}return undefined}for(const e of t.body){if(e.type==="ExpressionStatement"&&e.expression.type==="AssignmentExpression"&&e.expression.operator==="="&&e.expression.left.type==="MemberExpression"&&e.expression.left.object.type==="MemberExpression"&&e.expression.left.object.object.type==="Identifier"&&e.expression.left.object.object.name==="Server"&&e.expression.left.object.property.type==="Identifier"&&e.expression.left.object.property.name==="prototype"&&e.expression.left.property.type==="Identifier"&&e.expression.left.property.name==="serveClient"&&e.expression.right.type==="FunctionExpression"){for(const t of e.expression.right.body.body){if(t.type==="IfStatement"&&t.consequent&&"body"in t.consequent&&t.consequent.body){const e=t.consequent.body;let r=false;if(Array.isArray(e)&&e[0]&&e[0].type==="ExpressionStatement"){r=await replaceResolvePathStatement(e[0])}if(Array.isArray(e)&&e[1]&&e[1].type==="TryStatement"&&e[1].block.body&&e[1].block.body[0]){r=await replaceResolvePathStatement(e[1].block.body[0])||r}return}}}}}},typescript({id:e,emitAssetDirectory:t}){if(e.endsWith("typescript/lib/tsc.js")){t(o.resolve(e,"../"))}},"uglify-es"({id:e,emitAsset:t}){if(e.endsWith("uglify-es/tools/node.js")){t(o.resolve(e,"../../lib/utils.js"));t(o.resolve(e,"../../lib/ast.js"));t(o.resolve(e,"../../lib/parse.js"));t(o.resolve(e,"../../lib/transform.js"));t(o.resolve(e,"../../lib/scope.js"));t(o.resolve(e,"../../lib/output.js"));t(o.resolve(e,"../../lib/compress.js"));t(o.resolve(e,"../../lib/sourcemap.js"));t(o.resolve(e,"../../lib/mozilla-ast.js"));t(o.resolve(e,"../../lib/propmangle.js"));t(o.resolve(e,"../../lib/minify.js"));t(o.resolve(e,"../exports.js"))}},"uglify-js"({id:e,emitAsset:t,emitAssetDirectory:r}){if(e.endsWith("uglify-js/tools/node.js")){r(o.resolve(e,"../../lib"));t(o.resolve(e,"../exports.js"))}},"playwright-core"({id:e,emitAsset:t}){if(e.endsWith("playwright-core/index.js")){t(o.resolve(o.dirname(e),"browsers.json"))}},"geo-tz"({id:e,emitAsset:t}){if(e.endsWith("geo-tz/dist/geo-tz.js")){t(o.resolve(o.dirname(e),"../data/geo.dat"))}},pixelmatch({id:e,emitAsset:t}){if(e.endsWith("pixelmatch/index.js")){t(o.resolve(o.dirname(e),"bin/pixelmatch"))}}};async function handleSpecialCases({id:e,ast:t,emitAsset:r,emitAssetDirectory:a,job:o}){const s=u.getPackageName(e);const c=d[s||""];e=e.replace(/\\/g,"/");if(c)await c({id:e,ast:t,emitAsset:r,emitAssetDirectory:a,job:o})}t["default"]=handleSpecialCases},1847:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.wildcardRegEx=t.WILDCARD=t.FUNCTION=t.UNKNOWN=t.evaluate=void 0;const a=r(7310);async function evaluate(e,t={},r=true){const a={computeBranches:r,vars:t};return walk(e);function walk(e){const t=o[e.type];if(t){return t.call(a,e,walk)}return undefined}}t.evaluate=evaluate;t.UNKNOWN=Symbol();t.FUNCTION=Symbol();t.WILDCARD="";t.wildcardRegEx=/\x1a/g;function countWildcards(e){t.wildcardRegEx.lastIndex=0;let r=0;while(t.wildcardRegEx.exec(e))r++;return r}const o={ArrayExpression:async function ArrayExpression(e,t){const r=[];for(let a=0,o=e.elements.length;aa.value}}}return undefined},BinaryExpression:async function BinaryExpression(e,r){const a=e.operator;let o=await r(e.left);if(!o&&a!=="+")return;let s=await r(e.right);if(!o&&!s)return;if(!o){if(this.computeBranches&&s&&"value"in s&&typeof s.value==="string")return{value:t.WILDCARD+s.value,wildcards:[e.left,...s.wildcards||[]]};return}if(!s){if(this.computeBranches&&a==="+"){if(o&&"value"in o&&typeof o.value==="string")return{value:o.value+t.WILDCARD,wildcards:[...o.wildcards||[],e.right]}}if(!("test"in o)&&a==="||"&&o.value)return o;return}if("test"in o&&"value"in s){const e=s.value;if(a==="==")return{test:o.test,then:o.then==e,else:o.else==e};if(a==="===")return{test:o.test,then:o.then===e,else:o.else===e};if(a==="!=")return{test:o.test,then:o.then!=e,else:o.else!=e};if(a==="!==")return{test:o.test,then:o.then!==e,else:o.else!==e};if(a==="+")return{test:o.test,then:o.then+e,else:o.else+e};if(a==="-")return{test:o.test,then:o.then-e,else:o.else-e};if(a==="*")return{test:o.test,then:o.then*e,else:o.else*e};if(a==="/")return{test:o.test,then:o.then/e,else:o.else/e};if(a==="%")return{test:o.test,then:o.then%e,else:o.else%e};if(a==="<")return{test:o.test,then:o.then")return{test:o.test,then:o.then>e,else:o.else>e};if(a===">=")return{test:o.test,then:o.then>=e,else:o.else>=e};if(a==="|")return{test:o.test,then:o.then|e,else:o.else|e};if(a==="&")return{test:o.test,then:o.then&e,else:o.else&e};if(a==="^")return{test:o.test,then:o.then^e,else:o.else^e};if(a==="&&")return{test:o.test,then:o.then&&e,else:o.else&&e};if(a==="||")return{test:o.test,then:o.then||e,else:o.else||e}}else if("test"in s&&"value"in o){const e=o.value;if(a==="==")return{test:s.test,then:e==s.then,else:e==s.else};if(a==="===")return{test:s.test,then:e===s.then,else:e===s.else};if(a==="!=")return{test:s.test,then:e!=s.then,else:e!=s.else};if(a==="!==")return{test:s.test,then:e!==s.then,else:e!==s.else};if(a==="+")return{test:s.test,then:e+s.then,else:e+s.else};if(a==="-")return{test:s.test,then:e-s.then,else:e-s.else};if(a==="*")return{test:s.test,then:e*s.then,else:e*s.else};if(a==="/")return{test:s.test,then:e/s.then,else:e/s.else};if(a==="%")return{test:s.test,then:e%s.then,else:e%s.else};if(a==="<")return{test:s.test,then:e")return{test:s.test,then:e>s.then,else:e>s.else};if(a===">=")return{test:s.test,then:e>=s.then,else:e>=s.else};if(a==="|")return{test:s.test,then:e|s.then,else:e|s.else};if(a==="&")return{test:s.test,then:e&s.then,else:e&s.else};if(a==="^")return{test:s.test,then:e^s.then,else:e^s.else};if(a==="&&")return{test:s.test,then:e&&s.then,else:o&&s.else};if(a==="||")return{test:s.test,then:e||s.then,else:o||s.else}}else if("value"in o&&"value"in s){if(a==="==")return{value:o.value==s.value};if(a==="===")return{value:o.value===s.value};if(a==="!=")return{value:o.value!=s.value};if(a==="!==")return{value:o.value!==s.value};if(a==="+"){const e={value:o.value+s.value};let t=[];if("wildcards"in o&&o.wildcards){t=t.concat(o.wildcards)}if("wildcards"in s&&s.wildcards){t=t.concat(s.wildcards)}if(t.length>0){e.wildcards=t}return e}if(a==="-")return{value:o.value-s.value};if(a==="*")return{value:o.value*s.value};if(a==="/")return{value:o.value/s.value};if(a==="%")return{value:o.value%s.value};if(a==="<")return{value:o.value")return{value:o.value>s.value};if(a===">=")return{value:o.value>=s.value};if(a==="|")return{value:o.value|s.value};if(a==="&")return{value:o.value&s.value};if(a==="^")return{value:o.value^s.value};if(a==="&&")return{value:o.value&&s.value};if(a==="||")return{value:o.value||s.value}}return},CallExpression:async function CallExpression(e,r){var a;const o=await r(e.callee);if(!o||"test"in o)return;let s=o.value;if(typeof s==="object"&&s!==null)s=s[t.FUNCTION];if(typeof s!=="function")return;let u=null;if(e.callee.object){u=await r(e.callee.object);u=u&&"value"in u&&u.value?u.value:null}let c;let d=[];let f;let p=e.arguments.length>0&&((a=e.callee.property)===null||a===void 0?void 0:a.name)!=="concat";const h=[];for(let a=0,o=e.arguments.length;ah.push(e)))}else{if(!this.computeBranches)return;o={value:t.WILDCARD};h.push(e.arguments[a])}if("test"in o){if(h.length)return;if(c)return;c=o.test;f=d.concat([]);d.push(o.then);f.push(o.else)}else{d.push(o.value);if(f)f.push(o.value)}}if(p)return;try{const e=await s.apply(u,d);if(e===t.UNKNOWN)return;if(!c){if(h.length){if(typeof e!=="string"||countWildcards(e)!==h.length)return;return{value:e,wildcards:h}}return{value:e}}const r=await s.apply(u,f);if(e===t.UNKNOWN)return;return{test:c,then:e,else:r}}catch(e){return}},ConditionalExpression:async function ConditionalExpression(e,t){const r=await t(e.test);if(r&&"value"in r)return r.value?t(e.consequent):t(e.alternate);if(!this.computeBranches)return;const a=await t(e.consequent);if(!a||"wildcards"in a||"test"in a)return;const o=await t(e.alternate);if(!o||"wildcards"in o||"test"in o)return;return{test:e.test,then:a.value,else:o.value}},ExpressionStatement:async function ExpressionStatement(e,t){return t(e.expression)},Identifier:async function Identifier(e,t){if(Object.hasOwnProperty.call(this.vars,e.name))return this.vars[e.name];return undefined},Literal:async function Literal(e,t){return{value:e.value}},MemberExpression:async function MemberExpression(e,r){const a=await r(e.object);if(!a||"test"in a||typeof a.value==="function"){return undefined}if(e.property.type==="Identifier"){if(typeof a.value==="string"&&e.property.name==="concat"){return{value:{[t.FUNCTION]:(...e)=>a.value.concat(e)}}}if(typeof a.value==="object"&&a.value!==null){const o=a.value;if(e.computed){const s=await r(e.property);if(s&&"value"in s&&s.value){const e=o[s.value];if(e===t.UNKNOWN)return undefined;return{value:e}}if(!o[t.UNKNOWN]&&Object.keys(a).length===0){return{value:undefined}}}else if(e.property.name in o){const r=o[e.property.name];if(r===t.UNKNOWN)return undefined;return{value:r}}else if(o[t.UNKNOWN])return undefined}else{return{value:undefined}}}const o=await r(e.property);if(!o||"test"in o)return undefined;if(typeof a.value==="object"&&a.value!==null){if(o.value in a.value){const e=a.value[o.value];if(e===t.UNKNOWN)return undefined;return{value:e}}else if(a.value[t.UNKNOWN]){return undefined}}else{return{value:undefined}}return undefined},MetaProperty:async function MetaProperty(e){if(e.meta.name==="import"&&e.property.name==="meta")return{value:this.vars["import.meta"]};return undefined},NewExpression:async function NewExpression(e,t){const r=await t(e.callee);if(r&&"value"in r&&r.value===a.URL&&e.arguments.length){const r=await t(e.arguments[0]);if(!r)return undefined;let o=null;if(e.arguments[1]){o=await t(e.arguments[1]);if(!o||!("value"in o))return undefined}if("value"in r){if(o){try{return{value:new a.URL(r.value,o.value)}}catch(e){return undefined}}try{return{value:new a.URL(r.value)}}catch(e){return undefined}}else{const e=r.test;if(o){try{return{test:e,then:new a.URL(r.then,o.value),else:new a.URL(r.else,o.value)}}catch(e){return undefined}}try{return{test:e,then:new a.URL(r.then),else:new a.URL(r.else)}}catch(e){return undefined}}}return undefined},ObjectExpression:async function ObjectExpression(e,r){const a={};for(let o=0;o{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.handleWrappers=void 0;const a=r(4924);function isUndefinedOrVoid(e){return e.type==="Identifier"&&e.name==="undefined"||e.type==="UnaryExpression"&&e.operator==="void"&&e.argument.type==="Literal"&&e.argument.value===0}function handleWrappers(e){var t;let r;if(e.body.length===1&&e.body[0].type==="ExpressionStatement"&&e.body[0].expression.type==="UnaryExpression"&&e.body[0].expression.operator==="!"&&e.body[0].expression.argument.type==="CallExpression"&&e.body[0].expression.argument.callee.type==="FunctionExpression"&&e.body[0].expression.argument.arguments.length===1)r=e.body[0].expression.argument;else if(e.body.length===1&&e.body[0].type==="ExpressionStatement"&&e.body[0].expression.type==="CallExpression"&&e.body[0].expression.callee.type==="FunctionExpression"&&(e.body[0].expression.arguments.length===1||e.body[0].expression.arguments.length===0))r=e.body[0].expression;else if(e.body.length===1&&e.body[0].type==="ExpressionStatement"&&e.body[0].expression.type==="AssignmentExpression"&&e.body[0].expression.left.type==="MemberExpression"&&e.body[0].expression.left.object.type==="Identifier"&&e.body[0].expression.left.object.name==="module"&&e.body[0].expression.left.property.type==="Identifier"&&e.body[0].expression.left.property.name==="exports"&&e.body[0].expression.right.type==="CallExpression"&&e.body[0].expression.right.callee.type==="FunctionExpression"&&e.body[0].expression.right.arguments.length===1)r=e.body[0].expression.right;if(r){let e;let o;if(r.arguments[0]&&r.arguments[0].type==="ConditionalExpression"&&r.arguments[0].test.type==="LogicalExpression"&&r.arguments[0].test.operator==="&&"&&r.arguments[0].test.left.type==="BinaryExpression"&&r.arguments[0].test.left.operator==="==="&&r.arguments[0].test.left.left.type==="UnaryExpression"&&r.arguments[0].test.left.left.operator==="typeof"&&"name"in r.arguments[0].test.left.left.argument&&r.arguments[0].test.left.left.argument.name==="define"&&r.arguments[0].test.left.right.type==="Literal"&&r.arguments[0].test.left.right.value==="function"&&r.arguments[0].test.right.type==="MemberExpression"&&r.arguments[0].test.right.object.type==="Identifier"&&r.arguments[0].test.right.property.type==="Identifier"&&r.arguments[0].test.right.property.name==="amd"&&r.arguments[0].test.right.computed===false&&r.arguments[0].alternate.type==="FunctionExpression"&&r.arguments[0].alternate.params.length===1&&r.arguments[0].alternate.params[0].type==="Identifier"&&r.arguments[0].alternate.body.body.length===1&&r.arguments[0].alternate.body.body[0].type==="ExpressionStatement"&&r.arguments[0].alternate.body.body[0].expression.type==="AssignmentExpression"&&r.arguments[0].alternate.body.body[0].expression.left.type==="MemberExpression"&&r.arguments[0].alternate.body.body[0].expression.left.object.type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.left.object.name==="module"&&r.arguments[0].alternate.body.body[0].expression.left.property.type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.left.property.name==="exports"&&r.arguments[0].alternate.body.body[0].expression.left.computed===false&&r.arguments[0].alternate.body.body[0].expression.right.type==="CallExpression"&&r.arguments[0].alternate.body.body[0].expression.right.callee.type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.right.callee.name===r.arguments[0].alternate.params[0].name&&"body"in r.callee&&"body"in r.callee.body&&Array.isArray(r.callee.body.body)&&r.arguments[0].alternate.body.body[0].expression.right.arguments.length===1&&r.arguments[0].alternate.body.body[0].expression.right.arguments[0].type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.right.arguments[0].name==="require"){let e=r.callee.body.body;if(e[0].type==="ExpressionStatement"&&e[0].expression.type==="Literal"&&e[0].expression.value==="use strict"){e=e.slice(1)}if(e.length===1&&e[0].type==="ExpressionStatement"&&e[0].expression.type==="CallExpression"&&e[0].expression.callee.type==="Identifier"&&e[0].expression.callee.name===r.arguments[0].test.right.object.name&&e[0].expression.arguments.length===1&&e[0].expression.arguments[0].type==="FunctionExpression"&&e[0].expression.arguments[0].params.length===1&&e[0].expression.arguments[0].params[0].type==="Identifier"&&e[0].expression.arguments[0].params[0].name==="require"){const t=e[0].expression.arguments[0];t.params=[];try{delete t.scope.declarations.require}catch(e){}}}else if(r.arguments[0]&&r.arguments[0].type==="FunctionExpression"&&r.arguments[0].params.length===0&&(r.arguments[0].body.body.length===1||r.arguments[0].body.body.length===2&&r.arguments[0].body.body[0].type==="VariableDeclaration"&&r.arguments[0].body.body[0].declarations.length===3&&r.arguments[0].body.body[0].declarations.every((e=>e.init===null&&e.id.type==="Identifier")))&&r.arguments[0].body.body[r.arguments[0].body.body.length-1].type==="ReturnStatement"&&(e=r.arguments[0].body.body[r.arguments[0].body.body.length-1])&&((t=e.argument)===null||t===void 0?void 0:t.type)==="CallExpression"&&e.argument.arguments.length&&e.argument.arguments.every((e=>e&&e.type==="Literal"&&typeof e.value==="number"))&&e.argument.callee.type==="CallExpression"&&(e.argument.callee.callee.type==="FunctionExpression"||e.argument.callee.callee.type==="CallExpression"&&e.argument.callee.callee.callee.type==="FunctionExpression"&&e.argument.callee.callee.arguments.length===0)&&e.argument.callee.arguments.length===3&&e.argument.callee.arguments[0].type==="ObjectExpression"&&e.argument.callee.arguments[1].type==="ObjectExpression"&&e.argument.callee.arguments[2].type==="ArrayExpression"){const t=e.argument.callee.arguments[0].properties;const r={};if(t.every((e=>{if(e.type!=="Property"||e.computed!==false||e.key.type!=="Literal"||typeof e.key.value!=="number"||e.value.type!=="ArrayExpression"||e.value.elements.length!==2||!e.value.elements[0]||!e.value.elements[1]||e.value.elements[0].type!=="FunctionExpression"||e.value.elements[1].type!=="ObjectExpression"){return false}const t=e.value.elements[1].properties;for(const e of t){if(e.type!=="Property"||e.value.type!=="Identifier"&&e.value.type!=="Literal"&&!isUndefinedOrVoid(e.value)||!(e.key.type==="Literal"&&typeof e.key.value==="string"||e.key.type==="Identifier")||e.computed){return false}if(isUndefinedOrVoid(e.value)){if(e.key.type==="Identifier"){r[e.key.name]={type:"Literal",start:e.key.start,end:e.key.end,value:e.key.name,raw:JSON.stringify(e.key.name)}}else if(e.key.type==="Literal"){r[String(e.key.value)]=e.key}}}return true}))){const t=Object.keys(r);const a=e.argument.callee.arguments[1];a.properties=t.map((e=>({type:"Property",method:false,shorthand:false,computed:false,kind:"init",key:r[e],value:{type:"ObjectExpression",properties:[{type:"Property",kind:"init",method:false,shorthand:false,computed:false,key:{type:"Identifier",name:"exports"},value:{type:"CallExpression",optional:false,callee:{type:"Identifier",name:"require"},arguments:[r[e]]}}]}})))}}else if(r.arguments[0]&&r.arguments[0].type==="FunctionExpression"&&r.arguments[0].params.length===2&&r.arguments[0].params[0].type==="Identifier"&&r.arguments[0].params[1].type==="Identifier"&&"body"in r.callee&&"body"in r.callee.body&&Array.isArray(r.callee.body.body)&&r.callee.body.body.length===1){const e=r.callee.body.body[0];if(e.type==="IfStatement"&&e.test.type==="LogicalExpression"&&e.test.operator==="&&"&&e.test.left.type==="BinaryExpression"&&e.test.left.left.type==="UnaryExpression"&&e.test.left.left.operator==="typeof"&&e.test.left.left.argument.type==="Identifier"&&e.test.left.left.argument.name==="module"&&e.test.left.right.type==="Literal"&&e.test.left.right.value==="object"&&e.test.right.type==="BinaryExpression"&&e.test.right.left.type==="UnaryExpression"&&e.test.right.left.operator==="typeof"&&e.test.right.left.argument.type==="MemberExpression"&&e.test.right.left.argument.object.type==="Identifier"&&e.test.right.left.argument.object.name==="module"&&e.test.right.left.argument.property.type==="Identifier"&&e.test.right.left.argument.property.name==="exports"&&e.test.right.right.type==="Literal"&&e.test.right.right.value==="object"&&e.consequent.type==="BlockStatement"&&e.consequent.body.length>0){let t;if(e.consequent.body[0].type==="VariableDeclaration"&&e.consequent.body[0].declarations[0].init&&e.consequent.body[0].declarations[0].init.type==="CallExpression")t=e.consequent.body[0].declarations[0].init;else if(e.consequent.body[0].type==="ExpressionStatement"&&e.consequent.body[0].expression.type==="CallExpression")t=e.consequent.body[0].expression;else if(e.consequent.body[0].type==="ExpressionStatement"&&e.consequent.body[0].expression.type==="AssignmentExpression"&&e.consequent.body[0].expression.operator==="="&&e.consequent.body[0].expression.right.type==="CallExpression")t=e.consequent.body[0].expression.right;if(t&&t.callee.type==="Identifier"&&"params"in r.callee&&r.callee.params.length>0&&"name"in r.callee.params[0]&&t.callee.name===r.callee.params[0].name&&t.arguments.length===2&&t.arguments[0].type==="Identifier"&&t.arguments[0].name==="require"&&t.arguments[1].type==="Identifier"&&t.arguments[1].name==="exports"){const e=r.arguments[0];e.params=[];try{const t=e.scope;delete t.declarations.require;delete t.declarations.exports}catch(e){}}}}else if(r.callee.type==="FunctionExpression"&&r.callee.body.body.length>2&&r.callee.body.body[0].type==="VariableDeclaration"&&r.callee.body.body[0].declarations.length===1&&r.callee.body.body[0].declarations[0].type==="VariableDeclarator"&&r.callee.body.body[0].declarations[0].id.type==="Identifier"&&r.callee.body.body[0].declarations[0].init&&(r.callee.body.body[0].declarations[0].init.type==="ObjectExpression"&&r.callee.body.body[0].declarations[0].init.properties.length===0||r.callee.body.body[0].declarations[0].init.type==="CallExpression"&&r.callee.body.body[0].declarations[0].init.arguments.length===1)&&(r.callee.body.body[1]&&r.callee.body.body[1].type==="FunctionDeclaration"&&r.callee.body.body[1].params.length===1&&r.callee.body.body[1].body.body.length>=3||r.callee.body.body[2]&&r.callee.body.body[2].type==="FunctionDeclaration"&&r.callee.body.body[2].params.length===1&&r.callee.body.body[2].body.body.length>=3)&&(r.arguments[0]&&(r.arguments[0].type==="ArrayExpression"&&(o=r.arguments[0])&&r.arguments[0].elements.length>0&&r.arguments[0].elements.every((e=>e&&e.type==="FunctionExpression"))||r.arguments[0].type==="ObjectExpression"&&(o=r.arguments[0])&&r.arguments[0].properties&&r.arguments[0].properties.length>0&&r.arguments[0].properties.every((e=>e&&e.type==="Property"&&!e.computed&&e.key&&e.key.type==="Literal"&&(typeof e.key.value==="string"||typeof e.key.value==="number")&&e.value&&e.value.type==="FunctionExpression"))))||r.arguments.length===0&&r.callee.type==="FunctionExpression"&&r.callee.params.length===0&&r.callee.body.type==="BlockStatement"&&r.callee.body.body.length>5&&r.callee.body.body[0].type==="VariableDeclaration"&&r.callee.body.body[0].declarations.length===1&&r.callee.body.body[0].declarations[0].id.type==="Identifier"&&r.callee.body.body[1].type==="ExpressionStatement"&&r.callee.body.body[1].expression.type==="AssignmentExpression"&&r.callee.body.body[2].type==="ExpressionStatement"&&r.callee.body.body[2].expression.type==="AssignmentExpression"&&r.callee.body.body[3].type==="ExpressionStatement"&&r.callee.body.body[3].expression.type==="AssignmentExpression"&&r.callee.body.body[3].expression.left.type==="MemberExpression"&&r.callee.body.body[3].expression.left.object.type==="Identifier"&&r.callee.body.body[3].expression.left.object.name===r.callee.body.body[0].declarations[0].id.name&&r.callee.body.body[3].expression.left.property.type==="Identifier"&&r.callee.body.body[3].expression.left.property.name==="modules"&&r.callee.body.body[3].expression.right.type==="ObjectExpression"&&r.callee.body.body[3].expression.right.properties.every((e=>e&&e.type==="Property"&&!e.computed&&e.key&&e.key.type==="Literal"&&(typeof e.key.value==="string"||typeof e.key.value==="number")&&e.value&&e.value.type==="FunctionExpression"))&&(o=r.callee.body.body[3].expression.right)&&(r.callee.body.body[4].type==="VariableDeclaration"&&r.callee.body.body[4].declarations.length===1&&r.callee.body.body[4].declarations[0].init&&r.callee.body.body[4].declarations[0].init.type==="CallExpression"&&r.callee.body.body[4].declarations[0].init.callee.type==="Identifier"&&r.callee.body.body[4].declarations[0].init.callee.name==="require"||r.callee.body.body[5].type==="VariableDeclaration"&&r.callee.body.body[5].declarations.length===1&&r.callee.body.body[5].declarations[0].init&&r.callee.body.body[5].declarations[0].init.type==="CallExpression"&&r.callee.body.body[5].declarations[0].init.callee.type==="Identifier"&&r.callee.body.body[5].declarations[0].init.callee.name==="require")){const e=new Map;let t;if(o.type==="ArrayExpression")t=o.elements.filter((e=>(e===null||e===void 0?void 0:e.type)==="FunctionExpression")).map(((e,t)=>[String(t),e]));else t=o.properties.map((e=>[String(e.key.value),e.value]));for(const[r,a]of t){const t=a.body.body.length===1?a.body.body[0]:(a.body.body.length===2||a.body.body.length===3&&a.body.body[2].type==="EmptyStatement")&&a.body.body[0].type==="ExpressionStatement"&&a.body.body[0].expression.type==="Literal"&&a.body.body[0].expression.value==="use strict"?a.body.body[1]:null;if(t&&t.type==="ExpressionStatement"&&t.expression.type==="AssignmentExpression"&&t.expression.operator==="="&&t.expression.left.type==="MemberExpression"&&t.expression.left.object.type==="Identifier"&&"params"in a&&a.params.length>0&&"name"in a.params[0]&&t.expression.left.object.name===a.params[0].name&&t.expression.left.property.type==="Identifier"&&t.expression.left.property.name==="exports"&&t.expression.right.type==="CallExpression"&&t.expression.right.callee.type==="Identifier"&&t.expression.right.callee.name==="require"&&t.expression.right.arguments.length===1&&t.expression.right.arguments[0].type==="Literal"){e.set(r,t.expression.right.arguments[0].value)}}for(const[,r]of t){if("params"in r&&r.params.length===3&&r.params[2].type==="Identifier"){const t=new Map;a.walk(r.body,{enter(a,o){const s=a;const u=o;if(s.type==="CallExpression"&&s.callee.type==="Identifier"&&"name"in r.params[2]&&s.callee.name===r.params[2].name&&s.arguments.length===1&&s.arguments[0].type==="Literal"){const r=e.get(String(s.arguments[0].value));if(r){const e={type:"CallExpression",optional:false,callee:{type:"Identifier",name:"require"},arguments:[{type:"Literal",value:r}]};const a=u;if("right"in a&&a.right===s){a.right=e}else if("left"in a&&a.left===s){a.left=e}else if("object"in a&&a.object===s){a.object=e}else if("callee"in a&&a.callee===s){a.callee=e}else if("arguments"in a&&a.arguments.some((e=>e===s))){a.arguments=a.arguments.map((t=>t===s?e:t))}else if("init"in a&&a.init===s){if(a.type==="VariableDeclarator"&&a.id.type==="Identifier")t.set(a.id.name,r);a.init=e}}}else if(s.type==="CallExpression"&&s.callee.type==="MemberExpression"&&s.callee.object.type==="Identifier"&&"name"in r.params[2]&&s.callee.object.name===r.params[2].name&&s.callee.property.type==="Identifier"&&s.callee.property.name==="n"&&s.arguments.length===1&&s.arguments[0].type==="Identifier"){if(u&&"init"in u&&u.init===s){const e=s.arguments[0];const t={type:"CallExpression",optional:false,callee:{type:"MemberExpression",computed:false,optional:false,object:{type:"Identifier",name:"Object"},property:{type:"Identifier",name:"assign"}},arguments:[{type:"ArrowFunctionExpression",expression:true,params:[],body:e},{type:"ObjectExpression",properties:[{type:"Property",kind:"init",method:false,computed:false,shorthand:false,key:{type:"Identifier",name:"a"},value:e}]}]};u.init=t}}}})}}}}}t.handleWrappers=handleWrappers},8529:(e,t)=>{e.exports=t=abbrev.abbrev=abbrev;abbrev.monkeyPatch=monkeyPatch;function monkeyPatch(){Object.defineProperty(Array.prototype,"abbrev",{value:function(){return abbrev(this)},enumerable:false,configurable:true,writable:true});Object.defineProperty(Object.prototype,"abbrev",{value:function(){return abbrev(Object.keys(this))},enumerable:false,configurable:true,writable:true})}function abbrev(e){if(arguments.length!==1||!Array.isArray(e)){e=Array.prototype.slice.call(arguments,0)}for(var t=0,r=e.length,a=[];tt?1:-1}},2237:e=>{"use strict";function isArguments(e){return e!=null&&typeof e==="object"&&e.hasOwnProperty("callee")}var t={"*":{label:"any",check:function(){return true}},A:{label:"array",check:function(e){return Array.isArray(e)||isArguments(e)}},S:{label:"string",check:function(e){return typeof e==="string"}},N:{label:"number",check:function(e){return typeof e==="number"}},F:{label:"function",check:function(e){return typeof e==="function"}},O:{label:"object",check:function(e){return typeof e==="object"&&e!=null&&!t.A.check(e)&&!t.E.check(e)}},B:{label:"boolean",check:function(e){return typeof e==="boolean"}},E:{label:"error",check:function(e){return e instanceof Error}},Z:{label:"null",check:function(e){return e==null}}};function addSchema(e,t){var r=t[e.length]=t[e.length]||[];if(r.indexOf(e)===-1)r.push(e)}var r=e.exports=function(e,r){if(arguments.length!==2)throw wrongNumberOfArgs(["SA"],arguments.length);if(!e)throw missingRequiredArg(0,"rawSchemas");if(!r)throw missingRequiredArg(1,"args");if(!t.S.check(e))throw invalidType(0,["string"],e);if(!t.A.check(r))throw invalidType(1,["array"],r);var a=e.split("|");var o={};a.forEach((function(e){for(var r=0;r{"use strict";t.TrackerGroup=r(8365);t.Tracker=r(6149);t.TrackerStream=r(321)},7425:(e,t,r)=>{"use strict";var a=r(2361).EventEmitter;var o=r(3837);var s=0;var u=e.exports=function(e){a.call(this);this.id=++s;this.name=e};o.inherits(u,a)},8365:(e,t,r)=>{"use strict";var a=r(3837);var o=r(7425);var s=r(6149);var u=r(321);var c=e.exports=function(e){o.call(this,e);this.parentGroup=null;this.trackers=[];this.completion={};this.weight={};this.totalWeight=0;this.finished=false;this.bubbleChange=bubbleChange(this)};a.inherits(c,o);function bubbleChange(e){return function(t,r,a){e.completion[a.id]=r;if(e.finished)return;e.emit("change",t||e.name,e.completed(),e)}}c.prototype.nameInTree=function(){var e=[];var t=this;while(t){e.unshift(t.name);t=t.parentGroup}return e.join("/")};c.prototype.addUnit=function(e,t){if(e.addUnit){var r=this;while(r){if(e===r){throw new Error("Attempted to add tracker group "+e.name+" to tree that already includes it "+this.nameInTree(this))}r=r.parentGroup}e.parentGroup=this}this.weight[e.id]=t||1;this.totalWeight+=this.weight[e.id];this.trackers.push(e);this.completion[e.id]=e.completed();e.on("change",this.bubbleChange);if(!this.finished)this.emit("change",e.name,this.completion[e.id],e);return e};c.prototype.completed=function(){if(this.trackers.length===0)return 0;var e=1/this.totalWeight;var t=0;for(var r=0;r{"use strict";var a=r(3837);var o=r(7426);var s=r(6965);var u=r(6149);var c=e.exports=function(e,t,r){o.Transform.call(this,r);this.tracker=new u(e,t);this.name=e;this.id=this.tracker.id;this.tracker.on("change",delegateChange(this))};a.inherits(c,o.Transform);function delegateChange(e){return function(t,r,a){e.emit("change",t,r,e)}}c.prototype._transform=function(e,t,r){this.tracker.completeWork(e.length?e.length:1);this.push(e);r()};c.prototype._flush=function(e){this.tracker.finish();e()};s(c.prototype,"tracker").method("completed").method("addWork").method("finish")},6149:(e,t,r)=>{"use strict";var a=r(3837);var o=r(7425);var s=e.exports=function(e,t){o.call(this,e);this.workDone=0;this.workTodo=t||0};a.inherits(s,o);s.prototype.completed=function(){return this.workTodo===0?0:this.workDone/this.workTodo};s.prototype.addWork=function(e){this.workTodo+=e;this.emit("change",this.name,this.completed(),this)};s.prototype.completeWork=function(e){this.workDone+=e;if(this.workDone>this.workTodo)this.workDone=this.workTodo;this.emit("change",this.name,this.completed(),this)};s.prototype.finish=function(){this.workTodo=this.workDone=1;this.emit("change",this.name,1,this)}},8942:(module,exports,__nccwpck_require__)=>{var fs=__nccwpck_require__(7147),path=__nccwpck_require__(1017),fileURLToPath=__nccwpck_require__(981),join=path.join,dirname=path.dirname,exists=fs.accessSync&&function(e){try{fs.accessSync(e)}catch(e){return false}return true}||fs.existsSync||path.existsSync,defaults={arrow:process.env.NODE_BINDINGS_ARROW||" → ",compiled:process.env.NODE_BINDINGS_COMPILED_DIR||"compiled",platform:process.platform,arch:process.arch,nodePreGyp:"node-v"+process.versions.modules+"-"+process.platform+"-"+process.arch,version:process.versions.node,bindings:"bindings.node",try:[["module_root","build","bindings"],["module_root","build","Debug","bindings"],["module_root","build","Release","bindings"],["module_root","out","Debug","bindings"],["module_root","Debug","bindings"],["module_root","out","Release","bindings"],["module_root","Release","bindings"],["module_root","build","default","bindings"],["module_root","compiled","version","platform","arch","bindings"],["module_root","addon-build","release","install-root","bindings"],["module_root","addon-build","debug","install-root","bindings"],["module_root","addon-build","default","install-root","bindings"],["module_root","lib","binding","nodePreGyp","bindings"]]};function bindings(opts){if(typeof opts=="string"){opts={bindings:opts}}else if(!opts){opts={}}Object.keys(defaults).map((function(e){if(!(e in opts))opts[e]=defaults[e]}));if(!opts.module_root){opts.module_root=exports.getRoot(exports.getFileName())}if(path.extname(opts.bindings)!=".node"){opts.bindings+=".node"}var requireFunc=true?eval("require"):0;var tries=[],i=0,l=opts.try.length,n,b,err;for(;i{"use strict";e.exports=function(e,t){if(e===null||e===undefined){throw TypeError()}e=String(e);var r=e.length;var a=t?Number(t):0;if(Number.isNaN(a)){a=0}if(a<0||a>=r){return undefined}var o=e.charCodeAt(a);if(o>=55296&&o<=56319&&r>a+1){var s=e.charCodeAt(a+1);if(s>=56320&&s<=57343){return(o-55296)*1024+s-56320+65536}}return o}},8061:(e,t)=>{"use strict";var r="[";t.up=function up(e){return r+(e||"")+"A"};t.down=function down(e){return r+(e||"")+"B"};t.forward=function forward(e){return r+(e||"")+"C"};t.back=function back(e){return r+(e||"")+"D"};t.nextLine=function nextLine(e){return r+(e||"")+"E"};t.previousLine=function previousLine(e){return r+(e||"")+"F"};t.horizontalAbsolute=function horizontalAbsolute(e){if(e==null)throw new Error("horizontalAboslute requires a column to position to");return r+e+"G"};t.eraseData=function eraseData(){return r+"J"};t.eraseLine=function eraseLine(){return r+"K"};t.goto=function(e,t){return r+t+";"+e+"H"};t.gotoSOL=function(){return"\r"};t.beep=function(){return""};t.hideCursor=function hideCursor(){return r+"?25l"};t.showCursor=function showCursor(){return r+"?25h"};var a={reset:0,bold:1,italic:3,underline:4,inverse:7,stopBold:22,stopItalic:23,stopUnderline:24,stopInverse:27,white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,bgWhite:47,bgBlack:40,bgBlue:44,bgCyan:46,bgGreen:42,bgMagenta:45,bgRed:41,bgYellow:43,grey:90,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97,bgGrey:100,bgBrightBlack:100,bgBrightRed:101,bgBrightGreen:102,bgBrightYellow:103,bgBrightBlue:104,bgBrightMagenta:105,bgBrightCyan:106,bgBrightWhite:107};t.color=function color(e){if(arguments.length!==1||!Array.isArray(e)){e=Array.prototype.slice.call(arguments)}return r+e.map(colorNameToCode).join(";")+"m"};function colorNameToCode(e){if(a[e]!=null)return a[e];throw new Error("Unknown color or style name: "+e)}},8297:(e,t)=>{function isArray(e){if(Array.isArray){return Array.isArray(e)}return objectToString(e)==="[object Array]"}t.isArray=isArray;function isBoolean(e){return typeof e==="boolean"}t.isBoolean=isBoolean;function isNull(e){return e===null}t.isNull=isNull;function isNullOrUndefined(e){return e==null}t.isNullOrUndefined=isNullOrUndefined;function isNumber(e){return typeof e==="number"}t.isNumber=isNumber;function isString(e){return typeof e==="string"}t.isString=isString;function isSymbol(e){return typeof e==="symbol"}t.isSymbol=isSymbol;function isUndefined(e){return e===void 0}t.isUndefined=isUndefined;function isRegExp(e){return objectToString(e)==="[object RegExp]"}t.isRegExp=isRegExp;function isObject(e){return typeof e==="object"&&e!==null}t.isObject=isObject;function isDate(e){return objectToString(e)==="[object Date]"}t.isDate=isDate;function isError(e){return objectToString(e)==="[object Error]"||e instanceof Error}t.isError=isError;function isFunction(e){return typeof e==="function"}t.isFunction=isFunction;function isPrimitive(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"||typeof e==="symbol"||typeof e==="undefined"}t.isPrimitive=isPrimitive;t.isBuffer=Buffer.isBuffer;function objectToString(e){return Object.prototype.toString.call(e)}},6965:e=>{e.exports=Delegator;function Delegator(e,t){if(!(this instanceof Delegator))return new Delegator(e,t);this.proto=e;this.target=t;this.methods=[];this.getters=[];this.setters=[];this.fluents=[]}Delegator.prototype.method=function(e){var t=this.proto;var r=this.target;this.methods.push(e);t[e]=function(){return this[r][e].apply(this[r],arguments)};return this};Delegator.prototype.access=function(e){return this.getter(e).setter(e)};Delegator.prototype.getter=function(e){var t=this.proto;var r=this.target;this.getters.push(e);t.__defineGetter__(e,(function(){return this[r][e]}));return this};Delegator.prototype.setter=function(e){var t=this.proto;var r=this.target;this.setters.push(e);t.__defineSetter__(e,(function(t){return this[r][e]=t}));return this};Delegator.prototype.fluent=function(e){var t=this.proto;var r=this.target;this.fluents.push(e);t[e]=function(t){if("undefined"!=typeof t){this[r][e]=t;return this}else{return this[r][e]}};return this}},5092:(e,t,r)=>{"use strict";var a=r(2037).platform();var o=r(2081).spawnSync;var s=r(7147).readdirSync;var u="glibc";var c="musl";var d={encoding:"utf8",env:process.env};if(!o){o=function(){return{status:126,stdout:"",stderr:""}}}function contains(e){return function(t){return t.indexOf(e)!==-1}}function versionFromMuslLdd(e){return e.split(/[\r\n]+/)[1].trim().split(/\s/)[1]}function safeReaddirSync(e){try{return s(e)}catch(e){}return[]}var f="";var p="";var h="";if(a==="linux"){var v=o("getconf",["GNU_LIBC_VERSION"],d);if(v.status===0){f=u;p=v.stdout.trim().split(" ")[1];h="getconf"}else{var _=o("ldd",["--version"],d);if(_.status===0&&_.stdout.indexOf(c)!==-1){f=c;p=versionFromMuslLdd(_.stdout);h="ldd"}else if(_.status===1&&_.stderr.indexOf(c)!==-1){f=c;p=versionFromMuslLdd(_.stderr);h="ldd"}else{var g=safeReaddirSync("/lib");if(g.some(contains("-linux-gnu"))){f=u;h="filesystem"}else if(g.some(contains("libc.musl-"))){f=c;h="filesystem"}else if(g.some(contains("ld-musl-"))){f=c;h="filesystem"}else{var y=safeReaddirSync("/usr/sbin");if(y.some(contains("glibc"))){f=u;h="filesystem"}}}}}var m=f!==""&&f!==u;e.exports={GLIBC:u,MUSL:c,family:f,version:p,method:h,isNonGlibcLinux:m}},9641:function(e,t){(function(e,r){true?r(t):0})(this,(function(e){"use strict";function walk(e,{enter:t,leave:r}){visit(e,null,t,r)}let t=false;const r={skip:()=>t=true};const a={};const o=Object.prototype.toString;function isArray(e){return o.call(e)==="[object Array]"}function visit(e,o,s,u,c,d){if(!e)return;if(s){const a=t;t=false;s.call(r,e,o,c,d);const u=t;t=a;if(u)return}const f=e.type&&a[e.type]||(a[e.type]=Object.keys(e).filter((t=>typeof e[t]==="object")));for(let t=0;t{var a=r(1017).sep||"/";e.exports=fileUriToPath;function fileUriToPath(e){if("string"!=typeof e||e.length<=7||"file://"!=e.substring(0,7)){throw new TypeError("must pass in a file:// URI to convert to a file path")}var t=decodeURI(e.substring(7));var r=t.indexOf("/");var o=t.substring(0,r);var s=t.substring(r+1);if("localhost"==o)o="";if(o){o=a+a+o}s=s.replace(/^(.+)\|/,"$1:");if(a=="\\"){s=s.replace(/\//g,"\\")}if(/^.+\:/.test(s)){}else{s=a+s}return o+s}},4581:(e,t,r)=>{"use strict";var a=r(101);var o=r(9365);e.exports={activityIndicator:function(e,t,r){if(e.spun==null)return;return a(t,e.spun)},progressbar:function(e,t,r){if(e.completed==null)return;return o(t,r,e.completed)}}},3362:(e,t,r)=>{"use strict";var a=r(3837);var o=t.User=function User(e){var t=new Error(e);Error.captureStackTrace(t,User);t.code="EGAUGE";return t};t.MissingTemplateValue=function MissingTemplateValue(e,t){var r=new o(a.format('Missing template value "%s"',e.type));Error.captureStackTrace(r,MissingTemplateValue);r.template=e;r.values=t;return r};t.Internal=function Internal(e){var t=new Error(e);Error.captureStackTrace(t,Internal);t.code="EGAUGEINTERNAL";return t}},4054:e=>{"use strict";e.exports=isWin32()||isColorTerm();function isWin32(){return process.platform==="win32"}function isColorTerm(){var e=/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i;return!!process.env.COLORTERM||e.test(process.env.TERM)}},4398:(e,t,r)=>{"use strict";var a=r(1822);var o=r(4967);var s=r(4054);var u=r(5417);var c=r(5930);var d=r(2992);var f=r(3893);var p=r(5264);e.exports=Gauge;function callWith(e,t){return function(){return t.call(e)}}function Gauge(e,t){var r,o;if(e&&e.write){o=e;r=t||{}}else if(t&&t.write){o=t;r=e||{}}else{o=f.stderr;r=e||t||{}}this._status={spun:0,section:"",subsection:""};this._paused=false;this._disabled=true;this._showing=false;this._onScreen=false;this._needsRedraw=false;this._hideCursor=r.hideCursor==null?true:r.hideCursor;this._fixedFramerate=r.fixedFramerate==null?!/^v0\.8\./.test(f.version):r.fixedFramerate;this._lastUpdateAt=null;this._updateInterval=r.updateInterval==null?50:r.updateInterval;this._themes=r.themes||c;this._theme=r.theme;var s=this._computeTheme(r.theme);var u=r.template||[{type:"progressbar",length:20},{type:"activityIndicator",kerning:1,length:1},{type:"section",kerning:1,default:""},{type:"subsection",kerning:1,default:""}];this.setWriteTo(o,r.tty);var d=r.Plumbing||a;this._gauge=new d(s,u,this.getWidth());this._$$doRedraw=callWith(this,this._doRedraw);this._$$handleSizeChange=callWith(this,this._handleSizeChange);this._cleanupOnExit=r.cleanupOnExit==null||r.cleanupOnExit;this._removeOnExit=null;if(r.enabled||r.enabled==null&&this._tty&&this._tty.isTTY){this.enable()}else{this.disable()}}Gauge.prototype={};Gauge.prototype.isEnabled=function(){return!this._disabled};Gauge.prototype.setTemplate=function(e){this._gauge.setTemplate(e);if(this._showing)this._requestRedraw()};Gauge.prototype._computeTheme=function(e){if(!e)e={};if(typeof e==="string"){e=this._themes.getTheme(e)}else if(e&&(Object.keys(e).length===0||e.hasUnicode!=null||e.hasColor!=null)){var t=e.hasUnicode==null?o():e.hasUnicode;var r=e.hasColor==null?s:e.hasColor;e=this._themes.getDefault({hasUnicode:t,hasColor:r,platform:e.platform})}return e};Gauge.prototype.setThemeset=function(e){this._themes=e;this.setTheme(this._theme)};Gauge.prototype.setTheme=function(e){this._gauge.setTheme(this._computeTheme(e));if(this._showing)this._requestRedraw();this._theme=e};Gauge.prototype._requestRedraw=function(){this._needsRedraw=true;if(!this._fixedFramerate)this._doRedraw()};Gauge.prototype.getWidth=function(){return(this._tty&&this._tty.columns||80)-1};Gauge.prototype.setWriteTo=function(e,t){var r=!this._disabled;if(r)this.disable();this._writeTo=e;this._tty=t||e===f.stderr&&f.stdout.isTTY&&f.stdout||e.isTTY&&e||this._tty;if(this._gauge)this._gauge.setWidth(this.getWidth());if(r)this.enable()};Gauge.prototype.enable=function(){if(!this._disabled)return;this._disabled=false;if(this._tty)this._enableEvents();if(this._showing)this.show()};Gauge.prototype.disable=function(){if(this._disabled)return;if(this._showing){this._lastUpdateAt=null;this._showing=false;this._doRedraw();this._showing=true}this._disabled=true;if(this._tty)this._disableEvents()};Gauge.prototype._enableEvents=function(){if(this._cleanupOnExit){this._removeOnExit=u(callWith(this,this.disable))}this._tty.on("resize",this._$$handleSizeChange);if(this._fixedFramerate){this.redrawTracker=d(this._$$doRedraw,this._updateInterval);if(this.redrawTracker.unref)this.redrawTracker.unref()}};Gauge.prototype._disableEvents=function(){this._tty.removeListener("resize",this._$$handleSizeChange);if(this._fixedFramerate)clearInterval(this.redrawTracker);if(this._removeOnExit)this._removeOnExit()};Gauge.prototype.hide=function(e){if(this._disabled)return e&&f.nextTick(e);if(!this._showing)return e&&f.nextTick(e);this._showing=false;this._doRedraw();e&&p(e)};Gauge.prototype.show=function(e,t){this._showing=true;if(typeof e==="string"){this._status.section=e}else if(typeof e==="object"){var r=Object.keys(e);for(var a=0;a{"use strict";var a=r(8061);var o=r(795);var s=r(2237);var u=e.exports=function(e,t,r){if(!r)r=80;s("OAN",[e,t,r]);this.showing=false;this.theme=e;this.width=r;this.template=t};u.prototype={};u.prototype.setTheme=function(e){s("O",[e]);this.theme=e};u.prototype.setTemplate=function(e){s("A",[e]);this.template=e};u.prototype.setWidth=function(e){s("N",[e]);this.width=e};u.prototype.hide=function(){return a.gotoSOL()+a.eraseLine()};u.prototype.hideCursor=a.hideCursor;u.prototype.showCursor=a.showCursor;u.prototype.show=function(e){var t=Object.create(this.theme);for(var r in e){t[r]=e[r]}return o(this.width,this.template,t).trim()+a.color("reset")+a.eraseLine()+a.gotoSOL()}},3893:e=>{"use strict";e.exports=process},9365:(e,t,r)=>{"use strict";var a=r(2237);var o=r(795);var s=r(790);var u=r(1780);e.exports=function(e,t,r){a("ONN",[e,t,r]);if(r<0)r=0;if(r>1)r=1;if(t<=0)return"";var s=Math.round(t*r);var u=t-s;var c=[{type:"complete",value:repeat(e.complete,s),length:s},{type:"remaining",value:repeat(e.remaining,u),length:u}];return o(t,c,e)};function repeat(e,t){var r="";var a=t;do{if(a%2){r+=e}a=Math.floor(a/2);e+=e}while(a&&u(r){"use strict";var a=r(6486);var o=r(2237);var s=r(3902);var u=r(790);var c=r(3362);var d=r(3225);function renderValueWithValues(e){return function(t){return renderValue(t,e)}}var f=e.exports=function(e,t,r){var o=prepareItems(e,t,r);var s=o.map(renderValueWithValues(r)).join("");return a.left(u(s,e),e)};function preType(e){var t=e.type[0].toUpperCase()+e.type.slice(1);return"pre"+t}function postType(e){var t=e.type[0].toUpperCase()+e.type.slice(1);return"post"+t}function hasPreOrPost(e,t){if(!e.type)return;return t[preType(e)]||t[postType(e)]}function generatePreAndPost(e,t){var r=s({},e);var a=Object.create(t);var o=[];var u=preType(r);var c=postType(r);if(a[u]){o.push({value:a[u]});a[u]=null}r.minLength=null;r.length=null;r.maxLength=null;o.push(r);a[r.type]=a[r.type];if(a[c]){o.push({value:a[c]});a[c]=null}return function(e,t,r){return f(r,o,a)}}function prepareItems(e,t,r){function cloneAndObjectify(t,a,o){var s=new d(t,e);var u=s.type;if(s.value==null){if(!(u in r)){if(s.default==null){throw new c.MissingTemplateValue(s,r)}else{s.value=s.default}}else{s.value=r[u]}}if(s.value==null||s.value==="")return null;s.index=a;s.first=a===0;s.last=a===o.length-1;if(hasPreOrPost(s,r))s.value=generatePreAndPost(s,r);return s}var a=t.map(cloneAndObjectify).filter((function(e){return e!=null}));var o=0;var s=e;var u=a.length;function consumeSpace(e){if(e>s)e=s;o+=e;s-=e}function finishSizing(e,t){if(e.finished)throw new c.Internal("Tried to finish template item that was already finished");if(t===Infinity)throw new c.Internal("Length of template item cannot be infinity");if(t!=null)e.length=t;e.minLength=null;e.maxLength=null;--u;e.finished=true;if(e.length==null)e.length=e.getBaseLength();if(e.length==null)throw new c.Internal("Finished template items must have a length");consumeSpace(e.getLength())}a.forEach((function(e){if(!e.kerning)return;var t=e.first?0:a[e.index-1].padRight;if(!e.first&&t=h){finishSizing(e,e.minLength);p=true}}))}while(p&&f++{"use strict";var a=r(3893);try{e.exports=setImmediate}catch(t){e.exports=a.nextTick}},2992:e=>{"use strict";e.exports=setInterval},101:e=>{"use strict";e.exports=function spin(e,t){return e[t%e.length]}},3225:(e,t,r)=>{"use strict";var a=r(1780);e.exports=TemplateItem;function isPercent(e){if(typeof e!=="string")return false;return e.slice(-1)==="%"}function percent(e){return Number(e.slice(0,-1))/100}function TemplateItem(e,t){this.overallOutputLength=t;this.finished=false;this.type=null;this.value=null;this.length=null;this.maxLength=null;this.minLength=null;this.kerning=null;this.align="left";this.padLeft=0;this.padRight=0;this.index=null;this.first=null;this.last=null;if(typeof e==="string"){this.value=e}else{for(var r in e)this[r]=e[r]}if(isPercent(this.length)){this.length=Math.round(this.overallOutputLength*percent(this.length))}if(isPercent(this.minLength)){this.minLength=Math.round(this.overallOutputLength*percent(this.minLength))}if(isPercent(this.maxLength)){this.maxLength=Math.round(this.overallOutputLength*percent(this.maxLength))}return this}TemplateItem.prototype={};TemplateItem.prototype.getBaseLength=function(){var e=this.length;if(e==null&&typeof this.value==="string"&&this.maxLength==null&&this.minLength==null){e=a(this.value)}return e};TemplateItem.prototype.getLength=function(){var e=this.getBaseLength();if(e==null)return null;return e+this.padLeft+this.padRight};TemplateItem.prototype.getMaxLength=function(){if(this.maxLength==null)return null;return this.maxLength+this.padLeft+this.padRight};TemplateItem.prototype.getMinLength=function(){if(this.minLength==null)return null;return this.minLength+this.padLeft+this.padRight}},4262:(e,t,r)=>{"use strict";var a=r(3902);e.exports=function(){return o.newThemeSet()};var o={};o.baseTheme=r(4581);o.newTheme=function(e,t){if(!t){t=e;e=this.baseTheme}return a({},e,t)};o.getThemeNames=function(){return Object.keys(this.themes)};o.addTheme=function(e,t,r){this.themes[e]=this.newTheme(t,r)};o.addToAllThemes=function(e){var t=this.themes;Object.keys(t).forEach((function(r){a(t[r],e)}));a(this.baseTheme,e)};o.getTheme=function(e){if(!this.themes[e])throw this.newMissingThemeError(e);return this.themes[e]};o.setDefault=function(e,t){if(t==null){t=e;e={}}var r=e.platform==null?"fallback":e.platform;var a=!!e.hasUnicode;var o=!!e.hasColor;if(!this.defaults[r])this.defaults[r]={true:{},false:{}};this.defaults[r][a][o]=t};o.getDefault=function(e){if(!e)e={};var t=e.platform||process.platform;var r=this.defaults[t]||this.defaults.fallback;var o=!!e.hasUnicode;var s=!!e.hasColor;if(!r)throw this.newMissingDefaultThemeError(t,o,s);if(!r[o][s]){if(o&&s&&r[!o][s]){o=false}else if(o&&s&&r[o][!s]){s=false}else if(o&&s&&r[!o][!s]){o=false;s=false}else if(o&&!s&&r[!o][s]){o=false}else if(!o&&s&&r[o][!s]){s=false}else if(r===this.defaults.fallback){throw this.newMissingDefaultThemeError(t,o,s)}}if(r[o][s]){return this.getTheme(r[o][s])}else{return this.getDefault(a({},e,{platform:"fallback"}))}};o.newMissingThemeError=function newMissingThemeError(e){var t=new Error('Could not find a gauge theme named "'+e+'"');Error.captureStackTrace.call(t,newMissingThemeError);t.theme=e;t.code="EMISSINGTHEME";return t};o.newMissingDefaultThemeError=function newMissingDefaultThemeError(e,t,r){var a=new Error("Could not find a gauge theme for your platform/unicode/color use combo:\n"+" platform = "+e+"\n"+" hasUnicode = "+t+"\n"+" hasColor = "+r);Error.captureStackTrace.call(a,newMissingDefaultThemeError);a.platform=e;a.hasUnicode=t;a.hasColor=r;a.code="EMISSINGTHEME";return a};o.newThemeSet=function(){var themeset=function(e){return themeset.getDefault(e)};return a(themeset,o,{themes:a({},this.themes),baseTheme:a({},this.baseTheme),defaults:JSON.parse(JSON.stringify(this.defaults||{}))})}},5930:(e,t,r)=>{"use strict";var a=r(8061);var o=r(4262);var s=e.exports=new o;s.addTheme("ASCII",{preProgressbar:"[",postProgressbar:"]",progressbarTheme:{complete:"#",remaining:"."},activityIndicatorTheme:"-\\|/",preSubsection:">"});s.addTheme("colorASCII",s.getTheme("ASCII"),{progressbarTheme:{preComplete:a.color("inverse"),complete:" ",postComplete:a.color("stopInverse"),preRemaining:a.color("brightBlack"),remaining:".",postRemaining:a.color("reset")}});s.addTheme("brailleSpinner",{preProgressbar:"⸨",postProgressbar:"⸩",progressbarTheme:{complete:"░",remaining:"⠂"},activityIndicatorTheme:"⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏",preSubsection:">"});s.addTheme("colorBrailleSpinner",s.getTheme("brailleSpinner"),{progressbarTheme:{preComplete:a.color("inverse"),complete:" ",postComplete:a.color("stopInverse"),preRemaining:a.color("brightBlack"),remaining:"░",postRemaining:a.color("reset")}});s.setDefault({},"ASCII");s.setDefault({hasColor:true},"colorASCII");s.setDefault({platform:"darwin",hasUnicode:true},"brailleSpinner");s.setDefault({platform:"darwin",hasUnicode:true,hasColor:true},"colorBrailleSpinner")},790:(e,t,r)=>{"use strict";var a=r(1780);var o=r(7518);e.exports=wideTruncate;function wideTruncate(e,t){if(a(e)===0)return e;if(t<=0)return"";if(a(e)<=t)return e;var r=o(e);var s=e.length+r.length;var u=e.slice(0,t+s);while(a(u)>t){u=u.slice(0,-1)}return u}},6045:e=>{"use strict";e.exports=clone;var t=Object.getPrototypeOf||function(e){return e.__proto__};function clone(e){if(e===null||typeof e!=="object")return e;if(e instanceof Object)var r={__proto__:t(e)};else var r=Object.create(null);Object.getOwnPropertyNames(e).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))}));return r}},1653:(e,t,r)=>{var a=r(7147);var o=r(8);var s=r(7448);var u=r(6045);var c=r(3837);var d;var f;if(typeof Symbol==="function"&&typeof Symbol.for==="function"){d=Symbol.for("graceful-fs.queue");f=Symbol.for("graceful-fs.previous")}else{d="___graceful-fs.queue";f="___graceful-fs.previous"}function noop(){}function publishQueue(e,t){Object.defineProperty(e,d,{get:function(){return t}})}var p=noop;if(c.debuglog)p=c.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))p=function(){var e=c.format.apply(c,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: ");console.error(e)};if(!a[d]){var h=global[d]||[];publishQueue(a,h);a.close=function(e){function close(t,r){return e.call(a,t,(function(e){if(!e){resetQueue()}if(typeof r==="function")r.apply(this,arguments)}))}Object.defineProperty(close,f,{value:e});return close}(a.close);a.closeSync=function(e){function closeSync(t){e.apply(a,arguments);resetQueue()}Object.defineProperty(closeSync,f,{value:e});return closeSync}(a.closeSync);if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")){process.on("exit",(function(){p(a[d]);r(9491).equal(a[d].length,0)}))}}if(!global[d]){publishQueue(global,a[d])}e.exports=patch(u(a));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!a.__patched){e.exports=patch(a);a.__patched=true}function patch(e){o(e);e.gracefulify=patch;e.createReadStream=createReadStream;e.createWriteStream=createWriteStream;var t=e.readFile;e.readFile=readFile;function readFile(e,r,a){if(typeof r==="function")a=r,r=null;return go$readFile(e,r,a);function go$readFile(e,r,a,o){return t(e,r,(function(t){if(t&&(t.code==="EMFILE"||t.code==="ENFILE"))enqueue([go$readFile,[e,r,a],t,o||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var r=e.writeFile;e.writeFile=writeFile;function writeFile(e,t,a,o){if(typeof a==="function")o=a,a=null;return go$writeFile(e,t,a,o);function go$writeFile(e,t,a,o,s){return r(e,t,a,(function(r){if(r&&(r.code==="EMFILE"||r.code==="ENFILE"))enqueue([go$writeFile,[e,t,a,o],r,s||Date.now(),Date.now()]);else{if(typeof o==="function")o.apply(this,arguments)}}))}}var a=e.appendFile;if(a)e.appendFile=appendFile;function appendFile(e,t,r,o){if(typeof r==="function")o=r,r=null;return go$appendFile(e,t,r,o);function go$appendFile(e,t,r,o,s){return a(e,t,r,(function(a){if(a&&(a.code==="EMFILE"||a.code==="ENFILE"))enqueue([go$appendFile,[e,t,r,o],a,s||Date.now(),Date.now()]);else{if(typeof o==="function")o.apply(this,arguments)}}))}}var u=e.copyFile;if(u)e.copyFile=copyFile;function copyFile(e,t,r,a){if(typeof r==="function"){a=r;r=0}return go$copyFile(e,t,r,a);function go$copyFile(e,t,r,a,o){return u(e,t,r,(function(s){if(s&&(s.code==="EMFILE"||s.code==="ENFILE"))enqueue([go$copyFile,[e,t,r,a],s,o||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var c=e.readdir;e.readdir=readdir;function readdir(e,t,r){if(typeof t==="function")r=t,t=null;return go$readdir(e,t,r);function go$readdir(e,t,r,a){return c(e,t,(function(o,s){if(o&&(o.code==="EMFILE"||o.code==="ENFILE"))enqueue([go$readdir,[e,t,r],o,a||Date.now(),Date.now()]);else{if(s&&s.sort)s.sort();if(typeof r==="function")r.call(this,o,s)}}))}}if(process.version.substr(0,4)==="v0.8"){var d=s(e);ReadStream=d.ReadStream;WriteStream=d.WriteStream}var f=e.ReadStream;if(f){ReadStream.prototype=Object.create(f.prototype);ReadStream.prototype.open=ReadStream$open}var p=e.WriteStream;if(p){WriteStream.prototype=Object.create(p.prototype);WriteStream.prototype.open=WriteStream$open}Object.defineProperty(e,"ReadStream",{get:function(){return ReadStream},set:function(e){ReadStream=e},enumerable:true,configurable:true});Object.defineProperty(e,"WriteStream",{get:function(){return WriteStream},set:function(e){WriteStream=e},enumerable:true,configurable:true});var h=ReadStream;Object.defineProperty(e,"FileReadStream",{get:function(){return h},set:function(e){h=e},enumerable:true,configurable:true});var v=WriteStream;Object.defineProperty(e,"FileWriteStream",{get:function(){return v},set:function(e){v=e},enumerable:true,configurable:true});function ReadStream(e,t){if(this instanceof ReadStream)return f.apply(this,arguments),this;else return ReadStream.apply(Object.create(ReadStream.prototype),arguments)}function ReadStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){if(e.autoClose)e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r);e.read()}}))}function WriteStream(e,t){if(this instanceof WriteStream)return p.apply(this,arguments),this;else return WriteStream.apply(Object.create(WriteStream.prototype),arguments)}function WriteStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r)}}))}function createReadStream(t,r){return new e.ReadStream(t,r)}function createWriteStream(t,r){return new e.WriteStream(t,r)}var _=e.open;e.open=open;function open(e,t,r,a){if(typeof r==="function")a=r,r=null;return go$open(e,t,r,a);function go$open(e,t,r,a,o){return _(e,t,r,(function(s,u){if(s&&(s.code==="EMFILE"||s.code==="ENFILE"))enqueue([go$open,[e,t,r,a],s,o||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}return e}function enqueue(e){p("ENQUEUE",e[0].name,e[1]);a[d].push(e);retry()}var v;function resetQueue(){var e=Date.now();for(var t=0;t2){a[d][t][3]=e;a[d][t][4]=e}}retry()}function retry(){clearTimeout(v);v=undefined;if(a[d].length===0)return;var e=a[d].shift();var t=e[0];var r=e[1];var o=e[2];var s=e[3];var u=e[4];if(s===undefined){p("RETRY",t.name,r);t.apply(null,r)}else if(Date.now()-s>=6e4){p("TIMEOUT",t.name,r);var c=r.pop();if(typeof c==="function")c.call(null,o)}else{var f=Date.now()-u;var h=Math.max(u-s,1);var _=Math.min(h*1.2,100);if(f>=_){p("RETRY",t.name,r);t.apply(null,r.concat([s]))}else{a[d].push(e)}}if(v===undefined){v=setTimeout(retry,0)}}},7448:(e,t,r)=>{var a=r(2781).Stream;e.exports=legacy;function legacy(e){return{ReadStream:ReadStream,WriteStream:WriteStream};function ReadStream(t,r){if(!(this instanceof ReadStream))return new ReadStream(t,r);a.call(this);var o=this;this.path=t;this.fd=null;this.readable=true;this.paused=false;this.flags="r";this.mode=438;this.bufferSize=64*1024;r=r||{};var s=Object.keys(r);for(var u=0,c=s.length;uthis.end){throw new Error("start must be <= end")}this.pos=this.start}if(this.fd!==null){process.nextTick((function(){o._read()}));return}e.open(this.path,this.flags,this.mode,(function(e,t){if(e){o.emit("error",e);o.readable=false;return}o.fd=t;o.emit("open",t);o._read()}))}function WriteStream(t,r){if(!(this instanceof WriteStream))return new WriteStream(t,r);a.call(this);this.path=t;this.fd=null;this.writable=true;this.flags="w";this.encoding="binary";this.mode=438;this.bytesWritten=0;r=r||{};var o=Object.keys(r);for(var s=0,u=o.length;s= zero")}this.pos=this.start}this.busy=false;this._queue=[];if(this.fd===null){this._open=e.open;this._queue.push([this._open,this.path,this.flags,this.mode,undefined]);this.flush()}}}},8:(e,t,r)=>{var a=r(2057);var o=process.cwd;var s=null;var u=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!s)s=o.call(process);return s};try{process.cwd()}catch(e){}if(typeof process.chdir==="function"){var c=process.chdir;process.chdir=function(e){s=null;c.call(process,e)};if(Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,c)}e.exports=patch;function patch(e){if(a.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)){patchLchmod(e)}if(!e.lutimes){patchLutimes(e)}e.chown=chownFix(e.chown);e.fchown=chownFix(e.fchown);e.lchown=chownFix(e.lchown);e.chmod=chmodFix(e.chmod);e.fchmod=chmodFix(e.fchmod);e.lchmod=chmodFix(e.lchmod);e.chownSync=chownFixSync(e.chownSync);e.fchownSync=chownFixSync(e.fchownSync);e.lchownSync=chownFixSync(e.lchownSync);e.chmodSync=chmodFixSync(e.chmodSync);e.fchmodSync=chmodFixSync(e.fchmodSync);e.lchmodSync=chmodFixSync(e.lchmodSync);e.stat=statFix(e.stat);e.fstat=statFix(e.fstat);e.lstat=statFix(e.lstat);e.statSync=statFixSync(e.statSync);e.fstatSync=statFixSync(e.fstatSync);e.lstatSync=statFixSync(e.lstatSync);if(!e.lchmod){e.lchmod=function(e,t,r){if(r)process.nextTick(r)};e.lchmodSync=function(){}}if(!e.lchown){e.lchown=function(e,t,r,a){if(a)process.nextTick(a)};e.lchownSync=function(){}}if(u==="win32"){e.rename=function(t){return function(r,a,o){var s=Date.now();var u=0;t(r,a,(function CB(c){if(c&&(c.code==="EACCES"||c.code==="EPERM")&&Date.now()-s<6e4){setTimeout((function(){e.stat(a,(function(e,s){if(e&&e.code==="ENOENT")t(r,a,CB);else o(c)}))}),u);if(u<100)u+=10;return}if(o)o(c)}))}}(e.rename)}e.read=function(t){function read(r,a,o,s,u,c){var d;if(c&&typeof c==="function"){var f=0;d=function(p,h,v){if(p&&p.code==="EAGAIN"&&f<10){f++;return t.call(e,r,a,o,s,u,d)}c.apply(this,arguments)}}return t.call(e,r,a,o,s,u,d)}if(Object.setPrototypeOf)Object.setPrototypeOf(read,t);return read}(e.read);e.readSync=function(t){return function(r,a,o,s,u){var c=0;while(true){try{return t.call(e,r,a,o,s,u)}catch(e){if(e.code==="EAGAIN"&&c<10){c++;continue}throw e}}}}(e.readSync);function patchLchmod(e){e.lchmod=function(t,r,o){e.open(t,a.O_WRONLY|a.O_SYMLINK,r,(function(t,a){if(t){if(o)o(t);return}e.fchmod(a,r,(function(t){e.close(a,(function(e){if(o)o(t||e)}))}))}))};e.lchmodSync=function(t,r){var o=e.openSync(t,a.O_WRONLY|a.O_SYMLINK,r);var s=true;var u;try{u=e.fchmodSync(o,r);s=false}finally{if(s){try{e.closeSync(o)}catch(e){}}else{e.closeSync(o)}}return u}}function patchLutimes(e){if(a.hasOwnProperty("O_SYMLINK")){e.lutimes=function(t,r,o,s){e.open(t,a.O_SYMLINK,(function(t,a){if(t){if(s)s(t);return}e.futimes(a,r,o,(function(t){e.close(a,(function(e){if(s)s(t||e)}))}))}))};e.lutimesSync=function(t,r,o){var s=e.openSync(t,a.O_SYMLINK);var u;var c=true;try{u=e.futimesSync(s,r,o);c=false}finally{if(c){try{e.closeSync(s)}catch(e){}}else{e.closeSync(s)}}return u}}else{e.lutimes=function(e,t,r,a){if(a)process.nextTick(a)};e.lutimesSync=function(){}}}function chmodFix(t){if(!t)return t;return function(r,a,o){return t.call(e,r,a,(function(e){if(chownErOk(e))e=null;if(o)o.apply(this,arguments)}))}}function chmodFixSync(t){if(!t)return t;return function(r,a){try{return t.call(e,r,a)}catch(e){if(!chownErOk(e))throw e}}}function chownFix(t){if(!t)return t;return function(r,a,o,s){return t.call(e,r,a,o,(function(e){if(chownErOk(e))e=null;if(s)s.apply(this,arguments)}))}}function chownFixSync(t){if(!t)return t;return function(r,a,o){try{return t.call(e,r,a,o)}catch(e){if(!chownErOk(e))throw e}}}function statFix(t){if(!t)return t;return function(r,a,o){if(typeof a==="function"){o=a;a=null}function callback(e,t){if(t){if(t.uid<0)t.uid+=4294967296;if(t.gid<0)t.gid+=4294967296}if(o)o.apply(this,arguments)}return a?t.call(e,r,a,callback):t.call(e,r,callback)}}function statFixSync(t){if(!t)return t;return function(r,a){var o=a?t.call(e,r,a):t.call(e,r);if(o){if(o.uid<0)o.uid+=4294967296;if(o.gid<0)o.gid+=4294967296}return o}}function chownErOk(e){if(!e)return true;if(e.code==="ENOSYS")return true;var t=!process.getuid||process.getuid()!==0;if(t){if(e.code==="EINVAL"||e.code==="EPERM")return true}return false}}},4967:(e,t,r)=>{"use strict";var a=r(2037);var o=e.exports=function(){if(a.type()=="Windows_NT"){return false}var e=/UTF-?8$/i;var t=process.env.LC_ALL||process.env.LC_CTYPE||process.env.LANG;return e.test(t)}},3193:(e,t,r)=>{try{var a=r(3837);if(typeof a.inherits!=="function")throw"";e.exports=a.inherits}catch(t){e.exports=r(1140)}},1140:e=>{if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},7787:(e,t,r)=>{"use strict";var a=r(2726);e.exports=function(e){if(a(e)){return false}if(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false}},7394:e=>{"use strict";e.exports=e=>{if(Number.isNaN(e)){return false}if(e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false}},6116:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return t.call(e)=="[object Array]"}},8526:(module,__unused_webpack_exports,__nccwpck_require__)=>{var fs=__nccwpck_require__(7147);var path=__nccwpck_require__(1017);var os=__nccwpck_require__(2037);var runtimeRequire=true?eval("require"):0;var vars=process.config&&process.config.variables||{};var prebuildsOnly=!!process.env.PREBUILDS_ONLY;var abi=process.versions.modules;var runtime=isElectron()?"electron":"node";var arch=os.arch();var platform=os.platform();var libc=process.env.LIBC||(isAlpine(platform)?"musl":"glibc");var armv=process.env.ARM_VERSION||(arch==="arm64"?"8":vars.arm_version)||"";var uv=(process.versions.uv||"").split(".")[0];module.exports=load;function load(e){return runtimeRequire(load.path(e))}load.path=function(e){e=path.resolve(e||".");try{var t=runtimeRequire(path.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");if(process.env[t+"_PREBUILD"])e=process.env[t+"_PREBUILD"]}catch(e){}if(!prebuildsOnly){var r=getFirst(path.join(e,"build/Release"),matchBuild);if(r)return r;var a=getFirst(path.join(e,"build/Debug"),matchBuild);if(a)return a}var o=resolve(e);if(o)return o;var s=resolve(path.dirname(process.execPath));if(s)return s;var u=["platform="+platform,"arch="+arch,"runtime="+runtime,"abi="+abi,"uv="+uv,armv?"armv="+armv:"","libc="+libc,"node="+process.versions.node,process.versions&&process.versions.electron?"electron="+process.versions.electron:"",true?"webpack=true":0].filter(Boolean).join(" ");throw new Error("No native build was found for "+u+"\n loaded from: "+e+"\n");function resolve(e){var t=path.join(e,"prebuilds",platform+"-"+arch);var r=readdirSync(t).map(parseTags);var a=r.filter(matchTags(runtime,abi));var o=a.sort(compareTags(runtime))[0];if(o)return path.join(t,o.file)}};function readdirSync(e){try{return fs.readdirSync(e)}catch(e){return[]}}function getFirst(e,t){var r=readdirSync(e).filter(t);return r[0]&&path.join(e,r[0])}function matchBuild(e){return/\.node$/.test(e)}function parseTags(e){var t=e.split(".");var r=t.pop();var a={file:e,specificity:0};if(r!=="node")return;for(var o=0;or.specificity?-1:1}else{return 0}}}function isElectron(){if(process.versions&&process.versions.electron)return true;if(process.env.ELECTRON_RUN_AS_NODE)return true;return typeof window!=="undefined"&&window.process&&window.process.type==="renderer"}function isAlpine(e){return e==="linux"&&fs.existsSync("/etc/alpine-release")}load.parseTags=parseTags;load.matchTags=matchTags;load.compareTags=compareTags},5841:(e,t,r)=>{"use strict";var a=r(7147);var o=r(1517);var s=r(7081);e.exports=t;var u=process.version.substr(1).replace(/-.*$/,"").split(".").map((function(e){return+e}));var c=["build","clean","configure","package","publish","reveal","testbinary","testpackage","unpublish"];var d="napi_build_version=";e.exports.get_napi_version=function(e){var t=process.versions.napi;if(!t){if(u[0]===9&&u[1]>=3)t=2;else if(u[0]===8)t=1}return t};e.exports.get_napi_version_as_string=function(t){var r=e.exports.get_napi_version(t);return r?""+r:""};e.exports.validate_package_json=function(t,r){var a=t.binary;var o=pathOK(a.module_path);var s=pathOK(a.remote_path);var u=pathOK(a.package_name);var c=e.exports.get_napi_build_versions(t,r,true);var d=e.exports.get_napi_build_versions_raw(t);if(c){c.forEach((function(e){if(!(parseInt(e,10)===e&&e>0)){throw new Error("All values specified in napi_versions must be positive integers.")}}))}if(c&&(!o||!s&&!u)){throw new Error("When napi_versions is specified; module_path and either remote_path or "+"package_name must contain the substitution string '{napi_build_version}`.")}if((o||s||u)&&!d){throw new Error("When the substitution string '{napi_build_version}` is specified in "+"module_path, remote_path, or package_name; napi_versions must also be specified.")}if(c&&!e.exports.get_best_napi_build_version(t,r)&&e.exports.build_napi_only(t)){throw new Error("The N-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports N-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}if(d&&!c&&e.exports.build_napi_only(t)){throw new Error("The N-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports N-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}};function pathOK(e){return e&&(e.indexOf("{napi_build_version}")!==-1||e.indexOf("{node_napi_label}")!==-1)}e.exports.expand_commands=function(t,r,a){var o=[];var s=e.exports.get_napi_build_versions(t,r);a.forEach((function(a){if(s&&a.name==="install"){var u=e.exports.get_best_napi_build_version(t,r);var f=u?[d+u]:[];o.push({name:a.name,args:f})}else if(s&&c.indexOf(a.name)!==-1){s.forEach((function(e){var t=a.args.slice();t.push(d+e);o.push({name:a.name,args:t})}))}else{o.push(a)}}));return o};e.exports.get_napi_build_versions=function(t,r,a){var o=[];var u=e.exports.get_napi_version(r?r.target:undefined);if(t.binary&&t.binary.napi_versions){t.binary.napi_versions.forEach((function(e){var t=o.indexOf(e)!==-1;if(!t&&u&&e<=u){o.push(e)}else if(a&&!t&&u){s.info("This Node instance does not support builds for N-API version",e)}}))}if(r&&r["build-latest-napi-version-only"]){var c=0;o.forEach((function(e){if(e>c)c=e}));o=c?[c]:[]}return o.length?o:undefined};e.exports.get_napi_build_versions_raw=function(e){var t=[];if(e.binary&&e.binary.napi_versions){e.binary.napi_versions.forEach((function(e){if(t.indexOf(e)===-1){t.push(e)}}))}return t.length?t:undefined};e.exports.get_command_arg=function(e){return d+e};e.exports.get_napi_build_version_from_command_args=function(e){for(var t=0;ta&&e<=s){a=e}}))}return a===0?undefined:a};e.exports.build_napi_only=function(e){return e.binary&&e.binary.package_name&&e.binary.package_name.indexOf("{node_napi_label}")===-1}},7595:(e,t,r)=>{"use strict";e.exports=t;var a=r(1017);var o=r(7849);var s=r(7310);var u=r(5092);var c=r(5841);var d;if(process.env.NODE_PRE_GYP_ABI_CROSSWALK){d=require(process.env.NODE_PRE_GYP_ABI_CROSSWALK)}else{d=r(1929)}var f={};Object.keys(d).forEach((function(e){var t=e.split(".")[0];if(!f[t]){f[t]=e}}));function get_electron_abi(e,t){if(!e){throw new Error("get_electron_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if electron is the target.")}var r=o.parse(t);return e+"-v"+r.major+"."+r.minor}e.exports.get_electron_abi=get_electron_abi;function get_node_webkit_abi(e,t){if(!e){throw new Error("get_node_webkit_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if node-webkit is the target.")}return e+"-v"+t}e.exports.get_node_webkit_abi=get_node_webkit_abi;function get_node_abi(e,t){if(!e){throw new Error("get_node_abi requires valid runtime arg")}if(!t){throw new Error("get_node_abi requires valid process.versions object")}var r=o.parse(t.node);if(r.major===0&&r.minor%2){return e+"-v"+t.node}else{return t.modules?e+"-v"+ +t.modules:"v8-"+t.v8.split(".").slice(0,2).join(".")}}e.exports.get_node_abi=get_node_abi;function get_runtime_abi(e,t){if(!e){throw new Error("get_runtime_abi requires valid runtime arg")}if(e==="node-webkit"){return get_node_webkit_abi(e,t||process.versions["node-webkit"])}else if(e==="electron"){return get_electron_abi(e,t||process.versions.electron)}else{if(e!="node"){throw new Error("Unknown Runtime: '"+e+"'")}if(!t){return get_node_abi(e,process.versions)}else{var r;if(d[t]){r=d[t]}else{var a=t.split(".").map((function(e){return+e}));if(a.length!=3){throw new Error("Unknown target version: "+t)}var o=a[0];var s=a[1];var u=a[2];if(o===1){while(true){if(s>0)--s;if(u>0)--u;var c=""+o+"."+s+"."+u;if(d[c]){r=d[c];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+c+" as ABI compatible target");break}if(s===0&&u===0){break}}}else if(o>=2){if(f[o]){r=d[f[o]];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+f[o]+" as ABI compatible target")}}else if(o===0){if(a[1]%2===0){while(--u>0){var p=""+o+"."+s+"."+u;if(d[p]){r=d[p];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+p+" as ABI compatible target");break}}}}}if(!r){throw new Error("Unsupported target version: "+t)}var h={node:t,v8:r.v8+".0",modules:r.node_abi>1?r.node_abi:undefined};return get_node_abi(e,h)}}}e.exports.get_runtime_abi=get_runtime_abi;var p=["module_name","module_path","host"];function validate_config(e,t){var r=e.name+" package.json is not node-pre-gyp ready:\n";var a=[];if(!e.main){a.push("main")}if(!e.version){a.push("version")}if(!e.name){a.push("name")}if(!e.binary){a.push("binary")}var o=e.binary;p.forEach((function(e){if(a.indexOf("binary")>-1){a.pop("binary")}if(!o||o[e]===undefined||o[e]===""){a.push("binary."+e)}}));if(a.length>=1){throw new Error(r+"package.json must declare these properties: \n"+a.join("\n"))}if(o){var u=s.parse(o.host).protocol;if(u==="http:"){throw new Error("'host' protocol ("+u+") is invalid - only 'https:' is accepted")}}c.validate_package_json(e,t)}e.exports.validate_config=validate_config;function eval_template(e,t){Object.keys(t).forEach((function(r){var a="{"+r+"}";while(e.indexOf(a)>-1){e=e.replace(a,t[r])}}));return e}function fix_slashes(e){if(e.slice(-1)!="/"){return e+"/"}return e}function drop_double_slashes(e){return e.replace(/\/\//g,"/")}function get_process_runtime(e){var t="node";if(e["node-webkit"]){t="node-webkit"}else if(e.electron){t="electron"}return t}e.exports.get_process_runtime=get_process_runtime;var h="{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz";var v="";e.exports.evaluate=function(e,t,r){t=t||{};validate_config(e,t);var d=e.version;var f=o.parse(d);var p=t.runtime||get_process_runtime(process.versions);var _={name:e.name,configuration:Boolean(t.debug)?"Debug":"Release",debug:t.debug,module_name:e.binary.module_name,version:f.version,prerelease:f.prerelease.length?f.prerelease.join("."):"",build:f.build.length?f.build.join("."):"",major:f.major,minor:f.minor,patch:f.patch,runtime:p,node_abi:get_runtime_abi(p,t.target),node_abi_napi:c.get_napi_version(t.target)?"napi":get_runtime_abi(p,t.target),napi_version:c.get_napi_version(t.target),napi_build_version:r||"",node_napi_label:r?"napi-v"+r:get_runtime_abi(p,t.target),target:t.target||"",platform:t.target_platform||process.platform,target_platform:t.target_platform||process.platform,arch:t.target_arch||process.arch,target_arch:t.target_arch||process.arch,libc:t.target_libc||u.family||"unknown",module_main:e.main,toolset:t.toolset||""};var g=process.env["npm_config_"+_.module_name+"_binary_host_mirror"]||e.binary.host;_.host=fix_slashes(eval_template(g,_));_.module_path=eval_template(e.binary.module_path,_);if(t.module_root){_.module_path=a.join(t.module_root,_.module_path)}else{_.module_path=a.resolve(_.module_path)}_.module=a.join(_.module_path,_.module_name+".node");_.remote_path=e.binary.remote_path?drop_double_slashes(fix_slashes(eval_template(e.binary.remote_path,_))):v;var y=e.binary.package_name?e.binary.package_name:h;_.package_name=eval_template(y,_);_.staged_tarball=a.join("build/stage",_.remote_path,_.package_name);_.hosted_path=s.resolve(_.host,_.remote_path);_.hosted_tarball=s.resolve(_.hosted_path,_.package_name);return _}},6444:(e,t,r)=>{var a=process.env.DEBUG_NOPT||process.env.NOPT_DEBUG?function(){console.error.apply(console,arguments)}:function(){};var o=r(7310),s=r(1017),u=r(2781).Stream,c=r(8529),d=r(2037);e.exports=t=nopt;t.clean=clean;t.typeDefs={String:{type:String,validate:validateString},Boolean:{type:Boolean,validate:validateBoolean},url:{type:o,validate:validateUrl},Number:{type:Number,validate:validateNumber},path:{type:s,validate:validatePath},Stream:{type:u,validate:validateStream},Date:{type:Date,validate:validateDate}};function nopt(e,r,o,s){o=o||process.argv;e=e||{};r=r||{};if(typeof s!=="number")s=2;a(e,r,o,s);o=o.slice(s);var u={},c,d={remain:[],cooked:o,original:o.slice(0)};parse(o,u,d.remain,e,r);clean(u,e,t.typeDefs);u.argv=d;Object.defineProperty(u.argv,"toString",{value:function(){return this.original.map(JSON.stringify).join(" ")},enumerable:false});return u}function clean(e,r,o){o=o||t.typeDefs;var s={},u=[false,true,null,String,Array];Object.keys(e).forEach((function(c){if(c==="argv")return;var d=e[c],f=Array.isArray(d),p=r[c];if(!f)d=[d];if(!p)p=u;if(p===Array)p=u.concat(Array);if(!Array.isArray(p))p=[p];a("val=%j",d);a("types=",p);d=d.map((function(u){if(typeof u==="string"){a("string %j",u);u=u.trim();if(u==="null"&&~p.indexOf(null)||u==="true"&&(~p.indexOf(true)||~p.indexOf(Boolean))||u==="false"&&(~p.indexOf(false)||~p.indexOf(Boolean))){u=JSON.parse(u);a("jsonable %j",u)}else if(~p.indexOf(Number)&&!isNaN(u)){a("convert to number",u);u=+u}else if(~p.indexOf(Date)&&!isNaN(Date.parse(u))){a("convert to date",u);u=new Date(u)}}if(!r.hasOwnProperty(c)){return u}if(u===false&&~p.indexOf(null)&&!(~p.indexOf(false)||~p.indexOf(Boolean))){u=null}var d={};d[c]=u;a("prevalidated val",d,u,r[c]);if(!validate(d,c,u,r[c],o)){if(t.invalidHandler){t.invalidHandler(c,u,r[c],e)}else if(t.invalidHandler!==false){a("invalid: "+c+"="+u,r[c])}return s}a("validated val",d,u,r[c]);return d[c]})).filter((function(e){return e!==s}));if(!d.length&&p.indexOf(Array)===-1){a("VAL HAS NO LENGTH, DELETE IT",d,c,p.indexOf(Array));delete e[c]}else if(f){a(f,e[c],d);e[c]=d}else e[c]=d[0];a("k=%s val=%j",c,d,e[c])}))}function validateString(e,t,r){e[t]=String(r)}function validatePath(e,t,r){if(r===true)return false;if(r===null)return true;r=String(r);var a=process.platform==="win32",o=a?/^~(\/|\\)/:/^~\//,u=d.homedir();if(u&&r.match(o)){e[t]=s.resolve(u,r.substr(2))}else{e[t]=s.resolve(r)}return true}function validateNumber(e,t,r){a("validate Number %j %j %j",t,r,isNaN(r));if(isNaN(r))return false;e[t]=+r}function validateDate(e,t,r){var o=Date.parse(r);a("validate Date %j %j %j",t,r,o);if(isNaN(o))return false;e[t]=new Date(r)}function validateBoolean(e,t,r){if(r instanceof Boolean)r=r.valueOf();else if(typeof r==="string"){if(!isNaN(r))r=!!+r;else if(r==="null"||r==="false")r=false;else r=true}else r=!!r;e[t]=r}function validateUrl(e,t,r){r=o.parse(String(r));if(!r.host)return false;e[t]=r.href}function validateStream(e,t,r){if(!(r instanceof u))return false;e[t]=r}function validate(e,t,r,o,s){if(Array.isArray(o)){for(var u=0,c=o.length;u1){var _=h.indexOf("=");if(_>-1){v=true;var g=h.substr(_+1);h=h.substr(0,_);e.splice(p,1,h,g)}var y=resolveShort(h,s,f,d);a("arg=%j shRes=%j",h,y);if(y){a(h,y);e.splice.apply(e,[p,1].concat(y));if(h!==y[0]){p--;continue}}h=h.replace(/^-+/,"");var m=null;while(h.toLowerCase().indexOf("no-")===0){m=!m;h=h.substr(3)}if(d[h])h=d[h];var w=o[h];var x=Array.isArray(w);if(x&&w.length===1){x=false;w=w[0]}var E=w===Array||x&&w.indexOf(Array)!==-1;if(!o.hasOwnProperty(h)&&t.hasOwnProperty(h)){if(!Array.isArray(t[h]))t[h]=[t[h]];E=true}var S,k=e[p+1];var R=typeof m==="boolean"||w===Boolean||x&&w.indexOf(Boolean)!==-1||typeof w==="undefined"&&!v||k==="false"&&(w===null||x&&~w.indexOf(null));if(R){S=!m;if(k==="true"||k==="false"){S=JSON.parse(k);k=null;if(m)S=!S;p++}if(x&&k){if(~w.indexOf(k)){S=k;p++}else if(k==="null"&&~w.indexOf(null)){S=null;p++}else if(!k.match(/^-{2,}[^-]/)&&!isNaN(k)&&~w.indexOf(Number)){S=+k;p++}else if(!k.match(/^-[^-]/)&&~w.indexOf(String)){S=k;p++}}if(E)(t[h]=t[h]||[]).push(S);else t[h]=S;continue}if(w===String){if(k===undefined){k=""}else if(k.match(/^-{1,2}[^-]+/)){k="";p--}}if(k&&k.match(/^-{2,}$/)){k=undefined;p--}S=k===undefined?true:k;if(E)(t[h]=t[h]||[]).push(S);else t[h]=S;p++;continue}r.push(h)}}function resolveShort(e,t,r,o){e=e.replace(/^-+/,"");if(o[e]===e)return null;if(t[e]){if(t[e]&&!Array.isArray(t[e]))t[e]=t[e].split(/\s+/);return t[e]}var s=t.___singles;if(!s){s=Object.keys(t).filter((function(e){return e.length===1})).reduce((function(e,t){e[t]=true;return e}),{});t.___singles=s;a("shorthand singles",s)}var u=e.split("").filter((function(e){return s[e]}));if(u.join("")===e)return u.map((function(e){return t[e]})).reduce((function(e,t){return e.concat(t)}),[]);if(o[e]&&!t[e])return null;if(r[e])e=r[e];if(t[e]&&!Array.isArray(t[e]))t[e]=t[e].split(/\s+/);return t[e]}},7081:(e,t,r)=>{"use strict";var a=r(5671);var o=r(4398);var s=r(2361).EventEmitter;var u=t=e.exports=new s;var c=r(3837);var d=r(5354);var f=r(8061);d(true);var p=process.stderr;Object.defineProperty(u,"stream",{set:function(e){p=e;if(this.gauge)this.gauge.setWriteTo(p,p)},get:function(){return p}});var h;u.useColor=function(){return h!=null?h:p.isTTY};u.enableColor=function(){h=true;this.gauge.setTheme({hasColor:h,hasUnicode:v})};u.disableColor=function(){h=false;this.gauge.setTheme({hasColor:h,hasUnicode:v})};u.level="info";u.gauge=new o(p,{enabled:false,theme:{hasColor:u.useColor()},template:[{type:"progressbar",length:20},{type:"activityIndicator",kerning:1,length:1},{type:"section",default:""},":",{type:"logline",kerning:1,default:""}]});u.tracker=new a.TrackerGroup;u.progressEnabled=u.gauge.isEnabled();var v;u.enableUnicode=function(){v=true;this.gauge.setTheme({hasColor:this.useColor(),hasUnicode:v})};u.disableUnicode=function(){v=false;this.gauge.setTheme({hasColor:this.useColor(),hasUnicode:v})};u.setGaugeThemeset=function(e){this.gauge.setThemeset(e)};u.setGaugeTemplate=function(e){this.gauge.setTemplate(e)};u.enableProgress=function(){if(this.progressEnabled)return;this.progressEnabled=true;this.tracker.on("change",this.showProgress);if(this._pause)return;this.gauge.enable()};u.disableProgress=function(){if(!this.progressEnabled)return;this.progressEnabled=false;this.tracker.removeListener("change",this.showProgress);this.gauge.disable()};var _=["newGroup","newItem","newStream"];var mixinLog=function(e){Object.keys(u).forEach((function(t){if(t[0]==="_")return;if(_.filter((function(e){return e===t})).length)return;if(e[t])return;if(typeof u[t]!=="function")return;var r=u[t];e[t]=function(){return r.apply(u,arguments)}}));if(e instanceof a.TrackerGroup){_.forEach((function(t){var r=e[t];e[t]=function(){return mixinLog(r.apply(e,arguments))}}))}return e};_.forEach((function(e){u[e]=function(){return mixinLog(this.tracker[e].apply(this.tracker,arguments))}}));u.clearProgress=function(e){if(!this.progressEnabled)return e&&process.nextTick(e);this.gauge.hide(e)};u.showProgress=function(e,t){if(!this.progressEnabled)return;var r={};if(e)r.section=e;var a=u.record[u.record.length-1];if(a){r.subsection=a.prefix;var o=u.disp[a.level]||a.level;var s=this._format(o,u.style[a.level]);if(a.prefix)s+=" "+this._format(a.prefix,this.prefixStyle);s+=" "+a.message.split(/\r?\n/)[0];r.logline=s}r.completed=t||this.tracker.completed();this.gauge.show(r)}.bind(u);u.pause=function(){this._paused=true;if(this.progressEnabled)this.gauge.disable()};u.resume=function(){if(!this._paused)return;this._paused=false;var e=this._buffer;this._buffer=[];e.forEach((function(e){this.emitLog(e)}),this);if(this.progressEnabled)this.gauge.enable()};u._buffer=[];var g=0;u.record=[];u.maxRecordSize=1e4;u.log=function(e,t,r){var a=this.levels[e];if(a===undefined){return this.emit("error",new Error(c.format("Undefined log level: %j",e)))}var o=new Array(arguments.length-2);var s=null;for(var u=2;up/10){var v=Math.floor(p*.9);this.record=this.record.slice(-1*v)}this.emitLog(f)}.bind(u);u.emitLog=function(e){if(this._paused){this._buffer.push(e);return}if(this.progressEnabled)this.gauge.pulse(e.prefix);var t=this.levels[e.level];if(t===undefined)return;if(t0&&!isFinite(t))return;var r=u.disp[e.level]!=null?u.disp[e.level]:e.level;this.clearProgress();e.message.split(/\r?\n/).forEach((function(t){if(this.heading){this.write(this.heading,this.headingStyle);this.write(" ")}this.write(r,u.style[e.level]);var a=e.prefix||"";if(a)this.write(" ");this.write(a,this.prefixStyle);this.write(" "+t+"\n")}),this);this.showProgress()};u._format=function(e,t){if(!p)return;var r="";if(this.useColor()){t=t||{};var a=[];if(t.fg)a.push(t.fg);if(t.bg)a.push("bg"+t.bg[0].toUpperCase()+t.bg.slice(1));if(t.bold)a.push("bold");if(t.underline)a.push("underline");if(t.inverse)a.push("inverse");if(a.length)r+=f.color(a);if(t.beep)r+=f.beep()}r+=e;if(this.useColor()){r+=f.color("reset")}return r};u.write=function(e,t){if(!p)return;p.write(this._format(e,t))};u.addLevel=function(e,t,r,a){if(a==null)a=e;this.levels[e]=t;this.style[e]=r;if(!this[e]){this[e]=function(){var t=new Array(arguments.length+1);t[0]=e;for(var r=0;r{"use strict";e.exports=Number.isNaN||function(e){return e!==e}},3902:e=>{"use strict"; +(()=>{var __webpack_modules__={234:(e,t,r)=>{"use strict";e.exports=t;t.mockS3Http=r(6476).get_mockS3Http();t.mockS3Http("on");const a=t.mockS3Http("get");const o=r(7147);const s=r(1017);const u=r(6444);const c=r(7081);c.disableProgress();const d=r(251);const f=r(2361).EventEmitter;const p=r(3837).inherits;const h=["clean","install","reinstall","build","rebuild","package","testpackage","publish","unpublish","info","testbinary","reveal","configure"];const v={};c.heading="node-pre-gyp";if(a){c.warn(`mocking s3 to ${process.env.node_pre_gyp_mock_s3}`)}Object.defineProperty(t,"find",{get:function(){return r(846).find},enumerable:true});function Run({package_json_path:e="./package.json",argv:t}){this.package_json_path=e;this.commands={};const r=this;h.forEach((e=>{r.commands[e]=function(t,a){c.verbose("command",e,t);return require("./"+e)(r,t,a)}}));this.parseArgv(t);this.binaryHostSet=false}p(Run,f);t.Run=Run;const _=Run.prototype;_.package=r(7399);_.configDefs={help:Boolean,arch:String,debug:Boolean,directory:String,proxy:String,loglevel:String};_.shorthands={release:"--no-debug",C:"--directory",debug:"--debug",j:"--jobs",silent:"--loglevel=silent",silly:"--loglevel=silly",verbose:"--loglevel=verbose"};_.aliases=v;_.parseArgv=function parseOpts(e){this.opts=u(this.configDefs,this.shorthands,e);this.argv=this.opts.argv.remain.slice();const t=this.todo=[];e=this.argv.map((e=>{if(e in this.aliases){e=this.aliases[e]}return e}));e.slice().forEach((r=>{if(r in this.commands){const a=e.splice(0,e.indexOf(r));e.shift();if(t.length>0){t[t.length-1].args=a}t.push({name:r,args:[]})}}));if(t.length>0){t[t.length-1].args=e.splice(0)}let r=this.package_json_path;if(this.opts.directory){r=s.join(this.opts.directory,r)}this.package_json=JSON.parse(o.readFileSync(r));this.todo=d.expand_commands(this.package_json,this.opts,t);const a="npm_config_";Object.keys(process.env).forEach((e=>{if(e.indexOf(a)!==0)return;const t=process.env[e];if(e===a+"loglevel"){c.level=t}else{e=e.substring(a.length);if(e==="argv"){if(this.opts.argv&&this.opts.argv.remain&&this.opts.argv.remain.length){}else{this.opts[e]=t}}else{this.opts[e]=t}}}));if(this.opts.loglevel){c.level=this.opts.loglevel}c.resume()};_.setBinaryHostProperty=function(e){if(this.binaryHostSet){return this.package_json.binary.host}const t=this.package_json;if(!t||!t.binary||t.binary.host){return""}if(!t.binary.staging_host||!t.binary.production_host){return""}let r="production_host";if(e==="publish"){r="staging_host"}const a=process.env.node_pre_gyp_s3_host;if(a==="staging"||a==="production"){r=`${a}_host`}else if(this.opts["s3_host"]==="staging"||this.opts["s3_host"]==="production"){r=`${this.opts["s3_host"]}_host`}else if(this.opts["s3_host"]||a){throw new Error(`invalid s3_host ${this.opts["s3_host"]||a}`)}t.binary.host=t.binary[r];this.binaryHostSet=true;return t.binary.host};_.usage=function usage(){const e=[""," Usage: node-pre-gyp [options]",""," where is one of:",h.map((e=>" - "+e+" - "+require("./"+e).usage)).join("\n"),"","node-pre-gyp@"+this.version+" "+s.resolve(__dirname,".."),"node@"+process.versions.node].join("\n");return e};Object.defineProperty(_,"version",{get:function(){return this.package.version},enumerable:true})},846:(e,t,r)=>{"use strict";const a=r(234);const o=r(2998);const s=r(251);const u=r(7147).existsSync||r(1017).existsSync;const c=r(1017);e.exports=t;t.usage="Finds the require path for the node-pre-gyp installed module";t.validate=function(e,t){o.validate_config(e,t)};t.find=function(e,t){if(!u(e)){throw new Error(e+"does not exist")}const r=new a.Run({package_json_path:e,argv:process.argv});r.setBinaryHostProperty();const d=r.package_json;o.validate_config(d,t);let f;if(s.get_napi_build_versions(d,t)){f=s.get_best_napi_build_version(d,t)}t=t||{};if(!t.module_root)t.module_root=c.dirname(e);const p=o.evaluate(d,t,f);return p.module}},251:(e,t,r)=>{"use strict";const a=r(7147);e.exports=t;const o=process.version.substr(1).replace(/-.*$/,"").split(".").map((e=>+e));const s=["build","clean","configure","package","publish","reveal","testbinary","testpackage","unpublish"];const u="napi_build_version=";e.exports.get_napi_version=function(){let e=process.versions.napi;if(!e){if(o[0]===9&&o[1]>=3)e=2;else if(o[0]===8)e=1}return e};e.exports.get_napi_version_as_string=function(t){const r=e.exports.get_napi_version(t);return r?""+r:""};e.exports.validate_package_json=function(t,r){const a=t.binary;const o=pathOK(a.module_path);const s=pathOK(a.remote_path);const u=pathOK(a.package_name);const c=e.exports.get_napi_build_versions(t,r,true);const d=e.exports.get_napi_build_versions_raw(t);if(c){c.forEach((e=>{if(!(parseInt(e,10)===e&&e>0)){throw new Error("All values specified in napi_versions must be positive integers.")}}))}if(c&&(!o||!s&&!u)){throw new Error("When napi_versions is specified; module_path and either remote_path or "+"package_name must contain the substitution string '{napi_build_version}`.")}if((o||s||u)&&!d){throw new Error("When the substitution string '{napi_build_version}` is specified in "+"module_path, remote_path, or package_name; napi_versions must also be specified.")}if(c&&!e.exports.get_best_napi_build_version(t,r)&&e.exports.build_napi_only(t)){throw new Error("The Node-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports Node-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}if(d&&!c&&e.exports.build_napi_only(t)){throw new Error("The Node-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports Node-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}};function pathOK(e){return e&&(e.indexOf("{napi_build_version}")!==-1||e.indexOf("{node_napi_label}")!==-1)}e.exports.expand_commands=function(t,r,a){const o=[];const c=e.exports.get_napi_build_versions(t,r);a.forEach((a=>{if(c&&a.name==="install"){const s=e.exports.get_best_napi_build_version(t,r);const c=s?[u+s]:[];o.push({name:a.name,args:c})}else if(c&&s.indexOf(a.name)!==-1){c.forEach((e=>{const t=a.args.slice();t.push(u+e);o.push({name:a.name,args:t})}))}else{o.push(a)}}));return o};e.exports.get_napi_build_versions=function(t,a,o){const s=r(7081);let u=[];const c=e.exports.get_napi_version(a?a.target:undefined);if(t.binary&&t.binary.napi_versions){t.binary.napi_versions.forEach((e=>{const t=u.indexOf(e)!==-1;if(!t&&c&&e<=c){u.push(e)}else if(o&&!t&&c){s.info("This Node instance does not support builds for Node-API version",e)}}))}if(a&&a["build-latest-napi-version-only"]){let e=0;u.forEach((t=>{if(t>e)e=t}));u=e?[e]:[]}return u.length?u:undefined};e.exports.get_napi_build_versions_raw=function(e){const t=[];if(e.binary&&e.binary.napi_versions){e.binary.napi_versions.forEach((e=>{if(t.indexOf(e)===-1){t.push(e)}}))}return t.length?t:undefined};e.exports.get_command_arg=function(e){return u+e};e.exports.get_napi_build_version_from_command_args=function(e){for(let t=0;t{if(e>a&&e<=t){a=e}}))}return a===0?undefined:a};e.exports.build_napi_only=function(e){return e.binary&&e.binary.package_name&&e.binary.package_name.indexOf("{node_napi_label}")===-1}},6476:(e,t,r)=>{"use strict";e.exports=t;const a=r(7310);const o=r(7147);const s=r(1017);e.exports.detect=function(e,t){const r=e.hosted_path;const o=a.parse(r);t.prefix=!o.pathname||o.pathname==="/"?"":o.pathname.replace("/","");if(e.bucket&&e.region){t.bucket=e.bucket;t.region=e.region;t.endpoint=e.host;t.s3ForcePathStyle=e.s3ForcePathStyle}else{const e=o.hostname.split(".s3");const r=e[0];if(!r){return}if(!t.bucket){t.bucket=r}if(!t.region){const r=e[1].slice(1).split(".")[0];if(r==="amazonaws"){t.region="us-east-1"}else{t.region=r}}}};e.exports.get_s3=function(e){if(process.env.node_pre_gyp_mock_s3){const e=r(3458);const t=r(2037);e.config.basePath=`${t.tmpdir()}/mock`;const a=e.S3();const wcb=e=>(t,...r)=>{if(t&&t.code==="ENOENT"){t.code="NotFound"}return e(t,...r)};return{listObjects(e,t){return a.listObjects(e,wcb(t))},headObject(e,t){return a.headObject(e,wcb(t))},deleteObject(e,t){return a.deleteObject(e,wcb(t))},putObject(e,t){return a.putObject(e,wcb(t))}}}const t=r(1889);t.config.update(e);const a=new t.S3;return{listObjects(e,t){return a.listObjects(e,t)},headObject(e,t){return a.headObject(e,t)},deleteObject(e,t){return a.deleteObject(e,t)},putObject(e,t){return a.putObject(e,t)}}};e.exports.get_mockS3Http=function(){let e=false;if(!process.env.node_pre_gyp_mock_s3){return()=>e}const t=r(9101);const a="https://mapbox-node-pre-gyp-public-testing-bucket.s3.us-east-1.amazonaws.com";const u=process.env.node_pre_gyp_mock_s3+"/mapbox-node-pre-gyp-public-testing-bucket";const mock_http=()=>{function get(e,t){const r=s.join(u,e.replace("%2B","+"));try{o.accessSync(r,o.constants.R_OK)}catch(e){return[404,"not found\n"]}return[200,o.createReadStream(r)]}return t(a).persist().get((()=>e)).reply(get)};mock_http(t,a,u);const mockS3Http=t=>{const r=e;if(t==="off"){e=false}else if(t==="on"){e=true}else if(t!=="get"){throw new Error(`illegal action for setMockHttp ${t}`)}return r};return mockS3Http}},2998:(e,t,r)=>{"use strict";e.exports=t;const a=r(1017);const o=r(7849);const s=r(7310);const u=r(5092);const c=r(251);let d;if(process.env.NODE_PRE_GYP_ABI_CROSSWALK){d=require(process.env.NODE_PRE_GYP_ABI_CROSSWALK)}else{d=r(9448)}const f={};Object.keys(d).forEach((e=>{const t=e.split(".")[0];if(!f[t]){f[t]=e}}));function get_electron_abi(e,t){if(!e){throw new Error("get_electron_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if electron is the target.")}const r=o.parse(t);return e+"-v"+r.major+"."+r.minor}e.exports.get_electron_abi=get_electron_abi;function get_node_webkit_abi(e,t){if(!e){throw new Error("get_node_webkit_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if node-webkit is the target.")}return e+"-v"+t}e.exports.get_node_webkit_abi=get_node_webkit_abi;function get_node_abi(e,t){if(!e){throw new Error("get_node_abi requires valid runtime arg")}if(!t){throw new Error("get_node_abi requires valid process.versions object")}const r=o.parse(t.node);if(r.major===0&&r.minor%2){return e+"-v"+t.node}else{return t.modules?e+"-v"+ +t.modules:"v8-"+t.v8.split(".").slice(0,2).join(".")}}e.exports.get_node_abi=get_node_abi;function get_runtime_abi(e,t){if(!e){throw new Error("get_runtime_abi requires valid runtime arg")}if(e==="node-webkit"){return get_node_webkit_abi(e,t||process.versions["node-webkit"])}else if(e==="electron"){return get_electron_abi(e,t||process.versions.electron)}else{if(e!=="node"){throw new Error("Unknown Runtime: '"+e+"'")}if(!t){return get_node_abi(e,process.versions)}else{let r;if(d[t]){r=d[t]}else{const e=t.split(".").map((e=>+e));if(e.length!==3){throw new Error("Unknown target version: "+t)}const a=e[0];let o=e[1];let s=e[2];if(a===1){while(true){if(o>0)--o;if(s>0)--s;const e=""+a+"."+o+"."+s;if(d[e]){r=d[e];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+e+" as ABI compatible target");break}if(o===0&&s===0){break}}}else if(a>=2){if(f[a]){r=d[f[a]];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+f[a]+" as ABI compatible target")}}else if(a===0){if(e[1]%2===0){while(--s>0){const e=""+a+"."+o+"."+s;if(d[e]){r=d[e];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+e+" as ABI compatible target");break}}}}}if(!r){throw new Error("Unsupported target version: "+t)}const a={node:t,v8:r.v8+".0",modules:r.node_abi>1?r.node_abi:undefined};return get_node_abi(e,a)}}}e.exports.get_runtime_abi=get_runtime_abi;const p=["module_name","module_path","host"];function validate_config(e,t){const r=e.name+" package.json is not node-pre-gyp ready:\n";const a=[];if(!e.main){a.push("main")}if(!e.version){a.push("version")}if(!e.name){a.push("name")}if(!e.binary){a.push("binary")}const o=e.binary;if(o){p.forEach((e=>{if(!o[e]||typeof o[e]!=="string"){a.push("binary."+e)}}))}if(a.length>=1){throw new Error(r+"package.json must declare these properties: \n"+a.join("\n"))}if(o){const e=s.parse(o.host).protocol;if(e==="http:"){throw new Error("'host' protocol ("+e+") is invalid - only 'https:' is accepted")}}c.validate_package_json(e,t)}e.exports.validate_config=validate_config;function eval_template(e,t){Object.keys(t).forEach((r=>{const a="{"+r+"}";while(e.indexOf(a)>-1){e=e.replace(a,t[r])}}));return e}function fix_slashes(e){if(e.slice(-1)!=="/"){return e+"/"}return e}function drop_double_slashes(e){return e.replace(/\/\//g,"/")}function get_process_runtime(e){let t="node";if(e["node-webkit"]){t="node-webkit"}else if(e.electron){t="electron"}return t}e.exports.get_process_runtime=get_process_runtime;const h="{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz";const v="";e.exports.evaluate=function(e,t,r){t=t||{};validate_config(e,t);const d=e.version;const f=o.parse(d);const p=t.runtime||get_process_runtime(process.versions);const _={name:e.name,configuration:t.debug?"Debug":"Release",debug:t.debug,module_name:e.binary.module_name,version:f.version,prerelease:f.prerelease.length?f.prerelease.join("."):"",build:f.build.length?f.build.join("."):"",major:f.major,minor:f.minor,patch:f.patch,runtime:p,node_abi:get_runtime_abi(p,t.target),node_abi_napi:c.get_napi_version(t.target)?"napi":get_runtime_abi(p,t.target),napi_version:c.get_napi_version(t.target),napi_build_version:r||"",node_napi_label:r?"napi-v"+r:get_runtime_abi(p,t.target),target:t.target||"",platform:t.target_platform||process.platform,target_platform:t.target_platform||process.platform,arch:t.target_arch||process.arch,target_arch:t.target_arch||process.arch,libc:t.target_libc||u.family||"unknown",module_main:e.main,toolset:t.toolset||"",bucket:e.binary.bucket,region:e.binary.region,s3ForcePathStyle:e.binary.s3ForcePathStyle||false};const g=_.module_name.replace("-","_");const y=process.env["npm_config_"+g+"_binary_host_mirror"]||e.binary.host;_.host=fix_slashes(eval_template(y,_));_.module_path=eval_template(e.binary.module_path,_);if(t.module_root){_.module_path=a.join(t.module_root,_.module_path)}else{_.module_path=a.resolve(_.module_path)}_.module=a.join(_.module_path,_.module_name+".node");_.remote_path=e.binary.remote_path?drop_double_slashes(fix_slashes(eval_template(e.binary.remote_path,_))):v;const m=e.binary.package_name?e.binary.package_name:h;_.package_name=eval_template(m,_);_.staged_tarball=a.join("build/stage",_.remote_path,_.package_name);_.hosted_path=s.resolve(_.host,_.remote_path);_.hosted_tarball=s.resolve(_.hosted_path,_.package_name);return _}},1129:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const o=a(r(1017));const s=r(8781);const u=r(1438);const c=r(1988);const d=a(r(8942));const f=r(1613);const p=a(r(3535));const h=r(9350);const v=r(8327);const _=r(8745);const g=a(r(7701));const y=a(r(3833));const m=a(r(8526));const w=a(r(234));const x=r(7310);const E=r(4924).asyncWalk;const S=c.Parser.extend();const k=a(r(2037));const R=r(3958);const A=a(r(5035));const O={cwd:()=>G,env:{NODE_ENV:u.UNKNOWN,[u.UNKNOWN]:true},[u.UNKNOWN]:true};const T=Symbol();const C=Symbol();const j=Symbol();const N=Symbol();const L=Symbol();const I=Symbol();const P=Symbol();const D=Symbol();const M=Symbol();const W={access:I,accessSync:I,createReadStream:I,exists:I,existsSync:I,fstat:I,fstatSync:I,lstat:I,lstatSync:I,open:I,readdir:P,readdirSync:P,readFile:I,readFileSync:I,stat:I,statSync:I};const F=Object.assign(Object.create(null),{bindings:{default:D},express:{default:function(){return{[u.UNKNOWN]:true,set:T,engine:C}}},fs:Object.assign({default:W},W),process:Object.assign({default:O},O),path:{default:{}},os:Object.assign({default:k.default},k.default),"@mapbox/node-pre-gyp":Object.assign({default:w.default},w.default),"node-pre-gyp":v.pregyp,"node-pre-gyp/lib/pre-binding":v.pregyp,"node-pre-gyp/lib/pre-binding.js":v.pregyp,"node-gyp-build":{default:M},nbind:{init:j,default:{init:j}},"resolve-from":{default:A.default},"strong-globalize":{default:{SetRootDir:N},SetRootDir:N},pkginfo:{default:L}});const B={_interopRequireDefault:_.normalizeDefaultRequire,_interopRequireWildcard:_.normalizeWildcardRequire,__importDefault:_.normalizeDefaultRequire,__importStar:_.normalizeWildcardRequire,MONGOOSE_DRIVER_PATH:undefined,URL:x.URL,Object:{assign:Object.assign}};B.global=B.GLOBAL=B.globalThis=B;const $=Symbol();v.pregyp.find[$]=true;const U=F.path;Object.keys(o.default).forEach((e=>{const t=o.default[e];if(typeof t==="function"){const r=function mockPath(){return t.apply(mockPath,arguments)};r[$]=true;U[e]=U.default[e]=r}else{U[e]=U.default[e]=t}}));U.resolve=U.default.resolve=function(...e){return o.default.resolve.apply(this,[G,...e])};U.resolve[$]=true;const H=new Set([".h",".cmake",".c",".cpp"]);const q=new Set(["CHANGELOG.md","README.md","readme.md","changelog.md"]);let G;const K=/^\/[^\/]+|^[a-z]:[\\/][^\\/]+/i;function isAbsolutePathOrUrl(e){if(e instanceof x.URL)return e.protocol==="file:";if(typeof e==="string"){if(e.startsWith("file:")){try{new x.URL(e);return true}catch(e){return false}}return K.test(e)}return false}const z=Symbol();const V=/([\/\\]\*\*[\/\\]\*)+/g;async function analyze(e,t,r){const a=new Set;const c=new Set;const _=new Set;const w=o.default.dirname(e);G=r.cwd;const k=h.getPackageBase(e);const emitAssetDirectory=e=>{if(!r.analysis.emitGlobs)return;const t=e.indexOf(u.WILDCARD);const s=t===-1?e.length:e.lastIndexOf(o.default.sep,t);const c=e.substring(0,s);const d=e.slice(s);const f=d.replace(u.wildcardRegEx,((e,t)=>d[t-1]===o.default.sep?"**/*":"*")).replace(V,"/**/*")||"/**/*";if(r.ignoreFn(o.default.relative(r.base,c+f)))return;W=W.then((async()=>{if(r.log)console.log("Globbing "+c+f);const e=await new Promise(((e,t)=>p.default(c+f,{mark:true,ignore:c+"/**/node_modules/**/*"},((r,a)=>r?t(r):e(a)))));e.filter((e=>!H.has(o.default.extname(e))&&!q.has(o.default.basename(e))&&!e.endsWith("/"))).forEach((e=>a.add(e)))}))};let W=Promise.resolve();t=t.replace(/^#![^\n\r]*[\r\n]/,"");let U;let Y=false;try{U=S.parse(t,{ecmaVersion:"latest",allowReturnOutsideFunction:true});Y=false}catch(t){const a=t&&t.message&&t.message.includes("sourceType: module");if(!a){r.warnings.add(new Error(`Failed to parse ${e} as script:\n${t&&t.message}`))}}if(!U){try{U=S.parse(t,{ecmaVersion:"latest",sourceType:"module",allowAwaitOutsideFunction:true});Y=true}catch(t){r.warnings.add(new Error(`Failed to parse ${e} as module:\n${t&&t.message}`));return{assets:a,deps:c,imports:_,isESM:false}}}const Q=x.pathToFileURL(e).href;const X=Object.assign(Object.create(null),{__dirname:{shadowDepth:0,value:{value:o.default.resolve(e,"..")}},__filename:{shadowDepth:0,value:{value:e}},process:{shadowDepth:0,value:{value:O}}});if(!Y||r.mixedModules){X.require={shadowDepth:0,value:{value:{[u.FUNCTION](e){c.add(e);const t=F[e.startsWith("node:")?e.slice(5):e];return t.default},resolve(t){return y.default(t,e,r)}}}};X.require.value.value.resolve[$]=true}function setKnownBinding(e,t){if(e==="require")return;X[e]={shadowDepth:0,value:t}}function getKnownBinding(e){const t=X[e];if(t){if(t.shadowDepth===0){return t.value}}return undefined}function hasKnownBindingValue(e){const t=X[e];return t&&t.shadowDepth===0}if((Y||r.mixedModules)&&isAst(U)){for(const e of U.body){if(e.type==="ImportDeclaration"){const t=String(e.source.value);c.add(t);const r=F[t.startsWith("node:")?t.slice(5):t];if(r){for(const t of e.specifiers){if(t.type==="ImportNamespaceSpecifier")setKnownBinding(t.local.name,{value:r});else if(t.type==="ImportDefaultSpecifier"&&"default"in r)setKnownBinding(t.local.name,{value:r.default});else if(t.type==="ImportSpecifier"&&t.imported.name in r)setKnownBinding(t.local.name,{value:r[t.imported.name]})}}}else if(e.type==="ExportNamedDeclaration"||e.type==="ExportAllDeclaration"){if(e.source)c.add(String(e.source.value))}}}async function computePureStaticValue(e,t=true){const r=Object.create(null);Object.keys(B).forEach((e=>{r[e]={value:B[e]}}));Object.keys(X).forEach((e=>{r[e]=getKnownBinding(e)}));r["import.meta"]={url:Q};const a=await u.evaluate(e,r,t);return a}let Z;let J;let ee=false;function emitWildcardRequire(e){if(!r.analysis.emitGlobs||!e.startsWith("./")&&!e.startsWith("../"))return;e=o.default.resolve(w,e);const t=e.indexOf(u.WILDCARD);const s=t===-1?e.length:e.lastIndexOf(o.default.sep,t);const c=e.substring(0,s);const d=e.slice(s);let f=d.replace(u.wildcardRegEx,((e,t)=>d[t-1]===o.default.sep?"**/*":"*"))||"/**/*";if(!f.endsWith("*"))f+="?("+(r.ts?".ts|.tsx|":"")+".js|.json|.node)";if(r.ignoreFn(o.default.relative(r.base,c+f)))return;W=W.then((async()=>{if(r.log)console.log("Globbing "+c+f);const e=await new Promise(((e,t)=>p.default(c+f,{mark:true,ignore:c+"/**/node_modules/**/*"},((r,a)=>r?t(r):e(a)))));e.filter((e=>!H.has(o.default.extname(e))&&!q.has(o.default.basename(e))&&!e.endsWith("/"))).forEach((e=>a.add(e)))}))}async function processRequireArg(e,t=false){if(e.type==="ConditionalExpression"){await processRequireArg(e.consequent,t);await processRequireArg(e.alternate,t);return}if(e.type==="LogicalExpression"){await processRequireArg(e.left,t);await processRequireArg(e.right,t);return}let r=await computePureStaticValue(e,true);if(!r)return;if("value"in r&&typeof r.value==="string"){if(!r.wildcards)(t?_:c).add(r.value);else if(r.wildcards.length>=1)emitWildcardRequire(r.value)}else{if("then"in r&&typeof r.then==="string")(t?_:c).add(r.then);if("else"in r&&typeof r.else==="string")(t?_:c).add(r.else)}}let te=s.attachScopes(U,"scope");if(isAst(U)){R.handleWrappers(U);await g.default({id:e,ast:U,emitAsset:e=>a.add(e),emitAssetDirectory:emitAssetDirectory,job:r})}async function backtrack(e,t){if(!Z)throw new Error("Internal error: No staticChildNode for backtrack.");const r=await computePureStaticValue(e,true);if(r){if("value"in r&&typeof r.value!=="symbol"||"then"in r&&typeof r.then!=="symbol"&&typeof r.else!=="symbol"){J=r;Z=e;if(t)t.skip();return}}await emitStaticChildAsset()}await E(U,{async enter(t,s){var u;const p=t;const h=s;if(p.scope){te=p.scope;for(const e in p.scope.declarations){if(e in X)X[e].shadowDepth++}}if(Z)return;if(!h)return;if(p.type==="Identifier"){if(f.isIdentifierRead(p,h)&&r.analysis.computeFileReferences){let e;if(typeof(e=(u=getKnownBinding(p.name))===null||u===void 0?void 0:u.value)==="string"&&e.match(K)||e&&(typeof e==="function"||typeof e==="object")&&e[$]){J={value:typeof e==="string"?e:undefined};Z=p;await backtrack(h,this)}}}else if(r.analysis.computeFileReferences&&p.type==="MemberExpression"&&p.object.type==="MetaProperty"&&p.object.meta.name==="import"&&p.object.property.name==="meta"&&(p.property.computed?p.property.value:p.property.name)==="url"){J={value:Q};Z=p;await backtrack(h,this)}else if(p.type==="ImportExpression"){await processRequireArg(p.source,true);return}else if(p.type==="CallExpression"){if((!Y||r.mixedModules)&&p.callee.type==="Identifier"&&p.arguments.length){if(p.callee.name==="require"&&X.require.shadowDepth===0){await processRequireArg(p.arguments[0]);return}}else if((!Y||r.mixedModules)&&p.callee.type==="MemberExpression"&&p.callee.object.type==="Identifier"&&p.callee.object.name==="module"&&"module"in X===false&&p.callee.property.type==="Identifier"&&!p.callee.computed&&p.callee.property.name==="require"&&p.arguments.length){await processRequireArg(p.arguments[0]);return}const t=r.analysis.evaluatePureExpressions&&await computePureStaticValue(p.callee,false);if(t&&"value"in t&&typeof t.value==="function"&&t.value[$]&&r.analysis.computeFileReferences){J=await computePureStaticValue(p,true);if(J&&h){Z=p;await backtrack(h,this)}}else if(t&&"value"in t&&typeof t.value==="symbol"){switch(t.value){case z:if(p.arguments.length===1&&p.arguments[0].type==="Literal"&&p.callee.type==="Identifier"&&X.require.shadowDepth===0){await processRequireArg(p.arguments[0])}break;case D:if(p.arguments.length){const e=await computePureStaticValue(p.arguments[0],false);if(e&&"value"in e&&e.value){let t;if(typeof e.value==="object")t=e.value;else if(typeof e.value==="string")t={bindings:e.value};if(!t.path){t.path=true}t.module_root=k;let r;try{r=d.default(t)}catch(e){}if(r){J={value:r};Z=p;await emitStaticChildAsset()}}}break;case M:if(p.arguments.length===1&&p.arguments[0].type==="Identifier"&&p.arguments[0].name==="__dirname"&&X.__dirname.shadowDepth===0){let e;try{const t=A.default(w,"node-gyp-build");e=require(t).path(w)}catch(t){try{e=m.default.path(w)}catch(e){}}if(e){J={value:e};Z=p;await emitStaticChildAsset()}}break;case j:if(p.arguments.length){const e=await computePureStaticValue(p.arguments[0],false);if(e&&"value"in e&&(typeof e.value==="string"||typeof e.value==="undefined")){const t=v.nbind(e.value);if(t&&t.path){c.add(o.default.relative(w,t.path).replace(/\\/g,"/"));return this.skip()}}}break;case T:if(p.arguments.length===2&&p.arguments[0].type==="Literal"&&p.arguments[0].value==="view engine"&&!ee){await processRequireArg(p.arguments[1]);return this.skip()}break;case C:ee=true;break;case I:case P:if(p.arguments[0]&&r.analysis.computeFileReferences){J=await computePureStaticValue(p.arguments[0],true);if(J){Z=p.arguments[0];if(t.value===P&&p.arguments[0].type==="Identifier"&&p.arguments[0].name==="__dirname"){emitAssetDirectory(w)}else{await backtrack(h,this)}return this.skip()}}break;case N:if(p.arguments[0]){const e=await computePureStaticValue(p.arguments[0],false);if(e&&"value"in e&&e.value)emitAssetDirectory(e.value+"/intl");return this.skip()}break;case L:let s=o.default.resolve(e,"../package.json");const u=o.default.resolve("/package.json");while(s!==u&&await r.stat(s)===null)s=o.default.resolve(s,"../../package.json");if(s!==u)a.add(s);break}}}else if(p.type==="VariableDeclaration"&&h&&!f.isVarLoop(h)&&r.analysis.evaluatePureExpressions){for(const e of p.declarations){if(!e.init)continue;const t=await computePureStaticValue(e.init,true);if(t){if(e.id.type==="Identifier"){setKnownBinding(e.id.name,t)}else if(e.id.type==="ObjectPattern"&&"value"in t){for(const r of e.id.properties){if(r.type!=="Property"||r.key.type!=="Identifier"||r.value.type!=="Identifier"||typeof t.value!=="object"||t.value===null||!(r.key.name in t.value))continue;setKnownBinding(r.value.name,{value:t.value[r.key.name]})}}if(!("value"in t)&&isAbsolutePathOrUrl(t.then)&&isAbsolutePathOrUrl(t.else)){J=t;Z=e.init;await emitStaticChildAsset()}}}}else if(p.type==="AssignmentExpression"&&h&&!f.isLoop(h)&&r.analysis.evaluatePureExpressions){if(!hasKnownBindingValue(p.left.name)){const e=await computePureStaticValue(p.right,false);if(e&&"value"in e){if(p.left.type==="Identifier"){setKnownBinding(p.left.name,e)}else if(p.left.type==="ObjectPattern"){for(const t of p.left.properties){if(t.type!=="Property"||t.key.type!=="Identifier"||t.value.type!=="Identifier"||typeof e.value!=="object"||e.value===null||!(t.key.name in e.value))continue;setKnownBinding(t.value.name,{value:e.value[t.key.name]})}}if(isAbsolutePathOrUrl(e.value)){J=e;Z=p.right;await emitStaticChildAsset()}}}}else if((!Y||r.mixedModules)&&(p.type==="FunctionDeclaration"||p.type==="FunctionExpression"||p.type==="ArrowFunctionExpression")&&(p.arguments||p.params)[0]&&(p.arguments||p.params)[0].type==="Identifier"){let e;let t;if((p.type==="ArrowFunctionExpression"||p.type==="FunctionExpression")&&h&&h.type==="VariableDeclarator"&&h.id.type==="Identifier"){e=h.id;t=p.arguments||p.params}else if(p.id){e=p.id;t=p.arguments||p.params}if(e&&p.body.body){let r,a=false;for(let e=0;ee&&e.id&&e.id.type==="Identifier"&&e.init&&e.init.type==="CallExpression"&&e.init.callee.type==="Identifier"&&e.init.callee.name==="require"&&X.require.shadowDepth===0&&e.init.arguments[0]&&e.init.arguments[0].type==="Identifier"&&e.init.arguments[0].name===t[0].name))}if(r&&p.body.body[e].type==="ReturnStatement"&&p.body.body[e].argument&&p.body.body[e].argument.type==="Identifier"&&p.body.body[e].argument.name===r.id.name){a=true;break}}if(a)setKnownBinding(e.name,{value:z})}}},async leave(e,t){const r=e;const a=t;if(r.scope){if(te.parent){te=te.parent}for(const e in r.scope.declarations){if(e in X){if(X[e].shadowDepth>0)X[e].shadowDepth--;else delete X[e]}}}if(Z&&a)await backtrack(a,this)}});await W;return{assets:a,deps:c,imports:_,isESM:Y};async function emitAssetPath(e){const t=e.indexOf(u.WILDCARD);const s=t===-1?e.length:e.lastIndexOf(o.default.sep,t);const c=e.substring(0,s);try{var d=await r.stat(c);if(d===null){throw new Error("file not found")}}catch(e){return}if(t!==-1&&d.isFile())return;if(d.isFile()){a.add(e)}else if(d.isDirectory()){if(validWildcard(e))emitAssetDirectory(e)}}function validWildcard(t){let a="";if(t.endsWith(o.default.sep))a=o.default.sep;else if(t.endsWith(o.default.sep+u.WILDCARD))a=o.default.sep+u.WILDCARD;else if(t.endsWith(u.WILDCARD))a=u.WILDCARD;if(t===w+a)return false;if(t===G+a)return false;if(t.endsWith(o.default.sep+"node_modules"+a))return false;if(w.startsWith(t.slice(0,t.length-a.length)+o.default.sep))return false;if(k){const a=e.substring(0,e.indexOf(o.default.sep+"node_modules"))+o.default.sep+"node_modules"+o.default.sep;if(!t.startsWith(a)){if(r.log)console.log("Skipping asset emission of "+t.replace(u.wildcardRegEx,"*")+" for "+e+" as it is outside the package base "+k);return false}}return true}function resolveAbsolutePathOrUrl(e){return e instanceof x.URL?x.fileURLToPath(e):e.startsWith("file:")?x.fileURLToPath(new x.URL(e)):o.default.resolve(e)}async function emitStaticChildAsset(){if(!J){return}if("value"in J&&isAbsolutePathOrUrl(J.value)){try{const e=resolveAbsolutePathOrUrl(J.value);await emitAssetPath(e)}catch(e){}}else if("then"in J&&"else"in J&&isAbsolutePathOrUrl(J.then)&&isAbsolutePathOrUrl(J.else)){let e;try{e=resolveAbsolutePathOrUrl(J.then)}catch(e){}let t;try{t=resolveAbsolutePathOrUrl(J.else)}catch(e){}if(e)await emitAssetPath(e);if(t)await emitAssetPath(t)}else if(Z&&Z.type==="ArrayExpression"&&"value"in J&&J.value instanceof Array){for(const e of J.value){try{const t=resolveAbsolutePathOrUrl(e);await emitAssetPath(t)}catch(e){}}}Z=J=undefined}}t["default"]=analyze;function isAst(e){return"body"in e}},7700:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var o=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!t.hasOwnProperty(r))a(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});o(r(7176),t);var s=r(9616);Object.defineProperty(t,"nodeFileTrace",{enumerable:true,get:function(){return s.nodeFileTrace}})},9616:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Job=t.nodeFileTrace=void 0;const o=r(1017);const s=a(r(1653));const u=a(r(1129));const c=a(r(3833));const d=r(2540);const f=r(486);const p=r(1017);const h=s.default.promises.readFile;const v=s.default.promises.readlink;const _=s.default.promises.stat;function inPath(e,t){const r=p.join(t,o.sep);return e.startsWith(r)&&e!==r}async function nodeFileTrace(e,t={}){const r=new Job(t);if(t.readFile)r.readFile=t.readFile;if(t.stat)r.stat=t.stat;if(t.readlink)r.readlink=t.readlink;if(t.resolve)r.resolve=t.resolve;r.ts=true;await Promise.all(e.map((async e=>{const t=o.resolve(e);await r.emitFile(t,"initial");return r.emitDependency(t)})));const a={fileList:r.fileList,esmFileList:r.esmFileList,reasons:r.reasons,warnings:r.warnings};return a}t.nodeFileTrace=nodeFileTrace;class Job{constructor({base:e=process.cwd(),processCwd:t,exports:r,conditions:a=r||["node"],exportsOnly:s=false,paths:u={},ignore:c,log:f=false,mixedModules:p=false,ts:h=true,analysis:v={},cache:_}){this.reasons=new Map;this.ts=h;e=o.resolve(e);this.ignoreFn=e=>{if(e.startsWith(".."+o.sep))return true;return false};if(typeof c==="string")c=[c];if(typeof c==="function"){const e=c;this.ignoreFn=t=>{if(t.startsWith(".."+o.sep))return true;if(e(t))return true;return false}}else if(Array.isArray(c)){const t=c.map((t=>o.relative(e,o.resolve(e||process.cwd(),t))));this.ignoreFn=e=>{if(e.startsWith(".."+o.sep))return true;if(d.isMatch(e,t))return true;return false}}this.base=e;this.cwd=o.resolve(t||e);this.conditions=a;this.exportsOnly=s;const g={};for(const t of Object.keys(u)){const r=u[t].endsWith("/");const a=o.resolve(e,u[t]);g[t]=a+(r?"/":"")}this.paths=g;this.log=f;this.mixedModules=p;this.analysis={};if(v!==false){Object.assign(this.analysis,{emitGlobs:true,computeFileReferences:true,evaluatePureExpressions:true},v===true?{}:v)}this.fileCache=_&&_.fileCache||new Map;this.statCache=_&&_.statCache||new Map;this.symlinkCache=_&&_.symlinkCache||new Map;this.analysisCache=_&&_.analysisCache||new Map;if(_){_.fileCache=this.fileCache;_.statCache=this.statCache;_.symlinkCache=this.symlinkCache;_.analysisCache=this.analysisCache}this.fileList=new Set;this.esmFileList=new Set;this.processed=new Set;this.warnings=new Set}async readlink(e){const t=this.symlinkCache.get(e);if(t!==undefined)return t;try{const t=await v(e);const r=this.statCache.get(e);if(r)this.statCache.set(o.resolve(e,t),r);this.symlinkCache.set(e,t);return t}catch(t){if(t.code!=="EINVAL"&&t.code!=="ENOENT"&&t.code!=="UNKNOWN")throw t;this.symlinkCache.set(e,null);return null}}async isFile(e){const t=await this.stat(e);if(t)return t.isFile();return false}async isDir(e){const t=await this.stat(e);if(t)return t.isDirectory();return false}async stat(e){const t=this.statCache.get(e);if(t)return t;try{const t=await _(e);this.statCache.set(e,t);return t}catch(t){if(t.code==="ENOENT"){this.statCache.set(e,null);return null}throw t}}async resolve(e,t,r,a){return c.default(e,t,r,a)}async readFile(e){const t=this.fileCache.get(e);if(t!==undefined)return t;try{const t=(await h(e)).toString();this.fileCache.set(e,t);return t}catch(t){if(t.code==="ENOENT"||t.code==="EISDIR"){this.fileCache.set(e,null);return null}throw t}}async realpath(e,t,r=new Set){if(r.has(e))throw new Error("Recursive symlink detected resolving "+e);r.add(e);const a=await this.readlink(e);if(a){const s=o.dirname(e);const u=o.resolve(s,a);const c=await this.realpath(s,t);if(inPath(e,c))await this.emitFile(e,"resolve",t,true);return this.realpath(u,t,r)}if(!inPath(e,this.base))return e;return p.join(await this.realpath(o.dirname(e),t,r),o.basename(e))}async emitFile(e,t,r,a=false){if(!a){e=await this.realpath(e,r)}e=o.relative(this.base,e);if(r){r=o.relative(this.base,r)}let s=this.reasons.get(e);if(!s){s={type:[t],ignored:false,parents:new Set};this.reasons.set(e,s)}else if(!s.type.includes(t)){s.type.push(t)}if(r&&this.ignoreFn(e,r)){if(!this.fileList.has(e)&&s){s.ignored=true}return false}if(r){s.parents.add(r)}this.fileList.add(e);return true}async getPjsonBoundary(e){const t=e.indexOf(o.sep);let r;while((r=e.lastIndexOf(o.sep))>t){e=e.slice(0,r);if(await this.isFile(e+o.sep+"package.json"))return e}return undefined}async emitDependency(e,t){if(this.processed.has(e)){if(t){await this.emitFile(e,"dependency",t)}return}this.processed.add(e);const r=await this.emitFile(e,"dependency",t);if(!r)return;if(e.endsWith(".json"))return;if(e.endsWith(".node"))return await f.sharedLibEmit(e,this);if(e.endsWith(".js")){const t=await this.getPjsonBoundary(e);if(t)await this.emitFile(t+o.sep+"package.json","resolve",e)}let a;const s=this.analysisCache.get(e);if(s){a=s}else{const t=await this.readFile(e);if(t===null)throw new Error("File "+e+" does not exist.");a=await u.default(e,t.toString(),this);this.analysisCache.set(e,a)}const{deps:c,imports:d,assets:p,isESM:h}=a;if(h)this.esmFileList.add(o.relative(this.base,e));await Promise.all([...[...p].map((async t=>{const r=o.extname(t);if(r===".js"||r===".mjs"||r===".node"||r===""||this.ts&&(r===".ts"||r===".tsx")&&t.startsWith(this.base)&&t.slice(this.base.length).indexOf(o.sep+"node_modules"+o.sep)===-1)await this.emitDependency(t,e);else await this.emitFile(t,"asset",e)})),...[...c].map((async t=>{try{var r=await this.resolve(t,e,this,!h)}catch(e){this.warnings.add(new Error(`Failed to resolve dependency ${t}:\n${e&&e.message}`));return}if(Array.isArray(r)){for(const t of r){if(t.startsWith("node:"))return;await this.emitDependency(t,e)}}else{if(r.startsWith("node:"))return;await this.emitDependency(r,e)}})),...[...d].map((async t=>{try{var r=await this.resolve(t,e,this,false)}catch(e){this.warnings.add(new Error(`Failed to resolve dependency ${t}:\n${e&&e.message}`));return}if(Array.isArray(r)){for(const t of r){if(t.startsWith("node:"))return;await this.emitDependency(t,e)}}else{if(r.startsWith("node:"))return;await this.emitDependency(r,e)}}))])}}t.Job=Job},3833:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(1017);async function resolveDependency(e,t,r,o=true){let s;if(a.isAbsolute(e)||e==="."||e===".."||e.startsWith("./")||e.startsWith("../")){const o=e.endsWith("/");s=await resolvePath(a.resolve(t,"..",e)+(o?"/":""),t,r)}else if(e[0]==="#"){s=await packageImportsResolve(e,t,r,o)}else{s=await resolvePackage(e,t,r,o)}if(Array.isArray(s)){return Promise.all(s.map((e=>r.realpath(e,t))))}else if(s.startsWith("node:")){return s}else{return r.realpath(s,t)}}t["default"]=resolveDependency;async function resolvePath(e,t,r){const a=await resolveFile(e,t,r)||await resolveDir(e,t,r);if(!a){throw new NotFoundError(e,t)}return a}async function resolveFile(e,t,r){if(e.endsWith("/"))return undefined;e=await r.realpath(e,t);if(await r.isFile(e))return e;if(r.ts&&e.startsWith(r.base)&&e.slice(r.base.length).indexOf(a.sep+"node_modules"+a.sep)===-1&&await r.isFile(e+".ts"))return e+".ts";if(r.ts&&e.startsWith(r.base)&&e.slice(r.base.length).indexOf(a.sep+"node_modules"+a.sep)===-1&&await r.isFile(e+".tsx"))return e+".tsx";if(await r.isFile(e+".js"))return e+".js";if(await r.isFile(e+".json"))return e+".json";if(await r.isFile(e+".node"))return e+".node";return undefined}async function resolveDir(e,t,r){if(e.endsWith("/"))e=e.slice(0,-1);if(!await r.isDir(e))return;const o=await getPkgCfg(e,r);if(o&&typeof o.main==="string"){const s=await resolveFile(a.resolve(e,o.main),t,r)||await resolveFile(a.resolve(e,o.main,"index"),t,r);if(s){await r.emitFile(e+a.sep+"package.json","resolve",t);return s}}return resolveFile(a.resolve(e,"index"),t,r)}class NotFoundError extends Error{constructor(e,t){super("Cannot find module '"+e+"' loaded from "+t);this.code="MODULE_NOT_FOUND"}}const o=new Set([...r(8102)._builtinLibs,"constants","module","timers","console","_stream_writable","_stream_readable","_stream_duplex","process","sys"]);function getPkgName(e){const t=e.split("/");if(e[0]==="@"&&t.length>1)return t.length>1?t.slice(0,2).join("/"):null;return t.length?t[0]:null}async function getPkgCfg(e,t){const r=await t.readFile(e+a.sep+"package.json");if(r){try{return JSON.parse(r.toString())}catch(e){}}return undefined}function getExportsTarget(e,t,r){if(typeof e==="string"){return e}else if(e===null){return e}else if(Array.isArray(e)){for(const a of e){const e=getExportsTarget(a,t,r);if(e===null||typeof e==="string"&&e.startsWith("./"))return e}}else if(typeof e==="object"){for(const a of Object.keys(e)){if(a==="default"||a==="require"&&r||a==="import"&&!r||t.includes(a)){const o=getExportsTarget(e[a],t,r);if(o!==undefined)return o}}}return undefined}function resolveExportsImports(e,t,r,a,o,s){let u;if(o){if(!(typeof t==="object"&&!Array.isArray(t)&&t!==null))return undefined;u=t}else if(typeof t==="string"||Array.isArray(t)||t===null||typeof t==="object"&&Object.keys(t).length&&Object.keys(t)[0][0]!=="."){u={".":t}}else{u=t}if(r in u){const t=getExportsTarget(u[r],a.conditions,s);if(typeof t==="string"&&t.startsWith("./"))return e+t.slice(1)}for(const t of Object.keys(u).sort(((e,t)=>t.length-e.length))){if(t.endsWith("*")&&r.startsWith(t.slice(0,-1))){const o=getExportsTarget(u[t],a.conditions,s);if(typeof o==="string"&&o.startsWith("./"))return e+o.slice(1).replace(/\*/g,r.slice(t.length-1))}if(!t.endsWith("/"))continue;if(r.startsWith(t)){const o=getExportsTarget(u[t],a.conditions,s);if(typeof o==="string"&&o.endsWith("/")&&o.startsWith("./"))return e+o.slice(1)+r.slice(t.length)}}return undefined}async function packageImportsResolve(e,t,r,o){if(e!=="#"&&!e.startsWith("#/")&&r.conditions){const s=await r.getPjsonBoundary(t);if(s){const u=await getPkgCfg(s,r);const{imports:c}=u||{};if(u&&c!==null&&c!==undefined){let u=resolveExportsImports(s,c,e,r,true,o);if(u){if(o)u=await resolveFile(u,t,r)||await resolveDir(u,t,r);else if(!await r.isFile(u))throw new NotFoundError(u,t);if(u){await r.emitFile(s+a.sep+"package.json","resolve",t);return u}}}}}throw new NotFoundError(e,t)}async function resolvePackage(e,t,r,s){let u=t;if(o.has(e))return"node:"+e;if(e.startsWith("node:"))return e;const c=getPkgName(e)||"";let d;if(r.conditions){const o=await r.getPjsonBoundary(t);if(o){const u=await getPkgCfg(o,r);const{exports:f}=u||{};if(u&&u.name&&u.name===c&&f!==null&&f!==undefined){d=resolveExportsImports(o,f,"."+e.slice(c.length),r,false,s);if(d){if(s)d=await resolveFile(d,t,r)||await resolveDir(d,t,r);else if(!await r.isFile(d))throw new NotFoundError(d,t)}if(d)await r.emitFile(o+a.sep+"package.json","resolve",t)}}}let f;const p=u.indexOf(a.sep);while((f=u.lastIndexOf(a.sep))>p){u=u.slice(0,f);const o=u+a.sep+"node_modules";const p=await r.stat(o);if(!p||!p.isDirectory())continue;const h=await getPkgCfg(o+a.sep+c,r);const{exports:v}=h||{};if(r.conditions&&v!==undefined&&v!==null&&!d){let u;if(!r.exportsOnly)u=await resolveFile(o+a.sep+e,t,r)||await resolveDir(o+a.sep+e,t,r);let d=resolveExportsImports(o+a.sep+c,v,"."+e.slice(c.length),r,false,s);if(d){if(s)d=await resolveFile(d,t,r)||await resolveDir(d,t,r);else if(!await r.isFile(d))throw new NotFoundError(d,t)}if(d){await r.emitFile(o+a.sep+c+a.sep+"package.json","resolve",t);if(u&&u!==d)return[d,u];return d}if(u)return u}else{const s=await resolveFile(o+a.sep+e,t,r)||await resolveDir(o+a.sep+e,t,r);if(s){if(d&&d!==s)return[s,d];return s}}}if(d)return d;if(Object.hasOwnProperty.call(r.paths,e)){return r.paths[e]}for(const a of Object.keys(r.paths)){if(a.endsWith("/")&&e.startsWith(a)){const o=r.paths[a]+e.slice(a.length);const s=await resolveFile(o,t,r)||await resolveDir(o,t,r);if(!s){throw new NotFoundError(e,t)}return s}}throw new NotFoundError(e,t)}},7176:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true})},1613:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isLoop=t.isVarLoop=t.isIdentifierRead=void 0;function isIdentifierRead(e,t){switch(t.type){case"ObjectPattern":case"ArrayPattern":return false;case"AssignmentExpression":return t.right===e;case"MemberExpression":return t.computed||e===t.object;case"Property":return e===t.value;case"MethodDefinition":return false;case"VariableDeclarator":return t.id!==e;case"ExportSpecifier":return false;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":return false;default:return true}}t.isIdentifierRead=isIdentifierRead;function isVarLoop(e){return e.type==="ForStatement"||e.type==="ForInStatement"||e.type==="ForOfStatement"}t.isVarLoop=isVarLoop;function isLoop(e){return e.type==="ForStatement"||e.type==="ForInStatement"||e.type==="ForOfStatement"||e.type==="WhileStatement"||e.type==="DoWhileStatement"}t.isLoop=isLoop},8327:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:true});exports.nbind=exports.pregyp=void 0;const path_1=__importDefault(__nccwpck_require__(1017));const graceful_fs_1=__importDefault(__nccwpck_require__(1653));const versioning=__nccwpck_require__(7595);const napi=__nccwpck_require__(5841);const pregypFind=(e,t)=>{const r=JSON.parse(graceful_fs_1.default.readFileSync(e).toString());versioning.validate_config(r,t);var a;if(napi.get_napi_build_versions(r,t)){a=napi.get_best_napi_build_version(r,t)}t=t||{};if(!t.module_root)t.module_root=path_1.default.dirname(e);var o=versioning.evaluate(r,t,a);return o.module};exports.pregyp={default:{find:pregypFind},find:pregypFind};function makeModulePathList(e,t){return[[e,t],[e,"build",t],[e,"build","Debug",t],[e,"build","Release",t],[e,"out","Debug",t],[e,"Debug",t],[e,"out","Release",t],[e,"Release",t],[e,"build","default",t],[e,process.env["NODE_BINDINGS_COMPILED_DIR"]||"compiled",process.versions.node,process.platform,process.arch,t]]}function findCompiledModule(basePath,specList){var resolvedList=[];var ext=path_1.default.extname(basePath);for(var _i=0,specList_1=specList;_i{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getPackageName=t.getPackageBase=void 0;const r=/^(@[^\\\/]+[\\\/])?[^\\\/]+/;function getPackageBase(e){const t=e.lastIndexOf("node_modules");if(t!==-1&&(e[t-1]==="/"||e[t-1]==="\\")&&(e[t+12]==="/"||e[t+12]==="\\")){const a=e.slice(t+13).match(r);if(a)return e.slice(0,t+13+a[0].length)}return undefined}t.getPackageBase=getPackageBase;function getPackageName(e){const t=e.lastIndexOf("node_modules");if(t!==-1&&(e[t-1]==="/"||e[t-1]==="\\")&&(e[t+12]==="/"||e[t+12]==="\\")){const a=e.slice(t+13).match(r);if(a&&a.length>0){return a[0].replace(/\\/g,"/")}}return undefined}t.getPackageName=getPackageName},8745:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.normalizeWildcardRequire=t.normalizeDefaultRequire=void 0;function normalizeDefaultRequire(e){if(e&&e.__esModule)return e;return{default:e}}t.normalizeDefaultRequire=normalizeDefaultRequire;const r=Object.prototype.hasOwnProperty;function normalizeWildcardRequire(e){if(e&&e.__esModule)return e;const t={};for(const a in e){if(!r.call(e,a))continue;t[a]=e[a]}t["default"]=e;return t}t.normalizeWildcardRequire=normalizeWildcardRequire},486:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.sharedLibEmit=void 0;const o=a(r(2037));const s=a(r(3535));const u=r(9350);let c="";switch(o.default.platform()){case"darwin":c="/**/*.@(dylib|so?(.*))";break;case"win32":c="/**/*.dll";break;default:c="/**/*.so?(.*)"}async function sharedLibEmit(e,t){const r=u.getPackageBase(e);if(!r)return;const a=await new Promise(((e,t)=>s.default(r+c,{ignore:r+"/**/node_modules/**/*"},((r,a)=>r?t(r):e(a)))));await Promise.all(a.map((r=>t.emitFile(r,"sharedlib",e))))}t.sharedLibEmit=sharedLibEmit},7701:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const o=r(1017);const s=a(r(3833));const u=r(9350);const c=r(1653);const d={"@generated/photon"({id:e,emitAssetDirectory:t}){if(e.endsWith("@generated/photon/index.js")){t(o.resolve(o.dirname(e),"runtime/"))}},argon2({id:e,emitAssetDirectory:t}){if(e.endsWith("argon2/argon2.js")){t(o.resolve(o.dirname(e),"build","Release"));t(o.resolve(o.dirname(e),"prebuilds"));t(o.resolve(o.dirname(e),"lib","binding"))}},bull({id:e,emitAssetDirectory:t}){if(e.endsWith("bull/lib/commands/index.js")){t(o.resolve(o.dirname(e)))}},camaro({id:e,emitAsset:t}){if(e.endsWith("camaro/dist/camaro.js")){t(o.resolve(o.dirname(e),"camaro.wasm"))}},esbuild({id:e,emitAssetDirectory:t}){if(e.endsWith("esbuild/lib/main.js")){const r=o.resolve(e,"..","..","package.json");const a=JSON.parse(c.readFileSync(r,"utf8"));for(const r of Object.keys(a.optionalDependencies||{})){const a=o.resolve(e,"..","..","..",r);t(a)}}},"google-gax"({id:e,ast:t,emitAssetDirectory:r}){if(e.endsWith("google-gax/build/src/grpc.js")){for(const a of t.body){if(a.type==="VariableDeclaration"&&a.declarations[0].id.type==="Identifier"&&a.declarations[0].id.name==="googleProtoFilesDir"){r(o.resolve(o.dirname(e),"../../../google-proto-files"))}}}},oracledb({id:e,ast:t,emitAsset:r}){if(e.endsWith("oracledb/lib/oracledb.js")){for(const a of t.body){if(a.type==="ForStatement"&&"body"in a.body&&a.body.body&&Array.isArray(a.body.body)&&a.body.body[0]&&a.body.body[0].type==="TryStatement"&&a.body.body[0].block.body[0]&&a.body.body[0].block.body[0].type==="ExpressionStatement"&&a.body.body[0].block.body[0].expression.type==="AssignmentExpression"&&a.body.body[0].block.body[0].expression.operator==="="&&a.body.body[0].block.body[0].expression.left.type==="Identifier"&&a.body.body[0].block.body[0].expression.left.name==="oracledbCLib"&&a.body.body[0].block.body[0].expression.right.type==="CallExpression"&&a.body.body[0].block.body[0].expression.right.callee.type==="Identifier"&&a.body.body[0].block.body[0].expression.right.callee.name==="require"&&a.body.body[0].block.body[0].expression.right.arguments.length===1&&a.body.body[0].block.body[0].expression.right.arguments[0].type==="MemberExpression"&&a.body.body[0].block.body[0].expression.right.arguments[0].computed===true&&a.body.body[0].block.body[0].expression.right.arguments[0].object.type==="Identifier"&&a.body.body[0].block.body[0].expression.right.arguments[0].object.name==="binaryLocations"&&a.body.body[0].block.body[0].expression.right.arguments[0].property.type==="Identifier"&&a.body.body[0].block.body[0].expression.right.arguments[0].property.name==="i"){a.body.body[0].block.body[0].expression.right.arguments=[{type:"Literal",value:"_"}];const t=global._unit?"3.0.0":JSON.parse(c.readFileSync(e.slice(0,-15)+"package.json","utf8")).version;const s=Number(t.slice(0,t.indexOf(".")))>=4;const u="oracledb-"+(s?t:"abi"+process.versions.modules)+"-"+process.platform+"-"+process.arch+".node";r(o.resolve(e,"../../build/Release/"+u))}}}},"phantomjs-prebuilt"({id:e,emitAssetDirectory:t}){if(e.endsWith("phantomjs-prebuilt/lib/phantomjs.js")){t(o.resolve(o.dirname(e),"..","bin"))}},"remark-prism"({id:e,emitAssetDirectory:t}){const r="remark-prism/src/highlight.js";if(e.endsWith(r)){try{const a=e.slice(0,-r.length);t(o.resolve(a,"prismjs","components"))}catch(e){}}},semver({id:e,emitAsset:t}){if(e.endsWith("semver/index.js")){t(o.resolve(e.replace("index.js","preload.js")))}},"socket.io":async function({id:e,ast:t,job:r}){if(e.endsWith("socket.io/lib/index.js")){async function replaceResolvePathStatement(t){if(t.type==="ExpressionStatement"&&t.expression.type==="AssignmentExpression"&&t.expression.operator==="="&&t.expression.right.type==="CallExpression"&&t.expression.right.callee.type==="Identifier"&&t.expression.right.callee.name==="read"&&t.expression.right.arguments.length>=1&&t.expression.right.arguments[0].type==="CallExpression"&&t.expression.right.arguments[0].callee.type==="Identifier"&&t.expression.right.arguments[0].callee.name==="resolvePath"&&t.expression.right.arguments[0].arguments.length===1&&t.expression.right.arguments[0].arguments[0].type==="Literal"){const a=t.expression.right.arguments[0].arguments[0].value;let u;try{const t=await s.default(String(a),e,r);if(typeof t==="string"){u=t}else{return undefined}}catch(e){return undefined}const c="/"+o.relative(o.dirname(e),u);t.expression.right.arguments[0]={type:"BinaryExpression",start:t.expression.right.arguments[0].start,end:t.expression.right.arguments[0].end,operator:"+",left:{type:"Identifier",name:"__dirname"},right:{type:"Literal",value:c,raw:JSON.stringify(c)}}}return undefined}for(const e of t.body){if(e.type==="ExpressionStatement"&&e.expression.type==="AssignmentExpression"&&e.expression.operator==="="&&e.expression.left.type==="MemberExpression"&&e.expression.left.object.type==="MemberExpression"&&e.expression.left.object.object.type==="Identifier"&&e.expression.left.object.object.name==="Server"&&e.expression.left.object.property.type==="Identifier"&&e.expression.left.object.property.name==="prototype"&&e.expression.left.property.type==="Identifier"&&e.expression.left.property.name==="serveClient"&&e.expression.right.type==="FunctionExpression"){for(const t of e.expression.right.body.body){if(t.type==="IfStatement"&&t.consequent&&"body"in t.consequent&&t.consequent.body){const e=t.consequent.body;let r=false;if(Array.isArray(e)&&e[0]&&e[0].type==="ExpressionStatement"){r=await replaceResolvePathStatement(e[0])}if(Array.isArray(e)&&e[1]&&e[1].type==="TryStatement"&&e[1].block.body&&e[1].block.body[0]){r=await replaceResolvePathStatement(e[1].block.body[0])||r}return}}}}}},typescript({id:e,emitAssetDirectory:t}){if(e.endsWith("typescript/lib/tsc.js")){t(o.resolve(e,"../"))}},"uglify-es"({id:e,emitAsset:t}){if(e.endsWith("uglify-es/tools/node.js")){t(o.resolve(e,"../../lib/utils.js"));t(o.resolve(e,"../../lib/ast.js"));t(o.resolve(e,"../../lib/parse.js"));t(o.resolve(e,"../../lib/transform.js"));t(o.resolve(e,"../../lib/scope.js"));t(o.resolve(e,"../../lib/output.js"));t(o.resolve(e,"../../lib/compress.js"));t(o.resolve(e,"../../lib/sourcemap.js"));t(o.resolve(e,"../../lib/mozilla-ast.js"));t(o.resolve(e,"../../lib/propmangle.js"));t(o.resolve(e,"../../lib/minify.js"));t(o.resolve(e,"../exports.js"))}},"uglify-js"({id:e,emitAsset:t,emitAssetDirectory:r}){if(e.endsWith("uglify-js/tools/node.js")){r(o.resolve(e,"../../lib"));t(o.resolve(e,"../exports.js"))}},"playwright-core"({id:e,emitAsset:t}){if(e.endsWith("playwright-core/index.js")){t(o.resolve(o.dirname(e),"browsers.json"))}},"geo-tz"({id:e,emitAsset:t}){if(e.endsWith("geo-tz/dist/geo-tz.js")){t(o.resolve(o.dirname(e),"../data/geo.dat"))}},pixelmatch({id:e,emitAsset:t}){if(e.endsWith("pixelmatch/index.js")){t(o.resolve(o.dirname(e),"bin/pixelmatch"))}}};async function handleSpecialCases({id:e,ast:t,emitAsset:r,emitAssetDirectory:a,job:o}){const s=u.getPackageName(e);const c=d[s||""];e=e.replace(/\\/g,"/");if(c)await c({id:e,ast:t,emitAsset:r,emitAssetDirectory:a,job:o})}t["default"]=handleSpecialCases},1438:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.wildcardRegEx=t.WILDCARD=t.FUNCTION=t.UNKNOWN=t.evaluate=void 0;const a=r(7310);async function evaluate(e,t={},r=true){const a={computeBranches:r,vars:t};return walk(e);function walk(e){const t=o[e.type];if(t){return t.call(a,e,walk)}return undefined}}t.evaluate=evaluate;t.UNKNOWN=Symbol();t.FUNCTION=Symbol();t.WILDCARD="";t.wildcardRegEx=/\x1a/g;function countWildcards(e){t.wildcardRegEx.lastIndex=0;let r=0;while(t.wildcardRegEx.exec(e))r++;return r}const o={ArrayExpression:async function ArrayExpression(e,t){const r=[];for(let a=0,o=e.elements.length;aa.value}}}return undefined},BinaryExpression:async function BinaryExpression(e,r){const a=e.operator;let o=await r(e.left);if(!o&&a!=="+")return;let s=await r(e.right);if(!o&&!s)return;if(!o){if(this.computeBranches&&s&&"value"in s&&typeof s.value==="string")return{value:t.WILDCARD+s.value,wildcards:[e.left,...s.wildcards||[]]};return}if(!s){if(this.computeBranches&&a==="+"){if(o&&"value"in o&&typeof o.value==="string")return{value:o.value+t.WILDCARD,wildcards:[...o.wildcards||[],e.right]}}if(!("test"in o)&&a==="||"&&o.value)return o;return}if("test"in o&&"value"in s){const e=s.value;if(a==="==")return{test:o.test,then:o.then==e,else:o.else==e};if(a==="===")return{test:o.test,then:o.then===e,else:o.else===e};if(a==="!=")return{test:o.test,then:o.then!=e,else:o.else!=e};if(a==="!==")return{test:o.test,then:o.then!==e,else:o.else!==e};if(a==="+")return{test:o.test,then:o.then+e,else:o.else+e};if(a==="-")return{test:o.test,then:o.then-e,else:o.else-e};if(a==="*")return{test:o.test,then:o.then*e,else:o.else*e};if(a==="/")return{test:o.test,then:o.then/e,else:o.else/e};if(a==="%")return{test:o.test,then:o.then%e,else:o.else%e};if(a==="<")return{test:o.test,then:o.then")return{test:o.test,then:o.then>e,else:o.else>e};if(a===">=")return{test:o.test,then:o.then>=e,else:o.else>=e};if(a==="|")return{test:o.test,then:o.then|e,else:o.else|e};if(a==="&")return{test:o.test,then:o.then&e,else:o.else&e};if(a==="^")return{test:o.test,then:o.then^e,else:o.else^e};if(a==="&&")return{test:o.test,then:o.then&&e,else:o.else&&e};if(a==="||")return{test:o.test,then:o.then||e,else:o.else||e}}else if("test"in s&&"value"in o){const e=o.value;if(a==="==")return{test:s.test,then:e==s.then,else:e==s.else};if(a==="===")return{test:s.test,then:e===s.then,else:e===s.else};if(a==="!=")return{test:s.test,then:e!=s.then,else:e!=s.else};if(a==="!==")return{test:s.test,then:e!==s.then,else:e!==s.else};if(a==="+")return{test:s.test,then:e+s.then,else:e+s.else};if(a==="-")return{test:s.test,then:e-s.then,else:e-s.else};if(a==="*")return{test:s.test,then:e*s.then,else:e*s.else};if(a==="/")return{test:s.test,then:e/s.then,else:e/s.else};if(a==="%")return{test:s.test,then:e%s.then,else:e%s.else};if(a==="<")return{test:s.test,then:e")return{test:s.test,then:e>s.then,else:e>s.else};if(a===">=")return{test:s.test,then:e>=s.then,else:e>=s.else};if(a==="|")return{test:s.test,then:e|s.then,else:e|s.else};if(a==="&")return{test:s.test,then:e&s.then,else:e&s.else};if(a==="^")return{test:s.test,then:e^s.then,else:e^s.else};if(a==="&&")return{test:s.test,then:e&&s.then,else:o&&s.else};if(a==="||")return{test:s.test,then:e||s.then,else:o||s.else}}else if("value"in o&&"value"in s){if(a==="==")return{value:o.value==s.value};if(a==="===")return{value:o.value===s.value};if(a==="!=")return{value:o.value!=s.value};if(a==="!==")return{value:o.value!==s.value};if(a==="+"){const e={value:o.value+s.value};let t=[];if("wildcards"in o&&o.wildcards){t=t.concat(o.wildcards)}if("wildcards"in s&&s.wildcards){t=t.concat(s.wildcards)}if(t.length>0){e.wildcards=t}return e}if(a==="-")return{value:o.value-s.value};if(a==="*")return{value:o.value*s.value};if(a==="/")return{value:o.value/s.value};if(a==="%")return{value:o.value%s.value};if(a==="<")return{value:o.value")return{value:o.value>s.value};if(a===">=")return{value:o.value>=s.value};if(a==="|")return{value:o.value|s.value};if(a==="&")return{value:o.value&s.value};if(a==="^")return{value:o.value^s.value};if(a==="&&")return{value:o.value&&s.value};if(a==="||")return{value:o.value||s.value}}return},CallExpression:async function CallExpression(e,r){var a;const o=await r(e.callee);if(!o||"test"in o)return;let s=o.value;if(typeof s==="object"&&s!==null)s=s[t.FUNCTION];if(typeof s!=="function")return;let u=null;if(e.callee.object){u=await r(e.callee.object);u=u&&"value"in u&&u.value?u.value:null}let c;let d=[];let f;let p=e.arguments.length>0&&((a=e.callee.property)===null||a===void 0?void 0:a.name)!=="concat";const h=[];for(let a=0,o=e.arguments.length;ah.push(e)))}else{if(!this.computeBranches)return;o={value:t.WILDCARD};h.push(e.arguments[a])}if("test"in o){if(h.length)return;if(c)return;c=o.test;f=d.concat([]);d.push(o.then);f.push(o.else)}else{d.push(o.value);if(f)f.push(o.value)}}if(p)return;try{const e=await s.apply(u,d);if(e===t.UNKNOWN)return;if(!c){if(h.length){if(typeof e!=="string"||countWildcards(e)!==h.length)return;return{value:e,wildcards:h}}return{value:e}}const r=await s.apply(u,f);if(e===t.UNKNOWN)return;return{test:c,then:e,else:r}}catch(e){return}},ConditionalExpression:async function ConditionalExpression(e,t){const r=await t(e.test);if(r&&"value"in r)return r.value?t(e.consequent):t(e.alternate);if(!this.computeBranches)return;const a=await t(e.consequent);if(!a||"wildcards"in a||"test"in a)return;const o=await t(e.alternate);if(!o||"wildcards"in o||"test"in o)return;return{test:e.test,then:a.value,else:o.value}},ExpressionStatement:async function ExpressionStatement(e,t){return t(e.expression)},Identifier:async function Identifier(e,t){if(Object.hasOwnProperty.call(this.vars,e.name))return this.vars[e.name];return undefined},Literal:async function Literal(e,t){return{value:e.value}},MemberExpression:async function MemberExpression(e,r){const a=await r(e.object);if(!a||"test"in a||typeof a.value==="function"){return undefined}if(e.property.type==="Identifier"){if(typeof a.value==="string"&&e.property.name==="concat"){return{value:{[t.FUNCTION]:(...e)=>a.value.concat(e)}}}if(typeof a.value==="object"&&a.value!==null){const o=a.value;if(e.computed){const s=await r(e.property);if(s&&"value"in s&&s.value){const e=o[s.value];if(e===t.UNKNOWN)return undefined;return{value:e}}if(!o[t.UNKNOWN]&&Object.keys(a).length===0){return{value:undefined}}}else if(e.property.name in o){const r=o[e.property.name];if(r===t.UNKNOWN)return undefined;return{value:r}}else if(o[t.UNKNOWN])return undefined}else{return{value:undefined}}}const o=await r(e.property);if(!o||"test"in o)return undefined;if(typeof a.value==="object"&&a.value!==null){if(o.value in a.value){const e=a.value[o.value];if(e===t.UNKNOWN)return undefined;return{value:e}}else if(a.value[t.UNKNOWN]){return undefined}}else{return{value:undefined}}return undefined},MetaProperty:async function MetaProperty(e){if(e.meta.name==="import"&&e.property.name==="meta")return{value:this.vars["import.meta"]};return undefined},NewExpression:async function NewExpression(e,t){const r=await t(e.callee);if(r&&"value"in r&&r.value===a.URL&&e.arguments.length){const r=await t(e.arguments[0]);if(!r)return undefined;let o=null;if(e.arguments[1]){o=await t(e.arguments[1]);if(!o||!("value"in o))return undefined}if("value"in r){if(o){try{return{value:new a.URL(r.value,o.value)}}catch(e){return undefined}}try{return{value:new a.URL(r.value)}}catch(e){return undefined}}else{const e=r.test;if(o){try{return{test:e,then:new a.URL(r.then,o.value),else:new a.URL(r.else,o.value)}}catch(e){return undefined}}try{return{test:e,then:new a.URL(r.then),else:new a.URL(r.else)}}catch(e){return undefined}}}return undefined},ObjectExpression:async function ObjectExpression(e,r){const a={};for(let o=0;o{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.handleWrappers=void 0;const a=r(4924);function isUndefinedOrVoid(e){return e.type==="Identifier"&&e.name==="undefined"||e.type==="UnaryExpression"&&e.operator==="void"&&e.argument.type==="Literal"&&e.argument.value===0}function handleWrappers(e){var t;let r;if(e.body.length===1&&e.body[0].type==="ExpressionStatement"&&e.body[0].expression.type==="UnaryExpression"&&e.body[0].expression.operator==="!"&&e.body[0].expression.argument.type==="CallExpression"&&e.body[0].expression.argument.callee.type==="FunctionExpression"&&e.body[0].expression.argument.arguments.length===1)r=e.body[0].expression.argument;else if(e.body.length===1&&e.body[0].type==="ExpressionStatement"&&e.body[0].expression.type==="CallExpression"&&e.body[0].expression.callee.type==="FunctionExpression"&&(e.body[0].expression.arguments.length===1||e.body[0].expression.arguments.length===0))r=e.body[0].expression;else if(e.body.length===1&&e.body[0].type==="ExpressionStatement"&&e.body[0].expression.type==="AssignmentExpression"&&e.body[0].expression.left.type==="MemberExpression"&&e.body[0].expression.left.object.type==="Identifier"&&e.body[0].expression.left.object.name==="module"&&e.body[0].expression.left.property.type==="Identifier"&&e.body[0].expression.left.property.name==="exports"&&e.body[0].expression.right.type==="CallExpression"&&e.body[0].expression.right.callee.type==="FunctionExpression"&&e.body[0].expression.right.arguments.length===1)r=e.body[0].expression.right;if(r){let e;let o;if(r.arguments[0]&&r.arguments[0].type==="ConditionalExpression"&&r.arguments[0].test.type==="LogicalExpression"&&r.arguments[0].test.operator==="&&"&&r.arguments[0].test.left.type==="BinaryExpression"&&r.arguments[0].test.left.operator==="==="&&r.arguments[0].test.left.left.type==="UnaryExpression"&&r.arguments[0].test.left.left.operator==="typeof"&&"name"in r.arguments[0].test.left.left.argument&&r.arguments[0].test.left.left.argument.name==="define"&&r.arguments[0].test.left.right.type==="Literal"&&r.arguments[0].test.left.right.value==="function"&&r.arguments[0].test.right.type==="MemberExpression"&&r.arguments[0].test.right.object.type==="Identifier"&&r.arguments[0].test.right.property.type==="Identifier"&&r.arguments[0].test.right.property.name==="amd"&&r.arguments[0].test.right.computed===false&&r.arguments[0].alternate.type==="FunctionExpression"&&r.arguments[0].alternate.params.length===1&&r.arguments[0].alternate.params[0].type==="Identifier"&&r.arguments[0].alternate.body.body.length===1&&r.arguments[0].alternate.body.body[0].type==="ExpressionStatement"&&r.arguments[0].alternate.body.body[0].expression.type==="AssignmentExpression"&&r.arguments[0].alternate.body.body[0].expression.left.type==="MemberExpression"&&r.arguments[0].alternate.body.body[0].expression.left.object.type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.left.object.name==="module"&&r.arguments[0].alternate.body.body[0].expression.left.property.type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.left.property.name==="exports"&&r.arguments[0].alternate.body.body[0].expression.left.computed===false&&r.arguments[0].alternate.body.body[0].expression.right.type==="CallExpression"&&r.arguments[0].alternate.body.body[0].expression.right.callee.type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.right.callee.name===r.arguments[0].alternate.params[0].name&&"body"in r.callee&&"body"in r.callee.body&&Array.isArray(r.callee.body.body)&&r.arguments[0].alternate.body.body[0].expression.right.arguments.length===1&&r.arguments[0].alternate.body.body[0].expression.right.arguments[0].type==="Identifier"&&r.arguments[0].alternate.body.body[0].expression.right.arguments[0].name==="require"){let e=r.callee.body.body;if(e[0].type==="ExpressionStatement"&&e[0].expression.type==="Literal"&&e[0].expression.value==="use strict"){e=e.slice(1)}if(e.length===1&&e[0].type==="ExpressionStatement"&&e[0].expression.type==="CallExpression"&&e[0].expression.callee.type==="Identifier"&&e[0].expression.callee.name===r.arguments[0].test.right.object.name&&e[0].expression.arguments.length===1&&e[0].expression.arguments[0].type==="FunctionExpression"&&e[0].expression.arguments[0].params.length===1&&e[0].expression.arguments[0].params[0].type==="Identifier"&&e[0].expression.arguments[0].params[0].name==="require"){const t=e[0].expression.arguments[0];t.params=[];try{delete t.scope.declarations.require}catch(e){}}}else if(r.arguments[0]&&r.arguments[0].type==="FunctionExpression"&&r.arguments[0].params.length===0&&(r.arguments[0].body.body.length===1||r.arguments[0].body.body.length===2&&r.arguments[0].body.body[0].type==="VariableDeclaration"&&r.arguments[0].body.body[0].declarations.length===3&&r.arguments[0].body.body[0].declarations.every((e=>e.init===null&&e.id.type==="Identifier")))&&r.arguments[0].body.body[r.arguments[0].body.body.length-1].type==="ReturnStatement"&&(e=r.arguments[0].body.body[r.arguments[0].body.body.length-1])&&((t=e.argument)===null||t===void 0?void 0:t.type)==="CallExpression"&&e.argument.arguments.length&&e.argument.arguments.every((e=>e&&e.type==="Literal"&&typeof e.value==="number"))&&e.argument.callee.type==="CallExpression"&&(e.argument.callee.callee.type==="FunctionExpression"||e.argument.callee.callee.type==="CallExpression"&&e.argument.callee.callee.callee.type==="FunctionExpression"&&e.argument.callee.callee.arguments.length===0)&&e.argument.callee.arguments.length===3&&e.argument.callee.arguments[0].type==="ObjectExpression"&&e.argument.callee.arguments[1].type==="ObjectExpression"&&e.argument.callee.arguments[2].type==="ArrayExpression"){const t=e.argument.callee.arguments[0].properties;const r={};if(t.every((e=>{if(e.type!=="Property"||e.computed!==false||e.key.type!=="Literal"||typeof e.key.value!=="number"||e.value.type!=="ArrayExpression"||e.value.elements.length!==2||!e.value.elements[0]||!e.value.elements[1]||e.value.elements[0].type!=="FunctionExpression"||e.value.elements[1].type!=="ObjectExpression"){return false}const t=e.value.elements[1].properties;for(const e of t){if(e.type!=="Property"||e.value.type!=="Identifier"&&e.value.type!=="Literal"&&!isUndefinedOrVoid(e.value)||!(e.key.type==="Literal"&&typeof e.key.value==="string"||e.key.type==="Identifier")||e.computed){return false}if(isUndefinedOrVoid(e.value)){if(e.key.type==="Identifier"){r[e.key.name]={type:"Literal",start:e.key.start,end:e.key.end,value:e.key.name,raw:JSON.stringify(e.key.name)}}else if(e.key.type==="Literal"){r[String(e.key.value)]=e.key}}}return true}))){const t=Object.keys(r);const a=e.argument.callee.arguments[1];a.properties=t.map((e=>({type:"Property",method:false,shorthand:false,computed:false,kind:"init",key:r[e],value:{type:"ObjectExpression",properties:[{type:"Property",kind:"init",method:false,shorthand:false,computed:false,key:{type:"Identifier",name:"exports"},value:{type:"CallExpression",optional:false,callee:{type:"Identifier",name:"require"},arguments:[r[e]]}}]}})))}}else if(r.arguments[0]&&r.arguments[0].type==="FunctionExpression"&&r.arguments[0].params.length===2&&r.arguments[0].params[0].type==="Identifier"&&r.arguments[0].params[1].type==="Identifier"&&"body"in r.callee&&"body"in r.callee.body&&Array.isArray(r.callee.body.body)&&r.callee.body.body.length===1){const e=r.callee.body.body[0];if(e.type==="IfStatement"&&e.test.type==="LogicalExpression"&&e.test.operator==="&&"&&e.test.left.type==="BinaryExpression"&&e.test.left.left.type==="UnaryExpression"&&e.test.left.left.operator==="typeof"&&e.test.left.left.argument.type==="Identifier"&&e.test.left.left.argument.name==="module"&&e.test.left.right.type==="Literal"&&e.test.left.right.value==="object"&&e.test.right.type==="BinaryExpression"&&e.test.right.left.type==="UnaryExpression"&&e.test.right.left.operator==="typeof"&&e.test.right.left.argument.type==="MemberExpression"&&e.test.right.left.argument.object.type==="Identifier"&&e.test.right.left.argument.object.name==="module"&&e.test.right.left.argument.property.type==="Identifier"&&e.test.right.left.argument.property.name==="exports"&&e.test.right.right.type==="Literal"&&e.test.right.right.value==="object"&&e.consequent.type==="BlockStatement"&&e.consequent.body.length>0){let t;if(e.consequent.body[0].type==="VariableDeclaration"&&e.consequent.body[0].declarations[0].init&&e.consequent.body[0].declarations[0].init.type==="CallExpression")t=e.consequent.body[0].declarations[0].init;else if(e.consequent.body[0].type==="ExpressionStatement"&&e.consequent.body[0].expression.type==="CallExpression")t=e.consequent.body[0].expression;else if(e.consequent.body[0].type==="ExpressionStatement"&&e.consequent.body[0].expression.type==="AssignmentExpression"&&e.consequent.body[0].expression.operator==="="&&e.consequent.body[0].expression.right.type==="CallExpression")t=e.consequent.body[0].expression.right;if(t&&t.callee.type==="Identifier"&&"params"in r.callee&&r.callee.params.length>0&&"name"in r.callee.params[0]&&t.callee.name===r.callee.params[0].name&&t.arguments.length===2&&t.arguments[0].type==="Identifier"&&t.arguments[0].name==="require"&&t.arguments[1].type==="Identifier"&&t.arguments[1].name==="exports"){const e=r.arguments[0];e.params=[];try{const t=e.scope;delete t.declarations.require;delete t.declarations.exports}catch(e){}}}}else if(r.callee.type==="FunctionExpression"&&r.callee.body.body.length>2&&r.callee.body.body[0].type==="VariableDeclaration"&&r.callee.body.body[0].declarations.length===1&&r.callee.body.body[0].declarations[0].type==="VariableDeclarator"&&r.callee.body.body[0].declarations[0].id.type==="Identifier"&&r.callee.body.body[0].declarations[0].init&&(r.callee.body.body[0].declarations[0].init.type==="ObjectExpression"&&r.callee.body.body[0].declarations[0].init.properties.length===0||r.callee.body.body[0].declarations[0].init.type==="CallExpression"&&r.callee.body.body[0].declarations[0].init.arguments.length===1)&&(r.callee.body.body[1]&&r.callee.body.body[1].type==="FunctionDeclaration"&&r.callee.body.body[1].params.length===1&&r.callee.body.body[1].body.body.length>=3||r.callee.body.body[2]&&r.callee.body.body[2].type==="FunctionDeclaration"&&r.callee.body.body[2].params.length===1&&r.callee.body.body[2].body.body.length>=3)&&(r.arguments[0]&&(r.arguments[0].type==="ArrayExpression"&&(o=r.arguments[0])&&r.arguments[0].elements.length>0&&r.arguments[0].elements.every((e=>e&&e.type==="FunctionExpression"))||r.arguments[0].type==="ObjectExpression"&&(o=r.arguments[0])&&r.arguments[0].properties&&r.arguments[0].properties.length>0&&r.arguments[0].properties.every((e=>e&&e.type==="Property"&&!e.computed&&e.key&&e.key.type==="Literal"&&(typeof e.key.value==="string"||typeof e.key.value==="number")&&e.value&&e.value.type==="FunctionExpression"))))||r.arguments.length===0&&r.callee.type==="FunctionExpression"&&r.callee.params.length===0&&r.callee.body.type==="BlockStatement"&&r.callee.body.body.length>5&&r.callee.body.body[0].type==="VariableDeclaration"&&r.callee.body.body[0].declarations.length===1&&r.callee.body.body[0].declarations[0].id.type==="Identifier"&&r.callee.body.body[1].type==="ExpressionStatement"&&r.callee.body.body[1].expression.type==="AssignmentExpression"&&r.callee.body.body[2].type==="ExpressionStatement"&&r.callee.body.body[2].expression.type==="AssignmentExpression"&&r.callee.body.body[3].type==="ExpressionStatement"&&r.callee.body.body[3].expression.type==="AssignmentExpression"&&r.callee.body.body[3].expression.left.type==="MemberExpression"&&r.callee.body.body[3].expression.left.object.type==="Identifier"&&r.callee.body.body[3].expression.left.object.name===r.callee.body.body[0].declarations[0].id.name&&r.callee.body.body[3].expression.left.property.type==="Identifier"&&r.callee.body.body[3].expression.left.property.name==="modules"&&r.callee.body.body[3].expression.right.type==="ObjectExpression"&&r.callee.body.body[3].expression.right.properties.every((e=>e&&e.type==="Property"&&!e.computed&&e.key&&e.key.type==="Literal"&&(typeof e.key.value==="string"||typeof e.key.value==="number")&&e.value&&e.value.type==="FunctionExpression"))&&(o=r.callee.body.body[3].expression.right)&&(r.callee.body.body[4].type==="VariableDeclaration"&&r.callee.body.body[4].declarations.length===1&&r.callee.body.body[4].declarations[0].init&&r.callee.body.body[4].declarations[0].init.type==="CallExpression"&&r.callee.body.body[4].declarations[0].init.callee.type==="Identifier"&&r.callee.body.body[4].declarations[0].init.callee.name==="require"||r.callee.body.body[5].type==="VariableDeclaration"&&r.callee.body.body[5].declarations.length===1&&r.callee.body.body[5].declarations[0].init&&r.callee.body.body[5].declarations[0].init.type==="CallExpression"&&r.callee.body.body[5].declarations[0].init.callee.type==="Identifier"&&r.callee.body.body[5].declarations[0].init.callee.name==="require")){const e=new Map;let t;if(o.type==="ArrayExpression")t=o.elements.filter((e=>(e===null||e===void 0?void 0:e.type)==="FunctionExpression")).map(((e,t)=>[String(t),e]));else t=o.properties.map((e=>[String(e.key.value),e.value]));for(const[r,a]of t){const t=a.body.body.length===1?a.body.body[0]:(a.body.body.length===2||a.body.body.length===3&&a.body.body[2].type==="EmptyStatement")&&a.body.body[0].type==="ExpressionStatement"&&a.body.body[0].expression.type==="Literal"&&a.body.body[0].expression.value==="use strict"?a.body.body[1]:null;if(t&&t.type==="ExpressionStatement"&&t.expression.type==="AssignmentExpression"&&t.expression.operator==="="&&t.expression.left.type==="MemberExpression"&&t.expression.left.object.type==="Identifier"&&"params"in a&&a.params.length>0&&"name"in a.params[0]&&t.expression.left.object.name===a.params[0].name&&t.expression.left.property.type==="Identifier"&&t.expression.left.property.name==="exports"&&t.expression.right.type==="CallExpression"&&t.expression.right.callee.type==="Identifier"&&t.expression.right.callee.name==="require"&&t.expression.right.arguments.length===1&&t.expression.right.arguments[0].type==="Literal"){e.set(r,t.expression.right.arguments[0].value)}}for(const[,r]of t){if("params"in r&&r.params.length===3&&r.params[2].type==="Identifier"){const t=new Map;a.walk(r.body,{enter(a,o){const s=a;const u=o;if(s.type==="CallExpression"&&s.callee.type==="Identifier"&&"name"in r.params[2]&&s.callee.name===r.params[2].name&&s.arguments.length===1&&s.arguments[0].type==="Literal"){const r=e.get(String(s.arguments[0].value));if(r){const e={type:"CallExpression",optional:false,callee:{type:"Identifier",name:"require"},arguments:[{type:"Literal",value:r}]};const a=u;if("right"in a&&a.right===s){a.right=e}else if("left"in a&&a.left===s){a.left=e}else if("object"in a&&a.object===s){a.object=e}else if("callee"in a&&a.callee===s){a.callee=e}else if("arguments"in a&&a.arguments.some((e=>e===s))){a.arguments=a.arguments.map((t=>t===s?e:t))}else if("init"in a&&a.init===s){if(a.type==="VariableDeclarator"&&a.id.type==="Identifier")t.set(a.id.name,r);a.init=e}}}else if(s.type==="CallExpression"&&s.callee.type==="MemberExpression"&&s.callee.object.type==="Identifier"&&"name"in r.params[2]&&s.callee.object.name===r.params[2].name&&s.callee.property.type==="Identifier"&&s.callee.property.name==="n"&&s.arguments.length===1&&s.arguments[0].type==="Identifier"){if(u&&"init"in u&&u.init===s){const e=s.arguments[0];const t={type:"CallExpression",optional:false,callee:{type:"MemberExpression",computed:false,optional:false,object:{type:"Identifier",name:"Object"},property:{type:"Identifier",name:"assign"}},arguments:[{type:"ArrowFunctionExpression",expression:true,params:[],body:e},{type:"ObjectExpression",properties:[{type:"Property",kind:"init",method:false,computed:false,shorthand:false,key:{type:"Identifier",name:"a"},value:e}]}]};u.init=t}}}})}}}}}t.handleWrappers=handleWrappers},8529:(e,t)=>{e.exports=t=abbrev.abbrev=abbrev;abbrev.monkeyPatch=monkeyPatch;function monkeyPatch(){Object.defineProperty(Array.prototype,"abbrev",{value:function(){return abbrev(this)},enumerable:false,configurable:true,writable:true});Object.defineProperty(Object.prototype,"abbrev",{value:function(){return abbrev(Object.keys(this))},enumerable:false,configurable:true,writable:true})}function abbrev(e){if(arguments.length!==1||!Array.isArray(e)){e=Array.prototype.slice.call(arguments,0)}for(var t=0,r=e.length,a=[];tt?1:-1}},2237:e=>{"use strict";function isArguments(e){return e!=null&&typeof e==="object"&&e.hasOwnProperty("callee")}var t={"*":{label:"any",check:function(){return true}},A:{label:"array",check:function(e){return Array.isArray(e)||isArguments(e)}},S:{label:"string",check:function(e){return typeof e==="string"}},N:{label:"number",check:function(e){return typeof e==="number"}},F:{label:"function",check:function(e){return typeof e==="function"}},O:{label:"object",check:function(e){return typeof e==="object"&&e!=null&&!t.A.check(e)&&!t.E.check(e)}},B:{label:"boolean",check:function(e){return typeof e==="boolean"}},E:{label:"error",check:function(e){return e instanceof Error}},Z:{label:"null",check:function(e){return e==null}}};function addSchema(e,t){var r=t[e.length]=t[e.length]||[];if(r.indexOf(e)===-1)r.push(e)}var r=e.exports=function(e,r){if(arguments.length!==2)throw wrongNumberOfArgs(["SA"],arguments.length);if(!e)throw missingRequiredArg(0,"rawSchemas");if(!r)throw missingRequiredArg(1,"args");if(!t.S.check(e))throw invalidType(0,["string"],e);if(!t.A.check(r))throw invalidType(1,["array"],r);var a=e.split("|");var o={};a.forEach((function(e){for(var r=0;r{"use strict";t.TrackerGroup=r(8365);t.Tracker=r(6149);t.TrackerStream=r(321)},7425:(e,t,r)=>{"use strict";var a=r(2361).EventEmitter;var o=r(3837);var s=0;var u=e.exports=function(e){a.call(this);this.id=++s;this.name=e};o.inherits(u,a)},8365:(e,t,r)=>{"use strict";var a=r(3837);var o=r(7425);var s=r(6149);var u=r(321);var c=e.exports=function(e){o.call(this,e);this.parentGroup=null;this.trackers=[];this.completion={};this.weight={};this.totalWeight=0;this.finished=false;this.bubbleChange=bubbleChange(this)};a.inherits(c,o);function bubbleChange(e){return function(t,r,a){e.completion[a.id]=r;if(e.finished)return;e.emit("change",t||e.name,e.completed(),e)}}c.prototype.nameInTree=function(){var e=[];var t=this;while(t){e.unshift(t.name);t=t.parentGroup}return e.join("/")};c.prototype.addUnit=function(e,t){if(e.addUnit){var r=this;while(r){if(e===r){throw new Error("Attempted to add tracker group "+e.name+" to tree that already includes it "+this.nameInTree(this))}r=r.parentGroup}e.parentGroup=this}this.weight[e.id]=t||1;this.totalWeight+=this.weight[e.id];this.trackers.push(e);this.completion[e.id]=e.completed();e.on("change",this.bubbleChange);if(!this.finished)this.emit("change",e.name,this.completion[e.id],e);return e};c.prototype.completed=function(){if(this.trackers.length===0)return 0;var e=1/this.totalWeight;var t=0;for(var r=0;r{"use strict";var a=r(3837);var o=r(7426);var s=r(6965);var u=r(6149);var c=e.exports=function(e,t,r){o.Transform.call(this,r);this.tracker=new u(e,t);this.name=e;this.id=this.tracker.id;this.tracker.on("change",delegateChange(this))};a.inherits(c,o.Transform);function delegateChange(e){return function(t,r,a){e.emit("change",t,r,e)}}c.prototype._transform=function(e,t,r){this.tracker.completeWork(e.length?e.length:1);this.push(e);r()};c.prototype._flush=function(e){this.tracker.finish();e()};s(c.prototype,"tracker").method("completed").method("addWork").method("finish")},6149:(e,t,r)=>{"use strict";var a=r(3837);var o=r(7425);var s=e.exports=function(e,t){o.call(this,e);this.workDone=0;this.workTodo=t||0};a.inherits(s,o);s.prototype.completed=function(){return this.workTodo===0?0:this.workDone/this.workTodo};s.prototype.addWork=function(e){this.workTodo+=e;this.emit("change",this.name,this.completed(),this)};s.prototype.completeWork=function(e){this.workDone+=e;if(this.workDone>this.workTodo)this.workDone=this.workTodo;this.emit("change",this.name,this.completed(),this)};s.prototype.finish=function(){this.workTodo=this.workDone=1;this.emit("change",this.name,1,this)}},8942:(module,exports,__nccwpck_require__)=>{var fs=__nccwpck_require__(7147),path=__nccwpck_require__(1017),fileURLToPath=__nccwpck_require__(981),join=path.join,dirname=path.dirname,exists=fs.accessSync&&function(e){try{fs.accessSync(e)}catch(e){return false}return true}||fs.existsSync||path.existsSync,defaults={arrow:process.env.NODE_BINDINGS_ARROW||" → ",compiled:process.env.NODE_BINDINGS_COMPILED_DIR||"compiled",platform:process.platform,arch:process.arch,nodePreGyp:"node-v"+process.versions.modules+"-"+process.platform+"-"+process.arch,version:process.versions.node,bindings:"bindings.node",try:[["module_root","build","bindings"],["module_root","build","Debug","bindings"],["module_root","build","Release","bindings"],["module_root","out","Debug","bindings"],["module_root","Debug","bindings"],["module_root","out","Release","bindings"],["module_root","Release","bindings"],["module_root","build","default","bindings"],["module_root","compiled","version","platform","arch","bindings"],["module_root","addon-build","release","install-root","bindings"],["module_root","addon-build","debug","install-root","bindings"],["module_root","addon-build","default","install-root","bindings"],["module_root","lib","binding","nodePreGyp","bindings"]]};function bindings(opts){if(typeof opts=="string"){opts={bindings:opts}}else if(!opts){opts={}}Object.keys(defaults).map((function(e){if(!(e in opts))opts[e]=defaults[e]}));if(!opts.module_root){opts.module_root=exports.getRoot(exports.getFileName())}if(path.extname(opts.bindings)!=".node"){opts.bindings+=".node"}var requireFunc=true?eval("require"):0;var tries=[],i=0,l=opts.try.length,n,b,err;for(;i{"use strict";e.exports=function(e,t){if(e===null||e===undefined){throw TypeError()}e=String(e);var r=e.length;var a=t?Number(t):0;if(Number.isNaN(a)){a=0}if(a<0||a>=r){return undefined}var o=e.charCodeAt(a);if(o>=55296&&o<=56319&&r>a+1){var s=e.charCodeAt(a+1);if(s>=56320&&s<=57343){return(o-55296)*1024+s-56320+65536}}return o}},8061:(e,t)=>{"use strict";var r="[";t.up=function up(e){return r+(e||"")+"A"};t.down=function down(e){return r+(e||"")+"B"};t.forward=function forward(e){return r+(e||"")+"C"};t.back=function back(e){return r+(e||"")+"D"};t.nextLine=function nextLine(e){return r+(e||"")+"E"};t.previousLine=function previousLine(e){return r+(e||"")+"F"};t.horizontalAbsolute=function horizontalAbsolute(e){if(e==null)throw new Error("horizontalAboslute requires a column to position to");return r+e+"G"};t.eraseData=function eraseData(){return r+"J"};t.eraseLine=function eraseLine(){return r+"K"};t.goto=function(e,t){return r+t+";"+e+"H"};t.gotoSOL=function(){return"\r"};t.beep=function(){return""};t.hideCursor=function hideCursor(){return r+"?25l"};t.showCursor=function showCursor(){return r+"?25h"};var a={reset:0,bold:1,italic:3,underline:4,inverse:7,stopBold:22,stopItalic:23,stopUnderline:24,stopInverse:27,white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,bgWhite:47,bgBlack:40,bgBlue:44,bgCyan:46,bgGreen:42,bgMagenta:45,bgRed:41,bgYellow:43,grey:90,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97,bgGrey:100,bgBrightBlack:100,bgBrightRed:101,bgBrightGreen:102,bgBrightYellow:103,bgBrightBlue:104,bgBrightMagenta:105,bgBrightCyan:106,bgBrightWhite:107};t.color=function color(e){if(arguments.length!==1||!Array.isArray(e)){e=Array.prototype.slice.call(arguments)}return r+e.map(colorNameToCode).join(";")+"m"};function colorNameToCode(e){if(a[e]!=null)return a[e];throw new Error("Unknown color or style name: "+e)}},8297:(e,t)=>{function isArray(e){if(Array.isArray){return Array.isArray(e)}return objectToString(e)==="[object Array]"}t.isArray=isArray;function isBoolean(e){return typeof e==="boolean"}t.isBoolean=isBoolean;function isNull(e){return e===null}t.isNull=isNull;function isNullOrUndefined(e){return e==null}t.isNullOrUndefined=isNullOrUndefined;function isNumber(e){return typeof e==="number"}t.isNumber=isNumber;function isString(e){return typeof e==="string"}t.isString=isString;function isSymbol(e){return typeof e==="symbol"}t.isSymbol=isSymbol;function isUndefined(e){return e===void 0}t.isUndefined=isUndefined;function isRegExp(e){return objectToString(e)==="[object RegExp]"}t.isRegExp=isRegExp;function isObject(e){return typeof e==="object"&&e!==null}t.isObject=isObject;function isDate(e){return objectToString(e)==="[object Date]"}t.isDate=isDate;function isError(e){return objectToString(e)==="[object Error]"||e instanceof Error}t.isError=isError;function isFunction(e){return typeof e==="function"}t.isFunction=isFunction;function isPrimitive(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"||typeof e==="symbol"||typeof e==="undefined"}t.isPrimitive=isPrimitive;t.isBuffer=Buffer.isBuffer;function objectToString(e){return Object.prototype.toString.call(e)}},6965:e=>{e.exports=Delegator;function Delegator(e,t){if(!(this instanceof Delegator))return new Delegator(e,t);this.proto=e;this.target=t;this.methods=[];this.getters=[];this.setters=[];this.fluents=[]}Delegator.prototype.method=function(e){var t=this.proto;var r=this.target;this.methods.push(e);t[e]=function(){return this[r][e].apply(this[r],arguments)};return this};Delegator.prototype.access=function(e){return this.getter(e).setter(e)};Delegator.prototype.getter=function(e){var t=this.proto;var r=this.target;this.getters.push(e);t.__defineGetter__(e,(function(){return this[r][e]}));return this};Delegator.prototype.setter=function(e){var t=this.proto;var r=this.target;this.setters.push(e);t.__defineSetter__(e,(function(t){return this[r][e]=t}));return this};Delegator.prototype.fluent=function(e){var t=this.proto;var r=this.target;this.fluents.push(e);t[e]=function(t){if("undefined"!=typeof t){this[r][e]=t;return this}else{return this[r][e]}};return this}},5092:(e,t,r)=>{"use strict";var a=r(2037).platform();var o=r(2081).spawnSync;var s=r(7147).readdirSync;var u="glibc";var c="musl";var d={encoding:"utf8",env:process.env};if(!o){o=function(){return{status:126,stdout:"",stderr:""}}}function contains(e){return function(t){return t.indexOf(e)!==-1}}function versionFromMuslLdd(e){return e.split(/[\r\n]+/)[1].trim().split(/\s/)[1]}function safeReaddirSync(e){try{return s(e)}catch(e){}return[]}var f="";var p="";var h="";if(a==="linux"){var v=o("getconf",["GNU_LIBC_VERSION"],d);if(v.status===0){f=u;p=v.stdout.trim().split(" ")[1];h="getconf"}else{var _=o("ldd",["--version"],d);if(_.status===0&&_.stdout.indexOf(c)!==-1){f=c;p=versionFromMuslLdd(_.stdout);h="ldd"}else if(_.status===1&&_.stderr.indexOf(c)!==-1){f=c;p=versionFromMuslLdd(_.stderr);h="ldd"}else{var g=safeReaddirSync("/lib");if(g.some(contains("-linux-gnu"))){f=u;h="filesystem"}else if(g.some(contains("libc.musl-"))){f=c;h="filesystem"}else if(g.some(contains("ld-musl-"))){f=c;h="filesystem"}else{var y=safeReaddirSync("/usr/sbin");if(y.some(contains("glibc"))){f=u;h="filesystem"}}}}}var m=f!==""&&f!==u;e.exports={GLIBC:u,MUSL:c,family:f,version:p,method:h,isNonGlibcLinux:m}},9641:function(e,t){(function(e,r){true?r(t):0})(this,(function(e){"use strict";function walk(e,{enter:t,leave:r}){visit(e,null,t,r)}let t=false;const r={skip:()=>t=true};const a={};const o=Object.prototype.toString;function isArray(e){return o.call(e)==="[object Array]"}function visit(e,o,s,u,c,d){if(!e)return;if(s){const a=t;t=false;s.call(r,e,o,c,d);const u=t;t=a;if(u)return}const f=e.type&&a[e.type]||(a[e.type]=Object.keys(e).filter((t=>typeof e[t]==="object")));for(let t=0;t{var a=r(1017).sep||"/";e.exports=fileUriToPath;function fileUriToPath(e){if("string"!=typeof e||e.length<=7||"file://"!=e.substring(0,7)){throw new TypeError("must pass in a file:// URI to convert to a file path")}var t=decodeURI(e.substring(7));var r=t.indexOf("/");var o=t.substring(0,r);var s=t.substring(r+1);if("localhost"==o)o="";if(o){o=a+a+o}s=s.replace(/^(.+)\|/,"$1:");if(a=="\\"){s=s.replace(/\//g,"\\")}if(/^.+\:/.test(s)){}else{s=a+s}return o+s}},4581:(e,t,r)=>{"use strict";var a=r(101);var o=r(9365);e.exports={activityIndicator:function(e,t,r){if(e.spun==null)return;return a(t,e.spun)},progressbar:function(e,t,r){if(e.completed==null)return;return o(t,r,e.completed)}}},3362:(e,t,r)=>{"use strict";var a=r(3837);var o=t.User=function User(e){var t=new Error(e);Error.captureStackTrace(t,User);t.code="EGAUGE";return t};t.MissingTemplateValue=function MissingTemplateValue(e,t){var r=new o(a.format('Missing template value "%s"',e.type));Error.captureStackTrace(r,MissingTemplateValue);r.template=e;r.values=t;return r};t.Internal=function Internal(e){var t=new Error(e);Error.captureStackTrace(t,Internal);t.code="EGAUGEINTERNAL";return t}},4054:e=>{"use strict";e.exports=isWin32()||isColorTerm();function isWin32(){return process.platform==="win32"}function isColorTerm(){var e=/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i;return!!process.env.COLORTERM||e.test(process.env.TERM)}},4398:(e,t,r)=>{"use strict";var a=r(1822);var o=r(4967);var s=r(4054);var u=r(5417);var c=r(5930);var d=r(2992);var f=r(3893);var p=r(5264);e.exports=Gauge;function callWith(e,t){return function(){return t.call(e)}}function Gauge(e,t){var r,o;if(e&&e.write){o=e;r=t||{}}else if(t&&t.write){o=t;r=e||{}}else{o=f.stderr;r=e||t||{}}this._status={spun:0,section:"",subsection:""};this._paused=false;this._disabled=true;this._showing=false;this._onScreen=false;this._needsRedraw=false;this._hideCursor=r.hideCursor==null?true:r.hideCursor;this._fixedFramerate=r.fixedFramerate==null?!/^v0\.8\./.test(f.version):r.fixedFramerate;this._lastUpdateAt=null;this._updateInterval=r.updateInterval==null?50:r.updateInterval;this._themes=r.themes||c;this._theme=r.theme;var s=this._computeTheme(r.theme);var u=r.template||[{type:"progressbar",length:20},{type:"activityIndicator",kerning:1,length:1},{type:"section",kerning:1,default:""},{type:"subsection",kerning:1,default:""}];this.setWriteTo(o,r.tty);var d=r.Plumbing||a;this._gauge=new d(s,u,this.getWidth());this._$$doRedraw=callWith(this,this._doRedraw);this._$$handleSizeChange=callWith(this,this._handleSizeChange);this._cleanupOnExit=r.cleanupOnExit==null||r.cleanupOnExit;this._removeOnExit=null;if(r.enabled||r.enabled==null&&this._tty&&this._tty.isTTY){this.enable()}else{this.disable()}}Gauge.prototype={};Gauge.prototype.isEnabled=function(){return!this._disabled};Gauge.prototype.setTemplate=function(e){this._gauge.setTemplate(e);if(this._showing)this._requestRedraw()};Gauge.prototype._computeTheme=function(e){if(!e)e={};if(typeof e==="string"){e=this._themes.getTheme(e)}else if(e&&(Object.keys(e).length===0||e.hasUnicode!=null||e.hasColor!=null)){var t=e.hasUnicode==null?o():e.hasUnicode;var r=e.hasColor==null?s:e.hasColor;e=this._themes.getDefault({hasUnicode:t,hasColor:r,platform:e.platform})}return e};Gauge.prototype.setThemeset=function(e){this._themes=e;this.setTheme(this._theme)};Gauge.prototype.setTheme=function(e){this._gauge.setTheme(this._computeTheme(e));if(this._showing)this._requestRedraw();this._theme=e};Gauge.prototype._requestRedraw=function(){this._needsRedraw=true;if(!this._fixedFramerate)this._doRedraw()};Gauge.prototype.getWidth=function(){return(this._tty&&this._tty.columns||80)-1};Gauge.prototype.setWriteTo=function(e,t){var r=!this._disabled;if(r)this.disable();this._writeTo=e;this._tty=t||e===f.stderr&&f.stdout.isTTY&&f.stdout||e.isTTY&&e||this._tty;if(this._gauge)this._gauge.setWidth(this.getWidth());if(r)this.enable()};Gauge.prototype.enable=function(){if(!this._disabled)return;this._disabled=false;if(this._tty)this._enableEvents();if(this._showing)this.show()};Gauge.prototype.disable=function(){if(this._disabled)return;if(this._showing){this._lastUpdateAt=null;this._showing=false;this._doRedraw();this._showing=true}this._disabled=true;if(this._tty)this._disableEvents()};Gauge.prototype._enableEvents=function(){if(this._cleanupOnExit){this._removeOnExit=u(callWith(this,this.disable))}this._tty.on("resize",this._$$handleSizeChange);if(this._fixedFramerate){this.redrawTracker=d(this._$$doRedraw,this._updateInterval);if(this.redrawTracker.unref)this.redrawTracker.unref()}};Gauge.prototype._disableEvents=function(){this._tty.removeListener("resize",this._$$handleSizeChange);if(this._fixedFramerate)clearInterval(this.redrawTracker);if(this._removeOnExit)this._removeOnExit()};Gauge.prototype.hide=function(e){if(this._disabled)return e&&f.nextTick(e);if(!this._showing)return e&&f.nextTick(e);this._showing=false;this._doRedraw();e&&p(e)};Gauge.prototype.show=function(e,t){this._showing=true;if(typeof e==="string"){this._status.section=e}else if(typeof e==="object"){var r=Object.keys(e);for(var a=0;a{"use strict";var a=r(8061);var o=r(795);var s=r(2237);var u=e.exports=function(e,t,r){if(!r)r=80;s("OAN",[e,t,r]);this.showing=false;this.theme=e;this.width=r;this.template=t};u.prototype={};u.prototype.setTheme=function(e){s("O",[e]);this.theme=e};u.prototype.setTemplate=function(e){s("A",[e]);this.template=e};u.prototype.setWidth=function(e){s("N",[e]);this.width=e};u.prototype.hide=function(){return a.gotoSOL()+a.eraseLine()};u.prototype.hideCursor=a.hideCursor;u.prototype.showCursor=a.showCursor;u.prototype.show=function(e){var t=Object.create(this.theme);for(var r in e){t[r]=e[r]}return o(this.width,this.template,t).trim()+a.color("reset")+a.eraseLine()+a.gotoSOL()}},3893:e=>{"use strict";e.exports=process},9365:(e,t,r)=>{"use strict";var a=r(2237);var o=r(795);var s=r(790);var u=r(1780);e.exports=function(e,t,r){a("ONN",[e,t,r]);if(r<0)r=0;if(r>1)r=1;if(t<=0)return"";var s=Math.round(t*r);var u=t-s;var c=[{type:"complete",value:repeat(e.complete,s),length:s},{type:"remaining",value:repeat(e.remaining,u),length:u}];return o(t,c,e)};function repeat(e,t){var r="";var a=t;do{if(a%2){r+=e}a=Math.floor(a/2);e+=e}while(a&&u(r){"use strict";var a=r(6486);var o=r(2237);var s=r(3902);var u=r(790);var c=r(3362);var d=r(3225);function renderValueWithValues(e){return function(t){return renderValue(t,e)}}var f=e.exports=function(e,t,r){var o=prepareItems(e,t,r);var s=o.map(renderValueWithValues(r)).join("");return a.left(u(s,e),e)};function preType(e){var t=e.type[0].toUpperCase()+e.type.slice(1);return"pre"+t}function postType(e){var t=e.type[0].toUpperCase()+e.type.slice(1);return"post"+t}function hasPreOrPost(e,t){if(!e.type)return;return t[preType(e)]||t[postType(e)]}function generatePreAndPost(e,t){var r=s({},e);var a=Object.create(t);var o=[];var u=preType(r);var c=postType(r);if(a[u]){o.push({value:a[u]});a[u]=null}r.minLength=null;r.length=null;r.maxLength=null;o.push(r);a[r.type]=a[r.type];if(a[c]){o.push({value:a[c]});a[c]=null}return function(e,t,r){return f(r,o,a)}}function prepareItems(e,t,r){function cloneAndObjectify(t,a,o){var s=new d(t,e);var u=s.type;if(s.value==null){if(!(u in r)){if(s.default==null){throw new c.MissingTemplateValue(s,r)}else{s.value=s.default}}else{s.value=r[u]}}if(s.value==null||s.value==="")return null;s.index=a;s.first=a===0;s.last=a===o.length-1;if(hasPreOrPost(s,r))s.value=generatePreAndPost(s,r);return s}var a=t.map(cloneAndObjectify).filter((function(e){return e!=null}));var o=0;var s=e;var u=a.length;function consumeSpace(e){if(e>s)e=s;o+=e;s-=e}function finishSizing(e,t){if(e.finished)throw new c.Internal("Tried to finish template item that was already finished");if(t===Infinity)throw new c.Internal("Length of template item cannot be infinity");if(t!=null)e.length=t;e.minLength=null;e.maxLength=null;--u;e.finished=true;if(e.length==null)e.length=e.getBaseLength();if(e.length==null)throw new c.Internal("Finished template items must have a length");consumeSpace(e.getLength())}a.forEach((function(e){if(!e.kerning)return;var t=e.first?0:a[e.index-1].padRight;if(!e.first&&t=h){finishSizing(e,e.minLength);p=true}}))}while(p&&f++{"use strict";var a=r(3893);try{e.exports=setImmediate}catch(t){e.exports=a.nextTick}},2992:e=>{"use strict";e.exports=setInterval},101:e=>{"use strict";e.exports=function spin(e,t){return e[t%e.length]}},3225:(e,t,r)=>{"use strict";var a=r(1780);e.exports=TemplateItem;function isPercent(e){if(typeof e!=="string")return false;return e.slice(-1)==="%"}function percent(e){return Number(e.slice(0,-1))/100}function TemplateItem(e,t){this.overallOutputLength=t;this.finished=false;this.type=null;this.value=null;this.length=null;this.maxLength=null;this.minLength=null;this.kerning=null;this.align="left";this.padLeft=0;this.padRight=0;this.index=null;this.first=null;this.last=null;if(typeof e==="string"){this.value=e}else{for(var r in e)this[r]=e[r]}if(isPercent(this.length)){this.length=Math.round(this.overallOutputLength*percent(this.length))}if(isPercent(this.minLength)){this.minLength=Math.round(this.overallOutputLength*percent(this.minLength))}if(isPercent(this.maxLength)){this.maxLength=Math.round(this.overallOutputLength*percent(this.maxLength))}return this}TemplateItem.prototype={};TemplateItem.prototype.getBaseLength=function(){var e=this.length;if(e==null&&typeof this.value==="string"&&this.maxLength==null&&this.minLength==null){e=a(this.value)}return e};TemplateItem.prototype.getLength=function(){var e=this.getBaseLength();if(e==null)return null;return e+this.padLeft+this.padRight};TemplateItem.prototype.getMaxLength=function(){if(this.maxLength==null)return null;return this.maxLength+this.padLeft+this.padRight};TemplateItem.prototype.getMinLength=function(){if(this.minLength==null)return null;return this.minLength+this.padLeft+this.padRight}},4262:(e,t,r)=>{"use strict";var a=r(3902);e.exports=function(){return o.newThemeSet()};var o={};o.baseTheme=r(4581);o.newTheme=function(e,t){if(!t){t=e;e=this.baseTheme}return a({},e,t)};o.getThemeNames=function(){return Object.keys(this.themes)};o.addTheme=function(e,t,r){this.themes[e]=this.newTheme(t,r)};o.addToAllThemes=function(e){var t=this.themes;Object.keys(t).forEach((function(r){a(t[r],e)}));a(this.baseTheme,e)};o.getTheme=function(e){if(!this.themes[e])throw this.newMissingThemeError(e);return this.themes[e]};o.setDefault=function(e,t){if(t==null){t=e;e={}}var r=e.platform==null?"fallback":e.platform;var a=!!e.hasUnicode;var o=!!e.hasColor;if(!this.defaults[r])this.defaults[r]={true:{},false:{}};this.defaults[r][a][o]=t};o.getDefault=function(e){if(!e)e={};var t=e.platform||process.platform;var r=this.defaults[t]||this.defaults.fallback;var o=!!e.hasUnicode;var s=!!e.hasColor;if(!r)throw this.newMissingDefaultThemeError(t,o,s);if(!r[o][s]){if(o&&s&&r[!o][s]){o=false}else if(o&&s&&r[o][!s]){s=false}else if(o&&s&&r[!o][!s]){o=false;s=false}else if(o&&!s&&r[!o][s]){o=false}else if(!o&&s&&r[o][!s]){s=false}else if(r===this.defaults.fallback){throw this.newMissingDefaultThemeError(t,o,s)}}if(r[o][s]){return this.getTheme(r[o][s])}else{return this.getDefault(a({},e,{platform:"fallback"}))}};o.newMissingThemeError=function newMissingThemeError(e){var t=new Error('Could not find a gauge theme named "'+e+'"');Error.captureStackTrace.call(t,newMissingThemeError);t.theme=e;t.code="EMISSINGTHEME";return t};o.newMissingDefaultThemeError=function newMissingDefaultThemeError(e,t,r){var a=new Error("Could not find a gauge theme for your platform/unicode/color use combo:\n"+" platform = "+e+"\n"+" hasUnicode = "+t+"\n"+" hasColor = "+r);Error.captureStackTrace.call(a,newMissingDefaultThemeError);a.platform=e;a.hasUnicode=t;a.hasColor=r;a.code="EMISSINGTHEME";return a};o.newThemeSet=function(){var themeset=function(e){return themeset.getDefault(e)};return a(themeset,o,{themes:a({},this.themes),baseTheme:a({},this.baseTheme),defaults:JSON.parse(JSON.stringify(this.defaults||{}))})}},5930:(e,t,r)=>{"use strict";var a=r(8061);var o=r(4262);var s=e.exports=new o;s.addTheme("ASCII",{preProgressbar:"[",postProgressbar:"]",progressbarTheme:{complete:"#",remaining:"."},activityIndicatorTheme:"-\\|/",preSubsection:">"});s.addTheme("colorASCII",s.getTheme("ASCII"),{progressbarTheme:{preComplete:a.color("inverse"),complete:" ",postComplete:a.color("stopInverse"),preRemaining:a.color("brightBlack"),remaining:".",postRemaining:a.color("reset")}});s.addTheme("brailleSpinner",{preProgressbar:"⸨",postProgressbar:"⸩",progressbarTheme:{complete:"░",remaining:"⠂"},activityIndicatorTheme:"⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏",preSubsection:">"});s.addTheme("colorBrailleSpinner",s.getTheme("brailleSpinner"),{progressbarTheme:{preComplete:a.color("inverse"),complete:" ",postComplete:a.color("stopInverse"),preRemaining:a.color("brightBlack"),remaining:"░",postRemaining:a.color("reset")}});s.setDefault({},"ASCII");s.setDefault({hasColor:true},"colorASCII");s.setDefault({platform:"darwin",hasUnicode:true},"brailleSpinner");s.setDefault({platform:"darwin",hasUnicode:true,hasColor:true},"colorBrailleSpinner")},790:(e,t,r)=>{"use strict";var a=r(1780);var o=r(7518);e.exports=wideTruncate;function wideTruncate(e,t){if(a(e)===0)return e;if(t<=0)return"";if(a(e)<=t)return e;var r=o(e);var s=e.length+r.length;var u=e.slice(0,t+s);while(a(u)>t){u=u.slice(0,-1)}return u}},6045:e=>{"use strict";e.exports=clone;var t=Object.getPrototypeOf||function(e){return e.__proto__};function clone(e){if(e===null||typeof e!=="object")return e;if(e instanceof Object)var r={__proto__:t(e)};else var r=Object.create(null);Object.getOwnPropertyNames(e).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))}));return r}},1653:(e,t,r)=>{var a=r(7147);var o=r(8);var s=r(7448);var u=r(6045);var c=r(3837);var d;var f;if(typeof Symbol==="function"&&typeof Symbol.for==="function"){d=Symbol.for("graceful-fs.queue");f=Symbol.for("graceful-fs.previous")}else{d="___graceful-fs.queue";f="___graceful-fs.previous"}function noop(){}function publishQueue(e,t){Object.defineProperty(e,d,{get:function(){return t}})}var p=noop;if(c.debuglog)p=c.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))p=function(){var e=c.format.apply(c,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: ");console.error(e)};if(!a[d]){var h=global[d]||[];publishQueue(a,h);a.close=function(e){function close(t,r){return e.call(a,t,(function(e){if(!e){resetQueue()}if(typeof r==="function")r.apply(this,arguments)}))}Object.defineProperty(close,f,{value:e});return close}(a.close);a.closeSync=function(e){function closeSync(t){e.apply(a,arguments);resetQueue()}Object.defineProperty(closeSync,f,{value:e});return closeSync}(a.closeSync);if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")){process.on("exit",(function(){p(a[d]);r(9491).equal(a[d].length,0)}))}}if(!global[d]){publishQueue(global,a[d])}e.exports=patch(u(a));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!a.__patched){e.exports=patch(a);a.__patched=true}function patch(e){o(e);e.gracefulify=patch;e.createReadStream=createReadStream;e.createWriteStream=createWriteStream;var t=e.readFile;e.readFile=readFile;function readFile(e,r,a){if(typeof r==="function")a=r,r=null;return go$readFile(e,r,a);function go$readFile(e,r,a,o){return t(e,r,(function(t){if(t&&(t.code==="EMFILE"||t.code==="ENFILE"))enqueue([go$readFile,[e,r,a],t,o||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var r=e.writeFile;e.writeFile=writeFile;function writeFile(e,t,a,o){if(typeof a==="function")o=a,a=null;return go$writeFile(e,t,a,o);function go$writeFile(e,t,a,o,s){return r(e,t,a,(function(r){if(r&&(r.code==="EMFILE"||r.code==="ENFILE"))enqueue([go$writeFile,[e,t,a,o],r,s||Date.now(),Date.now()]);else{if(typeof o==="function")o.apply(this,arguments)}}))}}var a=e.appendFile;if(a)e.appendFile=appendFile;function appendFile(e,t,r,o){if(typeof r==="function")o=r,r=null;return go$appendFile(e,t,r,o);function go$appendFile(e,t,r,o,s){return a(e,t,r,(function(a){if(a&&(a.code==="EMFILE"||a.code==="ENFILE"))enqueue([go$appendFile,[e,t,r,o],a,s||Date.now(),Date.now()]);else{if(typeof o==="function")o.apply(this,arguments)}}))}}var u=e.copyFile;if(u)e.copyFile=copyFile;function copyFile(e,t,r,a){if(typeof r==="function"){a=r;r=0}return go$copyFile(e,t,r,a);function go$copyFile(e,t,r,a,o){return u(e,t,r,(function(s){if(s&&(s.code==="EMFILE"||s.code==="ENFILE"))enqueue([go$copyFile,[e,t,r,a],s,o||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var c=e.readdir;e.readdir=readdir;function readdir(e,t,r){if(typeof t==="function")r=t,t=null;return go$readdir(e,t,r);function go$readdir(e,t,r,a){return c(e,t,(function(o,s){if(o&&(o.code==="EMFILE"||o.code==="ENFILE"))enqueue([go$readdir,[e,t,r],o,a||Date.now(),Date.now()]);else{if(s&&s.sort)s.sort();if(typeof r==="function")r.call(this,o,s)}}))}}if(process.version.substr(0,4)==="v0.8"){var d=s(e);ReadStream=d.ReadStream;WriteStream=d.WriteStream}var f=e.ReadStream;if(f){ReadStream.prototype=Object.create(f.prototype);ReadStream.prototype.open=ReadStream$open}var p=e.WriteStream;if(p){WriteStream.prototype=Object.create(p.prototype);WriteStream.prototype.open=WriteStream$open}Object.defineProperty(e,"ReadStream",{get:function(){return ReadStream},set:function(e){ReadStream=e},enumerable:true,configurable:true});Object.defineProperty(e,"WriteStream",{get:function(){return WriteStream},set:function(e){WriteStream=e},enumerable:true,configurable:true});var h=ReadStream;Object.defineProperty(e,"FileReadStream",{get:function(){return h},set:function(e){h=e},enumerable:true,configurable:true});var v=WriteStream;Object.defineProperty(e,"FileWriteStream",{get:function(){return v},set:function(e){v=e},enumerable:true,configurable:true});function ReadStream(e,t){if(this instanceof ReadStream)return f.apply(this,arguments),this;else return ReadStream.apply(Object.create(ReadStream.prototype),arguments)}function ReadStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){if(e.autoClose)e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r);e.read()}}))}function WriteStream(e,t){if(this instanceof WriteStream)return p.apply(this,arguments),this;else return WriteStream.apply(Object.create(WriteStream.prototype),arguments)}function WriteStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r)}}))}function createReadStream(t,r){return new e.ReadStream(t,r)}function createWriteStream(t,r){return new e.WriteStream(t,r)}var _=e.open;e.open=open;function open(e,t,r,a){if(typeof r==="function")a=r,r=null;return go$open(e,t,r,a);function go$open(e,t,r,a,o){return _(e,t,r,(function(s,u){if(s&&(s.code==="EMFILE"||s.code==="ENFILE"))enqueue([go$open,[e,t,r,a],s,o||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}return e}function enqueue(e){p("ENQUEUE",e[0].name,e[1]);a[d].push(e);retry()}var v;function resetQueue(){var e=Date.now();for(var t=0;t2){a[d][t][3]=e;a[d][t][4]=e}}retry()}function retry(){clearTimeout(v);v=undefined;if(a[d].length===0)return;var e=a[d].shift();var t=e[0];var r=e[1];var o=e[2];var s=e[3];var u=e[4];if(s===undefined){p("RETRY",t.name,r);t.apply(null,r)}else if(Date.now()-s>=6e4){p("TIMEOUT",t.name,r);var c=r.pop();if(typeof c==="function")c.call(null,o)}else{var f=Date.now()-u;var h=Math.max(u-s,1);var _=Math.min(h*1.2,100);if(f>=_){p("RETRY",t.name,r);t.apply(null,r.concat([s]))}else{a[d].push(e)}}if(v===undefined){v=setTimeout(retry,0)}}},7448:(e,t,r)=>{var a=r(2781).Stream;e.exports=legacy;function legacy(e){return{ReadStream:ReadStream,WriteStream:WriteStream};function ReadStream(t,r){if(!(this instanceof ReadStream))return new ReadStream(t,r);a.call(this);var o=this;this.path=t;this.fd=null;this.readable=true;this.paused=false;this.flags="r";this.mode=438;this.bufferSize=64*1024;r=r||{};var s=Object.keys(r);for(var u=0,c=s.length;uthis.end){throw new Error("start must be <= end")}this.pos=this.start}if(this.fd!==null){process.nextTick((function(){o._read()}));return}e.open(this.path,this.flags,this.mode,(function(e,t){if(e){o.emit("error",e);o.readable=false;return}o.fd=t;o.emit("open",t);o._read()}))}function WriteStream(t,r){if(!(this instanceof WriteStream))return new WriteStream(t,r);a.call(this);this.path=t;this.fd=null;this.writable=true;this.flags="w";this.encoding="binary";this.mode=438;this.bytesWritten=0;r=r||{};var o=Object.keys(r);for(var s=0,u=o.length;s= zero")}this.pos=this.start}this.busy=false;this._queue=[];if(this.fd===null){this._open=e.open;this._queue.push([this._open,this.path,this.flags,this.mode,undefined]);this.flush()}}}},8:(e,t,r)=>{var a=r(2057);var o=process.cwd;var s=null;var u=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!s)s=o.call(process);return s};try{process.cwd()}catch(e){}if(typeof process.chdir==="function"){var c=process.chdir;process.chdir=function(e){s=null;c.call(process,e)};if(Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,c)}e.exports=patch;function patch(e){if(a.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)){patchLchmod(e)}if(!e.lutimes){patchLutimes(e)}e.chown=chownFix(e.chown);e.fchown=chownFix(e.fchown);e.lchown=chownFix(e.lchown);e.chmod=chmodFix(e.chmod);e.fchmod=chmodFix(e.fchmod);e.lchmod=chmodFix(e.lchmod);e.chownSync=chownFixSync(e.chownSync);e.fchownSync=chownFixSync(e.fchownSync);e.lchownSync=chownFixSync(e.lchownSync);e.chmodSync=chmodFixSync(e.chmodSync);e.fchmodSync=chmodFixSync(e.fchmodSync);e.lchmodSync=chmodFixSync(e.lchmodSync);e.stat=statFix(e.stat);e.fstat=statFix(e.fstat);e.lstat=statFix(e.lstat);e.statSync=statFixSync(e.statSync);e.fstatSync=statFixSync(e.fstatSync);e.lstatSync=statFixSync(e.lstatSync);if(!e.lchmod){e.lchmod=function(e,t,r){if(r)process.nextTick(r)};e.lchmodSync=function(){}}if(!e.lchown){e.lchown=function(e,t,r,a){if(a)process.nextTick(a)};e.lchownSync=function(){}}if(u==="win32"){e.rename=function(t){return function(r,a,o){var s=Date.now();var u=0;t(r,a,(function CB(c){if(c&&(c.code==="EACCES"||c.code==="EPERM")&&Date.now()-s<6e4){setTimeout((function(){e.stat(a,(function(e,s){if(e&&e.code==="ENOENT")t(r,a,CB);else o(c)}))}),u);if(u<100)u+=10;return}if(o)o(c)}))}}(e.rename)}e.read=function(t){function read(r,a,o,s,u,c){var d;if(c&&typeof c==="function"){var f=0;d=function(p,h,v){if(p&&p.code==="EAGAIN"&&f<10){f++;return t.call(e,r,a,o,s,u,d)}c.apply(this,arguments)}}return t.call(e,r,a,o,s,u,d)}if(Object.setPrototypeOf)Object.setPrototypeOf(read,t);return read}(e.read);e.readSync=function(t){return function(r,a,o,s,u){var c=0;while(true){try{return t.call(e,r,a,o,s,u)}catch(e){if(e.code==="EAGAIN"&&c<10){c++;continue}throw e}}}}(e.readSync);function patchLchmod(e){e.lchmod=function(t,r,o){e.open(t,a.O_WRONLY|a.O_SYMLINK,r,(function(t,a){if(t){if(o)o(t);return}e.fchmod(a,r,(function(t){e.close(a,(function(e){if(o)o(t||e)}))}))}))};e.lchmodSync=function(t,r){var o=e.openSync(t,a.O_WRONLY|a.O_SYMLINK,r);var s=true;var u;try{u=e.fchmodSync(o,r);s=false}finally{if(s){try{e.closeSync(o)}catch(e){}}else{e.closeSync(o)}}return u}}function patchLutimes(e){if(a.hasOwnProperty("O_SYMLINK")){e.lutimes=function(t,r,o,s){e.open(t,a.O_SYMLINK,(function(t,a){if(t){if(s)s(t);return}e.futimes(a,r,o,(function(t){e.close(a,(function(e){if(s)s(t||e)}))}))}))};e.lutimesSync=function(t,r,o){var s=e.openSync(t,a.O_SYMLINK);var u;var c=true;try{u=e.futimesSync(s,r,o);c=false}finally{if(c){try{e.closeSync(s)}catch(e){}}else{e.closeSync(s)}}return u}}else{e.lutimes=function(e,t,r,a){if(a)process.nextTick(a)};e.lutimesSync=function(){}}}function chmodFix(t){if(!t)return t;return function(r,a,o){return t.call(e,r,a,(function(e){if(chownErOk(e))e=null;if(o)o.apply(this,arguments)}))}}function chmodFixSync(t){if(!t)return t;return function(r,a){try{return t.call(e,r,a)}catch(e){if(!chownErOk(e))throw e}}}function chownFix(t){if(!t)return t;return function(r,a,o,s){return t.call(e,r,a,o,(function(e){if(chownErOk(e))e=null;if(s)s.apply(this,arguments)}))}}function chownFixSync(t){if(!t)return t;return function(r,a,o){try{return t.call(e,r,a,o)}catch(e){if(!chownErOk(e))throw e}}}function statFix(t){if(!t)return t;return function(r,a,o){if(typeof a==="function"){o=a;a=null}function callback(e,t){if(t){if(t.uid<0)t.uid+=4294967296;if(t.gid<0)t.gid+=4294967296}if(o)o.apply(this,arguments)}return a?t.call(e,r,a,callback):t.call(e,r,callback)}}function statFixSync(t){if(!t)return t;return function(r,a){var o=a?t.call(e,r,a):t.call(e,r);if(o){if(o.uid<0)o.uid+=4294967296;if(o.gid<0)o.gid+=4294967296}return o}}function chownErOk(e){if(!e)return true;if(e.code==="ENOSYS")return true;var t=!process.getuid||process.getuid()!==0;if(t){if(e.code==="EINVAL"||e.code==="EPERM")return true}return false}}},4967:(e,t,r)=>{"use strict";var a=r(2037);var o=e.exports=function(){if(a.type()=="Windows_NT"){return false}var e=/UTF-?8$/i;var t=process.env.LC_ALL||process.env.LC_CTYPE||process.env.LANG;return e.test(t)}},3193:(e,t,r)=>{try{var a=r(3837);if(typeof a.inherits!=="function")throw"";e.exports=a.inherits}catch(t){e.exports=r(1140)}},1140:e=>{if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},7787:(e,t,r)=>{"use strict";var a=r(2726);e.exports=function(e){if(a(e)){return false}if(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false}},7394:e=>{"use strict";e.exports=e=>{if(Number.isNaN(e)){return false}if(e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false}},6116:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return t.call(e)=="[object Array]"}},8526:(module,__unused_webpack_exports,__nccwpck_require__)=>{var fs=__nccwpck_require__(7147);var path=__nccwpck_require__(1017);var os=__nccwpck_require__(2037);var runtimeRequire=true?eval("require"):0;var vars=process.config&&process.config.variables||{};var prebuildsOnly=!!process.env.PREBUILDS_ONLY;var abi=process.versions.modules;var runtime=isElectron()?"electron":"node";var arch=os.arch();var platform=os.platform();var libc=process.env.LIBC||(isAlpine(platform)?"musl":"glibc");var armv=process.env.ARM_VERSION||(arch==="arm64"?"8":vars.arm_version)||"";var uv=(process.versions.uv||"").split(".")[0];module.exports=load;function load(e){return runtimeRequire(load.path(e))}load.path=function(e){e=path.resolve(e||".");try{var t=runtimeRequire(path.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");if(process.env[t+"_PREBUILD"])e=process.env[t+"_PREBUILD"]}catch(e){}if(!prebuildsOnly){var r=getFirst(path.join(e,"build/Release"),matchBuild);if(r)return r;var a=getFirst(path.join(e,"build/Debug"),matchBuild);if(a)return a}var o=resolve(e);if(o)return o;var s=resolve(path.dirname(process.execPath));if(s)return s;var u=["platform="+platform,"arch="+arch,"runtime="+runtime,"abi="+abi,"uv="+uv,armv?"armv="+armv:"","libc="+libc,"node="+process.versions.node,process.versions&&process.versions.electron?"electron="+process.versions.electron:"",true?"webpack=true":0].filter(Boolean).join(" ");throw new Error("No native build was found for "+u+"\n loaded from: "+e+"\n");function resolve(e){var t=path.join(e,"prebuilds",platform+"-"+arch);var r=readdirSync(t).map(parseTags);var a=r.filter(matchTags(runtime,abi));var o=a.sort(compareTags(runtime))[0];if(o)return path.join(t,o.file)}};function readdirSync(e){try{return fs.readdirSync(e)}catch(e){return[]}}function getFirst(e,t){var r=readdirSync(e).filter(t);return r[0]&&path.join(e,r[0])}function matchBuild(e){return/\.node$/.test(e)}function parseTags(e){var t=e.split(".");var r=t.pop();var a={file:e,specificity:0};if(r!=="node")return;for(var o=0;or.specificity?-1:1}else{return 0}}}function isElectron(){if(process.versions&&process.versions.electron)return true;if(process.env.ELECTRON_RUN_AS_NODE)return true;return typeof window!=="undefined"&&window.process&&window.process.type==="renderer"}function isAlpine(e){return e==="linux"&&fs.existsSync("/etc/alpine-release")}load.parseTags=parseTags;load.matchTags=matchTags;load.compareTags=compareTags},5841:(e,t,r)=>{"use strict";var a=r(7147);var o=r(1517);var s=r(7081);e.exports=t;var u=process.version.substr(1).replace(/-.*$/,"").split(".").map((function(e){return+e}));var c=["build","clean","configure","package","publish","reveal","testbinary","testpackage","unpublish"];var d="napi_build_version=";e.exports.get_napi_version=function(e){var t=process.versions.napi;if(!t){if(u[0]===9&&u[1]>=3)t=2;else if(u[0]===8)t=1}return t};e.exports.get_napi_version_as_string=function(t){var r=e.exports.get_napi_version(t);return r?""+r:""};e.exports.validate_package_json=function(t,r){var a=t.binary;var o=pathOK(a.module_path);var s=pathOK(a.remote_path);var u=pathOK(a.package_name);var c=e.exports.get_napi_build_versions(t,r,true);var d=e.exports.get_napi_build_versions_raw(t);if(c){c.forEach((function(e){if(!(parseInt(e,10)===e&&e>0)){throw new Error("All values specified in napi_versions must be positive integers.")}}))}if(c&&(!o||!s&&!u)){throw new Error("When napi_versions is specified; module_path and either remote_path or "+"package_name must contain the substitution string '{napi_build_version}`.")}if((o||s||u)&&!d){throw new Error("When the substitution string '{napi_build_version}` is specified in "+"module_path, remote_path, or package_name; napi_versions must also be specified.")}if(c&&!e.exports.get_best_napi_build_version(t,r)&&e.exports.build_napi_only(t)){throw new Error("The N-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports N-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}if(d&&!c&&e.exports.build_napi_only(t)){throw new Error("The N-API version of this Node instance is "+e.exports.get_napi_version(r?r.target:undefined)+". "+"This module supports N-API version(s) "+e.exports.get_napi_build_versions_raw(t)+". "+"This Node instance cannot run this module.")}};function pathOK(e){return e&&(e.indexOf("{napi_build_version}")!==-1||e.indexOf("{node_napi_label}")!==-1)}e.exports.expand_commands=function(t,r,a){var o=[];var s=e.exports.get_napi_build_versions(t,r);a.forEach((function(a){if(s&&a.name==="install"){var u=e.exports.get_best_napi_build_version(t,r);var f=u?[d+u]:[];o.push({name:a.name,args:f})}else if(s&&c.indexOf(a.name)!==-1){s.forEach((function(e){var t=a.args.slice();t.push(d+e);o.push({name:a.name,args:t})}))}else{o.push(a)}}));return o};e.exports.get_napi_build_versions=function(t,r,a){var o=[];var u=e.exports.get_napi_version(r?r.target:undefined);if(t.binary&&t.binary.napi_versions){t.binary.napi_versions.forEach((function(e){var t=o.indexOf(e)!==-1;if(!t&&u&&e<=u){o.push(e)}else if(a&&!t&&u){s.info("This Node instance does not support builds for N-API version",e)}}))}if(r&&r["build-latest-napi-version-only"]){var c=0;o.forEach((function(e){if(e>c)c=e}));o=c?[c]:[]}return o.length?o:undefined};e.exports.get_napi_build_versions_raw=function(e){var t=[];if(e.binary&&e.binary.napi_versions){e.binary.napi_versions.forEach((function(e){if(t.indexOf(e)===-1){t.push(e)}}))}return t.length?t:undefined};e.exports.get_command_arg=function(e){return d+e};e.exports.get_napi_build_version_from_command_args=function(e){for(var t=0;ta&&e<=s){a=e}}))}return a===0?undefined:a};e.exports.build_napi_only=function(e){return e.binary&&e.binary.package_name&&e.binary.package_name.indexOf("{node_napi_label}")===-1}},7595:(e,t,r)=>{"use strict";e.exports=t;var a=r(1017);var o=r(7849);var s=r(7310);var u=r(5092);var c=r(5841);var d;if(process.env.NODE_PRE_GYP_ABI_CROSSWALK){d=require(process.env.NODE_PRE_GYP_ABI_CROSSWALK)}else{d=r(1929)}var f={};Object.keys(d).forEach((function(e){var t=e.split(".")[0];if(!f[t]){f[t]=e}}));function get_electron_abi(e,t){if(!e){throw new Error("get_electron_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if electron is the target.")}var r=o.parse(t);return e+"-v"+r.major+"."+r.minor}e.exports.get_electron_abi=get_electron_abi;function get_node_webkit_abi(e,t){if(!e){throw new Error("get_node_webkit_abi requires valid runtime arg")}if(typeof t==="undefined"){throw new Error("Empty target version is not supported if node-webkit is the target.")}return e+"-v"+t}e.exports.get_node_webkit_abi=get_node_webkit_abi;function get_node_abi(e,t){if(!e){throw new Error("get_node_abi requires valid runtime arg")}if(!t){throw new Error("get_node_abi requires valid process.versions object")}var r=o.parse(t.node);if(r.major===0&&r.minor%2){return e+"-v"+t.node}else{return t.modules?e+"-v"+ +t.modules:"v8-"+t.v8.split(".").slice(0,2).join(".")}}e.exports.get_node_abi=get_node_abi;function get_runtime_abi(e,t){if(!e){throw new Error("get_runtime_abi requires valid runtime arg")}if(e==="node-webkit"){return get_node_webkit_abi(e,t||process.versions["node-webkit"])}else if(e==="electron"){return get_electron_abi(e,t||process.versions.electron)}else{if(e!="node"){throw new Error("Unknown Runtime: '"+e+"'")}if(!t){return get_node_abi(e,process.versions)}else{var r;if(d[t]){r=d[t]}else{var a=t.split(".").map((function(e){return+e}));if(a.length!=3){throw new Error("Unknown target version: "+t)}var o=a[0];var s=a[1];var u=a[2];if(o===1){while(true){if(s>0)--s;if(u>0)--u;var c=""+o+"."+s+"."+u;if(d[c]){r=d[c];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+c+" as ABI compatible target");break}if(s===0&&u===0){break}}}else if(o>=2){if(f[o]){r=d[f[o]];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+f[o]+" as ABI compatible target")}}else if(o===0){if(a[1]%2===0){while(--u>0){var p=""+o+"."+s+"."+u;if(d[p]){r=d[p];console.log("Warning: node-pre-gyp could not find exact match for "+t);console.log("Warning: but node-pre-gyp successfully choose "+p+" as ABI compatible target");break}}}}}if(!r){throw new Error("Unsupported target version: "+t)}var h={node:t,v8:r.v8+".0",modules:r.node_abi>1?r.node_abi:undefined};return get_node_abi(e,h)}}}e.exports.get_runtime_abi=get_runtime_abi;var p=["module_name","module_path","host"];function validate_config(e,t){var r=e.name+" package.json is not node-pre-gyp ready:\n";var a=[];if(!e.main){a.push("main")}if(!e.version){a.push("version")}if(!e.name){a.push("name")}if(!e.binary){a.push("binary")}var o=e.binary;p.forEach((function(e){if(a.indexOf("binary")>-1){a.pop("binary")}if(!o||o[e]===undefined||o[e]===""){a.push("binary."+e)}}));if(a.length>=1){throw new Error(r+"package.json must declare these properties: \n"+a.join("\n"))}if(o){var u=s.parse(o.host).protocol;if(u==="http:"){throw new Error("'host' protocol ("+u+") is invalid - only 'https:' is accepted")}}c.validate_package_json(e,t)}e.exports.validate_config=validate_config;function eval_template(e,t){Object.keys(t).forEach((function(r){var a="{"+r+"}";while(e.indexOf(a)>-1){e=e.replace(a,t[r])}}));return e}function fix_slashes(e){if(e.slice(-1)!="/"){return e+"/"}return e}function drop_double_slashes(e){return e.replace(/\/\//g,"/")}function get_process_runtime(e){var t="node";if(e["node-webkit"]){t="node-webkit"}else if(e.electron){t="electron"}return t}e.exports.get_process_runtime=get_process_runtime;var h="{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz";var v="";e.exports.evaluate=function(e,t,r){t=t||{};validate_config(e,t);var d=e.version;var f=o.parse(d);var p=t.runtime||get_process_runtime(process.versions);var _={name:e.name,configuration:Boolean(t.debug)?"Debug":"Release",debug:t.debug,module_name:e.binary.module_name,version:f.version,prerelease:f.prerelease.length?f.prerelease.join("."):"",build:f.build.length?f.build.join("."):"",major:f.major,minor:f.minor,patch:f.patch,runtime:p,node_abi:get_runtime_abi(p,t.target),node_abi_napi:c.get_napi_version(t.target)?"napi":get_runtime_abi(p,t.target),napi_version:c.get_napi_version(t.target),napi_build_version:r||"",node_napi_label:r?"napi-v"+r:get_runtime_abi(p,t.target),target:t.target||"",platform:t.target_platform||process.platform,target_platform:t.target_platform||process.platform,arch:t.target_arch||process.arch,target_arch:t.target_arch||process.arch,libc:t.target_libc||u.family||"unknown",module_main:e.main,toolset:t.toolset||""};var g=process.env["npm_config_"+_.module_name+"_binary_host_mirror"]||e.binary.host;_.host=fix_slashes(eval_template(g,_));_.module_path=eval_template(e.binary.module_path,_);if(t.module_root){_.module_path=a.join(t.module_root,_.module_path)}else{_.module_path=a.resolve(_.module_path)}_.module=a.join(_.module_path,_.module_name+".node");_.remote_path=e.binary.remote_path?drop_double_slashes(fix_slashes(eval_template(e.binary.remote_path,_))):v;var y=e.binary.package_name?e.binary.package_name:h;_.package_name=eval_template(y,_);_.staged_tarball=a.join("build/stage",_.remote_path,_.package_name);_.hosted_path=s.resolve(_.host,_.remote_path);_.hosted_tarball=s.resolve(_.hosted_path,_.package_name);return _}},6444:(e,t,r)=>{var a=process.env.DEBUG_NOPT||process.env.NOPT_DEBUG?function(){console.error.apply(console,arguments)}:function(){};var o=r(7310),s=r(1017),u=r(2781).Stream,c=r(8529),d=r(2037);e.exports=t=nopt;t.clean=clean;t.typeDefs={String:{type:String,validate:validateString},Boolean:{type:Boolean,validate:validateBoolean},url:{type:o,validate:validateUrl},Number:{type:Number,validate:validateNumber},path:{type:s,validate:validatePath},Stream:{type:u,validate:validateStream},Date:{type:Date,validate:validateDate}};function nopt(e,r,o,s){o=o||process.argv;e=e||{};r=r||{};if(typeof s!=="number")s=2;a(e,r,o,s);o=o.slice(s);var u={},c,d={remain:[],cooked:o,original:o.slice(0)};parse(o,u,d.remain,e,r);clean(u,e,t.typeDefs);u.argv=d;Object.defineProperty(u.argv,"toString",{value:function(){return this.original.map(JSON.stringify).join(" ")},enumerable:false});return u}function clean(e,r,o){o=o||t.typeDefs;var s={},u=[false,true,null,String,Array];Object.keys(e).forEach((function(c){if(c==="argv")return;var d=e[c],f=Array.isArray(d),p=r[c];if(!f)d=[d];if(!p)p=u;if(p===Array)p=u.concat(Array);if(!Array.isArray(p))p=[p];a("val=%j",d);a("types=",p);d=d.map((function(u){if(typeof u==="string"){a("string %j",u);u=u.trim();if(u==="null"&&~p.indexOf(null)||u==="true"&&(~p.indexOf(true)||~p.indexOf(Boolean))||u==="false"&&(~p.indexOf(false)||~p.indexOf(Boolean))){u=JSON.parse(u);a("jsonable %j",u)}else if(~p.indexOf(Number)&&!isNaN(u)){a("convert to number",u);u=+u}else if(~p.indexOf(Date)&&!isNaN(Date.parse(u))){a("convert to date",u);u=new Date(u)}}if(!r.hasOwnProperty(c)){return u}if(u===false&&~p.indexOf(null)&&!(~p.indexOf(false)||~p.indexOf(Boolean))){u=null}var d={};d[c]=u;a("prevalidated val",d,u,r[c]);if(!validate(d,c,u,r[c],o)){if(t.invalidHandler){t.invalidHandler(c,u,r[c],e)}else if(t.invalidHandler!==false){a("invalid: "+c+"="+u,r[c])}return s}a("validated val",d,u,r[c]);return d[c]})).filter((function(e){return e!==s}));if(!d.length&&p.indexOf(Array)===-1){a("VAL HAS NO LENGTH, DELETE IT",d,c,p.indexOf(Array));delete e[c]}else if(f){a(f,e[c],d);e[c]=d}else e[c]=d[0];a("k=%s val=%j",c,d,e[c])}))}function validateString(e,t,r){e[t]=String(r)}function validatePath(e,t,r){if(r===true)return false;if(r===null)return true;r=String(r);var a=process.platform==="win32",o=a?/^~(\/|\\)/:/^~\//,u=d.homedir();if(u&&r.match(o)){e[t]=s.resolve(u,r.substr(2))}else{e[t]=s.resolve(r)}return true}function validateNumber(e,t,r){a("validate Number %j %j %j",t,r,isNaN(r));if(isNaN(r))return false;e[t]=+r}function validateDate(e,t,r){var o=Date.parse(r);a("validate Date %j %j %j",t,r,o);if(isNaN(o))return false;e[t]=new Date(r)}function validateBoolean(e,t,r){if(r instanceof Boolean)r=r.valueOf();else if(typeof r==="string"){if(!isNaN(r))r=!!+r;else if(r==="null"||r==="false")r=false;else r=true}else r=!!r;e[t]=r}function validateUrl(e,t,r){r=o.parse(String(r));if(!r.host)return false;e[t]=r.href}function validateStream(e,t,r){if(!(r instanceof u))return false;e[t]=r}function validate(e,t,r,o,s){if(Array.isArray(o)){for(var u=0,c=o.length;u1){var _=h.indexOf("=");if(_>-1){v=true;var g=h.substr(_+1);h=h.substr(0,_);e.splice(p,1,h,g)}var y=resolveShort(h,s,f,d);a("arg=%j shRes=%j",h,y);if(y){a(h,y);e.splice.apply(e,[p,1].concat(y));if(h!==y[0]){p--;continue}}h=h.replace(/^-+/,"");var m=null;while(h.toLowerCase().indexOf("no-")===0){m=!m;h=h.substr(3)}if(d[h])h=d[h];var w=o[h];var x=Array.isArray(w);if(x&&w.length===1){x=false;w=w[0]}var E=w===Array||x&&w.indexOf(Array)!==-1;if(!o.hasOwnProperty(h)&&t.hasOwnProperty(h)){if(!Array.isArray(t[h]))t[h]=[t[h]];E=true}var S,k=e[p+1];var R=typeof m==="boolean"||w===Boolean||x&&w.indexOf(Boolean)!==-1||typeof w==="undefined"&&!v||k==="false"&&(w===null||x&&~w.indexOf(null));if(R){S=!m;if(k==="true"||k==="false"){S=JSON.parse(k);k=null;if(m)S=!S;p++}if(x&&k){if(~w.indexOf(k)){S=k;p++}else if(k==="null"&&~w.indexOf(null)){S=null;p++}else if(!k.match(/^-{2,}[^-]/)&&!isNaN(k)&&~w.indexOf(Number)){S=+k;p++}else if(!k.match(/^-[^-]/)&&~w.indexOf(String)){S=k;p++}}if(E)(t[h]=t[h]||[]).push(S);else t[h]=S;continue}if(w===String){if(k===undefined){k=""}else if(k.match(/^-{1,2}[^-]+/)){k="";p--}}if(k&&k.match(/^-{2,}$/)){k=undefined;p--}S=k===undefined?true:k;if(E)(t[h]=t[h]||[]).push(S);else t[h]=S;p++;continue}r.push(h)}}function resolveShort(e,t,r,o){e=e.replace(/^-+/,"");if(o[e]===e)return null;if(t[e]){if(t[e]&&!Array.isArray(t[e]))t[e]=t[e].split(/\s+/);return t[e]}var s=t.___singles;if(!s){s=Object.keys(t).filter((function(e){return e.length===1})).reduce((function(e,t){e[t]=true;return e}),{});t.___singles=s;a("shorthand singles",s)}var u=e.split("").filter((function(e){return s[e]}));if(u.join("")===e)return u.map((function(e){return t[e]})).reduce((function(e,t){return e.concat(t)}),[]);if(o[e]&&!t[e])return null;if(r[e])e=r[e];if(t[e]&&!Array.isArray(t[e]))t[e]=t[e].split(/\s+/);return t[e]}},7081:(e,t,r)=>{"use strict";var a=r(5671);var o=r(4398);var s=r(2361).EventEmitter;var u=t=e.exports=new s;var c=r(3837);var d=r(5354);var f=r(8061);d(true);var p=process.stderr;Object.defineProperty(u,"stream",{set:function(e){p=e;if(this.gauge)this.gauge.setWriteTo(p,p)},get:function(){return p}});var h;u.useColor=function(){return h!=null?h:p.isTTY};u.enableColor=function(){h=true;this.gauge.setTheme({hasColor:h,hasUnicode:v})};u.disableColor=function(){h=false;this.gauge.setTheme({hasColor:h,hasUnicode:v})};u.level="info";u.gauge=new o(p,{enabled:false,theme:{hasColor:u.useColor()},template:[{type:"progressbar",length:20},{type:"activityIndicator",kerning:1,length:1},{type:"section",default:""},":",{type:"logline",kerning:1,default:""}]});u.tracker=new a.TrackerGroup;u.progressEnabled=u.gauge.isEnabled();var v;u.enableUnicode=function(){v=true;this.gauge.setTheme({hasColor:this.useColor(),hasUnicode:v})};u.disableUnicode=function(){v=false;this.gauge.setTheme({hasColor:this.useColor(),hasUnicode:v})};u.setGaugeThemeset=function(e){this.gauge.setThemeset(e)};u.setGaugeTemplate=function(e){this.gauge.setTemplate(e)};u.enableProgress=function(){if(this.progressEnabled)return;this.progressEnabled=true;this.tracker.on("change",this.showProgress);if(this._pause)return;this.gauge.enable()};u.disableProgress=function(){if(!this.progressEnabled)return;this.progressEnabled=false;this.tracker.removeListener("change",this.showProgress);this.gauge.disable()};var _=["newGroup","newItem","newStream"];var mixinLog=function(e){Object.keys(u).forEach((function(t){if(t[0]==="_")return;if(_.filter((function(e){return e===t})).length)return;if(e[t])return;if(typeof u[t]!=="function")return;var r=u[t];e[t]=function(){return r.apply(u,arguments)}}));if(e instanceof a.TrackerGroup){_.forEach((function(t){var r=e[t];e[t]=function(){return mixinLog(r.apply(e,arguments))}}))}return e};_.forEach((function(e){u[e]=function(){return mixinLog(this.tracker[e].apply(this.tracker,arguments))}}));u.clearProgress=function(e){if(!this.progressEnabled)return e&&process.nextTick(e);this.gauge.hide(e)};u.showProgress=function(e,t){if(!this.progressEnabled)return;var r={};if(e)r.section=e;var a=u.record[u.record.length-1];if(a){r.subsection=a.prefix;var o=u.disp[a.level]||a.level;var s=this._format(o,u.style[a.level]);if(a.prefix)s+=" "+this._format(a.prefix,this.prefixStyle);s+=" "+a.message.split(/\r?\n/)[0];r.logline=s}r.completed=t||this.tracker.completed();this.gauge.show(r)}.bind(u);u.pause=function(){this._paused=true;if(this.progressEnabled)this.gauge.disable()};u.resume=function(){if(!this._paused)return;this._paused=false;var e=this._buffer;this._buffer=[];e.forEach((function(e){this.emitLog(e)}),this);if(this.progressEnabled)this.gauge.enable()};u._buffer=[];var g=0;u.record=[];u.maxRecordSize=1e4;u.log=function(e,t,r){var a=this.levels[e];if(a===undefined){return this.emit("error",new Error(c.format("Undefined log level: %j",e)))}var o=new Array(arguments.length-2);var s=null;for(var u=2;up/10){var v=Math.floor(p*.9);this.record=this.record.slice(-1*v)}this.emitLog(f)}.bind(u);u.emitLog=function(e){if(this._paused){this._buffer.push(e);return}if(this.progressEnabled)this.gauge.pulse(e.prefix);var t=this.levels[e.level];if(t===undefined)return;if(t0&&!isFinite(t))return;var r=u.disp[e.level]!=null?u.disp[e.level]:e.level;this.clearProgress();e.message.split(/\r?\n/).forEach((function(t){if(this.heading){this.write(this.heading,this.headingStyle);this.write(" ")}this.write(r,u.style[e.level]);var a=e.prefix||"";if(a)this.write(" ");this.write(a,this.prefixStyle);this.write(" "+t+"\n")}),this);this.showProgress()};u._format=function(e,t){if(!p)return;var r="";if(this.useColor()){t=t||{};var a=[];if(t.fg)a.push(t.fg);if(t.bg)a.push("bg"+t.bg[0].toUpperCase()+t.bg.slice(1));if(t.bold)a.push("bold");if(t.underline)a.push("underline");if(t.inverse)a.push("inverse");if(a.length)r+=f.color(a);if(t.beep)r+=f.beep()}r+=e;if(this.useColor()){r+=f.color("reset")}return r};u.write=function(e,t){if(!p)return;p.write(this._format(e,t))};u.addLevel=function(e,t,r,a){if(a==null)a=e;this.levels[e]=t;this.style[e]=r;if(!this[e]){this[e]=function(){var t=new Array(arguments.length+1);t[0]=e;for(var r=0;r{"use strict";e.exports=Number.isNaN||function(e){return e!==e}},3902:e=>{"use strict"; /* object-assign (c) Sindre Sorhus @@ -9,4 +9,4 @@ object-assign * * Copyright (c) 2014-present, Jon Schlinkert. * Released under the MIT License. - */var isNumber=function(e){if(typeof e==="number"){return e-e===0}if(typeof e==="string"&&e.trim()!==""){return Number.isFinite?Number.isFinite(+e):isFinite(+e)}return false};const toRegexRange=(e,t,r)=>{if(isNumber(e)===false){throw new TypeError("toRegexRange: expected the first argument to be a number")}if(t===void 0||e===t){return String(e)}if(isNumber(t)===false){throw new TypeError("toRegexRange: expected the second argument to be a number.")}let a=Object.assign({relaxZeros:true},r);if(typeof a.strictZeros==="boolean"){a.relaxZeros=a.strictZeros===false}let o=String(a.relaxZeros);let s=String(a.shorthand);let u=String(a.capture);let c=String(a.wrap);let d=e+":"+t+"="+o+s+u+c;if(toRegexRange.cache.hasOwnProperty(d)){return toRegexRange.cache[d].result}let f=Math.min(e,t);let p=Math.max(e,t);if(Math.abs(f-p)===1){let r=e+"|"+t;if(a.capture){return`(${r})`}if(a.wrap===false){return r}return`(?:${r})`}let h=hasPadding(e)||hasPadding(t);let v={min:e,max:t,a:f,b:p};let _=[];let g=[];if(h){v.isPadded=h;v.maxLen=String(v.max).length}if(f<0){let e=p<0?Math.abs(p):1;g=splitToPatterns(e,Math.abs(f),v,a);f=v.a=0}if(p>=0){_=splitToPatterns(f,p,v,a)}v.negatives=g;v.positives=_;v.result=collatePatterns(g,_,a);if(a.capture===true){v.result=`(${v.result})`}else if(a.wrap!==false&&_.length+g.length>1){v.result=`(?:${v.result})`}toRegexRange.cache[d]=v;return v.result};function collatePatterns(e,t,r){let a=filterPatterns(e,t,"-",false,r)||[];let o=filterPatterns(t,e,"",false,r)||[];let s=filterPatterns(e,t,"-?",true,r)||[];let u=a.concat(s).concat(o);return u.join("|")}function splitToRanges(e,t){let r=1;let a=1;let o=countNines(e,r);let s=new Set([t]);while(e<=o&&o<=t){s.add(o);r+=1;o=countNines(e,r)}o=countZeros(t+1,a)-1;while(e1){c.count.pop()}c.count.push(d.count[0]);c.string=c.pattern+toQuantifier(c.count);u=t+1;continue}if(r.isPadded){f=padZeros(t,r,a)}d.string=f+d.pattern+toQuantifier(d.count);s.push(d);u=t+1;c=d}return s}function filterPatterns(e,t,r,a,o){let s=[];for(let o of e){let{string:e}=o;if(!a&&!contains(t,"string",e)){s.push(r+e)}if(a&&contains(t,"string",e)){s.push(r+e)}}return s}function zip(e,t){let r=[];for(let a=0;at?1:t>e?-1:0}function contains(e,t,r){return e.some((e=>e[t]===r))}function countNines(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function countZeros(e,t){return e-e%Math.pow(10,t)}function toQuantifier(e){let[t=0,r=""]=e;if(r||t>1){return`{${t+(r?","+r:"")}}`}return""}function toCharacterClass(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function hasPadding(e){return/^-?(0+)\d/.test(e)}function padZeros(e,t,r){if(!t.isPadded){return e}let a=Math.abs(t.maxLen-String(e).length);let o=r.relaxZeros!==false;switch(a){case 0:return"";case 1:return o?"0?":"0";case 2:return o?"0{0,2}":"00";default:{return o?`0{0,${a}}`:`0{${a}}`}}}toRegexRange.cache={};toRegexRange.clearCache=()=>toRegexRange.cache={};var R=toRegexRange;const isObject=e=>e!==null&&typeof e==="object"&&!Array.isArray(e);const transform=e=>t=>e===true?Number(t):String(t);const isValidValue=e=>typeof e==="number"||typeof e==="string"&&e!=="";const isNumber$1=e=>Number.isInteger(+e);const zeros=e=>{let t=`${e}`;let r=-1;if(t[0]==="-")t=t.slice(1);if(t==="0")return false;while(t[++r]==="0");return r>0};const stringify$1=(e,t,r)=>{if(typeof e==="string"||typeof t==="string"){return true}return r.stringify===true};const pad=(e,t,r)=>{if(t>0){let r=e[0]==="-"?"-":"";if(r)e=e.slice(1);e=r+e.padStart(r?t-1:t,"0")}if(r===false){return String(e)}return e};const toMaxLen=(e,t)=>{let r=e[0]==="-"?"-":"";if(r){e=e.slice(1);t--}while(e.length{e.negatives.sort(((e,t)=>et?1:0));e.positives.sort(((e,t)=>et?1:0));let r=t.capture?"":"?:";let a="";let o="";let s;if(e.positives.length){a=e.positives.join("|")}if(e.negatives.length){o=`-(${r}${e.negatives.join("|")})`}if(a&&o){s=`${a}|${o}`}else{s=a||o}if(t.wrap){return`(${r}${s})`}return s};const toRange=(e,t,r,a)=>{if(r){return R(e,t,Object.assign({wrap:false},a))}let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`};const toRegex=(e,t,r)=>{if(Array.isArray(e)){let t=r.wrap===true;let a=r.capture?"":"?:";return t?`(${a}${e.join("|")})`:e.join("|")}return R(e,t,r)};const rangeError=(...e)=>new RangeError("Invalid range arguments: "+u.inspect(...e));const invalidRange=(e,t,r)=>{if(r.strictRanges===true)throw rangeError([e,t]);return[]};const invalidStep=(e,t)=>{if(t.strictRanges===true){throw new TypeError(`Expected step "${e}" to be a number`)}return[]};const fillNumbers=(e,t,r=1,a={})=>{let o=Number(e);let s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(a.strictRanges===true)throw rangeError([e,t]);return[]}if(o===0)o=0;if(s===0)s=0;let u=o>s;let c=String(e);let d=String(t);let f=String(r);r=Math.max(Math.abs(r),1);let p=zeros(c)||zeros(d)||zeros(f);let h=p?Math.max(c.length,d.length,f.length):0;let v=p===false&&stringify$1(e,t,a)===false;let _=a.transform||transform(v);if(a.toRegex&&r===1){return toRange(toMaxLen(e,h),toMaxLen(t,h),true,a)}let g={negatives:[],positives:[]};let push=e=>g[e<0?"negatives":"positives"].push(Math.abs(e));let y=[];let m=0;while(u?o>=s:o<=s){if(a.toRegex===true&&r>1){push(o)}else{y.push(pad(_(o,m),h,v))}o=u?o-r:o+r;m++}if(a.toRegex===true){return r>1?toSequence(g,a):toRegex(y,null,Object.assign({wrap:false},a))}return y};const fillLetters=(e,t,r=1,a={})=>{if(!isNumber$1(e)&&e.length>1||!isNumber$1(t)&&t.length>1){return invalidRange(e,t,a)}let o=a.transform||(e=>String.fromCharCode(e));let s=`${e}`.charCodeAt(0);let u=`${t}`.charCodeAt(0);let c=s>u;let d=Math.min(s,u);let f=Math.max(s,u);if(a.toRegex&&r===1){return toRange(d,f,false,a)}let p=[];let h=0;while(c?s>=u:s<=u){p.push(o(s,h));s=c?s-r:s+r;h++}if(a.toRegex===true){return toRegex(p,null,{wrap:false,options:a})}return p};const fill=(e,t,r,a={})=>{if(t==null&&isValidValue(e)){return[e]}if(!isValidValue(e)||!isValidValue(t)){return invalidRange(e,t,a)}if(typeof r==="function"){return fill(e,t,1,{transform:r})}if(isObject(r)){return fill(e,t,0,r)}let o=Object.assign({},a);if(o.capture===true)o.wrap=true;r=r||o.step||1;if(!isNumber$1(r)){if(r!=null&&!isObject(r))return invalidStep(r,o);return fill(e,t,1,r)}if(isNumber$1(e)&&isNumber$1(t)){return fillNumbers(e,t,r,o)}return fillLetters(e,t,Math.max(Math.abs(r),1),o)};var A=fill;const compile=(e,t={})=>{let walk=(e,r={})=>{let a=v.isInvalidBrace(r);let o=e.invalid===true&&t.escapeInvalid===true;let s=a===true||o===true;let u=t.escapeInvalid===true?"\\":"";let c="";if(e.isOpen===true){return u+e.value}if(e.isClose===true){return u+e.value}if(e.type==="open"){return s?u+e.value:"("}if(e.type==="close"){return s?u+e.value:")"}if(e.type==="comma"){return e.prev.type==="comma"?"":s?e.value:"|"}if(e.value){return e.value}if(e.nodes&&e.ranges>0){let r=v.reduce(e.nodes);let a=A(...r,Object.assign({},t,{wrap:false,toRegex:true}));if(a.length!==0){return r.length>1&&a.length>1?`(${a})`:a}}if(e.nodes){for(let t of e.nodes){c+=walk(t,e)}}return c};return walk(e)};var O=compile;const append=(e="",t="",r=false)=>{let a=[];e=[].concat(e);t=[].concat(t);if(!t.length)return e;if(!e.length){return r?v.flatten(t).map((e=>`{${e}}`)):t}for(let o of e){if(Array.isArray(o)){for(let e of o){a.push(append(e,t,r))}}else{for(let e of t){if(r===true&&typeof e==="string")e=`{${e}}`;a.push(Array.isArray(e)?append(o,e,r):o+e)}}}return v.flatten(a)};const expand=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit;let walk=(e,a={})=>{e.queue=[];let o=a;let s=a.queue;while(o.type!=="brace"&&o.type!=="root"&&o.parent){o=o.parent;s=o.queue}if(e.invalid||e.dollar){s.push(append(s.pop(),stringify(e,t)));return}if(e.type==="brace"&&e.invalid!==true&&e.nodes.length===2){s.push(append(s.pop(),["{}"]));return}if(e.nodes&&e.ranges>0){let a=v.reduce(e.nodes);if(v.exceedsLimit(...a,t.step,r)){throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.")}let o=A(...a,t);if(o.length===0){o=stringify(e,t)}s.push(append(s.pop(),o));e.nodes=[];return}let u=v.encloseBrace(e);let c=e.queue;let d=e;while(d.type!=="brace"&&d.type!=="root"&&d.parent){d=d.parent;c=d.queue}for(let t=0;t",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"};const{MAX_LENGTH:j,CHAR_BACKSLASH:N,CHAR_BACKTICK:L,CHAR_COMMA:I,CHAR_DOT:P,CHAR_LEFT_PARENTHESES:D,CHAR_RIGHT_PARENTHESES:M,CHAR_LEFT_CURLY_BRACE:W,CHAR_RIGHT_CURLY_BRACE:F,CHAR_LEFT_SQUARE_BRACKET:B,CHAR_RIGHT_SQUARE_BRACKET:$,CHAR_DOUBLE_QUOTE:U,CHAR_SINGLE_QUOTE:H,CHAR_NO_BREAK_SPACE:q,CHAR_ZERO_WIDTH_NOBREAK_SPACE:G}=C;const parse=(e,t={})=>{if(typeof e!=="string"){throw new TypeError("Expected a string")}let r=t||{};let a=typeof r.maxLength==="number"?Math.min(j,r.maxLength):j;if(e.length>a){throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${a})`)}let o={type:"root",input:e,nodes:[]};let s=[o];let u=o;let c=o;let d=0;let f=e.length;let p=0;let h=0;let v;const advance=()=>e[p++];const push=e=>{if(e.type==="text"&&c.type==="dot"){c.type="text"}if(c&&c.type==="text"&&e.type==="text"){c.value+=e.value;return}u.nodes.push(e);e.parent=u;e.prev=c;c=e;return e};push({type:"bos"});while(p0){if(u.ranges>0){u.ranges=0;let e=u.nodes.shift();u.nodes=[e,{type:"text",value:stringify(u)}]}push({type:"comma",value:v});u.commas++;continue}if(v===P&&h>0&&u.commas===0){let e=u.nodes;if(h===0||e.length===0){push({type:"text",value:v});continue}if(c.type==="dot"){u.range=[];c.value+=v;c.type="range";if(u.nodes.length!==3&&u.nodes.length!==5){u.invalid=true;u.ranges=0;c.type="text";continue}u.ranges++;u.args=[];continue}if(c.type==="range"){e.pop();let t=e[e.length-1];t.value+=c.value+v;c=t;u.ranges--;continue}push({type:"dot",value:v});continue}push({type:"text",value:v})}do{u=s.pop();if(u.type!=="root"){u.nodes.forEach((e=>{if(!e.nodes){if(e.type==="open")e.isOpen=true;if(e.type==="close")e.isClose=true;if(!e.nodes)e.type="text";e.invalid=true}}));let e=s[s.length-1];let t=e.nodes.indexOf(u);e.nodes.splice(t,1,...u.nodes)}}while(s.length>0);push({type:"eos"});return o};var K=parse;const braces=(e,t={})=>{let r=[];if(Array.isArray(e)){for(let a of e){let e=braces.create(a,t);if(Array.isArray(e)){r.push(...e)}else{r.push(e)}}}else{r=[].concat(braces.create(e,t))}if(t&&t.expand===true&&t.nodupes===true){r=[...new Set(r)]}return r};braces.parse=(e,t={})=>K(e,t);braces.stringify=(e,t={})=>{if(typeof e==="string"){return stringify(braces.parse(e,t),t)}return stringify(e,t)};braces.compile=(e,t={})=>{if(typeof e==="string"){e=braces.parse(e,t)}return O(e,t)};braces.expand=(e,t={})=>{if(typeof e==="string"){e=braces.parse(e,t)}let r=T(e,t);if(t.noempty===true){r=r.filter(Boolean)}if(t.nodupes===true){r=[...new Set(r)]}return r};braces.create=(e,t={})=>{if(e===""||e.length<3){return[e]}return t.expand!==true?braces.compile(e,t):braces.expand(e,t)};var z=braces;const V="\\\\/";const Y=`[^${V}]`;const Q="\\.";const X="\\+";const Z="\\?";const J="\\/";const ee="(?=.)";const te="[^/]";const ne=`(?:${J}|$)`;const re=`(?:^|${J})`;const ie=`${Q}{1,2}${ne}`;const ae=`(?!${Q})`;const oe=`(?!${re}${ie})`;const se=`(?!${Q}{0,1}${ne})`;const le=`(?!${ie})`;const ue=`[^.${J}]`;const ce=`${te}*?`;const de={DOT_LITERAL:Q,PLUS_LITERAL:X,QMARK_LITERAL:Z,SLASH_LITERAL:J,ONE_CHAR:ee,QMARK:te,END_ANCHOR:ne,DOTS_SLASH:ie,NO_DOT:ae,NO_DOTS:oe,NO_DOT_SLASH:se,NO_DOTS_SLASH:le,QMARK_NO_DOT:ue,STAR:ce,START_ANCHOR:re};const fe=Object.assign({},de,{SLASH_LITERAL:`[${V}]`,QMARK:Y,STAR:`${Y}*?`,DOTS_SLASH:`${Q}{1,2}(?:[${V}]|$)`,NO_DOT:`(?!${Q})`,NO_DOTS:`(?!(?:^|[${V}])${Q}{1,2}(?:[${V}]|$))`,NO_DOT_SLASH:`(?!${Q}{0,1}(?:[${V}]|$))`,NO_DOTS_SLASH:`(?!${Q}{1,2}(?:[${V}]|$))`,QMARK_NO_DOT:`[^.${V}]`,START_ANCHOR:`(?:^|[${V}])`,END_ANCHOR:`(?:[${V}]|$)`});const pe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};var he={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:pe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHAR:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:o.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===true?fe:de}};var be=createCommonjsModule((function(e,t){const r=process.platform==="win32";const{REGEX_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_GLOBAL:s,REGEX_REMOVE_BACKSLASH:u}=he;t.isObject=e=>e!==null&&typeof e==="object"&&!Array.isArray(e);t.hasRegexChars=e=>a.test(e);t.isRegexChar=e=>e.length===1&&t.hasRegexChars(e);t.escapeRegex=e=>e.replace(s,"\\$1");t.toPosixSlashes=e=>e.replace(/\\/g,"/");t.removeBackslashes=e=>e.replace(u,(e=>e==="\\"?"":e));t.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".");if(e.length===3&&+e[0]>=9||+e[0]===8&&+e[1]>=10){return true}return false};t.isWindows=e=>{if(e&&typeof e.windows==="boolean"){return e.windows}return r===true||o.sep==="\\"};t.escapeLast=(e,r,a)=>{let o=e.lastIndexOf(r,a);if(o===-1)return e;if(e[o-1]==="\\")return t.escapeLast(e,r,o-1);return e.slice(0,o)+"\\"+e.slice(o)}}));var ve=be.isObject;var _e=be.hasRegexChars;var ge=be.isRegexChar;var ye=be.escapeRegex;var me=be.toPosixSlashes;var we=be.removeBackslashes;var xe=be.supportsLookbehinds;var Ee=be.isWindows;var Se=be.escapeLast;const{CHAR_ASTERISK:ke,CHAR_AT:Re,CHAR_BACKWARD_SLASH:Ae,CHAR_COMMA:Oe,CHAR_DOT:Te,CHAR_EXCLAMATION_MARK:Ce,CHAR_FORWARD_SLASH:je,CHAR_LEFT_CURLY_BRACE:Ne,CHAR_LEFT_PARENTHESES:Le,CHAR_LEFT_SQUARE_BRACKET:Ie,CHAR_PLUS:Pe,CHAR_QUESTION_MARK:De,CHAR_RIGHT_CURLY_BRACE:Me,CHAR_RIGHT_PARENTHESES:We,CHAR_RIGHT_SQUARE_BRACKET:Fe}=he;const isPathSeparator=e=>e===je||e===Ae;var scan=(e,t)=>{let r=t||{};let a=e.length-1;let o=-1;let s=0;let u=0;let c=false;let d=false;let f=false;let p=0;let h;let v;let _=false;let eos=()=>o>=a;let advance=()=>{h=v;return e.charCodeAt(++o)};while(o0){g=e.slice(0,s);e=e.slice(s);u-=s}if(m&&c===true&&u>0){m=e.slice(0,u);w=e.slice(u)}else if(c===true){m="";w=e}else{m=e}if(m&&m!==""&&m!=="/"&&m!==e){if(isPathSeparator(m.charCodeAt(m.length-1))){m=m.slice(0,-1)}}if(r.unescape===true){if(w)w=be.removeBackslashes(w);if(m&&d===true){m=be.removeBackslashes(m)}}return{prefix:g,input:y,base:m,glob:w,negated:f,isGlob:c}};const{MAX_LENGTH:Be,POSIX_REGEX_SOURCE:$e,REGEX_NON_SPECIAL_CHAR:Ue,REGEX_SPECIAL_CHARS_BACKREF:He,REPLACEMENTS:qe}=he;const expandRange=(e,t)=>{if(typeof t.expandRange==="function"){return t.expandRange(...e,t)}e.sort();let r=`[${e.join("-")}]`;try{}catch(t){return e.map((e=>be.escapeRegex(e))).join("..")}return r};const negate=e=>{let t=1;while(e.peek()==="!"&&(e.peek(2)!=="("||e.peek(3)==="?")){e.advance();e.start++;t++}if(t%2===0){return false}e.negated=true;e.start++;return true};const syntaxError=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`;const parse$1=(e,t)=>{if(typeof e!=="string"){throw new TypeError("Expected a string")}e=qe[e]||e;let r=Object.assign({},t);let a=typeof r.maxLength==="number"?Math.min(Be,r.maxLength):Be;let o=e.length;if(o>a){throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${a}`)}let s={type:"bos",value:"",output:r.prepend||""};let u=[s];let c=r.capture?"":"?:";let d=be.isWindows(t);const f=he.globChars(d);const p=he.extglobChars(f);const{DOT_LITERAL:h,PLUS_LITERAL:v,SLASH_LITERAL:_,ONE_CHAR:g,DOTS_SLASH:y,NO_DOT:m,NO_DOT_SLASH:w,NO_DOTS_SLASH:x,QMARK:E,QMARK_NO_DOT:S,STAR:k,START_ANCHOR:R}=f;const globstar=e=>`(${c}(?:(?!${R}${e.dot?y:h}).)*?)`;let A=r.dot?"":m;let O=r.bash===true?globstar(r):k;let T=r.dot?E:S;if(r.capture){O=`(${O})`}if(typeof r.noext==="boolean"){r.noextglob=r.noext}let C={index:-1,start:0,consumed:"",output:"",backtrack:false,brackets:0,braces:0,parens:0,quotes:0,tokens:u};let j=[];let N=[];let L=s;let I;const eos=()=>C.index===o-1;const P=C.peek=(t=1)=>e[C.index+t];const D=C.advance=()=>e[++C.index];const append=e=>{C.output+=e.output!=null?e.output:e.value;C.consumed+=e.value||""};const increment=e=>{C[e]++;N.push(e)};const decrement=e=>{C[e]--;N.pop()};const push=e=>{if(L.type==="globstar"){let t=C.braces>0&&(e.type==="comma"||e.type==="brace");let r=j.length&&(e.type==="pipe"||e.type==="paren");if(e.type!=="slash"&&e.type!=="paren"&&!t&&!r){C.output=C.output.slice(0,-L.output.length);L.type="star";L.value="*";L.output=O;C.output+=L.output}}if(j.length&&e.type!=="paren"&&!p[e.value]){j[j.length-1].inner+=e.value}if(e.value||e.output)append(e);if(L&&L.type==="text"&&e.type==="text"){L.value+=e.value;return}e.prev=L;u.push(e);L=e};const extglobOpen=(e,t)=>{let a=Object.assign({},p[t],{conditions:1,inner:""});a.prev=L;a.parens=C.parens;a.output=C.output;let o=(r.capture?"(":"")+a.open;push({type:e,value:t,output:C.output?"":g});push({type:"paren",extglob:true,value:D(),output:o});increment("parens");j.push(a)};const extglobClose=t=>{let a=t.close+(r.capture?")":"");if(t.type==="negate"){let o=O;if(t.inner&&t.inner.length>1&&t.inner.includes("/")){o=globstar(r)}if(o!==O||eos()||/^\)+$/.test(e.slice(C.index+1))){a=t.close=")$))"+o}if(t.prev.type==="bos"&&eos()){C.negatedExtglob=true}}push({type:"paren",extglob:true,value:I,output:a});decrement("parens")};if(r.fastpaths!==false&&!/(^[*!]|[/{[()\]}"])/.test(e)){let t=false;let a=e.replace(He,((e,r,a,o,s,u)=>{if(o==="\\"){t=true;return e}if(o==="?"){if(r){return r+o+(s?E.repeat(s.length):"")}if(u===0){return T+(s?E.repeat(s.length):"")}return E.repeat(a.length)}if(o==="."){return h.repeat(a.length)}if(o==="*"){if(r){return r+o+(s?O:"")}return O}return r?e:"\\"+e}));if(t===true){if(r.unescape===true){a=a.replace(/\\/g,"")}else{a=a.replace(/\\+/g,(e=>e.length%2===0?"\\\\":e?"\\":""))}}C.output=a;return C}while(!eos()){I=D();if(I==="\0"){continue}if(I==="\\"){let t=P();if(t==="/"&&r.bash!==true){continue}if(t==="."||t===";"){continue}if(!t){I+="\\";push({type:"text",value:I});continue}let a=/^\\+/.exec(e.slice(C.index+1));let o=0;if(a&&a[0].length>2){o=a[0].length;C.index+=o;if(o%2!==0){I+="\\"}}if(r.unescape===true){I=D()||""}else{I+=D()||""}if(C.brackets===0){push({type:"text",value:I});continue}}if(C.brackets>0&&(I!=="]"||L.value==="["||L.value==="[^")){if(r.posix!==false&&I===":"){let e=L.value.slice(1);if(e.includes("[")){L.posix=true;if(e.includes(":")){let e=L.value.lastIndexOf("[");let t=L.value.slice(0,e);let r=L.value.slice(e+2);let a=$e[r];if(a){L.value=t+a;C.backtrack=true;D();if(!s.output&&u.indexOf(L)===1){s.output=g}continue}}}}if(I==="["&&P()!==":"||I==="-"&&P()==="]"){I="\\"+I}if(I==="]"&&(L.value==="["||L.value==="[^")){I="\\"+I}if(r.posix===true&&I==="!"&&L.value==="["){I="^"}L.value+=I;append({value:I});continue}if(C.quotes===1&&I!=='"'){I=be.escapeRegex(I);L.value+=I;append({value:I});continue}if(I==='"'){C.quotes=C.quotes===1?0:1;if(r.keepQuotes===true){push({type:"text",value:I})}continue}if(I==="("){push({type:"paren",value:I});increment("parens");continue}if(I===")"){if(C.parens===0&&r.strictBrackets===true){throw new SyntaxError(syntaxError("opening","("))}let e=j[j.length-1];if(e&&C.parens===e.parens+1){extglobClose(j.pop());continue}push({type:"paren",value:I,output:C.parens?")":"\\)"});decrement("parens");continue}if(I==="["){if(r.nobracket===true||!e.slice(C.index+1).includes("]")){if(r.nobracket!==true&&r.strictBrackets===true){throw new SyntaxError(syntaxError("closing","]"))}I="\\"+I}else{increment("brackets")}push({type:"bracket",value:I});continue}if(I==="]"){if(r.nobracket===true||L&&L.type==="bracket"&&L.value.length===1){push({type:"text",value:I,output:"\\"+I});continue}if(C.brackets===0){if(r.strictBrackets===true){throw new SyntaxError(syntaxError("opening","["))}push({type:"text",value:I,output:"\\"+I});continue}decrement("brackets");let e=L.value.slice(1);if(L.posix!==true&&e[0]==="^"&&!e.includes("/")){I="/"+I}L.value+=I;append({value:I});if(r.literalBrackets===false||be.hasRegexChars(e)){continue}let t=be.escapeRegex(L.value);C.output=C.output.slice(0,-L.value.length);if(r.literalBrackets===true){C.output+=t;L.value=t;continue}L.value=`(${c}${t}|${L.value})`;C.output+=L.value;continue}if(I==="{"&&r.nobrace!==true){push({type:"brace",value:I,output:"("});increment("braces");continue}if(I==="}"){if(r.nobrace===true||C.braces===0){push({type:"text",value:I,output:"\\"+I});continue}let e=")";if(C.dots===true){let t=u.slice();let a=[];for(let e=t.length-1;e>=0;e--){u.pop();if(t[e].type==="brace"){break}if(t[e].type!=="dots"){a.unshift(t[e].value)}}e=expandRange(a,r);C.backtrack=true}push({type:"brace",value:I,output:e});decrement("braces");continue}if(I==="|"){if(j.length>0){j[j.length-1].conditions++}push({type:"text",value:I});continue}if(I===","){let e=I;if(C.braces>0&&N[N.length-1]==="braces"){e="|"}push({type:"comma",value:I,output:e});continue}if(I==="/"){if(L.type==="dot"&&C.index===1){C.start=C.index+1;C.consumed="";C.output="";u.pop();L=s;continue}push({type:"slash",value:I,output:_});continue}if(I==="."){if(C.braces>0&&L.type==="dot"){if(L.value===".")L.output=h;L.type="dots";L.output+=I;L.value+=I;C.dots=true;continue}push({type:"dot",value:I,output:h});continue}if(I==="?"){if(L&&L.type==="paren"){let e=P();let t=I;if(e==="<"&&!be.supportsLookbehinds()){throw new Error("Node.js v10 or higher is required for regex lookbehinds")}if(L.value==="("&&!/[!=<:]/.test(e)||e==="<"&&!/[!=]/.test(P(2))){t="\\"+I}push({type:"text",value:I,output:t});continue}if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){extglobOpen("qmark",I);continue}if(r.dot!==true&&(L.type==="slash"||L.type==="bos")){push({type:"qmark",value:I,output:S});continue}push({type:"qmark",value:I,output:E});continue}if(I==="!"){if(r.noextglob!==true&&P()==="("){if(P(2)!=="?"||!/[!=<:]/.test(P(3))){extglobOpen("negate",I);continue}}if(r.nonegate!==true&&C.index===0){negate(C);continue}}if(I==="+"){if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){extglobOpen("plus",I);continue}if(L&&(L.type==="bracket"||L.type==="paren"||L.type==="brace")){let e=L.extglob===true?"\\"+I:I;push({type:"plus",value:I,output:e});continue}if(C.parens>0&&r.regex!==false){push({type:"plus",value:I});continue}push({type:"plus",value:v});continue}if(I==="@"){if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){push({type:"at",value:I,output:""});continue}push({type:"text",value:I});continue}if(I!=="*"){if(I==="$"||I==="^"){I="\\"+I}let t=Ue.exec(e.slice(C.index+1));if(t){I+=t[0];C.index+=t[0].length}push({type:"text",value:I});continue}if(L&&(L.type==="globstar"||L.star===true)){L.type="star";L.star=true;L.value+=I;L.output=O;C.backtrack=true;C.consumed+=I;continue}if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){extglobOpen("star",I);continue}if(L.type==="star"){if(r.noglobstar===true){C.consumed+=I;continue}let t=L.prev;let a=t.prev;let o=t.type==="slash"||t.type==="bos";let s=a&&(a.type==="star"||a.type==="globstar");if(r.bash===true&&(!o||!eos()&&P()!=="/")){push({type:"star",value:I,output:""});continue}let u=C.braces>0&&(t.type==="comma"||t.type==="brace");let c=j.length&&(t.type==="pipe"||t.type==="paren");if(!o&&t.type!=="paren"&&!u&&!c){push({type:"star",value:I,output:""});continue}while(e.slice(C.index+1,C.index+4)==="/**"){let t=e[C.index+4];if(t&&t!=="/"){break}C.consumed+="/**";C.index+=3}if(t.type==="bos"&&eos()){L.type="globstar";L.value+=I;L.output=globstar(r);C.output=L.output;C.consumed+=I;continue}if(t.type==="slash"&&t.prev.type!=="bos"&&!s&&eos()){C.output=C.output.slice(0,-(t.output+L.output).length);t.output="(?:"+t.output;L.type="globstar";L.output=globstar(r)+"|$)";L.value+=I;C.output+=t.output+L.output;C.consumed+=I;continue}let d=P();if(t.type==="slash"&&t.prev.type!=="bos"&&d==="/"){let e=P(2)!==void 0?"|$":"";C.output=C.output.slice(0,-(t.output+L.output).length);t.output="(?:"+t.output;L.type="globstar";L.output=`${globstar(r)}${_}|${_}${e})`;L.value+=I;C.output+=t.output+L.output;C.consumed+=I+D();push({type:"slash",value:I,output:""});continue}if(t.type==="bos"&&d==="/"){L.type="globstar";L.value+=I;L.output=`(?:^|${_}|${globstar(r)}${_})`;C.output=L.output;C.consumed+=I+D();push({type:"slash",value:I,output:""});continue}C.output=C.output.slice(0,-L.output.length);L.type="globstar";L.output=globstar(r);L.value+=I;C.output+=L.output;C.consumed+=I;continue}let t={type:"star",value:I,output:O};if(r.bash===true){t.output=".*?";if(L.type==="bos"||L.type==="slash"){t.output=A+t.output}push(t);continue}if(L&&(L.type==="bracket"||L.type==="paren")&&r.regex===true){t.output=I;push(t);continue}if(C.index===C.start||L.type==="slash"||L.type==="dot"){if(L.type==="dot"){C.output+=w;L.output+=w}else if(r.dot===true){C.output+=x;L.output+=x}else{C.output+=A;L.output+=A}if(P()!=="*"){C.output+=g;L.output+=g}}push(t)}while(C.brackets>0){if(r.strictBrackets===true)throw new SyntaxError(syntaxError("closing","]"));C.output=be.escapeLast(C.output,"[");decrement("brackets")}while(C.parens>0){if(r.strictBrackets===true)throw new SyntaxError(syntaxError("closing",")"));C.output=be.escapeLast(C.output,"(");decrement("parens")}while(C.braces>0){if(r.strictBrackets===true)throw new SyntaxError(syntaxError("closing","}"));C.output=be.escapeLast(C.output,"{");decrement("braces")}if(r.strictSlashes!==true&&(L.type==="star"||L.type==="bracket")){push({type:"maybe_slash",value:"",output:`${_}?`})}if(C.backtrack===true){C.output="";for(let e of C.tokens){C.output+=e.output!=null?e.output:e.value;if(e.suffix){C.output+=e.suffix}}}return C};parse$1.fastpaths=(e,t)=>{let r=Object.assign({},t);let a=typeof r.maxLength==="number"?Math.min(Be,r.maxLength):Be;let o=e.length;if(o>a){throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${a}`)}e=qe[e]||e;let s=be.isWindows(t);const{DOT_LITERAL:u,SLASH_LITERAL:c,ONE_CHAR:d,DOTS_SLASH:f,NO_DOT:p,NO_DOTS:h,NO_DOTS_SLASH:v,STAR:_,START_ANCHOR:g}=he.globChars(s);let y=r.capture?"":"?:";let m=r.bash===true?".*?":_;let w=r.dot?h:p;let x=r.dot?v:p;if(r.capture){m=`(${m})`}const globstar=e=>`(${y}(?:(?!${g}${e.dot?f:u}).)*?)`;const create=e=>{switch(e){case"*":return`${w}${d}${m}`;case".*":return`${u}${d}${m}`;case"*.*":return`${w}${m}${u}${d}${m}`;case"*/*":return`${w}${m}${c}${d}${x}${m}`;case"**":return w+globstar(r);case"**/*":return`(?:${w}${globstar(r)}${c})?${x}${d}${m}`;case"**/*.*":return`(?:${w}${globstar(r)}${c})?${x}${m}${u}${d}${m}`;case"**/.*":return`(?:${w}${globstar(r)}${c})?${u}${d}${m}`;default:{let r=/^(.*?)\.(\w+)$/.exec(e);if(!r)return;let a=create(r[1],t);if(!a)return;return a+u+r[2]}}};let E=create(e);if(E&&r.strictSlashes!==true){E+=`${c}?`}return E};var Ge=parse$1;const picomatch=(e,t,r=false)=>{if(Array.isArray(e)){let a=e.map((e=>picomatch(e,t,r)));return e=>{for(let t of a){let r=t(e);if(r)return r}return false}}if(typeof e!=="string"||e===""){throw new TypeError("Expected pattern to be a non-empty string")}let a=t||{};let o=be.isWindows(t);let s=picomatch.makeRe(e,t,false,true);let u=s.state;delete s.state;let isIgnored=()=>false;if(a.ignore){let e=Object.assign({},t,{ignore:null,onMatch:null,onResult:null});isIgnored=picomatch(a.ignore,e,r)}const matcher=(r,c=false)=>{let{isMatch:d,match:f,output:p}=picomatch.test(r,s,t,{glob:e,posix:o});let h={glob:e,state:u,regex:s,posix:o,input:r,output:p,match:f,isMatch:d};if(typeof a.onResult==="function"){a.onResult(h)}if(d===false){h.isMatch=false;return c?h:false}if(isIgnored(r)){if(typeof a.onIgnore==="function"){a.onIgnore(h)}h.isMatch=false;return c?h:false}if(typeof a.onMatch==="function"){a.onMatch(h)}return c?h:true};if(r){matcher.state=u}return matcher};picomatch.test=(e,t,r,{glob:a,posix:o}={})=>{if(typeof e!=="string"){throw new TypeError("Expected input to be a string")}if(e===""){return{isMatch:false,output:""}}let s=r||{};let u=s.format||(o?be.toPosixSlashes:null);let c=e===a;let d=c&&u?u(e):e;if(c===false){d=u?u(e):e;c=d===a}if(c===false||s.capture===true){if(s.matchBase===true||s.basename===true){c=picomatch.matchBase(e,t,r,o)}else{c=t.exec(d)}}return{isMatch:!!c,match:c,output:d}};picomatch.matchBase=(e,t,r,a=be.isWindows(r))=>{let s=t instanceof RegExp?t:picomatch.makeRe(t,r);return s.test(o.basename(e))};picomatch.isMatch=(e,t,r)=>picomatch(t,r)(e);picomatch.parse=(e,t)=>Ge(e,t);picomatch.scan=(e,t)=>scan(e,t);picomatch.makeRe=(e,t,r=false,a=false)=>{if(!e||typeof e!=="string"){throw new TypeError("Expected a non-empty string")}let o=t||{};let s=o.contains?"":"^";let u=o.contains?"":"$";let c={negated:false,fastpaths:true};let d="";let f;if(e.startsWith("./")){e=e.slice(2);d=c.prefix="./"}if(o.fastpaths!==false&&(e[0]==="."||e[0]==="*")){f=Ge.fastpaths(e,t)}if(f===void 0){c=picomatch.parse(e,t);c.prefix=d+(c.prefix||"");f=c.output}if(r===true){return f}let p=`${s}(?:${f})${u}`;if(c&&c.negated===true){p=`^(?!${p}).*$`}let h=picomatch.toRegex(p,t);if(a===true){h.state=c}return h};picomatch.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&t.debug===true)throw e;return/$^/}};picomatch.constants=he;var Ke=picomatch;var ze=Ke;const isEmptyString=e=>typeof e==="string"&&(e===""||e==="./");const micromatch=(e,t,r)=>{t=[].concat(t);e=[].concat(e);let a=new Set;let o=new Set;let s=new Set;let u=0;let onResult=e=>{s.add(e.output);if(r&&r.onResult){r.onResult(e)}};for(let s=0;s!a.has(e)));if(r&&d.length===0){if(r.failglob===true){throw new Error(`No matches found for "${t.join(", ")}"`)}if(r.nonull===true||r.nullglob===true){return r.unescape?t.map((e=>e.replace(/\\/g,""))):t}}return d};micromatch.match=micromatch;micromatch.matcher=(e,t)=>ze(e,t);micromatch.isMatch=(e,t,r)=>ze(t,r)(e);micromatch.any=micromatch.isMatch;micromatch.not=(e,t,r={})=>{t=[].concat(t).map(String);let a=new Set;let o=[];let onResult=e=>{if(r.onResult)r.onResult(e);o.push(e.output)};let s=micromatch(e,t,Object.assign({},r,{onResult:onResult}));for(let e of o){if(!s.includes(e)){a.add(e)}}return[...a]};micromatch.contains=(e,t,r)=>{if(typeof e!=="string"){throw new TypeError(`Expected a string: "${u.inspect(e)}"`)}if(Array.isArray(t)){return t.some((t=>micromatch.contains(e,t,r)))}if(typeof t==="string"){if(isEmptyString(e)||isEmptyString(t)){return false}if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t)){return true}}return micromatch.isMatch(e,t,Object.assign({},r,{contains:true}))};micromatch.matchKeys=(e,t,r)=>{if(!be.isObject(e)){throw new TypeError("Expected the first argument to be an object")}let a=micromatch(Object.keys(e),t,r);let o={};for(let t of a)o[t]=e[t];return o};micromatch.some=(e,t,r)=>{let a=[].concat(e);for(let e of[].concat(t)){let t=ze(String(e),r);if(a.some((e=>t(e)))){return true}}return false};micromatch.every=(e,t,r)=>{let a=[].concat(e);for(let e of[].concat(t)){let t=ze(String(e),r);if(!a.every((e=>t(e)))){return false}}return true};micromatch.all=(e,t,r)=>{if(typeof e!=="string"){throw new TypeError(`Expected a string: "${u.inspect(e)}"`)}return[].concat(t).every((t=>ze(t,r)(e)))};micromatch.capture=(e,t,r)=>{let a=be.isWindows(r);let o=ze.makeRe(String(e),Object.assign({},r,{capture:true}));let s=o.exec(a?be.toPosixSlashes(t):t);if(s){return s.slice(1).map((e=>e===void 0?"":e))}};micromatch.makeRe=(...e)=>ze.makeRe(...e);micromatch.scan=(...e)=>ze.scan(...e);micromatch.parse=(e,t)=>{let r=[];for(let a of[].concat(e||[])){for(let e of z(String(a),t)){r.push(ze.parse(e,t))}}return r};micromatch.braces=(e,t)=>{if(typeof e!=="string")throw new TypeError("Expected a string");if(t&&t.nobrace===true||!/\{.*\}/.test(e)){return[e]}return z(e,t)};micromatch.braceExpand=(e,t)=>{if(typeof e!=="string")throw new TypeError("Expected a string");return micromatch.braces(e,Object.assign({},t,{expand:true}))};var Ve=micromatch;function ensureArray(e){if(Array.isArray(e))return e;if(e==undefined)return[];return[e]}function getMatcherString(e,t){if(t===false){return e}return a.resolve(...typeof t==="string"?[t,e]:[e])}const Ye=function createFilter(e,t,r){const o=r&&r.resolve;const getMatcher=e=>e instanceof RegExp?e:{test:Ve.matcher(getMatcherString(e,o).split(a.sep).join("/"),{dot:true})};const s=ensureArray(e).map(getMatcher);const u=ensureArray(t).map(getMatcher);return function(e){if(typeof e!=="string")return false;if(/\0/.test(e))return false;e=e.split(a.sep).join("/");for(let t=0;tt.toUpperCase())).replace(/[^$_a-zA-Z0-9]/g,"_");if(/\d/.test(e[0])||Ze.has(e)){e=`_${e}`}return e||"_"};function stringify$2(e){return(JSON.stringify(e)||"undefined").replace(/[\u2028\u2029]/g,(e=>`\\u${("000"+e.charCodeAt(0).toString(16)).slice(-4)}`))}function serializeArray(e,t,r){let a="[";const o=t?"\n"+r+t:"";for(let s=0;s0?",":""}${o}${serialize(u,t,r+t)}`}return a+`${t?"\n"+r:""}]`}function serializeObject(e,t,r){let a="{";const o=t?"\n"+r+t:"";const s=Object.keys(e);for(let u=0;u0?",":""}${o}${d}:${t?" ":""}${serialize(e[c],t,r+t)}`}return a+`${t?"\n"+r:""}}`}function serialize(e,t,r){if(e===Infinity)return"Infinity";if(e===-Infinity)return"-Infinity";if(e===0&&1/e===-Infinity)return"-0";if(e instanceof Date)return"new Date("+e.getTime()+")";if(e instanceof RegExp)return e.toString();if(e!==e)return"NaN";if(Array.isArray(e))return serializeArray(e,t,r);if(e===null)return"null";if(typeof e==="object")return serializeObject(e,t,r);return stringify$2(e)}const et=function dataToEsm(e,t={}){const r=t.compact?"":"indent"in t?t.indent:"\t";const a=t.compact?"":" ";const o=t.compact?"":"\n";const s=t.preferConst?"const":"var";if(t.namedExports===false||typeof e!=="object"||Array.isArray(e)||e instanceof Date||e instanceof RegExp||e===null){const o=serialize(e,t.compact?null:r,"");const s=a||(/^[{[\-\/]/.test(o)?"":" ");return`export default${s}${o};`}let u="";const c=[];const d=Object.keys(e);for(let f=0;f{var a=r(4300);var o=a.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}if(o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow){e.exports=a}else{copyProps(a,t);t.Buffer=SafeBuffer}function SafeBuffer(e,t,r){return o(e,t,r)}copyProps(o,SafeBuffer);SafeBuffer.from=function(e,t,r){if(typeof e==="number"){throw new TypeError("Argument must not be a number")}return o(e,t,r)};SafeBuffer.alloc=function(e,t,r){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}var a=o(e);if(t!==undefined){if(typeof r==="string"){a.fill(t,r)}else{a.fill(t)}}else{a.fill(0)}return a};SafeBuffer.allocUnsafe=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return o(e)};SafeBuffer.allocUnsafeSlow=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return a.SlowBuffer(e)}},5354:e=>{e.exports=function(e){[process.stdout,process.stderr].forEach((function(t){if(t._handle&&t.isTTY&&typeof t._handle.setBlocking==="function"){t._handle.setBlocking(e)}}))}},5417:(e,t,r)=>{var a=r(9491);var o=r(1933);var s=/^win/i.test(process.platform);var u=r(2361);if(typeof u!=="function"){u=u.EventEmitter}var c;if(process.__signal_exit_emitter__){c=process.__signal_exit_emitter__}else{c=process.__signal_exit_emitter__=new u;c.count=0;c.emitted={}}if(!c.infinite){c.setMaxListeners(Infinity);c.infinite=true}e.exports=function(e,t){a.equal(typeof e,"function","a callback must be provided for exit handler");if(f===false){load()}var r="exit";if(t&&t.alwaysLast){r="afterexit"}var remove=function(){c.removeListener(r,e);if(c.listeners("exit").length===0&&c.listeners("afterexit").length===0){unload()}};c.on(r,e);return remove};e.exports.unload=unload;function unload(){if(!f){return}f=false;o.forEach((function(e){try{process.removeListener(e,d[e])}catch(e){}}));process.emit=h;process.reallyExit=p;c.count-=1}function emit(e,t,r){if(c.emitted[e]){return}c.emitted[e]=true;c.emit(e,t,r)}var d={};o.forEach((function(e){d[e]=function listener(){var t=process.listeners(e);if(t.length===c.count){unload();emit("exit",null,e);emit("afterexit",null,e);if(s&&e==="SIGHUP"){e="SIGINT"}process.kill(process.pid,e)}}}));e.exports.signals=function(){return o};e.exports.load=load;var f=false;function load(){if(f){return}f=true;c.count+=1;o=o.filter((function(e){try{process.on(e,d[e]);return true}catch(e){return false}}));process.emit=processEmit;process.reallyExit=processReallyExit}var p=process.reallyExit;function processReallyExit(e){process.exitCode=e||0;emit("exit",process.exitCode,null);emit("afterexit",process.exitCode,null);p.call(process,process.exitCode)}var h=process.emit;function processEmit(e,t){if(e==="exit"){if(t!==undefined){process.exitCode=t}var r=h.apply(this,arguments);emit("exit",process.exitCode,null);emit("afterexit",process.exitCode,null);return r}else{return h.apply(this,arguments)}}},1933:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32"){e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT")}if(process.platform==="linux"){e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")}},1780:(e,t,r)=>{"use strict";var a=r(7518);var o=r(918);var s=r(7787);e.exports=function(e){if(typeof e!=="string"||e.length===0){return 0}var t=0;e=a(e);for(var r=0;r=127&&u<=159){continue}if(u>=65536){r++}if(s(u)){t+=2}else{t++}}return t}},7214:(e,t,r)=>{"use strict";const a=r(7518);const o=r(7394);e.exports=e=>{if(typeof e!=="string"||e.length===0){return 0}e=a(e);let t=0;for(let r=0;r=127&&a<=159){continue}if(a>=768&&a<=879){continue}if(a>65535){r++}t+=o(a)?2:1}return t}},467:(e,t,r)=>{"use strict";var a=r(7455).Buffer;var o=a.isEncoding||function(e){e=""+e;switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(e){if(!e)return"utf8";var t;while(true){switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase();t=true}}}function normalizeEncoding(e){var t=_normalizeEncoding(e);if(typeof t!=="string"&&(a.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}t.s=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var t;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;t=4;break;case"utf8":this.fillLast=utf8FillLast;t=4;break;case"base64":this.text=base64Text;this.end=base64End;t=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=a.allocUnsafe(t)}StringDecoder.prototype.write=function(e){if(e.length===0)return"";var t;var r;if(this.lastNeed){t=this.fillLast(e);if(t===undefined)return"";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,t,r){var a=t.length-1;if(a=0){if(o>0)e.lastNeed=o-1;return o}if(--a=0){if(o>0)e.lastNeed=o-2;return o}if(--a=0){if(o>0){if(o===2)o=0;else e.lastNeed=o-3}return o}return 0}function utf8CheckExtraBytes(e,t,r){if((t[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&t.length>2){if((t[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var t=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,e,t);if(r!==undefined)return r;if(this.lastNeed<=e.length){e.copy(this.lastChar,t,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,t,0,e.length);this.lastNeed-=e.length}function utf8Text(e,t){var r=utf8CheckIncomplete(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var a=e.length-(r-this.lastNeed);e.copy(this.lastChar,0,a);return e.toString("utf8",t,a)}function utf8End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+"�";return t}function utf16Text(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var a=r.charCodeAt(r.length-1);if(a>=55296&&a<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",t,e.length-1)}function utf16End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function base64Text(e,t){var r=(e.length-t)%3;if(r===0)return e.toString("base64",t);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",t,e.length-r)}function base64End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+this.lastChar.toString("base64",0,3-this.lastNeed);return t}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},343:(e,t,r)=>{e.exports=r(3837).deprecate},6486:(e,t,r)=>{"use strict";var a=r(7214);t.center=alignCenter;t.left=alignLeft;t.right=alignRight;function createPadding(e){var t="";var r=" ";var a=e;do{if(a%2){t+=r}a=Math.floor(a/2);r+=r}while(a);return t}function alignLeft(e,t){var r=e.trimRight();if(r.length===0&&e.length>=t)return e;var o="";var s=a(r);if(s=t)return e;var o="";var s=a(r);if(s=t)return e;var o="";var s="";var u=a(r);if(u{module.exports=eval("require")("aws-sdk")},3458:module=>{module.exports=eval("require")("mock-aws-s3")},9101:module=>{module.exports=eval("require")("nock")},9491:e=>{"use strict";e.exports=require("assert")},4300:e=>{"use strict";e.exports=require("buffer")},2081:e=>{"use strict";e.exports=require("child_process")},2057:e=>{"use strict";e.exports=require("constants")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},8188:e=>{"use strict";e.exports=require("module")},1988:e=>{"use strict";e.exports=require("next/dist/compiled/acorn")},3535:e=>{"use strict";e.exports=require("next/dist/compiled/glob")},2540:e=>{"use strict";e.exports=require("next/dist/compiled/micromatch")},7849:e=>{"use strict";e.exports=require("next/dist/compiled/semver")},7518:e=>{"use strict";e.exports=require("next/dist/compiled/strip-ansi")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},8102:e=>{"use strict";e.exports=require("repl")},2781:e=>{"use strict";e.exports=require("stream")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},4924:function(e,t){(function(e,r){true?r(t):0})(this,(function(e){"use strict";class WalkerBase{constructor(){this.should_skip=false;this.should_remove=false;this.replacement=null;this.context={skip:()=>this.should_skip=true,remove:()=>this.should_remove=true,replace:e=>this.replacement=e}}replace(e,t,r,a){if(e){if(r!==null){e[t][r]=a}else{e[t]=a}}}remove(e,t,r){if(e){if(r!==null){e[t].splice(r,1)}else{delete e[t]}}}}class SyncWalker extends WalkerBase{constructor(e,t){super();this.enter=e;this.leave=t}visit(e,t,r,a){if(e){if(this.enter){const o=this.should_skip;const s=this.should_remove;const u=this.replacement;this.should_skip=false;this.should_remove=false;this.replacement=null;this.enter.call(this.context,e,t,r,a);if(this.replacement){e=this.replacement;this.replace(t,r,a,e)}if(this.should_remove){this.remove(t,r,a)}const c=this.should_skip;const d=this.should_remove;this.should_skip=o;this.should_remove=s;this.replacement=u;if(c)return e;if(d)return null}for(const t in e){const r=e[t];if(typeof r!=="object"){continue}else if(Array.isArray(r)){for(let a=0;a{"use strict";e.exports=JSON.parse('{"0.1.14":{"node_abi":null,"v8":"1.3"},"0.1.15":{"node_abi":null,"v8":"1.3"},"0.1.16":{"node_abi":null,"v8":"1.3"},"0.1.17":{"node_abi":null,"v8":"1.3"},"0.1.18":{"node_abi":null,"v8":"1.3"},"0.1.19":{"node_abi":null,"v8":"2.0"},"0.1.20":{"node_abi":null,"v8":"2.0"},"0.1.21":{"node_abi":null,"v8":"2.0"},"0.1.22":{"node_abi":null,"v8":"2.0"},"0.1.23":{"node_abi":null,"v8":"2.0"},"0.1.24":{"node_abi":null,"v8":"2.0"},"0.1.25":{"node_abi":null,"v8":"2.0"},"0.1.26":{"node_abi":null,"v8":"2.0"},"0.1.27":{"node_abi":null,"v8":"2.1"},"0.1.28":{"node_abi":null,"v8":"2.1"},"0.1.29":{"node_abi":null,"v8":"2.1"},"0.1.30":{"node_abi":null,"v8":"2.1"},"0.1.31":{"node_abi":null,"v8":"2.1"},"0.1.32":{"node_abi":null,"v8":"2.1"},"0.1.33":{"node_abi":null,"v8":"2.1"},"0.1.90":{"node_abi":null,"v8":"2.2"},"0.1.91":{"node_abi":null,"v8":"2.2"},"0.1.92":{"node_abi":null,"v8":"2.2"},"0.1.93":{"node_abi":null,"v8":"2.2"},"0.1.94":{"node_abi":null,"v8":"2.2"},"0.1.95":{"node_abi":null,"v8":"2.2"},"0.1.96":{"node_abi":null,"v8":"2.2"},"0.1.97":{"node_abi":null,"v8":"2.2"},"0.1.98":{"node_abi":null,"v8":"2.2"},"0.1.99":{"node_abi":null,"v8":"2.2"},"0.1.100":{"node_abi":null,"v8":"2.2"},"0.1.101":{"node_abi":null,"v8":"2.3"},"0.1.102":{"node_abi":null,"v8":"2.3"},"0.1.103":{"node_abi":null,"v8":"2.3"},"0.1.104":{"node_abi":null,"v8":"2.3"},"0.2.0":{"node_abi":1,"v8":"2.3"},"0.2.1":{"node_abi":1,"v8":"2.3"},"0.2.2":{"node_abi":1,"v8":"2.3"},"0.2.3":{"node_abi":1,"v8":"2.3"},"0.2.4":{"node_abi":1,"v8":"2.3"},"0.2.5":{"node_abi":1,"v8":"2.3"},"0.2.6":{"node_abi":1,"v8":"2.3"},"0.3.0":{"node_abi":1,"v8":"2.5"},"0.3.1":{"node_abi":1,"v8":"2.5"},"0.3.2":{"node_abi":1,"v8":"3.0"},"0.3.3":{"node_abi":1,"v8":"3.0"},"0.3.4":{"node_abi":1,"v8":"3.0"},"0.3.5":{"node_abi":1,"v8":"3.0"},"0.3.6":{"node_abi":1,"v8":"3.0"},"0.3.7":{"node_abi":1,"v8":"3.0"},"0.3.8":{"node_abi":1,"v8":"3.1"},"0.4.0":{"node_abi":1,"v8":"3.1"},"0.4.1":{"node_abi":1,"v8":"3.1"},"0.4.2":{"node_abi":1,"v8":"3.1"},"0.4.3":{"node_abi":1,"v8":"3.1"},"0.4.4":{"node_abi":1,"v8":"3.1"},"0.4.5":{"node_abi":1,"v8":"3.1"},"0.4.6":{"node_abi":1,"v8":"3.1"},"0.4.7":{"node_abi":1,"v8":"3.1"},"0.4.8":{"node_abi":1,"v8":"3.1"},"0.4.9":{"node_abi":1,"v8":"3.1"},"0.4.10":{"node_abi":1,"v8":"3.1"},"0.4.11":{"node_abi":1,"v8":"3.1"},"0.4.12":{"node_abi":1,"v8":"3.1"},"0.5.0":{"node_abi":1,"v8":"3.1"},"0.5.1":{"node_abi":1,"v8":"3.4"},"0.5.2":{"node_abi":1,"v8":"3.4"},"0.5.3":{"node_abi":1,"v8":"3.4"},"0.5.4":{"node_abi":1,"v8":"3.5"},"0.5.5":{"node_abi":1,"v8":"3.5"},"0.5.6":{"node_abi":1,"v8":"3.6"},"0.5.7":{"node_abi":1,"v8":"3.6"},"0.5.8":{"node_abi":1,"v8":"3.6"},"0.5.9":{"node_abi":1,"v8":"3.6"},"0.5.10":{"node_abi":1,"v8":"3.7"},"0.6.0":{"node_abi":1,"v8":"3.6"},"0.6.1":{"node_abi":1,"v8":"3.6"},"0.6.2":{"node_abi":1,"v8":"3.6"},"0.6.3":{"node_abi":1,"v8":"3.6"},"0.6.4":{"node_abi":1,"v8":"3.6"},"0.6.5":{"node_abi":1,"v8":"3.6"},"0.6.6":{"node_abi":1,"v8":"3.6"},"0.6.7":{"node_abi":1,"v8":"3.6"},"0.6.8":{"node_abi":1,"v8":"3.6"},"0.6.9":{"node_abi":1,"v8":"3.6"},"0.6.10":{"node_abi":1,"v8":"3.6"},"0.6.11":{"node_abi":1,"v8":"3.6"},"0.6.12":{"node_abi":1,"v8":"3.6"},"0.6.13":{"node_abi":1,"v8":"3.6"},"0.6.14":{"node_abi":1,"v8":"3.6"},"0.6.15":{"node_abi":1,"v8":"3.6"},"0.6.16":{"node_abi":1,"v8":"3.6"},"0.6.17":{"node_abi":1,"v8":"3.6"},"0.6.18":{"node_abi":1,"v8":"3.6"},"0.6.19":{"node_abi":1,"v8":"3.6"},"0.6.20":{"node_abi":1,"v8":"3.6"},"0.6.21":{"node_abi":1,"v8":"3.6"},"0.7.0":{"node_abi":1,"v8":"3.8"},"0.7.1":{"node_abi":1,"v8":"3.8"},"0.7.2":{"node_abi":1,"v8":"3.8"},"0.7.3":{"node_abi":1,"v8":"3.9"},"0.7.4":{"node_abi":1,"v8":"3.9"},"0.7.5":{"node_abi":1,"v8":"3.9"},"0.7.6":{"node_abi":1,"v8":"3.9"},"0.7.7":{"node_abi":1,"v8":"3.9"},"0.7.8":{"node_abi":1,"v8":"3.9"},"0.7.9":{"node_abi":1,"v8":"3.11"},"0.7.10":{"node_abi":1,"v8":"3.9"},"0.7.11":{"node_abi":1,"v8":"3.11"},"0.7.12":{"node_abi":1,"v8":"3.11"},"0.8.0":{"node_abi":1,"v8":"3.11"},"0.8.1":{"node_abi":1,"v8":"3.11"},"0.8.2":{"node_abi":1,"v8":"3.11"},"0.8.3":{"node_abi":1,"v8":"3.11"},"0.8.4":{"node_abi":1,"v8":"3.11"},"0.8.5":{"node_abi":1,"v8":"3.11"},"0.8.6":{"node_abi":1,"v8":"3.11"},"0.8.7":{"node_abi":1,"v8":"3.11"},"0.8.8":{"node_abi":1,"v8":"3.11"},"0.8.9":{"node_abi":1,"v8":"3.11"},"0.8.10":{"node_abi":1,"v8":"3.11"},"0.8.11":{"node_abi":1,"v8":"3.11"},"0.8.12":{"node_abi":1,"v8":"3.11"},"0.8.13":{"node_abi":1,"v8":"3.11"},"0.8.14":{"node_abi":1,"v8":"3.11"},"0.8.15":{"node_abi":1,"v8":"3.11"},"0.8.16":{"node_abi":1,"v8":"3.11"},"0.8.17":{"node_abi":1,"v8":"3.11"},"0.8.18":{"node_abi":1,"v8":"3.11"},"0.8.19":{"node_abi":1,"v8":"3.11"},"0.8.20":{"node_abi":1,"v8":"3.11"},"0.8.21":{"node_abi":1,"v8":"3.11"},"0.8.22":{"node_abi":1,"v8":"3.11"},"0.8.23":{"node_abi":1,"v8":"3.11"},"0.8.24":{"node_abi":1,"v8":"3.11"},"0.8.25":{"node_abi":1,"v8":"3.11"},"0.8.26":{"node_abi":1,"v8":"3.11"},"0.8.27":{"node_abi":1,"v8":"3.11"},"0.8.28":{"node_abi":1,"v8":"3.11"},"0.9.0":{"node_abi":1,"v8":"3.11"},"0.9.1":{"node_abi":10,"v8":"3.11"},"0.9.2":{"node_abi":10,"v8":"3.11"},"0.9.3":{"node_abi":10,"v8":"3.13"},"0.9.4":{"node_abi":10,"v8":"3.13"},"0.9.5":{"node_abi":10,"v8":"3.13"},"0.9.6":{"node_abi":10,"v8":"3.15"},"0.9.7":{"node_abi":10,"v8":"3.15"},"0.9.8":{"node_abi":10,"v8":"3.15"},"0.9.9":{"node_abi":11,"v8":"3.15"},"0.9.10":{"node_abi":11,"v8":"3.15"},"0.9.11":{"node_abi":11,"v8":"3.14"},"0.9.12":{"node_abi":11,"v8":"3.14"},"0.10.0":{"node_abi":11,"v8":"3.14"},"0.10.1":{"node_abi":11,"v8":"3.14"},"0.10.2":{"node_abi":11,"v8":"3.14"},"0.10.3":{"node_abi":11,"v8":"3.14"},"0.10.4":{"node_abi":11,"v8":"3.14"},"0.10.5":{"node_abi":11,"v8":"3.14"},"0.10.6":{"node_abi":11,"v8":"3.14"},"0.10.7":{"node_abi":11,"v8":"3.14"},"0.10.8":{"node_abi":11,"v8":"3.14"},"0.10.9":{"node_abi":11,"v8":"3.14"},"0.10.10":{"node_abi":11,"v8":"3.14"},"0.10.11":{"node_abi":11,"v8":"3.14"},"0.10.12":{"node_abi":11,"v8":"3.14"},"0.10.13":{"node_abi":11,"v8":"3.14"},"0.10.14":{"node_abi":11,"v8":"3.14"},"0.10.15":{"node_abi":11,"v8":"3.14"},"0.10.16":{"node_abi":11,"v8":"3.14"},"0.10.17":{"node_abi":11,"v8":"3.14"},"0.10.18":{"node_abi":11,"v8":"3.14"},"0.10.19":{"node_abi":11,"v8":"3.14"},"0.10.20":{"node_abi":11,"v8":"3.14"},"0.10.21":{"node_abi":11,"v8":"3.14"},"0.10.22":{"node_abi":11,"v8":"3.14"},"0.10.23":{"node_abi":11,"v8":"3.14"},"0.10.24":{"node_abi":11,"v8":"3.14"},"0.10.25":{"node_abi":11,"v8":"3.14"},"0.10.26":{"node_abi":11,"v8":"3.14"},"0.10.27":{"node_abi":11,"v8":"3.14"},"0.10.28":{"node_abi":11,"v8":"3.14"},"0.10.29":{"node_abi":11,"v8":"3.14"},"0.10.30":{"node_abi":11,"v8":"3.14"},"0.10.31":{"node_abi":11,"v8":"3.14"},"0.10.32":{"node_abi":11,"v8":"3.14"},"0.10.33":{"node_abi":11,"v8":"3.14"},"0.10.34":{"node_abi":11,"v8":"3.14"},"0.10.35":{"node_abi":11,"v8":"3.14"},"0.10.36":{"node_abi":11,"v8":"3.14"},"0.10.37":{"node_abi":11,"v8":"3.14"},"0.10.38":{"node_abi":11,"v8":"3.14"},"0.10.39":{"node_abi":11,"v8":"3.14"},"0.10.40":{"node_abi":11,"v8":"3.14"},"0.10.41":{"node_abi":11,"v8":"3.14"},"0.10.42":{"node_abi":11,"v8":"3.14"},"0.10.43":{"node_abi":11,"v8":"3.14"},"0.10.44":{"node_abi":11,"v8":"3.14"},"0.10.45":{"node_abi":11,"v8":"3.14"},"0.10.46":{"node_abi":11,"v8":"3.14"},"0.10.47":{"node_abi":11,"v8":"3.14"},"0.10.48":{"node_abi":11,"v8":"3.14"},"0.11.0":{"node_abi":12,"v8":"3.17"},"0.11.1":{"node_abi":12,"v8":"3.18"},"0.11.2":{"node_abi":12,"v8":"3.19"},"0.11.3":{"node_abi":12,"v8":"3.19"},"0.11.4":{"node_abi":12,"v8":"3.20"},"0.11.5":{"node_abi":12,"v8":"3.20"},"0.11.6":{"node_abi":12,"v8":"3.20"},"0.11.7":{"node_abi":12,"v8":"3.20"},"0.11.8":{"node_abi":13,"v8":"3.21"},"0.11.9":{"node_abi":13,"v8":"3.22"},"0.11.10":{"node_abi":13,"v8":"3.22"},"0.11.11":{"node_abi":14,"v8":"3.22"},"0.11.12":{"node_abi":14,"v8":"3.22"},"0.11.13":{"node_abi":14,"v8":"3.25"},"0.11.14":{"node_abi":14,"v8":"3.26"},"0.11.15":{"node_abi":14,"v8":"3.28"},"0.11.16":{"node_abi":14,"v8":"3.28"},"0.12.0":{"node_abi":14,"v8":"3.28"},"0.12.1":{"node_abi":14,"v8":"3.28"},"0.12.2":{"node_abi":14,"v8":"3.28"},"0.12.3":{"node_abi":14,"v8":"3.28"},"0.12.4":{"node_abi":14,"v8":"3.28"},"0.12.5":{"node_abi":14,"v8":"3.28"},"0.12.6":{"node_abi":14,"v8":"3.28"},"0.12.7":{"node_abi":14,"v8":"3.28"},"0.12.8":{"node_abi":14,"v8":"3.28"},"0.12.9":{"node_abi":14,"v8":"3.28"},"0.12.10":{"node_abi":14,"v8":"3.28"},"0.12.11":{"node_abi":14,"v8":"3.28"},"0.12.12":{"node_abi":14,"v8":"3.28"},"0.12.13":{"node_abi":14,"v8":"3.28"},"0.12.14":{"node_abi":14,"v8":"3.28"},"0.12.15":{"node_abi":14,"v8":"3.28"},"0.12.16":{"node_abi":14,"v8":"3.28"},"0.12.17":{"node_abi":14,"v8":"3.28"},"0.12.18":{"node_abi":14,"v8":"3.28"},"1.0.0":{"node_abi":42,"v8":"3.31"},"1.0.1":{"node_abi":42,"v8":"3.31"},"1.0.2":{"node_abi":42,"v8":"3.31"},"1.0.3":{"node_abi":42,"v8":"4.1"},"1.0.4":{"node_abi":42,"v8":"4.1"},"1.1.0":{"node_abi":43,"v8":"4.1"},"1.2.0":{"node_abi":43,"v8":"4.1"},"1.3.0":{"node_abi":43,"v8":"4.1"},"1.4.1":{"node_abi":43,"v8":"4.1"},"1.4.2":{"node_abi":43,"v8":"4.1"},"1.4.3":{"node_abi":43,"v8":"4.1"},"1.5.0":{"node_abi":43,"v8":"4.1"},"1.5.1":{"node_abi":43,"v8":"4.1"},"1.6.0":{"node_abi":43,"v8":"4.1"},"1.6.1":{"node_abi":43,"v8":"4.1"},"1.6.2":{"node_abi":43,"v8":"4.1"},"1.6.3":{"node_abi":43,"v8":"4.1"},"1.6.4":{"node_abi":43,"v8":"4.1"},"1.7.1":{"node_abi":43,"v8":"4.1"},"1.8.1":{"node_abi":43,"v8":"4.1"},"1.8.2":{"node_abi":43,"v8":"4.1"},"1.8.3":{"node_abi":43,"v8":"4.1"},"1.8.4":{"node_abi":43,"v8":"4.1"},"2.0.0":{"node_abi":44,"v8":"4.2"},"2.0.1":{"node_abi":44,"v8":"4.2"},"2.0.2":{"node_abi":44,"v8":"4.2"},"2.1.0":{"node_abi":44,"v8":"4.2"},"2.2.0":{"node_abi":44,"v8":"4.2"},"2.2.1":{"node_abi":44,"v8":"4.2"},"2.3.0":{"node_abi":44,"v8":"4.2"},"2.3.1":{"node_abi":44,"v8":"4.2"},"2.3.2":{"node_abi":44,"v8":"4.2"},"2.3.3":{"node_abi":44,"v8":"4.2"},"2.3.4":{"node_abi":44,"v8":"4.2"},"2.4.0":{"node_abi":44,"v8":"4.2"},"2.5.0":{"node_abi":44,"v8":"4.2"},"3.0.0":{"node_abi":45,"v8":"4.4"},"3.1.0":{"node_abi":45,"v8":"4.4"},"3.2.0":{"node_abi":45,"v8":"4.4"},"3.3.0":{"node_abi":45,"v8":"4.4"},"3.3.1":{"node_abi":45,"v8":"4.4"},"4.0.0":{"node_abi":46,"v8":"4.5"},"4.1.0":{"node_abi":46,"v8":"4.5"},"4.1.1":{"node_abi":46,"v8":"4.5"},"4.1.2":{"node_abi":46,"v8":"4.5"},"4.2.0":{"node_abi":46,"v8":"4.5"},"4.2.1":{"node_abi":46,"v8":"4.5"},"4.2.2":{"node_abi":46,"v8":"4.5"},"4.2.3":{"node_abi":46,"v8":"4.5"},"4.2.4":{"node_abi":46,"v8":"4.5"},"4.2.5":{"node_abi":46,"v8":"4.5"},"4.2.6":{"node_abi":46,"v8":"4.5"},"4.3.0":{"node_abi":46,"v8":"4.5"},"4.3.1":{"node_abi":46,"v8":"4.5"},"4.3.2":{"node_abi":46,"v8":"4.5"},"4.4.0":{"node_abi":46,"v8":"4.5"},"4.4.1":{"node_abi":46,"v8":"4.5"},"4.4.2":{"node_abi":46,"v8":"4.5"},"4.4.3":{"node_abi":46,"v8":"4.5"},"4.4.4":{"node_abi":46,"v8":"4.5"},"4.4.5":{"node_abi":46,"v8":"4.5"},"4.4.6":{"node_abi":46,"v8":"4.5"},"4.4.7":{"node_abi":46,"v8":"4.5"},"4.5.0":{"node_abi":46,"v8":"4.5"},"4.6.0":{"node_abi":46,"v8":"4.5"},"4.6.1":{"node_abi":46,"v8":"4.5"},"4.6.2":{"node_abi":46,"v8":"4.5"},"4.7.0":{"node_abi":46,"v8":"4.5"},"4.7.1":{"node_abi":46,"v8":"4.5"},"4.7.2":{"node_abi":46,"v8":"4.5"},"4.7.3":{"node_abi":46,"v8":"4.5"},"4.8.0":{"node_abi":46,"v8":"4.5"},"4.8.1":{"node_abi":46,"v8":"4.5"},"4.8.2":{"node_abi":46,"v8":"4.5"},"4.8.3":{"node_abi":46,"v8":"4.5"},"4.8.4":{"node_abi":46,"v8":"4.5"},"4.8.5":{"node_abi":46,"v8":"4.5"},"4.8.6":{"node_abi":46,"v8":"4.5"},"4.8.7":{"node_abi":46,"v8":"4.5"},"4.9.0":{"node_abi":46,"v8":"4.5"},"4.9.1":{"node_abi":46,"v8":"4.5"},"5.0.0":{"node_abi":47,"v8":"4.6"},"5.1.0":{"node_abi":47,"v8":"4.6"},"5.1.1":{"node_abi":47,"v8":"4.6"},"5.2.0":{"node_abi":47,"v8":"4.6"},"5.3.0":{"node_abi":47,"v8":"4.6"},"5.4.0":{"node_abi":47,"v8":"4.6"},"5.4.1":{"node_abi":47,"v8":"4.6"},"5.5.0":{"node_abi":47,"v8":"4.6"},"5.6.0":{"node_abi":47,"v8":"4.6"},"5.7.0":{"node_abi":47,"v8":"4.6"},"5.7.1":{"node_abi":47,"v8":"4.6"},"5.8.0":{"node_abi":47,"v8":"4.6"},"5.9.0":{"node_abi":47,"v8":"4.6"},"5.9.1":{"node_abi":47,"v8":"4.6"},"5.10.0":{"node_abi":47,"v8":"4.6"},"5.10.1":{"node_abi":47,"v8":"4.6"},"5.11.0":{"node_abi":47,"v8":"4.6"},"5.11.1":{"node_abi":47,"v8":"4.6"},"5.12.0":{"node_abi":47,"v8":"4.6"},"6.0.0":{"node_abi":48,"v8":"5.0"},"6.1.0":{"node_abi":48,"v8":"5.0"},"6.2.0":{"node_abi":48,"v8":"5.0"},"6.2.1":{"node_abi":48,"v8":"5.0"},"6.2.2":{"node_abi":48,"v8":"5.0"},"6.3.0":{"node_abi":48,"v8":"5.0"},"6.3.1":{"node_abi":48,"v8":"5.0"},"6.4.0":{"node_abi":48,"v8":"5.0"},"6.5.0":{"node_abi":48,"v8":"5.1"},"6.6.0":{"node_abi":48,"v8":"5.1"},"6.7.0":{"node_abi":48,"v8":"5.1"},"6.8.0":{"node_abi":48,"v8":"5.1"},"6.8.1":{"node_abi":48,"v8":"5.1"},"6.9.0":{"node_abi":48,"v8":"5.1"},"6.9.1":{"node_abi":48,"v8":"5.1"},"6.9.2":{"node_abi":48,"v8":"5.1"},"6.9.3":{"node_abi":48,"v8":"5.1"},"6.9.4":{"node_abi":48,"v8":"5.1"},"6.9.5":{"node_abi":48,"v8":"5.1"},"6.10.0":{"node_abi":48,"v8":"5.1"},"6.10.1":{"node_abi":48,"v8":"5.1"},"6.10.2":{"node_abi":48,"v8":"5.1"},"6.10.3":{"node_abi":48,"v8":"5.1"},"6.11.0":{"node_abi":48,"v8":"5.1"},"6.11.1":{"node_abi":48,"v8":"5.1"},"6.11.2":{"node_abi":48,"v8":"5.1"},"6.11.3":{"node_abi":48,"v8":"5.1"},"6.11.4":{"node_abi":48,"v8":"5.1"},"6.11.5":{"node_abi":48,"v8":"5.1"},"6.12.0":{"node_abi":48,"v8":"5.1"},"6.12.1":{"node_abi":48,"v8":"5.1"},"6.12.2":{"node_abi":48,"v8":"5.1"},"6.12.3":{"node_abi":48,"v8":"5.1"},"6.13.0":{"node_abi":48,"v8":"5.1"},"6.13.1":{"node_abi":48,"v8":"5.1"},"6.14.0":{"node_abi":48,"v8":"5.1"},"6.14.1":{"node_abi":48,"v8":"5.1"},"6.14.2":{"node_abi":48,"v8":"5.1"},"6.14.3":{"node_abi":48,"v8":"5.1"},"6.14.4":{"node_abi":48,"v8":"5.1"},"6.15.0":{"node_abi":48,"v8":"5.1"},"6.15.1":{"node_abi":48,"v8":"5.1"},"6.16.0":{"node_abi":48,"v8":"5.1"},"6.17.0":{"node_abi":48,"v8":"5.1"},"6.17.1":{"node_abi":48,"v8":"5.1"},"7.0.0":{"node_abi":51,"v8":"5.4"},"7.1.0":{"node_abi":51,"v8":"5.4"},"7.2.0":{"node_abi":51,"v8":"5.4"},"7.2.1":{"node_abi":51,"v8":"5.4"},"7.3.0":{"node_abi":51,"v8":"5.4"},"7.4.0":{"node_abi":51,"v8":"5.4"},"7.5.0":{"node_abi":51,"v8":"5.4"},"7.6.0":{"node_abi":51,"v8":"5.5"},"7.7.0":{"node_abi":51,"v8":"5.5"},"7.7.1":{"node_abi":51,"v8":"5.5"},"7.7.2":{"node_abi":51,"v8":"5.5"},"7.7.3":{"node_abi":51,"v8":"5.5"},"7.7.4":{"node_abi":51,"v8":"5.5"},"7.8.0":{"node_abi":51,"v8":"5.5"},"7.9.0":{"node_abi":51,"v8":"5.5"},"7.10.0":{"node_abi":51,"v8":"5.5"},"7.10.1":{"node_abi":51,"v8":"5.5"},"8.0.0":{"node_abi":57,"v8":"5.8"},"8.1.0":{"node_abi":57,"v8":"5.8"},"8.1.1":{"node_abi":57,"v8":"5.8"},"8.1.2":{"node_abi":57,"v8":"5.8"},"8.1.3":{"node_abi":57,"v8":"5.8"},"8.1.4":{"node_abi":57,"v8":"5.8"},"8.2.0":{"node_abi":57,"v8":"5.8"},"8.2.1":{"node_abi":57,"v8":"5.8"},"8.3.0":{"node_abi":57,"v8":"6.0"},"8.4.0":{"node_abi":57,"v8":"6.0"},"8.5.0":{"node_abi":57,"v8":"6.0"},"8.6.0":{"node_abi":57,"v8":"6.0"},"8.7.0":{"node_abi":57,"v8":"6.1"},"8.8.0":{"node_abi":57,"v8":"6.1"},"8.8.1":{"node_abi":57,"v8":"6.1"},"8.9.0":{"node_abi":57,"v8":"6.1"},"8.9.1":{"node_abi":57,"v8":"6.1"},"8.9.2":{"node_abi":57,"v8":"6.1"},"8.9.3":{"node_abi":57,"v8":"6.1"},"8.9.4":{"node_abi":57,"v8":"6.1"},"8.10.0":{"node_abi":57,"v8":"6.2"},"8.11.0":{"node_abi":57,"v8":"6.2"},"8.11.1":{"node_abi":57,"v8":"6.2"},"8.11.2":{"node_abi":57,"v8":"6.2"},"8.11.3":{"node_abi":57,"v8":"6.2"},"8.11.4":{"node_abi":57,"v8":"6.2"},"8.12.0":{"node_abi":57,"v8":"6.2"},"8.13.0":{"node_abi":57,"v8":"6.2"},"8.14.0":{"node_abi":57,"v8":"6.2"},"8.14.1":{"node_abi":57,"v8":"6.2"},"8.15.0":{"node_abi":57,"v8":"6.2"},"8.15.1":{"node_abi":57,"v8":"6.2"},"8.16.0":{"node_abi":57,"v8":"6.2"},"8.16.1":{"node_abi":57,"v8":"6.2"},"8.16.2":{"node_abi":57,"v8":"6.2"},"8.17.0":{"node_abi":57,"v8":"6.2"},"9.0.0":{"node_abi":59,"v8":"6.2"},"9.1.0":{"node_abi":59,"v8":"6.2"},"9.2.0":{"node_abi":59,"v8":"6.2"},"9.2.1":{"node_abi":59,"v8":"6.2"},"9.3.0":{"node_abi":59,"v8":"6.2"},"9.4.0":{"node_abi":59,"v8":"6.2"},"9.5.0":{"node_abi":59,"v8":"6.2"},"9.6.0":{"node_abi":59,"v8":"6.2"},"9.6.1":{"node_abi":59,"v8":"6.2"},"9.7.0":{"node_abi":59,"v8":"6.2"},"9.7.1":{"node_abi":59,"v8":"6.2"},"9.8.0":{"node_abi":59,"v8":"6.2"},"9.9.0":{"node_abi":59,"v8":"6.2"},"9.10.0":{"node_abi":59,"v8":"6.2"},"9.10.1":{"node_abi":59,"v8":"6.2"},"9.11.0":{"node_abi":59,"v8":"6.2"},"9.11.1":{"node_abi":59,"v8":"6.2"},"9.11.2":{"node_abi":59,"v8":"6.2"},"10.0.0":{"node_abi":64,"v8":"6.6"},"10.1.0":{"node_abi":64,"v8":"6.6"},"10.2.0":{"node_abi":64,"v8":"6.6"},"10.2.1":{"node_abi":64,"v8":"6.6"},"10.3.0":{"node_abi":64,"v8":"6.6"},"10.4.0":{"node_abi":64,"v8":"6.7"},"10.4.1":{"node_abi":64,"v8":"6.7"},"10.5.0":{"node_abi":64,"v8":"6.7"},"10.6.0":{"node_abi":64,"v8":"6.7"},"10.7.0":{"node_abi":64,"v8":"6.7"},"10.8.0":{"node_abi":64,"v8":"6.7"},"10.9.0":{"node_abi":64,"v8":"6.8"},"10.10.0":{"node_abi":64,"v8":"6.8"},"10.11.0":{"node_abi":64,"v8":"6.8"},"10.12.0":{"node_abi":64,"v8":"6.8"},"10.13.0":{"node_abi":64,"v8":"6.8"},"10.14.0":{"node_abi":64,"v8":"6.8"},"10.14.1":{"node_abi":64,"v8":"6.8"},"10.14.2":{"node_abi":64,"v8":"6.8"},"10.15.0":{"node_abi":64,"v8":"6.8"},"10.15.1":{"node_abi":64,"v8":"6.8"},"10.15.2":{"node_abi":64,"v8":"6.8"},"10.15.3":{"node_abi":64,"v8":"6.8"},"10.16.0":{"node_abi":64,"v8":"6.8"},"10.16.1":{"node_abi":64,"v8":"6.8"},"10.16.2":{"node_abi":64,"v8":"6.8"},"10.16.3":{"node_abi":64,"v8":"6.8"},"10.17.0":{"node_abi":64,"v8":"6.8"},"10.18.0":{"node_abi":64,"v8":"6.8"},"10.18.1":{"node_abi":64,"v8":"6.8"},"10.19.0":{"node_abi":64,"v8":"6.8"},"10.20.0":{"node_abi":64,"v8":"6.8"},"10.20.1":{"node_abi":64,"v8":"6.8"},"10.21.0":{"node_abi":64,"v8":"6.8"},"10.22.0":{"node_abi":64,"v8":"6.8"},"10.22.1":{"node_abi":64,"v8":"6.8"},"10.23.0":{"node_abi":64,"v8":"6.8"},"10.23.1":{"node_abi":64,"v8":"6.8"},"10.23.2":{"node_abi":64,"v8":"6.8"},"10.23.3":{"node_abi":64,"v8":"6.8"},"10.24.0":{"node_abi":64,"v8":"6.8"},"10.24.1":{"node_abi":64,"v8":"6.8"},"11.0.0":{"node_abi":67,"v8":"7.0"},"11.1.0":{"node_abi":67,"v8":"7.0"},"11.2.0":{"node_abi":67,"v8":"7.0"},"11.3.0":{"node_abi":67,"v8":"7.0"},"11.4.0":{"node_abi":67,"v8":"7.0"},"11.5.0":{"node_abi":67,"v8":"7.0"},"11.6.0":{"node_abi":67,"v8":"7.0"},"11.7.0":{"node_abi":67,"v8":"7.0"},"11.8.0":{"node_abi":67,"v8":"7.0"},"11.9.0":{"node_abi":67,"v8":"7.0"},"11.10.0":{"node_abi":67,"v8":"7.0"},"11.10.1":{"node_abi":67,"v8":"7.0"},"11.11.0":{"node_abi":67,"v8":"7.0"},"11.12.0":{"node_abi":67,"v8":"7.0"},"11.13.0":{"node_abi":67,"v8":"7.0"},"11.14.0":{"node_abi":67,"v8":"7.0"},"11.15.0":{"node_abi":67,"v8":"7.0"},"12.0.0":{"node_abi":72,"v8":"7.4"},"12.1.0":{"node_abi":72,"v8":"7.4"},"12.2.0":{"node_abi":72,"v8":"7.4"},"12.3.0":{"node_abi":72,"v8":"7.4"},"12.3.1":{"node_abi":72,"v8":"7.4"},"12.4.0":{"node_abi":72,"v8":"7.4"},"12.5.0":{"node_abi":72,"v8":"7.5"},"12.6.0":{"node_abi":72,"v8":"7.5"},"12.7.0":{"node_abi":72,"v8":"7.5"},"12.8.0":{"node_abi":72,"v8":"7.5"},"12.8.1":{"node_abi":72,"v8":"7.5"},"12.9.0":{"node_abi":72,"v8":"7.6"},"12.9.1":{"node_abi":72,"v8":"7.6"},"12.10.0":{"node_abi":72,"v8":"7.6"},"12.11.0":{"node_abi":72,"v8":"7.7"},"12.11.1":{"node_abi":72,"v8":"7.7"},"12.12.0":{"node_abi":72,"v8":"7.7"},"12.13.0":{"node_abi":72,"v8":"7.7"},"12.13.1":{"node_abi":72,"v8":"7.7"},"12.14.0":{"node_abi":72,"v8":"7.7"},"12.14.1":{"node_abi":72,"v8":"7.7"},"12.15.0":{"node_abi":72,"v8":"7.7"},"12.16.0":{"node_abi":72,"v8":"7.8"},"12.16.1":{"node_abi":72,"v8":"7.8"},"12.16.2":{"node_abi":72,"v8":"7.8"},"12.16.3":{"node_abi":72,"v8":"7.8"},"12.17.0":{"node_abi":72,"v8":"7.8"},"12.18.0":{"node_abi":72,"v8":"7.8"},"12.18.1":{"node_abi":72,"v8":"7.8"},"12.18.2":{"node_abi":72,"v8":"7.8"},"12.18.3":{"node_abi":72,"v8":"7.8"},"12.18.4":{"node_abi":72,"v8":"7.8"},"12.19.0":{"node_abi":72,"v8":"7.8"},"12.19.1":{"node_abi":72,"v8":"7.8"},"12.20.0":{"node_abi":72,"v8":"7.8"},"12.20.1":{"node_abi":72,"v8":"7.8"},"12.20.2":{"node_abi":72,"v8":"7.8"},"12.21.0":{"node_abi":72,"v8":"7.8"},"12.22.0":{"node_abi":72,"v8":"7.8"},"12.22.1":{"node_abi":72,"v8":"7.8"},"13.0.0":{"node_abi":79,"v8":"7.8"},"13.0.1":{"node_abi":79,"v8":"7.8"},"13.1.0":{"node_abi":79,"v8":"7.8"},"13.2.0":{"node_abi":79,"v8":"7.9"},"13.3.0":{"node_abi":79,"v8":"7.9"},"13.4.0":{"node_abi":79,"v8":"7.9"},"13.5.0":{"node_abi":79,"v8":"7.9"},"13.6.0":{"node_abi":79,"v8":"7.9"},"13.7.0":{"node_abi":79,"v8":"7.9"},"13.8.0":{"node_abi":79,"v8":"7.9"},"13.9.0":{"node_abi":79,"v8":"7.9"},"13.10.0":{"node_abi":79,"v8":"7.9"},"13.10.1":{"node_abi":79,"v8":"7.9"},"13.11.0":{"node_abi":79,"v8":"7.9"},"13.12.0":{"node_abi":79,"v8":"7.9"},"13.13.0":{"node_abi":79,"v8":"7.9"},"13.14.0":{"node_abi":79,"v8":"7.9"},"14.0.0":{"node_abi":83,"v8":"8.1"},"14.1.0":{"node_abi":83,"v8":"8.1"},"14.2.0":{"node_abi":83,"v8":"8.1"},"14.3.0":{"node_abi":83,"v8":"8.1"},"14.4.0":{"node_abi":83,"v8":"8.1"},"14.5.0":{"node_abi":83,"v8":"8.3"},"14.6.0":{"node_abi":83,"v8":"8.4"},"14.7.0":{"node_abi":83,"v8":"8.4"},"14.8.0":{"node_abi":83,"v8":"8.4"},"14.9.0":{"node_abi":83,"v8":"8.4"},"14.10.0":{"node_abi":83,"v8":"8.4"},"14.10.1":{"node_abi":83,"v8":"8.4"},"14.11.0":{"node_abi":83,"v8":"8.4"},"14.12.0":{"node_abi":83,"v8":"8.4"},"14.13.0":{"node_abi":83,"v8":"8.4"},"14.13.1":{"node_abi":83,"v8":"8.4"},"14.14.0":{"node_abi":83,"v8":"8.4"},"14.15.0":{"node_abi":83,"v8":"8.4"},"14.15.1":{"node_abi":83,"v8":"8.4"},"14.15.2":{"node_abi":83,"v8":"8.4"},"14.15.3":{"node_abi":83,"v8":"8.4"},"14.15.4":{"node_abi":83,"v8":"8.4"},"14.15.5":{"node_abi":83,"v8":"8.4"},"14.16.0":{"node_abi":83,"v8":"8.4"},"14.16.1":{"node_abi":83,"v8":"8.4"},"15.0.0":{"node_abi":88,"v8":"8.6"},"15.0.1":{"node_abi":88,"v8":"8.6"},"15.1.0":{"node_abi":88,"v8":"8.6"},"15.2.0":{"node_abi":88,"v8":"8.6"},"15.2.1":{"node_abi":88,"v8":"8.6"},"15.3.0":{"node_abi":88,"v8":"8.6"},"15.4.0":{"node_abi":88,"v8":"8.6"},"15.5.0":{"node_abi":88,"v8":"8.6"},"15.5.1":{"node_abi":88,"v8":"8.6"},"15.6.0":{"node_abi":88,"v8":"8.6"},"15.7.0":{"node_abi":88,"v8":"8.6"},"15.8.0":{"node_abi":88,"v8":"8.6"},"15.9.0":{"node_abi":88,"v8":"8.6"},"15.10.0":{"node_abi":88,"v8":"8.6"},"15.11.0":{"node_abi":88,"v8":"8.6"},"15.12.0":{"node_abi":88,"v8":"8.6"},"15.13.0":{"node_abi":88,"v8":"8.6"},"15.14.0":{"node_abi":88,"v8":"8.6"},"16.0.0":{"node_abi":93,"v8":"9.0"}}')},7399:e=>{"use strict";e.exports=JSON.parse('{"name":"@mapbox/node-pre-gyp","description":"Node.js native addon binary install tool","version":"1.0.5","keywords":["native","addon","module","c","c++","bindings","binary"],"license":"BSD-3-Clause","author":"Dane Springmeyer ","repository":{"type":"git","url":"git://github.com/mapbox/node-pre-gyp.git"},"bin":"./bin/node-pre-gyp","main":"./lib/node-pre-gyp.js","dependencies":{"detect-libc":"^1.0.3","https-proxy-agent":"^5.0.0","make-dir":"^3.1.0","node-fetch":"^2.6.1","nopt":"^5.0.0","npmlog":"^4.1.2","rimraf":"^3.0.2","semver":"^7.3.4","tar":"^6.1.0"},"devDependencies":{"@mapbox/cloudfriend":"^4.6.0","@mapbox/eslint-config-mapbox":"^3.0.0","action-walk":"^2.2.0","aws-sdk":"^2.840.0","codecov":"^3.8.1","eslint":"^7.18.0","eslint-plugin-node":"^11.1.0","mock-aws-s3":"^4.0.1","nock":"^12.0.3","node-addon-api":"^3.1.0","nyc":"^15.1.0","tape":"^5.2.2","tar-fs":"^2.1.1"},"nyc":{"all":true,"skip-full":false,"exclude":["test/**"]},"scripts":{"coverage":"nyc --all --include index.js --include lib/ npm test","upload-coverage":"nyc report --reporter json && codecov --clear --flags=unit --file=./coverage/coverage-final.json","lint":"eslint bin/node-pre-gyp lib/*js lib/util/*js test/*js scripts/*js","fix":"npm run lint -- --fix","update-crosswalk":"node scripts/abi_crosswalk.js","test":"tape test/*test.js"}}')},1929:e=>{"use strict";e.exports=JSON.parse('{"0.1.14":{"node_abi":null,"v8":"1.3"},"0.1.15":{"node_abi":null,"v8":"1.3"},"0.1.16":{"node_abi":null,"v8":"1.3"},"0.1.17":{"node_abi":null,"v8":"1.3"},"0.1.18":{"node_abi":null,"v8":"1.3"},"0.1.19":{"node_abi":null,"v8":"2.0"},"0.1.20":{"node_abi":null,"v8":"2.0"},"0.1.21":{"node_abi":null,"v8":"2.0"},"0.1.22":{"node_abi":null,"v8":"2.0"},"0.1.23":{"node_abi":null,"v8":"2.0"},"0.1.24":{"node_abi":null,"v8":"2.0"},"0.1.25":{"node_abi":null,"v8":"2.0"},"0.1.26":{"node_abi":null,"v8":"2.0"},"0.1.27":{"node_abi":null,"v8":"2.1"},"0.1.28":{"node_abi":null,"v8":"2.1"},"0.1.29":{"node_abi":null,"v8":"2.1"},"0.1.30":{"node_abi":null,"v8":"2.1"},"0.1.31":{"node_abi":null,"v8":"2.1"},"0.1.32":{"node_abi":null,"v8":"2.1"},"0.1.33":{"node_abi":null,"v8":"2.1"},"0.1.90":{"node_abi":null,"v8":"2.2"},"0.1.91":{"node_abi":null,"v8":"2.2"},"0.1.92":{"node_abi":null,"v8":"2.2"},"0.1.93":{"node_abi":null,"v8":"2.2"},"0.1.94":{"node_abi":null,"v8":"2.2"},"0.1.95":{"node_abi":null,"v8":"2.2"},"0.1.96":{"node_abi":null,"v8":"2.2"},"0.1.97":{"node_abi":null,"v8":"2.2"},"0.1.98":{"node_abi":null,"v8":"2.2"},"0.1.99":{"node_abi":null,"v8":"2.2"},"0.1.100":{"node_abi":null,"v8":"2.2"},"0.1.101":{"node_abi":null,"v8":"2.3"},"0.1.102":{"node_abi":null,"v8":"2.3"},"0.1.103":{"node_abi":null,"v8":"2.3"},"0.1.104":{"node_abi":null,"v8":"2.3"},"0.2.0":{"node_abi":1,"v8":"2.3"},"0.2.1":{"node_abi":1,"v8":"2.3"},"0.2.2":{"node_abi":1,"v8":"2.3"},"0.2.3":{"node_abi":1,"v8":"2.3"},"0.2.4":{"node_abi":1,"v8":"2.3"},"0.2.5":{"node_abi":1,"v8":"2.3"},"0.2.6":{"node_abi":1,"v8":"2.3"},"0.3.0":{"node_abi":1,"v8":"2.5"},"0.3.1":{"node_abi":1,"v8":"2.5"},"0.3.2":{"node_abi":1,"v8":"3.0"},"0.3.3":{"node_abi":1,"v8":"3.0"},"0.3.4":{"node_abi":1,"v8":"3.0"},"0.3.5":{"node_abi":1,"v8":"3.0"},"0.3.6":{"node_abi":1,"v8":"3.0"},"0.3.7":{"node_abi":1,"v8":"3.0"},"0.3.8":{"node_abi":1,"v8":"3.1"},"0.4.0":{"node_abi":1,"v8":"3.1"},"0.4.1":{"node_abi":1,"v8":"3.1"},"0.4.2":{"node_abi":1,"v8":"3.1"},"0.4.3":{"node_abi":1,"v8":"3.1"},"0.4.4":{"node_abi":1,"v8":"3.1"},"0.4.5":{"node_abi":1,"v8":"3.1"},"0.4.6":{"node_abi":1,"v8":"3.1"},"0.4.7":{"node_abi":1,"v8":"3.1"},"0.4.8":{"node_abi":1,"v8":"3.1"},"0.4.9":{"node_abi":1,"v8":"3.1"},"0.4.10":{"node_abi":1,"v8":"3.1"},"0.4.11":{"node_abi":1,"v8":"3.1"},"0.4.12":{"node_abi":1,"v8":"3.1"},"0.5.0":{"node_abi":1,"v8":"3.1"},"0.5.1":{"node_abi":1,"v8":"3.4"},"0.5.2":{"node_abi":1,"v8":"3.4"},"0.5.3":{"node_abi":1,"v8":"3.4"},"0.5.4":{"node_abi":1,"v8":"3.5"},"0.5.5":{"node_abi":1,"v8":"3.5"},"0.5.6":{"node_abi":1,"v8":"3.6"},"0.5.7":{"node_abi":1,"v8":"3.6"},"0.5.8":{"node_abi":1,"v8":"3.6"},"0.5.9":{"node_abi":1,"v8":"3.6"},"0.5.10":{"node_abi":1,"v8":"3.7"},"0.6.0":{"node_abi":1,"v8":"3.6"},"0.6.1":{"node_abi":1,"v8":"3.6"},"0.6.2":{"node_abi":1,"v8":"3.6"},"0.6.3":{"node_abi":1,"v8":"3.6"},"0.6.4":{"node_abi":1,"v8":"3.6"},"0.6.5":{"node_abi":1,"v8":"3.6"},"0.6.6":{"node_abi":1,"v8":"3.6"},"0.6.7":{"node_abi":1,"v8":"3.6"},"0.6.8":{"node_abi":1,"v8":"3.6"},"0.6.9":{"node_abi":1,"v8":"3.6"},"0.6.10":{"node_abi":1,"v8":"3.6"},"0.6.11":{"node_abi":1,"v8":"3.6"},"0.6.12":{"node_abi":1,"v8":"3.6"},"0.6.13":{"node_abi":1,"v8":"3.6"},"0.6.14":{"node_abi":1,"v8":"3.6"},"0.6.15":{"node_abi":1,"v8":"3.6"},"0.6.16":{"node_abi":1,"v8":"3.6"},"0.6.17":{"node_abi":1,"v8":"3.6"},"0.6.18":{"node_abi":1,"v8":"3.6"},"0.6.19":{"node_abi":1,"v8":"3.6"},"0.6.20":{"node_abi":1,"v8":"3.6"},"0.6.21":{"node_abi":1,"v8":"3.6"},"0.7.0":{"node_abi":1,"v8":"3.8"},"0.7.1":{"node_abi":1,"v8":"3.8"},"0.7.2":{"node_abi":1,"v8":"3.8"},"0.7.3":{"node_abi":1,"v8":"3.9"},"0.7.4":{"node_abi":1,"v8":"3.9"},"0.7.5":{"node_abi":1,"v8":"3.9"},"0.7.6":{"node_abi":1,"v8":"3.9"},"0.7.7":{"node_abi":1,"v8":"3.9"},"0.7.8":{"node_abi":1,"v8":"3.9"},"0.7.9":{"node_abi":1,"v8":"3.11"},"0.7.10":{"node_abi":1,"v8":"3.9"},"0.7.11":{"node_abi":1,"v8":"3.11"},"0.7.12":{"node_abi":1,"v8":"3.11"},"0.8.0":{"node_abi":1,"v8":"3.11"},"0.8.1":{"node_abi":1,"v8":"3.11"},"0.8.2":{"node_abi":1,"v8":"3.11"},"0.8.3":{"node_abi":1,"v8":"3.11"},"0.8.4":{"node_abi":1,"v8":"3.11"},"0.8.5":{"node_abi":1,"v8":"3.11"},"0.8.6":{"node_abi":1,"v8":"3.11"},"0.8.7":{"node_abi":1,"v8":"3.11"},"0.8.8":{"node_abi":1,"v8":"3.11"},"0.8.9":{"node_abi":1,"v8":"3.11"},"0.8.10":{"node_abi":1,"v8":"3.11"},"0.8.11":{"node_abi":1,"v8":"3.11"},"0.8.12":{"node_abi":1,"v8":"3.11"},"0.8.13":{"node_abi":1,"v8":"3.11"},"0.8.14":{"node_abi":1,"v8":"3.11"},"0.8.15":{"node_abi":1,"v8":"3.11"},"0.8.16":{"node_abi":1,"v8":"3.11"},"0.8.17":{"node_abi":1,"v8":"3.11"},"0.8.18":{"node_abi":1,"v8":"3.11"},"0.8.19":{"node_abi":1,"v8":"3.11"},"0.8.20":{"node_abi":1,"v8":"3.11"},"0.8.21":{"node_abi":1,"v8":"3.11"},"0.8.22":{"node_abi":1,"v8":"3.11"},"0.8.23":{"node_abi":1,"v8":"3.11"},"0.8.24":{"node_abi":1,"v8":"3.11"},"0.8.25":{"node_abi":1,"v8":"3.11"},"0.8.26":{"node_abi":1,"v8":"3.11"},"0.8.27":{"node_abi":1,"v8":"3.11"},"0.8.28":{"node_abi":1,"v8":"3.11"},"0.9.0":{"node_abi":1,"v8":"3.11"},"0.9.1":{"node_abi":10,"v8":"3.11"},"0.9.2":{"node_abi":10,"v8":"3.11"},"0.9.3":{"node_abi":10,"v8":"3.13"},"0.9.4":{"node_abi":10,"v8":"3.13"},"0.9.5":{"node_abi":10,"v8":"3.13"},"0.9.6":{"node_abi":10,"v8":"3.15"},"0.9.7":{"node_abi":10,"v8":"3.15"},"0.9.8":{"node_abi":10,"v8":"3.15"},"0.9.9":{"node_abi":11,"v8":"3.15"},"0.9.10":{"node_abi":11,"v8":"3.15"},"0.9.11":{"node_abi":11,"v8":"3.14"},"0.9.12":{"node_abi":11,"v8":"3.14"},"0.10.0":{"node_abi":11,"v8":"3.14"},"0.10.1":{"node_abi":11,"v8":"3.14"},"0.10.2":{"node_abi":11,"v8":"3.14"},"0.10.3":{"node_abi":11,"v8":"3.14"},"0.10.4":{"node_abi":11,"v8":"3.14"},"0.10.5":{"node_abi":11,"v8":"3.14"},"0.10.6":{"node_abi":11,"v8":"3.14"},"0.10.7":{"node_abi":11,"v8":"3.14"},"0.10.8":{"node_abi":11,"v8":"3.14"},"0.10.9":{"node_abi":11,"v8":"3.14"},"0.10.10":{"node_abi":11,"v8":"3.14"},"0.10.11":{"node_abi":11,"v8":"3.14"},"0.10.12":{"node_abi":11,"v8":"3.14"},"0.10.13":{"node_abi":11,"v8":"3.14"},"0.10.14":{"node_abi":11,"v8":"3.14"},"0.10.15":{"node_abi":11,"v8":"3.14"},"0.10.16":{"node_abi":11,"v8":"3.14"},"0.10.17":{"node_abi":11,"v8":"3.14"},"0.10.18":{"node_abi":11,"v8":"3.14"},"0.10.19":{"node_abi":11,"v8":"3.14"},"0.10.20":{"node_abi":11,"v8":"3.14"},"0.10.21":{"node_abi":11,"v8":"3.14"},"0.10.22":{"node_abi":11,"v8":"3.14"},"0.10.23":{"node_abi":11,"v8":"3.14"},"0.10.24":{"node_abi":11,"v8":"3.14"},"0.10.25":{"node_abi":11,"v8":"3.14"},"0.10.26":{"node_abi":11,"v8":"3.14"},"0.10.27":{"node_abi":11,"v8":"3.14"},"0.10.28":{"node_abi":11,"v8":"3.14"},"0.10.29":{"node_abi":11,"v8":"3.14"},"0.10.30":{"node_abi":11,"v8":"3.14"},"0.10.31":{"node_abi":11,"v8":"3.14"},"0.10.32":{"node_abi":11,"v8":"3.14"},"0.10.33":{"node_abi":11,"v8":"3.14"},"0.10.34":{"node_abi":11,"v8":"3.14"},"0.10.35":{"node_abi":11,"v8":"3.14"},"0.10.36":{"node_abi":11,"v8":"3.14"},"0.10.37":{"node_abi":11,"v8":"3.14"},"0.10.38":{"node_abi":11,"v8":"3.14"},"0.10.39":{"node_abi":11,"v8":"3.14"},"0.10.40":{"node_abi":11,"v8":"3.14"},"0.10.41":{"node_abi":11,"v8":"3.14"},"0.10.42":{"node_abi":11,"v8":"3.14"},"0.10.43":{"node_abi":11,"v8":"3.14"},"0.10.44":{"node_abi":11,"v8":"3.14"},"0.10.45":{"node_abi":11,"v8":"3.14"},"0.10.46":{"node_abi":11,"v8":"3.14"},"0.10.47":{"node_abi":11,"v8":"3.14"},"0.10.48":{"node_abi":11,"v8":"3.14"},"0.11.0":{"node_abi":12,"v8":"3.17"},"0.11.1":{"node_abi":12,"v8":"3.18"},"0.11.2":{"node_abi":12,"v8":"3.19"},"0.11.3":{"node_abi":12,"v8":"3.19"},"0.11.4":{"node_abi":12,"v8":"3.20"},"0.11.5":{"node_abi":12,"v8":"3.20"},"0.11.6":{"node_abi":12,"v8":"3.20"},"0.11.7":{"node_abi":12,"v8":"3.20"},"0.11.8":{"node_abi":13,"v8":"3.21"},"0.11.9":{"node_abi":13,"v8":"3.22"},"0.11.10":{"node_abi":13,"v8":"3.22"},"0.11.11":{"node_abi":14,"v8":"3.22"},"0.11.12":{"node_abi":14,"v8":"3.22"},"0.11.13":{"node_abi":14,"v8":"3.25"},"0.11.14":{"node_abi":14,"v8":"3.26"},"0.11.15":{"node_abi":14,"v8":"3.28"},"0.11.16":{"node_abi":14,"v8":"3.28"},"0.12.0":{"node_abi":14,"v8":"3.28"},"0.12.1":{"node_abi":14,"v8":"3.28"},"0.12.2":{"node_abi":14,"v8":"3.28"},"0.12.3":{"node_abi":14,"v8":"3.28"},"0.12.4":{"node_abi":14,"v8":"3.28"},"0.12.5":{"node_abi":14,"v8":"3.28"},"0.12.6":{"node_abi":14,"v8":"3.28"},"0.12.7":{"node_abi":14,"v8":"3.28"},"0.12.8":{"node_abi":14,"v8":"3.28"},"0.12.9":{"node_abi":14,"v8":"3.28"},"0.12.10":{"node_abi":14,"v8":"3.28"},"0.12.11":{"node_abi":14,"v8":"3.28"},"0.12.12":{"node_abi":14,"v8":"3.28"},"0.12.13":{"node_abi":14,"v8":"3.28"},"0.12.14":{"node_abi":14,"v8":"3.28"},"0.12.15":{"node_abi":14,"v8":"3.28"},"0.12.16":{"node_abi":14,"v8":"3.28"},"0.12.17":{"node_abi":14,"v8":"3.28"},"0.12.18":{"node_abi":14,"v8":"3.28"},"1.0.0":{"node_abi":42,"v8":"3.31"},"1.0.1":{"node_abi":42,"v8":"3.31"},"1.0.2":{"node_abi":42,"v8":"3.31"},"1.0.3":{"node_abi":42,"v8":"4.1"},"1.0.4":{"node_abi":42,"v8":"4.1"},"1.1.0":{"node_abi":43,"v8":"4.1"},"1.2.0":{"node_abi":43,"v8":"4.1"},"1.3.0":{"node_abi":43,"v8":"4.1"},"1.4.1":{"node_abi":43,"v8":"4.1"},"1.4.2":{"node_abi":43,"v8":"4.1"},"1.4.3":{"node_abi":43,"v8":"4.1"},"1.5.0":{"node_abi":43,"v8":"4.1"},"1.5.1":{"node_abi":43,"v8":"4.1"},"1.6.0":{"node_abi":43,"v8":"4.1"},"1.6.1":{"node_abi":43,"v8":"4.1"},"1.6.2":{"node_abi":43,"v8":"4.1"},"1.6.3":{"node_abi":43,"v8":"4.1"},"1.6.4":{"node_abi":43,"v8":"4.1"},"1.7.1":{"node_abi":43,"v8":"4.1"},"1.8.1":{"node_abi":43,"v8":"4.1"},"1.8.2":{"node_abi":43,"v8":"4.1"},"1.8.3":{"node_abi":43,"v8":"4.1"},"1.8.4":{"node_abi":43,"v8":"4.1"},"2.0.0":{"node_abi":44,"v8":"4.2"},"2.0.1":{"node_abi":44,"v8":"4.2"},"2.0.2":{"node_abi":44,"v8":"4.2"},"2.1.0":{"node_abi":44,"v8":"4.2"},"2.2.0":{"node_abi":44,"v8":"4.2"},"2.2.1":{"node_abi":44,"v8":"4.2"},"2.3.0":{"node_abi":44,"v8":"4.2"},"2.3.1":{"node_abi":44,"v8":"4.2"},"2.3.2":{"node_abi":44,"v8":"4.2"},"2.3.3":{"node_abi":44,"v8":"4.2"},"2.3.4":{"node_abi":44,"v8":"4.2"},"2.4.0":{"node_abi":44,"v8":"4.2"},"2.5.0":{"node_abi":44,"v8":"4.2"},"3.0.0":{"node_abi":45,"v8":"4.4"},"3.1.0":{"node_abi":45,"v8":"4.4"},"3.2.0":{"node_abi":45,"v8":"4.4"},"3.3.0":{"node_abi":45,"v8":"4.4"},"3.3.1":{"node_abi":45,"v8":"4.4"},"4.0.0":{"node_abi":46,"v8":"4.5"},"4.1.0":{"node_abi":46,"v8":"4.5"},"4.1.1":{"node_abi":46,"v8":"4.5"},"4.1.2":{"node_abi":46,"v8":"4.5"},"4.2.0":{"node_abi":46,"v8":"4.5"},"4.2.1":{"node_abi":46,"v8":"4.5"},"4.2.2":{"node_abi":46,"v8":"4.5"},"4.2.3":{"node_abi":46,"v8":"4.5"},"4.2.4":{"node_abi":46,"v8":"4.5"},"4.2.5":{"node_abi":46,"v8":"4.5"},"4.2.6":{"node_abi":46,"v8":"4.5"},"4.3.0":{"node_abi":46,"v8":"4.5"},"4.3.1":{"node_abi":46,"v8":"4.5"},"4.3.2":{"node_abi":46,"v8":"4.5"},"4.4.0":{"node_abi":46,"v8":"4.5"},"4.4.1":{"node_abi":46,"v8":"4.5"},"4.4.2":{"node_abi":46,"v8":"4.5"},"4.4.3":{"node_abi":46,"v8":"4.5"},"4.4.4":{"node_abi":46,"v8":"4.5"},"4.4.5":{"node_abi":46,"v8":"4.5"},"4.4.6":{"node_abi":46,"v8":"4.5"},"4.4.7":{"node_abi":46,"v8":"4.5"},"4.5.0":{"node_abi":46,"v8":"4.5"},"4.6.0":{"node_abi":46,"v8":"4.5"},"4.6.1":{"node_abi":46,"v8":"4.5"},"4.6.2":{"node_abi":46,"v8":"4.5"},"4.7.0":{"node_abi":46,"v8":"4.5"},"4.7.1":{"node_abi":46,"v8":"4.5"},"4.7.2":{"node_abi":46,"v8":"4.5"},"4.7.3":{"node_abi":46,"v8":"4.5"},"4.8.0":{"node_abi":46,"v8":"4.5"},"4.8.1":{"node_abi":46,"v8":"4.5"},"4.8.2":{"node_abi":46,"v8":"4.5"},"4.8.3":{"node_abi":46,"v8":"4.5"},"4.8.4":{"node_abi":46,"v8":"4.5"},"4.8.5":{"node_abi":46,"v8":"4.5"},"4.8.6":{"node_abi":46,"v8":"4.5"},"4.8.7":{"node_abi":46,"v8":"4.5"},"4.9.0":{"node_abi":46,"v8":"4.5"},"4.9.1":{"node_abi":46,"v8":"4.5"},"5.0.0":{"node_abi":47,"v8":"4.6"},"5.1.0":{"node_abi":47,"v8":"4.6"},"5.1.1":{"node_abi":47,"v8":"4.6"},"5.2.0":{"node_abi":47,"v8":"4.6"},"5.3.0":{"node_abi":47,"v8":"4.6"},"5.4.0":{"node_abi":47,"v8":"4.6"},"5.4.1":{"node_abi":47,"v8":"4.6"},"5.5.0":{"node_abi":47,"v8":"4.6"},"5.6.0":{"node_abi":47,"v8":"4.6"},"5.7.0":{"node_abi":47,"v8":"4.6"},"5.7.1":{"node_abi":47,"v8":"4.6"},"5.8.0":{"node_abi":47,"v8":"4.6"},"5.9.0":{"node_abi":47,"v8":"4.6"},"5.9.1":{"node_abi":47,"v8":"4.6"},"5.10.0":{"node_abi":47,"v8":"4.6"},"5.10.1":{"node_abi":47,"v8":"4.6"},"5.11.0":{"node_abi":47,"v8":"4.6"},"5.11.1":{"node_abi":47,"v8":"4.6"},"5.12.0":{"node_abi":47,"v8":"4.6"},"6.0.0":{"node_abi":48,"v8":"5.0"},"6.1.0":{"node_abi":48,"v8":"5.0"},"6.2.0":{"node_abi":48,"v8":"5.0"},"6.2.1":{"node_abi":48,"v8":"5.0"},"6.2.2":{"node_abi":48,"v8":"5.0"},"6.3.0":{"node_abi":48,"v8":"5.0"},"6.3.1":{"node_abi":48,"v8":"5.0"},"6.4.0":{"node_abi":48,"v8":"5.0"},"6.5.0":{"node_abi":48,"v8":"5.1"},"6.6.0":{"node_abi":48,"v8":"5.1"},"6.7.0":{"node_abi":48,"v8":"5.1"},"6.8.0":{"node_abi":48,"v8":"5.1"},"6.8.1":{"node_abi":48,"v8":"5.1"},"6.9.0":{"node_abi":48,"v8":"5.1"},"6.9.1":{"node_abi":48,"v8":"5.1"},"6.9.2":{"node_abi":48,"v8":"5.1"},"6.9.3":{"node_abi":48,"v8":"5.1"},"6.9.4":{"node_abi":48,"v8":"5.1"},"6.9.5":{"node_abi":48,"v8":"5.1"},"6.10.0":{"node_abi":48,"v8":"5.1"},"6.10.1":{"node_abi":48,"v8":"5.1"},"6.10.2":{"node_abi":48,"v8":"5.1"},"6.10.3":{"node_abi":48,"v8":"5.1"},"6.11.0":{"node_abi":48,"v8":"5.1"},"6.11.1":{"node_abi":48,"v8":"5.1"},"6.11.2":{"node_abi":48,"v8":"5.1"},"6.11.3":{"node_abi":48,"v8":"5.1"},"6.11.4":{"node_abi":48,"v8":"5.1"},"6.11.5":{"node_abi":48,"v8":"5.1"},"6.12.0":{"node_abi":48,"v8":"5.1"},"6.12.1":{"node_abi":48,"v8":"5.1"},"6.12.2":{"node_abi":48,"v8":"5.1"},"6.12.3":{"node_abi":48,"v8":"5.1"},"6.13.0":{"node_abi":48,"v8":"5.1"},"6.13.1":{"node_abi":48,"v8":"5.1"},"6.14.0":{"node_abi":48,"v8":"5.1"},"6.14.1":{"node_abi":48,"v8":"5.1"},"6.14.2":{"node_abi":48,"v8":"5.1"},"6.14.3":{"node_abi":48,"v8":"5.1"},"6.14.4":{"node_abi":48,"v8":"5.1"},"6.15.0":{"node_abi":48,"v8":"5.1"},"6.15.1":{"node_abi":48,"v8":"5.1"},"6.16.0":{"node_abi":48,"v8":"5.1"},"6.17.0":{"node_abi":48,"v8":"5.1"},"6.17.1":{"node_abi":48,"v8":"5.1"},"7.0.0":{"node_abi":51,"v8":"5.4"},"7.1.0":{"node_abi":51,"v8":"5.4"},"7.2.0":{"node_abi":51,"v8":"5.4"},"7.2.1":{"node_abi":51,"v8":"5.4"},"7.3.0":{"node_abi":51,"v8":"5.4"},"7.4.0":{"node_abi":51,"v8":"5.4"},"7.5.0":{"node_abi":51,"v8":"5.4"},"7.6.0":{"node_abi":51,"v8":"5.5"},"7.7.0":{"node_abi":51,"v8":"5.5"},"7.7.1":{"node_abi":51,"v8":"5.5"},"7.7.2":{"node_abi":51,"v8":"5.5"},"7.7.3":{"node_abi":51,"v8":"5.5"},"7.7.4":{"node_abi":51,"v8":"5.5"},"7.8.0":{"node_abi":51,"v8":"5.5"},"7.9.0":{"node_abi":51,"v8":"5.5"},"7.10.0":{"node_abi":51,"v8":"5.5"},"7.10.1":{"node_abi":51,"v8":"5.5"},"8.0.0":{"node_abi":57,"v8":"5.8"},"8.1.0":{"node_abi":57,"v8":"5.8"},"8.1.1":{"node_abi":57,"v8":"5.8"},"8.1.2":{"node_abi":57,"v8":"5.8"},"8.1.3":{"node_abi":57,"v8":"5.8"},"8.1.4":{"node_abi":57,"v8":"5.8"},"8.2.0":{"node_abi":57,"v8":"5.8"},"8.2.1":{"node_abi":57,"v8":"5.8"},"8.3.0":{"node_abi":57,"v8":"6.0"},"8.4.0":{"node_abi":57,"v8":"6.0"},"8.5.0":{"node_abi":57,"v8":"6.0"},"8.6.0":{"node_abi":57,"v8":"6.0"},"8.7.0":{"node_abi":57,"v8":"6.1"},"8.8.0":{"node_abi":57,"v8":"6.1"},"8.8.1":{"node_abi":57,"v8":"6.1"},"8.9.0":{"node_abi":57,"v8":"6.1"},"8.9.1":{"node_abi":57,"v8":"6.1"},"8.9.2":{"node_abi":57,"v8":"6.1"},"8.9.3":{"node_abi":57,"v8":"6.1"},"8.9.4":{"node_abi":57,"v8":"6.1"},"8.10.0":{"node_abi":57,"v8":"6.2"},"8.11.0":{"node_abi":57,"v8":"6.2"},"8.11.1":{"node_abi":57,"v8":"6.2"},"8.11.2":{"node_abi":57,"v8":"6.2"},"8.11.3":{"node_abi":57,"v8":"6.2"},"8.11.4":{"node_abi":57,"v8":"6.2"},"8.12.0":{"node_abi":57,"v8":"6.2"},"8.13.0":{"node_abi":57,"v8":"6.2"},"8.14.0":{"node_abi":57,"v8":"6.2"},"8.14.1":{"node_abi":57,"v8":"6.2"},"8.15.0":{"node_abi":57,"v8":"6.2"},"8.15.1":{"node_abi":57,"v8":"6.2"},"8.16.0":{"node_abi":57,"v8":"6.2"},"9.0.0":{"node_abi":59,"v8":"6.2"},"9.1.0":{"node_abi":59,"v8":"6.2"},"9.2.0":{"node_abi":59,"v8":"6.2"},"9.2.1":{"node_abi":59,"v8":"6.2"},"9.3.0":{"node_abi":59,"v8":"6.2"},"9.4.0":{"node_abi":59,"v8":"6.2"},"9.5.0":{"node_abi":59,"v8":"6.2"},"9.6.0":{"node_abi":59,"v8":"6.2"},"9.6.1":{"node_abi":59,"v8":"6.2"},"9.7.0":{"node_abi":59,"v8":"6.2"},"9.7.1":{"node_abi":59,"v8":"6.2"},"9.8.0":{"node_abi":59,"v8":"6.2"},"9.9.0":{"node_abi":59,"v8":"6.2"},"9.10.0":{"node_abi":59,"v8":"6.2"},"9.10.1":{"node_abi":59,"v8":"6.2"},"9.11.0":{"node_abi":59,"v8":"6.2"},"9.11.1":{"node_abi":59,"v8":"6.2"},"9.11.2":{"node_abi":59,"v8":"6.2"},"10.0.0":{"node_abi":64,"v8":"6.6"},"10.1.0":{"node_abi":64,"v8":"6.6"},"10.2.0":{"node_abi":64,"v8":"6.6"},"10.2.1":{"node_abi":64,"v8":"6.6"},"10.3.0":{"node_abi":64,"v8":"6.6"},"10.4.0":{"node_abi":64,"v8":"6.7"},"10.4.1":{"node_abi":64,"v8":"6.7"},"10.5.0":{"node_abi":64,"v8":"6.7"},"10.6.0":{"node_abi":64,"v8":"6.7"},"10.7.0":{"node_abi":64,"v8":"6.7"},"10.8.0":{"node_abi":64,"v8":"6.7"},"10.9.0":{"node_abi":64,"v8":"6.8"},"10.10.0":{"node_abi":64,"v8":"6.8"},"10.11.0":{"node_abi":64,"v8":"6.8"},"10.12.0":{"node_abi":64,"v8":"6.8"},"10.13.0":{"node_abi":64,"v8":"6.8"},"10.14.0":{"node_abi":64,"v8":"6.8"},"10.14.1":{"node_abi":64,"v8":"6.8"},"10.14.2":{"node_abi":64,"v8":"6.8"},"10.15.0":{"node_abi":64,"v8":"6.8"},"10.15.1":{"node_abi":64,"v8":"6.8"},"10.15.2":{"node_abi":64,"v8":"6.8"},"10.15.3":{"node_abi":64,"v8":"6.8"},"11.0.0":{"node_abi":67,"v8":"7.0"},"11.1.0":{"node_abi":67,"v8":"7.0"},"11.2.0":{"node_abi":67,"v8":"7.0"},"11.3.0":{"node_abi":67,"v8":"7.0"},"11.4.0":{"node_abi":67,"v8":"7.0"},"11.5.0":{"node_abi":67,"v8":"7.0"},"11.6.0":{"node_abi":67,"v8":"7.0"},"11.7.0":{"node_abi":67,"v8":"7.0"},"11.8.0":{"node_abi":67,"v8":"7.0"},"11.9.0":{"node_abi":67,"v8":"7.0"},"11.10.0":{"node_abi":67,"v8":"7.0"},"11.10.1":{"node_abi":67,"v8":"7.0"},"11.11.0":{"node_abi":67,"v8":"7.0"},"11.12.0":{"node_abi":67,"v8":"7.0"},"11.13.0":{"node_abi":67,"v8":"7.0"},"11.14.0":{"node_abi":67,"v8":"7.0"},"12.0.0":{"node_abi":72,"v8":"7.4"}}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var a=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);a=false}finally{if(a)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(4731);module.exports=__webpack_exports__})(); \ No newline at end of file + */var isNumber=function(e){if(typeof e==="number"){return e-e===0}if(typeof e==="string"&&e.trim()!==""){return Number.isFinite?Number.isFinite(+e):isFinite(+e)}return false};const toRegexRange=(e,t,r)=>{if(isNumber(e)===false){throw new TypeError("toRegexRange: expected the first argument to be a number")}if(t===void 0||e===t){return String(e)}if(isNumber(t)===false){throw new TypeError("toRegexRange: expected the second argument to be a number.")}let a=Object.assign({relaxZeros:true},r);if(typeof a.strictZeros==="boolean"){a.relaxZeros=a.strictZeros===false}let o=String(a.relaxZeros);let s=String(a.shorthand);let u=String(a.capture);let c=String(a.wrap);let d=e+":"+t+"="+o+s+u+c;if(toRegexRange.cache.hasOwnProperty(d)){return toRegexRange.cache[d].result}let f=Math.min(e,t);let p=Math.max(e,t);if(Math.abs(f-p)===1){let r=e+"|"+t;if(a.capture){return`(${r})`}if(a.wrap===false){return r}return`(?:${r})`}let h=hasPadding(e)||hasPadding(t);let v={min:e,max:t,a:f,b:p};let _=[];let g=[];if(h){v.isPadded=h;v.maxLen=String(v.max).length}if(f<0){let e=p<0?Math.abs(p):1;g=splitToPatterns(e,Math.abs(f),v,a);f=v.a=0}if(p>=0){_=splitToPatterns(f,p,v,a)}v.negatives=g;v.positives=_;v.result=collatePatterns(g,_,a);if(a.capture===true){v.result=`(${v.result})`}else if(a.wrap!==false&&_.length+g.length>1){v.result=`(?:${v.result})`}toRegexRange.cache[d]=v;return v.result};function collatePatterns(e,t,r){let a=filterPatterns(e,t,"-",false,r)||[];let o=filterPatterns(t,e,"",false,r)||[];let s=filterPatterns(e,t,"-?",true,r)||[];let u=a.concat(s).concat(o);return u.join("|")}function splitToRanges(e,t){let r=1;let a=1;let o=countNines(e,r);let s=new Set([t]);while(e<=o&&o<=t){s.add(o);r+=1;o=countNines(e,r)}o=countZeros(t+1,a)-1;while(e1){c.count.pop()}c.count.push(d.count[0]);c.string=c.pattern+toQuantifier(c.count);u=t+1;continue}if(r.isPadded){f=padZeros(t,r,a)}d.string=f+d.pattern+toQuantifier(d.count);s.push(d);u=t+1;c=d}return s}function filterPatterns(e,t,r,a,o){let s=[];for(let o of e){let{string:e}=o;if(!a&&!contains(t,"string",e)){s.push(r+e)}if(a&&contains(t,"string",e)){s.push(r+e)}}return s}function zip(e,t){let r=[];for(let a=0;at?1:t>e?-1:0}function contains(e,t,r){return e.some((e=>e[t]===r))}function countNines(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function countZeros(e,t){return e-e%Math.pow(10,t)}function toQuantifier(e){let[t=0,r=""]=e;if(r||t>1){return`{${t+(r?","+r:"")}}`}return""}function toCharacterClass(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function hasPadding(e){return/^-?(0+)\d/.test(e)}function padZeros(e,t,r){if(!t.isPadded){return e}let a=Math.abs(t.maxLen-String(e).length);let o=r.relaxZeros!==false;switch(a){case 0:return"";case 1:return o?"0?":"0";case 2:return o?"0{0,2}":"00";default:{return o?`0{0,${a}}`:`0{${a}}`}}}toRegexRange.cache={};toRegexRange.clearCache=()=>toRegexRange.cache={};var R=toRegexRange;const isObject=e=>e!==null&&typeof e==="object"&&!Array.isArray(e);const transform=e=>t=>e===true?Number(t):String(t);const isValidValue=e=>typeof e==="number"||typeof e==="string"&&e!=="";const isNumber$1=e=>Number.isInteger(+e);const zeros=e=>{let t=`${e}`;let r=-1;if(t[0]==="-")t=t.slice(1);if(t==="0")return false;while(t[++r]==="0");return r>0};const stringify$1=(e,t,r)=>{if(typeof e==="string"||typeof t==="string"){return true}return r.stringify===true};const pad=(e,t,r)=>{if(t>0){let r=e[0]==="-"?"-":"";if(r)e=e.slice(1);e=r+e.padStart(r?t-1:t,"0")}if(r===false){return String(e)}return e};const toMaxLen=(e,t)=>{let r=e[0]==="-"?"-":"";if(r){e=e.slice(1);t--}while(e.length{e.negatives.sort(((e,t)=>et?1:0));e.positives.sort(((e,t)=>et?1:0));let r=t.capture?"":"?:";let a="";let o="";let s;if(e.positives.length){a=e.positives.join("|")}if(e.negatives.length){o=`-(${r}${e.negatives.join("|")})`}if(a&&o){s=`${a}|${o}`}else{s=a||o}if(t.wrap){return`(${r}${s})`}return s};const toRange=(e,t,r,a)=>{if(r){return R(e,t,Object.assign({wrap:false},a))}let o=String.fromCharCode(e);if(e===t)return o;let s=String.fromCharCode(t);return`[${o}-${s}]`};const toRegex=(e,t,r)=>{if(Array.isArray(e)){let t=r.wrap===true;let a=r.capture?"":"?:";return t?`(${a}${e.join("|")})`:e.join("|")}return R(e,t,r)};const rangeError=(...e)=>new RangeError("Invalid range arguments: "+u.inspect(...e));const invalidRange=(e,t,r)=>{if(r.strictRanges===true)throw rangeError([e,t]);return[]};const invalidStep=(e,t)=>{if(t.strictRanges===true){throw new TypeError(`Expected step "${e}" to be a number`)}return[]};const fillNumbers=(e,t,r=1,a={})=>{let o=Number(e);let s=Number(t);if(!Number.isInteger(o)||!Number.isInteger(s)){if(a.strictRanges===true)throw rangeError([e,t]);return[]}if(o===0)o=0;if(s===0)s=0;let u=o>s;let c=String(e);let d=String(t);let f=String(r);r=Math.max(Math.abs(r),1);let p=zeros(c)||zeros(d)||zeros(f);let h=p?Math.max(c.length,d.length,f.length):0;let v=p===false&&stringify$1(e,t,a)===false;let _=a.transform||transform(v);if(a.toRegex&&r===1){return toRange(toMaxLen(e,h),toMaxLen(t,h),true,a)}let g={negatives:[],positives:[]};let push=e=>g[e<0?"negatives":"positives"].push(Math.abs(e));let y=[];let m=0;while(u?o>=s:o<=s){if(a.toRegex===true&&r>1){push(o)}else{y.push(pad(_(o,m),h,v))}o=u?o-r:o+r;m++}if(a.toRegex===true){return r>1?toSequence(g,a):toRegex(y,null,Object.assign({wrap:false},a))}return y};const fillLetters=(e,t,r=1,a={})=>{if(!isNumber$1(e)&&e.length>1||!isNumber$1(t)&&t.length>1){return invalidRange(e,t,a)}let o=a.transform||(e=>String.fromCharCode(e));let s=`${e}`.charCodeAt(0);let u=`${t}`.charCodeAt(0);let c=s>u;let d=Math.min(s,u);let f=Math.max(s,u);if(a.toRegex&&r===1){return toRange(d,f,false,a)}let p=[];let h=0;while(c?s>=u:s<=u){p.push(o(s,h));s=c?s-r:s+r;h++}if(a.toRegex===true){return toRegex(p,null,{wrap:false,options:a})}return p};const fill=(e,t,r,a={})=>{if(t==null&&isValidValue(e)){return[e]}if(!isValidValue(e)||!isValidValue(t)){return invalidRange(e,t,a)}if(typeof r==="function"){return fill(e,t,1,{transform:r})}if(isObject(r)){return fill(e,t,0,r)}let o=Object.assign({},a);if(o.capture===true)o.wrap=true;r=r||o.step||1;if(!isNumber$1(r)){if(r!=null&&!isObject(r))return invalidStep(r,o);return fill(e,t,1,r)}if(isNumber$1(e)&&isNumber$1(t)){return fillNumbers(e,t,r,o)}return fillLetters(e,t,Math.max(Math.abs(r),1),o)};var A=fill;const compile=(e,t={})=>{let walk=(e,r={})=>{let a=v.isInvalidBrace(r);let o=e.invalid===true&&t.escapeInvalid===true;let s=a===true||o===true;let u=t.escapeInvalid===true?"\\":"";let c="";if(e.isOpen===true){return u+e.value}if(e.isClose===true){return u+e.value}if(e.type==="open"){return s?u+e.value:"("}if(e.type==="close"){return s?u+e.value:")"}if(e.type==="comma"){return e.prev.type==="comma"?"":s?e.value:"|"}if(e.value){return e.value}if(e.nodes&&e.ranges>0){let r=v.reduce(e.nodes);let a=A(...r,Object.assign({},t,{wrap:false,toRegex:true}));if(a.length!==0){return r.length>1&&a.length>1?`(${a})`:a}}if(e.nodes){for(let t of e.nodes){c+=walk(t,e)}}return c};return walk(e)};var O=compile;const append=(e="",t="",r=false)=>{let a=[];e=[].concat(e);t=[].concat(t);if(!t.length)return e;if(!e.length){return r?v.flatten(t).map((e=>`{${e}}`)):t}for(let o of e){if(Array.isArray(o)){for(let e of o){a.push(append(e,t,r))}}else{for(let e of t){if(r===true&&typeof e==="string")e=`{${e}}`;a.push(Array.isArray(e)?append(o,e,r):o+e)}}}return v.flatten(a)};const expand=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit;let walk=(e,a={})=>{e.queue=[];let o=a;let s=a.queue;while(o.type!=="brace"&&o.type!=="root"&&o.parent){o=o.parent;s=o.queue}if(e.invalid||e.dollar){s.push(append(s.pop(),stringify(e,t)));return}if(e.type==="brace"&&e.invalid!==true&&e.nodes.length===2){s.push(append(s.pop(),["{}"]));return}if(e.nodes&&e.ranges>0){let a=v.reduce(e.nodes);if(v.exceedsLimit(...a,t.step,r)){throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.")}let o=A(...a,t);if(o.length===0){o=stringify(e,t)}s.push(append(s.pop(),o));e.nodes=[];return}let u=v.encloseBrace(e);let c=e.queue;let d=e;while(d.type!=="brace"&&d.type!=="root"&&d.parent){d=d.parent;c=d.queue}for(let t=0;t",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"};const{MAX_LENGTH:j,CHAR_BACKSLASH:N,CHAR_BACKTICK:L,CHAR_COMMA:I,CHAR_DOT:P,CHAR_LEFT_PARENTHESES:D,CHAR_RIGHT_PARENTHESES:M,CHAR_LEFT_CURLY_BRACE:W,CHAR_RIGHT_CURLY_BRACE:F,CHAR_LEFT_SQUARE_BRACKET:B,CHAR_RIGHT_SQUARE_BRACKET:$,CHAR_DOUBLE_QUOTE:U,CHAR_SINGLE_QUOTE:H,CHAR_NO_BREAK_SPACE:q,CHAR_ZERO_WIDTH_NOBREAK_SPACE:G}=C;const parse=(e,t={})=>{if(typeof e!=="string"){throw new TypeError("Expected a string")}let r=t||{};let a=typeof r.maxLength==="number"?Math.min(j,r.maxLength):j;if(e.length>a){throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${a})`)}let o={type:"root",input:e,nodes:[]};let s=[o];let u=o;let c=o;let d=0;let f=e.length;let p=0;let h=0;let v;const advance=()=>e[p++];const push=e=>{if(e.type==="text"&&c.type==="dot"){c.type="text"}if(c&&c.type==="text"&&e.type==="text"){c.value+=e.value;return}u.nodes.push(e);e.parent=u;e.prev=c;c=e;return e};push({type:"bos"});while(p0){if(u.ranges>0){u.ranges=0;let e=u.nodes.shift();u.nodes=[e,{type:"text",value:stringify(u)}]}push({type:"comma",value:v});u.commas++;continue}if(v===P&&h>0&&u.commas===0){let e=u.nodes;if(h===0||e.length===0){push({type:"text",value:v});continue}if(c.type==="dot"){u.range=[];c.value+=v;c.type="range";if(u.nodes.length!==3&&u.nodes.length!==5){u.invalid=true;u.ranges=0;c.type="text";continue}u.ranges++;u.args=[];continue}if(c.type==="range"){e.pop();let t=e[e.length-1];t.value+=c.value+v;c=t;u.ranges--;continue}push({type:"dot",value:v});continue}push({type:"text",value:v})}do{u=s.pop();if(u.type!=="root"){u.nodes.forEach((e=>{if(!e.nodes){if(e.type==="open")e.isOpen=true;if(e.type==="close")e.isClose=true;if(!e.nodes)e.type="text";e.invalid=true}}));let e=s[s.length-1];let t=e.nodes.indexOf(u);e.nodes.splice(t,1,...u.nodes)}}while(s.length>0);push({type:"eos"});return o};var K=parse;const braces=(e,t={})=>{let r=[];if(Array.isArray(e)){for(let a of e){let e=braces.create(a,t);if(Array.isArray(e)){r.push(...e)}else{r.push(e)}}}else{r=[].concat(braces.create(e,t))}if(t&&t.expand===true&&t.nodupes===true){r=[...new Set(r)]}return r};braces.parse=(e,t={})=>K(e,t);braces.stringify=(e,t={})=>{if(typeof e==="string"){return stringify(braces.parse(e,t),t)}return stringify(e,t)};braces.compile=(e,t={})=>{if(typeof e==="string"){e=braces.parse(e,t)}return O(e,t)};braces.expand=(e,t={})=>{if(typeof e==="string"){e=braces.parse(e,t)}let r=T(e,t);if(t.noempty===true){r=r.filter(Boolean)}if(t.nodupes===true){r=[...new Set(r)]}return r};braces.create=(e,t={})=>{if(e===""||e.length<3){return[e]}return t.expand!==true?braces.compile(e,t):braces.expand(e,t)};var z=braces;const V="\\\\/";const Y=`[^${V}]`;const Q="\\.";const X="\\+";const Z="\\?";const J="\\/";const ee="(?=.)";const te="[^/]";const ne=`(?:${J}|$)`;const re=`(?:^|${J})`;const ie=`${Q}{1,2}${ne}`;const ae=`(?!${Q})`;const oe=`(?!${re}${ie})`;const se=`(?!${Q}{0,1}${ne})`;const le=`(?!${ie})`;const ue=`[^.${J}]`;const ce=`${te}*?`;const de={DOT_LITERAL:Q,PLUS_LITERAL:X,QMARK_LITERAL:Z,SLASH_LITERAL:J,ONE_CHAR:ee,QMARK:te,END_ANCHOR:ne,DOTS_SLASH:ie,NO_DOT:ae,NO_DOTS:oe,NO_DOT_SLASH:se,NO_DOTS_SLASH:le,QMARK_NO_DOT:ue,STAR:ce,START_ANCHOR:re};const fe=Object.assign({},de,{SLASH_LITERAL:`[${V}]`,QMARK:Y,STAR:`${Y}*?`,DOTS_SLASH:`${Q}{1,2}(?:[${V}]|$)`,NO_DOT:`(?!${Q})`,NO_DOTS:`(?!(?:^|[${V}])${Q}{1,2}(?:[${V}]|$))`,NO_DOT_SLASH:`(?!${Q}{0,1}(?:[${V}]|$))`,NO_DOTS_SLASH:`(?!${Q}{1,2}(?:[${V}]|$))`,QMARK_NO_DOT:`[^.${V}]`,START_ANCHOR:`(?:^|[${V}])`,END_ANCHOR:`(?:[${V}]|$)`});const pe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};var he={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:pe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHAR:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:o.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===true?fe:de}};var be=createCommonjsModule((function(e,t){const r=process.platform==="win32";const{REGEX_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_GLOBAL:s,REGEX_REMOVE_BACKSLASH:u}=he;t.isObject=e=>e!==null&&typeof e==="object"&&!Array.isArray(e);t.hasRegexChars=e=>a.test(e);t.isRegexChar=e=>e.length===1&&t.hasRegexChars(e);t.escapeRegex=e=>e.replace(s,"\\$1");t.toPosixSlashes=e=>e.replace(/\\/g,"/");t.removeBackslashes=e=>e.replace(u,(e=>e==="\\"?"":e));t.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".");if(e.length===3&&+e[0]>=9||+e[0]===8&&+e[1]>=10){return true}return false};t.isWindows=e=>{if(e&&typeof e.windows==="boolean"){return e.windows}return r===true||o.sep==="\\"};t.escapeLast=(e,r,a)=>{let o=e.lastIndexOf(r,a);if(o===-1)return e;if(e[o-1]==="\\")return t.escapeLast(e,r,o-1);return e.slice(0,o)+"\\"+e.slice(o)}}));var ve=be.isObject;var _e=be.hasRegexChars;var ge=be.isRegexChar;var ye=be.escapeRegex;var me=be.toPosixSlashes;var we=be.removeBackslashes;var xe=be.supportsLookbehinds;var Ee=be.isWindows;var Se=be.escapeLast;const{CHAR_ASTERISK:ke,CHAR_AT:Re,CHAR_BACKWARD_SLASH:Ae,CHAR_COMMA:Oe,CHAR_DOT:Te,CHAR_EXCLAMATION_MARK:Ce,CHAR_FORWARD_SLASH:je,CHAR_LEFT_CURLY_BRACE:Ne,CHAR_LEFT_PARENTHESES:Le,CHAR_LEFT_SQUARE_BRACKET:Ie,CHAR_PLUS:Pe,CHAR_QUESTION_MARK:De,CHAR_RIGHT_CURLY_BRACE:Me,CHAR_RIGHT_PARENTHESES:We,CHAR_RIGHT_SQUARE_BRACKET:Fe}=he;const isPathSeparator=e=>e===je||e===Ae;var scan=(e,t)=>{let r=t||{};let a=e.length-1;let o=-1;let s=0;let u=0;let c=false;let d=false;let f=false;let p=0;let h;let v;let _=false;let eos=()=>o>=a;let advance=()=>{h=v;return e.charCodeAt(++o)};while(o0){g=e.slice(0,s);e=e.slice(s);u-=s}if(m&&c===true&&u>0){m=e.slice(0,u);w=e.slice(u)}else if(c===true){m="";w=e}else{m=e}if(m&&m!==""&&m!=="/"&&m!==e){if(isPathSeparator(m.charCodeAt(m.length-1))){m=m.slice(0,-1)}}if(r.unescape===true){if(w)w=be.removeBackslashes(w);if(m&&d===true){m=be.removeBackslashes(m)}}return{prefix:g,input:y,base:m,glob:w,negated:f,isGlob:c}};const{MAX_LENGTH:Be,POSIX_REGEX_SOURCE:$e,REGEX_NON_SPECIAL_CHAR:Ue,REGEX_SPECIAL_CHARS_BACKREF:He,REPLACEMENTS:qe}=he;const expandRange=(e,t)=>{if(typeof t.expandRange==="function"){return t.expandRange(...e,t)}e.sort();let r=`[${e.join("-")}]`;try{}catch(t){return e.map((e=>be.escapeRegex(e))).join("..")}return r};const negate=e=>{let t=1;while(e.peek()==="!"&&(e.peek(2)!=="("||e.peek(3)==="?")){e.advance();e.start++;t++}if(t%2===0){return false}e.negated=true;e.start++;return true};const syntaxError=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`;const parse$1=(e,t)=>{if(typeof e!=="string"){throw new TypeError("Expected a string")}e=qe[e]||e;let r=Object.assign({},t);let a=typeof r.maxLength==="number"?Math.min(Be,r.maxLength):Be;let o=e.length;if(o>a){throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${a}`)}let s={type:"bos",value:"",output:r.prepend||""};let u=[s];let c=r.capture?"":"?:";let d=be.isWindows(t);const f=he.globChars(d);const p=he.extglobChars(f);const{DOT_LITERAL:h,PLUS_LITERAL:v,SLASH_LITERAL:_,ONE_CHAR:g,DOTS_SLASH:y,NO_DOT:m,NO_DOT_SLASH:w,NO_DOTS_SLASH:x,QMARK:E,QMARK_NO_DOT:S,STAR:k,START_ANCHOR:R}=f;const globstar=e=>`(${c}(?:(?!${R}${e.dot?y:h}).)*?)`;let A=r.dot?"":m;let O=r.bash===true?globstar(r):k;let T=r.dot?E:S;if(r.capture){O=`(${O})`}if(typeof r.noext==="boolean"){r.noextglob=r.noext}let C={index:-1,start:0,consumed:"",output:"",backtrack:false,brackets:0,braces:0,parens:0,quotes:0,tokens:u};let j=[];let N=[];let L=s;let I;const eos=()=>C.index===o-1;const P=C.peek=(t=1)=>e[C.index+t];const D=C.advance=()=>e[++C.index];const append=e=>{C.output+=e.output!=null?e.output:e.value;C.consumed+=e.value||""};const increment=e=>{C[e]++;N.push(e)};const decrement=e=>{C[e]--;N.pop()};const push=e=>{if(L.type==="globstar"){let t=C.braces>0&&(e.type==="comma"||e.type==="brace");let r=j.length&&(e.type==="pipe"||e.type==="paren");if(e.type!=="slash"&&e.type!=="paren"&&!t&&!r){C.output=C.output.slice(0,-L.output.length);L.type="star";L.value="*";L.output=O;C.output+=L.output}}if(j.length&&e.type!=="paren"&&!p[e.value]){j[j.length-1].inner+=e.value}if(e.value||e.output)append(e);if(L&&L.type==="text"&&e.type==="text"){L.value+=e.value;return}e.prev=L;u.push(e);L=e};const extglobOpen=(e,t)=>{let a=Object.assign({},p[t],{conditions:1,inner:""});a.prev=L;a.parens=C.parens;a.output=C.output;let o=(r.capture?"(":"")+a.open;push({type:e,value:t,output:C.output?"":g});push({type:"paren",extglob:true,value:D(),output:o});increment("parens");j.push(a)};const extglobClose=t=>{let a=t.close+(r.capture?")":"");if(t.type==="negate"){let o=O;if(t.inner&&t.inner.length>1&&t.inner.includes("/")){o=globstar(r)}if(o!==O||eos()||/^\)+$/.test(e.slice(C.index+1))){a=t.close=")$))"+o}if(t.prev.type==="bos"&&eos()){C.negatedExtglob=true}}push({type:"paren",extglob:true,value:I,output:a});decrement("parens")};if(r.fastpaths!==false&&!/(^[*!]|[/{[()\]}"])/.test(e)){let t=false;let a=e.replace(He,((e,r,a,o,s,u)=>{if(o==="\\"){t=true;return e}if(o==="?"){if(r){return r+o+(s?E.repeat(s.length):"")}if(u===0){return T+(s?E.repeat(s.length):"")}return E.repeat(a.length)}if(o==="."){return h.repeat(a.length)}if(o==="*"){if(r){return r+o+(s?O:"")}return O}return r?e:"\\"+e}));if(t===true){if(r.unescape===true){a=a.replace(/\\/g,"")}else{a=a.replace(/\\+/g,(e=>e.length%2===0?"\\\\":e?"\\":""))}}C.output=a;return C}while(!eos()){I=D();if(I==="\0"){continue}if(I==="\\"){let t=P();if(t==="/"&&r.bash!==true){continue}if(t==="."||t===";"){continue}if(!t){I+="\\";push({type:"text",value:I});continue}let a=/^\\+/.exec(e.slice(C.index+1));let o=0;if(a&&a[0].length>2){o=a[0].length;C.index+=o;if(o%2!==0){I+="\\"}}if(r.unescape===true){I=D()||""}else{I+=D()||""}if(C.brackets===0){push({type:"text",value:I});continue}}if(C.brackets>0&&(I!=="]"||L.value==="["||L.value==="[^")){if(r.posix!==false&&I===":"){let e=L.value.slice(1);if(e.includes("[")){L.posix=true;if(e.includes(":")){let e=L.value.lastIndexOf("[");let t=L.value.slice(0,e);let r=L.value.slice(e+2);let a=$e[r];if(a){L.value=t+a;C.backtrack=true;D();if(!s.output&&u.indexOf(L)===1){s.output=g}continue}}}}if(I==="["&&P()!==":"||I==="-"&&P()==="]"){I="\\"+I}if(I==="]"&&(L.value==="["||L.value==="[^")){I="\\"+I}if(r.posix===true&&I==="!"&&L.value==="["){I="^"}L.value+=I;append({value:I});continue}if(C.quotes===1&&I!=='"'){I=be.escapeRegex(I);L.value+=I;append({value:I});continue}if(I==='"'){C.quotes=C.quotes===1?0:1;if(r.keepQuotes===true){push({type:"text",value:I})}continue}if(I==="("){push({type:"paren",value:I});increment("parens");continue}if(I===")"){if(C.parens===0&&r.strictBrackets===true){throw new SyntaxError(syntaxError("opening","("))}let e=j[j.length-1];if(e&&C.parens===e.parens+1){extglobClose(j.pop());continue}push({type:"paren",value:I,output:C.parens?")":"\\)"});decrement("parens");continue}if(I==="["){if(r.nobracket===true||!e.slice(C.index+1).includes("]")){if(r.nobracket!==true&&r.strictBrackets===true){throw new SyntaxError(syntaxError("closing","]"))}I="\\"+I}else{increment("brackets")}push({type:"bracket",value:I});continue}if(I==="]"){if(r.nobracket===true||L&&L.type==="bracket"&&L.value.length===1){push({type:"text",value:I,output:"\\"+I});continue}if(C.brackets===0){if(r.strictBrackets===true){throw new SyntaxError(syntaxError("opening","["))}push({type:"text",value:I,output:"\\"+I});continue}decrement("brackets");let e=L.value.slice(1);if(L.posix!==true&&e[0]==="^"&&!e.includes("/")){I="/"+I}L.value+=I;append({value:I});if(r.literalBrackets===false||be.hasRegexChars(e)){continue}let t=be.escapeRegex(L.value);C.output=C.output.slice(0,-L.value.length);if(r.literalBrackets===true){C.output+=t;L.value=t;continue}L.value=`(${c}${t}|${L.value})`;C.output+=L.value;continue}if(I==="{"&&r.nobrace!==true){push({type:"brace",value:I,output:"("});increment("braces");continue}if(I==="}"){if(r.nobrace===true||C.braces===0){push({type:"text",value:I,output:"\\"+I});continue}let e=")";if(C.dots===true){let t=u.slice();let a=[];for(let e=t.length-1;e>=0;e--){u.pop();if(t[e].type==="brace"){break}if(t[e].type!=="dots"){a.unshift(t[e].value)}}e=expandRange(a,r);C.backtrack=true}push({type:"brace",value:I,output:e});decrement("braces");continue}if(I==="|"){if(j.length>0){j[j.length-1].conditions++}push({type:"text",value:I});continue}if(I===","){let e=I;if(C.braces>0&&N[N.length-1]==="braces"){e="|"}push({type:"comma",value:I,output:e});continue}if(I==="/"){if(L.type==="dot"&&C.index===1){C.start=C.index+1;C.consumed="";C.output="";u.pop();L=s;continue}push({type:"slash",value:I,output:_});continue}if(I==="."){if(C.braces>0&&L.type==="dot"){if(L.value===".")L.output=h;L.type="dots";L.output+=I;L.value+=I;C.dots=true;continue}push({type:"dot",value:I,output:h});continue}if(I==="?"){if(L&&L.type==="paren"){let e=P();let t=I;if(e==="<"&&!be.supportsLookbehinds()){throw new Error("Node.js v10 or higher is required for regex lookbehinds")}if(L.value==="("&&!/[!=<:]/.test(e)||e==="<"&&!/[!=]/.test(P(2))){t="\\"+I}push({type:"text",value:I,output:t});continue}if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){extglobOpen("qmark",I);continue}if(r.dot!==true&&(L.type==="slash"||L.type==="bos")){push({type:"qmark",value:I,output:S});continue}push({type:"qmark",value:I,output:E});continue}if(I==="!"){if(r.noextglob!==true&&P()==="("){if(P(2)!=="?"||!/[!=<:]/.test(P(3))){extglobOpen("negate",I);continue}}if(r.nonegate!==true&&C.index===0){negate(C);continue}}if(I==="+"){if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){extglobOpen("plus",I);continue}if(L&&(L.type==="bracket"||L.type==="paren"||L.type==="brace")){let e=L.extglob===true?"\\"+I:I;push({type:"plus",value:I,output:e});continue}if(C.parens>0&&r.regex!==false){push({type:"plus",value:I});continue}push({type:"plus",value:v});continue}if(I==="@"){if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){push({type:"at",value:I,output:""});continue}push({type:"text",value:I});continue}if(I!=="*"){if(I==="$"||I==="^"){I="\\"+I}let t=Ue.exec(e.slice(C.index+1));if(t){I+=t[0];C.index+=t[0].length}push({type:"text",value:I});continue}if(L&&(L.type==="globstar"||L.star===true)){L.type="star";L.star=true;L.value+=I;L.output=O;C.backtrack=true;C.consumed+=I;continue}if(r.noextglob!==true&&P()==="("&&P(2)!=="?"){extglobOpen("star",I);continue}if(L.type==="star"){if(r.noglobstar===true){C.consumed+=I;continue}let t=L.prev;let a=t.prev;let o=t.type==="slash"||t.type==="bos";let s=a&&(a.type==="star"||a.type==="globstar");if(r.bash===true&&(!o||!eos()&&P()!=="/")){push({type:"star",value:I,output:""});continue}let u=C.braces>0&&(t.type==="comma"||t.type==="brace");let c=j.length&&(t.type==="pipe"||t.type==="paren");if(!o&&t.type!=="paren"&&!u&&!c){push({type:"star",value:I,output:""});continue}while(e.slice(C.index+1,C.index+4)==="/**"){let t=e[C.index+4];if(t&&t!=="/"){break}C.consumed+="/**";C.index+=3}if(t.type==="bos"&&eos()){L.type="globstar";L.value+=I;L.output=globstar(r);C.output=L.output;C.consumed+=I;continue}if(t.type==="slash"&&t.prev.type!=="bos"&&!s&&eos()){C.output=C.output.slice(0,-(t.output+L.output).length);t.output="(?:"+t.output;L.type="globstar";L.output=globstar(r)+"|$)";L.value+=I;C.output+=t.output+L.output;C.consumed+=I;continue}let d=P();if(t.type==="slash"&&t.prev.type!=="bos"&&d==="/"){let e=P(2)!==void 0?"|$":"";C.output=C.output.slice(0,-(t.output+L.output).length);t.output="(?:"+t.output;L.type="globstar";L.output=`${globstar(r)}${_}|${_}${e})`;L.value+=I;C.output+=t.output+L.output;C.consumed+=I+D();push({type:"slash",value:I,output:""});continue}if(t.type==="bos"&&d==="/"){L.type="globstar";L.value+=I;L.output=`(?:^|${_}|${globstar(r)}${_})`;C.output=L.output;C.consumed+=I+D();push({type:"slash",value:I,output:""});continue}C.output=C.output.slice(0,-L.output.length);L.type="globstar";L.output=globstar(r);L.value+=I;C.output+=L.output;C.consumed+=I;continue}let t={type:"star",value:I,output:O};if(r.bash===true){t.output=".*?";if(L.type==="bos"||L.type==="slash"){t.output=A+t.output}push(t);continue}if(L&&(L.type==="bracket"||L.type==="paren")&&r.regex===true){t.output=I;push(t);continue}if(C.index===C.start||L.type==="slash"||L.type==="dot"){if(L.type==="dot"){C.output+=w;L.output+=w}else if(r.dot===true){C.output+=x;L.output+=x}else{C.output+=A;L.output+=A}if(P()!=="*"){C.output+=g;L.output+=g}}push(t)}while(C.brackets>0){if(r.strictBrackets===true)throw new SyntaxError(syntaxError("closing","]"));C.output=be.escapeLast(C.output,"[");decrement("brackets")}while(C.parens>0){if(r.strictBrackets===true)throw new SyntaxError(syntaxError("closing",")"));C.output=be.escapeLast(C.output,"(");decrement("parens")}while(C.braces>0){if(r.strictBrackets===true)throw new SyntaxError(syntaxError("closing","}"));C.output=be.escapeLast(C.output,"{");decrement("braces")}if(r.strictSlashes!==true&&(L.type==="star"||L.type==="bracket")){push({type:"maybe_slash",value:"",output:`${_}?`})}if(C.backtrack===true){C.output="";for(let e of C.tokens){C.output+=e.output!=null?e.output:e.value;if(e.suffix){C.output+=e.suffix}}}return C};parse$1.fastpaths=(e,t)=>{let r=Object.assign({},t);let a=typeof r.maxLength==="number"?Math.min(Be,r.maxLength):Be;let o=e.length;if(o>a){throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${a}`)}e=qe[e]||e;let s=be.isWindows(t);const{DOT_LITERAL:u,SLASH_LITERAL:c,ONE_CHAR:d,DOTS_SLASH:f,NO_DOT:p,NO_DOTS:h,NO_DOTS_SLASH:v,STAR:_,START_ANCHOR:g}=he.globChars(s);let y=r.capture?"":"?:";let m=r.bash===true?".*?":_;let w=r.dot?h:p;let x=r.dot?v:p;if(r.capture){m=`(${m})`}const globstar=e=>`(${y}(?:(?!${g}${e.dot?f:u}).)*?)`;const create=e=>{switch(e){case"*":return`${w}${d}${m}`;case".*":return`${u}${d}${m}`;case"*.*":return`${w}${m}${u}${d}${m}`;case"*/*":return`${w}${m}${c}${d}${x}${m}`;case"**":return w+globstar(r);case"**/*":return`(?:${w}${globstar(r)}${c})?${x}${d}${m}`;case"**/*.*":return`(?:${w}${globstar(r)}${c})?${x}${m}${u}${d}${m}`;case"**/.*":return`(?:${w}${globstar(r)}${c})?${u}${d}${m}`;default:{let r=/^(.*?)\.(\w+)$/.exec(e);if(!r)return;let a=create(r[1],t);if(!a)return;return a+u+r[2]}}};let E=create(e);if(E&&r.strictSlashes!==true){E+=`${c}?`}return E};var Ge=parse$1;const picomatch=(e,t,r=false)=>{if(Array.isArray(e)){let a=e.map((e=>picomatch(e,t,r)));return e=>{for(let t of a){let r=t(e);if(r)return r}return false}}if(typeof e!=="string"||e===""){throw new TypeError("Expected pattern to be a non-empty string")}let a=t||{};let o=be.isWindows(t);let s=picomatch.makeRe(e,t,false,true);let u=s.state;delete s.state;let isIgnored=()=>false;if(a.ignore){let e=Object.assign({},t,{ignore:null,onMatch:null,onResult:null});isIgnored=picomatch(a.ignore,e,r)}const matcher=(r,c=false)=>{let{isMatch:d,match:f,output:p}=picomatch.test(r,s,t,{glob:e,posix:o});let h={glob:e,state:u,regex:s,posix:o,input:r,output:p,match:f,isMatch:d};if(typeof a.onResult==="function"){a.onResult(h)}if(d===false){h.isMatch=false;return c?h:false}if(isIgnored(r)){if(typeof a.onIgnore==="function"){a.onIgnore(h)}h.isMatch=false;return c?h:false}if(typeof a.onMatch==="function"){a.onMatch(h)}return c?h:true};if(r){matcher.state=u}return matcher};picomatch.test=(e,t,r,{glob:a,posix:o}={})=>{if(typeof e!=="string"){throw new TypeError("Expected input to be a string")}if(e===""){return{isMatch:false,output:""}}let s=r||{};let u=s.format||(o?be.toPosixSlashes:null);let c=e===a;let d=c&&u?u(e):e;if(c===false){d=u?u(e):e;c=d===a}if(c===false||s.capture===true){if(s.matchBase===true||s.basename===true){c=picomatch.matchBase(e,t,r,o)}else{c=t.exec(d)}}return{isMatch:!!c,match:c,output:d}};picomatch.matchBase=(e,t,r,a=be.isWindows(r))=>{let s=t instanceof RegExp?t:picomatch.makeRe(t,r);return s.test(o.basename(e))};picomatch.isMatch=(e,t,r)=>picomatch(t,r)(e);picomatch.parse=(e,t)=>Ge(e,t);picomatch.scan=(e,t)=>scan(e,t);picomatch.makeRe=(e,t,r=false,a=false)=>{if(!e||typeof e!=="string"){throw new TypeError("Expected a non-empty string")}let o=t||{};let s=o.contains?"":"^";let u=o.contains?"":"$";let c={negated:false,fastpaths:true};let d="";let f;if(e.startsWith("./")){e=e.slice(2);d=c.prefix="./"}if(o.fastpaths!==false&&(e[0]==="."||e[0]==="*")){f=Ge.fastpaths(e,t)}if(f===void 0){c=picomatch.parse(e,t);c.prefix=d+(c.prefix||"");f=c.output}if(r===true){return f}let p=`${s}(?:${f})${u}`;if(c&&c.negated===true){p=`^(?!${p}).*$`}let h=picomatch.toRegex(p,t);if(a===true){h.state=c}return h};picomatch.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&t.debug===true)throw e;return/$^/}};picomatch.constants=he;var Ke=picomatch;var ze=Ke;const isEmptyString=e=>typeof e==="string"&&(e===""||e==="./");const micromatch=(e,t,r)=>{t=[].concat(t);e=[].concat(e);let a=new Set;let o=new Set;let s=new Set;let u=0;let onResult=e=>{s.add(e.output);if(r&&r.onResult){r.onResult(e)}};for(let s=0;s!a.has(e)));if(r&&d.length===0){if(r.failglob===true){throw new Error(`No matches found for "${t.join(", ")}"`)}if(r.nonull===true||r.nullglob===true){return r.unescape?t.map((e=>e.replace(/\\/g,""))):t}}return d};micromatch.match=micromatch;micromatch.matcher=(e,t)=>ze(e,t);micromatch.isMatch=(e,t,r)=>ze(t,r)(e);micromatch.any=micromatch.isMatch;micromatch.not=(e,t,r={})=>{t=[].concat(t).map(String);let a=new Set;let o=[];let onResult=e=>{if(r.onResult)r.onResult(e);o.push(e.output)};let s=micromatch(e,t,Object.assign({},r,{onResult:onResult}));for(let e of o){if(!s.includes(e)){a.add(e)}}return[...a]};micromatch.contains=(e,t,r)=>{if(typeof e!=="string"){throw new TypeError(`Expected a string: "${u.inspect(e)}"`)}if(Array.isArray(t)){return t.some((t=>micromatch.contains(e,t,r)))}if(typeof t==="string"){if(isEmptyString(e)||isEmptyString(t)){return false}if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t)){return true}}return micromatch.isMatch(e,t,Object.assign({},r,{contains:true}))};micromatch.matchKeys=(e,t,r)=>{if(!be.isObject(e)){throw new TypeError("Expected the first argument to be an object")}let a=micromatch(Object.keys(e),t,r);let o={};for(let t of a)o[t]=e[t];return o};micromatch.some=(e,t,r)=>{let a=[].concat(e);for(let e of[].concat(t)){let t=ze(String(e),r);if(a.some((e=>t(e)))){return true}}return false};micromatch.every=(e,t,r)=>{let a=[].concat(e);for(let e of[].concat(t)){let t=ze(String(e),r);if(!a.every((e=>t(e)))){return false}}return true};micromatch.all=(e,t,r)=>{if(typeof e!=="string"){throw new TypeError(`Expected a string: "${u.inspect(e)}"`)}return[].concat(t).every((t=>ze(t,r)(e)))};micromatch.capture=(e,t,r)=>{let a=be.isWindows(r);let o=ze.makeRe(String(e),Object.assign({},r,{capture:true}));let s=o.exec(a?be.toPosixSlashes(t):t);if(s){return s.slice(1).map((e=>e===void 0?"":e))}};micromatch.makeRe=(...e)=>ze.makeRe(...e);micromatch.scan=(...e)=>ze.scan(...e);micromatch.parse=(e,t)=>{let r=[];for(let a of[].concat(e||[])){for(let e of z(String(a),t)){r.push(ze.parse(e,t))}}return r};micromatch.braces=(e,t)=>{if(typeof e!=="string")throw new TypeError("Expected a string");if(t&&t.nobrace===true||!/\{.*\}/.test(e)){return[e]}return z(e,t)};micromatch.braceExpand=(e,t)=>{if(typeof e!=="string")throw new TypeError("Expected a string");return micromatch.braces(e,Object.assign({},t,{expand:true}))};var Ve=micromatch;function ensureArray(e){if(Array.isArray(e))return e;if(e==undefined)return[];return[e]}function getMatcherString(e,t){if(t===false){return e}return a.resolve(...typeof t==="string"?[t,e]:[e])}const Ye=function createFilter(e,t,r){const o=r&&r.resolve;const getMatcher=e=>e instanceof RegExp?e:{test:Ve.matcher(getMatcherString(e,o).split(a.sep).join("/"),{dot:true})};const s=ensureArray(e).map(getMatcher);const u=ensureArray(t).map(getMatcher);return function(e){if(typeof e!=="string")return false;if(/\0/.test(e))return false;e=e.split(a.sep).join("/");for(let t=0;tt.toUpperCase())).replace(/[^$_a-zA-Z0-9]/g,"_");if(/\d/.test(e[0])||Ze.has(e)){e=`_${e}`}return e||"_"};function stringify$2(e){return(JSON.stringify(e)||"undefined").replace(/[\u2028\u2029]/g,(e=>`\\u${("000"+e.charCodeAt(0).toString(16)).slice(-4)}`))}function serializeArray(e,t,r){let a="[";const o=t?"\n"+r+t:"";for(let s=0;s0?",":""}${o}${serialize(u,t,r+t)}`}return a+`${t?"\n"+r:""}]`}function serializeObject(e,t,r){let a="{";const o=t?"\n"+r+t:"";const s=Object.keys(e);for(let u=0;u0?",":""}${o}${d}:${t?" ":""}${serialize(e[c],t,r+t)}`}return a+`${t?"\n"+r:""}}`}function serialize(e,t,r){if(e===Infinity)return"Infinity";if(e===-Infinity)return"-Infinity";if(e===0&&1/e===-Infinity)return"-0";if(e instanceof Date)return"new Date("+e.getTime()+")";if(e instanceof RegExp)return e.toString();if(e!==e)return"NaN";if(Array.isArray(e))return serializeArray(e,t,r);if(e===null)return"null";if(typeof e==="object")return serializeObject(e,t,r);return stringify$2(e)}const et=function dataToEsm(e,t={}){const r=t.compact?"":"indent"in t?t.indent:"\t";const a=t.compact?"":" ";const o=t.compact?"":"\n";const s=t.preferConst?"const":"var";if(t.namedExports===false||typeof e!=="object"||Array.isArray(e)||e instanceof Date||e instanceof RegExp||e===null){const o=serialize(e,t.compact?null:r,"");const s=a||(/^[{[\-\/]/.test(o)?"":" ");return`export default${s}${o};`}let u="";const c=[];const d=Object.keys(e);for(let f=0;f{var a=r(4300);var o=a.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}if(o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow){e.exports=a}else{copyProps(a,t);t.Buffer=SafeBuffer}function SafeBuffer(e,t,r){return o(e,t,r)}copyProps(o,SafeBuffer);SafeBuffer.from=function(e,t,r){if(typeof e==="number"){throw new TypeError("Argument must not be a number")}return o(e,t,r)};SafeBuffer.alloc=function(e,t,r){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}var a=o(e);if(t!==undefined){if(typeof r==="string"){a.fill(t,r)}else{a.fill(t)}}else{a.fill(0)}return a};SafeBuffer.allocUnsafe=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return o(e)};SafeBuffer.allocUnsafeSlow=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return a.SlowBuffer(e)}},5354:e=>{e.exports=function(e){[process.stdout,process.stderr].forEach((function(t){if(t._handle&&t.isTTY&&typeof t._handle.setBlocking==="function"){t._handle.setBlocking(e)}}))}},5417:(e,t,r)=>{var a=r(9491);var o=r(1933);var s=/^win/i.test(process.platform);var u=r(2361);if(typeof u!=="function"){u=u.EventEmitter}var c;if(process.__signal_exit_emitter__){c=process.__signal_exit_emitter__}else{c=process.__signal_exit_emitter__=new u;c.count=0;c.emitted={}}if(!c.infinite){c.setMaxListeners(Infinity);c.infinite=true}e.exports=function(e,t){a.equal(typeof e,"function","a callback must be provided for exit handler");if(f===false){load()}var r="exit";if(t&&t.alwaysLast){r="afterexit"}var remove=function(){c.removeListener(r,e);if(c.listeners("exit").length===0&&c.listeners("afterexit").length===0){unload()}};c.on(r,e);return remove};e.exports.unload=unload;function unload(){if(!f){return}f=false;o.forEach((function(e){try{process.removeListener(e,d[e])}catch(e){}}));process.emit=h;process.reallyExit=p;c.count-=1}function emit(e,t,r){if(c.emitted[e]){return}c.emitted[e]=true;c.emit(e,t,r)}var d={};o.forEach((function(e){d[e]=function listener(){var t=process.listeners(e);if(t.length===c.count){unload();emit("exit",null,e);emit("afterexit",null,e);if(s&&e==="SIGHUP"){e="SIGINT"}process.kill(process.pid,e)}}}));e.exports.signals=function(){return o};e.exports.load=load;var f=false;function load(){if(f){return}f=true;c.count+=1;o=o.filter((function(e){try{process.on(e,d[e]);return true}catch(e){return false}}));process.emit=processEmit;process.reallyExit=processReallyExit}var p=process.reallyExit;function processReallyExit(e){process.exitCode=e||0;emit("exit",process.exitCode,null);emit("afterexit",process.exitCode,null);p.call(process,process.exitCode)}var h=process.emit;function processEmit(e,t){if(e==="exit"){if(t!==undefined){process.exitCode=t}var r=h.apply(this,arguments);emit("exit",process.exitCode,null);emit("afterexit",process.exitCode,null);return r}else{return h.apply(this,arguments)}}},1933:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32"){e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT")}if(process.platform==="linux"){e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")}},1780:(e,t,r)=>{"use strict";var a=r(7518);var o=r(918);var s=r(7787);e.exports=function(e){if(typeof e!=="string"||e.length===0){return 0}var t=0;e=a(e);for(var r=0;r=127&&u<=159){continue}if(u>=65536){r++}if(s(u)){t+=2}else{t++}}return t}},7214:(e,t,r)=>{"use strict";const a=r(7518);const o=r(7394);e.exports=e=>{if(typeof e!=="string"||e.length===0){return 0}e=a(e);let t=0;for(let r=0;r=127&&a<=159){continue}if(a>=768&&a<=879){continue}if(a>65535){r++}t+=o(a)?2:1}return t}},467:(e,t,r)=>{"use strict";var a=r(7455).Buffer;var o=a.isEncoding||function(e){e=""+e;switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(e){if(!e)return"utf8";var t;while(true){switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase();t=true}}}function normalizeEncoding(e){var t=_normalizeEncoding(e);if(typeof t!=="string"&&(a.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}t.s=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var t;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;t=4;break;case"utf8":this.fillLast=utf8FillLast;t=4;break;case"base64":this.text=base64Text;this.end=base64End;t=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=a.allocUnsafe(t)}StringDecoder.prototype.write=function(e){if(e.length===0)return"";var t;var r;if(this.lastNeed){t=this.fillLast(e);if(t===undefined)return"";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,t,r){var a=t.length-1;if(a=0){if(o>0)e.lastNeed=o-1;return o}if(--a=0){if(o>0)e.lastNeed=o-2;return o}if(--a=0){if(o>0){if(o===2)o=0;else e.lastNeed=o-3}return o}return 0}function utf8CheckExtraBytes(e,t,r){if((t[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&t.length>2){if((t[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var t=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,e,t);if(r!==undefined)return r;if(this.lastNeed<=e.length){e.copy(this.lastChar,t,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,t,0,e.length);this.lastNeed-=e.length}function utf8Text(e,t){var r=utf8CheckIncomplete(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var a=e.length-(r-this.lastNeed);e.copy(this.lastChar,0,a);return e.toString("utf8",t,a)}function utf8End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+"�";return t}function utf16Text(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var a=r.charCodeAt(r.length-1);if(a>=55296&&a<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",t,e.length-1)}function utf16End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function base64Text(e,t){var r=(e.length-t)%3;if(r===0)return e.toString("base64",t);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",t,e.length-r)}function base64End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+this.lastChar.toString("base64",0,3-this.lastNeed);return t}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},343:(e,t,r)=>{e.exports=r(3837).deprecate},6486:(e,t,r)=>{"use strict";var a=r(7214);t.center=alignCenter;t.left=alignLeft;t.right=alignRight;function createPadding(e){var t="";var r=" ";var a=e;do{if(a%2){t+=r}a=Math.floor(a/2);r+=r}while(a);return t}function alignLeft(e,t){var r=e.trimRight();if(r.length===0&&e.length>=t)return e;var o="";var s=a(r);if(s=t)return e;var o="";var s=a(r);if(s=t)return e;var o="";var s="";var u=a(r);if(u{module.exports=eval("require")("aws-sdk")},3458:module=>{module.exports=eval("require")("mock-aws-s3")},9101:module=>{module.exports=eval("require")("nock")},9491:e=>{"use strict";e.exports=require("assert")},4300:e=>{"use strict";e.exports=require("buffer")},2081:e=>{"use strict";e.exports=require("child_process")},2057:e=>{"use strict";e.exports=require("constants")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},8188:e=>{"use strict";e.exports=require("module")},1988:e=>{"use strict";e.exports=require("next/dist/compiled/acorn")},3535:e=>{"use strict";e.exports=require("next/dist/compiled/glob")},2540:e=>{"use strict";e.exports=require("next/dist/compiled/micromatch")},7849:e=>{"use strict";e.exports=require("next/dist/compiled/semver")},7518:e=>{"use strict";e.exports=require("next/dist/compiled/strip-ansi")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},8102:e=>{"use strict";e.exports=require("repl")},2781:e=>{"use strict";e.exports=require("stream")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},4924:function(e,t){(function(e,r){true?r(t):0})(this,(function(e){"use strict";class WalkerBase{constructor(){this.should_skip=false;this.should_remove=false;this.replacement=null;this.context={skip:()=>this.should_skip=true,remove:()=>this.should_remove=true,replace:e=>this.replacement=e}}replace(e,t,r,a){if(e){if(r!==null){e[t][r]=a}else{e[t]=a}}}remove(e,t,r){if(e){if(r!==null){e[t].splice(r,1)}else{delete e[t]}}}}class SyncWalker extends WalkerBase{constructor(e,t){super();this.enter=e;this.leave=t}visit(e,t,r,a){if(e){if(this.enter){const o=this.should_skip;const s=this.should_remove;const u=this.replacement;this.should_skip=false;this.should_remove=false;this.replacement=null;this.enter.call(this.context,e,t,r,a);if(this.replacement){e=this.replacement;this.replace(t,r,a,e)}if(this.should_remove){this.remove(t,r,a)}const c=this.should_skip;const d=this.should_remove;this.should_skip=o;this.should_remove=s;this.replacement=u;if(c)return e;if(d)return null}for(const t in e){const r=e[t];if(typeof r!=="object"){continue}else if(Array.isArray(r)){for(let a=0;a{"use strict";e.exports=JSON.parse('{"0.1.14":{"node_abi":null,"v8":"1.3"},"0.1.15":{"node_abi":null,"v8":"1.3"},"0.1.16":{"node_abi":null,"v8":"1.3"},"0.1.17":{"node_abi":null,"v8":"1.3"},"0.1.18":{"node_abi":null,"v8":"1.3"},"0.1.19":{"node_abi":null,"v8":"2.0"},"0.1.20":{"node_abi":null,"v8":"2.0"},"0.1.21":{"node_abi":null,"v8":"2.0"},"0.1.22":{"node_abi":null,"v8":"2.0"},"0.1.23":{"node_abi":null,"v8":"2.0"},"0.1.24":{"node_abi":null,"v8":"2.0"},"0.1.25":{"node_abi":null,"v8":"2.0"},"0.1.26":{"node_abi":null,"v8":"2.0"},"0.1.27":{"node_abi":null,"v8":"2.1"},"0.1.28":{"node_abi":null,"v8":"2.1"},"0.1.29":{"node_abi":null,"v8":"2.1"},"0.1.30":{"node_abi":null,"v8":"2.1"},"0.1.31":{"node_abi":null,"v8":"2.1"},"0.1.32":{"node_abi":null,"v8":"2.1"},"0.1.33":{"node_abi":null,"v8":"2.1"},"0.1.90":{"node_abi":null,"v8":"2.2"},"0.1.91":{"node_abi":null,"v8":"2.2"},"0.1.92":{"node_abi":null,"v8":"2.2"},"0.1.93":{"node_abi":null,"v8":"2.2"},"0.1.94":{"node_abi":null,"v8":"2.2"},"0.1.95":{"node_abi":null,"v8":"2.2"},"0.1.96":{"node_abi":null,"v8":"2.2"},"0.1.97":{"node_abi":null,"v8":"2.2"},"0.1.98":{"node_abi":null,"v8":"2.2"},"0.1.99":{"node_abi":null,"v8":"2.2"},"0.1.100":{"node_abi":null,"v8":"2.2"},"0.1.101":{"node_abi":null,"v8":"2.3"},"0.1.102":{"node_abi":null,"v8":"2.3"},"0.1.103":{"node_abi":null,"v8":"2.3"},"0.1.104":{"node_abi":null,"v8":"2.3"},"0.2.0":{"node_abi":1,"v8":"2.3"},"0.2.1":{"node_abi":1,"v8":"2.3"},"0.2.2":{"node_abi":1,"v8":"2.3"},"0.2.3":{"node_abi":1,"v8":"2.3"},"0.2.4":{"node_abi":1,"v8":"2.3"},"0.2.5":{"node_abi":1,"v8":"2.3"},"0.2.6":{"node_abi":1,"v8":"2.3"},"0.3.0":{"node_abi":1,"v8":"2.5"},"0.3.1":{"node_abi":1,"v8":"2.5"},"0.3.2":{"node_abi":1,"v8":"3.0"},"0.3.3":{"node_abi":1,"v8":"3.0"},"0.3.4":{"node_abi":1,"v8":"3.0"},"0.3.5":{"node_abi":1,"v8":"3.0"},"0.3.6":{"node_abi":1,"v8":"3.0"},"0.3.7":{"node_abi":1,"v8":"3.0"},"0.3.8":{"node_abi":1,"v8":"3.1"},"0.4.0":{"node_abi":1,"v8":"3.1"},"0.4.1":{"node_abi":1,"v8":"3.1"},"0.4.2":{"node_abi":1,"v8":"3.1"},"0.4.3":{"node_abi":1,"v8":"3.1"},"0.4.4":{"node_abi":1,"v8":"3.1"},"0.4.5":{"node_abi":1,"v8":"3.1"},"0.4.6":{"node_abi":1,"v8":"3.1"},"0.4.7":{"node_abi":1,"v8":"3.1"},"0.4.8":{"node_abi":1,"v8":"3.1"},"0.4.9":{"node_abi":1,"v8":"3.1"},"0.4.10":{"node_abi":1,"v8":"3.1"},"0.4.11":{"node_abi":1,"v8":"3.1"},"0.4.12":{"node_abi":1,"v8":"3.1"},"0.5.0":{"node_abi":1,"v8":"3.1"},"0.5.1":{"node_abi":1,"v8":"3.4"},"0.5.2":{"node_abi":1,"v8":"3.4"},"0.5.3":{"node_abi":1,"v8":"3.4"},"0.5.4":{"node_abi":1,"v8":"3.5"},"0.5.5":{"node_abi":1,"v8":"3.5"},"0.5.6":{"node_abi":1,"v8":"3.6"},"0.5.7":{"node_abi":1,"v8":"3.6"},"0.5.8":{"node_abi":1,"v8":"3.6"},"0.5.9":{"node_abi":1,"v8":"3.6"},"0.5.10":{"node_abi":1,"v8":"3.7"},"0.6.0":{"node_abi":1,"v8":"3.6"},"0.6.1":{"node_abi":1,"v8":"3.6"},"0.6.2":{"node_abi":1,"v8":"3.6"},"0.6.3":{"node_abi":1,"v8":"3.6"},"0.6.4":{"node_abi":1,"v8":"3.6"},"0.6.5":{"node_abi":1,"v8":"3.6"},"0.6.6":{"node_abi":1,"v8":"3.6"},"0.6.7":{"node_abi":1,"v8":"3.6"},"0.6.8":{"node_abi":1,"v8":"3.6"},"0.6.9":{"node_abi":1,"v8":"3.6"},"0.6.10":{"node_abi":1,"v8":"3.6"},"0.6.11":{"node_abi":1,"v8":"3.6"},"0.6.12":{"node_abi":1,"v8":"3.6"},"0.6.13":{"node_abi":1,"v8":"3.6"},"0.6.14":{"node_abi":1,"v8":"3.6"},"0.6.15":{"node_abi":1,"v8":"3.6"},"0.6.16":{"node_abi":1,"v8":"3.6"},"0.6.17":{"node_abi":1,"v8":"3.6"},"0.6.18":{"node_abi":1,"v8":"3.6"},"0.6.19":{"node_abi":1,"v8":"3.6"},"0.6.20":{"node_abi":1,"v8":"3.6"},"0.6.21":{"node_abi":1,"v8":"3.6"},"0.7.0":{"node_abi":1,"v8":"3.8"},"0.7.1":{"node_abi":1,"v8":"3.8"},"0.7.2":{"node_abi":1,"v8":"3.8"},"0.7.3":{"node_abi":1,"v8":"3.9"},"0.7.4":{"node_abi":1,"v8":"3.9"},"0.7.5":{"node_abi":1,"v8":"3.9"},"0.7.6":{"node_abi":1,"v8":"3.9"},"0.7.7":{"node_abi":1,"v8":"3.9"},"0.7.8":{"node_abi":1,"v8":"3.9"},"0.7.9":{"node_abi":1,"v8":"3.11"},"0.7.10":{"node_abi":1,"v8":"3.9"},"0.7.11":{"node_abi":1,"v8":"3.11"},"0.7.12":{"node_abi":1,"v8":"3.11"},"0.8.0":{"node_abi":1,"v8":"3.11"},"0.8.1":{"node_abi":1,"v8":"3.11"},"0.8.2":{"node_abi":1,"v8":"3.11"},"0.8.3":{"node_abi":1,"v8":"3.11"},"0.8.4":{"node_abi":1,"v8":"3.11"},"0.8.5":{"node_abi":1,"v8":"3.11"},"0.8.6":{"node_abi":1,"v8":"3.11"},"0.8.7":{"node_abi":1,"v8":"3.11"},"0.8.8":{"node_abi":1,"v8":"3.11"},"0.8.9":{"node_abi":1,"v8":"3.11"},"0.8.10":{"node_abi":1,"v8":"3.11"},"0.8.11":{"node_abi":1,"v8":"3.11"},"0.8.12":{"node_abi":1,"v8":"3.11"},"0.8.13":{"node_abi":1,"v8":"3.11"},"0.8.14":{"node_abi":1,"v8":"3.11"},"0.8.15":{"node_abi":1,"v8":"3.11"},"0.8.16":{"node_abi":1,"v8":"3.11"},"0.8.17":{"node_abi":1,"v8":"3.11"},"0.8.18":{"node_abi":1,"v8":"3.11"},"0.8.19":{"node_abi":1,"v8":"3.11"},"0.8.20":{"node_abi":1,"v8":"3.11"},"0.8.21":{"node_abi":1,"v8":"3.11"},"0.8.22":{"node_abi":1,"v8":"3.11"},"0.8.23":{"node_abi":1,"v8":"3.11"},"0.8.24":{"node_abi":1,"v8":"3.11"},"0.8.25":{"node_abi":1,"v8":"3.11"},"0.8.26":{"node_abi":1,"v8":"3.11"},"0.8.27":{"node_abi":1,"v8":"3.11"},"0.8.28":{"node_abi":1,"v8":"3.11"},"0.9.0":{"node_abi":1,"v8":"3.11"},"0.9.1":{"node_abi":10,"v8":"3.11"},"0.9.2":{"node_abi":10,"v8":"3.11"},"0.9.3":{"node_abi":10,"v8":"3.13"},"0.9.4":{"node_abi":10,"v8":"3.13"},"0.9.5":{"node_abi":10,"v8":"3.13"},"0.9.6":{"node_abi":10,"v8":"3.15"},"0.9.7":{"node_abi":10,"v8":"3.15"},"0.9.8":{"node_abi":10,"v8":"3.15"},"0.9.9":{"node_abi":11,"v8":"3.15"},"0.9.10":{"node_abi":11,"v8":"3.15"},"0.9.11":{"node_abi":11,"v8":"3.14"},"0.9.12":{"node_abi":11,"v8":"3.14"},"0.10.0":{"node_abi":11,"v8":"3.14"},"0.10.1":{"node_abi":11,"v8":"3.14"},"0.10.2":{"node_abi":11,"v8":"3.14"},"0.10.3":{"node_abi":11,"v8":"3.14"},"0.10.4":{"node_abi":11,"v8":"3.14"},"0.10.5":{"node_abi":11,"v8":"3.14"},"0.10.6":{"node_abi":11,"v8":"3.14"},"0.10.7":{"node_abi":11,"v8":"3.14"},"0.10.8":{"node_abi":11,"v8":"3.14"},"0.10.9":{"node_abi":11,"v8":"3.14"},"0.10.10":{"node_abi":11,"v8":"3.14"},"0.10.11":{"node_abi":11,"v8":"3.14"},"0.10.12":{"node_abi":11,"v8":"3.14"},"0.10.13":{"node_abi":11,"v8":"3.14"},"0.10.14":{"node_abi":11,"v8":"3.14"},"0.10.15":{"node_abi":11,"v8":"3.14"},"0.10.16":{"node_abi":11,"v8":"3.14"},"0.10.17":{"node_abi":11,"v8":"3.14"},"0.10.18":{"node_abi":11,"v8":"3.14"},"0.10.19":{"node_abi":11,"v8":"3.14"},"0.10.20":{"node_abi":11,"v8":"3.14"},"0.10.21":{"node_abi":11,"v8":"3.14"},"0.10.22":{"node_abi":11,"v8":"3.14"},"0.10.23":{"node_abi":11,"v8":"3.14"},"0.10.24":{"node_abi":11,"v8":"3.14"},"0.10.25":{"node_abi":11,"v8":"3.14"},"0.10.26":{"node_abi":11,"v8":"3.14"},"0.10.27":{"node_abi":11,"v8":"3.14"},"0.10.28":{"node_abi":11,"v8":"3.14"},"0.10.29":{"node_abi":11,"v8":"3.14"},"0.10.30":{"node_abi":11,"v8":"3.14"},"0.10.31":{"node_abi":11,"v8":"3.14"},"0.10.32":{"node_abi":11,"v8":"3.14"},"0.10.33":{"node_abi":11,"v8":"3.14"},"0.10.34":{"node_abi":11,"v8":"3.14"},"0.10.35":{"node_abi":11,"v8":"3.14"},"0.10.36":{"node_abi":11,"v8":"3.14"},"0.10.37":{"node_abi":11,"v8":"3.14"},"0.10.38":{"node_abi":11,"v8":"3.14"},"0.10.39":{"node_abi":11,"v8":"3.14"},"0.10.40":{"node_abi":11,"v8":"3.14"},"0.10.41":{"node_abi":11,"v8":"3.14"},"0.10.42":{"node_abi":11,"v8":"3.14"},"0.10.43":{"node_abi":11,"v8":"3.14"},"0.10.44":{"node_abi":11,"v8":"3.14"},"0.10.45":{"node_abi":11,"v8":"3.14"},"0.10.46":{"node_abi":11,"v8":"3.14"},"0.10.47":{"node_abi":11,"v8":"3.14"},"0.10.48":{"node_abi":11,"v8":"3.14"},"0.11.0":{"node_abi":12,"v8":"3.17"},"0.11.1":{"node_abi":12,"v8":"3.18"},"0.11.2":{"node_abi":12,"v8":"3.19"},"0.11.3":{"node_abi":12,"v8":"3.19"},"0.11.4":{"node_abi":12,"v8":"3.20"},"0.11.5":{"node_abi":12,"v8":"3.20"},"0.11.6":{"node_abi":12,"v8":"3.20"},"0.11.7":{"node_abi":12,"v8":"3.20"},"0.11.8":{"node_abi":13,"v8":"3.21"},"0.11.9":{"node_abi":13,"v8":"3.22"},"0.11.10":{"node_abi":13,"v8":"3.22"},"0.11.11":{"node_abi":14,"v8":"3.22"},"0.11.12":{"node_abi":14,"v8":"3.22"},"0.11.13":{"node_abi":14,"v8":"3.25"},"0.11.14":{"node_abi":14,"v8":"3.26"},"0.11.15":{"node_abi":14,"v8":"3.28"},"0.11.16":{"node_abi":14,"v8":"3.28"},"0.12.0":{"node_abi":14,"v8":"3.28"},"0.12.1":{"node_abi":14,"v8":"3.28"},"0.12.2":{"node_abi":14,"v8":"3.28"},"0.12.3":{"node_abi":14,"v8":"3.28"},"0.12.4":{"node_abi":14,"v8":"3.28"},"0.12.5":{"node_abi":14,"v8":"3.28"},"0.12.6":{"node_abi":14,"v8":"3.28"},"0.12.7":{"node_abi":14,"v8":"3.28"},"0.12.8":{"node_abi":14,"v8":"3.28"},"0.12.9":{"node_abi":14,"v8":"3.28"},"0.12.10":{"node_abi":14,"v8":"3.28"},"0.12.11":{"node_abi":14,"v8":"3.28"},"0.12.12":{"node_abi":14,"v8":"3.28"},"0.12.13":{"node_abi":14,"v8":"3.28"},"0.12.14":{"node_abi":14,"v8":"3.28"},"0.12.15":{"node_abi":14,"v8":"3.28"},"0.12.16":{"node_abi":14,"v8":"3.28"},"0.12.17":{"node_abi":14,"v8":"3.28"},"0.12.18":{"node_abi":14,"v8":"3.28"},"1.0.0":{"node_abi":42,"v8":"3.31"},"1.0.1":{"node_abi":42,"v8":"3.31"},"1.0.2":{"node_abi":42,"v8":"3.31"},"1.0.3":{"node_abi":42,"v8":"4.1"},"1.0.4":{"node_abi":42,"v8":"4.1"},"1.1.0":{"node_abi":43,"v8":"4.1"},"1.2.0":{"node_abi":43,"v8":"4.1"},"1.3.0":{"node_abi":43,"v8":"4.1"},"1.4.1":{"node_abi":43,"v8":"4.1"},"1.4.2":{"node_abi":43,"v8":"4.1"},"1.4.3":{"node_abi":43,"v8":"4.1"},"1.5.0":{"node_abi":43,"v8":"4.1"},"1.5.1":{"node_abi":43,"v8":"4.1"},"1.6.0":{"node_abi":43,"v8":"4.1"},"1.6.1":{"node_abi":43,"v8":"4.1"},"1.6.2":{"node_abi":43,"v8":"4.1"},"1.6.3":{"node_abi":43,"v8":"4.1"},"1.6.4":{"node_abi":43,"v8":"4.1"},"1.7.1":{"node_abi":43,"v8":"4.1"},"1.8.1":{"node_abi":43,"v8":"4.1"},"1.8.2":{"node_abi":43,"v8":"4.1"},"1.8.3":{"node_abi":43,"v8":"4.1"},"1.8.4":{"node_abi":43,"v8":"4.1"},"2.0.0":{"node_abi":44,"v8":"4.2"},"2.0.1":{"node_abi":44,"v8":"4.2"},"2.0.2":{"node_abi":44,"v8":"4.2"},"2.1.0":{"node_abi":44,"v8":"4.2"},"2.2.0":{"node_abi":44,"v8":"4.2"},"2.2.1":{"node_abi":44,"v8":"4.2"},"2.3.0":{"node_abi":44,"v8":"4.2"},"2.3.1":{"node_abi":44,"v8":"4.2"},"2.3.2":{"node_abi":44,"v8":"4.2"},"2.3.3":{"node_abi":44,"v8":"4.2"},"2.3.4":{"node_abi":44,"v8":"4.2"},"2.4.0":{"node_abi":44,"v8":"4.2"},"2.5.0":{"node_abi":44,"v8":"4.2"},"3.0.0":{"node_abi":45,"v8":"4.4"},"3.1.0":{"node_abi":45,"v8":"4.4"},"3.2.0":{"node_abi":45,"v8":"4.4"},"3.3.0":{"node_abi":45,"v8":"4.4"},"3.3.1":{"node_abi":45,"v8":"4.4"},"4.0.0":{"node_abi":46,"v8":"4.5"},"4.1.0":{"node_abi":46,"v8":"4.5"},"4.1.1":{"node_abi":46,"v8":"4.5"},"4.1.2":{"node_abi":46,"v8":"4.5"},"4.2.0":{"node_abi":46,"v8":"4.5"},"4.2.1":{"node_abi":46,"v8":"4.5"},"4.2.2":{"node_abi":46,"v8":"4.5"},"4.2.3":{"node_abi":46,"v8":"4.5"},"4.2.4":{"node_abi":46,"v8":"4.5"},"4.2.5":{"node_abi":46,"v8":"4.5"},"4.2.6":{"node_abi":46,"v8":"4.5"},"4.3.0":{"node_abi":46,"v8":"4.5"},"4.3.1":{"node_abi":46,"v8":"4.5"},"4.3.2":{"node_abi":46,"v8":"4.5"},"4.4.0":{"node_abi":46,"v8":"4.5"},"4.4.1":{"node_abi":46,"v8":"4.5"},"4.4.2":{"node_abi":46,"v8":"4.5"},"4.4.3":{"node_abi":46,"v8":"4.5"},"4.4.4":{"node_abi":46,"v8":"4.5"},"4.4.5":{"node_abi":46,"v8":"4.5"},"4.4.6":{"node_abi":46,"v8":"4.5"},"4.4.7":{"node_abi":46,"v8":"4.5"},"4.5.0":{"node_abi":46,"v8":"4.5"},"4.6.0":{"node_abi":46,"v8":"4.5"},"4.6.1":{"node_abi":46,"v8":"4.5"},"4.6.2":{"node_abi":46,"v8":"4.5"},"4.7.0":{"node_abi":46,"v8":"4.5"},"4.7.1":{"node_abi":46,"v8":"4.5"},"4.7.2":{"node_abi":46,"v8":"4.5"},"4.7.3":{"node_abi":46,"v8":"4.5"},"4.8.0":{"node_abi":46,"v8":"4.5"},"4.8.1":{"node_abi":46,"v8":"4.5"},"4.8.2":{"node_abi":46,"v8":"4.5"},"4.8.3":{"node_abi":46,"v8":"4.5"},"4.8.4":{"node_abi":46,"v8":"4.5"},"4.8.5":{"node_abi":46,"v8":"4.5"},"4.8.6":{"node_abi":46,"v8":"4.5"},"4.8.7":{"node_abi":46,"v8":"4.5"},"4.9.0":{"node_abi":46,"v8":"4.5"},"4.9.1":{"node_abi":46,"v8":"4.5"},"5.0.0":{"node_abi":47,"v8":"4.6"},"5.1.0":{"node_abi":47,"v8":"4.6"},"5.1.1":{"node_abi":47,"v8":"4.6"},"5.2.0":{"node_abi":47,"v8":"4.6"},"5.3.0":{"node_abi":47,"v8":"4.6"},"5.4.0":{"node_abi":47,"v8":"4.6"},"5.4.1":{"node_abi":47,"v8":"4.6"},"5.5.0":{"node_abi":47,"v8":"4.6"},"5.6.0":{"node_abi":47,"v8":"4.6"},"5.7.0":{"node_abi":47,"v8":"4.6"},"5.7.1":{"node_abi":47,"v8":"4.6"},"5.8.0":{"node_abi":47,"v8":"4.6"},"5.9.0":{"node_abi":47,"v8":"4.6"},"5.9.1":{"node_abi":47,"v8":"4.6"},"5.10.0":{"node_abi":47,"v8":"4.6"},"5.10.1":{"node_abi":47,"v8":"4.6"},"5.11.0":{"node_abi":47,"v8":"4.6"},"5.11.1":{"node_abi":47,"v8":"4.6"},"5.12.0":{"node_abi":47,"v8":"4.6"},"6.0.0":{"node_abi":48,"v8":"5.0"},"6.1.0":{"node_abi":48,"v8":"5.0"},"6.2.0":{"node_abi":48,"v8":"5.0"},"6.2.1":{"node_abi":48,"v8":"5.0"},"6.2.2":{"node_abi":48,"v8":"5.0"},"6.3.0":{"node_abi":48,"v8":"5.0"},"6.3.1":{"node_abi":48,"v8":"5.0"},"6.4.0":{"node_abi":48,"v8":"5.0"},"6.5.0":{"node_abi":48,"v8":"5.1"},"6.6.0":{"node_abi":48,"v8":"5.1"},"6.7.0":{"node_abi":48,"v8":"5.1"},"6.8.0":{"node_abi":48,"v8":"5.1"},"6.8.1":{"node_abi":48,"v8":"5.1"},"6.9.0":{"node_abi":48,"v8":"5.1"},"6.9.1":{"node_abi":48,"v8":"5.1"},"6.9.2":{"node_abi":48,"v8":"5.1"},"6.9.3":{"node_abi":48,"v8":"5.1"},"6.9.4":{"node_abi":48,"v8":"5.1"},"6.9.5":{"node_abi":48,"v8":"5.1"},"6.10.0":{"node_abi":48,"v8":"5.1"},"6.10.1":{"node_abi":48,"v8":"5.1"},"6.10.2":{"node_abi":48,"v8":"5.1"},"6.10.3":{"node_abi":48,"v8":"5.1"},"6.11.0":{"node_abi":48,"v8":"5.1"},"6.11.1":{"node_abi":48,"v8":"5.1"},"6.11.2":{"node_abi":48,"v8":"5.1"},"6.11.3":{"node_abi":48,"v8":"5.1"},"6.11.4":{"node_abi":48,"v8":"5.1"},"6.11.5":{"node_abi":48,"v8":"5.1"},"6.12.0":{"node_abi":48,"v8":"5.1"},"6.12.1":{"node_abi":48,"v8":"5.1"},"6.12.2":{"node_abi":48,"v8":"5.1"},"6.12.3":{"node_abi":48,"v8":"5.1"},"6.13.0":{"node_abi":48,"v8":"5.1"},"6.13.1":{"node_abi":48,"v8":"5.1"},"6.14.0":{"node_abi":48,"v8":"5.1"},"6.14.1":{"node_abi":48,"v8":"5.1"},"6.14.2":{"node_abi":48,"v8":"5.1"},"6.14.3":{"node_abi":48,"v8":"5.1"},"6.14.4":{"node_abi":48,"v8":"5.1"},"6.15.0":{"node_abi":48,"v8":"5.1"},"6.15.1":{"node_abi":48,"v8":"5.1"},"6.16.0":{"node_abi":48,"v8":"5.1"},"6.17.0":{"node_abi":48,"v8":"5.1"},"6.17.1":{"node_abi":48,"v8":"5.1"},"7.0.0":{"node_abi":51,"v8":"5.4"},"7.1.0":{"node_abi":51,"v8":"5.4"},"7.2.0":{"node_abi":51,"v8":"5.4"},"7.2.1":{"node_abi":51,"v8":"5.4"},"7.3.0":{"node_abi":51,"v8":"5.4"},"7.4.0":{"node_abi":51,"v8":"5.4"},"7.5.0":{"node_abi":51,"v8":"5.4"},"7.6.0":{"node_abi":51,"v8":"5.5"},"7.7.0":{"node_abi":51,"v8":"5.5"},"7.7.1":{"node_abi":51,"v8":"5.5"},"7.7.2":{"node_abi":51,"v8":"5.5"},"7.7.3":{"node_abi":51,"v8":"5.5"},"7.7.4":{"node_abi":51,"v8":"5.5"},"7.8.0":{"node_abi":51,"v8":"5.5"},"7.9.0":{"node_abi":51,"v8":"5.5"},"7.10.0":{"node_abi":51,"v8":"5.5"},"7.10.1":{"node_abi":51,"v8":"5.5"},"8.0.0":{"node_abi":57,"v8":"5.8"},"8.1.0":{"node_abi":57,"v8":"5.8"},"8.1.1":{"node_abi":57,"v8":"5.8"},"8.1.2":{"node_abi":57,"v8":"5.8"},"8.1.3":{"node_abi":57,"v8":"5.8"},"8.1.4":{"node_abi":57,"v8":"5.8"},"8.2.0":{"node_abi":57,"v8":"5.8"},"8.2.1":{"node_abi":57,"v8":"5.8"},"8.3.0":{"node_abi":57,"v8":"6.0"},"8.4.0":{"node_abi":57,"v8":"6.0"},"8.5.0":{"node_abi":57,"v8":"6.0"},"8.6.0":{"node_abi":57,"v8":"6.0"},"8.7.0":{"node_abi":57,"v8":"6.1"},"8.8.0":{"node_abi":57,"v8":"6.1"},"8.8.1":{"node_abi":57,"v8":"6.1"},"8.9.0":{"node_abi":57,"v8":"6.1"},"8.9.1":{"node_abi":57,"v8":"6.1"},"8.9.2":{"node_abi":57,"v8":"6.1"},"8.9.3":{"node_abi":57,"v8":"6.1"},"8.9.4":{"node_abi":57,"v8":"6.1"},"8.10.0":{"node_abi":57,"v8":"6.2"},"8.11.0":{"node_abi":57,"v8":"6.2"},"8.11.1":{"node_abi":57,"v8":"6.2"},"8.11.2":{"node_abi":57,"v8":"6.2"},"8.11.3":{"node_abi":57,"v8":"6.2"},"8.11.4":{"node_abi":57,"v8":"6.2"},"8.12.0":{"node_abi":57,"v8":"6.2"},"8.13.0":{"node_abi":57,"v8":"6.2"},"8.14.0":{"node_abi":57,"v8":"6.2"},"8.14.1":{"node_abi":57,"v8":"6.2"},"8.15.0":{"node_abi":57,"v8":"6.2"},"8.15.1":{"node_abi":57,"v8":"6.2"},"8.16.0":{"node_abi":57,"v8":"6.2"},"8.16.1":{"node_abi":57,"v8":"6.2"},"8.16.2":{"node_abi":57,"v8":"6.2"},"8.17.0":{"node_abi":57,"v8":"6.2"},"9.0.0":{"node_abi":59,"v8":"6.2"},"9.1.0":{"node_abi":59,"v8":"6.2"},"9.2.0":{"node_abi":59,"v8":"6.2"},"9.2.1":{"node_abi":59,"v8":"6.2"},"9.3.0":{"node_abi":59,"v8":"6.2"},"9.4.0":{"node_abi":59,"v8":"6.2"},"9.5.0":{"node_abi":59,"v8":"6.2"},"9.6.0":{"node_abi":59,"v8":"6.2"},"9.6.1":{"node_abi":59,"v8":"6.2"},"9.7.0":{"node_abi":59,"v8":"6.2"},"9.7.1":{"node_abi":59,"v8":"6.2"},"9.8.0":{"node_abi":59,"v8":"6.2"},"9.9.0":{"node_abi":59,"v8":"6.2"},"9.10.0":{"node_abi":59,"v8":"6.2"},"9.10.1":{"node_abi":59,"v8":"6.2"},"9.11.0":{"node_abi":59,"v8":"6.2"},"9.11.1":{"node_abi":59,"v8":"6.2"},"9.11.2":{"node_abi":59,"v8":"6.2"},"10.0.0":{"node_abi":64,"v8":"6.6"},"10.1.0":{"node_abi":64,"v8":"6.6"},"10.2.0":{"node_abi":64,"v8":"6.6"},"10.2.1":{"node_abi":64,"v8":"6.6"},"10.3.0":{"node_abi":64,"v8":"6.6"},"10.4.0":{"node_abi":64,"v8":"6.7"},"10.4.1":{"node_abi":64,"v8":"6.7"},"10.5.0":{"node_abi":64,"v8":"6.7"},"10.6.0":{"node_abi":64,"v8":"6.7"},"10.7.0":{"node_abi":64,"v8":"6.7"},"10.8.0":{"node_abi":64,"v8":"6.7"},"10.9.0":{"node_abi":64,"v8":"6.8"},"10.10.0":{"node_abi":64,"v8":"6.8"},"10.11.0":{"node_abi":64,"v8":"6.8"},"10.12.0":{"node_abi":64,"v8":"6.8"},"10.13.0":{"node_abi":64,"v8":"6.8"},"10.14.0":{"node_abi":64,"v8":"6.8"},"10.14.1":{"node_abi":64,"v8":"6.8"},"10.14.2":{"node_abi":64,"v8":"6.8"},"10.15.0":{"node_abi":64,"v8":"6.8"},"10.15.1":{"node_abi":64,"v8":"6.8"},"10.15.2":{"node_abi":64,"v8":"6.8"},"10.15.3":{"node_abi":64,"v8":"6.8"},"10.16.0":{"node_abi":64,"v8":"6.8"},"10.16.1":{"node_abi":64,"v8":"6.8"},"10.16.2":{"node_abi":64,"v8":"6.8"},"10.16.3":{"node_abi":64,"v8":"6.8"},"10.17.0":{"node_abi":64,"v8":"6.8"},"10.18.0":{"node_abi":64,"v8":"6.8"},"10.18.1":{"node_abi":64,"v8":"6.8"},"10.19.0":{"node_abi":64,"v8":"6.8"},"10.20.0":{"node_abi":64,"v8":"6.8"},"10.20.1":{"node_abi":64,"v8":"6.8"},"10.21.0":{"node_abi":64,"v8":"6.8"},"10.22.0":{"node_abi":64,"v8":"6.8"},"10.22.1":{"node_abi":64,"v8":"6.8"},"10.23.0":{"node_abi":64,"v8":"6.8"},"10.23.1":{"node_abi":64,"v8":"6.8"},"10.23.2":{"node_abi":64,"v8":"6.8"},"10.23.3":{"node_abi":64,"v8":"6.8"},"10.24.0":{"node_abi":64,"v8":"6.8"},"10.24.1":{"node_abi":64,"v8":"6.8"},"11.0.0":{"node_abi":67,"v8":"7.0"},"11.1.0":{"node_abi":67,"v8":"7.0"},"11.2.0":{"node_abi":67,"v8":"7.0"},"11.3.0":{"node_abi":67,"v8":"7.0"},"11.4.0":{"node_abi":67,"v8":"7.0"},"11.5.0":{"node_abi":67,"v8":"7.0"},"11.6.0":{"node_abi":67,"v8":"7.0"},"11.7.0":{"node_abi":67,"v8":"7.0"},"11.8.0":{"node_abi":67,"v8":"7.0"},"11.9.0":{"node_abi":67,"v8":"7.0"},"11.10.0":{"node_abi":67,"v8":"7.0"},"11.10.1":{"node_abi":67,"v8":"7.0"},"11.11.0":{"node_abi":67,"v8":"7.0"},"11.12.0":{"node_abi":67,"v8":"7.0"},"11.13.0":{"node_abi":67,"v8":"7.0"},"11.14.0":{"node_abi":67,"v8":"7.0"},"11.15.0":{"node_abi":67,"v8":"7.0"},"12.0.0":{"node_abi":72,"v8":"7.4"},"12.1.0":{"node_abi":72,"v8":"7.4"},"12.2.0":{"node_abi":72,"v8":"7.4"},"12.3.0":{"node_abi":72,"v8":"7.4"},"12.3.1":{"node_abi":72,"v8":"7.4"},"12.4.0":{"node_abi":72,"v8":"7.4"},"12.5.0":{"node_abi":72,"v8":"7.5"},"12.6.0":{"node_abi":72,"v8":"7.5"},"12.7.0":{"node_abi":72,"v8":"7.5"},"12.8.0":{"node_abi":72,"v8":"7.5"},"12.8.1":{"node_abi":72,"v8":"7.5"},"12.9.0":{"node_abi":72,"v8":"7.6"},"12.9.1":{"node_abi":72,"v8":"7.6"},"12.10.0":{"node_abi":72,"v8":"7.6"},"12.11.0":{"node_abi":72,"v8":"7.7"},"12.11.1":{"node_abi":72,"v8":"7.7"},"12.12.0":{"node_abi":72,"v8":"7.7"},"12.13.0":{"node_abi":72,"v8":"7.7"},"12.13.1":{"node_abi":72,"v8":"7.7"},"12.14.0":{"node_abi":72,"v8":"7.7"},"12.14.1":{"node_abi":72,"v8":"7.7"},"12.15.0":{"node_abi":72,"v8":"7.7"},"12.16.0":{"node_abi":72,"v8":"7.8"},"12.16.1":{"node_abi":72,"v8":"7.8"},"12.16.2":{"node_abi":72,"v8":"7.8"},"12.16.3":{"node_abi":72,"v8":"7.8"},"12.17.0":{"node_abi":72,"v8":"7.8"},"12.18.0":{"node_abi":72,"v8":"7.8"},"12.18.1":{"node_abi":72,"v8":"7.8"},"12.18.2":{"node_abi":72,"v8":"7.8"},"12.18.3":{"node_abi":72,"v8":"7.8"},"12.18.4":{"node_abi":72,"v8":"7.8"},"12.19.0":{"node_abi":72,"v8":"7.8"},"12.19.1":{"node_abi":72,"v8":"7.8"},"12.20.0":{"node_abi":72,"v8":"7.8"},"12.20.1":{"node_abi":72,"v8":"7.8"},"12.20.2":{"node_abi":72,"v8":"7.8"},"12.21.0":{"node_abi":72,"v8":"7.8"},"12.22.0":{"node_abi":72,"v8":"7.8"},"12.22.1":{"node_abi":72,"v8":"7.8"},"13.0.0":{"node_abi":79,"v8":"7.8"},"13.0.1":{"node_abi":79,"v8":"7.8"},"13.1.0":{"node_abi":79,"v8":"7.8"},"13.2.0":{"node_abi":79,"v8":"7.9"},"13.3.0":{"node_abi":79,"v8":"7.9"},"13.4.0":{"node_abi":79,"v8":"7.9"},"13.5.0":{"node_abi":79,"v8":"7.9"},"13.6.0":{"node_abi":79,"v8":"7.9"},"13.7.0":{"node_abi":79,"v8":"7.9"},"13.8.0":{"node_abi":79,"v8":"7.9"},"13.9.0":{"node_abi":79,"v8":"7.9"},"13.10.0":{"node_abi":79,"v8":"7.9"},"13.10.1":{"node_abi":79,"v8":"7.9"},"13.11.0":{"node_abi":79,"v8":"7.9"},"13.12.0":{"node_abi":79,"v8":"7.9"},"13.13.0":{"node_abi":79,"v8":"7.9"},"13.14.0":{"node_abi":79,"v8":"7.9"},"14.0.0":{"node_abi":83,"v8":"8.1"},"14.1.0":{"node_abi":83,"v8":"8.1"},"14.2.0":{"node_abi":83,"v8":"8.1"},"14.3.0":{"node_abi":83,"v8":"8.1"},"14.4.0":{"node_abi":83,"v8":"8.1"},"14.5.0":{"node_abi":83,"v8":"8.3"},"14.6.0":{"node_abi":83,"v8":"8.4"},"14.7.0":{"node_abi":83,"v8":"8.4"},"14.8.0":{"node_abi":83,"v8":"8.4"},"14.9.0":{"node_abi":83,"v8":"8.4"},"14.10.0":{"node_abi":83,"v8":"8.4"},"14.10.1":{"node_abi":83,"v8":"8.4"},"14.11.0":{"node_abi":83,"v8":"8.4"},"14.12.0":{"node_abi":83,"v8":"8.4"},"14.13.0":{"node_abi":83,"v8":"8.4"},"14.13.1":{"node_abi":83,"v8":"8.4"},"14.14.0":{"node_abi":83,"v8":"8.4"},"14.15.0":{"node_abi":83,"v8":"8.4"},"14.15.1":{"node_abi":83,"v8":"8.4"},"14.15.2":{"node_abi":83,"v8":"8.4"},"14.15.3":{"node_abi":83,"v8":"8.4"},"14.15.4":{"node_abi":83,"v8":"8.4"},"14.15.5":{"node_abi":83,"v8":"8.4"},"14.16.0":{"node_abi":83,"v8":"8.4"},"14.16.1":{"node_abi":83,"v8":"8.4"},"15.0.0":{"node_abi":88,"v8":"8.6"},"15.0.1":{"node_abi":88,"v8":"8.6"},"15.1.0":{"node_abi":88,"v8":"8.6"},"15.2.0":{"node_abi":88,"v8":"8.6"},"15.2.1":{"node_abi":88,"v8":"8.6"},"15.3.0":{"node_abi":88,"v8":"8.6"},"15.4.0":{"node_abi":88,"v8":"8.6"},"15.5.0":{"node_abi":88,"v8":"8.6"},"15.5.1":{"node_abi":88,"v8":"8.6"},"15.6.0":{"node_abi":88,"v8":"8.6"},"15.7.0":{"node_abi":88,"v8":"8.6"},"15.8.0":{"node_abi":88,"v8":"8.6"},"15.9.0":{"node_abi":88,"v8":"8.6"},"15.10.0":{"node_abi":88,"v8":"8.6"},"15.11.0":{"node_abi":88,"v8":"8.6"},"15.12.0":{"node_abi":88,"v8":"8.6"},"15.13.0":{"node_abi":88,"v8":"8.6"},"15.14.0":{"node_abi":88,"v8":"8.6"},"16.0.0":{"node_abi":93,"v8":"9.0"}}')},7399:e=>{"use strict";e.exports=JSON.parse('{"name":"@mapbox/node-pre-gyp","description":"Node.js native addon binary install tool","version":"1.0.5","keywords":["native","addon","module","c","c++","bindings","binary"],"license":"BSD-3-Clause","author":"Dane Springmeyer ","repository":{"type":"git","url":"git://github.com/mapbox/node-pre-gyp.git"},"bin":"./bin/node-pre-gyp","main":"./lib/node-pre-gyp.js","dependencies":{"detect-libc":"^1.0.3","https-proxy-agent":"^5.0.0","make-dir":"^3.1.0","node-fetch":"^2.6.1","nopt":"^5.0.0","npmlog":"^4.1.2","rimraf":"^3.0.2","semver":"^7.3.4","tar":"^6.1.0"},"devDependencies":{"@mapbox/cloudfriend":"^4.6.0","@mapbox/eslint-config-mapbox":"^3.0.0","action-walk":"^2.2.0","aws-sdk":"^2.840.0","codecov":"^3.8.1","eslint":"^7.18.0","eslint-plugin-node":"^11.1.0","mock-aws-s3":"^4.0.1","nock":"^12.0.3","node-addon-api":"^3.1.0","nyc":"^15.1.0","tape":"^5.2.2","tar-fs":"^2.1.1"},"nyc":{"all":true,"skip-full":false,"exclude":["test/**"]},"scripts":{"coverage":"nyc --all --include index.js --include lib/ npm test","upload-coverage":"nyc report --reporter json && codecov --clear --flags=unit --file=./coverage/coverage-final.json","lint":"eslint bin/node-pre-gyp lib/*js lib/util/*js test/*js scripts/*js","fix":"npm run lint -- --fix","update-crosswalk":"node scripts/abi_crosswalk.js","test":"tape test/*test.js"}}')},1929:e=>{"use strict";e.exports=JSON.parse('{"0.1.14":{"node_abi":null,"v8":"1.3"},"0.1.15":{"node_abi":null,"v8":"1.3"},"0.1.16":{"node_abi":null,"v8":"1.3"},"0.1.17":{"node_abi":null,"v8":"1.3"},"0.1.18":{"node_abi":null,"v8":"1.3"},"0.1.19":{"node_abi":null,"v8":"2.0"},"0.1.20":{"node_abi":null,"v8":"2.0"},"0.1.21":{"node_abi":null,"v8":"2.0"},"0.1.22":{"node_abi":null,"v8":"2.0"},"0.1.23":{"node_abi":null,"v8":"2.0"},"0.1.24":{"node_abi":null,"v8":"2.0"},"0.1.25":{"node_abi":null,"v8":"2.0"},"0.1.26":{"node_abi":null,"v8":"2.0"},"0.1.27":{"node_abi":null,"v8":"2.1"},"0.1.28":{"node_abi":null,"v8":"2.1"},"0.1.29":{"node_abi":null,"v8":"2.1"},"0.1.30":{"node_abi":null,"v8":"2.1"},"0.1.31":{"node_abi":null,"v8":"2.1"},"0.1.32":{"node_abi":null,"v8":"2.1"},"0.1.33":{"node_abi":null,"v8":"2.1"},"0.1.90":{"node_abi":null,"v8":"2.2"},"0.1.91":{"node_abi":null,"v8":"2.2"},"0.1.92":{"node_abi":null,"v8":"2.2"},"0.1.93":{"node_abi":null,"v8":"2.2"},"0.1.94":{"node_abi":null,"v8":"2.2"},"0.1.95":{"node_abi":null,"v8":"2.2"},"0.1.96":{"node_abi":null,"v8":"2.2"},"0.1.97":{"node_abi":null,"v8":"2.2"},"0.1.98":{"node_abi":null,"v8":"2.2"},"0.1.99":{"node_abi":null,"v8":"2.2"},"0.1.100":{"node_abi":null,"v8":"2.2"},"0.1.101":{"node_abi":null,"v8":"2.3"},"0.1.102":{"node_abi":null,"v8":"2.3"},"0.1.103":{"node_abi":null,"v8":"2.3"},"0.1.104":{"node_abi":null,"v8":"2.3"},"0.2.0":{"node_abi":1,"v8":"2.3"},"0.2.1":{"node_abi":1,"v8":"2.3"},"0.2.2":{"node_abi":1,"v8":"2.3"},"0.2.3":{"node_abi":1,"v8":"2.3"},"0.2.4":{"node_abi":1,"v8":"2.3"},"0.2.5":{"node_abi":1,"v8":"2.3"},"0.2.6":{"node_abi":1,"v8":"2.3"},"0.3.0":{"node_abi":1,"v8":"2.5"},"0.3.1":{"node_abi":1,"v8":"2.5"},"0.3.2":{"node_abi":1,"v8":"3.0"},"0.3.3":{"node_abi":1,"v8":"3.0"},"0.3.4":{"node_abi":1,"v8":"3.0"},"0.3.5":{"node_abi":1,"v8":"3.0"},"0.3.6":{"node_abi":1,"v8":"3.0"},"0.3.7":{"node_abi":1,"v8":"3.0"},"0.3.8":{"node_abi":1,"v8":"3.1"},"0.4.0":{"node_abi":1,"v8":"3.1"},"0.4.1":{"node_abi":1,"v8":"3.1"},"0.4.2":{"node_abi":1,"v8":"3.1"},"0.4.3":{"node_abi":1,"v8":"3.1"},"0.4.4":{"node_abi":1,"v8":"3.1"},"0.4.5":{"node_abi":1,"v8":"3.1"},"0.4.6":{"node_abi":1,"v8":"3.1"},"0.4.7":{"node_abi":1,"v8":"3.1"},"0.4.8":{"node_abi":1,"v8":"3.1"},"0.4.9":{"node_abi":1,"v8":"3.1"},"0.4.10":{"node_abi":1,"v8":"3.1"},"0.4.11":{"node_abi":1,"v8":"3.1"},"0.4.12":{"node_abi":1,"v8":"3.1"},"0.5.0":{"node_abi":1,"v8":"3.1"},"0.5.1":{"node_abi":1,"v8":"3.4"},"0.5.2":{"node_abi":1,"v8":"3.4"},"0.5.3":{"node_abi":1,"v8":"3.4"},"0.5.4":{"node_abi":1,"v8":"3.5"},"0.5.5":{"node_abi":1,"v8":"3.5"},"0.5.6":{"node_abi":1,"v8":"3.6"},"0.5.7":{"node_abi":1,"v8":"3.6"},"0.5.8":{"node_abi":1,"v8":"3.6"},"0.5.9":{"node_abi":1,"v8":"3.6"},"0.5.10":{"node_abi":1,"v8":"3.7"},"0.6.0":{"node_abi":1,"v8":"3.6"},"0.6.1":{"node_abi":1,"v8":"3.6"},"0.6.2":{"node_abi":1,"v8":"3.6"},"0.6.3":{"node_abi":1,"v8":"3.6"},"0.6.4":{"node_abi":1,"v8":"3.6"},"0.6.5":{"node_abi":1,"v8":"3.6"},"0.6.6":{"node_abi":1,"v8":"3.6"},"0.6.7":{"node_abi":1,"v8":"3.6"},"0.6.8":{"node_abi":1,"v8":"3.6"},"0.6.9":{"node_abi":1,"v8":"3.6"},"0.6.10":{"node_abi":1,"v8":"3.6"},"0.6.11":{"node_abi":1,"v8":"3.6"},"0.6.12":{"node_abi":1,"v8":"3.6"},"0.6.13":{"node_abi":1,"v8":"3.6"},"0.6.14":{"node_abi":1,"v8":"3.6"},"0.6.15":{"node_abi":1,"v8":"3.6"},"0.6.16":{"node_abi":1,"v8":"3.6"},"0.6.17":{"node_abi":1,"v8":"3.6"},"0.6.18":{"node_abi":1,"v8":"3.6"},"0.6.19":{"node_abi":1,"v8":"3.6"},"0.6.20":{"node_abi":1,"v8":"3.6"},"0.6.21":{"node_abi":1,"v8":"3.6"},"0.7.0":{"node_abi":1,"v8":"3.8"},"0.7.1":{"node_abi":1,"v8":"3.8"},"0.7.2":{"node_abi":1,"v8":"3.8"},"0.7.3":{"node_abi":1,"v8":"3.9"},"0.7.4":{"node_abi":1,"v8":"3.9"},"0.7.5":{"node_abi":1,"v8":"3.9"},"0.7.6":{"node_abi":1,"v8":"3.9"},"0.7.7":{"node_abi":1,"v8":"3.9"},"0.7.8":{"node_abi":1,"v8":"3.9"},"0.7.9":{"node_abi":1,"v8":"3.11"},"0.7.10":{"node_abi":1,"v8":"3.9"},"0.7.11":{"node_abi":1,"v8":"3.11"},"0.7.12":{"node_abi":1,"v8":"3.11"},"0.8.0":{"node_abi":1,"v8":"3.11"},"0.8.1":{"node_abi":1,"v8":"3.11"},"0.8.2":{"node_abi":1,"v8":"3.11"},"0.8.3":{"node_abi":1,"v8":"3.11"},"0.8.4":{"node_abi":1,"v8":"3.11"},"0.8.5":{"node_abi":1,"v8":"3.11"},"0.8.6":{"node_abi":1,"v8":"3.11"},"0.8.7":{"node_abi":1,"v8":"3.11"},"0.8.8":{"node_abi":1,"v8":"3.11"},"0.8.9":{"node_abi":1,"v8":"3.11"},"0.8.10":{"node_abi":1,"v8":"3.11"},"0.8.11":{"node_abi":1,"v8":"3.11"},"0.8.12":{"node_abi":1,"v8":"3.11"},"0.8.13":{"node_abi":1,"v8":"3.11"},"0.8.14":{"node_abi":1,"v8":"3.11"},"0.8.15":{"node_abi":1,"v8":"3.11"},"0.8.16":{"node_abi":1,"v8":"3.11"},"0.8.17":{"node_abi":1,"v8":"3.11"},"0.8.18":{"node_abi":1,"v8":"3.11"},"0.8.19":{"node_abi":1,"v8":"3.11"},"0.8.20":{"node_abi":1,"v8":"3.11"},"0.8.21":{"node_abi":1,"v8":"3.11"},"0.8.22":{"node_abi":1,"v8":"3.11"},"0.8.23":{"node_abi":1,"v8":"3.11"},"0.8.24":{"node_abi":1,"v8":"3.11"},"0.8.25":{"node_abi":1,"v8":"3.11"},"0.8.26":{"node_abi":1,"v8":"3.11"},"0.8.27":{"node_abi":1,"v8":"3.11"},"0.8.28":{"node_abi":1,"v8":"3.11"},"0.9.0":{"node_abi":1,"v8":"3.11"},"0.9.1":{"node_abi":10,"v8":"3.11"},"0.9.2":{"node_abi":10,"v8":"3.11"},"0.9.3":{"node_abi":10,"v8":"3.13"},"0.9.4":{"node_abi":10,"v8":"3.13"},"0.9.5":{"node_abi":10,"v8":"3.13"},"0.9.6":{"node_abi":10,"v8":"3.15"},"0.9.7":{"node_abi":10,"v8":"3.15"},"0.9.8":{"node_abi":10,"v8":"3.15"},"0.9.9":{"node_abi":11,"v8":"3.15"},"0.9.10":{"node_abi":11,"v8":"3.15"},"0.9.11":{"node_abi":11,"v8":"3.14"},"0.9.12":{"node_abi":11,"v8":"3.14"},"0.10.0":{"node_abi":11,"v8":"3.14"},"0.10.1":{"node_abi":11,"v8":"3.14"},"0.10.2":{"node_abi":11,"v8":"3.14"},"0.10.3":{"node_abi":11,"v8":"3.14"},"0.10.4":{"node_abi":11,"v8":"3.14"},"0.10.5":{"node_abi":11,"v8":"3.14"},"0.10.6":{"node_abi":11,"v8":"3.14"},"0.10.7":{"node_abi":11,"v8":"3.14"},"0.10.8":{"node_abi":11,"v8":"3.14"},"0.10.9":{"node_abi":11,"v8":"3.14"},"0.10.10":{"node_abi":11,"v8":"3.14"},"0.10.11":{"node_abi":11,"v8":"3.14"},"0.10.12":{"node_abi":11,"v8":"3.14"},"0.10.13":{"node_abi":11,"v8":"3.14"},"0.10.14":{"node_abi":11,"v8":"3.14"},"0.10.15":{"node_abi":11,"v8":"3.14"},"0.10.16":{"node_abi":11,"v8":"3.14"},"0.10.17":{"node_abi":11,"v8":"3.14"},"0.10.18":{"node_abi":11,"v8":"3.14"},"0.10.19":{"node_abi":11,"v8":"3.14"},"0.10.20":{"node_abi":11,"v8":"3.14"},"0.10.21":{"node_abi":11,"v8":"3.14"},"0.10.22":{"node_abi":11,"v8":"3.14"},"0.10.23":{"node_abi":11,"v8":"3.14"},"0.10.24":{"node_abi":11,"v8":"3.14"},"0.10.25":{"node_abi":11,"v8":"3.14"},"0.10.26":{"node_abi":11,"v8":"3.14"},"0.10.27":{"node_abi":11,"v8":"3.14"},"0.10.28":{"node_abi":11,"v8":"3.14"},"0.10.29":{"node_abi":11,"v8":"3.14"},"0.10.30":{"node_abi":11,"v8":"3.14"},"0.10.31":{"node_abi":11,"v8":"3.14"},"0.10.32":{"node_abi":11,"v8":"3.14"},"0.10.33":{"node_abi":11,"v8":"3.14"},"0.10.34":{"node_abi":11,"v8":"3.14"},"0.10.35":{"node_abi":11,"v8":"3.14"},"0.10.36":{"node_abi":11,"v8":"3.14"},"0.10.37":{"node_abi":11,"v8":"3.14"},"0.10.38":{"node_abi":11,"v8":"3.14"},"0.10.39":{"node_abi":11,"v8":"3.14"},"0.10.40":{"node_abi":11,"v8":"3.14"},"0.10.41":{"node_abi":11,"v8":"3.14"},"0.10.42":{"node_abi":11,"v8":"3.14"},"0.10.43":{"node_abi":11,"v8":"3.14"},"0.10.44":{"node_abi":11,"v8":"3.14"},"0.10.45":{"node_abi":11,"v8":"3.14"},"0.10.46":{"node_abi":11,"v8":"3.14"},"0.10.47":{"node_abi":11,"v8":"3.14"},"0.10.48":{"node_abi":11,"v8":"3.14"},"0.11.0":{"node_abi":12,"v8":"3.17"},"0.11.1":{"node_abi":12,"v8":"3.18"},"0.11.2":{"node_abi":12,"v8":"3.19"},"0.11.3":{"node_abi":12,"v8":"3.19"},"0.11.4":{"node_abi":12,"v8":"3.20"},"0.11.5":{"node_abi":12,"v8":"3.20"},"0.11.6":{"node_abi":12,"v8":"3.20"},"0.11.7":{"node_abi":12,"v8":"3.20"},"0.11.8":{"node_abi":13,"v8":"3.21"},"0.11.9":{"node_abi":13,"v8":"3.22"},"0.11.10":{"node_abi":13,"v8":"3.22"},"0.11.11":{"node_abi":14,"v8":"3.22"},"0.11.12":{"node_abi":14,"v8":"3.22"},"0.11.13":{"node_abi":14,"v8":"3.25"},"0.11.14":{"node_abi":14,"v8":"3.26"},"0.11.15":{"node_abi":14,"v8":"3.28"},"0.11.16":{"node_abi":14,"v8":"3.28"},"0.12.0":{"node_abi":14,"v8":"3.28"},"0.12.1":{"node_abi":14,"v8":"3.28"},"0.12.2":{"node_abi":14,"v8":"3.28"},"0.12.3":{"node_abi":14,"v8":"3.28"},"0.12.4":{"node_abi":14,"v8":"3.28"},"0.12.5":{"node_abi":14,"v8":"3.28"},"0.12.6":{"node_abi":14,"v8":"3.28"},"0.12.7":{"node_abi":14,"v8":"3.28"},"0.12.8":{"node_abi":14,"v8":"3.28"},"0.12.9":{"node_abi":14,"v8":"3.28"},"0.12.10":{"node_abi":14,"v8":"3.28"},"0.12.11":{"node_abi":14,"v8":"3.28"},"0.12.12":{"node_abi":14,"v8":"3.28"},"0.12.13":{"node_abi":14,"v8":"3.28"},"0.12.14":{"node_abi":14,"v8":"3.28"},"0.12.15":{"node_abi":14,"v8":"3.28"},"0.12.16":{"node_abi":14,"v8":"3.28"},"0.12.17":{"node_abi":14,"v8":"3.28"},"0.12.18":{"node_abi":14,"v8":"3.28"},"1.0.0":{"node_abi":42,"v8":"3.31"},"1.0.1":{"node_abi":42,"v8":"3.31"},"1.0.2":{"node_abi":42,"v8":"3.31"},"1.0.3":{"node_abi":42,"v8":"4.1"},"1.0.4":{"node_abi":42,"v8":"4.1"},"1.1.0":{"node_abi":43,"v8":"4.1"},"1.2.0":{"node_abi":43,"v8":"4.1"},"1.3.0":{"node_abi":43,"v8":"4.1"},"1.4.1":{"node_abi":43,"v8":"4.1"},"1.4.2":{"node_abi":43,"v8":"4.1"},"1.4.3":{"node_abi":43,"v8":"4.1"},"1.5.0":{"node_abi":43,"v8":"4.1"},"1.5.1":{"node_abi":43,"v8":"4.1"},"1.6.0":{"node_abi":43,"v8":"4.1"},"1.6.1":{"node_abi":43,"v8":"4.1"},"1.6.2":{"node_abi":43,"v8":"4.1"},"1.6.3":{"node_abi":43,"v8":"4.1"},"1.6.4":{"node_abi":43,"v8":"4.1"},"1.7.1":{"node_abi":43,"v8":"4.1"},"1.8.1":{"node_abi":43,"v8":"4.1"},"1.8.2":{"node_abi":43,"v8":"4.1"},"1.8.3":{"node_abi":43,"v8":"4.1"},"1.8.4":{"node_abi":43,"v8":"4.1"},"2.0.0":{"node_abi":44,"v8":"4.2"},"2.0.1":{"node_abi":44,"v8":"4.2"},"2.0.2":{"node_abi":44,"v8":"4.2"},"2.1.0":{"node_abi":44,"v8":"4.2"},"2.2.0":{"node_abi":44,"v8":"4.2"},"2.2.1":{"node_abi":44,"v8":"4.2"},"2.3.0":{"node_abi":44,"v8":"4.2"},"2.3.1":{"node_abi":44,"v8":"4.2"},"2.3.2":{"node_abi":44,"v8":"4.2"},"2.3.3":{"node_abi":44,"v8":"4.2"},"2.3.4":{"node_abi":44,"v8":"4.2"},"2.4.0":{"node_abi":44,"v8":"4.2"},"2.5.0":{"node_abi":44,"v8":"4.2"},"3.0.0":{"node_abi":45,"v8":"4.4"},"3.1.0":{"node_abi":45,"v8":"4.4"},"3.2.0":{"node_abi":45,"v8":"4.4"},"3.3.0":{"node_abi":45,"v8":"4.4"},"3.3.1":{"node_abi":45,"v8":"4.4"},"4.0.0":{"node_abi":46,"v8":"4.5"},"4.1.0":{"node_abi":46,"v8":"4.5"},"4.1.1":{"node_abi":46,"v8":"4.5"},"4.1.2":{"node_abi":46,"v8":"4.5"},"4.2.0":{"node_abi":46,"v8":"4.5"},"4.2.1":{"node_abi":46,"v8":"4.5"},"4.2.2":{"node_abi":46,"v8":"4.5"},"4.2.3":{"node_abi":46,"v8":"4.5"},"4.2.4":{"node_abi":46,"v8":"4.5"},"4.2.5":{"node_abi":46,"v8":"4.5"},"4.2.6":{"node_abi":46,"v8":"4.5"},"4.3.0":{"node_abi":46,"v8":"4.5"},"4.3.1":{"node_abi":46,"v8":"4.5"},"4.3.2":{"node_abi":46,"v8":"4.5"},"4.4.0":{"node_abi":46,"v8":"4.5"},"4.4.1":{"node_abi":46,"v8":"4.5"},"4.4.2":{"node_abi":46,"v8":"4.5"},"4.4.3":{"node_abi":46,"v8":"4.5"},"4.4.4":{"node_abi":46,"v8":"4.5"},"4.4.5":{"node_abi":46,"v8":"4.5"},"4.4.6":{"node_abi":46,"v8":"4.5"},"4.4.7":{"node_abi":46,"v8":"4.5"},"4.5.0":{"node_abi":46,"v8":"4.5"},"4.6.0":{"node_abi":46,"v8":"4.5"},"4.6.1":{"node_abi":46,"v8":"4.5"},"4.6.2":{"node_abi":46,"v8":"4.5"},"4.7.0":{"node_abi":46,"v8":"4.5"},"4.7.1":{"node_abi":46,"v8":"4.5"},"4.7.2":{"node_abi":46,"v8":"4.5"},"4.7.3":{"node_abi":46,"v8":"4.5"},"4.8.0":{"node_abi":46,"v8":"4.5"},"4.8.1":{"node_abi":46,"v8":"4.5"},"4.8.2":{"node_abi":46,"v8":"4.5"},"4.8.3":{"node_abi":46,"v8":"4.5"},"4.8.4":{"node_abi":46,"v8":"4.5"},"4.8.5":{"node_abi":46,"v8":"4.5"},"4.8.6":{"node_abi":46,"v8":"4.5"},"4.8.7":{"node_abi":46,"v8":"4.5"},"4.9.0":{"node_abi":46,"v8":"4.5"},"4.9.1":{"node_abi":46,"v8":"4.5"},"5.0.0":{"node_abi":47,"v8":"4.6"},"5.1.0":{"node_abi":47,"v8":"4.6"},"5.1.1":{"node_abi":47,"v8":"4.6"},"5.2.0":{"node_abi":47,"v8":"4.6"},"5.3.0":{"node_abi":47,"v8":"4.6"},"5.4.0":{"node_abi":47,"v8":"4.6"},"5.4.1":{"node_abi":47,"v8":"4.6"},"5.5.0":{"node_abi":47,"v8":"4.6"},"5.6.0":{"node_abi":47,"v8":"4.6"},"5.7.0":{"node_abi":47,"v8":"4.6"},"5.7.1":{"node_abi":47,"v8":"4.6"},"5.8.0":{"node_abi":47,"v8":"4.6"},"5.9.0":{"node_abi":47,"v8":"4.6"},"5.9.1":{"node_abi":47,"v8":"4.6"},"5.10.0":{"node_abi":47,"v8":"4.6"},"5.10.1":{"node_abi":47,"v8":"4.6"},"5.11.0":{"node_abi":47,"v8":"4.6"},"5.11.1":{"node_abi":47,"v8":"4.6"},"5.12.0":{"node_abi":47,"v8":"4.6"},"6.0.0":{"node_abi":48,"v8":"5.0"},"6.1.0":{"node_abi":48,"v8":"5.0"},"6.2.0":{"node_abi":48,"v8":"5.0"},"6.2.1":{"node_abi":48,"v8":"5.0"},"6.2.2":{"node_abi":48,"v8":"5.0"},"6.3.0":{"node_abi":48,"v8":"5.0"},"6.3.1":{"node_abi":48,"v8":"5.0"},"6.4.0":{"node_abi":48,"v8":"5.0"},"6.5.0":{"node_abi":48,"v8":"5.1"},"6.6.0":{"node_abi":48,"v8":"5.1"},"6.7.0":{"node_abi":48,"v8":"5.1"},"6.8.0":{"node_abi":48,"v8":"5.1"},"6.8.1":{"node_abi":48,"v8":"5.1"},"6.9.0":{"node_abi":48,"v8":"5.1"},"6.9.1":{"node_abi":48,"v8":"5.1"},"6.9.2":{"node_abi":48,"v8":"5.1"},"6.9.3":{"node_abi":48,"v8":"5.1"},"6.9.4":{"node_abi":48,"v8":"5.1"},"6.9.5":{"node_abi":48,"v8":"5.1"},"6.10.0":{"node_abi":48,"v8":"5.1"},"6.10.1":{"node_abi":48,"v8":"5.1"},"6.10.2":{"node_abi":48,"v8":"5.1"},"6.10.3":{"node_abi":48,"v8":"5.1"},"6.11.0":{"node_abi":48,"v8":"5.1"},"6.11.1":{"node_abi":48,"v8":"5.1"},"6.11.2":{"node_abi":48,"v8":"5.1"},"6.11.3":{"node_abi":48,"v8":"5.1"},"6.11.4":{"node_abi":48,"v8":"5.1"},"6.11.5":{"node_abi":48,"v8":"5.1"},"6.12.0":{"node_abi":48,"v8":"5.1"},"6.12.1":{"node_abi":48,"v8":"5.1"},"6.12.2":{"node_abi":48,"v8":"5.1"},"6.12.3":{"node_abi":48,"v8":"5.1"},"6.13.0":{"node_abi":48,"v8":"5.1"},"6.13.1":{"node_abi":48,"v8":"5.1"},"6.14.0":{"node_abi":48,"v8":"5.1"},"6.14.1":{"node_abi":48,"v8":"5.1"},"6.14.2":{"node_abi":48,"v8":"5.1"},"6.14.3":{"node_abi":48,"v8":"5.1"},"6.14.4":{"node_abi":48,"v8":"5.1"},"6.15.0":{"node_abi":48,"v8":"5.1"},"6.15.1":{"node_abi":48,"v8":"5.1"},"6.16.0":{"node_abi":48,"v8":"5.1"},"6.17.0":{"node_abi":48,"v8":"5.1"},"6.17.1":{"node_abi":48,"v8":"5.1"},"7.0.0":{"node_abi":51,"v8":"5.4"},"7.1.0":{"node_abi":51,"v8":"5.4"},"7.2.0":{"node_abi":51,"v8":"5.4"},"7.2.1":{"node_abi":51,"v8":"5.4"},"7.3.0":{"node_abi":51,"v8":"5.4"},"7.4.0":{"node_abi":51,"v8":"5.4"},"7.5.0":{"node_abi":51,"v8":"5.4"},"7.6.0":{"node_abi":51,"v8":"5.5"},"7.7.0":{"node_abi":51,"v8":"5.5"},"7.7.1":{"node_abi":51,"v8":"5.5"},"7.7.2":{"node_abi":51,"v8":"5.5"},"7.7.3":{"node_abi":51,"v8":"5.5"},"7.7.4":{"node_abi":51,"v8":"5.5"},"7.8.0":{"node_abi":51,"v8":"5.5"},"7.9.0":{"node_abi":51,"v8":"5.5"},"7.10.0":{"node_abi":51,"v8":"5.5"},"7.10.1":{"node_abi":51,"v8":"5.5"},"8.0.0":{"node_abi":57,"v8":"5.8"},"8.1.0":{"node_abi":57,"v8":"5.8"},"8.1.1":{"node_abi":57,"v8":"5.8"},"8.1.2":{"node_abi":57,"v8":"5.8"},"8.1.3":{"node_abi":57,"v8":"5.8"},"8.1.4":{"node_abi":57,"v8":"5.8"},"8.2.0":{"node_abi":57,"v8":"5.8"},"8.2.1":{"node_abi":57,"v8":"5.8"},"8.3.0":{"node_abi":57,"v8":"6.0"},"8.4.0":{"node_abi":57,"v8":"6.0"},"8.5.0":{"node_abi":57,"v8":"6.0"},"8.6.0":{"node_abi":57,"v8":"6.0"},"8.7.0":{"node_abi":57,"v8":"6.1"},"8.8.0":{"node_abi":57,"v8":"6.1"},"8.8.1":{"node_abi":57,"v8":"6.1"},"8.9.0":{"node_abi":57,"v8":"6.1"},"8.9.1":{"node_abi":57,"v8":"6.1"},"8.9.2":{"node_abi":57,"v8":"6.1"},"8.9.3":{"node_abi":57,"v8":"6.1"},"8.9.4":{"node_abi":57,"v8":"6.1"},"8.10.0":{"node_abi":57,"v8":"6.2"},"8.11.0":{"node_abi":57,"v8":"6.2"},"8.11.1":{"node_abi":57,"v8":"6.2"},"8.11.2":{"node_abi":57,"v8":"6.2"},"8.11.3":{"node_abi":57,"v8":"6.2"},"8.11.4":{"node_abi":57,"v8":"6.2"},"8.12.0":{"node_abi":57,"v8":"6.2"},"8.13.0":{"node_abi":57,"v8":"6.2"},"8.14.0":{"node_abi":57,"v8":"6.2"},"8.14.1":{"node_abi":57,"v8":"6.2"},"8.15.0":{"node_abi":57,"v8":"6.2"},"8.15.1":{"node_abi":57,"v8":"6.2"},"8.16.0":{"node_abi":57,"v8":"6.2"},"9.0.0":{"node_abi":59,"v8":"6.2"},"9.1.0":{"node_abi":59,"v8":"6.2"},"9.2.0":{"node_abi":59,"v8":"6.2"},"9.2.1":{"node_abi":59,"v8":"6.2"},"9.3.0":{"node_abi":59,"v8":"6.2"},"9.4.0":{"node_abi":59,"v8":"6.2"},"9.5.0":{"node_abi":59,"v8":"6.2"},"9.6.0":{"node_abi":59,"v8":"6.2"},"9.6.1":{"node_abi":59,"v8":"6.2"},"9.7.0":{"node_abi":59,"v8":"6.2"},"9.7.1":{"node_abi":59,"v8":"6.2"},"9.8.0":{"node_abi":59,"v8":"6.2"},"9.9.0":{"node_abi":59,"v8":"6.2"},"9.10.0":{"node_abi":59,"v8":"6.2"},"9.10.1":{"node_abi":59,"v8":"6.2"},"9.11.0":{"node_abi":59,"v8":"6.2"},"9.11.1":{"node_abi":59,"v8":"6.2"},"9.11.2":{"node_abi":59,"v8":"6.2"},"10.0.0":{"node_abi":64,"v8":"6.6"},"10.1.0":{"node_abi":64,"v8":"6.6"},"10.2.0":{"node_abi":64,"v8":"6.6"},"10.2.1":{"node_abi":64,"v8":"6.6"},"10.3.0":{"node_abi":64,"v8":"6.6"},"10.4.0":{"node_abi":64,"v8":"6.7"},"10.4.1":{"node_abi":64,"v8":"6.7"},"10.5.0":{"node_abi":64,"v8":"6.7"},"10.6.0":{"node_abi":64,"v8":"6.7"},"10.7.0":{"node_abi":64,"v8":"6.7"},"10.8.0":{"node_abi":64,"v8":"6.7"},"10.9.0":{"node_abi":64,"v8":"6.8"},"10.10.0":{"node_abi":64,"v8":"6.8"},"10.11.0":{"node_abi":64,"v8":"6.8"},"10.12.0":{"node_abi":64,"v8":"6.8"},"10.13.0":{"node_abi":64,"v8":"6.8"},"10.14.0":{"node_abi":64,"v8":"6.8"},"10.14.1":{"node_abi":64,"v8":"6.8"},"10.14.2":{"node_abi":64,"v8":"6.8"},"10.15.0":{"node_abi":64,"v8":"6.8"},"10.15.1":{"node_abi":64,"v8":"6.8"},"10.15.2":{"node_abi":64,"v8":"6.8"},"10.15.3":{"node_abi":64,"v8":"6.8"},"11.0.0":{"node_abi":67,"v8":"7.0"},"11.1.0":{"node_abi":67,"v8":"7.0"},"11.2.0":{"node_abi":67,"v8":"7.0"},"11.3.0":{"node_abi":67,"v8":"7.0"},"11.4.0":{"node_abi":67,"v8":"7.0"},"11.5.0":{"node_abi":67,"v8":"7.0"},"11.6.0":{"node_abi":67,"v8":"7.0"},"11.7.0":{"node_abi":67,"v8":"7.0"},"11.8.0":{"node_abi":67,"v8":"7.0"},"11.9.0":{"node_abi":67,"v8":"7.0"},"11.10.0":{"node_abi":67,"v8":"7.0"},"11.10.1":{"node_abi":67,"v8":"7.0"},"11.11.0":{"node_abi":67,"v8":"7.0"},"11.12.0":{"node_abi":67,"v8":"7.0"},"11.13.0":{"node_abi":67,"v8":"7.0"},"11.14.0":{"node_abi":67,"v8":"7.0"},"12.0.0":{"node_abi":72,"v8":"7.4"}}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var a=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);a=false}finally{if(a)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(7700);module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/packages/next/package.json b/packages/next/package.json index cbf24da07237..dcfaf8ceb18f 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -165,7 +165,7 @@ "@types/webpack-sources1": "npm:@types/webpack-sources@0.1.5", "@types/ws": "8.2.0", "@vercel/ncc": "0.33.4", - "@vercel/nft": "0.19.1", + "@vercel/nft": "0.20.0", "acorn": "8.5.0", "amphtml-validator": "1.0.35", "arg": "4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d8b010d52a9c..2d9c72d69209 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -458,7 +458,7 @@ importers: '@types/webpack-sources1': npm:@types/webpack-sources@0.1.5 '@types/ws': 8.2.0 '@vercel/ncc': 0.33.4 - '@vercel/nft': 0.19.1 + '@vercel/nft': 0.20.0 acorn: 8.5.0 amphtml-validator: 1.0.35 arg: 4.1.0 @@ -650,7 +650,7 @@ importers: '@types/webpack-sources1': /@types/webpack-sources/0.1.5 '@types/ws': 8.2.0 '@vercel/ncc': 0.33.4 - '@vercel/nft': 0.19.1 + '@vercel/nft': 0.20.0 acorn: 8.5.0 amphtml-validator: 1.0.35 arg: 4.1.0 @@ -6188,8 +6188,8 @@ packages: hasBin: true dev: true - /@vercel/nft/0.19.1: - resolution: {integrity: sha512-klR5oN7S3WJsZz0r6Xsq7o8YlFEyU3/00VmlpZzIPVFzKfbcEjXo/sVR5lQBUqNKuOzhcbxaFtzW9aOyHjmPYA==} + /@vercel/nft/0.20.0: + resolution: {integrity: sha512-+lxsJP/sG4E8UkhfrJC6evkLLfUpZrjXxqEdunr3Q9kiECi8JYBGz6B5EpU1+MmeNnRoSphLcLh/1tI998ye4w==} hasBin: true dependencies: '@mapbox/node-pre-gyp': 1.0.5 @@ -11411,7 +11411,7 @@ packages: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} /gauge/2.7.4: - resolution: {integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=} + resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} dependencies: aproba: 1.2.0 console-control-strings: 1.1.0 @@ -12023,7 +12023,7 @@ packages: has-symbols: 1.0.2 /has-unicode/2.0.1: - resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=} + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: true /has-value/0.3.1: @@ -12910,14 +12910,14 @@ packages: dev: true /is-fullwidth-code-point/1.0.0: - resolution: {integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=} + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} dependencies: number-is-nan: 1.0.1 dev: true /is-fullwidth-code-point/2.0.0: - resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} dev: true @@ -16164,7 +16164,7 @@ packages: dev: true /number-is-nan/1.0.1: - resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=} + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} dev: true @@ -16429,7 +16429,7 @@ packages: dev: true /os-homedir/1.0.2: - resolution: {integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=} + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} dev: true @@ -16439,7 +16439,7 @@ packages: dev: true /os-tmpdir/1.0.2: - resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} /osenv/0.1.5: @@ -19604,7 +19604,7 @@ packages: dev: true /set-blocking/2.0.0: - resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true /set-immediate-shim/1.0.1: @@ -19979,7 +19979,7 @@ packages: dev: true /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} /sshpk/1.16.1: resolution: {integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==} @@ -20033,7 +20033,7 @@ packages: dev: true /static-extend/0.1.2: - resolution: {integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=} + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} requiresBuild: true dependencies: @@ -20132,7 +20132,7 @@ packages: dev: true /string-width/1.0.2: - resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=} + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} engines: {node: '>=0.10.0'} dependencies: code-point-at: 1.1.0 @@ -20231,14 +20231,14 @@ packages: dev: true /strip-ansi/3.0.1: - resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=} + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 dev: true /strip-ansi/4.0.0: - resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=} + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} engines: {node: '>=4'} dependencies: ansi-regex: 3.0.0 @@ -20311,7 +20311,7 @@ packages: min-indent: 1.0.1 /strip-json-comments/2.0.1: - resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} dev: true @@ -20655,7 +20655,7 @@ packages: worker-farm: 1.7.0 dev: true - /terser-webpack-plugin/5.2.4_webpack@5.73.0: + /terser-webpack-plugin/5.2.4: resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20677,7 +20677,6 @@ packages: serialize-javascript: 6.0.0 source-map: 0.6.1 terser: 5.10.0 - webpack: 5.73.0 dev: true /terser/4.8.0: @@ -22097,7 +22096,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.0 - terser-webpack-plugin: 5.2.4_webpack@5.73.0 + terser-webpack-plugin: 5.2.4 watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: From 7cc8f92241a32a892ec8a60e7776680cb0092ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20Born=C3=B6?= Date: Fri, 10 Jun 2022 21:04:31 +0200 Subject: [PATCH 009/149] i18n regression tests and docs for ignore locale in rewrite (#37581) * Add regression tests for locale prefixed public files * Add tests for ignoring source locale in rewrite * Fix lint * Add doc example * Redirect tests * fix test names * update tests Co-authored-by: JJ Kasper --- .../api-reference/next.config.js/redirects.md | 7 ++ docs/api-reference/next.config.js/rewrites.md | 6 ++ .../app/pages/newpage.js | 6 ++ .../redirects-with-basepath.test.ts | 91 ++++++++++++++++++ .../redirects.test.ts | 90 ++++++++++++++++++ .../rewrites-with-basepath.test.ts | 94 +++++++++++++++++++ .../rewrites.test.ts | 90 ++++++++++++++++++ .../i18n-support/public/files/texts/file.txt | 1 + test/integration/i18n-support/test/shared.js | 13 +++ 9 files changed, 398 insertions(+) create mode 100644 test/e2e/i18n-ignore-redirect-source-locale/app/pages/newpage.js create mode 100644 test/e2e/i18n-ignore-redirect-source-locale/redirects-with-basepath.test.ts create mode 100644 test/e2e/i18n-ignore-redirect-source-locale/redirects.test.ts create mode 100644 test/e2e/i18n-ignore-rewrite-source-locale/rewrites-with-basepath.test.ts create mode 100644 test/e2e/i18n-ignore-rewrite-source-locale/rewrites.test.ts create mode 100644 test/integration/i18n-support/public/files/texts/file.txt diff --git a/docs/api-reference/next.config.js/redirects.md b/docs/api-reference/next.config.js/redirects.md index bc3c2fd919dc..988a5fa97522 100644 --- a/docs/api-reference/next.config.js/redirects.md +++ b/docs/api-reference/next.config.js/redirects.md @@ -276,6 +276,13 @@ module.exports = { locale: false, permanent: false, }, + // it's possible to match all locales even when locale: false is set + { + source: '/:locale/page', + destination: '/en/newpage', + permanent: false, + locale: false, + } { // this gets converted to /(en|fr|de)/(.*) so will not match the top-level // `/` or `/fr` routes like /:path* would diff --git a/docs/api-reference/next.config.js/rewrites.md b/docs/api-reference/next.config.js/rewrites.md index d95e115fe813..75271a41a29d 100644 --- a/docs/api-reference/next.config.js/rewrites.md +++ b/docs/api-reference/next.config.js/rewrites.md @@ -421,6 +421,12 @@ module.exports = { destination: '/en/another', locale: false, }, + { + // it's possible to match all locales even when locale: false is set + source: '/:locale/api-alias/:path*', + destination: '/api/:path*', + locale: false, + }, { // this gets converted to /(en|fr|de)/(.*) so will not match the top-level // `/` or `/fr` routes like /:path* would diff --git a/test/e2e/i18n-ignore-redirect-source-locale/app/pages/newpage.js b/test/e2e/i18n-ignore-redirect-source-locale/app/pages/newpage.js new file mode 100644 index 000000000000..4a19d965bb16 --- /dev/null +++ b/test/e2e/i18n-ignore-redirect-source-locale/app/pages/newpage.js @@ -0,0 +1,6 @@ +import { useRouter } from 'next/router' + +export default function Page() { + const router = useRouter() + return

{router.locale}

+} diff --git a/test/e2e/i18n-ignore-redirect-source-locale/redirects-with-basepath.test.ts b/test/e2e/i18n-ignore-redirect-source-locale/redirects-with-basepath.test.ts new file mode 100644 index 000000000000..1d6598223fa7 --- /dev/null +++ b/test/e2e/i18n-ignore-redirect-source-locale/redirects-with-basepath.test.ts @@ -0,0 +1,91 @@ +import { createNext, FileRef } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { check } from 'next-test-utils' +import { join } from 'path' +import webdriver from 'next-webdriver' + +const locales = ['', '/en', '/sv', '/nl'] + +describe('i18n-ignore-redirect-source-locale with basepath', () => { + let next: NextInstance + + beforeAll(async () => { + next = await createNext({ + files: { + pages: new FileRef(join(__dirname, 'app/pages')), + }, + dependencies: {}, + nextConfig: { + basePath: '/basepath', + i18n: { + locales: ['en', 'sv', 'nl'], + defaultLocale: 'en', + }, + async redirects() { + return [ + { + source: '/:locale/to-sv', + destination: '/sv/newpage', + permanent: false, + locale: false, + }, + { + source: '/:locale/to-en', + destination: '/en/newpage', + permanent: false, + locale: false, + }, + { + source: '/:locale/to-slash', + destination: '/newpage', + permanent: false, + locale: false, + }, + { + source: '/:locale/to-same', + destination: '/:locale/newpage', + permanent: false, + locale: false, + }, + ] + }, + }, + }) + }) + afterAll(() => next.destroy()) + + test.each(locales)( + 'get redirected to the new page, from: %s to: sv', + async (locale) => { + const browser = await webdriver(next.url, `basepath/${locale}/to-sv`) + await check(() => browser.elementById('current-locale').text(), 'sv') + } + ) + + test.each(locales)( + 'get redirected to the new page, from: %s to: en', + async (locale) => { + const browser = await webdriver(next.url, `basepath/${locale}/to-en`) + await check(() => browser.elementById('current-locale').text(), 'en') + } + ) + + test.each(locales)( + 'get redirected to the new page, from: %s to: /', + async (locale) => { + const browser = await webdriver(next.url, `basepath/${locale}/to-slash`) + await check(() => browser.elementById('current-locale').text(), 'en') + } + ) + + test.each(locales)( + 'get redirected to the new page, from and to: %s', + async (locale) => { + const browser = await webdriver(next.url, `basepath/${locale}/to-same`) + await check( + () => browser.elementById('current-locale').text(), + locale === '' ? 'en' : locale.slice(1) + ) + } + ) +}) diff --git a/test/e2e/i18n-ignore-redirect-source-locale/redirects.test.ts b/test/e2e/i18n-ignore-redirect-source-locale/redirects.test.ts new file mode 100644 index 000000000000..25e328d40fdd --- /dev/null +++ b/test/e2e/i18n-ignore-redirect-source-locale/redirects.test.ts @@ -0,0 +1,90 @@ +import { createNext, FileRef } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { check } from 'next-test-utils' +import { join } from 'path' +import webdriver from 'next-webdriver' + +const locales = ['', '/en', '/sv', '/nl'] + +describe('i18n-ignore-redirect-source-locale', () => { + let next: NextInstance + + beforeAll(async () => { + next = await createNext({ + files: { + pages: new FileRef(join(__dirname, 'app/pages')), + }, + dependencies: {}, + nextConfig: { + i18n: { + locales: ['en', 'sv', 'nl'], + defaultLocale: 'en', + }, + async redirects() { + return [ + { + source: '/:locale/to-sv', + destination: '/sv/newpage', + permanent: false, + locale: false, + }, + { + source: '/:locale/to-en', + destination: '/en/newpage', + permanent: false, + locale: false, + }, + { + source: '/:locale/to-slash', + destination: '/newpage', + permanent: false, + locale: false, + }, + { + source: '/:locale/to-same', + destination: '/:locale/newpage', + permanent: false, + locale: false, + }, + ] + }, + }, + }) + }) + afterAll(() => next.destroy()) + + test.each(locales)( + 'get redirected to the new page, from: %s to: sv', + async (locale) => { + const browser = await webdriver(next.url, `${locale}/to-sv`) + await check(() => browser.elementById('current-locale').text(), 'sv') + } + ) + + test.each(locales)( + 'get redirected to the new page, from: %s to: en', + async (locale) => { + const browser = await webdriver(next.url, `${locale}/to-en`) + await check(() => browser.elementById('current-locale').text(), 'en') + } + ) + + test.each(locales)( + 'get redirected to the new page, from: %s to: /', + async (locale) => { + const browser = await webdriver(next.url, `${locale}/to-slash`) + await check(() => browser.elementById('current-locale').text(), 'en') + } + ) + + test.each(locales)( + 'get redirected to the new page, from and to: %s', + async (locale) => { + const browser = await webdriver(next.url, `${locale}/to-same`) + await check( + () => browser.elementById('current-locale').text(), + locale === '' ? 'en' : locale.slice(1) + ) + } + ) +}) diff --git a/test/e2e/i18n-ignore-rewrite-source-locale/rewrites-with-basepath.test.ts b/test/e2e/i18n-ignore-rewrite-source-locale/rewrites-with-basepath.test.ts new file mode 100644 index 000000000000..f5dccada46b3 --- /dev/null +++ b/test/e2e/i18n-ignore-rewrite-source-locale/rewrites-with-basepath.test.ts @@ -0,0 +1,94 @@ +import { createNext } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { fetchViaHTTP, renderViaHTTP } from 'next-test-utils' +import path from 'path' +import fs from 'fs-extra' + +const locales = ['', '/en', '/sv', '/nl'] + +describe('i18n-ignore-rewrite-source-locale with basepath', () => { + let next: NextInstance + + beforeAll(async () => { + next = await createNext({ + files: { + 'pages/api/hello.js': ` + export default function handler(req, res) { + res.send('hello from api') + }`, + 'public/file.txt': 'hello from file.txt', + }, + dependencies: {}, + nextConfig: { + basePath: '/basepath', + i18n: { + locales: ['en', 'sv', 'nl'], + defaultLocale: 'en', + }, + async rewrites() { + return { + beforeFiles: [ + { + source: '/:locale/rewrite-files/:path*', + destination: '/:path*', + locale: false, + }, + { + source: '/:locale/rewrite-api/:path*', + destination: '/api/:path*', + locale: false, + }, + ], + afterFiles: [], + fallback: [], + } + }, + }, + }) + }) + afterAll(() => next.destroy()) + + test.each(locales)( + 'get public file by skipping locale in rewrite, locale: %s', + async (locale) => { + const res = await renderViaHTTP( + next.url, + `/basepath${locale}/rewrite-files/file.txt` + ) + expect(res).toContain('hello from file.txt') + } + ) + + test.each(locales)( + 'call api by skipping locale in rewrite, locale: %s', + async (locale) => { + const res = await renderViaHTTP( + next.url, + `/basepath${locale}/rewrite-api/hello` + ) + expect(res).toContain('hello from api') + } + ) + + // build artifacts aren't available on deploy + if (!(global as any).isNextDeploy) { + test.each(locales)( + 'get _next/static/ files by skipping locale in rewrite, locale: %s', + async (locale) => { + const chunks = ( + await fs.readdir(path.join(next.testDir, '.next', 'static', 'chunks')) + ).filter((f) => f.endsWith('.js')) + + await Promise.all( + chunks.map(async (file) => { + const res = await fetchViaHTTP( + next.url, + `/basepath${locale}/rewrite-files/_next/static/chunks/${file}` + ) + expect(res.status).toBe(200) + }) + ) + } + ) + } +}) diff --git a/test/e2e/i18n-ignore-rewrite-source-locale/rewrites.test.ts b/test/e2e/i18n-ignore-rewrite-source-locale/rewrites.test.ts new file mode 100644 index 000000000000..2f34b82174a1 --- /dev/null +++ b/test/e2e/i18n-ignore-rewrite-source-locale/rewrites.test.ts @@ -0,0 +1,90 @@ +import { createNext } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { fetchViaHTTP, renderViaHTTP } from 'next-test-utils' +import path from 'path' +import fs from 'fs-extra' + +const locales = ['', '/en', '/sv', '/nl'] + +describe('i18n-ignore-rewrite-source-locale', () => { + let next: NextInstance + + beforeAll(async () => { + next = await createNext({ + files: { + 'pages/api/hello.js': ` + export default function handler(req, res) { + res.send('hello from api') + }`, + 'public/file.txt': 'hello from file.txt', + }, + dependencies: {}, + nextConfig: { + i18n: { + locales: ['en', 'sv', 'nl'], + defaultLocale: 'en', + }, + async rewrites() { + return { + beforeFiles: [ + { + source: '/:locale/rewrite-files/:path*', + destination: '/:path*', + locale: false, + }, + { + source: '/:locale/rewrite-api/:path*', + destination: '/api/:path*', + locale: false, + }, + ], + afterFiles: [], + fallback: [], + } + }, + }, + }) + }) + afterAll(() => next.destroy()) + + test.each(locales)( + 'get public file by skipping locale in rewrite, locale: %s', + async (locale) => { + const res = await renderViaHTTP( + next.url, + `${locale}/rewrite-files/file.txt` + ) + expect(res).toContain('hello from file.txt') + } + ) + + test.each(locales)( + 'call api by skipping locale in rewrite, locale: %s', + async (locale) => { + const res = await renderViaHTTP(next.url, `${locale}/rewrite-api/hello`) + expect(res).toContain('hello from api') + } + ) + + // build artifacts aren't available on deploy + if (!(global as any).isNextDeploy) { + test.each(locales)( + 'get _next/static/ files by skipping locale in rewrite, locale: %s', + async (locale) => { + const chunks = ( + await fs.readdir(path.join(next.testDir, '.next', 'static', 'chunks')) + ).filter((f) => f.endsWith('.js')) + + await Promise.all( + chunks.map(async (file) => { + const res = await fetchViaHTTP( + next.url, + `${locale}/rewrite-files/_next/static/chunks/${file}` + ) + expect(res.status).toBe(200) + }) + ) + } + ) + } +}) diff --git a/test/integration/i18n-support/public/files/texts/file.txt b/test/integration/i18n-support/public/files/texts/file.txt new file mode 100644 index 000000000000..811b379a89ba --- /dev/null +++ b/test/integration/i18n-support/public/files/texts/file.txt @@ -0,0 +1 @@ +hello from file.txt \ No newline at end of file diff --git a/test/integration/i18n-support/test/shared.js b/test/integration/i18n-support/test/shared.js index 623217a118c3..b95c70805c04 100644 --- a/test/integration/i18n-support/test/shared.js +++ b/test/integration/i18n-support/test/shared.js @@ -77,6 +77,19 @@ export function runTests(ctx) { } }) + it('should 404 for locale prefixed public folder files', async () => { + for (const locale of locales) { + const res = await fetchViaHTTP( + ctx.appPort, + `${ctx.basePath || ''}/${locale}/files/texts/file.txt`, + undefined, + { redirect: 'manual' } + ) + expect(res.status).toBe(404) + expect(await res.text()).toContain('could not be found') + } + }) + it('should redirect external domain correctly', async () => { const res = await fetchViaHTTP( ctx.appPort, From 12b726fd159ae293b61abbe52b4db31b818b1924 Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Fri, 10 Jun 2022 22:08:24 +0200 Subject: [PATCH 010/149] Strip next internal queries for flight response (#37617) Strip next internal queries in inline flight response ## Bug - [ ] Related issues linked using `fixes #number` - [x] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` --- packages/next/server/app-render.tsx | 5 +-- packages/next/server/render.tsx | 35 +++++++++---------- packages/next/server/utils.ts | 16 +++++++++ .../test/rsc.js | 24 +++++++++++++ 4 files changed, 59 insertions(+), 21 deletions(-) diff --git a/packages/next/server/app-render.tsx b/packages/next/server/app-render.tsx index 51ded78bde14..b02051520338 100644 --- a/packages/next/server/app-render.tsx +++ b/packages/next/server/app-render.tsx @@ -19,6 +19,7 @@ import { import { isDynamicRoute } from '../shared/lib/router/utils' import { tryGetPreviewData } from './api-utils/node' import { htmlEscapeJsonString } from './htmlescape' +import { stripInternalQueries } from './utils' const ReactDOMServer = process.env.__NEXT_REACT_ROOT ? require('react-dom/server.browser') @@ -219,8 +220,8 @@ export async function renderToHTML( const isFlight = query.__flight__ !== undefined const flightRouterPath = isFlight ? query.__flight_router_path__ : undefined - delete query.__flight__ - delete query.__flight_router_path__ + + stripInternalQueries(query) const hasConcurrentFeatures = !!runtime const pageIsDynamic = isDynamicRoute(pathname) diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index e6d0ab8be1d5..abc9d4d86f8c 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -83,6 +83,7 @@ import stripAnsi from 'next/dist/compiled/strip-ansi' import { urlQueryToSearchParams } from '../shared/lib/router/utils/querystring' import { postProcessHTML } from './post-process' import { htmlEscapeJsonString } from './htmlescape' +import { stripInternalQueries } from './utils' let tryGetPreviewData: typeof import('./api-utils/node').tryGetPreviewData let warn: typeof import('../build/output/log').warn @@ -484,6 +485,21 @@ export async function renderToHTML( ? { current: '' } : null + let renderServerComponentData = isServerComponent + ? query.__flight__ !== undefined + : false + + const serverComponentProps = + isServerComponent && query.__props__ + ? JSON.parse(query.__props__ as string) + : undefined + + const isFallback = !!query.__nextFallback + const notFoundSrcPage = query.__nextNotFoundSrcPage + + stripInternalQueries(query) + + // next internal queries should be stripped out if (isServerComponent) { serverComponentsInlinedTransformStream = new TransformStream() const search = urlQueryToSearchParams(query).toString() @@ -501,18 +517,6 @@ export async function renderToHTML( }) } - let renderServerComponentData = isServerComponent - ? query.__flight__ !== undefined - : false - - const serverComponentProps = - isServerComponent && query.__props__ - ? JSON.parse(query.__props__ as string) - : undefined - - delete query.__flight__ - delete query.__props__ - const callMiddleware = async (method: string, args: any[], props = false) => { let results: any = props ? {} : [] @@ -537,13 +541,6 @@ export async function renderToHTML( const headTags = (...args: any) => callMiddleware('headTags', args) - const isFallback = !!query.__nextFallback - const notFoundSrcPage = query.__nextNotFoundSrcPage - delete query.__nextFallback - delete query.__nextLocale - delete query.__nextDefaultLocale - delete query.__nextIsNotFound - const isSSG = !!getStaticProps const isBuildTimeSSG = isSSG && renderOpts.nextExport const defaultAppGetInitialProps = diff --git a/packages/next/server/utils.ts b/packages/next/server/utils.ts index 2448f8d399ef..5f78790f3f0f 100644 --- a/packages/next/server/utils.ts +++ b/packages/next/server/utils.ts @@ -1,3 +1,4 @@ +import type { NextParsedUrlQuery } from './request-meta' import { BLOCKED_PAGES } from '../shared/lib/constants' export function isBlockedPage(pathname: string): boolean { @@ -26,3 +27,18 @@ export function isTargetLikeServerless(target: string) { const isServerlessTrace = target === 'experimental-serverless-trace' return isServerless || isServerlessTrace } + +export function stripInternalQueries(query: NextParsedUrlQuery) { + delete query.__nextFallback + delete query.__nextLocale + delete query.__nextDefaultLocale + delete query.__nextIsNotFound + + // RSC + delete query.__flight__ + delete query.__props__ + // routing + delete query.__flight_router_path__ + + return query +} diff --git a/test/integration/react-streaming-and-server-components/test/rsc.js b/test/integration/react-streaming-and-server-components/test/rsc.js index ab8f894ecf70..eeff0e448846 100644 --- a/test/integration/react-streaming-and-server-components/test/rsc.js +++ b/test/integration/react-streaming-and-server-components/test/rsc.js @@ -3,6 +3,7 @@ import webdriver from 'next-webdriver' import { renderViaHTTP, check } from 'next-test-utils' import { join } from 'path' import fs from 'fs-extra' +import cheerio from 'cheerio' import { getNodeBySelector } from './utils' export default function (context, { runtime, env }) { @@ -29,7 +30,30 @@ export default function (context, { runtime, env }) { expect(homeHTML).toContain('env:env_var_test') expect(homeHTML).toContain('header:test-util') expect(homeHTML).toMatch(/<\/body><\/html>$/) + expect(scriptTagContent).toBe(';') + + const inlineFlightContents = [] + const $ = cheerio.load(homeHTML) + $('script').each((index, tag) => { + const content = $(tag).text() + if (content) inlineFlightContents.push(content) + }) + + const internalQueries = [ + '__nextFallback', + '__nextLocale', + '__nextDefaultLocale', + '__nextIsNotFound', + '__flight__', + '__props__', + '__flight_router_path__', + ] + + const hasNextInternalQuery = inlineFlightContents.some((content) => + internalQueries.some((query) => content.includes(query)) + ) + expect(hasNextInternalQuery).toBe(false) }) it('should reuse the inline flight response without sending extra requests', async () => { From f8ebb19dc54ab35ac10aaf634aff9649f039c764 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 10 Jun 2022 15:23:31 -0500 Subject: [PATCH 011/149] v12.1.7-canary.34 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 +-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 ++++---- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 38 ++++++++------------ 16 files changed, 36 insertions(+), 46 deletions(-) diff --git a/lerna.json b/lerna.json index 88fc7263f9aa..d5f6fdcd91cd 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.33" + "version": "12.1.7-canary.34" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index 292761d7119d..b8e28c48cc81 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 654f553d58f1..ca1c2c57a3f8 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.33", + "@next/eslint-plugin-next": "12.1.7-canary.34", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 4d48626a742f..8f32c85e2329 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index 5e33f664b686..bc8651560b84 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index ca3e8d4b2a31..046bef3f4463 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index 7f4427748eec..eaaec9c380a8 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 9fdf39f2acf5..8686193ff349 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index e329f505648e..21e4e28ab827 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index 21b6fb15e9cb..4d3920b237de 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index c9c3923f5ab6..8208e3d56893 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 47c2f0c8e92f..f86642b27055 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index dcfaf8ceb18f..a9869b9cc0cc 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.33", + "@next/env": "12.1.7-canary.34", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.33", - "@next/polyfill-nomodule": "12.1.7-canary.33", - "@next/react-dev-overlay": "12.1.7-canary.33", - "@next/react-refresh-utils": "12.1.7-canary.33", - "@next/swc": "12.1.7-canary.33", + "@next/polyfill-module": "12.1.7-canary.34", + "@next/polyfill-nomodule": "12.1.7-canary.34", + "@next/react-dev-overlay": "12.1.7-canary.34", + "@next/react-refresh-utils": "12.1.7-canary.34", + "@next/swc": "12.1.7-canary.34", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index d6eee6029974..8a9d26afced0 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 5cf67c859f23..f5d7f5024ca8 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.33", + "version": "12.1.7-canary.34", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d9c72d69209..3e11e66ca623 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.33 + '@next/eslint-plugin-next': 12.1.7-canary.34 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.33 - '@next/polyfill-module': 12.1.7-canary.33 - '@next/polyfill-nomodule': 12.1.7-canary.33 - '@next/react-dev-overlay': 12.1.7-canary.33 - '@next/react-refresh-utils': 12.1.7-canary.33 - '@next/swc': 12.1.7-canary.33 + '@next/env': 12.1.7-canary.34 + '@next/polyfill-module': 12.1.7-canary.34 + '@next/polyfill-nomodule': 12.1.7-canary.34 + '@next/react-dev-overlay': 12.1.7-canary.34 + '@next/react-refresh-utils': 12.1.7-canary.34 + '@next/swc': 12.1.7-canary.34 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 @@ -7718,7 +7718,7 @@ packages: mississippi: 3.0.0 mkdirp: 0.5.5 move-concurrently: 1.0.1 - promise-inflight: 1.0.1_bluebird@3.7.2 + promise-inflight: 1.0.1 rimraf: 2.7.1 ssri: 6.0.1 unique-filename: 1.1.1 @@ -18019,17 +18019,6 @@ packages: optional: true dev: true - /promise-inflight/1.0.1_bluebird@3.7.2: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - dependencies: - bluebird: 3.7.2 - dev: true - /promise-polyfill/6.1.0: resolution: {integrity: sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=} dev: true @@ -20655,7 +20644,7 @@ packages: worker-farm: 1.7.0 dev: true - /terser-webpack-plugin/5.2.4: + /terser-webpack-plugin/5.2.4_webpack@5.73.0: resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20677,6 +20666,7 @@ packages: serialize-javascript: 6.0.0 source-map: 0.6.1 terser: 5.10.0 + webpack: 5.73.0 dev: true /terser/4.8.0: @@ -20832,7 +20822,7 @@ packages: dev: true /to-arraybuffer/1.0.1: - resolution: {integrity: sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=} + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} dev: true /to-fast-properties/2.0.0: @@ -20840,7 +20830,7 @@ packages: engines: {node: '>=4'} /to-object-path/0.3.0: - resolution: {integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=} + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} engines: {node: '>=0.10.0'} requiresBuild: true dependencies: @@ -20857,7 +20847,7 @@ packages: dev: true /to-regex-range/2.1.1: - resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=} + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} engines: {node: '>=0.10.0'} requiresBuild: true dependencies: @@ -22096,7 +22086,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.0 - terser-webpack-plugin: 5.2.4 + terser-webpack-plugin: 5.2.4_webpack@5.73.0 watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: From 9f0e691a3200fbe28b1245ba064bdeb1caf1a371 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 10 Jun 2022 17:21:35 -0500 Subject: [PATCH 012/149] Fix failing swc builds (#37629) * update android ndk path * re-add isRelease checks --- .github/workflows/build_test_deploy.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index b12433cb8dd1..b8dfb63a3f91 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -1243,23 +1243,23 @@ jobs: - host: ubuntu-latest target: aarch64-linux-android build: | - export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" - export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" - export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++" - export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" + export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" + export CC="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" + export CXX="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++" + export PATH="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" npm i -g "@napi-rs/cli@${NAPI_CLI_VERSION}" "turbo@${TURBO_VERSION}" && if [ ! -f $(dirname $(which yarn))/pnpm ]; then ln -s $(which yarn) $(dirname $(which yarn))/pnpm;fi turbo run build-native --cache-dir=".turbo" -- --release --target aarch64-linux-android - ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip packages/next-swc/native/next-swc.*.node + /usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip packages/next-swc/native/next-swc.*.node - host: ubuntu-latest target: armv7-linux-androideabi build: | - export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" - export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" - export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++" - export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" + export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" + export CC="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" + export CXX="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++" + export PATH="/usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" npm i -g "@napi-rs/cli@${NAPI_CLI_VERSION}" "turbo@${TURBO_VERSION}" "pnpm@${PNPM_VERSION}" turbo run build-native-no-plugin --cache-dir=".turbo" -- --release --target armv7-linux-androideabi - ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip packages/next-swc/native/next-swc.*.node + /usr/local/lib/android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip packages/next-swc/native/next-swc.*.node - host: ubuntu-latest target: 'aarch64-unknown-linux-musl' docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine From 934e5a483594ab111d57acdd99d42c686ec71c43 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 10 Jun 2022 18:19:37 -0500 Subject: [PATCH 013/149] Update usage of example.com -> example.vercel.sh (#37630) * Update usage of example.com -> example.vercel.sh * another one * another flakey test --- test/e2e/basepath.test.ts | 6 ++++-- test/e2e/middleware-general/app/middleware.js | 2 +- .../required-server-files/pages/api/optional/[[...rest]].js | 2 +- .../required-server-files/pages/fallback/[slug].js | 2 +- test/production/required-server-files/pages/gssp.js | 4 +++- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/test/e2e/basepath.test.ts b/test/e2e/basepath.test.ts index bc135a09cc57..6d1b660548b6 100644 --- a/test/e2e/basepath.test.ts +++ b/test/e2e/basepath.test.ts @@ -38,7 +38,7 @@ describe('basePath', () => { }, { source: '/rewrite-no-basepath', - destination: 'https://example.com', + destination: 'https://example.vercel.sh', basePath: false, }, { @@ -757,7 +757,9 @@ describe('basePath', () => { .waitForElementByCss('#other-page-title') const eventLog = await browser.eval('window._getEventLog()') - expect(eventLog).toEqual([ + expect( + eventLog.filter((item) => item[1]?.endsWith('/other-page')) + ).toEqual([ ['routeChangeStart', `${basePath}/other-page`, { shallow: false }], ['beforeHistoryChange', `${basePath}/other-page`, { shallow: false }], ['routeChangeComplete', `${basePath}/other-page`, { shallow: false }], diff --git a/test/e2e/middleware-general/app/middleware.js b/test/e2e/middleware-general/app/middleware.js index dac5bb370990..4ed57791226e 100644 --- a/test/e2e/middleware-general/app/middleware.js +++ b/test/e2e/middleware-general/app/middleware.js @@ -131,7 +131,7 @@ export async function middleware(request) { const response = {} try { - await fetch('https://example.com', { signal }) + await fetch('https://example.vercel.sh', { signal }) } catch (err) { response.error = { name: err.name, diff --git a/test/production/required-server-files/pages/api/optional/[[...rest]].js b/test/production/required-server-files/pages/api/optional/[[...rest]].js index ad5e9c26fb69..bc521e91a558 100644 --- a/test/production/required-server-files/pages/api/optional/[[...rest]].js +++ b/test/production/required-server-files/pages/api/optional/[[...rest]].js @@ -4,6 +4,6 @@ export default async (req, res) => { url: req.url, query: req.query, // make sure fetch if polyfilled - example: await fetch('https://example.com').then((res) => res.text()), + example: await fetch('https://example.vercel.sh').then((res) => res.text()), }) } diff --git a/test/production/required-server-files/pages/fallback/[slug].js b/test/production/required-server-files/pages/fallback/[slug].js index f4d7c5a59382..f36f51cc95ee 100644 --- a/test/production/required-server-files/pages/fallback/[slug].js +++ b/test/production/required-server-files/pages/fallback/[slug].js @@ -12,7 +12,7 @@ export const getStaticProps = ({ params }) => { export const getStaticPaths = async () => { // make sure fetch if polyfilled - await fetch('https://example.com').then((res) => res.text()) + await fetch('https://example.vercel.sh').then((res) => res.text()) return { paths: ['/fallback/first'], diff --git a/test/production/required-server-files/pages/gssp.js b/test/production/required-server-files/pages/gssp.js index a7c8b1be1428..6b8b69c22521 100644 --- a/test/production/required-server-files/pages/gssp.js +++ b/test/production/required-server-files/pages/gssp.js @@ -24,7 +24,9 @@ export async function getServerSideProps({ res }) { data, random: Math.random(), // make sure fetch if polyfilled - example: await fetch('https://example.com').then((res) => res.text()), + example: await fetch('https://example.vercel.sh').then((res) => + res.text() + ), }, } } From 1463f0d1bcefc25e2485d0d519d27f8fc9bc3476 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 10 Jun 2022 18:24:42 -0500 Subject: [PATCH 014/149] v12.1.7-canary.35 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 ++-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +++++++------- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 16 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index d5f6fdcd91cd..a0373e9705dc 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.34" + "version": "12.1.7-canary.35" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index b8e28c48cc81..4e423d837b38 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index ca1c2c57a3f8..3e8494c3cfbd 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.34", + "@next/eslint-plugin-next": "12.1.7-canary.35", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 8f32c85e2329..a5c96e2d6fe0 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index bc8651560b84..921c0c455097 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index 046bef3f4463..53d54ac1fbda 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index eaaec9c380a8..85fc4b0f78a2 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 8686193ff349..e7cfb8caea28 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 21e4e28ab827..5f574a0703a3 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index 4d3920b237de..84e5bd5d97f2 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index 8208e3d56893..f990e7c209c7 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index f86642b27055..fdcad016c0dd 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index a9869b9cc0cc..ec2a4d7e6555 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.34", + "@next/env": "12.1.7-canary.35", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.34", - "@next/polyfill-nomodule": "12.1.7-canary.34", - "@next/react-dev-overlay": "12.1.7-canary.34", - "@next/react-refresh-utils": "12.1.7-canary.34", - "@next/swc": "12.1.7-canary.34", + "@next/polyfill-module": "12.1.7-canary.35", + "@next/polyfill-nomodule": "12.1.7-canary.35", + "@next/react-dev-overlay": "12.1.7-canary.35", + "@next/react-refresh-utils": "12.1.7-canary.35", + "@next/swc": "12.1.7-canary.35", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 8a9d26afced0..4bbcdbfc37b8 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index f5d7f5024ca8..758a7f92aea1 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.34", + "version": "12.1.7-canary.35", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e11e66ca623..fcb45fe063a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.34 + '@next/eslint-plugin-next': 12.1.7-canary.35 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.34 - '@next/polyfill-module': 12.1.7-canary.34 - '@next/polyfill-nomodule': 12.1.7-canary.34 - '@next/react-dev-overlay': 12.1.7-canary.34 - '@next/react-refresh-utils': 12.1.7-canary.34 - '@next/swc': 12.1.7-canary.34 + '@next/env': 12.1.7-canary.35 + '@next/polyfill-module': 12.1.7-canary.35 + '@next/polyfill-nomodule': 12.1.7-canary.35 + '@next/react-dev-overlay': 12.1.7-canary.35 + '@next/react-refresh-utils': 12.1.7-canary.35 + '@next/swc': 12.1.7-canary.35 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 From 085ee9657701322b4fc88a3dc787d98f7e6c22ad Mon Sep 17 00:00:00 2001 From: Joseph Date: Sat, 11 Jun 2022 02:50:28 +0200 Subject: [PATCH 015/149] Fix with mux video example (#37434) * fix: On error upchunk dispatches an object * chore: Typo on contribution guide, `unverfied` * Update contributing.md Co-authored-by: Lee Robinson Co-authored-by: JJ Kasper --- contributing.md | 2 +- examples/with-mux-video/components/upload-form.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contributing.md b/contributing.md index 29dcf79d4527..9256ab659f1e 100644 --- a/contributing.md +++ b/contributing.md @@ -323,7 +323,7 @@ Issues are opened with one of these labels: - `template: story` - a feature request, converted to an [💡 Ideas discussion](https://github.com/vercel/next.js/discussions/categories/ideas) - `template: bug` - unverified issue with Next.js itself, or one of the examples in the [`examples`](https://github.com/vercel/next.js/tree/canary/examples) folder -- `template: documentation` - feedback for improvement or unverfied issue with the Next.js documentation +- `template: documentation` - feedback for improvement or an unverified issue with the Next.js documentation In case of a bug report, a maintainer looks at the provided reproduction. If the reproduction is missing or insufficient, a `please add a complete reproduction` label is added. If a reproduction is not provided for more than 30 days, the issue becomes stale and will be automatically closed. If a reproduction is provided within 30 days, the `please add a complete reproduction` label is removed and the issue will not become stale anymore. diff --git a/examples/with-mux-video/components/upload-form.js b/examples/with-mux-video/components/upload-form.js index e129f8130962..6b9c8509a3e2 100644 --- a/examples/with-mux-video/components/upload-form.js +++ b/examples/with-mux-video/components/upload-form.js @@ -62,7 +62,7 @@ const UploadForm = () => { }) upload.on('error', (err) => { - setErrorMessage(err.detail) + setErrorMessage(err.detail.message) }) upload.on('progress', (progress) => { From ae44779bcbdda5f31d91bcc04e5d17f74b66f2d9 Mon Sep 17 00:00:00 2001 From: Damien Simonin Feugas Date: Sat, 11 Jun 2022 03:22:03 +0200 Subject: [PATCH 016/149] chore: narrows regexp to enable middleware source maps (#37582) * chore: narrows regexp to enable middleware source maps * update test Co-authored-by: JJ Kasper --- .../webpack/loaders/next-middleware-loader.ts | 4 +- .../plugins/middleware-source-maps-plugin.ts | 7 +- packages/next/lib/constants.ts | 3 +- .../async-modules/test/index.test.js | 3 +- .../index.test.ts | 77 +++++++++---------- 5 files changed, 49 insertions(+), 45 deletions(-) diff --git a/packages/next/build/webpack/loaders/next-middleware-loader.ts b/packages/next/build/webpack/loaders/next-middleware-loader.ts index 6b37f183d166..62f28910b80e 100644 --- a/packages/next/build/webpack/loaders/next-middleware-loader.ts +++ b/packages/next/build/webpack/loaders/next-middleware-loader.ts @@ -1,6 +1,6 @@ import { getModuleBuildInfo } from './get-module-build-info' import { stringifyRequest } from '../stringify-request' -import { MIDDLEWARE_FILENAME } from '../../../lib/constants' +import { MIDDLEWARE_LOCATION_REGEXP } from '../../../lib/constants' export type MiddlewareLoaderOptions = { absolutePagePath: string @@ -16,7 +16,7 @@ export default function middlewareLoader(this: any) { buildInfo.nextEdgeMiddleware = { matcherRegexp, page: - page.replace(new RegExp(`/(?:src/)?${MIDDLEWARE_FILENAME}$`), '') || '/', + page.replace(new RegExp(`/${MIDDLEWARE_LOCATION_REGEXP}$`), '') || '/', } return ` diff --git a/packages/next/build/webpack/plugins/middleware-source-maps-plugin.ts b/packages/next/build/webpack/plugins/middleware-source-maps-plugin.ts index 2b5b3a8c73ae..4f2fbce9d3b1 100644 --- a/packages/next/build/webpack/plugins/middleware-source-maps-plugin.ts +++ b/packages/next/build/webpack/plugins/middleware-source-maps-plugin.ts @@ -1,5 +1,5 @@ import { webpack } from 'next/dist/compiled/webpack/webpack' -import { MIDDLEWARE_FILENAME } from '../../../lib/constants' +import { MIDDLEWARE_LOCATION_REGEXP } from '../../../lib/constants' import type { webpack5 } from 'next/dist/compiled/webpack/webpack' /** @@ -10,7 +10,10 @@ export const getMiddlewareSourceMapPlugins = () => { return [ new webpack.SourceMapDevToolPlugin({ filename: '[file].map', - include: [new RegExp(`${MIDDLEWARE_FILENAME}.`), /^edge-chunks\//], + include: [ + new RegExp(`^${MIDDLEWARE_LOCATION_REGEXP}\\.`), + /^edge-chunks\//, + ], }), new MiddlewareSourceMapsPlugin(), ] diff --git a/packages/next/lib/constants.ts b/packages/next/lib/constants.ts index 95ccef2b7ddd..09f47bfa1d30 100644 --- a/packages/next/lib/constants.ts +++ b/packages/next/lib/constants.ts @@ -18,8 +18,9 @@ export const NEXT_PROJECT_ROOT_DIST_SERVER = join( // Regex for API routes export const API_ROUTE = /^\/api(?:\/|$)/ -// Regex for middleware +// Patterns to detect middleware files export const MIDDLEWARE_FILENAME = 'middleware' +export const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}` // Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path, // we have to use a private alias diff --git a/test/integration/async-modules/test/index.test.js b/test/integration/async-modules/test/index.test.js index 243987c5dca0..7a7d4efd790e 100644 --- a/test/integration/async-modules/test/index.test.js +++ b/test/integration/async-modules/test/index.test.js @@ -78,7 +78,8 @@ function runTests(dev = false) { } }) - it('can render async AMP pages', async () => { + // TODO: investigate this test flaking + it.skip('can render async AMP pages', async () => { let browser try { browser = await webdriver(appPort, '/config') diff --git a/test/production/generate-middleware-source-maps/index.test.ts b/test/production/generate-middleware-source-maps/index.test.ts index 9428992b0cd9..c39d9d5ed48b 100644 --- a/test/production/generate-middleware-source-maps/index.test.ts +++ b/test/production/generate-middleware-source-maps/index.test.ts @@ -3,33 +3,28 @@ import { NextInstance } from 'test/lib/next-modes/base' import fs from 'fs-extra' import path from 'path' +const files = { + 'pages/index.js': ` + export default function () { return
Hello, world!
} + `, + 'middleware.js': ` + import { NextResponse } from "next/server"; + export default function middleware() { + return NextResponse.next(); + } + `, +} + describe('experimental.middlewareSourceMaps: true', () => { let next: NextInstance - beforeAll(async () => { - next = await createNext({ - nextConfig: { - experimental: { - middlewareSourceMaps: true, - }, - }, - files: { - 'pages/index.js': ` - export default function () { return
Hello, world!
} - `, - 'middleware.js': ` - import { NextResponse } from "next/server"; - export default function middleware() { - return NextResponse.next(); - } - `, - }, - dependencies: {}, - }) - }) - afterAll(() => next.destroy()) + const nextConfig = { experimental: { middlewareSourceMaps: true } } + + afterEach(() => next.destroy()) it('generates a source map', async () => { + next = await createNext({ nextConfig, files }) + const middlewarePath = path.resolve( next.testDir, '.next/server/middleware.js' @@ -37,30 +32,34 @@ describe('experimental.middlewareSourceMaps: true', () => { expect(await fs.pathExists(middlewarePath)).toEqual(true) expect(await fs.pathExists(`${middlewarePath}.map`)).toEqual(true) }) + + it('generates a source map from src', async () => { + next = await createNext({ + nextConfig, + files: Object.fromEntries( + Object.entries(files).map(([filename, content]) => [ + `src/${filename}`, + content, + ]) + ), + }) + + const middlewarePath = path.resolve( + next.testDir, + '.next/server/src/middleware.js' + ) + expect(await fs.pathExists(middlewarePath)).toEqual(true) + expect(await fs.pathExists(`${middlewarePath}.map`)).toEqual(true) + }) }) describe('experimental.middlewareSourceMaps: false', () => { let next: NextInstance - beforeAll(async () => { - next = await createNext({ - files: { - 'pages/index.js': ` - export default function () { return
Hello, world!
} - `, - 'middleware.js': ` - import { NextResponse } from "next/server"; - export default function middleware() { - return NextResponse.next(); - } - `, - }, - dependencies: {}, - }) - }) - afterAll(() => next.destroy()) + afterEach(() => next.destroy()) it('does not generate a source map', async () => { + next = await createNext({ files }) const middlewarePath = path.resolve( next.testDir, '.next/server/middleware.js' From 30150e449c99077cdc22bd51d8e9a527a2923f17 Mon Sep 17 00:00:00 2001 From: Alabhya Jindal <52493077+alabhyajindal@users.noreply.github.com> Date: Sun, 12 Jun 2022 05:17:23 +0530 Subject: [PATCH 017/149] Changed _app.js to a functional component (#37635) Changed the class component to a functional component of the _app.js file. This is for the Context API example. --- examples/with-context-api/pages/_app.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/examples/with-context-api/pages/_app.js b/examples/with-context-api/pages/_app.js index 6ca001fa6462..4fe390a79d9b 100644 --- a/examples/with-context-api/pages/_app.js +++ b/examples/with-context-api/pages/_app.js @@ -1,15 +1,11 @@ -import App from 'next/app' import { CounterProvider } from '../components/Counter' -class MyApp extends App { - render() { - const { Component, pageProps } = this.props - return ( - - - - ) - } +function MyApp({ Component, pageProps }) { + return ( + + + + ) } export default MyApp From 2daa4117c6400f4d7fad9c5a1a4f8c87cf8b924a Mon Sep 17 00:00:00 2001 From: You Nguyen Date: Sun, 12 Jun 2022 06:53:30 +0700 Subject: [PATCH 018/149] Bump version tailwindcss example to 3.1 (#37633) --- examples/with-tailwindcss/package.json | 2 +- examples/with-tailwindcss/tailwind.config.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 20ef29dfd21f..08014894d152 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -16,7 +16,7 @@ "@types/react-dom": "18.0.5", "autoprefixer": "^10.4.7", "postcss": "^8.4.14", - "tailwindcss": "^3.0.24", + "tailwindcss": "^3.1.2", "typescript": "4.7.2" } } diff --git a/examples/with-tailwindcss/tailwind.config.js b/examples/with-tailwindcss/tailwind.config.js index 4cd61381b811..6aa9dd319121 100644 --- a/examples/with-tailwindcss/tailwind.config.js +++ b/examples/with-tailwindcss/tailwind.config.js @@ -1,3 +1,4 @@ +/** @type {import('tailwindcss').Config} */ module.exports = { content: [ './pages/**/*.{js,ts,jsx,tsx}', From 6108f10799b46bc0ef97373c913e23714e135942 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Sun, 12 Jun 2022 19:34:23 -0700 Subject: [PATCH 019/149] feat(next export): add warning if using getInitialProps (#37642) This PR builds on the work from @hattakdev (PR went stale: https://github.com/vercel/next.js/pull/14499) and adds a new `integration` test for the new warning. ## Bug - [x] Related issues linked using `fixes #number` - [x] Integration tests added - [x] Errors have helpful link attached, see `contributing.md` ![image](https://user-images.githubusercontent.com/3806031/173214117-f5159f3a-778c-4177-894d-78e7bb0c80e7.png) ## To run locally 1. `pnpm build` 2. `pnpm testonly test/integration/export-getInitialProps-warn/test/index.test.js` Fixes #13946 ## Notes
Click to toggle see I know the `contributing.md` doc said to avoid adding new tests to `integration`. It also said new tests should be written in TypeScript. I wasn't sure where to put the tests for this so I went with `integration`. I also didn't see many other tests written in TS in this part of the codebase so I stuck with `.js`.
Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- errors/get-initial-props-export.md | 15 +++++++++++++++ errors/manifest.json | 4 ++++ packages/next/server/render.tsx | 18 ++++++++++++++++++ .../auto-export-query-error/next.config.js | 2 +- .../auto-export-query-error/test/index.test.js | 6 +++--- .../export-getInitialProps-warn/next.config.js | 10 ++++++++++ .../export-getInitialProps-warn/pages/index.js | 5 +++++ .../test/index.test.js | 17 +++++++++++++++++ 8 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 errors/get-initial-props-export.md create mode 100644 test/integration/export-getInitialProps-warn/next.config.js create mode 100644 test/integration/export-getInitialProps-warn/pages/index.js create mode 100644 test/integration/export-getInitialProps-warn/test/index.test.js diff --git a/errors/get-initial-props-export.md b/errors/get-initial-props-export.md new file mode 100644 index 000000000000..827a35fce1a5 --- /dev/null +++ b/errors/get-initial-props-export.md @@ -0,0 +1,15 @@ +# getInitialProps Export Warning + +#### Why This Warning Occurred + +You attempted to statically export your application via `next export`, however, one or more of your pages uses `getInitialProps`. + +Next.js discourages you to use `getInitialProps` in this scenario. + +#### Possible Ways to Fix It + +Next.js has a proper SSG support, so usage of `next export` should always be paired with `getStaticProps`. + +### Useful Links + +- [`getStaticProps` Documentation](https://nextjs.org/docs/basic-features/data-fetching/get-static-props) diff --git a/errors/manifest.json b/errors/manifest.json index 32bab3a5969c..d74dea075e4b 100644 --- a/errors/manifest.json +++ b/errors/manifest.json @@ -677,6 +677,10 @@ { "title": "middleware-user-agent.md", "path": "/errors/middleware-user-agent.md" + }, + { + "title": "get-initial-props-export", + "path": "/errors/get-initial-props-export.md" } ] } diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index abc9d4d86f8c..dd77a5b3ab8f 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -551,6 +551,24 @@ export async function renderToHTML( const pageIsDynamic = isDynamicRoute(pathname) + const defaultErrorGetInitialProps = + pathname === '/_error' && + (Component as any).getInitialProps === + (Component as any).origGetInitialProps + + if ( + renderOpts.nextExport && + hasPageGetInitialProps && + !defaultErrorGetInitialProps + ) { + warn( + `Detected getInitialProps on page '${pathname}'` + + `while running "next export". It's recommended to use getStaticProps` + + `which has a more correct behavior for static exporting.` + + `\nRead more: https://nextjs.org/docs/messages/get-initial-props-export` + ) + } + const isAutoExport = !hasPageGetInitialProps && defaultAppGetInitialProps && diff --git a/test/integration/auto-export-query-error/next.config.js b/test/integration/auto-export-query-error/next.config.js index 39584969c6a1..a770f34bd27e 100644 --- a/test/integration/auto-export-query-error/next.config.js +++ b/test/integration/auto-export-query-error/next.config.js @@ -4,7 +4,7 @@ module.exports = { return { '/': { page: '/hello', query: { first: 'second' } }, '/amp': { page: '/amp' }, - '/ssr': { page: '/ssr' }, + '/ssr': { page: '/ssr', query: { another: 'one' } }, } }, } diff --git a/test/integration/auto-export-query-error/test/index.test.js b/test/integration/auto-export-query-error/test/index.test.js index d0589b58b22b..dfc3774d387b 100644 --- a/test/integration/auto-export-query-error/test/index.test.js +++ b/test/integration/auto-export-query-error/test/index.test.js @@ -17,9 +17,9 @@ const runTests = () => { 'Error: you provided query values for / which is an auto-exported page. These can not be applied since the page can no longer be re-rendered on the server. To disable auto-export for this page add `getInitialProps`' ) - expect(stderr).not.toContain('/amp') - expect(stderr).not.toContain('/ssr') - expect(stderr).not.toContain('/ssg') + expect(stderr).not.toContain('Error: you provided query values for /amp') + expect(stderr).not.toContain('Error: you provided query values for /ssr') + expect(stderr).not.toContain('Error: you provided query values for /ssg') }) } diff --git a/test/integration/export-getInitialProps-warn/next.config.js b/test/integration/export-getInitialProps-warn/next.config.js new file mode 100644 index 000000000000..6668eb30fad7 --- /dev/null +++ b/test/integration/export-getInitialProps-warn/next.config.js @@ -0,0 +1,10 @@ +module.exports = { + exportPathMap: async function ( + defaultPathMap, + { dev, dir, outDir, distDir, buildId } + ) { + return { + '/': { page: '/' }, + } + }, +} diff --git a/test/integration/export-getInitialProps-warn/pages/index.js b/test/integration/export-getInitialProps-warn/pages/index.js new file mode 100644 index 000000000000..71272d109217 --- /dev/null +++ b/test/integration/export-getInitialProps-warn/pages/index.js @@ -0,0 +1,5 @@ +const Page = ({ name }) =>
{`Hello, ${name}`}
+ +Page.getInitialProps = () => ({ name: 'world' }) + +export default Page diff --git a/test/integration/export-getInitialProps-warn/test/index.test.js b/test/integration/export-getInitialProps-warn/test/index.test.js new file mode 100644 index 000000000000..6738da658a03 --- /dev/null +++ b/test/integration/export-getInitialProps-warn/test/index.test.js @@ -0,0 +1,17 @@ +/* eslint-env jest */ + +import { join } from 'path' +import { nextBuild, nextExport } from 'next-test-utils' + +const appDir = join(__dirname, '../') +const outdir = join(appDir, 'out') + +describe('Export with getInitialProps', () => { + it('should show warning with next export', async () => { + await nextBuild(appDir) + const { stderr } = await nextExport(appDir, { outdir }, { stderr: true }) + expect(stderr).toContain( + 'https://nextjs.org/docs/messages/get-initial-props-export' + ) + }) +}) From 31c8b97a4522af650ddc84e4512d579ed631d7e7 Mon Sep 17 00:00:00 2001 From: Adam Sobotka Date: Mon, 13 Jun 2022 04:57:56 +0200 Subject: [PATCH 020/149] Update with-faunadb dependencies (#37650) This is just a bump of tech stack used in the example and small rewrite of swr functionality. ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ x ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- examples/with-fauna/package.json | 22 +++---- examples/with-fauna/pages/index.js | 87 +++++++++++++------------- examples/with-fauna/tailwind.config.js | 11 ++-- 3 files changed, 57 insertions(+), 63 deletions(-) diff --git a/examples/with-fauna/package.json b/examples/with-fauna/package.json index ebc9afc85ade..03355c74ddb1 100644 --- a/examples/with-fauna/package.json +++ b/examples/with-fauna/package.json @@ -8,21 +8,19 @@ }, "dependencies": { "classnames": "2.3.1", - "date-fns": "2.23.0", - "faunadb": "4.3.0", - "graphql": "15.5.1", - "graphql-request": "3.5.0", + "date-fns": "2.28.0", + "faunadb": "4.5.4", + "graphql": "16.5.0", + "graphql-request": "4.3.0", "next": "latest", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "request": "2.88.2", - "swr": "0.5.6" + "react": "18.1.0", + "react-dom": "18.1.0", + "swr": "1.3.0" }, "devDependencies": { - "autoprefixer": "10.3.1", - "postcss": "8.3.6", - "prettier": "2.3.2", + "autoprefixer": "^10.4.7", + "postcss": "^8.4.14", "stream-to-promise": "3.0.0", - "tailwindcss": "2.2.7" + "tailwindcss": "^3.1.2" } } diff --git a/examples/with-fauna/pages/index.js b/examples/with-fauna/pages/index.js index 702a50189671..a14e450fe47e 100644 --- a/examples/with-fauna/pages/index.js +++ b/examples/with-fauna/pages/index.js @@ -2,17 +2,17 @@ import Head from 'next/head' import { useState } from 'react' import cn from 'classnames' import formatDate from 'date-fns/format' -import useSWR, { mutate } from 'swr' +import useSWR, { mutate, SWRConfig } from 'swr' import 'tailwindcss/tailwind.css' import { listGuestbookEntries } from '@/lib/fauna' import SuccessMessage from '@/components/SuccessMessage' import ErrorMessage from '@/components/ErrorMessage' import LoadingSpinner from '@/components/LoadingSpinner' -const ENTRIES_PATH = '/api/entries' +const fetcher = (url) => fetch(url).then((res) => res.json()) const putEntry = (payload) => - fetch(ENTRIES_PATH, { + fetch('/api/entries', { method: 'POST', body: JSON.stringify(payload), headers: { @@ -20,14 +20,13 @@ const putEntry = (payload) => }, }).then((res) => (res.ok ? res.json() : Promise.reject(res))) -const useEntriesFlow = ({ initialEntries }) => { - const { data: entries } = useSWR(ENTRIES_PATH, { - initialData: initialEntries, +const useEntriesFlow = ({ fallback }) => { + const { data: entries } = useSWR('/api/entries', fetcher, { + fallbackData: fallback.entries, }) - const onSubmit = async (payload) => { await putEntry(payload) - await mutate(ENTRIES_PATH) + await mutate('/api/entries') } return { @@ -38,8 +37,8 @@ const useEntriesFlow = ({ initialEntries }) => { const AppHead = () => ( - + ) @@ -137,48 +136,46 @@ const EntryForm = ({ onSubmit: onSubmitProp }) => { ) } -const Guestbook = ({ initialEntries }) => { - const { entries, onSubmit } = useEntriesFlow({ - initialEntries, - }) - +const Guestbook = ({ fallback }) => { + const { entries, onSubmit } = useEntriesFlow({ fallback }) return ( -
- -
-
+
+ +
- Sign the Guestbook -
-

- Share a message for a future visitor. -

- -
-
- {entries?.map((entry) => ( - - ))} -
-
+
+ Sign the Guestbook +
+

+ Share a message for a future visitor. +

+ + +
+ {entries?.map((entry) => ( + + ))} +
+ + ) } -export const getStaticProps = async () => ({ - props: { - initialEntries: await listGuestbookEntries(), - }, - revalidate: 1, -}) +export async function getStaticProps() { + const entries = await listGuestbookEntries() + return { + props: { + fallback: { + entries, + }, + }, + } +} export default Guestbook diff --git a/examples/with-fauna/tailwind.config.js b/examples/with-fauna/tailwind.config.js index 211048ff7755..6aa9dd319121 100644 --- a/examples/with-fauna/tailwind.config.js +++ b/examples/with-fauna/tailwind.config.js @@ -1,12 +1,11 @@ +/** @type {import('tailwindcss').Config} */ module.exports = { - mode: 'jit', - purge: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'], - darkMode: false, // or 'media' or 'class' + content: [ + './pages/**/*.{js,ts,jsx,tsx}', + './components/**/*.{js,ts,jsx,tsx}', + ], theme: { extend: {}, }, - variants: { - extend: {}, - }, plugins: [], } From 2eb48e7837205e8b5866babcc4e9c9951effd0b3 Mon Sep 17 00:00:00 2001 From: Houssein Djirdeh Date: Sun, 12 Jun 2022 23:04:15 -0400 Subject: [PATCH 021/149] [Script] Updates stale `no-script-in-document-page` error doc (#37568) [Recent changes](https://github.com/vercel/next.js/pull/31936) to `next/script` introduced the capability to use `beforeInteractive` scripts in the custom document. This old error message is incorrect. --- errors/no-script-in-document-page.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/errors/no-script-in-document-page.md b/errors/no-script-in-document-page.md index 201d01d32e24..2986bfeebb09 100644 --- a/errors/no-script-in-document-page.md +++ b/errors/no-script-in-document-page.md @@ -1,8 +1,10 @@ # Script component inside \_document.js +> ⚠️ This error is not relevant in versions 12.1.6 or later. Please refer to the updated [error message](https://nextjs.org/docs/messages/no-before-interactive-script-outside-document). + #### Why This Error Occurred -You can't use the `next/script` component inside the `_document.js` page. That's because the `_document.js` page only runs on the server and `next/script` has client-side functionality to ensure loading order. +You can't use the `next/script` component inside the `_document.js` page in versions prior to v12.1.6. That's because the `_document.js` page only runs on the server and `next/script` has client-side functionality to ensure loading order. #### Possible Ways to Fix It From 89b961e19118dafbe1e219175d8139af1f79cf22 Mon Sep 17 00:00:00 2001 From: Adam Sobotka Date: Mon, 13 Jun 2022 13:00:50 +0200 Subject: [PATCH 022/149] Request library required by setup (#37658) In my last PR I removed the request library as it is obsolete and the application does not use it. The database setup utility does though, so I am reverting this change. Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- examples/with-fauna/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/with-fauna/package.json b/examples/with-fauna/package.json index 03355c74ddb1..fa5e3b885768 100644 --- a/examples/with-fauna/package.json +++ b/examples/with-fauna/package.json @@ -21,6 +21,7 @@ "autoprefixer": "^10.4.7", "postcss": "^8.4.14", "stream-to-promise": "3.0.0", - "tailwindcss": "^3.1.2" + "tailwindcss": "^3.1.2", + "request": "^2.88.2" } } From 6f698405dda99ef791bf3b8ac86020b7997a9e77 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 13 Jun 2022 08:34:08 -0500 Subject: [PATCH 023/149] Update matched path params priority (#37646) This ensures we use the correct dynamic route params favoring params from the URL/matched-path over route-matches. This also ensures we properly cache `_next/data` requests client side when the page is not a `getServerSideProps` page. x-ref: https://github.com/vercel/next.js/pull/37574 ## Bug - [ ] Related issues linked using `fixes #number` - [x] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) --- .../loaders/next-serverless-loader/utils.ts | 5 +- packages/next/lib/download-wasm-swc.ts | 8 +- packages/next/server/base-server.ts | 46 +++++++- packages/next/shared/lib/router/router.ts | 106 ++++++++++-------- .../middleware-rewrites/test/index.test.ts | 25 +++++ .../middleware-prefetch/tests/index.test.js | 6 +- .../test/index.test.js | 2 +- .../required-server-files-i18n.test.ts | 4 +- test/production/required-server-files.test.ts | 57 +++++++++- 9 files changed, 199 insertions(+), 60 deletions(-) diff --git a/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts b/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts index f49141a117ee..2703a90e9d22 100644 --- a/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts +++ b/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts @@ -351,6 +351,7 @@ export function getUtils({ // on the parsed params, this is used to signal if we need // to parse x-now-route-matches or not const defaultValue = defaultRouteMatches![key] + const isOptional = defaultRouteRegex!.groups[key].optional const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal) => { @@ -360,14 +361,14 @@ export function getUtils({ }) : value?.includes(defaultValue as string) - if (isDefaultValue || typeof value === 'undefined') { + if (isDefaultValue || (typeof value === 'undefined' && !isOptional)) { hasValidParams = false } // non-provided optional values should be undefined so normalize // them to undefined if ( - defaultRouteRegex!.groups[key].optional && + isOptional && (!value || (Array.isArray(value) && value.length === 1 && diff --git a/packages/next/lib/download-wasm-swc.ts b/packages/next/lib/download-wasm-swc.ts index 926ed912ff0e..1cacf10d5f97 100644 --- a/packages/next/lib/download-wasm-swc.ts +++ b/packages/next/lib/download-wasm-swc.ts @@ -107,9 +107,13 @@ export async function downloadWasmSwc( const cacheFiles = await fs.promises.readdir(cacheDirectory) if (cacheFiles.length > MAX_VERSIONS_TO_CACHE) { - cacheFiles.sort() + cacheFiles.sort((a, b) => { + if (a.length < b.length) return -1 + return a.localeCompare(b) + }) - for (let i = MAX_VERSIONS_TO_CACHE - 1; i++; i < cacheFiles.length) { + // prune oldest versions in cache + for (let i = 0; i++; i < cacheFiles.length - MAX_VERSIONS_TO_CACHE) { await fs.promises .unlink(path.join(cacheDirectory, cacheFiles[i])) .catch(() => {}) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index fd6989fb9956..373f7b95bfec 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -457,6 +457,7 @@ export default abstract class Server { if (urlPathname.startsWith(`/_next/data/`)) { parsedUrl.query.__nextDataReq = '1' } + const normalizedUrlPath = this.stripNextDataPath(urlPathname) matchedPath = this.stripNextDataPath(matchedPath, false) if (this.nextConfig.i18n) { @@ -512,15 +513,46 @@ export default abstract class Server { if (pageIsDynamic) { let params: ParsedUrlQuery | false = {} - const paramsResult = utils.normalizeDynamicRouteParams( + let paramsResult = utils.normalizeDynamicRouteParams( parsedUrl.query ) + if ( + !isDynamicRoute(normalizedUrlPath) || + !isDynamicRoute(matchedPath) + ) { + // we favor matching against req.url although if there's a + // rewrite and it's SSR we use the x-matched-path instead + let matcherRes = utils.dynamicRouteMatcher?.(normalizedUrlPath) + + if (!matcherRes) { + matcherRes = utils.dynamicRouteMatcher?.(matchedPath) + } + const parsedResult = utils.normalizeDynamicRouteParams( + matcherRes || {} + ) + + if (parsedResult.hasValidParams) { + if (paramsResult.hasValidParams) { + Object.assign(paramsResult.params, parsedResult.params) + } else { + paramsResult = parsedResult + } + } + } + if (paramsResult.hasValidParams) { params = paramsResult.params - } else if (req.headers['x-now-route-matches']) { + } + + if ( + req.headers['x-now-route-matches'] && + (!paramsResult.hasValidParams || + (isDynamicRoute(matchedPath) && + isDynamicRoute(normalizedUrlPath))) + ) { const opts: Record = {} - params = utils.getParamsFromRouteMatches( + const routeParams = utils.getParamsFromRouteMatches( req, opts, parsedUrl.query.__nextLocale || '' @@ -529,15 +561,17 @@ export default abstract class Server { if (opts.locale) { parsedUrl.query.__nextLocale = opts.locale } - } else { - params = utils.dynamicRouteMatcher!(matchedPath) || {} + paramsResult = utils.normalizeDynamicRouteParams(routeParams) + + if (paramsResult.hasValidParams) { + params = paramsResult.params + } } if (params) { if (!paramsResult.hasValidParams) { params = utils.normalizeDynamicRouteParams(params).params } - matchedPath = utils.interpolateDynamicPath(srcPathname, params) req.url = utils.interpolateDynamicPath(req.url!, params) } diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 5a1cd6a7e511..bb30ee9bb3c5 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -456,6 +456,17 @@ interface FetchDataOutput { text: string } +interface FetchNextDataParams { + dataHref: string + isServerRender: boolean + parseJSON: boolean | undefined + hasMiddleware?: boolean + inflightCache: NextDataCache + persistCache: boolean + isPrefetch: boolean + isBackground?: boolean +} + function fetchNextData({ dataHref, inflightCache, @@ -464,15 +475,8 @@ function fetchNextData({ isServerRender, parseJSON, persistCache, -}: { - dataHref: string - isServerRender: boolean - parseJSON: boolean | undefined - hasMiddleware?: boolean - inflightCache: NextDataCache - persistCache: boolean - isPrefetch: boolean -}): Promise { + isBackground, +}: FetchNextDataParams): Promise { const { href: cacheKey } = new URL(dataHref, window.location.href) const getData = (params?: { method?: 'HEAD' | 'GET' }) => fetchRetry(dataHref, isServerRender ? 3 : 1, { @@ -560,18 +564,11 @@ function fetchNextData({ }) if (inflightCache[cacheKey] !== undefined) { - // we kick off a HEAD request in the background - // when a non-prefetch request is made to signal revalidation - if (!isPrefetch && persistCache && !backgroundCache[cacheKey]) { - backgroundCache[cacheKey] = getData({ method: 'HEAD' }) - .catch(() => {}) - .then(() => { - delete backgroundCache[cacheKey] - }) - } return inflightCache[cacheKey] } - return (inflightCache[cacheKey] = getData()) + return (inflightCache[cacheKey] = getData( + isBackground ? { method: 'HEAD' } : {} + )) } function tryToParseAsJSON(text: string) { @@ -1573,22 +1570,23 @@ export default class Router implements BaseRouter { ? existingInfo : undefined + const fetchNextDataParams: FetchNextDataParams = { + dataHref: this.pageLoader.getDataHref({ + href: formatWithValidation({ pathname, query }), + skipInterpolation: true, + asPath: resolvedAs, + locale, + }), + hasMiddleware: true, + isServerRender: this.isSsr, + parseJSON: true, + inflightCache: this.sdc, + persistCache: !isPreview, + isPrefetch: false, + } + const data = await withMiddlewareEffects({ - fetchData: () => - fetchNextData({ - dataHref: this.pageLoader.getDataHref({ - href: formatWithValidation({ pathname, query }), - skipInterpolation: true, - asPath: resolvedAs, - locale, - }), - hasMiddleware: true, - isServerRender: this.isSsr, - parseJSON: true, - inflightCache: this.sdc, - persistCache: !isPreview, - isPrefetch: false, - }), + fetchData: () => fetchNextData(fetchNextDataParams), asPath: resolvedAs, locale: locale, router: this, @@ -1633,13 +1631,6 @@ export default class Router implements BaseRouter { }) )) - // TODO: we only bust the data cache for SSP routes - // although middleware can skip cache per request with - // x-middleware-cache: no-cache - if (routeInfo.__N_SSP && data?.dataHref) { - delete this.sdc[data?.dataHref] - } - if (process.env.NODE_ENV !== 'production') { const { isValidElementType } = require('next/dist/compiled/react-is') if (!isValidElementType(routeInfo.Component)) { @@ -1674,7 +1665,7 @@ export default class Router implements BaseRouter { isServerRender: this.isSsr, parseJSON: true, inflightCache: this.sdc, - persistCache: !!routeInfo.__N_SSG && !isPreview, + persistCache: !isPreview, isPrefetch: false, })) @@ -1700,6 +1691,33 @@ export default class Router implements BaseRouter { } }) + // Only bust the data cache for SSP routes although + // middleware can skip cache per request with + // x-middleware-cache: no-cache as well + if (routeInfo.__N_SSP && fetchNextDataParams.dataHref) { + const cacheKey = new URL( + fetchNextDataParams.dataHref, + window.location.href + ).href + delete this.sdc[cacheKey] + } + + // we kick off a HEAD request in the background + // when a non-prefetch request is made to signal revalidation + if ( + !this.isPreview && + routeInfo.__N_SSG && + process.env.NODE_ENV !== 'development' + ) { + fetchNextData( + Object.assign({}, fetchNextDataParams, { + isBackground: true, + persistCache: false, + inflightCache: backgroundCache, + }) + ).catch(() => {}) + } + if (routeInfo.__N_RSC) { props.pageProps = Object.assign(props.pageProps, { __flight__: useStreamedFlightData @@ -1906,8 +1924,8 @@ export default class Router implements BaseRouter { isServerRender: this.isSsr, parseJSON: true, inflightCache: this.sdc, - persistCache: false, - isPrefetch: false, + persistCache: !this.isPreview, + isPrefetch: true, }), asPath: asPath, locale: locale, diff --git a/test/e2e/middleware-rewrites/test/index.test.ts b/test/e2e/middleware-rewrites/test/index.test.ts index e9a793064dd2..917d7ee164f6 100644 --- a/test/e2e/middleware-rewrites/test/index.test.ts +++ b/test/e2e/middleware-rewrites/test/index.test.ts @@ -194,6 +194,31 @@ describe('Middleware Rewrite', () => { expect(await element.text()).toEqual('About Bypassed Page') }) + if (!(global as any).isNextDev) { + it('should cache data requests correctly', async () => { + const browser = await webdriver(next.url, '/') + + await check(async () => { + const hrefs = await browser.eval( + `Object.keys(window.next.router.sdc)` + ) + for (const url of [ + '/en/about.json?override=external', + '/en/about.json?override=internal', + '/en/rewrite-me-external-twice.json', + '/en/rewrite-me-to-about.json?override=internal', + '/en/rewrite-me-to-vercel.json', + '/en/rewrite-to-ab-test.json', + ]) { + if (!hrefs.some((href) => href.includes(url))) { + return JSON.stringify(hrefs, null, 2) + } + } + return 'yes' + }, 'yes') + }) + } + it(`should allow to rewrite keeping the locale in pathname`, async () => { const res = await fetchViaHTTP(next.url, '/fr/country', { country: 'spain', diff --git a/test/integration/middleware-prefetch/tests/index.test.js b/test/integration/middleware-prefetch/tests/index.test.js index c5cf50c0c07e..88eebf09374d 100644 --- a/test/integration/middleware-prefetch/tests/index.test.js +++ b/test/integration/middleware-prefetch/tests/index.test.js @@ -71,7 +71,11 @@ describe('Middleware Production Prefetch', () => { const mapped = hrefs.map((href) => new URL(href).pathname.replace(/^\/_next\/data\/[^/]+/, '') ) - assert.deepEqual(mapped, ['/ssg-page.json']) + assert.deepEqual(mapped, [ + '/made-up.json', + '/ssg-page-2.json', + '/ssg-page.json', + ]) return 'yes' }, 'yes') }) diff --git a/test/integration/required-server-files-ssr-404/test/index.test.js b/test/integration/required-server-files-ssr-404/test/index.test.js index dd24cc93565f..f9a436446860 100644 --- a/test/integration/required-server-files-ssr-404/test/index.test.js +++ b/test/integration/required-server-files-ssr-404/test/index.test.js @@ -533,7 +533,7 @@ describe('Required Server Files', () => { }) it('should match the root dynamic page correctly', async () => { - const res = await fetchViaHTTP(appPort, '/index', undefined, { + const res = await fetchViaHTTP(appPort, '/slug-1', undefined, { headers: { 'x-matched-path': '/[slug]', }, diff --git a/test/production/required-server-files-i18n.test.ts b/test/production/required-server-files-i18n.test.ts index a14001e62b6b..6b9826785a89 100644 --- a/test/production/required-server-files-i18n.test.ts +++ b/test/production/required-server-files-i18n.test.ts @@ -448,7 +448,7 @@ describe('should set-up next', () => { const html3 = await renderViaHTTP( appPort, - '/catch-all/[[..rest]]', + '/catch-all/[[...rest]]', undefined, { headers: { @@ -732,7 +732,7 @@ describe('should set-up next', () => { }) it('should match the root dyanmic page correctly', async () => { - const res = await fetchViaHTTP(appPort, '/index', undefined, { + const res = await fetchViaHTTP(appPort, '/slug-1', undefined, { headers: { 'x-matched-path': '/[slug]', }, diff --git a/test/production/required-server-files.test.ts b/test/production/required-server-files.test.ts index d03c4ac001e5..3e0597133722 100644 --- a/test/production/required-server-files.test.ts +++ b/test/production/required-server-files.test.ts @@ -494,6 +494,59 @@ describe('should set-up next', () => { expect(data2.random).not.toBe(data.random) }) + it('should favor valid route params over routes-matches', async () => { + const html = await renderViaHTTP(appPort, '/fallback/first', undefined, { + headers: { + 'x-matched-path': '/fallback/first', + 'x-now-route-matches': '1=fallback%2ffirst', + }, + }) + const $ = cheerio.load(html) + const data = JSON.parse($('#props').text()) + + expect($('#fallback').text()).toBe('fallback page') + expect($('#slug').text()).toBe('first') + expect(data.hello).toBe('world') + + const html2 = await renderViaHTTP(appPort, `/fallback/second`, undefined, { + headers: { + 'x-matched-path': '/fallback/[slug]', + 'x-now-route-matches': '1=fallback%2fsecond', + }, + }) + const $2 = cheerio.load(html2) + const data2 = JSON.parse($2('#props').text()) + + expect($2('#fallback').text()).toBe('fallback page') + expect($2('#slug').text()).toBe('second') + expect(isNaN(data2.random)).toBe(false) + expect(data2.random).not.toBe(data.random) + }) + + it('should favor valid route params over routes-matches optional', async () => { + const html = await renderViaHTTP(appPort, '/optional-ssg', undefined, { + headers: { + 'x-matched-path': '/optional-ssg', + 'x-now-route-matches': '1=optional-ssg', + }, + }) + const $ = cheerio.load(html) + const data = JSON.parse($('#props').text()) + expect(data.params).toEqual({}) + + const html2 = await renderViaHTTP(appPort, `/optional-ssg`, undefined, { + headers: { + 'x-matched-path': '/optional-ssg', + 'x-now-route-matches': '1=optional-ssg%2fanother', + }, + }) + const $2 = cheerio.load(html2) + const data2 = JSON.parse($2('#props').text()) + + expect(isNaN(data2.random)).toBe(false) + expect(data2.params).toEqual({}) + }) + it('should return data correctly with x-matched-path', async () => { const res = await fetchViaHTTP( appPort, @@ -569,7 +622,7 @@ describe('should set-up next', () => { const html3 = await renderViaHTTP( appPort, - '/catch-all/[[..rest]]', + '/catch-all/[[...rest]]', undefined, { headers: { @@ -966,7 +1019,7 @@ describe('should set-up next', () => { }) it('should match the root dynamic page correctly', async () => { - const res = await fetchViaHTTP(appPort, '/index', undefined, { + const res = await fetchViaHTTP(appPort, '/slug-1', undefined, { headers: { 'x-matched-path': '/[slug]', }, From b33bc2dfb06f4e5fda41ad79e7659f91787b8bb9 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 13 Jun 2022 09:54:59 -0500 Subject: [PATCH 024/149] Update flakey next-script tests (#37663) --- test/e2e/next-script/index.test.ts | 39 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/test/e2e/next-script/index.test.ts b/test/e2e/next-script/index.test.ts index 6e37026d104e..099be304dabb 100644 --- a/test/e2e/next-script/index.test.ts +++ b/test/e2e/next-script/index.test.ts @@ -2,7 +2,7 @@ import webdriver from 'next-webdriver' import { createNext } from 'e2e-utils' import { NextInstance } from 'test/lib/next-modes/base' import { BrowserInterface } from 'test/lib/browsers/base' -import { waitFor } from 'next-test-utils' +import { check } from 'next-test-utils' describe('beforeInteractive', () => { let next: NextInstance @@ -188,14 +188,13 @@ describe('experimental.nextScriptWorkers: true with required Partytown dependenc expect(predefinedWorkerScripts).toBeGreaterThan(0) - await waitFor(1000) - // Partytown modifes type to "text/partytown-x" after it has been executed in the web worker - const processedWorkerScripts = await browser.eval( - `document.querySelectorAll('script[type="text/partytown-x"]').length` - ) - - expect(processedWorkerScripts).toBeGreaterThan(0) + await check(async () => { + const processedWorkerScripts = await browser.eval( + `document.querySelectorAll('script[type="text/partytown-x"]').length` + ) + return processedWorkerScripts > 0 ? 'success' : processedWorkerScripts + }, 'success') } finally { if (browser) await browser.close() } @@ -249,13 +248,13 @@ describe('experimental.nextScriptWorkers: true with required Partytown dependenc ) expect(predefinedWorkerScripts).toEqual(1) - await waitFor(1000) - // Partytown modifes type to "text/partytown-x" after it has been executed in the web worker - const processedWorkerScripts = await browser.eval( - `document.querySelectorAll('script[type="text/partytown-x"]').length` - ) - expect(processedWorkerScripts).toEqual(1) + await check(async () => { + const processedWorkerScripts = await browser.eval( + `document.querySelectorAll('script[type="text/partytown-x"]').length` + ) + return processedWorkerScripts + '' + }, '1') const text = await browser.elementById('text').text() expect(text).toBe('abc') @@ -281,13 +280,13 @@ describe('experimental.nextScriptWorkers: true with required Partytown dependenc ) expect(predefinedWorkerScripts).toEqual(1) - await waitFor(1000) - // Partytown modifes type to "text/partytown-x" after it has been executed in the web worker - const processedWorkerScripts = await browser.eval( - `document.querySelectorAll('script[type="text/partytown-x"]').length` - ) - expect(processedWorkerScripts).toEqual(1) + await check(async () => { + const processedWorkerScripts = await browser.eval( + `document.querySelectorAll('script[type="text/partytown-x"]').length` + ) + return processedWorkerScripts + '' + }, '1') const text = await browser.elementById('text').text() expect(text).toBe('abcd') From 748cc51c346eb8752dda7bb74e84a2597faf24c9 Mon Sep 17 00:00:00 2001 From: Thuy Doan Date: Mon, 13 Jun 2022 11:06:07 -0400 Subject: [PATCH 025/149] Update with-mux-video to use latest upchunk and replace video player with mux-player-react (#37621) * Update upchunk to latest (2.3.1). * Add mux-player package to package.json * WIP: Make VideoPlayer return mux-player * Remove unused code from prev video player * Use mux-player-react directly * Fix import line for mux-player-react * chore: fix lint issues --- .../with-mux-video/components/video-player.js | 49 ------------------- examples/with-mux-video/package.json | 4 +- examples/with-mux-video/pages/v/[id].js | 9 ++-- 3 files changed, 6 insertions(+), 56 deletions(-) delete mode 100644 examples/with-mux-video/components/video-player.js diff --git a/examples/with-mux-video/components/video-player.js b/examples/with-mux-video/components/video-player.js deleted file mode 100644 index 63d5213df05d..000000000000 --- a/examples/with-mux-video/components/video-player.js +++ /dev/null @@ -1,49 +0,0 @@ -import { useEffect, useRef } from 'react' -import Hls from 'hls.js' - -export default function VideoPlayer({ src, poster }) { - const videoRef = useRef(null) - - useEffect(() => { - const video = videoRef.current - if (!video) return - - video.controls = true - let hls - - if (video.canPlayType('application/vnd.apple.mpegurl')) { - // This will run in safari, where HLS is supported natively - video.src = src - } else if (Hls.isSupported()) { - // This will run in all other modern browsers - hls = new Hls() - hls.loadSource(src) - hls.attachMedia(video) - } else { - console.error( - 'This is an old browser that does not support MSE https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API' - ) - } - - return () => { - if (hls) { - hls.destroy() - } - } - }, [src, videoRef]) - - return ( - <> -

Go{' '} From e0631d0ef115db42caf16b0e5c7b16052f85df15 Mon Sep 17 00:00:00 2001 From: Splatterxl Date: Mon, 13 Jun 2022 16:17:36 +0100 Subject: [PATCH 026/149] Fix links in google-font-display error (#37661) --- errors/google-font-display.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/errors/google-font-display.md b/errors/google-font-display.md index 61328e897628..39d7b597389c 100644 --- a/errors/google-font-display.md +++ b/errors/google-font-display.md @@ -33,4 +33,5 @@ If you want to specifically display a font using a `block` or `fallback` strateg ### Useful Links -- [Font-display](https://font-display.glitch.me/) +- [Google Fonts API Docs](https://developers.google.com/fonts/docs/css2#use_font-display) +- [CSS `font-display` property](https://www.w3.org/TR/css-fonts-4/#font-display-desc) From 07420998c1bcdf3f082a876808f48fbcbf8c4f15 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 13 Jun 2022 10:32:27 -0500 Subject: [PATCH 027/149] v12.1.7-canary.36 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 +-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +++++----- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 28 ++++++++++---------- 16 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lerna.json b/lerna.json index a0373e9705dc..c83dade89504 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.35" + "version": "12.1.7-canary.36" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index 4e423d837b38..e4e83a2b9ed5 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 3e8494c3cfbd..6739b866fbda 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.35", + "@next/eslint-plugin-next": "12.1.7-canary.36", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index a5c96e2d6fe0..86768ea88115 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index 921c0c455097..46daa83f87fc 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index 53d54ac1fbda..3264c307d7c7 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index 85fc4b0f78a2..352daef15c94 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index e7cfb8caea28..a7e990175a39 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 5f574a0703a3..b3cb153f9521 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index 84e5bd5d97f2..70ae89da8eb5 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index f990e7c209c7..fd820d43125e 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index fdcad016c0dd..8c003b9324e4 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index ec2a4d7e6555..5a84631c5877 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.35", + "@next/env": "12.1.7-canary.36", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.35", - "@next/polyfill-nomodule": "12.1.7-canary.35", - "@next/react-dev-overlay": "12.1.7-canary.35", - "@next/react-refresh-utils": "12.1.7-canary.35", - "@next/swc": "12.1.7-canary.35", + "@next/polyfill-module": "12.1.7-canary.36", + "@next/polyfill-nomodule": "12.1.7-canary.36", + "@next/react-dev-overlay": "12.1.7-canary.36", + "@next/react-refresh-utils": "12.1.7-canary.36", + "@next/swc": "12.1.7-canary.36", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 4bbcdbfc37b8..b072e7405f5e 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 758a7f92aea1..386a72ddb524 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.35", + "version": "12.1.7-canary.36", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fcb45fe063a4..6debf5cd59f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.35 + '@next/eslint-plugin-next': 12.1.7-canary.36 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.35 - '@next/polyfill-module': 12.1.7-canary.35 - '@next/polyfill-nomodule': 12.1.7-canary.35 - '@next/react-dev-overlay': 12.1.7-canary.35 - '@next/react-refresh-utils': 12.1.7-canary.35 - '@next/swc': 12.1.7-canary.35 + '@next/env': 12.1.7-canary.36 + '@next/polyfill-module': 12.1.7-canary.36 + '@next/polyfill-nomodule': 12.1.7-canary.36 + '@next/react-dev-overlay': 12.1.7-canary.36 + '@next/react-refresh-utils': 12.1.7-canary.36 + '@next/swc': 12.1.7-canary.36 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 @@ -21230,7 +21230,7 @@ packages: dev: true /typedarray/0.0.6: - resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true /typescript/4.6.3: @@ -21585,7 +21585,7 @@ packages: dev: true /unset-value/1.0.0: - resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=} + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} requiresBuild: true dependencies: @@ -21665,7 +21665,7 @@ packages: punycode: 2.1.1 /urix/0.1.0: - resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=} + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated requiresBuild: true @@ -21693,7 +21693,7 @@ packages: dev: true /url/0.11.0: - resolution: {integrity: sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=} + resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} dependencies: punycode: 1.3.2 querystring: 0.2.0 @@ -21711,7 +21711,7 @@ packages: requiresBuild: true /util-deprecate/1.0.2: - resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true /util-promisify/2.1.0: @@ -21728,7 +21728,7 @@ packages: dev: true /util/0.10.3: - resolution: {integrity: sha1-evsa/lCAUkZInj23/g7TeTNqwPk=} + resolution: {integrity: sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==} dependencies: inherits: 2.0.1 dev: true @@ -22262,7 +22262,7 @@ packages: dev: true /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} /write-file-atomic/2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} From b62bb97b6fad58d340eac997995f3370dfbc2008 Mon Sep 17 00:00:00 2001 From: Gal Schlezinger Date: Mon, 13 Jun 2022 21:17:44 +0300 Subject: [PATCH 028/149] Re-introduce Edge API Endpoints (#37481) * Re-introduce Edge API Endpoints This reverts commit 210fa39961033842303495e86bf1658dcca01b24, and re-introduces Edge API endpoints as a possible runtime selection in API endpoints. This is done by exporting a `config` object: ```ts export config = { runtime: 'edge' } ``` Note: `'edge'` will probably change into `'experimental-edge'` to show that this is experimental and the API might change in the future. * Support `experimental-edge`, but allow `edge` too Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../build/analysis/get-page-static-info.ts | 27 +++- packages/next/build/entries.ts | 13 +- packages/next/build/index.ts | 6 +- packages/next/build/webpack-config.ts | 1 + .../webpack/loaders/get-module-build-info.ts | 1 + .../loaders/next-edge-function-loader.ts | 43 +++++++ .../webpack/plugins/middleware-plugin.ts | 40 ++++-- packages/next/server/body-streams.ts | 2 +- packages/next/server/dev/next-dev-server.ts | 4 +- packages/next/server/next-server.ts | 119 ++++++++++++++++-- .../switchable-runtime/pages/api/hello.js | 7 ++ .../switchable-runtime/pages/api/node.js | 3 + .../test/switchable-runtime.test.js | 65 +++++++++- 13 files changed, 291 insertions(+), 40 deletions(-) create mode 100644 packages/next/build/webpack/loaders/next-edge-function-loader.ts create mode 100644 test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/hello.js create mode 100644 test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/node.js diff --git a/packages/next/build/analysis/get-page-static-info.ts b/packages/next/build/analysis/get-page-static-info.ts index 8d62b8f894a2..8d995ab4a011 100644 --- a/packages/next/build/analysis/get-page-static-info.ts +++ b/packages/next/build/analysis/get-page-static-info.ts @@ -5,6 +5,7 @@ import { parseModule } from './parse-module' import { promises as fs } from 'fs' import { tryToParsePath } from '../../lib/try-to-parse-path' import { isMiddlewareFile } from '../utils' +import * as Log from '../output/log' interface MiddlewareConfig { pathMatcher: RegExp @@ -38,12 +39,16 @@ export async function getPageStaticInfo(params: { const { ssg, ssr } = checkExports(swcAST) const config = tryToExtractExportedConstValue(swcAST, 'config') || {} - const runtime = - config?.runtime === 'edge' - ? 'edge' - : ssr || ssg - ? config?.runtime || nextConfig.experimental?.runtime - : undefined + let runtime = ['experimental-edge', 'edge'].includes(config?.runtime) + ? 'edge' + : ssr || ssg + ? config?.runtime || nextConfig.experimental?.runtime + : undefined + + if (runtime === 'experimental-edge' || runtime === 'edge') { + warnAboutExperimentalEdgeApiFunctions() + runtime = 'edge' + } const middlewareConfig = isMiddlewareFile(params.page!) && getMiddlewareConfig(config) @@ -174,3 +179,13 @@ function getMiddlewareRegExpStrings(matcherOrMatchers: unknown): string[] { return regexes } } + +function warnAboutExperimentalEdgeApiFunctions() { + if (warnedAboutExperimentalEdgeApiFunctions) { + return + } + Log.warn(`You are using an experimental edge runtime, the API might change.`) + warnedAboutExperimentalEdgeApiFunctions = true +} + +let warnedAboutExperimentalEdgeApiFunctions = false diff --git a/packages/next/build/entries.ts b/packages/next/build/entries.ts index 0b643d95e338..81cc4d0a6620 100644 --- a/packages/next/build/entries.ts +++ b/packages/next/build/entries.ts @@ -170,6 +170,15 @@ export function getEdgeServerEntry(opts: { return `next-middleware-loader?${stringify(loaderParams)}!` } + if (opts.page.startsWith('/api/')) { + const loaderParams: MiddlewareLoaderOptions = { + absolutePagePath: opts.absolutePagePath, + page: opts.page, + } + + return `next-edge-function-loader?${stringify(loaderParams)}!` + } + const loaderParams: MiddlewareSSRLoaderQuery = { absolute500Path: opts.pages['/500'] || '', absoluteAppPath: opts.pages['/_app'], @@ -421,7 +430,9 @@ export function runDependingOnPageType(params: { if (isMiddlewareFile(params.page)) { return [params.onEdgeServer()] } else if (params.page.match(API_ROUTE)) { - return [params.onServer()] + return params.pageRuntime === 'edge' + ? [params.onEdgeServer()] + : [params.onServer()] } else if (params.page === '/_document') { return [params.onServer()] } else if ( diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index ee606e269993..d6ec595d63fd 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -93,7 +93,6 @@ import { getUnresolvedModuleFromError, copyTracedFiles, isReservedPage, - isCustomErrorPage, isServerComponentPage, isMiddlewareFile, } from './utils' @@ -1256,10 +1255,7 @@ export default async function build( isHybridAmp, ssgPageRoutes, initialRevalidateSeconds: false, - runtime: - !isReservedPage(page) && !isCustomErrorPage(page) - ? pageRuntime - : undefined, + runtime: pageRuntime, pageDuration: undefined, ssgPageDurations: undefined, }) diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index 573f3ae6a7cc..b7bd8c1365ef 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -1230,6 +1230,7 @@ export default async function getBaseWebpackConfig( 'next-flight-client-entry-loader', 'noop-loader', 'next-middleware-loader', + 'next-edge-function-loader', 'next-middleware-ssr-loader', 'next-middleware-wasm-loader', 'next-app-loader', diff --git a/packages/next/build/webpack/loaders/get-module-build-info.ts b/packages/next/build/webpack/loaders/get-module-build-info.ts index 453d3bf27542..5323d31afc6a 100644 --- a/packages/next/build/webpack/loaders/get-module-build-info.ts +++ b/packages/next/build/webpack/loaders/get-module-build-info.ts @@ -7,6 +7,7 @@ import { webpack5 } from 'next/dist/compiled/webpack/webpack' export function getModuleBuildInfo(webpackModule: webpack5.Module) { return webpackModule.buildInfo as { nextEdgeMiddleware?: EdgeMiddlewareMeta + nextEdgeApiFunction?: EdgeMiddlewareMeta nextEdgeSSR?: EdgeSSRMeta nextUsedEnvVars?: Set nextWasmMiddlewareBinding?: WasmBinding diff --git a/packages/next/build/webpack/loaders/next-edge-function-loader.ts b/packages/next/build/webpack/loaders/next-edge-function-loader.ts new file mode 100644 index 000000000000..e66d06f270da --- /dev/null +++ b/packages/next/build/webpack/loaders/next-edge-function-loader.ts @@ -0,0 +1,43 @@ +import { getModuleBuildInfo } from './get-module-build-info' +import { stringifyRequest } from '../stringify-request' + +export type EdgeFunctionLoaderOptions = { + absolutePagePath: string + page: string +} + +export default function middlewareLoader(this: any) { + const { absolutePagePath, page }: EdgeFunctionLoaderOptions = + this.getOptions() + const stringifiedPagePath = stringifyRequest(this, absolutePagePath) + const buildInfo = getModuleBuildInfo(this._module) + buildInfo.nextEdgeApiFunction = { + page: page || '/', + } + + return ` + import { adapter } from 'next/dist/server/web/adapter' + + // The condition is true when the "process" module is provided + if (process !== global.process) { + // prefer local process but global.process has correct "env" + process.env = global.process.env; + global.process = process; + } + + var mod = require(${stringifiedPagePath}) + var handler = mod.middleware || mod.default; + + if (typeof handler !== 'function') { + throw new Error('The Edge Function "pages${page}" must export a \`default\` function'); + } + + export default function (opts) { + return adapter({ + ...opts, + page: ${JSON.stringify(page)}, + handler, + }) + } + ` +} diff --git a/packages/next/build/webpack/plugins/middleware-plugin.ts b/packages/next/build/webpack/plugins/middleware-plugin.ts index 48c4991105e1..882d7f12effd 100644 --- a/packages/next/build/webpack/plugins/middleware-plugin.ts +++ b/packages/next/build/webpack/plugins/middleware-plugin.ts @@ -14,24 +14,26 @@ import { NEXT_CLIENT_SSR_ENTRY_SUFFIX, } from '../../../shared/lib/constants' +interface EdgeFunctionDefinition { + env: string[] + files: string[] + name: string + page: string + regexp: string + wasm?: WasmBinding[] +} + export interface MiddlewareManifest { version: 1 sortedMiddleware: string[] clientInfo: [location: string, isSSR: boolean][] - middleware: { - [page: string]: { - env: string[] - files: string[] - name: string - page: string - regexp: string - wasm?: WasmBinding[] - } - } + middleware: { [page: string]: EdgeFunctionDefinition } + functions: { [page: string]: EdgeFunctionDefinition } } interface EntryMetadata { edgeMiddleware?: EdgeMiddlewareMeta + edgeApiFunction?: EdgeMiddlewareMeta edgeSSR?: EdgeSSRMeta env: Set wasmBindings: Set @@ -42,6 +44,7 @@ const middlewareManifest: MiddlewareManifest = { sortedMiddleware: [], clientInfo: [], middleware: {}, + functions: {}, version: 1, } @@ -349,6 +352,8 @@ function getExtractMetadata(params: { entryMetadata.edgeSSR = buildInfo.nextEdgeSSR } else if (buildInfo?.nextEdgeMiddleware) { entryMetadata.edgeMiddleware = buildInfo.nextEdgeMiddleware + } else if (buildInfo?.nextEdgeApiFunction) { + entryMetadata.edgeApiFunction = buildInfo.nextEdgeApiFunction } /** @@ -425,17 +430,20 @@ function getCreateAssets(params: { // There should always be metadata for the entrypoint. const metadata = metadataByEntry.get(entrypoint.name) - const page = metadata?.edgeMiddleware?.page || metadata?.edgeSSR?.page + const page = + metadata?.edgeMiddleware?.page || + metadata?.edgeSSR?.page || + metadata?.edgeApiFunction?.page if (!page) { continue } const { namedRegex } = getNamedMiddlewareRegex(page, { - catchAll: !metadata.edgeSSR, + catchAll: !metadata.edgeSSR && !metadata.edgeApiFunction, }) const regexp = metadata?.edgeMiddleware?.matcherRegexp || namedRegex - middlewareManifest.middleware[page] = { + const edgeFunctionDefinition: EdgeFunctionDefinition = { env: Array.from(metadata.env), files: getEntryFiles(entrypoint.getFiles(), metadata), name: entrypoint.name, @@ -443,6 +451,12 @@ function getCreateAssets(params: { regexp, wasm: Array.from(metadata.wasmBindings), } + + if (metadata.edgeApiFunction /* || metadata.edgeSSR */) { + middlewareManifest.functions[page] = edgeFunctionDefinition + } else { + middlewareManifest.middleware[page] = edgeFunctionDefinition + } } middlewareManifest.sortedMiddleware = getSortedRoutes( diff --git a/packages/next/server/body-streams.ts b/packages/next/server/body-streams.ts index 38b14e54e7d1..19a3c20c004b 100644 --- a/packages/next/server/body-streams.ts +++ b/packages/next/server/body-streams.ts @@ -19,7 +19,7 @@ function requestToBodyStream(request: IncomingMessage): BodyStream { return transform.readable as unknown as ReadableStream } -function bodyStreamToNodeStream(bodyStream: BodyStream): Readable { +export function bodyStreamToNodeStream(bodyStream: BodyStream): Readable { const reader = bodyStream.getReader() return Readable.from( (async function* () { diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index 88565446d4cb..a63596d2dbf1 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -363,7 +363,9 @@ export default class DevServer extends Server { onClient: () => {}, onServer: () => {}, onEdgeServer: () => { - routedMiddleware.push(pageName) + if (!pageName.startsWith('/api/')) { + routedMiddleware.push(pageName) + } ssrMiddleware.add(pageName) }, }) diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index c1458a2dbdc8..57559f86812d 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -80,8 +80,8 @@ import { getCustomRoute } from './server-route-utils' import { urlQueryToSearchParams } from '../shared/lib/router/utils/querystring' import ResponseCache from '../server/response-cache' import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash' -import { clonableBodyForRequest } from './body-streams' import { getNextPathnameInfo } from '../shared/lib/router/utils/get-next-pathname-info' +import { bodyStreamToNodeStream, clonableBodyForRequest } from './body-streams' const shouldUseReactRoot = parseInt(React.version) >= 18 if (shouldUseReactRoot) { @@ -551,6 +551,19 @@ export default class NextNodeServer extends BaseServer { page: string, builtPagePath: string ): Promise { + const handledAsEdgeFunction = await this.runEdgeFunctionApiEndpoint({ + req, + res, + query, + params, + page, + builtPagePath, + }) + + if (handledAsEdgeFunction) { + return true + } + const pageModule = await require(builtPagePath) query = { ...query, ...params } @@ -1042,11 +1055,15 @@ export default class NextNodeServer extends BaseServer { } /** - * Get information for the middleware located in the provided page - * folder. If the middleware info can't be found it will throw + * Get information for the edge function located in the provided page + * folder. If the edge function info can't be found it will throw * an error. */ - protected getMiddlewareInfo(page: string) { + protected getEdgeFunctionInfo(params: { + page: string + /** Whether we should look for a middleware or not */ + middleware: boolean + }) { const manifest: MiddlewareManifest = require(join( this.serverDistDir, MIDDLEWARE_MANIFEST @@ -1055,12 +1072,14 @@ export default class NextNodeServer extends BaseServer { let foundPage: string try { - foundPage = denormalizePagePath(normalizePagePath(page)) + foundPage = denormalizePagePath(normalizePagePath(params.page)) } catch (err) { - throw new PageNotFoundError(page) + throw new PageNotFoundError(params.page) } - let pageInfo = manifest.middleware[foundPage] + let pageInfo = params.middleware + ? manifest.middleware[foundPage] + : manifest.functions[foundPage] if (!pageInfo) { throw new PageNotFoundError(foundPage) } @@ -1086,7 +1105,10 @@ export default class NextNodeServer extends BaseServer { _isSSR?: boolean ): Promise { try { - return this.getMiddlewareInfo(pathname).paths.length > 0 + return ( + this.getEdgeFunctionInfo({ page: pathname, middleware: true }).paths + .length > 0 + ) } catch (_) {} return false @@ -1158,7 +1180,10 @@ export default class NextNodeServer extends BaseServer { } await this.ensureMiddleware(middleware.page, middleware.ssr) - const middlewareInfo = this.getMiddlewareInfo(middleware.page) + const middlewareInfo = this.getEdgeFunctionInfo({ + page: middleware.page, + middleware: true, + }) result = await run({ name: middlewareInfo.name, @@ -1422,6 +1447,82 @@ export default class NextNodeServer extends BaseServer { this.warnIfQueryParametersWereDeleted = () => {} } } + + private async runEdgeFunctionApiEndpoint(params: { + req: NodeNextRequest + res: NodeNextResponse + query: ParsedUrlQuery + params: Params | false + page: string + builtPagePath: string + }): Promise { + let middlewareInfo: ReturnType | undefined + + try { + middlewareInfo = this.getEdgeFunctionInfo({ + page: params.page, + middleware: false, + }) + } catch { + return false + } + + // For middleware to "fetch" we must always provide an absolute URL + const url = getRequestMeta(params.req, '__NEXT_INIT_URL')! + if (!url.startsWith('http')) { + throw new Error( + 'To use middleware you must provide a `hostname` and `port` to the Next.js Server' + ) + } + + const result = await run({ + name: middlewareInfo.name, + paths: middlewareInfo.paths, + env: middlewareInfo.env, + wasm: middlewareInfo.wasm, + request: { + headers: params.req.headers, + method: params.req.method, + nextConfig: { + basePath: this.nextConfig.basePath, + i18n: this.nextConfig.i18n, + trailingSlash: this.nextConfig.trailingSlash, + }, + url, + page: { + name: params.page, + ...(params.params && { params: params.params }), + }, + // TODO(gal): complete body + // body: originalBody?.cloneBodyStream(), + }, + useCache: !this.nextConfig.experimental.runtime, + onWarning: (_warning: Error) => { + // if (params.onWarning) { + // warning.message += ` "./${middlewareInfo.name}"` + // params.onWarning(warning) + // } + }, + }) + + params.res.statusCode = result.response.status + params.res.statusMessage = result.response.statusText + + result.response.headers.forEach((value, key) => { + params.res.appendHeader(key, value) + }) + + if (result.response.body) { + // TODO(gal): not sure that we always need to stream + bodyStreamToNodeStream(result.response.body).pipe( + params.res.originalResponse + ) + } else { + params.res.originalResponse.end() + } + + return true + } } const MiddlewareMatcherCache = new WeakMap< diff --git a/test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/hello.js b/test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/hello.js new file mode 100644 index 000000000000..c8e368a7530a --- /dev/null +++ b/test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/hello.js @@ -0,0 +1,7 @@ +export default (req) => { + return new Response(`Hello from ${req.url}`) +} + +export const config = { + runtime: 'edge', +} diff --git a/test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/node.js b/test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/node.js new file mode 100644 index 000000000000..5587ef8457af --- /dev/null +++ b/test/integration/react-streaming-and-server-components/switchable-runtime/pages/api/node.js @@ -0,0 +1,3 @@ +export default (req, res) => { + res.send('Hello, world') +} diff --git a/test/integration/react-streaming-and-server-components/test/switchable-runtime.test.js b/test/integration/react-streaming-and-server-components/test/switchable-runtime.test.js index 0a6cbade0432..bb5ad381e84d 100644 --- a/test/integration/react-streaming-and-server-components/test/switchable-runtime.test.js +++ b/test/integration/react-streaming-and-server-components/test/switchable-runtime.test.js @@ -12,6 +12,7 @@ import { renderViaHTTP, waitFor, } from 'next-test-utils' +import { readJson } from 'fs-extra' const appDir = join(__dirname, '../switchable-runtime') @@ -174,6 +175,31 @@ describe('Switchable runtime (prod)', () => { }) }) + it('should build /api/hello as an api route with edge runtime', async () => { + const response = await fetchViaHTTP(context.appPort, '/api/hello') + const text = await response.text() + expect(text).toMatch(/Hello from .+\/api\/hello/) + + const manifest = await readJson( + join(context.appDir, '.next/server/middleware-manifest.json') + ) + expect(manifest).toMatchObject({ + functions: { + '/api/hello': { + env: [], + files: [ + 'server/edge-runtime-webpack.js', + 'server/pages/api/hello.js', + ], + name: 'pages/api/hello', + page: '/api/hello', + regexp: '^/api/hello$', + wasm: [], + }, + }, + }) + }) + it('should display correct tree view with page types in terminal', async () => { const stdoutLines = splitLines(context.stdout).filter((line) => /^[┌├└/]/.test(line) @@ -181,6 +207,8 @@ describe('Switchable runtime (prod)', () => { const expectedOutputLines = splitLines(` ┌ /_app ├ ○ /404 + ├ ℇ /api/hello + ├ λ /api/node ├ ℇ /edge ├ ℇ /edge-rsc ├ ○ /node @@ -192,12 +220,16 @@ describe('Switchable runtime (prod)', () => { ├ λ /node-ssr └ ○ /static `) - const isMatched = expectedOutputLines.every((line, index) => { - const matched = stdoutLines[index].startsWith(line) - return matched + + const mappedOutputLines = expectedOutputLines.map((_line, index) => { + /** @type {string} */ + const str = stdoutLines[index] + const beginningOfPath = str.indexOf('/') + const endOfPath = str.indexOf(' ', beginningOfPath) + return str.slice(0, endOfPath) }) - expect(isMatched).toBe(true) + expect(mappedOutputLines).toEqual(expectedOutputLines) }) it('should prefetch data for static pages', async () => { @@ -339,4 +371,29 @@ describe('Switchable runtime (dev)', () => { 'This is a static RSC page.' ) }) + + it('should build /api/hello as an api route with edge runtime', async () => { + const response = await fetchViaHTTP(context.appPort, '/api/hello') + const text = await response.text() + expect(text).toMatch(/Hello from .+\/api\/hello/) + + const manifest = await readJson( + join(context.appDir, '.next/server/middleware-manifest.json') + ) + expect(manifest).toMatchObject({ + functions: { + '/api/hello': { + env: [], + files: [ + 'server/edge-runtime-webpack.js', + 'server/pages/api/hello.js', + ], + name: 'pages/api/hello', + page: '/api/hello', + regexp: '^/api/hello$', + wasm: [], + }, + }, + }) + }) }) From 3b9f180d25e03f19e398b635c0e926f4d72e5c4a Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 13 Jun 2022 15:28:34 -0500 Subject: [PATCH 029/149] Allow passing FileRef directly to createNext (#37664) * Allow passing FileRef directly to createNext * update type --- test/lib/e2e-utils.ts | 8 ++++--- test/lib/next-modes/base.ts | 45 +++++++++++++++++++++++++------------ 2 files changed, 36 insertions(+), 17 deletions(-) diff --git a/test/lib/e2e-utils.ts b/test/lib/e2e-utils.ts index 462d95f32e57..3a8986801836 100644 --- a/test/lib/e2e-utils.ts +++ b/test/lib/e2e-utils.ts @@ -111,9 +111,11 @@ if (typeof afterAll === 'function') { * to prevent relying on modules that shouldn't be */ export async function createNext(opts: { - files: { - [filename: string]: string | FileRef - } + files: + | FileRef + | { + [filename: string]: string | FileRef + } dependencies?: { [name: string]: string } diff --git a/test/lib/next-modes/base.ts b/test/lib/next-modes/base.ts index c29082f126a4..ede007abdc39 100644 --- a/test/lib/next-modes/base.ts +++ b/test/lib/next-modes/base.ts @@ -16,9 +16,11 @@ export type PackageJson = { [key: string]: unknown } export class NextInstance { - protected files: { - [filename: string]: string | FileRef - } + protected files: + | FileRef + | { + [filename: string]: string | FileRef + } protected nextConfig?: NextConfig protected installCommand?: InstallCommand protected buildCommand?: string @@ -47,9 +49,11 @@ export class NextInstance { packageLockPath, env, }: { - files: { - [filename: string]: string | FileRef - } + files: + | FileRef + | { + [filename: string]: string | FileRef + } dependencies?: { [name: string]: string } @@ -148,15 +152,28 @@ export class NextInstance { require('console').log('created next.js install, writing test files') } - for (const filename of Object.keys(this.files)) { - const item = this.files[filename] - const outputfilename = path.join(this.testDir, filename) + if (this.files instanceof FileRef) { + // if a FileRef is passed directly to `files` we copy the + // entire folder to the test directory + const stats = await fs.stat(this.files.fsPath) + + if (!stats.isDirectory()) { + throw new Error( + `FileRef passed to "files" in "createNext" is not a directory ${this.files.fsPath}` + ) + } + await fs.copy(this.files.fsPath, this.testDir) + } else { + for (const filename of Object.keys(this.files)) { + const item = this.files[filename] + const outputFilename = path.join(this.testDir, filename) - if (typeof item === 'string') { - await fs.ensureDir(path.dirname(outputfilename)) - await fs.writeFile(outputfilename, item) - } else { - await fs.copy(item.fsPath, outputfilename) + if (typeof item === 'string') { + await fs.ensureDir(path.dirname(outputFilename)) + await fs.writeFile(outputFilename, item) + } else { + await fs.copy(item.fsPath, outputFilename) + } } } From 668466bc074dc3f0f7bcc61eec67b6c7167cf36d Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 13 Jun 2022 15:46:19 -0500 Subject: [PATCH 030/149] Fix rewrite/dynamic interpolation E2E cases (#37669) --- .../loaders/next-serverless-loader/utils.ts | 10 +++- packages/next/server/base-server.ts | 54 ++++++++++--------- test/production/required-server-files.test.ts | 17 ++++++ 3 files changed, 54 insertions(+), 27 deletions(-) diff --git a/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts b/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts index 2703a90e9d22..dffb65244b40 100644 --- a/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts +++ b/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts @@ -340,7 +340,10 @@ export function getUtils({ } } - function normalizeDynamicRouteParams(params: ParsedUrlQuery) { + function normalizeDynamicRouteParams( + params: ParsedUrlQuery, + ignoreOptional?: boolean + ) { let hasValidParams = true if (!defaultRouteRegex) return { params, hasValidParams: false } @@ -361,7 +364,10 @@ export function getUtils({ }) : value?.includes(defaultValue as string) - if (isDefaultValue || (typeof value === 'undefined' && !isOptional)) { + if ( + isDefaultValue || + (typeof value === 'undefined' && !(isOptional && ignoreOptional)) + ) { hasValidParams = false } diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index 373f7b95bfec..309c4bdcacc1 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -517,27 +517,20 @@ export default abstract class Server { parsedUrl.query ) + // for prerendered ISR paths we attempt parsing the route + // params from the URL directly as route-matches may not + // contain the correct values due to the filesystem path + // matching before the dynamic route has been matched if ( - !isDynamicRoute(normalizedUrlPath) || - !isDynamicRoute(matchedPath) + !paramsResult.hasValidParams && + pageIsDynamic && + !isDynamicRoute(normalizedUrlPath) ) { - // we favor matching against req.url although if there's a - // rewrite and it's SSR we use the x-matched-path instead - let matcherRes = utils.dynamicRouteMatcher?.(normalizedUrlPath) + let matcherParams = utils.dynamicRouteMatcher?.(normalizedUrlPath) - if (!matcherRes) { - matcherRes = utils.dynamicRouteMatcher?.(matchedPath) - } - const parsedResult = utils.normalizeDynamicRouteParams( - matcherRes || {} - ) - - if (parsedResult.hasValidParams) { - if (paramsResult.hasValidParams) { - Object.assign(paramsResult.params, parsedResult.params) - } else { - paramsResult = parsedResult - } + if (matcherParams) { + Object.assign(paramsResult.params, matcherParams) + paramsResult.hasValidParams = true } } @@ -547,9 +540,8 @@ export default abstract class Server { if ( req.headers['x-now-route-matches'] && - (!paramsResult.hasValidParams || - (isDynamicRoute(matchedPath) && - isDynamicRoute(normalizedUrlPath))) + isDynamicRoute(matchedPath) && + !paramsResult.hasValidParams ) { const opts: Record = {} const routeParams = utils.getParamsFromRouteMatches( @@ -561,17 +553,29 @@ export default abstract class Server { if (opts.locale) { parsedUrl.query.__nextLocale = opts.locale } - paramsResult = utils.normalizeDynamicRouteParams(routeParams) + paramsResult = utils.normalizeDynamicRouteParams( + routeParams, + true + ) if (paramsResult.hasValidParams) { params = paramsResult.params } } + // handle the actual dynamic route name being requested + if ( + pageIsDynamic && + utils.defaultRouteMatches && + normalizedUrlPath === srcPathname && + !paramsResult.hasValidParams && + !utils.normalizeDynamicRouteParams({ ...params }, true) + .hasValidParams + ) { + params = utils.defaultRouteMatches + } + if (params) { - if (!paramsResult.hasValidParams) { - params = utils.normalizeDynamicRouteParams(params).params - } matchedPath = utils.interpolateDynamicPath(srcPathname, params) req.url = utils.interpolateDynamicPath(req.url!, params) } diff --git a/test/production/required-server-files.test.ts b/test/production/required-server-files.test.ts index 3e0597133722..a5fae289e7ce 100644 --- a/test/production/required-server-files.test.ts +++ b/test/production/required-server-files.test.ts @@ -1029,6 +1029,23 @@ describe('should set-up next', () => { const html = await res.text() const $ = cheerio.load(html) expect($('#slug-page').text()).toBe('[slug] page') + expect(JSON.parse($('#router').text()).query).toEqual({ + slug: 'slug-1', + }) + + const res2 = await fetchViaHTTP(appPort, '/[slug]', undefined, { + headers: { + 'x-matched-path': '/[slug]', + }, + redirect: 'manual', + }) + + const html2 = await res2.text() + const $2 = cheerio.load(html2) + expect($2('#slug-page').text()).toBe('[slug] page') + expect(JSON.parse($2('#router').text()).query).toEqual({ + slug: '[slug]', + }) }) it('should have correct asPath on dynamic SSG page correctly', async () => { From 77c96a19b389be6bdbaa86a3e32fa7504cc58e6c Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 13 Jun 2022 15:50:25 -0500 Subject: [PATCH 031/149] v12.1.7-canary.37 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 ++-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +++++++------- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 16 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index c83dade89504..af3825d8f7dc 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.36" + "version": "12.1.7-canary.37" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index e4e83a2b9ed5..a3c7b295f328 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 6739b866fbda..65410722b624 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.36", + "@next/eslint-plugin-next": "12.1.7-canary.37", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 86768ea88115..3c1b3dd34c2d 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index 46daa83f87fc..a2fc8b197257 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index 3264c307d7c7..3f435455407c 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index 352daef15c94..f1f241b5a2dc 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index a7e990175a39..84f98f95b067 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index b3cb153f9521..c1ce9006c784 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index 70ae89da8eb5..1c4cf142658c 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index fd820d43125e..124c89ba5295 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 8c003b9324e4..ffe7c78b40b9 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index 5a84631c5877..e027e93e6e31 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.36", + "@next/env": "12.1.7-canary.37", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.36", - "@next/polyfill-nomodule": "12.1.7-canary.36", - "@next/react-dev-overlay": "12.1.7-canary.36", - "@next/react-refresh-utils": "12.1.7-canary.36", - "@next/swc": "12.1.7-canary.36", + "@next/polyfill-module": "12.1.7-canary.37", + "@next/polyfill-nomodule": "12.1.7-canary.37", + "@next/react-dev-overlay": "12.1.7-canary.37", + "@next/react-refresh-utils": "12.1.7-canary.37", + "@next/swc": "12.1.7-canary.37", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index b072e7405f5e..edd720a8da16 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 386a72ddb524..19718949dcd4 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.36", + "version": "12.1.7-canary.37", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6debf5cd59f6..49635c431525 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.36 + '@next/eslint-plugin-next': 12.1.7-canary.37 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.36 - '@next/polyfill-module': 12.1.7-canary.36 - '@next/polyfill-nomodule': 12.1.7-canary.36 - '@next/react-dev-overlay': 12.1.7-canary.36 - '@next/react-refresh-utils': 12.1.7-canary.36 - '@next/swc': 12.1.7-canary.36 + '@next/env': 12.1.7-canary.37 + '@next/polyfill-module': 12.1.7-canary.37 + '@next/polyfill-nomodule': 12.1.7-canary.37 + '@next/react-dev-overlay': 12.1.7-canary.37 + '@next/react-refresh-utils': 12.1.7-canary.37 + '@next/swc': 12.1.7-canary.37 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 From ec4df713525d8af299606161f3b691029603fec9 Mon Sep 17 00:00:00 2001 From: Steven Date: Mon, 13 Jun 2022 18:13:55 -0400 Subject: [PATCH 032/149] Fix Image Optimization cache-control regression with external images (#37625) In a previous PR (#34075), the ISR behavior was introduced to the Image Optimization API, however it changed the cache-control header to always set maxage=0. While this is probably the right behavior (the client shouldn't cache the image), it introduced a regression for users who have CDNs in front of a single Next.js instance (as opposed to [multiple Next.js instances](https://nextjs.org/docs/basic-features/data-fetching/incremental-static-regeneration#self-hosting-isr)). Furthermore, the pros of client-side caching outweight the cons because its easy to change the image url (add querystring param for example) to invalidate the cache. This PR reverts the cache-control behavior until we can come up with a better long-term solution. - Fixes #35987 - Related to #19914 - Related to #22319 - Closes #35596 --- docs/api-reference/next/image.md | 8 +++- packages/next/server/image-optimizer.ts | 14 +++++-- packages/next/server/next-server.ts | 4 +- .../image-optimizer/test/index.test.js | 6 +-- test/integration/image-optimizer/test/util.js | 41 ++++++++++--------- 5 files changed, 43 insertions(+), 30 deletions(-) diff --git a/docs/api-reference/next/image.md b/docs/api-reference/next/image.md index 06862850f325..07a2f61ba9f3 100644 --- a/docs/api-reference/next/image.md +++ b/docs/api-reference/next/image.md @@ -485,7 +485,7 @@ The cache status of an image can be determined by reading the value of the `x-ne - `STALE` - the path is in the cache but exceeded the revalidate time so it will be updated in the background - `HIT` - the path is in the cache and has not exceeded the revalidate time -The expiration (or rather Max Age) is defined by either the [`minimumCacheTTL`](#minimum-cache-ttl) configuration or the upstream server's `Cache-Control` header, whichever is larger. Specifically, the `max-age` value of the `Cache-Control` header is used. If both `s-maxage` and `max-age` are found, then `s-maxage` is preferred. +The expiration (or rather Max Age) is defined by either the [`minimumCacheTTL`](#minimum-cache-ttl) configuration or the upstream image `Cache-Control` header, whichever is larger. Specifically, the `max-age` value of the `Cache-Control` header is used. If both `s-maxage` and `max-age` are found, then `s-maxage` is preferred. The `max-age` is also passed-through to any downstream clients including CDNs and browsers. - You can configure [`minimumCacheTTL`](#minimum-cache-ttl) to increase the cache duration when the upstream image does not include `Cache-Control` header or the value is very low. - You can configure [`deviceSizes`](#device-sizes) and [`imageSizes`](#device-sizes) to reduce the total number of possible generated images. @@ -503,7 +503,11 @@ module.exports = { } ``` -If you need to add a `Cache-Control` header for the browser (not recommended), you can configure [`headers`](/docs/api-reference/next.config.js/headers) on the upstream image e.g. `/some-asset.jpg` not `/_next/image` itself. +The expiration (or rather Max Age) of the optimized image is defined by either the `minimumCacheTTL` or the upstream image `Cache-Control` header, whichever is larger. + +If you need to change the caching behavior per image, you can configure [`headers`](/docs/api-reference/next.config.js/headers) to set the `Cache-Control` header on the upstream image (e.g. `/some-asset.jpg`, not `/_next/image` itself). + +There is no mechanism to invalidate the cache at this time, so its best to keep `minimumCacheTTL` low. Otherwise you may need to manually change the [`src`](#src) prop or delete `/cache/images`. ### Disable Static Imports diff --git a/packages/next/server/image-optimizer.ts b/packages/next/server/image-optimizer.ts index f177efbe4599..480cdd37b8af 100644 --- a/packages/next/server/image-optimizer.ts +++ b/packages/next/server/image-optimizer.ts @@ -567,14 +567,16 @@ function setResponseHeaders( contentType: string | null, isStatic: boolean, xCache: XCacheHeader, - contentSecurityPolicy: string + contentSecurityPolicy: string, + maxAge: number, + isDev: boolean ) { res.setHeader('Vary', 'Accept') res.setHeader( 'Cache-Control', isStatic ? 'public, max-age=315360000, immutable' - : `public, max-age=0, must-revalidate` + : `public, max-age=${isDev ? 0 : maxAge}, must-revalidate` ) if (sendEtagResponse(req, res, etag)) { // already called res.end() so we're finished @@ -608,7 +610,9 @@ export function sendResponse( buffer: Buffer, isStatic: boolean, xCache: XCacheHeader, - contentSecurityPolicy: string + contentSecurityPolicy: string, + maxAge: number, + isDev: boolean ) { const contentType = getContentType(extension) const etag = getHash([buffer]) @@ -620,7 +624,9 @@ export function sendResponse( contentType, isStatic, xCache, - contentSecurityPolicy + contentSecurityPolicy, + maxAge, + isDev ) if (!result.finished) { res.setHeader('Content-Length', Buffer.byteLength(buffer)) diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 57559f86812d..c8e6bc05b247 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -281,7 +281,9 @@ export default class NextNodeServer extends BaseServer { cacheEntry.value.buffer, paramsResult.isStatic, cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT', - imagesConfig.contentSecurityPolicy + imagesConfig.contentSecurityPolicy, + cacheEntry.revalidate || 0, + Boolean(this.renderOpts.dev) ) } catch (err) { if (err instanceof ImageError) { diff --git a/test/integration/image-optimizer/test/index.test.js b/test/integration/image-optimizer/test/index.test.js index bd21d869e6cc..6ba13e347cf6 100644 --- a/test/integration/image-optimizer/test/index.test.js +++ b/test/integration/image-optimizer/test/index.test.js @@ -476,7 +476,7 @@ describe('Image Optimizer', () => { const res = await fetchViaHTTP(appPort, '/_next/image', query, opts) expect(res.status).toBe(200) expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=86400, must-revalidate` ) expect(res.headers.get('Content-Disposition')).toBe( `inline; filename="test.webp"` @@ -505,7 +505,7 @@ describe('Image Optimizer', () => { const res = await fetchViaHTTP(appPort, '/_next/image', query, opts) expect(res.status).toBe(200) expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=60, must-revalidate` ) expect(res.headers.get('Content-Disposition')).toBe( `inline; filename="test.webp"` @@ -577,7 +577,7 @@ describe('Image Optimizer', () => { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/webp') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=31536000, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('Content-Disposition')).toBe( diff --git a/test/integration/image-optimizer/test/util.js b/test/integration/image-optimizer/test/util.js index be4e2bdfc528..e49628e9676a 100644 --- a/test/integration/image-optimizer/test/util.js +++ b/test/integration/image-optimizer/test/util.js @@ -128,6 +128,7 @@ async function fetchWithDuration(...args) { } export function runTests(ctx) { + const { isDev, minimumCacheTTL = 60 } = ctx let slowImageServer beforeAll(async () => { slowImageServer = await serveSlowImage() @@ -266,7 +267,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toContain('image/x-icon') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toMatch(/^Accept(,|$)/) expect(res.headers.get('etag')).toBeTruthy() @@ -290,7 +291,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toContain('image/jpeg') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -308,7 +309,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toContain('image/png') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -326,7 +327,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toContain('image/jpeg') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -346,7 +347,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toContain('image/jpeg') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -449,7 +450,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/webp') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -466,7 +467,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/png') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -483,7 +484,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/png') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -500,7 +501,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/gif') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -517,7 +518,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/tiff') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -536,7 +537,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/webp') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -558,7 +559,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/avif') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -592,7 +593,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/webp') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -615,7 +616,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/webp') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -955,7 +956,7 @@ export function runTests(ctx) { expect(res1.status).toBe(200) expect(res1.headers.get('Content-Type')).toBe('image/webp') expect(res1.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res1.headers.get('Vary')).toBe('Accept') const etag = res1.headers.get('Etag') @@ -971,7 +972,7 @@ export function runTests(ctx) { expect(res2.headers.get('Content-Type')).toBeFalsy() expect(res2.headers.get('Etag')).toBe(etag) expect(res2.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res2.headers.get('Vary')).toBe('Accept') expect(res2.headers.get('Content-Disposition')).toBeFalsy() @@ -982,7 +983,7 @@ export function runTests(ctx) { expect(res3.status).toBe(200) expect(res3.headers.get('Content-Type')).toBe('image/webp') expect(res3.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res3.headers.get('Vary')).toBe('Accept') expect(res3.headers.get('Etag')).toBeTruthy() @@ -1003,7 +1004,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/bmp') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) // bmp is compressible so will have accept-encoding set from // compression @@ -1030,7 +1031,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/webp') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('etag')).toBeTruthy() @@ -1052,7 +1053,7 @@ export function runTests(ctx) { expect(res.status).toBe(200) expect(res.headers.get('Content-Type')).toBe('image/png') expect(res.headers.get('Cache-Control')).toBe( - `public, max-age=0, must-revalidate` + `public, max-age=${isDev ? 0 : minimumCacheTTL}, must-revalidate` ) expect(res.headers.get('Vary')).toBe('Accept') expect(res.headers.get('Content-Disposition')).toBe( From 5211ac5caee1f6764cb08a3070974c02820c5062 Mon Sep 17 00:00:00 2001 From: Michael Novotny Date: Mon, 13 Jun 2022 21:17:42 -0500 Subject: [PATCH 033/149] Adds consistency to ESLint rules. (#34335) * Adds consistency to ESLint rules. * Fixes lint errors. * Fixes manifest. * Adds missing title. * Fixes copy / paste error. Co-authored-by: Lee Robinson * Update errors/no-script-in-document.md Co-authored-by: Lee Robinson * Update errors/no-sync-scripts.md Co-authored-by: Lee Robinson * Updates a couple of rule descriptions. * Adds redirects. * Fixes unit tests. * Removes duplicated section. * Updates `no-before-interactive-script-outside-document` description. * Fixes lint. * Fixes integration tests. * Adds description to `no-before-interactive-script-outside-document` documentation. * Removes `link-passhref` from rules list. * Updates remaining `pages/_middleware.js` references. * Adds consistancy to messaging in new `no-styled-jsx-in-document` rule. * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Lee Robinson Co-authored-by: Tim Neutkens Co-authored-by: JJ Kasper --- docs/basic-features/eslint.md | 43 ++++++----- errors/google-font-display.md | 7 +- errors/google-font-preconnect.md | 2 + errors/inline-script-id.md | 4 +- errors/link-passhref.md | 4 +- errors/manifest.json | 26 ++++++- errors/next-script-for-ga.md | 2 + ...ore-interactive-script-outside-document.md | 10 ++- errors/no-css-tags.md | 4 +- errors/no-document-import-in-page.md | 2 + errors/no-duplicate-head.md | 2 + errors/no-head-element.md | 4 +- errors/no-head-import-in-document.md | 2 + errors/no-html-link-for-pages.md | 4 +- errors/no-img-element.md | 4 +- errors/no-page-custom-font.md | 4 +- ...nent.md => no-script-component-in-head.md} | 8 +- errors/no-script-in-document-page.md | 29 ------- errors/no-script-in-document.md | 31 ++++++++ errors/no-server-import-in-page.md | 2 + errors/no-styled-jsx-in-document.md | 2 + errors/no-sync-scripts.md | 15 +++- errors/no-title-in-document-head.md | 4 +- errors/no-unwanted-polyfillio.md | 8 +- packages/eslint-plugin-next/lib/index.js | 72 +++++++++--------- .../lib/rules/google-font-display.js | 18 +++-- .../lib/rules/google-font-preconnect.js | 8 +- .../lib/rules/inline-script-id.js | 9 ++- .../lib/rules/next-script-for-ga.js | 14 ++-- ...ore-interactive-script-outside-document.js | 10 ++- .../lib/rules/no-css-tags.js | 75 +++++++++++-------- .../lib/rules/no-document-import-in-page.js | 8 +- .../lib/rules/no-duplicate-head.js | 10 ++- .../lib/rules/no-head-element.js | 9 ++- .../lib/rules/no-head-import-in-document.js | 8 +- .../lib/rules/no-html-link-for-pages.js | 17 +++-- .../lib/rules/no-img-element.js | 8 +- .../lib/rules/no-page-custom-font.js | 14 ++-- .../lib/rules/no-script-component-in-head.js | 10 ++- .../lib/rules/no-server-import-in-page.js | 7 +- .../lib/rules/no-styled-jsx-in-document.js | 8 +- .../lib/rules/no-sync-scripts.js | 61 ++++++++------- .../lib/rules/no-title-in-document-head.js | 10 ++- .../eslint-plugin-next/lib/rules/no-typos.js | 2 +- .../lib/rules/no-unwanted-polyfillio.js | 11 +-- test/integration/eslint/test/index.test.js | 48 ++++++------ .../google-font-display.test.ts | 10 +-- .../google-font-preconnect.test.ts | 4 +- .../inline-script-id.test.ts | 2 +- .../next-script-for-ga.test.ts | 2 +- ...nteractive-script-outside-document.test.ts | 2 +- .../no-document-import-in-page.test.ts | 6 +- .../no-duplicate-head.test.ts | 22 +++--- .../no-head-element.test.ts | 4 +- .../no-head-import-in-document.test.ts | 30 ++++---- .../no-html-link-for-pages.test.ts | 8 +- .../eslint-plugin-next/no-img-element.test.ts | 4 +- .../no-page-custom-font.test.ts | 6 +- .../no-script-component-in-head.test.ts | 4 +- .../no-server-import-in-page.test.ts | 2 +- .../no-styled-jsx-in-document.test.ts | 9 +-- .../no-sync-scripts.test.ts | 4 +- .../no-title-in-document-head.test.ts | 4 +- 63 files changed, 445 insertions(+), 338 deletions(-) rename errors/{no-script-component-in-head-component.md => no-script-component-in-head.md} (75%) delete mode 100644 errors/no-script-in-document-page.md create mode 100644 errors/no-script-in-document.md diff --git a/docs/basic-features/eslint.md b/docs/basic-features/eslint.md index b85d16f44cac..0d97a658b891 100644 --- a/docs/basic-features/eslint.md +++ b/docs/basic-features/eslint.md @@ -80,28 +80,31 @@ This will take precedence over the configuration from `next.config.js`. Next.js provides an ESLint plugin, [`eslint-plugin-next`](https://www.npmjs.com/package/@next/eslint-plugin-next), already bundled within the base configuration that makes it possible to catch common issues and problems in a Next.js application. The full set of rules is as follows: -| | Rule | Description | -| :-: | ------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| ✔️ | [next/google-font-display](/docs/messages/google-font-display.md) | Enforce optional or swap font-display behavior with Google Fonts | -| ✔️ | [next/google-font-preconnect](/docs/messages/google-font-preconnect.md) | Enforce preconnect usage with Google Fonts | -| ✔️ | [next/link-passhref](/docs/messages/link-passhref.md) | Enforce passHref prop usage with custom Link components | -| ✔️ | [next/no-css-tags](/docs/messages/no-css-tags.md) | Prevent manual stylesheet tags | -| ✔️ | [next/no-document-import-in-page](/docs/messages/no-document-import-in-page.md) | Disallow importing next/document outside of pages/document.js | -| ✔️ | [next/no-head-import-in-document](/docs/messages/no-head-import-in-document.md) | Disallow importing next/head in pages/document.js | -| ✔️ | [next/no-html-link-for-pages](/docs/messages/no-html-link-for-pages.md) | Prohibit HTML anchor links to pages without a Link component | -| ✔️ | [next/no-img-element](/docs/messages/no-img-element.md) | Prohibit usage of HTML <img> element | -| ✔️ | [next/no-head-element](/docs/messages/no-head-element.md) | Prohibit usage of HTML <head> element | -| ✔️ | [next/no-page-custom-font](/docs/messages/no-page-custom-font.md) | Prevent page-only custom fonts | -| ✔️ | [next/no-sync-scripts](/docs/messages/no-sync-scripts.md) | Forbid synchronous scripts | -| ✔️ | [next/no-title-in-document-head](/docs/messages/no-title-in-document-head.md) | Disallow using <title> with Head from next/document | -| ✔️ | [next/no-unwanted-polyfillio](/docs/messages/no-unwanted-polyfillio.md) | Prevent duplicate polyfills from Polyfill.io | -| ✔️ | [next/inline-script-id](/docs/messages/inline-script-id.md) | Enforce id attribute on next/script components with inline content | -| ✔️ | next/no-typos | Ensure no typos were made declaring [Next.js's data fetching function](/docs/basic-features/data-fetching/overview.md) | -| ✔️ | [next/next-script-for-ga](/docs/messages/next-script-for-ga.md) | Use the Script component to defer loading of the script until necessary. | -| ✔️ | [next/no-styled-jsx-in-document](/docs/messages/no-styled-jsx-in-document.md) | styled-jsx should not be used in \_document | - - ✔: Enabled in the recommended configuration +| | Rule | Description | +| :-: | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| ✔️ | [@next/next/google-font-display](/docs/messages/google-font-display.md) | Enforce font-display behavior with Google Fonts. | +| ✔️ | [@next/next/google-font-preconnect](/docs/messages/google-font-preconnect.md) | Ensure `preconnect` is used with Google Fonts. | +| ✔️ | [@next/next/inline-script-id](/docs/messages/inline-script-id.md) | Enforce `id` attribute on `next/script` components with inline content. | +| ✔️ | [@next/next/next-script-for-ga](/docs/messages/next-script-for-ga.md) | Prefer `next/script` component when using the inline script for Google Analytics. | +| ✔️ | [@next/next/no-before-interactive-script-outside-document](/docs/messages/no-before-interactive-script-outside-document.md) | Prevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`. | +| ✔️ | [@next/next/no-css-tags](/docs/messages/no-css-tags.md) | Prevent manual stylesheet tags. | +| ✔️ | [@next/next/no-document-import-in-page](/docs/messages/no-document-import-in-page.md) | Prevent importing `next/document` outside of `pages/_document.js`. | +| ✔️ | [@next/next/no-duplicate-head](/docs/messages/no-duplicate-head.md) | Prevent duplicate usage of `` in `pages/_document.js`. | +| ✔️ | [@next/next/no-head-element](/docs/messages/no-head-element.md) | Prevent usage of `` element. | +| ✔️ | [@next/next/no-head-import-in-document](/docs/messages/no-head-import-in-document.md) | Prevent usage of `next/head` in `pages/_document.js`. | +| ✔️ | [@next/next/no-html-link-for-pages](/docs/messages/no-html-link-for-pages.md) | Prevent usage of `` elements to navigate to internal Next.js pages. | +| ✔️ | [@next/next/no-img-element](/docs/messages/no-img-element.md) | Prevent usage of `` element to prevent layout shift. | +| ✔️ | [@next/next/no-page-custom-font](/docs/messages/no-page-custom-font.md) | Prevent page-only custom fonts. | +| ✔️ | [@next/next/no-script-component-in-head](/docs/messages/no-script-component-in-head.md) | Prevent usage of `next/script` in `next/head` component. | +| ✔️ | [@next/next/no-server-import-in-page](/docs/messages/no-server-import-in-page.md) | Prevent usage of `next/server` outside of `middleware.js`. | +| ✔️ | [@next/next/no-styled-jsx-in-document](/docs/messages/no-styled-jsx-in-document.md) | Prevent usage of `styled-jsx` in `pages/_document.js`. | +| ✔️ | [@next/next/no-sync-scripts](/docs/messages/no-sync-scripts.md) | Prevent synchronous scripts. | +| ✔️ | [@next/next/no-title-in-document-head](/docs/messages/no-title-in-document-head.md) | Prevent usage of `` with `Head` component from `next/document`. | +| ✔️ | @next/next/no-typos | Prevent common typos in [Next.js's data fetching functions](/docs/basic-features/data-fetching.md) | +| ✔️ | [@next/next/no-unwanted-polyfillio](/docs/messages/no-unwanted-polyfillio.md) | Prevent duplicate polyfills from Polyfill.io. | + If you already have ESLint configured in your application, we recommend extending from this plugin directly instead of including `eslint-config-next` unless a few conditions are met. Refer to the [Recommended Plugin Ruleset](/docs/basic-features/eslint.md#recommended-plugin-ruleset) to learn more. ### Custom Settings diff --git a/errors/google-font-display.md b/errors/google-font-display.md index 39d7b597389c..bd01159cba2e 100644 --- a/errors/google-font-display.md +++ b/errors/google-font-display.md @@ -1,8 +1,10 @@ # Google Font Display +> Enforce font-display behavior with Google Fonts. + ### Why This Error Occurred -For a Google Font, the `display` descriptor was either not assigned or set to `auto`, `fallback`, or `block`. +For a Google Font, the font-display descriptor was either missing or set to `auto`, `block`, or `fallback`, which are not recommended. ### Possible Ways to Fix It @@ -29,9 +31,10 @@ Specifying `display=optional` minimizes the risk of invisible text or layout shi ### When Not To Use It -If you want to specifically display a font using a `block` or `fallback` strategy, then you can disable this rule. +If you want to specifically display a font using an `auto`, `block`, or `fallback` strategy, then you can disable this rule. ### Useful Links +- [Controlling Font Performance with font-display](https://developer.chrome.com/blog/font-display/) - [Google Fonts API Docs](https://developers.google.com/fonts/docs/css2#use_font-display) - [CSS `font-display` property](https://www.w3.org/TR/css-fonts-4/#font-display-desc) diff --git a/errors/google-font-preconnect.md b/errors/google-font-preconnect.md index d95d72dba9bd..1731f22322f0 100644 --- a/errors/google-font-preconnect.md +++ b/errors/google-font-preconnect.md @@ -1,5 +1,7 @@ # Google Font Preconnect +> Ensure `preconnect` is used with Google Fonts. + ### Why This Error Occurred A preconnect resource hint was not used with a request to the Google Fonts domain. Adding `preconnect` is recommended to initiate an early connection to the origin. diff --git a/errors/inline-script-id.md b/errors/inline-script-id.md index fe7f1250be73..a6cbd6301f86 100644 --- a/errors/inline-script-id.md +++ b/errors/inline-script-id.md @@ -1,4 +1,6 @@ -# next/script components with inline content require an `id` attribute +# Inline script id + +> Enforce `id` attribute on `next/script` components with inline content. ## Why This Error Occurred diff --git a/errors/link-passhref.md b/errors/link-passhref.md index 33fec658066e..e22a15b71869 100644 --- a/errors/link-passhref.md +++ b/errors/link-passhref.md @@ -1,4 +1,6 @@ -# Link passHref +# Link `passHref` + +> Ensure `passHref` is used with custom `Link` components. ### Why This Error Occurred diff --git a/errors/manifest.json b/errors/manifest.json index d74dea075e4b..4205dc491e8f 100644 --- a/errors/manifest.json +++ b/errors/manifest.json @@ -563,16 +563,34 @@ "path": "/errors/sharp-version-avif.md" }, { - "title": "script-in-document-page", - "path": "/errors/no-script-in-document-page.md" + "path": "/errors/no-script-in-document-page.md", + "redirect": { + "destination": "/errors/no-script-in-document" + } + }, + { + "title": "no-script-in-document", + "path": "/errors/no-script-in-document.md" }, { "title": "before-interactive-script-outside-document", "path": "/errors/no-before-interactive-script-outside-document.md" }, { - "title": "script-component-in-head-component", - "path": "/errors/no-script-component-in-head-component.md" + "path": "/errors/no-script-in-head-component.md", + "redirect": { + "destination": "/errors/no-script-component-in-head" + } + }, + { + "path": "/errors/no-script-component-in-head-component.md", + "redirect": { + "destination": "/errors/no-script-component-in-head" + } + }, + { + "title": "no-script-component-in-head", + "path": "/errors/no-script-component-in-head.md" }, { "title": "script-tags-in-head-component", diff --git a/errors/next-script-for-ga.md b/errors/next-script-for-ga.md index 3df685bebcda..4dda57e70d1f 100644 --- a/errors/next-script-for-ga.md +++ b/errors/next-script-for-ga.md @@ -1,5 +1,7 @@ # Next Script for Google Analytics +> Prefer `next/script` component when using the inline script for Google Analytics. + ### Why This Error Occurred An inline script was used for Google analytics which might impact your webpage's performance. diff --git a/errors/no-before-interactive-script-outside-document.md b/errors/no-before-interactive-script-outside-document.md index 9ba97c59e805..e40c3f67129c 100644 --- a/errors/no-before-interactive-script-outside-document.md +++ b/errors/no-before-interactive-script-outside-document.md @@ -1,15 +1,17 @@ -# beforeInteractive Script component outside \_document.js +# No Before Interactive Script Outside Document + +> Prevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`. #### Why This Error Occurred -You can't use the `next/script` component with the `beforeInteractive` strategy outside the `_document.js` page. That's because `beforeInteractive` strategy only works inside **\_document.js** and is designed to load scripts that are needed by the entire site (i.e. the script will load when any page in the application has been loaded server-side). +You cannot use the `next/script` component with the `beforeInteractive` strategy outside `pages/_document.js`. That's because `beforeInteractive` strategy only works inside **`pages/_document.js`** and is designed to load scripts that are needed by the entire site (i.e. the script will load when any page in the application has been loaded server-side). #### Possible Ways to Fix It -If you want a global script, move the script inside `_document.js` page. +If you want a global script, move the script inside `pages/_document.js`. ```jsx -// In _document.js +// In `pages/_document.js` import { Html, Head, Main, NextScript } from 'next/document' import Script from 'next/script' diff --git a/errors/no-css-tags.md b/errors/no-css-tags.md index 8a3e5540402c..c9926b25b81f 100644 --- a/errors/no-css-tags.md +++ b/errors/no-css-tags.md @@ -1,8 +1,10 @@ # No CSS Tags +> Prevent manual stylesheet tags. + ### Why This Error Occurred -An HTML link element was used to link to an external stylesheet. This can negatively affect CSS resource loading on your web page. +A `link` element was used to link to an external stylesheet. This can negatively affect CSS resource loading on your webpage. ### Possible Ways to Fix It diff --git a/errors/no-document-import-in-page.md b/errors/no-document-import-in-page.md index 8abbf7ceb3d0..bb2713856f9a 100644 --- a/errors/no-document-import-in-page.md +++ b/errors/no-document-import-in-page.md @@ -1,5 +1,7 @@ # No Document Import in Page +> Prevent importing `next/document` outside of `pages/_document.js`. + ### Why This Error Occurred `next/document` was imported in a page outside of `pages/_document.js` (or `pages/_document.tsx` if you are using TypeScript). This can cause unexpected issues in your application. diff --git a/errors/no-duplicate-head.md b/errors/no-duplicate-head.md index ed16c4f102b0..4ba4314f1845 100644 --- a/errors/no-duplicate-head.md +++ b/errors/no-duplicate-head.md @@ -1,5 +1,7 @@ # No Duplicate Head +> Prevent duplicate usage of `<Head>` in `pages/_document.js`. + ### Why This Error Occurred More than a single instance of the `<Head />` component was used in a single custom document. This can cause unexpected behavior in your application. diff --git a/errors/no-head-element.md b/errors/no-head-element.md index 670894e64a44..f3bd5ca34927 100644 --- a/errors/no-head-element.md +++ b/errors/no-head-element.md @@ -1,8 +1,10 @@ # No Head Element +> Prevent usage of `<head>` element. + ### Why This Error Occurred -An HTML `<head>` element was used to include page-level metadata, but this can cause unexpected behavior in a Next.js application. Use Next.js' built-in `<Head />` component instead. +A `<head>` element was used to include page-level metadata, but this can cause unexpected behavior in a Next.js application. Use Next.js' built-in `next/head` component instead. ### Possible Ways to Fix It diff --git a/errors/no-head-import-in-document.md b/errors/no-head-import-in-document.md index 9336cff2c8ec..cb9c18e08eb8 100644 --- a/errors/no-head-import-in-document.md +++ b/errors/no-head-import-in-document.md @@ -1,5 +1,7 @@ # No Head Import in Document +> Prevent usage of `next/head` in `pages/_document.js`. + ### Why This Error Occurred `next/head` was imported in `pages/_document.js`. This can cause unexpected issues in your application. diff --git a/errors/no-html-link-for-pages.md b/errors/no-html-link-for-pages.md index 38457ae4a46a..32e124dc11fd 100644 --- a/errors/no-html-link-for-pages.md +++ b/errors/no-html-link-for-pages.md @@ -1,8 +1,10 @@ # No HTML link for pages +> Prevent usage of `<a>` elements to navigate to internal Next.js pages. + ### Why This Error Occurred -An HTML anchor element, `<a>`, was used to navigate to a page route without using the `Link` component. +An `<a>` element was used to navigate to a page route without using the `next/link` component, causing unnecessary full page refreshes. The `Link` component is required in order to enable client-side route transitions between pages and provide a single-page app experience. diff --git a/errors/no-img-element.md b/errors/no-img-element.md index 532dac586cb2..db4d31f363f2 100644 --- a/errors/no-img-element.md +++ b/errors/no-img-element.md @@ -1,8 +1,10 @@ # No Img Element +> Prevent usage of `<img>` element to prevent layout shift. + ### Why This Error Occurred -An HTML `<img>` element was used to display an image. For better performance and automatic Image Optimization, use Next.js' built-in image component instead. +An `<img>` element was used to display an image. For better performance and automatic Image Optimization, use `next/image` instead. ### Possible Ways to Fix It diff --git a/errors/no-page-custom-font.md b/errors/no-page-custom-font.md index edcea71d99b3..2f2e51e3d28e 100644 --- a/errors/no-page-custom-font.md +++ b/errors/no-page-custom-font.md @@ -1,9 +1,11 @@ # No Page Custom Font +> Prevent page-only custom fonts. + ### Why This Error Occurred - The custom font you're adding was added to a page - this only adds the font to the specific page and not the entire application. -- The custom font you're adding was added to a separate component within `Document` - this disables automatic font optimization. +- The custom font you're adding was added to a separate component within `pages/_document.js` - this disables automatic font optimization. ### Possible Ways to Fix It diff --git a/errors/no-script-component-in-head-component.md b/errors/no-script-component-in-head.md similarity index 75% rename from errors/no-script-component-in-head-component.md rename to errors/no-script-component-in-head.md index c070deb14ec6..50503ebe0eae 100644 --- a/errors/no-script-component-in-head-component.md +++ b/errors/no-script-component-in-head.md @@ -1,12 +1,14 @@ -# Script component inside Head component +# No Script Component in Head + +> Prevent usage of `next/script` in `next/head` component. #### Why This Error Occurred -The `next/script` component shouldn't be placed inside the `next/head` component +The `next/script` component should not be used in a `next/head` component. #### Possible Ways to Fix It -Move the `<Script />` component outside of `<Head>...</Head>` +Move the `<Script />` component outside of `<Head>` instead. **Before** diff --git a/errors/no-script-in-document-page.md b/errors/no-script-in-document-page.md deleted file mode 100644 index 2986bfeebb09..000000000000 --- a/errors/no-script-in-document-page.md +++ /dev/null @@ -1,29 +0,0 @@ -# Script component inside \_document.js - -> ⚠️ This error is not relevant in versions 12.1.6 or later. Please refer to the updated [error message](https://nextjs.org/docs/messages/no-before-interactive-script-outside-document). - -#### Why This Error Occurred - -You can't use the `next/script` component inside the `_document.js` page in versions prior to v12.1.6. That's because the `_document.js` page only runs on the server and `next/script` has client-side functionality to ensure loading order. - -#### Possible Ways to Fix It - -If you want a global script, instead use the `_app.js` page. - -```jsx -import Script from 'next/script' - -function MyApp({ Component, pageProps }) { - return ( - <> - <Script src="/my-script.js" /> - <Component {...pageProps} /> - </> - ) -} - -export default MyApp -``` - -- [custom-app](https://nextjs.org/docs/advanced-features/custom-app) -- [next-script](https://nextjs.org/docs/basic-features/script#usage) diff --git a/errors/no-script-in-document.md b/errors/no-script-in-document.md new file mode 100644 index 000000000000..6920e464cfe2 --- /dev/null +++ b/errors/no-script-in-document.md @@ -0,0 +1,31 @@ +# No Script in Document + +> Prevent usage of `next/script` in `pages/_document.js`. + +> ⚠️ This error is not relevant in Next.js versions 12.1.6 or later. Please refer to the updated [error message](https://nextjs.org/docs/messages/no-before-interactive-script-outside-document). + +#### Why This Error Occurred + +You should not use the `next/script` component in `pages/_document.js` in Next.js versions prior to 12.1.6. That's because the `pages/_document.js` page only runs on the server and `next/script` has client-side functionality to ensure loading order. + +#### Possible Ways to Fix It + +If you want a global script, use `next/script` in `pages/_app.js` instead. + +```jsx +import Script from 'next/script' + +function MyApp({ Component, pageProps }) { + return ( + <> + <Script src="/my-script.js" /> + <Component {...pageProps} /> + </> + ) +} + +export default MyApp +``` + +- [custom-app](https://nextjs.org/docs/advanced-features/custom-app) +- [next-script](https://nextjs.org/docs/basic-features/script#usage) diff --git a/errors/no-server-import-in-page.md b/errors/no-server-import-in-page.md index b7639682d30b..84a1c3e75759 100644 --- a/errors/no-server-import-in-page.md +++ b/errors/no-server-import-in-page.md @@ -1,5 +1,7 @@ # No Server Import In Page +> Prevent usage of `next/server` outside of `middleware.js`. + ### Why This Error Occurred `next/server` was imported outside of `middleware.{js,ts}`. diff --git a/errors/no-styled-jsx-in-document.md b/errors/no-styled-jsx-in-document.md index 4c9dbf613338..e7660d73cbb3 100644 --- a/errors/no-styled-jsx-in-document.md +++ b/errors/no-styled-jsx-in-document.md @@ -1,5 +1,7 @@ # No styled-jsx in Document +> Prevent usage of `styled-jsx` in `pages/_document.js`. + ### Why This Error Occurred Custom CSS like `styled-jsx` is not allowed in a [Custom Document](https://nextjs.org/docs/advanced-features/custom-document). diff --git a/errors/no-sync-scripts.md b/errors/no-sync-scripts.md index b8a200e8b58d..36632536b9ae 100644 --- a/errors/no-sync-scripts.md +++ b/errors/no-sync-scripts.md @@ -1,14 +1,14 @@ # No Sync Scripts +> Prevent synchronous scripts. + ### Why This Error Occurred -A synchronous script was used which can impact your webpage's performance. +A synchronous script was used which can impact your webpage performance. ### Possible Ways to Fix It -#### Script component (experimental) - -Use the Script component with the right loading strategy to defer loading of the script until necessary. +#### Script component (recommended) ```jsx import Script from 'next/script' @@ -25,6 +25,13 @@ function Home() { export default Home ``` +#### Use `async` or `defer` + +```html +<script src="https://third-party-script.js" async /> +<script src="https://third-party-script.js" defer /> +``` + ### Useful Links - [Efficiently load third-party JavaScript](https://web.dev/efficiently-load-third-party-javascript/) diff --git a/errors/no-title-in-document-head.md b/errors/no-title-in-document-head.md index 771e99674d5c..3f450d18862e 100644 --- a/errors/no-title-in-document-head.md +++ b/errors/no-title-in-document-head.md @@ -1,8 +1,10 @@ # No Title in Document Head +> Prevent usage of `<title>` with `Head` component from `next/document`. + ### Why This Error Occurred -A `<title>` element was defined within the `Head` component imported from `next/document`, which should only be used for any `<head>` code that is common for all pages. Title tags should be defined at the page-level using `next/head`. +A `<title>` element was defined within the `Head` component imported from `next/document`, which should only be used for any `<head>` code that is common for all pages. Title tags should be defined at the page-level using `next/head` instead. ### Possible Ways to Fix It diff --git a/errors/no-unwanted-polyfillio.md b/errors/no-unwanted-polyfillio.md index 6f05aa9a7251..9d00cbc8579f 100644 --- a/errors/no-unwanted-polyfillio.md +++ b/errors/no-unwanted-polyfillio.md @@ -1,12 +1,14 @@ -# Duplicate Polyfills from Polyfill.io +# No Unwanted Polyfill.io + +> Prevent duplicate polyfills from Polyfill.io. #### Why This Error Occurred -You are using Polyfill.io and including duplicate polyfills already shipped with Next.js. This increases page weight unnecessarily which can affect loading performance. +You are using polyfills from Polyfill.io and including polyfills already shipped with Next.js. This unnecessarily increases page weight which can affect loading performance. #### Possible Ways to Fix It -Remove all duplicate polyfills that are included with Polyfill.io. If you need to add polyfills but are not sure if Next.js already includes it, take a look at the list of [supported browsers and features](https://nextjs.org/docs/basic-features/supported-browsers-features) first. +Remove all duplicate polyfills. If you need to add polyfills but are not sure if Next.js already includes it, take a look at the list of [supported browsers and features](https://nextjs.org/docs/basic-features/supported-browsers-features). ### Useful Links diff --git a/packages/eslint-plugin-next/lib/index.js b/packages/eslint-plugin-next/lib/index.js index 9c1b1559b8fc..0f228b4beb2b 100644 --- a/packages/eslint-plugin-next/lib/index.js +++ b/packages/eslint-plugin-next/lib/index.js @@ -1,60 +1,60 @@ module.exports = { rules: { - 'no-css-tags': require('./rules/no-css-tags'), - 'no-sync-scripts': require('./rules/no-sync-scripts'), - 'no-html-link-for-pages': require('./rules/no-html-link-for-pages'), - 'no-img-element': require('./rules/no-img-element'), - 'no-head-element': require('./rules/no-head-element'), - 'no-unwanted-polyfillio': require('./rules/no-unwanted-polyfillio'), - 'no-page-custom-font': require('./rules/no-page-custom-font'), - 'no-title-in-document-head': require('./rules/no-title-in-document-head'), 'google-font-display': require('./rules/google-font-display'), 'google-font-preconnect': require('./rules/google-font-preconnect'), + 'inline-script-id': require('./rules/inline-script-id'), + 'next-script-for-ga': require('./rules/next-script-for-ga'), + 'no-before-interactive-script-outside-document': require('./rules/no-before-interactive-script-outside-document'), + 'no-css-tags': require('./rules/no-css-tags'), 'no-document-import-in-page': require('./rules/no-document-import-in-page'), + 'no-duplicate-head': require('./rules/no-duplicate-head'), + 'no-head-element': require('./rules/no-head-element'), 'no-head-import-in-document': require('./rules/no-head-import-in-document'), + 'no-html-link-for-pages': require('./rules/no-html-link-for-pages'), + 'no-img-element': require('./rules/no-img-element'), + 'no-page-custom-font': require('./rules/no-page-custom-font'), 'no-script-component-in-head': require('./rules/no-script-component-in-head'), 'no-server-import-in-page': require('./rules/no-server-import-in-page'), 'no-styled-jsx-in-document': require('./rules/no-styled-jsx-in-document'), + 'no-sync-scripts': require('./rules/no-sync-scripts'), + 'no-title-in-document-head': require('./rules/no-title-in-document-head'), 'no-typos': require('./rules/no-typos'), - 'no-duplicate-head': require('./rules/no-duplicate-head'), - 'inline-script-id': require('./rules/inline-script-id'), - 'next-script-for-ga': require('./rules/next-script-for-ga'), - 'no-before-interactive-script-outside-document': require('./rules/no-before-interactive-script-outside-document'), - 'no-assign-module-variable': require('./rules/no-assign-module-variable'), + 'no-unwanted-polyfillio': require('./rules/no-unwanted-polyfillio'), }, configs: { recommended: { plugins: ['@next/next'], rules: { - '@next/next/no-css-tags': 1, - '@next/next/no-sync-scripts': 1, - '@next/next/no-html-link-for-pages': 1, - '@next/next/no-img-element': 1, - '@next/next/no-head-element': 1, - '@next/next/no-unwanted-polyfillio': 1, - '@next/next/no-page-custom-font': 1, - '@next/next/no-title-in-document-head': 1, - '@next/next/google-font-display': 1, - '@next/next/google-font-preconnect': 1, - '@next/next/next-script-for-ga': 1, - '@next/next/no-document-import-in-page': 2, - '@next/next/no-head-import-in-document': 2, - '@next/next/no-script-component-in-head': 2, - '@next/next/no-styled-jsx-in-document': 2, - '@next/next/no-server-import-in-page': 2, - '@next/next/no-typos': 1, - '@next/next/no-duplicate-head': 2, - '@next/next/inline-script-id': 2, - '@next/next/no-before-interactive-script-outside-document': 1, - '@next/next/no-assign-module-variable': 2, + // Errors + '@next/next/google-font-display': 'error', + '@next/next/google-font-preconnect': 'error', + '@next/next/next-script-for-ga': 'error', + '@next/next/no-before-interactive-script-outside-document': 'error', + '@next/next/no-css-tags': 'error', + '@next/next/no-head-element': 'error', + '@next/next/no-html-link-for-pages': 'error', + '@next/next/no-img-element': 'error', + '@next/next/no-page-custom-font': 'error', + '@next/next/no-styled-jsx-in-document': 'error', + '@next/next/no-sync-scripts': 'error', + '@next/next/no-title-in-document-head': 'error', + '@next/next/no-typos': 'error', + '@next/next/no-unwanted-polyfillio': 'error', + // Warnings + '@next/next/inline-script-id': 'warn', + '@next/next/no-document-import-in-page': 'warn', + '@next/next/no-duplicate-head': 'warn', + '@next/next/no-head-import-in-document': 'warn', + '@next/next/no-server-import-in-page': 'warn', + '@next/next/no-script-component-in-head': 'warn', }, }, 'core-web-vitals': { plugins: ['@next/next'], extends: ['plugin:@next/next/recommended'], rules: { - '@next/next/no-sync-scripts': 2, - '@next/next/no-html-link-for-pages': 2, + '@next/next/no-html-link-for-pages': 'warn', + '@next/next/no-sync-scripts': 'warn', }, }, }, diff --git a/packages/eslint-plugin-next/lib/rules/google-font-display.js b/packages/eslint-plugin-next/lib/rules/google-font-display.js index 7a0995eb7a6f..a1ca8a9a7a95 100644 --- a/packages/eslint-plugin-next/lib/rules/google-font-display.js +++ b/packages/eslint-plugin-next/lib/rules/google-font-display.js @@ -1,12 +1,13 @@ const NodeAttributes = require('../utils/node-attributes.js') +const url = 'https://nextjs.org/docs/messages/google-font-display' + module.exports = { meta: { docs: { - description: - 'Ensure correct font-display property is assigned for Google Fonts', + description: 'Enforce font-display behavior with Google Fonts.', recommended: true, - url: 'https://nextjs.org/docs/messages/google-font-display', + url, }, }, create: function (context) { @@ -33,22 +34,23 @@ module.exports = { const displayValue = params.get('display') if (!params.has('display')) { - message = 'Display parameter is missing.' + message = + 'A font-display parameter is missing (adding `&display=optional` is recommended).' } else if ( + displayValue === 'auto' || displayValue === 'block' || - displayValue === 'fallback' || - displayValue === 'auto' + displayValue === 'fallback' ) { message = `${ displayValue[0].toUpperCase() + displayValue.slice(1) - } behavior is not recommended.` + } is not recommended.` } } if (message) { context.report({ node, - message: `${message} See: https://nextjs.org/docs/messages/google-font-display`, + message: `${message} See: ${url}`, }) } }, diff --git a/packages/eslint-plugin-next/lib/rules/google-font-preconnect.js b/packages/eslint-plugin-next/lib/rules/google-font-preconnect.js index a217618905a5..cbc1a65ac682 100644 --- a/packages/eslint-plugin-next/lib/rules/google-font-preconnect.js +++ b/packages/eslint-plugin-next/lib/rules/google-font-preconnect.js @@ -1,11 +1,13 @@ const NodeAttributes = require('../utils/node-attributes.js') +const url = 'https://nextjs.org/docs/messages/google-font-preconnect' + module.exports = { meta: { docs: { - description: 'Ensure preconnect is used with Google Fonts', + description: 'Ensure `preconnect` is used with Google Fonts.', recommended: true, - url: 'https://nextjs.org/docs/messages/google-font-preconnect', + url, }, }, create: function (context) { @@ -33,7 +35,7 @@ module.exports = { ) { context.report({ node, - message: `Preconnect is missing. See: https://nextjs.org/docs/messages/google-font-preconnect`, + message: `\`rel="preconnect"\` is missing from Google Font. See: ${url}`, }) } }, diff --git a/packages/eslint-plugin-next/lib/rules/inline-script-id.js b/packages/eslint-plugin-next/lib/rules/inline-script-id.js index 2254bd8d4715..d936825912d8 100644 --- a/packages/eslint-plugin-next/lib/rules/inline-script-id.js +++ b/packages/eslint-plugin-next/lib/rules/inline-script-id.js @@ -1,10 +1,12 @@ +const url = 'https://nextjs.org/docs/messages/inline-script-id' + module.exports = { meta: { docs: { description: - 'next/script components with inline content must specify an `id` attribute.', + 'Enforce `id` attribute on `next/script` components with inline content.', recommended: true, - url: 'https://nextjs.org/docs/messages/inline-script-id', + url, }, }, create: function (context) { @@ -59,8 +61,7 @@ module.exports = { if (!attributeNames.has('id')) { context.report({ node, - message: - 'next/script components with inline content must specify an `id` attribute. See: https://nextjs.org/docs/messages/inline-script-id', + message: `\`next/script\` components with inline content must specify an \`id\` attribute. See: ${url}`, }) } } diff --git a/packages/eslint-plugin-next/lib/rules/next-script-for-ga.js b/packages/eslint-plugin-next/lib/rules/next-script-for-ga.js index 6d934d3c567c..260ab65c17d8 100644 --- a/packages/eslint-plugin-next/lib/rules/next-script-for-ga.js +++ b/packages/eslint-plugin-next/lib/rules/next-script-for-ga.js @@ -8,8 +8,10 @@ const SUPPORTED_HTML_CONTENT_URLS = [ 'www.google-analytics.com/analytics.js', 'www.googletagmanager.com/gtm.js', ] -const ERROR_MSG = - 'Use the `next/script` component for loading third party scripts. See: https://nextjs.org/docs/messages/next-script-for-ga' +const description = + 'Prefer `next/script` component when using the inline script for Google Analytics.' +const url = 'https://nextjs.org/docs/messages/next-script-for-ga' +const ERROR_MSG = `${description} See: ${url}` // Check if one of the items in the list is a substring of the passed string const containsStr = (str, strList) => { @@ -19,12 +21,12 @@ const containsStr = (str, strList) => { module.exports = { meta: { docs: { - description: - 'Prefer next script component when using the inline script for Google Analytics', + description, recommended: true, - url: 'https://nextjs.org/docs/messages/next-script-for-ga', + url, }, }, + schema: [], create: function (context) { return { JSXOpeningElement(node) { @@ -74,5 +76,3 @@ module.exports = { } }, } - -module.exports.schema = [] diff --git a/packages/eslint-plugin-next/lib/rules/no-before-interactive-script-outside-document.js b/packages/eslint-plugin-next/lib/rules/no-before-interactive-script-outside-document.js index bc4346749d12..075c61ed7356 100644 --- a/packages/eslint-plugin-next/lib/rules/no-before-interactive-script-outside-document.js +++ b/packages/eslint-plugin-next/lib/rules/no-before-interactive-script-outside-document.js @@ -1,12 +1,15 @@ const path = require('path') +const url = + 'https://nextjs.org/docs/messages/no-before-interactive-script-outside-document' + module.exports = { meta: { docs: { description: - 'Disallow using next/script beforeInteractive strategy outside the next/_document component', + "Prevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`.", recommended: true, - url: 'https://nextjs.org/docs/messages/no-before-interactive-script-outside-document', + url, }, }, create: function (context) { @@ -46,8 +49,7 @@ module.exports = { context.report({ node, - message: - 'next/script beforeInteractive strategy should only be used inside next/_document. See: https://nextjs.org/docs/messages/no-before-interactive-script-outside-document', + message: `\`next/script\`'s \`beforeInteractive\` strategy should not be used outside of \`pages/_document.js\`. See: ${url}`, }) }, } diff --git a/packages/eslint-plugin-next/lib/rules/no-css-tags.js b/packages/eslint-plugin-next/lib/rules/no-css-tags.js index e361ab137d0d..765555853019 100644 --- a/packages/eslint-plugin-next/lib/rules/no-css-tags.js +++ b/packages/eslint-plugin-next/lib/rules/no-css-tags.js @@ -1,36 +1,45 @@ -module.exports = function (context) { - return { - JSXOpeningElement(node) { - if (node.name.name !== 'link') { - return - } - if (node.attributes.length === 0) { - return - } +const url = 'https://nextjs.org/docs/messages/no-css-tags' - const attributes = node.attributes.filter( - (attr) => attr.type === 'JSXAttribute' - ) - if ( - attributes.find( - (attr) => - attr.name.name === 'rel' && attr.value.value === 'stylesheet' - ) && - attributes.find( - (attr) => - attr.name.name === 'href' && - attr.value.type === 'Literal' && - !/^https?/.test(attr.value.value) - ) - ) { - context.report({ - node, - message: - 'Do not include stylesheets manually. See: https://nextjs.org/docs/messages/no-css-tags', - }) - } +module.exports = { + meta: { + docs: { + description: 'Prevent manual stylesheet tags.', + recommended: true, + url, }, - } -} + }, + schema: [], + create: function (context) { + return { + JSXOpeningElement(node) { + if (node.name.name !== 'link') { + return + } + if (node.attributes.length === 0) { + return + } -module.exports.schema = [] + const attributes = node.attributes.filter( + (attr) => attr.type === 'JSXAttribute' + ) + if ( + attributes.find( + (attr) => + attr.name.name === 'rel' && attr.value.value === 'stylesheet' + ) && + attributes.find( + (attr) => + attr.name.name === 'href' && + attr.value.type === 'Literal' && + !/^https?/.test(attr.value.value) + ) + ) { + context.report({ + node, + message: `Do not include stylesheets manually. See: ${url}`, + }) + } + }, + } + }, +} diff --git a/packages/eslint-plugin-next/lib/rules/no-document-import-in-page.js b/packages/eslint-plugin-next/lib/rules/no-document-import-in-page.js index 1b7fbeb8f051..76b46ed9dc1a 100644 --- a/packages/eslint-plugin-next/lib/rules/no-document-import-in-page.js +++ b/packages/eslint-plugin-next/lib/rules/no-document-import-in-page.js @@ -1,12 +1,14 @@ const path = require('path') +const url = 'https://nextjs.org/docs/messages/no-document-import-in-page' + module.exports = { meta: { docs: { description: - 'Disallow importing next/document outside of pages/document.js', + 'Prevent importing `next/document` outside of `pages/_document.js`.', recommended: true, - url: 'https://nextjs.org/docs/messages/no-document-import-in-page', + url, }, }, create: function (context) { @@ -29,7 +31,7 @@ module.exports = { context.report({ node, - message: `next/document should not be imported outside of pages/_document.js. See: https://nextjs.org/docs/messages/no-document-import-in-page`, + message: `\`<Document />\` from \`next/document\` should not be imported outside of \`pages/_document.js\`. See: ${url}`, }) }, } diff --git a/packages/eslint-plugin-next/lib/rules/no-duplicate-head.js b/packages/eslint-plugin-next/lib/rules/no-duplicate-head.js index cc15c27c83bb..a8b052141129 100644 --- a/packages/eslint-plugin-next/lib/rules/no-duplicate-head.js +++ b/packages/eslint-plugin-next/lib/rules/no-duplicate-head.js @@ -1,9 +1,12 @@ +const url = 'https://nextjs.org/docs/messages/no-duplicate-head' + module.exports = { meta: { docs: { - description: 'Enforce no duplicate usage of <Head> in pages/document.js', + description: + 'Prevent duplicate usage of `<Head>` in `pages/_document.js`.', recommended: true, - url: 'https://nextjs.org/docs/messages/no-duplicate-head', + url, }, }, create: function (context) { @@ -44,8 +47,7 @@ module.exports = { for (let i = 1; i < headComponents.length; i++) { context.report({ node: headComponents[i], - message: - 'Do not include multiple instances of <Head/>. See: https://nextjs.org/docs/messages/no-duplicate-head', + message: `Do not include multiple instances of \`<Head/>\`. See: ${url}`, }) } } diff --git a/packages/eslint-plugin-next/lib/rules/no-head-element.js b/packages/eslint-plugin-next/lib/rules/no-head-element.js index ae8def43c593..045e21a31131 100644 --- a/packages/eslint-plugin-next/lib/rules/no-head-element.js +++ b/packages/eslint-plugin-next/lib/rules/no-head-element.js @@ -1,14 +1,15 @@ +const url = 'https://nextjs.org/docs/messages/no-head-element' + module.exports = { meta: { docs: { - description: 'Prohibit usage of HTML <head> element', + description: 'Prevent usage of `<head>` element.', category: 'HTML', recommended: true, - url: 'https://nextjs.org/docs/messages/no-head-element', + url, }, fixable: 'code', }, - create: function (context) { return { JSXOpeningElement(node) { @@ -18,7 +19,7 @@ module.exports = { context.report({ node, - message: `Do not use <head>. Use Head from 'next/head' instead. See: https://nextjs.org/docs/messages/no-head-element`, + message: `Do not use \`<head>\` element. Use \`<Head />\` from \`next/head\` instead. See: ${url}`, }) }, } diff --git a/packages/eslint-plugin-next/lib/rules/no-head-import-in-document.js b/packages/eslint-plugin-next/lib/rules/no-head-import-in-document.js index e65deb425dc1..5a98ebd8497c 100644 --- a/packages/eslint-plugin-next/lib/rules/no-head-import-in-document.js +++ b/packages/eslint-plugin-next/lib/rules/no-head-import-in-document.js @@ -1,11 +1,13 @@ const path = require('path') +const url = 'https://nextjs.org/docs/messages/no-head-import-in-document' + module.exports = { meta: { docs: { - description: 'Disallow importing next/head in pages/document.js', + description: 'Prevent usage of `next/head` in `pages/_document.js`.', recommended: true, - url: 'https://nextjs.org/docs/messages/no-head-import-in-document', + url, }, }, create: function (context) { @@ -28,7 +30,7 @@ module.exports = { ) { context.report({ node, - message: `next/head should not be imported in pages${document}. Import Head from next/document instead. See: https://nextjs.org/docs/messages/no-head-import-in-document`, + message: `\`next/head\` should not be imported in \`pages${document}\`. Use \`<Head />\` from \`next/document\` instead. See: ${url}`, }) } }, diff --git a/packages/eslint-plugin-next/lib/rules/no-html-link-for-pages.js b/packages/eslint-plugin-next/lib/rules/no-html-link-for-pages.js index c26f72e851a0..967984492d1f 100644 --- a/packages/eslint-plugin-next/lib/rules/no-html-link-for-pages.js +++ b/packages/eslint-plugin-next/lib/rules/no-html-link-for-pages.js @@ -11,7 +11,7 @@ const { const pagesDirWarning = execOnce((pagesDirs) => { console.warn( `Pages directory cannot be found at ${pagesDirs.join(' or ')}. ` + - `If using a custom path, please configure with the no-html-link-for-pages rule in your eslint config file` + 'If using a custom path, please configure with the `no-html-link-for-pages` rule in your eslint config file.' ) }) @@ -19,13 +19,16 @@ const pagesDirWarning = execOnce((pagesDirs) => { // Prevent multiple blocking IO requests that have already been calculated. const fsExistsSyncCache = {} +const url = 'https://nextjs.org/docs/messages/no-html-link-for-pages' + module.exports = { meta: { docs: { - description: 'Prohibit full page refresh for Next.js pages', + description: + 'Prevent usage of `<a>` elements to navigate to internal Next.js pages.', category: 'HTML', recommended: true, - url: 'https://nextjs.org/docs/messages/no-html-link-for-pages', + url, }, fixable: null, // or "code" or "whitespace" schema: [ @@ -79,7 +82,7 @@ module.exports = { return {} } - const urls = getUrlFromPagesDirectories('/', foundPagesDirs) + const pageUrls = getUrlFromPagesDirectories('/', foundPagesDirs) return { JSXOpeningElement(node) { if (node.name.name !== 'a') { @@ -121,11 +124,11 @@ module.exports = { return } - urls.forEach((url) => { - if (url.test(normalizeURL(hrefPath))) { + pageUrls.forEach((pageUrl) => { + if (pageUrl.test(normalizeURL(hrefPath))) { context.report({ node, - message: `Do not use the HTML <a> tag to navigate to ${hrefPath}. Use Link from 'next/link' instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages`, + message: `Do not use an \`<a>\` element to navigate to \`${hrefPath}\`. Use \`<Link />\` from \`next/link\` instead. See: ${url}`, }) } }) diff --git a/packages/eslint-plugin-next/lib/rules/no-img-element.js b/packages/eslint-plugin-next/lib/rules/no-img-element.js index 8f015e59283a..a9fcbf2bb1c0 100644 --- a/packages/eslint-plugin-next/lib/rules/no-img-element.js +++ b/packages/eslint-plugin-next/lib/rules/no-img-element.js @@ -1,10 +1,12 @@ +const url = 'https://nextjs.org/docs/messages/no-img-element' + module.exports = { meta: { docs: { - description: 'Prohibit usage of HTML <img> element', + description: 'Prevent usage of `<img>` element to prevent layout shift.', category: 'HTML', recommended: true, - url: 'https://nextjs.org/docs/messages/no-img-element', + url, }, fixable: 'code', }, @@ -22,7 +24,7 @@ module.exports = { context.report({ node, - message: `Do not use <img>. Use Image from 'next/image' instead. See: https://nextjs.org/docs/messages/no-img-element`, + message: `Do not use \`<img>\` element. Use \`<Image />\` from \`next/image\` instead. See: ${url}`, }) }, } diff --git a/packages/eslint-plugin-next/lib/rules/no-page-custom-font.js b/packages/eslint-plugin-next/lib/rules/no-page-custom-font.js index 7475bedf213b..61ecf534d8f3 100644 --- a/packages/eslint-plugin-next/lib/rules/no-page-custom-font.js +++ b/packages/eslint-plugin-next/lib/rules/no-page-custom-font.js @@ -1,13 +1,14 @@ const NodeAttributes = require('../utils/node-attributes.js') const { sep, posix } = require('path') +const url = 'https://nextjs.org/docs/messages/no-page-custom-font' + module.exports = { meta: { docs: { - description: - 'Recommend adding custom font in a custom document and not in a specific page', + description: 'Prevent page-only custom fonts.', recommended: true, - url: 'https://nextjs.org/docs/messages/no-page-custom-font', + url, }, }, create: function (context) { @@ -137,12 +138,11 @@ module.exports = { hrefValue.startsWith('https://fonts.googleapis.com/css') if (isGoogleFont) { - const end = - 'This is discouraged. See: https://nextjs.org/docs/messages/no-page-custom-font' + const end = `This is discouraged. See: ${url}` const message = is_Document - ? `Rendering this <link /> not inline within <Head> of Document disables font optimization. ${end}` - : `Custom fonts not added at the document level will only load for a single page. ${end}` + ? `Using \`<link />\` outside of \`<Head>\` will disable automatic font optimization. ${end}` + : `Custom fonts not added in \`pages/_document.js\` will only load for a single page. ${end}` context.report({ node, diff --git a/packages/eslint-plugin-next/lib/rules/no-script-component-in-head.js b/packages/eslint-plugin-next/lib/rules/no-script-component-in-head.js index 90e0fbe4bc8c..82dc94b7bff3 100644 --- a/packages/eslint-plugin-next/lib/rules/no-script-component-in-head.js +++ b/packages/eslint-plugin-next/lib/rules/no-script-component-in-head.js @@ -1,9 +1,12 @@ +const url = + 'https://nextjs.org/docs/messages/no-script-component-in-head-component' + module.exports = { meta: { docs: { - description: 'Disallow using next/script inside the next/head component', + description: 'Prevent usage of `next/script` in `next/head` component.', recommended: true, - url: 'https://nextjs.org/docs/messages/no-script-component-in-head-component', + url, }, }, create: function (context) { @@ -42,8 +45,7 @@ module.exports = { if (scriptTag) { context.report({ node, - message: - "next/script shouldn't be used inside next/head. See: https://nextjs.org/docs/messages/no-script-component-in-head-component", + message: `\`next/script\` should not be used in \`next/head\` component. Move \`<Script />\` outside of \`<Head>\` instead. See: ${url}`, }) } }, diff --git a/packages/eslint-plugin-next/lib/rules/no-server-import-in-page.js b/packages/eslint-plugin-next/lib/rules/no-server-import-in-page.js index 154ccbc868cc..db0110115dd1 100644 --- a/packages/eslint-plugin-next/lib/rules/no-server-import-in-page.js +++ b/packages/eslint-plugin-next/lib/rules/no-server-import-in-page.js @@ -1,13 +1,14 @@ const path = require('path') +const url = 'https://nextjs.org/docs/messages/no-server-import-in-page' const middlewareRegExp = new RegExp(`^middleware\\.(?:t|j)s$`) module.exports = { meta: { docs: { - description: 'Disallow importing next/server outside of middleware', + description: 'Prevent usage of `next/server` outside of `middleware.js`.', recommended: true, - url: 'https://nextjs.org/docs/messages/no-server-import-in-page', + url, }, }, create: function (context) { @@ -24,7 +25,7 @@ module.exports = { context.report({ node, - message: `next/server should not be imported outside of Middleware. Read more: https://nextjs.org/docs/messages/no-server-import-in-page`, + message: `\`next/server\` should not be used outside of \`middleware.js\`. See: ${url}`, }) }, } diff --git a/packages/eslint-plugin-next/lib/rules/no-styled-jsx-in-document.js b/packages/eslint-plugin-next/lib/rules/no-styled-jsx-in-document.js index 5851c80cb1e8..0b0efea0e0e0 100644 --- a/packages/eslint-plugin-next/lib/rules/no-styled-jsx-in-document.js +++ b/packages/eslint-plugin-next/lib/rules/no-styled-jsx-in-document.js @@ -1,11 +1,13 @@ const path = require('path') +const url = 'https://nextjs.org/docs/messages/no-styled-jsx-in-document' + module.exports = { meta: { docs: { - description: 'Disallow using custom styled-jsx inside pages/_document.js', + description: 'Prevent usage of `styled-jsx` in `pages/_document.js`.', recommended: true, - url: 'https://nextjs.org/docs/messages/no-styled-jsx-in-document', + url, }, fixable: 'code', }, @@ -35,7 +37,7 @@ module.exports = { ) { context.report({ node, - message: `styled-jsx can not be used inside pages/_document.js. See https://nextjs.org/docs/messages/no-styled-jsx-in-document.`, + message: `\`styled-jsx\` should not be used in \`pages/_document.js\`. See: ${url}`, }) } }, diff --git a/packages/eslint-plugin-next/lib/rules/no-sync-scripts.js b/packages/eslint-plugin-next/lib/rules/no-sync-scripts.js index ac3e21302895..2025750b0256 100644 --- a/packages/eslint-plugin-next/lib/rules/no-sync-scripts.js +++ b/packages/eslint-plugin-next/lib/rules/no-sync-scripts.js @@ -1,28 +1,37 @@ -module.exports = function (context) { - return { - JSXOpeningElement(node) { - if (node.name.name !== 'script') { - return - } - if (node.attributes.length === 0) { - return - } - const attributeNames = node.attributes - .filter((attr) => attr.type === 'JSXAttribute') - .map((attr) => attr.name.name) - if ( - attributeNames.includes('src') && - !attributeNames.includes('async') && - !attributeNames.includes('defer') - ) { - context.report({ - node, - message: - 'External synchronous scripts are forbidden. See: https://nextjs.org/docs/messages/no-sync-scripts', - }) - } +const url = 'https://nextjs.org/docs/messages/no-sync-scripts' + +module.exports = { + meta: { + docs: { + description: 'Prevent synchronous scripts.', + recommended: true, + url, }, - } + }, + schema: [], + create: function (context) { + return { + JSXOpeningElement(node) { + if (node.name.name !== 'script') { + return + } + if (node.attributes.length === 0) { + return + } + const attributeNames = node.attributes + .filter((attr) => attr.type === 'JSXAttribute') + .map((attr) => attr.name.name) + if ( + attributeNames.includes('src') && + !attributeNames.includes('async') && + !attributeNames.includes('defer') + ) { + context.report({ + node, + message: `Synchronous scripts should not be used. See: ${url}`, + }) + } + }, + } + }, } - -module.exports.schema = [] diff --git a/packages/eslint-plugin-next/lib/rules/no-title-in-document-head.js b/packages/eslint-plugin-next/lib/rules/no-title-in-document-head.js index 9d193362f954..f2eb7d162b50 100644 --- a/packages/eslint-plugin-next/lib/rules/no-title-in-document-head.js +++ b/packages/eslint-plugin-next/lib/rules/no-title-in-document-head.js @@ -1,8 +1,11 @@ +const url = 'https://nextjs.org/docs/messages/no-title-in-document-head' + module.exports = { meta: { docs: { - description: 'Disallow using <title> with Head from next/document', - url: 'https://nextjs.org/docs/messages/no-title-in-document-head', + description: + 'Prevent usage of `<title>` with `Head` component from `next/document`.', + url, }, }, create: function (context) { @@ -39,8 +42,7 @@ module.exports = { if (titleTag) { context.report({ node: titleTag, - message: - 'Titles should be defined at the page-level using next/head. See: https://nextjs.org/docs/messages/no-title-in-document-head', + message: `Do not use \`<title>\` element with \`<Head />\` component from \`next/document\`. Titles should defined at the page-level using \`<Head />\` from \`next/head\` instead. See: ${url}`, }) } }, diff --git a/packages/eslint-plugin-next/lib/rules/no-typos.js b/packages/eslint-plugin-next/lib/rules/no-typos.js index e517993c5704..22092912fcd5 100644 --- a/packages/eslint-plugin-next/lib/rules/no-typos.js +++ b/packages/eslint-plugin-next/lib/rules/no-typos.js @@ -42,7 +42,7 @@ function minDistance(a, b) { module.exports = { meta: { docs: { - description: 'Prevent common typos', + description: 'Prevent common typos in Next.js data fetching functions.', category: 'Stylistic Issues', recommended: true, }, diff --git a/packages/eslint-plugin-next/lib/rules/no-unwanted-polyfillio.js b/packages/eslint-plugin-next/lib/rules/no-unwanted-polyfillio.js index 891903d18977..f5751e0e2b6f 100644 --- a/packages/eslint-plugin-next/lib/rules/no-unwanted-polyfillio.js +++ b/packages/eslint-plugin-next/lib/rules/no-unwanted-polyfillio.js @@ -59,19 +59,20 @@ const NEXT_POLYFILLED_FEATURES = [ 'es7', // Should be covered by babel-preset-env instead. ] +const url = 'https://nextjs.org/docs/messages/no-unwanted-polyfillio' + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ module.exports = { meta: { docs: { - description: - 'Prohibit unwanted features to be listed in Polyfill.io tag.', + description: 'Prevent duplicate polyfills from Polyfill.io.', category: 'HTML', recommended: true, - url: 'https://nextjs.org/docs/messages/no-unwanted-polyfillio', + url, }, - fixable: null, // or "code" or "whitespace" + fixable: null, }, create: function (context) { @@ -118,7 +119,7 @@ module.exports = { ', ' )} ${ unwantedFeatures.length > 1 ? 'are' : 'is' - } already shipped with Next.js. See: https://nextjs.org/docs/messages/no-unwanted-polyfillio`, + } already shipped with Next.js. See: ${url}`, }) } } diff --git a/test/integration/eslint/test/index.test.js b/test/integration/eslint/test/index.test.js index 31c7be989885..1ded794432b0 100644 --- a/test/integration/eslint/test/index.test.js +++ b/test/integration/eslint/test/index.test.js @@ -59,7 +59,7 @@ describe('ESLint', () => { const output = stdout + stderr expect(output).toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) expect(output).toContain( 'Error: Comments inside children section of tag should be placed inside braces' @@ -90,9 +90,7 @@ describe('ESLint', () => { expect(output).toContain( 'Error: Comments inside children section of tag should be placed inside braces' ) - expect(output).toContain( - 'Warning: External synchronous scripts are forbidden' - ) + expect(output).toContain('Error: Synchronous scripts should not be used.') }) test('invalid older eslint version', async () => { @@ -121,7 +119,7 @@ describe('ESLint', () => { expect(output).not.toContain('Build error occurred') expect(output).not.toContain('NoFilesFoundError') expect(output).toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) expect(output).toContain('Compiled successfully') }) @@ -136,7 +134,7 @@ describe('ESLint', () => { expect(output).not.toContain('Build error occurred') expect(output).not.toContain('AllFilesIgnoredError') expect(output).toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) expect(output).toContain('Compiled successfully') }) @@ -270,7 +268,7 @@ describe('ESLint', () => { const output = stdout + stderr expect(output).toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) expect(output).toContain( 'Error: Comments inside children section of tag should be placed inside braces' @@ -285,10 +283,10 @@ describe('ESLint', () => { const output = stdout + stderr expect(output).toContain( - "Warning: Do not use <img>. Use Image from 'next/image' instead." + 'Error: Do not use `<img>` element. Use `<Image />` from `next/image` instead.' ) expect(output).toContain( - 'Error: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) }) @@ -303,11 +301,9 @@ describe('ESLint', () => { ) const output = stdout + stderr + expect(output).toContain('Error: Synchronous scripts should not be used.') expect(output).toContain( - 'Warning: External synchronous scripts are forbidden' - ) - expect(output).toContain( - 'Error: next/document should not be imported outside of pages/_document.js.' + 'Warning: `<Document />` from `next/document` should not be imported outside of `pages/_document.js`.' ) }) @@ -323,10 +319,10 @@ describe('ESLint', () => { const output = stdout + stderr expect(output).toContain( - "Warning: Do not use <img>. Use Image from 'next/image' instead." + 'Error: Do not use `<img>` element. Use `<Image />` from `next/image` instead.' ) expect(output).toContain( - 'Error: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) }) @@ -393,7 +389,7 @@ describe('ESLint', () => { 'Error: Comments inside children section of tag should be placed inside braces' ) expect(output).not.toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) }) @@ -407,9 +403,7 @@ describe('ESLint', () => { expect(output).toContain( 'Error: Comments inside children section of tag should be placed inside braces' ) - expect(output).toContain( - 'Warning: External synchronous scripts are forbidden' - ) + expect(output).toContain('Error: Synchronous scripts should not be used.') }) test('max warnings flag errors when warnings exceed threshold', async () => { @@ -424,10 +418,10 @@ describe('ESLint', () => { expect(stderr).not.toEqual('') expect(stderr).toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) expect(stdout).not.toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) }) @@ -443,10 +437,10 @@ describe('ESLint', () => { expect(stderr).toEqual('') expect(stderr).not.toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) expect(stdout).toContain( - 'Warning: External synchronous scripts are forbidden' + 'Warning: Synchronous scripts should not be used.' ) }) @@ -462,7 +456,7 @@ describe('ESLint', () => { const output = stdout + stderr expect(output).toContain( - 'warning: External synchronous scripts are forbidden' + 'warning: Synchronous scripts should not be used.' ) expect(stdout).toContain('<script src="https://example.com" />') expect(stdout).toContain('2 warnings found') @@ -576,7 +570,7 @@ describe('ESLint', () => { ) expect(output).not.toContain('pages/') - expect(output).not.toContain('External synchronous scripts are forbidden') + expect(output).not.toContain('Synchronous scripts should not be used.') }) test('file flag can selectively lints multiple files', async () => { @@ -598,11 +592,11 @@ describe('ESLint', () => { expect(output).toContain('pages/bar.js') expect(output).toContain( - "Do not use <img>. Use Image from 'next/image' instead" + 'Do not use `<img>` element. Use `<Image />` from `next/image` instead.' ) expect(output).not.toContain('pages/index.js') - expect(output).not.toContain('External synchronous scripts are forbidden') + expect(output).not.toContain('Synchronous scripts should not be used.') }) }) }) diff --git a/test/unit/eslint-plugin-next/google-font-display.test.ts b/test/unit/eslint-plugin-next/google-font-display.test.ts index 75d40748c738..8754fc526c1a 100644 --- a/test/unit/eslint-plugin-next/google-font-display.test.ts +++ b/test/unit/eslint-plugin-next/google-font-display.test.ts @@ -53,7 +53,7 @@ ruleTester.run('google-font-display', rule, { ); } } - + export default MyDocument; `, ], @@ -76,7 +76,7 @@ ruleTester.run('google-font-display', rule, { errors: [ { message: - 'Display parameter is missing. See: https://nextjs.org/docs/messages/google-font-display', + 'A font-display parameter is missing (adding `&display=optional` is recommended). See: https://nextjs.org/docs/messages/google-font-display', type: 'JSXOpeningElement', }, ], @@ -98,7 +98,7 @@ ruleTester.run('google-font-display', rule, { errors: [ { message: - 'Block behavior is not recommended. See: https://nextjs.org/docs/messages/google-font-display', + 'Block is not recommended. See: https://nextjs.org/docs/messages/google-font-display', type: 'JSXOpeningElement', }, ], @@ -120,7 +120,7 @@ ruleTester.run('google-font-display', rule, { errors: [ { message: - 'Auto behavior is not recommended. See: https://nextjs.org/docs/messages/google-font-display', + 'Auto is not recommended. See: https://nextjs.org/docs/messages/google-font-display', type: 'JSXOpeningElement', }, ], @@ -142,7 +142,7 @@ ruleTester.run('google-font-display', rule, { errors: [ { message: - 'Fallback behavior is not recommended. See: https://nextjs.org/docs/messages/google-font-display', + 'Fallback is not recommended. See: https://nextjs.org/docs/messages/google-font-display', type: 'JSXOpeningElement', }, ], diff --git a/test/unit/eslint-plugin-next/google-font-preconnect.test.ts b/test/unit/eslint-plugin-next/google-font-preconnect.test.ts index e5669c91acaa..d5bbbc717335 100644 --- a/test/unit/eslint-plugin-next/google-font-preconnect.test.ts +++ b/test/unit/eslint-plugin-next/google-font-preconnect.test.ts @@ -42,7 +42,7 @@ ruleTester.run('google-font-preconnect', rule, { errors: [ { message: - 'Preconnect is missing. See: https://nextjs.org/docs/messages/google-font-preconnect', + '`rel="preconnect"` is missing from Google Font. See: https://nextjs.org/docs/messages/google-font-preconnect', type: 'JSXOpeningElement', }, ], @@ -58,7 +58,7 @@ ruleTester.run('google-font-preconnect', rule, { errors: [ { message: - 'Preconnect is missing. See: https://nextjs.org/docs/messages/google-font-preconnect', + '`rel="preconnect"` is missing from Google Font. See: https://nextjs.org/docs/messages/google-font-preconnect', type: 'JSXOpeningElement', }, ], diff --git a/test/unit/eslint-plugin-next/inline-script-id.test.ts b/test/unit/eslint-plugin-next/inline-script-id.test.ts index 2c563481c27a..569f258ef78f 100644 --- a/test/unit/eslint-plugin-next/inline-script-id.test.ts +++ b/test/unit/eslint-plugin-next/inline-script-id.test.ts @@ -12,7 +12,7 @@ import { RuleTester } from 'eslint' }) const errorMessage = - 'next/script components with inline content must specify an `id` attribute. See: https://nextjs.org/docs/messages/inline-script-id' + '`next/script` components with inline content must specify an `id` attribute. See: https://nextjs.org/docs/messages/inline-script-id' const ruleTester = new RuleTester() ruleTester.run('inline-script-id', rule, { diff --git a/test/unit/eslint-plugin-next/next-script-for-ga.test.ts b/test/unit/eslint-plugin-next/next-script-for-ga.test.ts index a40772eeb2e7..cee8ceb4a092 100644 --- a/test/unit/eslint-plugin-next/next-script-for-ga.test.ts +++ b/test/unit/eslint-plugin-next/next-script-for-ga.test.ts @@ -12,7 +12,7 @@ import { RuleTester } from 'eslint' }) const ERROR_MSG = - 'Use the `next/script` component for loading third party scripts. See: https://nextjs.org/docs/messages/next-script-for-ga' + 'Prefer `next/script` component when using the inline script for Google Analytics. See: https://nextjs.org/docs/messages/next-script-for-ga' const ruleTester = new RuleTester() diff --git a/test/unit/eslint-plugin-next/no-before-interactive-script-outside-document.test.ts b/test/unit/eslint-plugin-next/no-before-interactive-script-outside-document.test.ts index 68bf1209d172..48789a3e237e 100644 --- a/test/unit/eslint-plugin-next/no-before-interactive-script-outside-document.test.ts +++ b/test/unit/eslint-plugin-next/no-before-interactive-script-outside-document.test.ts @@ -124,7 +124,7 @@ ruleTester.run('no-before-interactive-script-outside-document', rule, { errors: [ { message: - 'next/script beforeInteractive strategy should only be used inside next/_document. See: https://nextjs.org/docs/messages/no-before-interactive-script-outside-document', + "`next/script`'s `beforeInteractive` strategy should not be used outside of `pages/_document.js`. See: https://nextjs.org/docs/messages/no-before-interactive-script-outside-document", }, ], }, diff --git a/test/unit/eslint-plugin-next/no-document-import-in-page.test.ts b/test/unit/eslint-plugin-next/no-document-import-in-page.test.ts index 72ee7a7f3530..ad98e079309c 100644 --- a/test/unit/eslint-plugin-next/no-document-import-in-page.test.ts +++ b/test/unit/eslint-plugin-next/no-document-import-in-page.test.ts @@ -125,7 +125,7 @@ ruleTester.run('no-document-import-in-page', rule, { errors: [ { message: - 'next/document should not be imported outside of pages/_document.js. See: https://nextjs.org/docs/messages/no-document-import-in-page', + '`<Document />` from `next/document` should not be imported outside of `pages/_document.js`. See: https://nextjs.org/docs/messages/no-document-import-in-page', type: 'ImportDeclaration', }, ], @@ -139,7 +139,7 @@ ruleTester.run('no-document-import-in-page', rule, { errors: [ { message: - 'next/document should not be imported outside of pages/_document.js. See: https://nextjs.org/docs/messages/no-document-import-in-page', + '`<Document />` from `next/document` should not be imported outside of `pages/_document.js`. See: https://nextjs.org/docs/messages/no-document-import-in-page', type: 'ImportDeclaration', }, ], @@ -153,7 +153,7 @@ ruleTester.run('no-document-import-in-page', rule, { errors: [ { message: - 'next/document should not be imported outside of pages/_document.js. See: https://nextjs.org/docs/messages/no-document-import-in-page', + '`<Document />` from `next/document` should not be imported outside of `pages/_document.js`. See: https://nextjs.org/docs/messages/no-document-import-in-page', type: 'ImportDeclaration', }, ], diff --git a/test/unit/eslint-plugin-next/no-duplicate-head.test.ts b/test/unit/eslint-plugin-next/no-duplicate-head.test.ts index 194ea827f83c..c859e8029136 100644 --- a/test/unit/eslint-plugin-next/no-duplicate-head.test.ts +++ b/test/unit/eslint-plugin-next/no-duplicate-head.test.ts @@ -21,7 +21,7 @@ ruleTester.run('no-duplicate-head', rule, { static async getInitialProps(ctx) { //... } - + render() { return ( <Html> @@ -30,7 +30,7 @@ ruleTester.run('no-duplicate-head', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document.js', @@ -38,7 +38,7 @@ ruleTester.run('no-duplicate-head', rule, { { code: `import Document, { Html, Head, Main, NextScript } from 'next/document' - class MyDocument extends Document { + class MyDocument extends Document { render() { return ( <Html> @@ -53,7 +53,7 @@ ruleTester.run('no-duplicate-head', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document.tsx', @@ -64,7 +64,7 @@ ruleTester.run('no-duplicate-head', rule, { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' - + class MyDocument extends Document { render() { return ( @@ -76,19 +76,19 @@ ruleTester.run('no-duplicate-head', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document.js', errors: [ { message: - 'Do not include multiple instances of <Head/>. See: https://nextjs.org/docs/messages/no-duplicate-head', + 'Do not include multiple instances of `<Head/>`. See: https://nextjs.org/docs/messages/no-duplicate-head', type: 'JSXElement', }, { message: - 'Do not include multiple instances of <Head/>. See: https://nextjs.org/docs/messages/no-duplicate-head', + 'Do not include multiple instances of `<Head/>`. See: https://nextjs.org/docs/messages/no-duplicate-head', type: 'JSXElement', }, ], @@ -97,7 +97,7 @@ ruleTester.run('no-duplicate-head', rule, { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' - + class MyDocument extends Document { render() { return ( @@ -124,14 +124,14 @@ ruleTester.run('no-duplicate-head', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document.page.tsx', errors: [ { message: - 'Do not include multiple instances of <Head/>. See: https://nextjs.org/docs/messages/no-duplicate-head', + 'Do not include multiple instances of `<Head/>`. See: https://nextjs.org/docs/messages/no-duplicate-head', type: 'JSXElement', }, ], diff --git a/test/unit/eslint-plugin-next/no-head-element.test.ts b/test/unit/eslint-plugin-next/no-head-element.test.ts index d1014b9374ef..25034ab2f57e 100644 --- a/test/unit/eslint-plugin-next/no-head-element.test.ts +++ b/test/unit/eslint-plugin-next/no-head-element.test.ts @@ -67,7 +67,7 @@ ruleTester.run('no-head-element', rule, { errors: [ { message: - "Do not use <head>. Use Head from 'next/head' instead. See: https://nextjs.org/docs/messages/no-head-element", + 'Do not use `<head>` element. Use `<Head />` from `next/head` instead. See: https://nextjs.org/docs/messages/no-head-element', type: 'JSXOpeningElement', }, ], @@ -93,7 +93,7 @@ ruleTester.run('no-head-element', rule, { errors: [ { message: - "Do not use <head>. Use Head from 'next/head' instead. See: https://nextjs.org/docs/messages/no-head-element", + 'Do not use `<head>` element. Use `<Head />` from `next/head` instead. See: https://nextjs.org/docs/messages/no-head-element', type: 'JSXOpeningElement', }, ], diff --git a/test/unit/eslint-plugin-next/no-head-import-in-document.test.ts b/test/unit/eslint-plugin-next/no-head-import-in-document.test.ts index 8e6edbd7e4ea..4bcaed90b7a3 100644 --- a/test/unit/eslint-plugin-next/no-head-import-in-document.test.ts +++ b/test/unit/eslint-plugin-next/no-head-import-in-document.test.ts @@ -21,7 +21,7 @@ ruleTester.run('no-head-import-in-document', rule, { static async getInitialProps(ctx) { //... } - + render() { return ( <Html> @@ -31,7 +31,7 @@ ruleTester.run('no-head-import-in-document', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document.tsx', @@ -46,7 +46,7 @@ ruleTester.run('no-head-import-in-document', rule, { <meta name="viewport" content="initial-scale=1.0, width=device-width" /> </Head> ); - } + } `, filename: 'pages/index.tsx', }, @@ -56,7 +56,7 @@ ruleTester.run('no-head-import-in-document', rule, { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' - + class MyDocument extends Document { render() { return ( @@ -70,14 +70,14 @@ ruleTester.run('no-head-import-in-document', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document.js', errors: [ { message: - 'next/head should not be imported in pages/_document.js. Import Head from next/document instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', + '`next/head` should not be imported in `pages/_document.js`. Use `<Head />` from `next/document` instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', type: 'ImportDeclaration', }, ], @@ -86,7 +86,7 @@ ruleTester.run('no-head-import-in-document', rule, { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' - + class MyDocument extends Document { render() { return ( @@ -100,14 +100,14 @@ ruleTester.run('no-head-import-in-document', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document.page.tsx', errors: [ { message: - 'next/head should not be imported in pages/_document.page.tsx. Import Head from next/document instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', + '`next/head` should not be imported in `pages/_document.page.tsx`. Use `<Head />` from `next/document` instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', type: 'ImportDeclaration', }, ], @@ -116,7 +116,7 @@ ruleTester.run('no-head-import-in-document', rule, { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' - + class MyDocument extends Document { render() { return ( @@ -130,14 +130,14 @@ ruleTester.run('no-head-import-in-document', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document/index.js', errors: [ { message: - 'next/head should not be imported in pages/_document/index.js. Import Head from next/document instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', + '`next/head` should not be imported in `pages/_document/index.js`. Use `<Head />` from `next/document` instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', type: 'ImportDeclaration', }, ], @@ -146,7 +146,7 @@ ruleTester.run('no-head-import-in-document', rule, { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' - + class MyDocument extends Document { render() { return ( @@ -160,14 +160,14 @@ ruleTester.run('no-head-import-in-document', rule, { ) } } - + export default MyDocument `, filename: 'pages/_document/index.tsx', errors: [ { message: - 'next/head should not be imported in pages/_document/index.tsx. Import Head from next/document instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', + '`next/head` should not be imported in `pages/_document/index.tsx`. Use `<Head />` from `next/document` instead. See: https://nextjs.org/docs/messages/no-head-import-in-document', type: 'ImportDeclaration', }, ], diff --git a/test/unit/eslint-plugin-next/no-html-link-for-pages.test.ts b/test/unit/eslint-plugin-next/no-html-link-for-pages.test.ts index 93cacf99edc7..e5aa38beecb1 100644 --- a/test/unit/eslint-plugin-next/no-html-link-for-pages.test.ts +++ b/test/unit/eslint-plugin-next/no-html-link-for-pages.test.ts @@ -246,7 +246,7 @@ describe('no-html-link-for-pages', function () { assert.notEqual(report, undefined, 'No lint errors found.') assert.equal( report.message, - "Do not use the HTML <a> tag to navigate to /. Use Link from 'next/link' instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages" + 'Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages' ) }) @@ -257,7 +257,7 @@ describe('no-html-link-for-pages', function () { assert.notEqual(report, undefined, 'No lint errors found.') assert.equal( report.message, - "Do not use the HTML <a> tag to navigate to /list/foo/bar/. Use Link from 'next/link' instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages" + 'Do not use an `<a>` element to navigate to `/list/foo/bar/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages' ) const [secondReport] = linter.verify( secondInvalidDynamicCode, @@ -269,7 +269,7 @@ describe('no-html-link-for-pages', function () { assert.notEqual(secondReport, undefined, 'No lint errors found.') assert.equal( secondReport.message, - "Do not use the HTML <a> tag to navigate to /list/foo/. Use Link from 'next/link' instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages" + 'Do not use an `<a>` element to navigate to `/list/foo/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages' ) const [thirdReport] = linter.verify(thirdInvalidDynamicCode, linterConfig, { filename: 'foo.js', @@ -277,7 +277,7 @@ describe('no-html-link-for-pages', function () { assert.notEqual(thirdReport, undefined, 'No lint errors found.') assert.equal( thirdReport.message, - "Do not use the HTML <a> tag to navigate to /list/lorem-ipsum/. Use Link from 'next/link' instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages" + 'Do not use an `<a>` element to navigate to `/list/lorem-ipsum/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages' ) }) }) diff --git a/test/unit/eslint-plugin-next/no-img-element.test.ts b/test/unit/eslint-plugin-next/no-img-element.test.ts index 0db0d7f2a9a3..e9d255a64d5d 100644 --- a/test/unit/eslint-plugin-next/no-img-element.test.ts +++ b/test/unit/eslint-plugin-next/no-img-element.test.ts @@ -38,7 +38,7 @@ ruleTester.run('no-img-element', rule, { render() { return ( <div> - <img + <img src="/test.png" alt="Test picture" width={500} @@ -51,7 +51,7 @@ ruleTester.run('no-img-element', rule, { errors: [ { message: - "Do not use <img>. Use Image from 'next/image' instead. See: https://nextjs.org/docs/messages/no-img-element", + 'Do not use `<img>` element. Use `<Image />` from `next/image` instead. See: https://nextjs.org/docs/messages/no-img-element', type: 'JSXOpeningElement', }, ], diff --git a/test/unit/eslint-plugin-next/no-page-custom-font.test.ts b/test/unit/eslint-plugin-next/no-page-custom-font.test.ts index 9318010ef262..8e2a5623c8ca 100644 --- a/test/unit/eslint-plugin-next/no-page-custom-font.test.ts +++ b/test/unit/eslint-plugin-next/no-page-custom-font.test.ts @@ -148,7 +148,7 @@ ruleTester.run('no-page-custom-font', rule, { errors: [ { message: - 'Custom fonts not added at the document level will only load for a single page. This is discouraged. See: https://nextjs.org/docs/messages/no-page-custom-font', + 'Custom fonts not added in `pages/_document.js` will only load for a single page. This is discouraged. See: https://nextjs.org/docs/messages/no-page-custom-font', type: 'JSXOpeningElement', }, ], @@ -188,11 +188,11 @@ ruleTester.run('no-page-custom-font', rule, { errors: [ { message: - 'Rendering this <link /> not inline within <Head> of Document disables font optimization. This is discouraged. See: https://nextjs.org/docs/messages/no-page-custom-font', + 'Using `<link />` outside of `<Head>` will disable automatic font optimization. This is discouraged. See: https://nextjs.org/docs/messages/no-page-custom-font', }, { message: - 'Rendering this <link /> not inline within <Head> of Document disables font optimization. This is discouraged. See: https://nextjs.org/docs/messages/no-page-custom-font', + 'Using `<link />` outside of `<Head>` will disable automatic font optimization. This is discouraged. See: https://nextjs.org/docs/messages/no-page-custom-font', }, ], }, diff --git a/test/unit/eslint-plugin-next/no-script-component-in-head.test.ts b/test/unit/eslint-plugin-next/no-script-component-in-head.test.ts index 3a1165213278..a6882b12b961 100644 --- a/test/unit/eslint-plugin-next/no-script-component-in-head.test.ts +++ b/test/unit/eslint-plugin-next/no-script-component-in-head.test.ts @@ -32,7 +32,7 @@ ruleTester.run('no-script-in-head', rule, { code: ` import Head from "next/head"; import Script from "next/script"; - + export default function Index() { return ( <Head> @@ -44,7 +44,7 @@ ruleTester.run('no-script-in-head', rule, { errors: [ { message: - "next/script shouldn't be used inside next/head. See: https://nextjs.org/docs/messages/no-script-component-in-head-component", + '`next/script` should not be used in `next/head` component. Move `<Script />` outside of `<Head>` instead. See: https://nextjs.org/docs/messages/no-script-component-in-head-component', }, ], }, diff --git a/test/unit/eslint-plugin-next/no-server-import-in-page.test.ts b/test/unit/eslint-plugin-next/no-server-import-in-page.test.ts index 96c521cab1ac..fdbfff345962 100644 --- a/test/unit/eslint-plugin-next/no-server-import-in-page.test.ts +++ b/test/unit/eslint-plugin-next/no-server-import-in-page.test.ts @@ -16,7 +16,7 @@ const ruleTester = new RuleTester() const errors = [ { message: - 'next/server should not be imported outside of Middleware. Read more: https://nextjs.org/docs/messages/no-server-import-in-page', + '`next/server` should not be used outside of `middleware.js`. See: https://nextjs.org/docs/messages/no-server-import-in-page', type: 'ImportDeclaration', }, ] diff --git a/test/unit/eslint-plugin-next/no-styled-jsx-in-document.test.ts b/test/unit/eslint-plugin-next/no-styled-jsx-in-document.test.ts index b6cce7043dbe..5a91d5f0bafd 100644 --- a/test/unit/eslint-plugin-next/no-styled-jsx-in-document.test.ts +++ b/test/unit/eslint-plugin-next/no-styled-jsx-in-document.test.ts @@ -23,7 +23,7 @@ ruleTester.run('no-styled-jsx-in-document', rule, { const initialProps = await Document.getInitialProps(ctx) return { ...initialProps } } - + render() { return ( <Html> @@ -46,7 +46,7 @@ ruleTester.run('no-styled-jsx-in-document', rule, { const initialProps = await Document.getInitialProps(ctx) return { ...initialProps } } - + render() { return ( <Html> @@ -96,7 +96,7 @@ ruleTester.run('no-styled-jsx-in-document', rule, { const initialProps = await Document.getInitialProps(ctx) return { ...initialProps } } - + render() { return ( <Html> @@ -116,8 +116,7 @@ ruleTester.run('no-styled-jsx-in-document', rule, { }`, errors: [ { - message: - 'styled-jsx can not be used inside pages/_document.js. See https://nextjs.org/docs/messages/no-styled-jsx-in-document.', + message: `\`styled-jsx\` should not be used in \`pages/_document.js\`. See: https://nextjs.org/docs/messages/no-styled-jsx-in-document`, }, ], }, diff --git a/test/unit/eslint-plugin-next/no-sync-scripts.test.ts b/test/unit/eslint-plugin-next/no-sync-scripts.test.ts index bf006441cd5c..90d4267efa8c 100644 --- a/test/unit/eslint-plugin-next/no-sync-scripts.test.ts +++ b/test/unit/eslint-plugin-next/no-sync-scripts.test.ts @@ -58,7 +58,7 @@ ruleTester.run('sync-scripts', rule, { errors: [ { message: - 'External synchronous scripts are forbidden. See: https://nextjs.org/docs/messages/no-sync-scripts', + 'Synchronous scripts should not be used. See: https://nextjs.org/docs/messages/no-sync-scripts', type: 'JSXOpeningElement', }, ], @@ -80,7 +80,7 @@ ruleTester.run('sync-scripts', rule, { errors: [ { message: - 'External synchronous scripts are forbidden. See: https://nextjs.org/docs/messages/no-sync-scripts', + 'Synchronous scripts should not be used. See: https://nextjs.org/docs/messages/no-sync-scripts', type: 'JSXOpeningElement', }, ], diff --git a/test/unit/eslint-plugin-next/no-title-in-document-head.test.ts b/test/unit/eslint-plugin-next/no-title-in-document-head.test.ts index d0630191a47c..8877d0c1343d 100644 --- a/test/unit/eslint-plugin-next/no-title-in-document-head.test.ts +++ b/test/unit/eslint-plugin-next/no-title-in-document-head.test.ts @@ -38,7 +38,7 @@ ruleTester.run('no-title-in-document-head', rule, { ); } } - + export default MyDocument; `, ], @@ -60,7 +60,7 @@ ruleTester.run('no-title-in-document-head', rule, { errors: [ { message: - 'Titles should be defined at the page-level using next/head. See: https://nextjs.org/docs/messages/no-title-in-document-head', + 'Do not use `<title>` element with `<Head />` component from `next/document`. Titles should defined at the page-level using `<Head />` from `next/head` instead. See: https://nextjs.org/docs/messages/no-title-in-document-head', type: 'JSXElement', }, ], From e7f08ef0402b3fec099a39b11f0faf7818178ea3 Mon Sep 17 00:00:00 2001 From: JJ Kasper <jj@jjsweb.site> Date: Mon, 13 Jun 2022 22:07:40 -0500 Subject: [PATCH 034/149] Ensure custom middleware matcher is used correctly in client manifest (#37672) * Ensure custom middleware matcher is used correctly in client manifest * lint-fix * patch e2e case * fix rsc case * update test * add missing normalize --- .../build/analysis/get-page-static-info.ts | 6 +- .../webpack/plugins/middleware-plugin.ts | 2 +- packages/next/server/base-server.ts | 1 + packages/next/server/dev/next-dev-server.ts | 6 +- packages/next/shared/lib/router/router.ts | 32 +++-- .../e2e/middleware-general/test/index.test.ts | 2 - test/e2e/middleware-matcher/app/middleware.js | 11 ++ .../app/pages/another-middleware.js | 22 ++++ .../app/pages/blog/[slug].js | 27 ++++ .../e2e/middleware-matcher/app/pages/index.js | 26 ++++ .../app/pages/with-middleware.js | 16 +++ .../index.test.ts | 123 +++++++++--------- .../test/index.test.js | 8 +- 13 files changed, 198 insertions(+), 84 deletions(-) create mode 100644 test/e2e/middleware-matcher/app/middleware.js create mode 100644 test/e2e/middleware-matcher/app/pages/another-middleware.js create mode 100644 test/e2e/middleware-matcher/app/pages/blog/[slug].js create mode 100644 test/e2e/middleware-matcher/app/pages/index.js create mode 100644 test/e2e/middleware-matcher/app/pages/with-middleware.js rename test/e2e/{middleware-can-set-the-matcher-in-its-config => middleware-matcher}/index.test.ts (68%) diff --git a/packages/next/build/analysis/get-page-static-info.ts b/packages/next/build/analysis/get-page-static-info.ts index 8d995ab4a011..3f70a33e7b47 100644 --- a/packages/next/build/analysis/get-page-static-info.ts +++ b/packages/next/build/analysis/get-page-static-info.ts @@ -4,7 +4,6 @@ import { tryToExtractExportedConstValue } from './extract-const-value' import { parseModule } from './parse-module' import { promises as fs } from 'fs' import { tryToParsePath } from '../../lib/try-to-parse-path' -import { isMiddlewareFile } from '../utils' import * as Log from '../output/log' interface MiddlewareConfig { @@ -50,8 +49,7 @@ export async function getPageStaticInfo(params: { runtime = 'edge' } - const middlewareConfig = - isMiddlewareFile(params.page!) && getMiddlewareConfig(config) + const middlewareConfig = getMiddlewareConfig(config) return { ssr, @@ -163,6 +161,8 @@ function getMiddlewareRegExpStrings(matcherOrMatchers: unknown): string[] { throw new Error(`Invalid path matcher: ${matcher}`) } + // TODO: is the dataMatcher still needed now that we normalize this + // away while resolving routes const dataMatcher = `/_next/data/:__nextjsBuildId__${matcher}.json` const parsedDataRoute = tryToParsePath(dataMatcher) diff --git a/packages/next/build/webpack/plugins/middleware-plugin.ts b/packages/next/build/webpack/plugins/middleware-plugin.ts index 882d7f12effd..bcf9ea94e061 100644 --- a/packages/next/build/webpack/plugins/middleware-plugin.ts +++ b/packages/next/build/webpack/plugins/middleware-plugin.ts @@ -465,7 +465,7 @@ function getCreateAssets(params: { middlewareManifest.clientInfo = middlewareManifest.sortedMiddleware.map( (key) => [ - key, + middlewareManifest.middleware[key].regexp, !!metadataByEntry.get(middlewareManifest.middleware[key].name)?.edgeSSR, ] ) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index 309c4bdcacc1..16b9d08cdf47 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -529,6 +529,7 @@ export default abstract class Server<ServerOptions extends Options = Options> { let matcherParams = utils.dynamicRouteMatcher?.(normalizedUrlPath) if (matcherParams) { + utils.normalizeDynamicRouteParams(matcherParams) Object.assign(paramsResult.params, matcherParams) paramsResult.hasValidParams = true } diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index a63596d2dbf1..8234b4ef6bf9 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -323,7 +323,8 @@ export default class DevServer extends Server { if (isMiddlewareFile(rootFile)) { this.actualMiddlewareFile = rootFile - middlewareMatcher = staticInfo.middleware?.pathMatcher + middlewareMatcher = + staticInfo.middleware?.pathMatcher || new RegExp('.*') routedMiddleware.push('/') continue } @@ -391,6 +392,7 @@ export default class DevServer extends Server { }) ), page, + re: middlewareMatcher, ssr: ssrMiddleware.has(page), } }) @@ -911,7 +913,7 @@ export default class DevServer extends Server { .body( JSON.stringify( this.getMiddleware().map((middleware) => [ - middleware.page, + (middleware as any).re.source, !!middleware.ssr, ]) ) diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index bb30ee9bb3c5..ede393f8e460 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -35,7 +35,7 @@ import { parseRelativeUrl } from './utils/parse-relative-url' import { searchParamsToUrlQuery } from './utils/querystring' import resolveRewrites from './utils/resolve-rewrites' import { getRouteMatcher } from './utils/route-matcher' -import { getRouteRegex, getMiddlewareRegex } from './utils/route-regex' +import { getRouteRegex } from './utils/route-regex' import { formatWithValidation } from './utils/format-url' import { detectDomainLocale } from '../../../client/detect-domain-locale' import { parsePath } from './utils/parse-path' @@ -385,6 +385,7 @@ export type CompletePrivateRouteInfo = { props?: Record<string, any> err?: Error error?: any + route?: string } export type AppProps = Pick<CompletePrivateRouteInfo, 'Component' | 'err'> & { @@ -1186,14 +1187,13 @@ export default class Router implements BaseRouter { `\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as` ) } - window.location.href = as return false } resolvedAs = removeLocale(removeBasePath(resolvedAs), nextState.locale) - const route = removeTrailingSlash(pathname) + let route = removeTrailingSlash(pathname) if (!isMiddlewareMatch && isDynamicRoute(route)) { const parsedAs = parseRelativeUrl(resolvedAs) @@ -1265,6 +1265,10 @@ export default class Router implements BaseRouter { isPreview: nextState.isPreview, }) + if ('route' in routeInfo) { + pathname = routeInfo.route || route + } + // If the routeInfo brings a redirect we simply apply it. if ('type' in routeInfo) { if (routeInfo.type === 'redirect-internal') { @@ -1314,7 +1318,6 @@ export default class Router implements BaseRouter { ) return this.change(method, newUrl, newAs, options) } - window.location.href = destination return new Promise(() => {}) } @@ -1742,6 +1745,7 @@ export default class Router implements BaseRouter { } routeInfo.props = props + routeInfo.route = route this.components[route] = routeInfo return routeInfo } catch (err) { @@ -2109,19 +2113,15 @@ function matchesMiddleware<T extends FetchDataOutput>( options: MiddlewareEffectParams<T> ): Promise<boolean> { return Promise.resolve(options.router.pageLoader.getMiddlewareList()).then( - (fns) => { + (items) => { const { pathname: asPathname } = parsePath(options.asPath) const cleanedAs = removeLocale( hasBasePath(asPathname) ? removeBasePath(asPathname) : asPathname, options.locale ) - return fns.some(([middleware, isSSR]) => { - return getRouteMatcher( - getMiddlewareRegex(middleware, { - catchAll: !isSSR, - }) - )(cleanedAs) + return items?.some(([regex]) => { + return new RegExp(regex).test(cleanedAs) }) } ) @@ -2170,7 +2170,15 @@ function getMiddlewareData<T extends FetchDataOutput>( trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH), } - const rewriteTarget = response.headers.get('x-nextjs-matched-path') + // TODO: ensure x-nextjs-matched-path is always present instead of both + // variants + let rewriteTarget = response.headers.get('x-nextjs-matched-path') + + const matchedPath = response.headers.get('x-matched-path') + + if (!rewriteTarget && !matchedPath?.includes('__next_data_catchall')) { + rewriteTarget = matchedPath + } if (rewriteTarget) { if (rewriteTarget.startsWith('/')) { diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index 95f8c86f2a9c..9832df15e5a7 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -118,7 +118,6 @@ describe('Middleware Runtime', () => { }) } - // TODO: re-enable after fixing server-side resolving priority it('should redirect the same for direct visit and client-transition', async () => { const res = await fetchViaHTTP( next.url, @@ -141,7 +140,6 @@ describe('Middleware Runtime', () => { }, 'success') }) - // TODO: re-enable after fixing server-side resolving priority it('should rewrite the same for direct visit and client-transition', async () => { const res = await fetchViaHTTP(next.url, `${locale}/rewrite-1`) expect(res.status).toBe(200) diff --git a/test/e2e/middleware-matcher/app/middleware.js b/test/e2e/middleware-matcher/app/middleware.js new file mode 100644 index 000000000000..242080626645 --- /dev/null +++ b/test/e2e/middleware-matcher/app/middleware.js @@ -0,0 +1,11 @@ +import { NextResponse } from 'next/server' + +export const config = { + matcher: ['/with-middleware/:path*', '/another-middleware/:path*'], +} + +export default (req) => { + const res = NextResponse.next() + res.headers.set('X-From-Middleware', 'true') + return res +} diff --git a/test/e2e/middleware-matcher/app/pages/another-middleware.js b/test/e2e/middleware-matcher/app/pages/another-middleware.js new file mode 100644 index 000000000000..1b7c0e7560ba --- /dev/null +++ b/test/e2e/middleware-matcher/app/pages/another-middleware.js @@ -0,0 +1,22 @@ +import Link from 'next/link' + +export default function Page(props) { + return ( + <div> + <p id="another-middleware">This should also run the middleware</p> + <p id="props">{JSON.stringify(props)}</p> + <Link href="/"> + <a id="to-index">to /</a> + </Link> + <br /> + </div> + ) +} + +export const getServerSideProps = () => { + return { + props: { + message: 'Hello, magnificent world.', + }, + } +} diff --git a/test/e2e/middleware-matcher/app/pages/blog/[slug].js b/test/e2e/middleware-matcher/app/pages/blog/[slug].js new file mode 100644 index 000000000000..2f99a6758222 --- /dev/null +++ b/test/e2e/middleware-matcher/app/pages/blog/[slug].js @@ -0,0 +1,27 @@ +import Link from 'next/link' + +export default function Page(props) { + return ( + <div> + <p id="blog">This should not run the middleware</p> + <p id="props">{JSON.stringify(props)}</p> + <Link href="/another-middleware"> + <a id="to-another-middleware">to /another-middleware</a> + </Link> + <br /> + <Link href="/blog/slug-2"> + <a id="to-blog-slug-2">to /blog/slug-2</a> + </Link> + <br /> + </div> + ) +} + +export const getServerSideProps = ({ params }) => { + return { + props: { + params, + message: 'Hello, magnificent world.', + }, + } +} diff --git a/test/e2e/middleware-matcher/app/pages/index.js b/test/e2e/middleware-matcher/app/pages/index.js new file mode 100644 index 000000000000..d6b60bc00439 --- /dev/null +++ b/test/e2e/middleware-matcher/app/pages/index.js @@ -0,0 +1,26 @@ +import Link from 'next/link' + +export default function Page(props) { + return ( + <div> + <p id="index">root page</p> + <p id="props">{JSON.stringify(props)}</p> + <Link href="/another-middleware"> + <a id="to-another-middleware">to /another-middleware</a> + </Link> + <br /> + <Link href="/blog/slug-1"> + <a id="to-blog-slug-1">to /blog/slug-1</a> + </Link> + <br /> + </div> + ) +} + +export const getServerSideProps = () => { + return { + props: { + message: 'Hello, world.', + }, + } +} diff --git a/test/e2e/middleware-matcher/app/pages/with-middleware.js b/test/e2e/middleware-matcher/app/pages/with-middleware.js new file mode 100644 index 000000000000..da078df25fe3 --- /dev/null +++ b/test/e2e/middleware-matcher/app/pages/with-middleware.js @@ -0,0 +1,16 @@ +export default function Page({ message }) { + return ( + <div> + <p>This should run the middleware</p> + <p>{message}</p> + </div> + ) +} + +export const getServerSideProps = () => { + return { + props: { + message: 'Hello, cruel world.', + }, + } +} diff --git a/test/e2e/middleware-can-set-the-matcher-in-its-config/index.test.ts b/test/e2e/middleware-matcher/index.test.ts similarity index 68% rename from test/e2e/middleware-can-set-the-matcher-in-its-config/index.test.ts rename to test/e2e/middleware-matcher/index.test.ts index 541405661d20..fd21605ca644 100644 --- a/test/e2e/middleware-can-set-the-matcher-in-its-config/index.test.ts +++ b/test/e2e/middleware-matcher/index.test.ts @@ -1,73 +1,15 @@ -import { createNext } from 'e2e-utils' +import { createNext, FileRef } from 'e2e-utils' import { NextInstance } from 'test/lib/next-modes/base' -import { fetchViaHTTP } from 'next-test-utils' +import { check, fetchViaHTTP } from 'next-test-utils' +import { join } from 'path' +import webdriver from 'next-webdriver' describe('Middleware can set the matcher in its config', () => { let next: NextInstance beforeAll(async () => { next = await createNext({ - files: { - 'pages/index.js': ` - export default function Page({ message }) { - return <div> - <p>root page</p> - <p>{message}</p> - </div> - } - - export const getServerSideProps = () => { - return { - props: { - message: "Hello, world." - } - } - } - `, - 'pages/with-middleware/index.js': ` - export default function Page({ message }) { - return <div> - <p>This should run the middleware</p> - <p>{message}</p> - </div> - } - - export const getServerSideProps = () => { - return { - props: { - message: "Hello, cruel world." - } - } - } - `, - 'pages/another-middleware/index.js': ` - export default function Page({ message }) { - return <div> - <p>This should also run the middleware</p> - <p>{message}</p> - </div> - } - - export const getServerSideProps = () => { - return { - props: { - message: "Hello, magnificent world." - } - } - } - `, - 'middleware.js': ` - import { NextResponse } from 'next/server' - export const config = { - matcher: ['/with-middleware/:path*', '/another-middleware/:path*'] - }; - export default (req) => { - const res = NextResponse.next(); - res.headers.set('X-From-Middleware', 'true'); - return res; - } - `, - }, + files: new FileRef(join(__dirname, 'app')), dependencies: {}, }) }) @@ -131,6 +73,60 @@ describe('Middleware can set the matcher in its config', () => { }) expect(response.headers.get('X-From-Middleware')).toBeNull() }) + + it('should load matches in client manifest correctly', async () => { + const browser = await webdriver(next.url, '/') + + await check(async () => { + const manifest = await browser.eval( + (global as any).isNextDev + ? 'window.__DEV_MIDDLEWARE_MANIFEST' + : 'window.__MIDDLEWARE_MANIFEST' + ) + + return Array.isArray(manifest) && + manifest?.[0]?.[0].includes('with-middleware') && + manifest?.[0]?.[0].includes('another-middleware') + ? 'success' + : manifest + }, 'success') + }) + + it('should navigate correctly with matchers', async () => { + const browser = await webdriver(next.url, '/') + await browser.eval('window.beforeNav = 1') + + await browser.elementByCss('#to-another-middleware').click() + await browser.waitForElementByCss('#another-middleware') + + expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({ + message: 'Hello, magnificent world.', + }) + + await browser.elementByCss('#to-index').click() + await browser.waitForElementByCss('#index') + + await browser.elementByCss('#to-blog-slug-1').click() + await browser.waitForElementByCss('#blog') + expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({ + message: 'Hello, magnificent world.', + params: { + slug: 'slug-1', + }, + }) + + await browser.elementByCss('#to-blog-slug-2').click() + await check( + () => browser.eval('document.documentElement.innerHTML'), + /"slug":"slug-2"/ + ) + expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({ + message: 'Hello, magnificent world.', + params: { + slug: 'slug-2', + }, + }) + }) }) describe('using a single matcher', () => { @@ -170,6 +166,7 @@ describe('using a single matcher', () => { }) }) afterAll(() => next.destroy()) + it('adds the header for a matched path', async () => { const response = await fetchViaHTTP(next.url, '/middleware/works') expect(await response.text()).toContain('Hello from /middleware/works') diff --git a/test/integration/react-streaming-and-server-components/test/index.test.js b/test/integration/react-streaming-and-server-components/test/index.test.js index f4e34947408f..f03ff97129fa 100644 --- a/test/integration/react-streaming-and-server-components/test/index.test.js +++ b/test/integration/react-streaming-and-server-components/test/index.test.js @@ -115,7 +115,13 @@ const edgeRuntimeBasicSuite = { ['/next-api/link', true], ['/routes/[dynamic]', true], ]) { - expect(content.clientInfo).toContainEqual(item) + expect( + content.clientInfo.some((infoItem) => { + return ( + item[1] === infoItem[1] && new RegExp(infoItem[0]).test(item[0]) + ) + }) + ).toBe(true) } expect(content.clientInfo).not.toContainEqual([['/404', true]]) }) From 75053a06f842f8f2bd22b4e489ddc0425b558e4c Mon Sep 17 00:00:00 2001 From: JJ Kasper <jj@jjsweb.site> Date: Mon, 13 Jun 2022 22:11:26 -0500 Subject: [PATCH 035/149] v12.1.7-canary.38 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 ++-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +++++++------- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 16 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index af3825d8f7dc..45425de5c4a4 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.37" + "version": "12.1.7-canary.38" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index a3c7b295f328..d2ab6276ac5d 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 65410722b624..6b32266ecc71 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.37", + "@next/eslint-plugin-next": "12.1.7-canary.38", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 3c1b3dd34c2d..89b610d2585b 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index a2fc8b197257..6616e105cf83 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index 3f435455407c..529abdde2562 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index f1f241b5a2dc..da8c9b0635c5 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 84f98f95b067..71c7d5ccdc81 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index c1ce9006c784..e55d14ee2354 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index 1c4cf142658c..5caf376c0fa6 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index 124c89ba5295..b9822ee321ee 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index ffe7c78b40b9..744217f8e498 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index e027e93e6e31..932411f31a0a 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.37", + "@next/env": "12.1.7-canary.38", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.37", - "@next/polyfill-nomodule": "12.1.7-canary.37", - "@next/react-dev-overlay": "12.1.7-canary.37", - "@next/react-refresh-utils": "12.1.7-canary.37", - "@next/swc": "12.1.7-canary.37", + "@next/polyfill-module": "12.1.7-canary.38", + "@next/polyfill-nomodule": "12.1.7-canary.38", + "@next/react-dev-overlay": "12.1.7-canary.38", + "@next/react-refresh-utils": "12.1.7-canary.38", + "@next/swc": "12.1.7-canary.38", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index edd720a8da16..190e78998022 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 19718949dcd4..028791c48efd 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.37", + "version": "12.1.7-canary.38", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49635c431525..955f08ab325f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.37 + '@next/eslint-plugin-next': 12.1.7-canary.38 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.37 - '@next/polyfill-module': 12.1.7-canary.37 - '@next/polyfill-nomodule': 12.1.7-canary.37 - '@next/react-dev-overlay': 12.1.7-canary.37 - '@next/react-refresh-utils': 12.1.7-canary.37 - '@next/swc': 12.1.7-canary.37 + '@next/env': 12.1.7-canary.38 + '@next/polyfill-module': 12.1.7-canary.38 + '@next/polyfill-nomodule': 12.1.7-canary.38 + '@next/react-dev-overlay': 12.1.7-canary.38 + '@next/react-refresh-utils': 12.1.7-canary.38 + '@next/swc': 12.1.7-canary.38 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 From 3a22c4c554814cf645c612db78934b4face077d5 Mon Sep 17 00:00:00 2001 From: Max Proske <max@mproske.com> Date: Tue, 14 Jun 2022 01:49:09 -0700 Subject: [PATCH 036/149] Convert active-class-name example to TypeScript (#37676) The Contributing guidelines say TypeScript should be leveraged for new examples, so I thought I'd convert this example over. I also: - Upgraded all dependencies - Replaced the `prop-types` package with TypeScript types ## Documentation / Examples - [X] Make sure the linting passes by running `pnpm lint` - [X] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) --- .../{ActiveLink.js => ActiveLink.tsx} | 27 +++++++++++-------- .../components/{Nav.js => Nav.tsx} | 0 examples/active-class-name/next-env.d.ts | 5 ++++ examples/active-class-name/package.json | 11 +++++--- .../pages/{[slug].js => [slug].tsx} | 0 .../pages/{about.js => about.tsx} | 0 .../pages/{index.js => index.tsx} | 0 examples/active-class-name/tsconfig.json | 20 ++++++++++++++ 8 files changed, 49 insertions(+), 14 deletions(-) rename examples/active-class-name/components/{ActiveLink.js => ActiveLink.tsx} (72%) rename examples/active-class-name/components/{Nav.js => Nav.tsx} (100%) create mode 100644 examples/active-class-name/next-env.d.ts rename examples/active-class-name/pages/{[slug].js => [slug].tsx} (100%) rename examples/active-class-name/pages/{about.js => about.tsx} (100%) rename examples/active-class-name/pages/{index.js => index.tsx} (100%) create mode 100644 examples/active-class-name/tsconfig.json diff --git a/examples/active-class-name/components/ActiveLink.js b/examples/active-class-name/components/ActiveLink.tsx similarity index 72% rename from examples/active-class-name/components/ActiveLink.js rename to examples/active-class-name/components/ActiveLink.tsx index 7ada49c52056..8e8ad0d29c7f 100644 --- a/examples/active-class-name/components/ActiveLink.js +++ b/examples/active-class-name/components/ActiveLink.tsx @@ -1,10 +1,17 @@ -import { useState, useEffect } from 'react' import { useRouter } from 'next/router' -import PropTypes from 'prop-types' -import Link from 'next/link' -import React, { Children } from 'react' +import Link, { LinkProps } from 'next/link' +import React, { useState, useEffect, ReactElement, Children } from 'react' -const ActiveLink = ({ children, activeClassName, ...props }) => { +type ActiveLinkProps = LinkProps & { + children: ReactElement + activeClassName: string +} + +const ActiveLink = ({ + children, + activeClassName, + ...props +}: ActiveLinkProps) => { const { asPath, isReady } = useRouter() const child = Children.only(children) @@ -16,8 +23,10 @@ const ActiveLink = ({ children, activeClassName, ...props }) => { if (isReady) { // Dynamic route will be matched via props.as // Static route will be matched via props.href - const linkPathname = new URL(props.as || props.href, location.href) - .pathname + const linkPathname = new URL( + (props.as || props.href) as string, + location.href + ).pathname // Using URL().pathname to get rid of query and hash const activePathname = new URL(asPath, location.href).pathname @@ -51,8 +60,4 @@ const ActiveLink = ({ children, activeClassName, ...props }) => { ) } -ActiveLink.propTypes = { - activeClassName: PropTypes.string.isRequired, -} - export default ActiveLink diff --git a/examples/active-class-name/components/Nav.js b/examples/active-class-name/components/Nav.tsx similarity index 100% rename from examples/active-class-name/components/Nav.js rename to examples/active-class-name/components/Nav.tsx diff --git a/examples/active-class-name/next-env.d.ts b/examples/active-class-name/next-env.d.ts new file mode 100644 index 000000000000..4f11a03dc6cc --- /dev/null +++ b/examples/active-class-name/next-env.d.ts @@ -0,0 +1,5 @@ +/// <reference types="next" /> +/// <reference types="next/image-types/global" /> + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/active-class-name/package.json b/examples/active-class-name/package.json index 6513b825ee0a..519869cf3d36 100644 --- a/examples/active-class-name/package.json +++ b/examples/active-class-name/package.json @@ -7,8 +7,13 @@ }, "dependencies": { "next": "latest", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "prop-types": "^15.7.2" + "react": "18.1.0", + "react-dom": "18.1.0" + }, + "devDependencies": { + "@types/node": "17.0.42", + "@types/react": "18.0.12", + "@types/react-dom": "18.0.5", + "typescript": "4.7.3" } } diff --git a/examples/active-class-name/pages/[slug].js b/examples/active-class-name/pages/[slug].tsx similarity index 100% rename from examples/active-class-name/pages/[slug].js rename to examples/active-class-name/pages/[slug].tsx diff --git a/examples/active-class-name/pages/about.js b/examples/active-class-name/pages/about.tsx similarity index 100% rename from examples/active-class-name/pages/about.js rename to examples/active-class-name/pages/about.tsx diff --git a/examples/active-class-name/pages/index.js b/examples/active-class-name/pages/index.tsx similarity index 100% rename from examples/active-class-name/pages/index.js rename to examples/active-class-name/pages/index.tsx diff --git a/examples/active-class-name/tsconfig.json b/examples/active-class-name/tsconfig.json new file mode 100644 index 000000000000..99710e857874 --- /dev/null +++ b/examples/active-class-name/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} From 78809a3d68fcf216c5c31089160412edad487900 Mon Sep 17 00:00:00 2001 From: Max Proske <max@mproske.com> Date: Tue, 14 Jun 2022 04:13:55 -0700 Subject: [PATCH 037/149] Add with-docker-compose example (#32668) `with-docker-compose` contains everything needed to get Next.js up and running with Docker Compose. This example aims to provide an easy-to-use, Next.js app development and production environment, **all without Node.js being installed** on the host machine. This ensures a consistent development environment across Windows, MacOS, and Linux teams. I was inspired to create this, because the existing [with-docker](https://github.com/vercel/next.js/tree/canary/examples/with-docker) example only uses Docker to build the final production artifacts, not provide a development environment. Docker Compose easily syncs changes with containers for Hot Reloading, parallel builds, and networking, making it a powerful and consistent development tool. Developers can **easily extend this example** by modifying the YAML files to include Nginx, Postgres, and other Docker images. This example takes advantage of Docker multistage builds combined with the Next 12.1 [Output Standalone](https://nextjs.org/docs/advanced-features/output-file-tracing#automatically-copying-traced-files-experimental) feature, to create up to **80% smaller apps** (Approximately 110 MB compared to 1 GB with create-next-app). I also included an example without multistage builds, for developers who don't want to get into the weeds. I have been tweaking this Docker Compose setup over 3 years of real world use, but please let me know if anything can be improved. --- examples/with-docker-compose/.dockerignore | 0 examples/with-docker-compose/.env | 5 + examples/with-docker-compose/.gitignore | 34 +++++ examples/with-docker-compose/README.md | 92 +++++++++++++ .../docker-compose.dev.yml | 27 ++++ ...docker-compose.prod-without-multistage.yml | 24 ++++ .../docker-compose.prod.yml | 24 ++++ .../with-docker-compose/next-app/.gitignore | 34 +++++ .../next-app/dev.Dockerfile | 15 ++ .../next-app/next-env.d.ts | 5 + .../next-app/next.config.js | 5 + .../with-docker-compose/next-app/package.json | 19 +++ .../prod-without-multistage.Dockerfile | 28 ++++ .../next-app/prod.Dockerfile | 57 ++++++++ .../next-app/public/favicon.ico | Bin 0 -> 15086 bytes .../next-app/public/vercel.svg | 4 + .../next-app/src/pages/_app.tsx | 6 + .../next-app/src/pages/index.tsx | 68 ++++++++++ .../next-app/src/styles/Home.module.css | 128 ++++++++++++++++++ .../next-app/src/styles/globals.css | 16 +++ .../next-app/tsconfig.json | 20 +++ 21 files changed, 611 insertions(+) create mode 100644 examples/with-docker-compose/.dockerignore create mode 100644 examples/with-docker-compose/.env create mode 100644 examples/with-docker-compose/.gitignore create mode 100644 examples/with-docker-compose/README.md create mode 100644 examples/with-docker-compose/docker-compose.dev.yml create mode 100644 examples/with-docker-compose/docker-compose.prod-without-multistage.yml create mode 100644 examples/with-docker-compose/docker-compose.prod.yml create mode 100644 examples/with-docker-compose/next-app/.gitignore create mode 100644 examples/with-docker-compose/next-app/dev.Dockerfile create mode 100644 examples/with-docker-compose/next-app/next-env.d.ts create mode 100644 examples/with-docker-compose/next-app/next.config.js create mode 100644 examples/with-docker-compose/next-app/package.json create mode 100644 examples/with-docker-compose/next-app/prod-without-multistage.Dockerfile create mode 100644 examples/with-docker-compose/next-app/prod.Dockerfile create mode 100644 examples/with-docker-compose/next-app/public/favicon.ico create mode 100644 examples/with-docker-compose/next-app/public/vercel.svg create mode 100644 examples/with-docker-compose/next-app/src/pages/_app.tsx create mode 100644 examples/with-docker-compose/next-app/src/pages/index.tsx create mode 100644 examples/with-docker-compose/next-app/src/styles/Home.module.css create mode 100644 examples/with-docker-compose/next-app/src/styles/globals.css create mode 100644 examples/with-docker-compose/next-app/tsconfig.json diff --git a/examples/with-docker-compose/.dockerignore b/examples/with-docker-compose/.dockerignore new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/examples/with-docker-compose/.env b/examples/with-docker-compose/.env new file mode 100644 index 000000000000..e5aefd023575 --- /dev/null +++ b/examples/with-docker-compose/.env @@ -0,0 +1,5 @@ +# DO NOT ADD SECRETS TO THIS FILE. This is a good place for defaults. +# If you want to add secrets use `.env.production.local` instead, which is automatically detected by docker-compose. + +ENV_VARIABLE=production_server_only_variable +NEXT_PUBLIC_ENV_VARIABLE=production_public_variable diff --git a/examples/with-docker-compose/.gitignore b/examples/with-docker-compose/.gitignore new file mode 100644 index 000000000000..1437c53f70bc --- /dev/null +++ b/examples/with-docker-compose/.gitignore @@ -0,0 +1,34 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel diff --git a/examples/with-docker-compose/README.md b/examples/with-docker-compose/README.md new file mode 100644 index 000000000000..9d8d8bd87b9e --- /dev/null +++ b/examples/with-docker-compose/README.md @@ -0,0 +1,92 @@ +# With Docker Compose + +This example contains everything needed to get a Next.js development and production environment up and running with Docker Compose. + +## Benfits of Docker Compose + +- Develop locally without Node.js or TypeScript installed ✨ +- Easy to run, consistent development environment across Mac, Windows, and Linux teams +- Run multiple Next.js apps, databases, and other microservices in a single deployment +- Multistage builds combined with [Output Standalone](https://nextjs.org/docs/advanced-features/output-file-tracing#automatically-copying-traced-files-experimental) outputs up to 85% smaller apps (Approximately 110 MB compared to 1 GB with create-next-app) +- BuildKit engine builds multiple Docker images in parallel +- Easy configuration with YAML files + +## How to use + +Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: + +```bash +npx create-next-app --example with-docker-compose with-docker-compose-app +# or +yarn create next-app --example with-docker-compose with-docker-compose-app +# or +pnpm create next-app --example with-docker-compose with-docker-compose-app +``` + +## Prerequisites + +Install [Docker Desktop](https://docs.docker.com/get-docker) for Mac, Windows, or Linux. Docker Desktop includes Docker Compose as part of the installation. + +## Development + +First, run the development server: + +```bash +# Create a network, which allows containers to communicate +# with each other, by using their container name as a hostname +docker network create my_network + +# Build dev using new BuildKit engine +COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f docker-compose.dev.yml build --parallel + +# Up dev +docker-compose -f docker-compose.dev.yml up +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. + +## Production + +Multistage builds are highly recommended in production. Combined with the Next 12 [Output Standalone](https://nextjs.org/docs/advanced-features/output-file-tracing#automatically-copying-traced-files-experimental) feature, only `node_modules` files required for production are copied into the final Docker image. + +First, run the production server (Final image approximately 110 MB). + +```bash +# Create a network, which allows containers to communicate +# with each other, by using their container name as a hostname +docker network create my_network + +# Build prod using new BuildKit engine +COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f docker-compose.prod.yml build --parallel + +# Up prod in detached mode +docker-compose -f docker-compose.prod.yml up -d +``` + +Alternatively, run the production server without without multistage builds (Final image approximately 1 GB). + +```bash +# Create a network, which allows containers to communicate +# with each other, by using their container name as a hostname +docker network create my_network + +# Build prod without multistage using new BuildKit engine +COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f docker-compose.prod-without-multistage.yml build --parallel + +# Up prod without multistage in detached mode +docker-compose -f docker-compose.prod-without-multistage.yml up -d +``` + +Open [http://localhost:3000](http://localhost:3000). + +## Useful commands + +```bash +# Stop all running containers +docker kill $(docker ps -q) && docker rm $(docker ps -a -q) + +# Free space +docker system prune -af --volumes +``` diff --git a/examples/with-docker-compose/docker-compose.dev.yml b/examples/with-docker-compose/docker-compose.dev.yml new file mode 100644 index 000000000000..71d23351e719 --- /dev/null +++ b/examples/with-docker-compose/docker-compose.dev.yml @@ -0,0 +1,27 @@ +version: '3' + +services: + next-app: + container_name: next-app + build: + context: ./next-app + dockerfile: dev.Dockerfile + environment: + ENV_VARIABLE: ${ENV_VARIABLE} + NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} + volumes: + - ./next-app/src:/app/src + - ./next-app/public:/app/public + restart: always + ports: + - 3000:3000 + networks: + - my_network + + # Add more containers below (nginx, postgres, etc.) + +# Define a network, which allows containers to communicate +# with each other, by using their container name as a hostname +networks: + my_network: + external: true diff --git a/examples/with-docker-compose/docker-compose.prod-without-multistage.yml b/examples/with-docker-compose/docker-compose.prod-without-multistage.yml new file mode 100644 index 000000000000..8732defdc778 --- /dev/null +++ b/examples/with-docker-compose/docker-compose.prod-without-multistage.yml @@ -0,0 +1,24 @@ +version: '3' + +services: + next-app: + container_name: next-app + build: + context: ./next-app + dockerfile: prod-without-multistage.Dockerfile + args: + ENV_VARIABLE: ${ENV_VARIABLE} + NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} + restart: always + ports: + - 3000:3000 + networks: + - my_network + + # Add more containers below (nginx, postgres, etc.) + +# Define a network, which allows containers to communicate +# with each other, by using their container name as a hostname +networks: + my_network: + external: true diff --git a/examples/with-docker-compose/docker-compose.prod.yml b/examples/with-docker-compose/docker-compose.prod.yml new file mode 100644 index 000000000000..adfb425d9894 --- /dev/null +++ b/examples/with-docker-compose/docker-compose.prod.yml @@ -0,0 +1,24 @@ +version: '3' + +services: + next-app: + container_name: next-app + build: + context: ./next-app + dockerfile: prod.Dockerfile + args: + ENV_VARIABLE: ${ENV_VARIABLE} + NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} + restart: always + ports: + - 3000:3000 + networks: + - my_network + + # Add more containers below (nginx, postgres, etc.) + +# Define a network, which allows containers to communicate +# with each other, by using their container name as a hostname +networks: + my_network: + external: true diff --git a/examples/with-docker-compose/next-app/.gitignore b/examples/with-docker-compose/next-app/.gitignore new file mode 100644 index 000000000000..1437c53f70bc --- /dev/null +++ b/examples/with-docker-compose/next-app/.gitignore @@ -0,0 +1,34 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel diff --git a/examples/with-docker-compose/next-app/dev.Dockerfile b/examples/with-docker-compose/next-app/dev.Dockerfile new file mode 100644 index 000000000000..d5d7f79880f3 --- /dev/null +++ b/examples/with-docker-compose/next-app/dev.Dockerfile @@ -0,0 +1,15 @@ +FROM node:18-alpine + +WORKDIR /app + +# Copy lock files if file exists +COPY package.json yarn.lock* package-lock.json* . + +RUN yarn install + +COPY src ./src +COPY public ./public +COPY next.config.js . +COPY tsconfig.json . + +CMD yarn dev diff --git a/examples/with-docker-compose/next-app/next-env.d.ts b/examples/with-docker-compose/next-app/next-env.d.ts new file mode 100644 index 000000000000..4f11a03dc6cc --- /dev/null +++ b/examples/with-docker-compose/next-app/next-env.d.ts @@ -0,0 +1,5 @@ +/// <reference types="next" /> +/// <reference types="next/image-types/global" /> + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/with-docker-compose/next-app/next.config.js b/examples/with-docker-compose/next-app/next.config.js new file mode 100644 index 000000000000..0568ecc9e540 --- /dev/null +++ b/examples/with-docker-compose/next-app/next.config.js @@ -0,0 +1,5 @@ +module.exports = { + experimental: { + outputStandalone: true, + }, +} diff --git a/examples/with-docker-compose/next-app/package.json b/examples/with-docker-compose/next-app/package.json new file mode 100644 index 000000000000..2a67a59e0f83 --- /dev/null +++ b/examples/with-docker-compose/next-app/package.json @@ -0,0 +1,19 @@ +{ + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start" + }, + "dependencies": { + "next": "latest", + "react": "18.1.0", + "react-dom": "18.1.0" + }, + "devDependencies": { + "@types/node": "17.0.42", + "@types/react": "18.0.12", + "@types/react-dom": "18.0.5", + "typescript": "4.7.3" + } +} diff --git a/examples/with-docker-compose/next-app/prod-without-multistage.Dockerfile b/examples/with-docker-compose/next-app/prod-without-multistage.Dockerfile new file mode 100644 index 000000000000..ad3718bc17a4 --- /dev/null +++ b/examples/with-docker-compose/next-app/prod-without-multistage.Dockerfile @@ -0,0 +1,28 @@ +FROM node:18-alpine + +WORKDIR /app + +# Copy lock files if file exists +COPY package.json yarn.lock* package-lock.json* . + +# Omit --production flag for TypeScript devDependencies +RUN yarn install + +COPY src ./src +COPY public ./public +COPY next.config.js . +COPY tsconfig.json . + +# Environment variables must be present at build time +# https://github.com/vercel/next.js/discussions/14030 +ARG ENV_VARIABLE +ENV ENV_VARIABLE=${ENV_VARIABLE} +ARG NEXT_PUBLIC_ENV_VARIABLE +ENV NEXT_PUBLIC_ENV_VARIABLE=${NEXT_PUBLIC_ENV_VARIABLE} + +# Uncomment the following line to disable telemetry at build time +# ENV NEXT_TELEMETRY_DISABLED 1 + +RUN yarn build + +CMD yarn start diff --git a/examples/with-docker-compose/next-app/prod.Dockerfile b/examples/with-docker-compose/next-app/prod.Dockerfile new file mode 100644 index 000000000000..be7eb8e8f077 --- /dev/null +++ b/examples/with-docker-compose/next-app/prod.Dockerfile @@ -0,0 +1,57 @@ +# Step 1. Rebuild the source code only when needed +FROM node:18-alpine AS builder + +WORKDIR /app + +# Copy lock files if file exists +COPY package.json yarn.lock* package-lock.json* . + +# Omit --production flag for TypeScript devDependencies +RUN yarn install + +COPY src ./src +COPY public ./public +COPY next.config.js . +COPY tsconfig.json . + +# Environment variables must be present at build time +# https://github.com/vercel/next.js/discussions/14030 +ARG ENV_VARIABLE +ENV ENV_VARIABLE=${ENV_VARIABLE} +ARG NEXT_PUBLIC_ENV_VARIABLE +ENV NEXT_PUBLIC_ENV_VARIABLE=${NEXT_PUBLIC_ENV_VARIABLE} + +# Uncomment the following line to disable telemetry at build time +# ENV NEXT_TELEMETRY_DISABLED 1 + +RUN yarn build + +# Step 2. Production image, copy all the files and run next +FROM node:18-alpine AS runner + +WORKDIR /app + +# Don't run production as root +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs +USER nextjs + +COPY --from=builder /app/public ./public +COPY --from=builder /app/next.config.js . +COPY --from=builder /app/package.json . + +# Automatically leverage output traces to reduce image size +# https://nextjs.org/docs/advanced-features/output-file-tracing +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static + +# Environment variables must be redefined at run time +ARG ENV_VARIABLE +ENV ENV_VARIABLE=${ENV_VARIABLE} +ARG NEXT_PUBLIC_ENV_VARIABLE +ENV NEXT_PUBLIC_ENV_VARIABLE=${NEXT_PUBLIC_ENV_VARIABLE} + +# Uncomment the following line to disable telemetry at run time +# ENV NEXT_TELEMETRY_DISABLED 1 + +CMD node server.js diff --git a/examples/with-docker-compose/next-app/public/favicon.ico b/examples/with-docker-compose/next-app/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4965832f2c9b0605eaa189b7c7fb11124d24e48a GIT binary patch literal 15086 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 A761SM literal 0 HcmV?d00001 diff --git a/examples/with-docker-compose/next-app/public/vercel.svg b/examples/with-docker-compose/next-app/public/vercel.svg new file mode 100644 index 000000000000..fbf0e25a651c --- /dev/null +++ b/examples/with-docker-compose/next-app/public/vercel.svg @@ -0,0 +1,4 @@ +<svg width="283" height="64" viewBox="0 0 283 64" fill="none" + xmlns="http://www.w3.org/2000/svg"> + <path d="M141.04 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM248.72 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM200.24 34c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9V5h9zM36.95 0L73.9 64H0L36.95 0zm92.38 5l-27.71 48L73.91 5H84.3l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10V51h-9V17h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="#000"/> +</svg> \ No newline at end of file diff --git a/examples/with-docker-compose/next-app/src/pages/_app.tsx b/examples/with-docker-compose/next-app/src/pages/_app.tsx new file mode 100644 index 000000000000..33da2fce548c --- /dev/null +++ b/examples/with-docker-compose/next-app/src/pages/_app.tsx @@ -0,0 +1,6 @@ +import '../styles/globals.css' +import type { AppProps } from 'next/app' + +export default function MyApp({ Component, pageProps }: AppProps) { + return <Component {...pageProps} /> +} diff --git a/examples/with-docker-compose/next-app/src/pages/index.tsx b/examples/with-docker-compose/next-app/src/pages/index.tsx new file mode 100644 index 000000000000..c1d66369a065 --- /dev/null +++ b/examples/with-docker-compose/next-app/src/pages/index.tsx @@ -0,0 +1,68 @@ +import Head from 'next/head' +import Image from 'next/image' +import styles from '../styles/Home.module.css' + +export default function Home() { + return ( + <div className={styles.container}> + <Head> + <title>Create Next app + + + +

+

+ Welcome to Next.js on Docker Compose! +

+ +

+ Get started by editing{' '} + pages/index.tsx +

+ + +
+ + + + ) +} diff --git a/examples/with-docker-compose/next-app/src/styles/Home.module.css b/examples/with-docker-compose/next-app/src/styles/Home.module.css new file mode 100644 index 000000000000..ca99ded55f60 --- /dev/null +++ b/examples/with-docker-compose/next-app/src/styles/Home.module.css @@ -0,0 +1,128 @@ +.container { + min-height: 100vh; + padding: 0 0.5rem; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.main { + padding: 5rem 0; + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.footer { + width: 100%; + height: 100px; + border-top: 1px solid #eaeaea; + display: flex; + justify-content: center; + align-items: center; +} + +.footer img { + margin-left: 0.5rem; +} + +.footer a { + display: flex; + justify-content: center; + align-items: center; +} + +.title a { + color: #0070f3; + text-decoration: none; +} + +.title a:hover, +.title a:focus, +.title a:active { + text-decoration: underline; +} + +.title { + margin: 0; + line-height: 1.15; + font-size: 4rem; +} + +.subtitle { + margin: 0; + line-height: 1.15; + font-size: 2rem; +} + +.title, +.description { + text-align: center; +} + +.description { + line-height: 1.5; + font-size: 1.5rem; +} + +.code { + background: #fafafa; + border-radius: 5px; + padding: 0.75rem; + font-size: 1.1rem; + font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, + Bitstream Vera Sans Mono, Courier New, monospace; +} + +.grid { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + max-width: 800px; + margin-top: 3rem; +} + +.card { + margin: 1rem; + flex-basis: 45%; + padding: 1.5rem; + text-align: left; + color: inherit; + text-decoration: none; + border: 1px solid #eaeaea; + border-radius: 10px; + transition: color 0.15s ease, border-color 0.15s ease; +} + +.card:hover, +.card:focus, +.card:active { + color: #0070f3; + border-color: #0070f3; +} + +.card h3 { + margin: 0 0 1rem 0; + font-size: 1.5rem; +} + +.card p { + margin: 0; + font-size: 1.25rem; + line-height: 1.5; +} + +.logo { + height: 1em; +} + +@media (max-width: 600px) { + .grid { + width: 100%; + flex-direction: column; + } +} diff --git a/examples/with-docker-compose/next-app/src/styles/globals.css b/examples/with-docker-compose/next-app/src/styles/globals.css new file mode 100644 index 000000000000..e5e2dcc23baf --- /dev/null +++ b/examples/with-docker-compose/next-app/src/styles/globals.css @@ -0,0 +1,16 @@ +html, +body { + padding: 0; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, + Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; +} + +a { + color: inherit; + text-decoration: none; +} + +* { + box-sizing: border-box; +} diff --git a/examples/with-docker-compose/next-app/tsconfig.json b/examples/with-docker-compose/next-app/tsconfig.json new file mode 100644 index 000000000000..b8d597880a1a --- /dev/null +++ b/examples/with-docker-compose/next-app/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} From 097574d4c3a936d6988c487f247a10267552143f Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Tue, 14 Jun 2022 11:50:05 -0500 Subject: [PATCH 038/149] Optimize middleware regex handling (#37688) * Optimize middleware regex handling * fix data route matching for middleware --- .../build/analysis/get-page-static-info.ts | 15 ++----------- packages/next/build/entries.ts | 6 +++++ packages/next/build/index.ts | 13 +---------- packages/next/build/webpack-config.ts | 5 +++++ .../webpack/plugins/build-manifest-plugin.ts | 7 ------ packages/next/client/page-loader.ts | 12 +++++----- packages/next/client/route-loader.ts | 22 ------------------- packages/next/server/next-server.ts | 4 ++-- packages/next/shared/lib/router/router.ts | 2 +- 9 files changed, 23 insertions(+), 63 deletions(-) diff --git a/packages/next/build/analysis/get-page-static-info.ts b/packages/next/build/analysis/get-page-static-info.ts index 3f70a33e7b47..53d52065b9bc 100644 --- a/packages/next/build/analysis/get-page-static-info.ts +++ b/packages/next/build/analysis/get-page-static-info.ts @@ -161,19 +161,8 @@ function getMiddlewareRegExpStrings(matcherOrMatchers: unknown): string[] { throw new Error(`Invalid path matcher: ${matcher}`) } - // TODO: is the dataMatcher still needed now that we normalize this - // away while resolving routes - const dataMatcher = `/_next/data/:__nextjsBuildId__${matcher}.json` - - const parsedDataRoute = tryToParsePath(dataMatcher) - if (parsedDataRoute.error) { - throw new Error(`Invalid data path matcher: ${dataMatcher}`) - } - - const regexes = [parsedPage.regexStr, parsedDataRoute.regexStr].filter( - (x): x is string => !!x - ) - if (regexes.length < 2) { + const regexes = [parsedPage.regexStr].filter((x): x is string => !!x) + if (regexes.length < 1) { throw new Error("Can't parse matcher") } else { return regexes diff --git a/packages/next/build/entries.ts b/packages/next/build/entries.ts index 81cc4d0a6620..6377999830ed 100644 --- a/packages/next/build/entries.ts +++ b/packages/next/build/entries.ts @@ -292,6 +292,7 @@ export async function createEntrypoints(params: CreateEntrypointsParams) { const server: webpack5.EntryObject = {} const client: webpack5.EntryObject = {} const nestedMiddleware: string[] = [] + let middlewareRegex: string | undefined = undefined const getEntryHandler = (mappings: Record, pagesType: 'app' | 'pages' | 'root') => @@ -345,6 +346,10 @@ export async function createEntrypoints(params: CreateEntrypointsParams) { page, }) + if (isMiddlewareFile(page)) { + middlewareRegex = staticInfo.middleware?.pathMatcher?.source || '.*' + } + runDependingOnPageType({ page, pageRuntime: staticInfo.runtime, @@ -417,6 +422,7 @@ export async function createEntrypoints(params: CreateEntrypointsParams) { client, server, edgeServer, + middlewareRegex, } } diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index d6ec595d63fd..26cc4a7748e3 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -721,6 +721,7 @@ export default async function build( runWebpackSpan, target, appDir, + middlewareRegex: entrypoints.middlewareRegex, } const configs = await runWebpackSpan @@ -2202,18 +2203,6 @@ export default async function build( ) } - await promises.writeFile( - path.join( - distDir, - CLIENT_STATIC_FILES_PATH, - buildId, - '_middlewareManifest.js' - ), - `self.__MIDDLEWARE_MANIFEST=${devalue( - middlewareManifest.clientInfo - )};self.__MIDDLEWARE_MANIFEST_CB&&self.__MIDDLEWARE_MANIFEST_CB()` - ) - const images = { ...config.images } const { deviceSizes, imageSizes } = images ;(images as any).sizes = [...deviceSizes, ...imageSizes] diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index b7bd8c1365ef..df829f82554a 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -331,6 +331,7 @@ export default async function getBaseWebpackConfig( runWebpackSpan, target = 'server', appDir, + middlewareRegex, }: { buildId: string config: NextConfigComplete @@ -345,6 +346,7 @@ export default async function getBaseWebpackConfig( runWebpackSpan: Span target?: string appDir?: string + middlewareRegex?: string } ): Promise { const isClient = compilerType === 'client' @@ -1465,6 +1467,9 @@ export default async function getBaseWebpackConfig( isEdgeServer ? 'edge' : 'nodejs' ), }), + 'process.env.__NEXT_MIDDLEWARE_REGEX': JSON.stringify( + middlewareRegex || '' + ), 'process.env.__NEXT_MANUAL_CLIENT_BASE_PATH': JSON.stringify( config.experimental.manualClientBasePath ), diff --git a/packages/next/build/webpack/plugins/build-manifest-plugin.ts b/packages/next/build/webpack/plugins/build-manifest-plugin.ts index 2357bc33edaf..f78c8fc0bcbf 100644 --- a/packages/next/build/webpack/plugins/build-manifest-plugin.ts +++ b/packages/next/build/webpack/plugins/build-manifest-plugin.ts @@ -224,13 +224,6 @@ export default class BuildManifestPlugin { const ssgManifestPath = `${CLIENT_STATIC_FILES_PATH}/${this.buildId}/_ssgManifest.js` assetMap.lowPriorityFiles.push(ssgManifestPath) assets[ssgManifestPath] = new sources.RawSource(srcEmptySsgManifest) - - const srcEmptyMiddlewareManifest = `self.__MIDDLEWARE_MANIFEST=[];self.__MIDDLEWARE_MANIFEST_CB&&self.__MIDDLEWARE_MANIFEST_CB()` - const middlewareManifestPath = `${CLIENT_STATIC_FILES_PATH}/${this.buildId}/_middlewareManifest.js` - assetMap.lowPriorityFiles.push(middlewareManifestPath) - assets[middlewareManifestPath] = new sources.RawSource( - srcEmptyMiddlewareManifest - ) } assetMap.pages = Object.keys(assetMap.pages) diff --git a/packages/next/client/page-loader.ts b/packages/next/client/page-loader.ts index e30f4d279c15..6fac74183059 100644 --- a/packages/next/client/page-loader.ts +++ b/packages/next/client/page-loader.ts @@ -7,11 +7,7 @@ import { addLocale } from './add-locale' import { isDynamicRoute } from '../shared/lib/router/utils/is-dynamic' import { parseRelativeUrl } from '../shared/lib/router/utils/parse-relative-url' import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash' -import { - createRouteLoader, - getClientBuildManifest, - getMiddlewareManifest, -} from './route-loader' +import { createRouteLoader, getClientBuildManifest } from './route-loader' declare global { interface Window { @@ -87,7 +83,11 @@ export default class PageLoader { getMiddlewareList() { if (process.env.NODE_ENV === 'production') { - return getMiddlewareManifest() + const middlewareRegex = process.env.__NEXT_MIDDLEWARE_REGEX + window.__MIDDLEWARE_MANIFEST = middlewareRegex + ? [[middlewareRegex, false]] + : [] + return window.__MIDDLEWARE_MANIFEST } else { if (window.__DEV_MIDDLEWARE_MANIFEST) { return window.__DEV_MIDDLEWARE_MANIFEST diff --git a/packages/next/client/route-loader.ts b/packages/next/client/route-loader.ts index 56d0a0200ba8..10cbdb16e84b 100644 --- a/packages/next/client/route-loader.ts +++ b/packages/next/client/route-loader.ts @@ -232,28 +232,6 @@ export function getClientBuildManifest() { ) } -export function getMiddlewareManifest() { - if (self.__MIDDLEWARE_MANIFEST) { - return Promise.resolve(self.__MIDDLEWARE_MANIFEST) - } - - const onMiddlewareManifest = new Promise< - [location: string, isSSR: boolean][] - >((resolve) => { - const cb = self.__MIDDLEWARE_MANIFEST_CB - self.__MIDDLEWARE_MANIFEST_CB = () => { - resolve(self.__MIDDLEWARE_MANIFEST!) - cb && cb() - } - }) - - return resolvePromiseWithTimeout( - onMiddlewareManifest, - MS_MAX_IDLE_DELAY, - markAssetError(new Error('Failed to load client middleware manifest')) - ) -} - interface RouteFiles { scripts: (TrustedScriptURL | string)[] css: string[] diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index c8e6bc05b247..829b5dd91ef1 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -1137,7 +1137,7 @@ export default class NextNodeServer extends BaseServer { onWarning?: (warning: Error) => void }): Promise { middlewareBetaWarning() - const normalizedPathname = removeTrailingSlash(params.parsedUrl.pathname) + const normalizedPathname = removeTrailingSlash(params.parsed.pathname || '') // For middleware to "fetch" we must always provide an absolute URL const query = urlQueryToSearchParams(params.parsed.query).toString() @@ -1269,7 +1269,7 @@ export default class NextNodeServer extends BaseServer { }) parsedUrl.pathname = pathnameInfo.pathname - const normalizedPathname = removeTrailingSlash(parsedUrl.pathname) + const normalizedPathname = removeTrailingSlash(parsed.pathname || '') if (!middleware.some((m) => m.match(normalizedPathname))) { return { finished: false } } diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index ede393f8e460..63e7c4f2709c 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -2120,7 +2120,7 @@ function matchesMiddleware( options.locale ) - return items?.some(([regex]) => { + return !!items?.some(([regex]) => { return new RegExp(regex).test(cleanedAs) }) } From a01aa4de6ab6575576f46d0f214ce57da6ac11fb Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Tue, 14 Jun 2022 12:00:11 -0500 Subject: [PATCH 039/149] Revert "Revert "Revert "Avoid unnecessary router state changes""" (#37692) Revert "Revert "Revert "Avoid unnecessary router state changes"" (#37593)" This reverts commit 78cbfa06fb1e916d82c1aa1130da3fdd74339e01. --- packages/next/shared/lib/router/router.ts | 99 ++++++------------- .../rewrites-client-rerender/next.config.js | 10 -- .../rewrites-client-rerender/pages/index.js | 17 ---- .../test/index.test.js | 56 ----------- 4 files changed, 28 insertions(+), 154 deletions(-) delete mode 100644 test/integration/rewrites-client-rerender/next.config.js delete mode 100644 test/integration/rewrites-client-rerender/pages/index.js delete mode 100644 test/integration/rewrites-client-rerender/test/index.test.js diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 63e7c4f2709c..0942d38adbd5 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -81,37 +81,6 @@ function buildCancellationError() { }) } -function compareRouterStates(a: Router['state'], b: Router['state']) { - const stateKeys = Object.keys(a) - if (stateKeys.length !== Object.keys(b).length) return false - - for (let i = stateKeys.length; i--; ) { - const key = stateKeys[i] - if (key === 'query') { - const queryKeys = Object.keys(a.query) - if (queryKeys.length !== Object.keys(b.query).length) { - return false - } - for (let j = queryKeys.length; j--; ) { - const queryKey = queryKeys[j] - if ( - !b.query.hasOwnProperty(queryKey) || - a.query[queryKey] !== b.query[queryKey] - ) { - return false - } - } - } else if ( - !b.hasOwnProperty(key) || - a[key as keyof Router['state']] !== b[key as keyof Router['state']] - ) { - return false - } - } - - return true -} - /** * Detects whether a given url is routable by the Next.js router (browser only). */ @@ -1372,50 +1341,38 @@ export default class Router implements BaseRouter { const shouldScroll = options.scroll ?? !isValidShallowRoute const resetScroll = shouldScroll ? { x: 0, y: 0 } : null - const nextScroll = forcedScroll ?? resetScroll - const mergedNextState = { - ...nextState, - route, - pathname, - query, - asPath: cleanedAs, - isFallback: false, - } - - // for query updates we can skip it if the state is unchanged and we don't - // need to scroll - // https://github.com/vercel/next.js/issues/37139 - const canSkipUpdating = - (options as any)._h && - !nextScroll && - compareRouterStates(mergedNextState, this.state) - - if (!canSkipUpdating) { - await this.set(mergedNextState, routeInfo, nextScroll).catch((e) => { - if (e.cancelled) error = error || e - else throw e - }) + await this.set( + { + ...nextState, + route, + pathname, + query, + asPath: cleanedAs, + isFallback: false, + }, + routeInfo, + forcedScroll ?? resetScroll + ).catch((e) => { + if (e.cancelled) error = error || e + else throw e + }) - if (error) { - Router.events.emit('routeChangeError', error, cleanedAs, routeProps) - throw error - } + if (error) { + Router.events.emit('routeChangeError', error, cleanedAs, routeProps) + throw error + } - if (process.env.__NEXT_I18N_SUPPORT) { - if (nextState.locale) { - document.documentElement.lang = nextState.locale - } + if (process.env.__NEXT_I18N_SUPPORT) { + if (nextState.locale) { + document.documentElement.lang = nextState.locale } - Router.events.emit('routeChangeComplete', as, routeProps) + } + Router.events.emit('routeChangeComplete', as, routeProps) - // A hash mark # is the optional last part of a URL - const hashRegex = /#.+$/ - if (shouldScroll && hashRegex.test(as)) { - this.scrollToHash(as) - } - } else { - // Still send the event to notify the inital load. - Router.events.emit('routeChangeComplete', as, routeProps) + // A hash mark # is the optional last part of a URL + const hashRegex = /#.+$/ + if (shouldScroll && hashRegex.test(as)) { + this.scrollToHash(as) } return true diff --git a/test/integration/rewrites-client-rerender/next.config.js b/test/integration/rewrites-client-rerender/next.config.js deleted file mode 100644 index 111b8e2c548f..000000000000 --- a/test/integration/rewrites-client-rerender/next.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - rewrites() { - return [ - { - source: '/rewrite', - destination: '/?foo=bar', - }, - ] - }, -} diff --git a/test/integration/rewrites-client-rerender/pages/index.js b/test/integration/rewrites-client-rerender/pages/index.js deleted file mode 100644 index 476896e5ba7b..000000000000 --- a/test/integration/rewrites-client-rerender/pages/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import { useEffect } from 'react' -import Router, { useRouter } from 'next/router' - -Router.events.on('routeChangeComplete', (url) => { - window.__route_change_complete = url === '/' -}) - -export default function Index() { - const { query } = useRouter() - - useEffect(() => { - window.__renders = window.__renders || [] - window.__renders.push(query.foo) - }) - - return

A page should not be rerendered if unnecessary.

-} diff --git a/test/integration/rewrites-client-rerender/test/index.test.js b/test/integration/rewrites-client-rerender/test/index.test.js deleted file mode 100644 index f6aa5b4acfa6..000000000000 --- a/test/integration/rewrites-client-rerender/test/index.test.js +++ /dev/null @@ -1,56 +0,0 @@ -/* eslint-env jest */ - -import { join } from 'path' -import { - findPort, - killApp, - launchApp, - nextBuild, - nextStart, -} from 'next-test-utils' -import webdriver from 'next-webdriver' - -const appDir = join(__dirname, '../') - -let appPort -let app - -const runTests = () => { - it('should not trigger unncessary rerenders', async () => { - const browser = await webdriver(appPort, '/') - await new Promise((resolve) => setTimeout(resolve, 100)) - - expect(await browser.eval('window.__renders')).toEqual([undefined]) - expect(await browser.eval('window.__route_change_complete')).toEqual(true) - }) - - it('should rerender with the correct query parameter if present', async () => { - const browser = await webdriver(appPort, '/rewrite') - await new Promise((resolve) => setTimeout(resolve, 100)) - - expect(await browser.eval('window.__renders')).toEqual([undefined, 'bar']) - }) -} - -describe('rewrites client rerender', () => { - describe('dev mode', () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(() => killApp(app)) - - runTests() - }) - - describe('production mode', () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(() => killApp(app)) - - runTests() - }) -}) From b65e10ea7a7332d2ca9f920048c97e1243396efe Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Tue, 14 Jun 2022 12:03:57 -0500 Subject: [PATCH 040/149] v12.1.7-canary.39 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 ++-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +++++++------- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 16 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index 45425de5c4a4..d638733e9094 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.38" + "version": "12.1.7-canary.39" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index d2ab6276ac5d..a7d23a6521e4 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 6b32266ecc71..582980b119c0 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.38", + "@next/eslint-plugin-next": "12.1.7-canary.39", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 89b610d2585b..bf4b1d66f78a 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index 6616e105cf83..d544b417b37c 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index 529abdde2562..ba8bc68e5675 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index da8c9b0635c5..77ce483dbbc6 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 71c7d5ccdc81..4d1e7b5e6784 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index e55d14ee2354..615f3c1386a6 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index 5caf376c0fa6..ecf4244aa14b 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index b9822ee321ee..34fdeba26b4a 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 744217f8e498..2b9815fbee09 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index 932411f31a0a..e14079fc5194 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.38", + "@next/env": "12.1.7-canary.39", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.38", - "@next/polyfill-nomodule": "12.1.7-canary.38", - "@next/react-dev-overlay": "12.1.7-canary.38", - "@next/react-refresh-utils": "12.1.7-canary.38", - "@next/swc": "12.1.7-canary.38", + "@next/polyfill-module": "12.1.7-canary.39", + "@next/polyfill-nomodule": "12.1.7-canary.39", + "@next/react-dev-overlay": "12.1.7-canary.39", + "@next/react-refresh-utils": "12.1.7-canary.39", + "@next/swc": "12.1.7-canary.39", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 190e78998022..994bf1fd5247 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 028791c48efd..ae1d18791dd1 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.38", + "version": "12.1.7-canary.39", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 955f08ab325f..d7463c8fb3dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.38 + '@next/eslint-plugin-next': 12.1.7-canary.39 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.38 - '@next/polyfill-module': 12.1.7-canary.38 - '@next/polyfill-nomodule': 12.1.7-canary.38 - '@next/react-dev-overlay': 12.1.7-canary.38 - '@next/react-refresh-utils': 12.1.7-canary.38 - '@next/swc': 12.1.7-canary.38 + '@next/env': 12.1.7-canary.39 + '@next/polyfill-module': 12.1.7-canary.39 + '@next/polyfill-nomodule': 12.1.7-canary.39 + '@next/react-dev-overlay': 12.1.7-canary.39 + '@next/react-refresh-utils': 12.1.7-canary.39 + '@next/swc': 12.1.7-canary.39 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 From f17f1d4e56031ddc833d5475ac403e2748daddaf Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Tue, 14 Jun 2022 15:11:36 -0500 Subject: [PATCH 041/149] Update middleware matcher e2e test (#37694) --- test/e2e/middleware-matcher/index.test.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/test/e2e/middleware-matcher/index.test.ts b/test/e2e/middleware-matcher/index.test.ts index fd21605ca644..afaf0ff51fb9 100644 --- a/test/e2e/middleware-matcher/index.test.ts +++ b/test/e2e/middleware-matcher/index.test.ts @@ -30,7 +30,9 @@ describe('Middleware can set the matcher in its config', () => { it('adds the header for a matched data path', async () => { const response = await fetchViaHTTP( next.url, - `/_next/data/${next.buildId}/with-middleware.json` + `/_next/data/${next.buildId}/with-middleware.json`, + undefined, + { headers: { 'x-nextjs-data': '1' } } ) expect(await response.json()).toMatchObject({ pageProps: { @@ -51,7 +53,9 @@ describe('Middleware can set the matcher in its config', () => { it('adds the header for another matched data path', async () => { const response = await fetchViaHTTP( next.url, - `/_next/data/${next.buildId}/another-middleware.json` + `/_next/data/${next.buildId}/another-middleware.json`, + undefined, + { headers: { 'x-nextjs-data': '1' } } ) expect(await response.json()).toMatchObject({ pageProps: { @@ -64,7 +68,9 @@ describe('Middleware can set the matcher in its config', () => { it('does not add the header for root data request', async () => { const response = await fetchViaHTTP( next.url, - `/_next/data/${next.buildId}/index.json` + `/_next/data/${next.buildId}/index.json`, + undefined, + { headers: { 'x-nextjs-data': '1' } } ) expect(await response.json()).toMatchObject({ pageProps: { @@ -176,7 +182,9 @@ describe('using a single matcher', () => { it('adds the headers for a matched data path', async () => { const response = await fetchViaHTTP( next.url, - `/_next/data/${next.buildId}/middleware/works.json` + `/_next/data/${next.buildId}/middleware/works.json`, + undefined, + { headers: { 'x-nextjs-data': '1' } } ) expect(await response.json()).toMatchObject({ pageProps: { From c5018423113337204727741845114dba5d503f6f Mon Sep 17 00:00:00 2001 From: Javi Velasco Date: Wed, 15 Jun 2022 00:31:33 +0200 Subject: [PATCH 042/149] Add test combining middleware & config rewrites (#37667) * Add test combining middleware & config rewrites * Add `afterFiles` test * update some tests * Apply suggestions from code review Co-authored-by: JJ Kasper --- packages/next/server/base-server.ts | 9 +++-- .../e2e/middleware-general/app/next.config.js | 2 +- .../e2e/middleware-general/test/index.test.ts | 10 ++++-- .../middleware-redirects/test/index.test.ts | 3 +- .../e2e/middleware-rewrites/app/middleware.js | 10 ++++++ .../middleware-rewrites/app/next.config.js | 17 +++++++++ .../middleware-rewrites/app/pages/index.js | 12 +++++++ .../middleware-rewrites/test/index.test.ts | 36 +++++++++++++++++++ 8 files changed, 91 insertions(+), 8 deletions(-) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index 16b9d08cdf47..fd85219d260c 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -1216,6 +1216,8 @@ export default abstract class Server { const isDataReq = !!query.__nextDataReq && (isSSG || hasServerProps || isServerComponent) + delete query.__nextDataReq + // normalize req.url for SSG paths as it is not exposed // to getStaticProps and the asPath should not expose /_next/data if ( @@ -1227,7 +1229,11 @@ export default abstract class Server { req.url = this.stripNextDataPath(req.url) } - if (!!query.__nextDataReq) { + if ( + !isServerComponent && + !!req.headers['x-nextjs-data'] && + (!res.statusCode || res.statusCode === 200) + ) { res.setHeader( 'x-nextjs-matched-path', `${query.__nextLocale ? `/${query.__nextLocale}` : ''}${pathname}` @@ -1243,7 +1249,6 @@ export default abstract class Server { return null } } - delete query.__nextDataReq // Don't delete query.__flight__ yet, it still needs to be used in renderToHTML later const isFlightRequest = Boolean( diff --git a/test/e2e/middleware-general/app/next.config.js b/test/e2e/middleware-general/app/next.config.js index ea7f71ed65d6..bd50923f4431 100644 --- a/test/e2e/middleware-general/app/next.config.js +++ b/test/e2e/middleware-general/app/next.config.js @@ -7,7 +7,7 @@ module.exports = { return [ { source: '/redirect-1', - destination: '/somewhere-else', + destination: '/somewhere/else', permanent: false, }, ] diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index 9832df15e5a7..b9c2d7776709 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -129,14 +129,14 @@ describe('Middleware Runtime', () => { ) expect(res.status).toBe(307) expect(new URL(res.headers.get('location'), 'http://n').pathname).toBe( - '/somewhere-else' + '/somewhere/else' ) const browser = await webdriver(next.url, `${locale}/`) await browser.eval(`next.router.push('/redirect-1')`) await check(async () => { const pathname = await browser.eval('location.pathname') - return pathname === '/somewhere-else' ? 'success' : pathname + return pathname === '/somewhere/else' ? 'success' : pathname }, 'success') }) @@ -146,11 +146,13 @@ describe('Middleware Runtime', () => { expect(await res.text()).toContain('Hello World') const browser = await webdriver(next.url, `${locale}/`) + await browser.eval('window.beforeNav = 1') await browser.eval(`next.router.push('/rewrite-1')`) await check(async () => { const content = await browser.eval('document.documentElement.innerHTML') return content.includes('Hello World') ? 'success' : content }, 'success') + expect(await browser.eval('window.beforeNav')).toBe(1) }) it('should rewrite correctly for non-SSG/SSP page', async () => { @@ -365,7 +367,9 @@ describe('Middleware Runtime', () => { const res = await fetchViaHTTP(next.url, `/ssr-page`) const dataRes = await fetchViaHTTP( next.url, - `/_next/data/${next.buildId}/en/ssr-page.json` + `/_next/data/${next.buildId}/en/ssr-page.json`, + undefined, + { headers: { 'x-nextjs-data': '1' } } ) const json = await dataRes.json() expect(json.pageProps.message).toEqual('Bye Cruel World') diff --git a/test/e2e/middleware-redirects/test/index.test.ts b/test/e2e/middleware-redirects/test/index.test.ts index d4c22e20763f..3a8983278738 100644 --- a/test/e2e/middleware-redirects/test/index.test.ts +++ b/test/e2e/middleware-redirects/test/index.test.ts @@ -146,8 +146,7 @@ describe('Middleware Redirect', () => { const browser = await webdriver(next.url, `${locale}`) await browser.elementByCss('#link-to-api-with-locale').click() await browser.waitForCondition('window.location.pathname === "/api/ok"') - const body = await browser.elementByCss('body').text() - expect(body).toBe('ok') + await check(() => browser.elementByCss('body').text(), 'ok') }) } }) diff --git a/test/e2e/middleware-rewrites/app/middleware.js b/test/e2e/middleware-rewrites/app/middleware.js index b1a97d4e2e1d..6042a2c06e6c 100644 --- a/test/e2e/middleware-rewrites/app/middleware.js +++ b/test/e2e/middleware-rewrites/app/middleware.js @@ -22,6 +22,16 @@ export async function middleware(request) { ) } + if (url.pathname === '/rewrite-to-beforefiles-rewrite') { + url.pathname = '/beforefiles-rewrite' + return NextResponse.rewrite(url) + } + + if (url.pathname === '/rewrite-to-afterfiles-rewrite') { + url.pathname = '/afterfiles-rewrite' + return NextResponse.rewrite(url) + } + if (url.pathname.startsWith('/to-blog')) { const slug = url.pathname.split('/').pop() url.pathname = `/fallback-true-blog/${slug}` diff --git a/test/e2e/middleware-rewrites/app/next.config.js b/test/e2e/middleware-rewrites/app/next.config.js index a8c7c7249f65..80afb868a906 100644 --- a/test/e2e/middleware-rewrites/app/next.config.js +++ b/test/e2e/middleware-rewrites/app/next.config.js @@ -3,4 +3,21 @@ module.exports = { locales: ['ja', 'en', 'fr', 'es'], defaultLocale: 'en', }, + rewrites() { + return { + beforeFiles: [ + { + source: '/beforefiles-rewrite', + destination: '/ab-test/a', + }, + ], + afterFiles: [ + { + source: '/afterfiles-rewrite', + destination: '/ab-test/b', + }, + ], + fallback: [], + } + }, } diff --git a/test/e2e/middleware-rewrites/app/pages/index.js b/test/e2e/middleware-rewrites/app/pages/index.js index 9ab571666f8a..554e38a7115f 100644 --- a/test/e2e/middleware-rewrites/app/pages/index.js +++ b/test/e2e/middleware-rewrites/app/pages/index.js @@ -15,6 +15,18 @@ export default function Home() { Rewrite me to about
+ + + Rewrite me to beforeFiles Rewrite + + +
+ + + Rewrite me to afterFiles Rewrite + + +
Rewrite me to Vercel diff --git a/test/e2e/middleware-rewrites/test/index.test.ts b/test/e2e/middleware-rewrites/test/index.test.ts index 917d7ee164f6..3a6082730307 100644 --- a/test/e2e/middleware-rewrites/test/index.test.ts +++ b/test/e2e/middleware-rewrites/test/index.test.ts @@ -24,6 +24,7 @@ describe('Middleware Rewrite', () => { tests() testsWithLocale() testsWithLocale('/fr') + function tests() { // TODO: middleware effect headers aren't available here it.skip('includes the locale in rewrites by default', async () => { @@ -271,6 +272,41 @@ describe('Middleware Rewrite', () => { await browser.elementByCss('#link-en2').click() await browser.waitForElementByCss('.en') }) + + it('should allow to rewrite to a `beforeFiles` rewrite config', async () => { + const res = await fetchViaHTTP( + next.url, + `/rewrite-to-beforefiles-rewrite` + ) + expect(res.status).toBe(200) + expect(await res.text()).toContain('Welcome Page A') + + const browser = await webdriver(next.url, '/') + await browser.elementByCss('#rewrite-to-beforefiles-rewrite').click() + await check( + () => browser.eval('document.documentElement.innerHTML'), + /Welcome Page A/ + ) + expect(await browser.eval('window.location.pathname')).toBe( + `/rewrite-to-beforefiles-rewrite` + ) + }) + + it('should allow to rewrite to a `afterFiles` rewrite config', async () => { + const res = await fetchViaHTTP(next.url, `/rewrite-to-afterfiles-rewrite`) + expect(res.status).toBe(200) + expect(await res.text()).toContain('Welcome Page B') + + const browser = await webdriver(next.url, '/') + await browser.elementByCss('#rewrite-to-afterfiles-rewrite').click() + await check( + () => browser.eval('document.documentElement.innerHTML'), + /Welcome Page B/ + ) + expect(await browser.eval('window.location.pathname')).toBe( + `/rewrite-to-afterfiles-rewrite` + ) + }) } function testsWithLocale(locale = '') { From 0dda1b9f6c0d3fa0894cb790f96980b52aba3002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Orb=C3=A1n?= Date: Wed, 15 Jun 2022 02:33:18 +0200 Subject: [PATCH 043/149] fix(ts): expose `DynamicOptionsLoadingProps` type (#37700) Fixes #37683 ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) --- packages/next/shared/lib/dynamic.tsx | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/next/shared/lib/dynamic.tsx b/packages/next/shared/lib/dynamic.tsx index 20cb5f264327..91b747e4e1ea 100644 --- a/packages/next/shared/lib/dynamic.tsx +++ b/packages/next/shared/lib/dynamic.tsx @@ -16,18 +16,16 @@ export type LoadableGeneratedOptions = { modules?(): LoaderMap } +export type DynamicOptionsLoadingProps = { + error?: Error | null + isLoading?: boolean + pastDelay?: boolean + retry?: () => void + timedOut?: boolean +} + export type DynamicOptions

= LoadableGeneratedOptions & { - loading?: ({ - error, - isLoading, - pastDelay, - }: { - error?: Error | null - isLoading?: boolean - pastDelay?: boolean - retry?: () => void - timedOut?: boolean - }) => JSX.Element | null + loading?: (loadingProps: DynamicOptionsLoadingProps) => JSX.Element | null loader?: Loader

| LoaderMap loadableGenerated?: LoadableGeneratedOptions ssr?: boolean From de7b316446e352d34bb31af870f69fe27c818b9d Mon Sep 17 00:00:00 2001 From: Javi Velasco Date: Wed, 15 Jun 2022 02:58:13 +0200 Subject: [PATCH 044/149] Improve Middleware errors (#37695) * Improve stack traces in dev mode * Refactor `react-dev-overlay` to support the Edge Compiler * Serialize errors including the compiler `source` * Adopt the new `react-dev-overlay` displaying it for middleware errors * Improve tests * fix rsc cases * update test * use check for dev test * handle different error from node version Co-authored-by: feugy Co-authored-by: JJ Kasper --- packages/next/client/index.tsx | 12 +- packages/next/server/dev/hot-reloader.ts | 1 + packages/next/server/dev/next-dev-server.ts | 76 ++++-- packages/next/server/next-server.ts | 9 +- packages/next/server/render.tsx | 13 +- packages/next/server/web/sandbox/context.ts | 3 +- packages/next/server/web/sandbox/sandbox.ts | 29 ++- packages/next/shared/lib/utils.ts | 2 +- packages/react-dev-overlay/src/client.ts | 2 +- .../src/internal/container/Errors.tsx | 7 +- .../src/internal/helpers/getErrorByType.ts | 6 +- .../src/internal/helpers/nodeStackFrames.ts | 14 +- .../src/internal/helpers/stack-frame.ts | 15 +- packages/react-dev-overlay/src/middleware.ts | 16 +- .../middleware-dev-errors/lib/unhandled.js | 3 + .../middleware-dev-errors/lib/unparseable.js | 1 + .../middleware-dev-errors/middleware.js | 1 + .../middleware-dev-errors/pages/index.js | 3 + .../middleware-dev-errors/test/index.test.js | 244 ++++++++++++++++++ .../test/index.test.ts | 20 +- 20 files changed, 400 insertions(+), 77 deletions(-) create mode 100644 test/integration/middleware-dev-errors/lib/unhandled.js create mode 100644 test/integration/middleware-dev-errors/lib/unparseable.js create mode 100644 test/integration/middleware-dev-errors/middleware.js create mode 100644 test/integration/middleware-dev-errors/pages/index.js create mode 100644 test/integration/middleware-dev-errors/test/index.test.js diff --git a/packages/next/client/index.tsx b/packages/next/client/index.tsx index eea7be78c20d..b301d85e542d 100644 --- a/packages/next/client/index.tsx +++ b/packages/next/client/index.tsx @@ -349,7 +349,7 @@ export async function hydrate(opts?: { beforeRender?: () => Promise }) { if (process.env.NODE_ENV === 'development') { const { - getNodeError, + getServerError, } = require('next/dist/compiled/@next/react-dev-overlay/dist/client') // Server-side runtime errors need to be re-thrown on the client-side so // that the overlay is rendered. @@ -368,15 +368,7 @@ export async function hydrate(opts?: { beforeRender?: () => Promise }) { error.name = initialErr!.name error.stack = initialErr!.stack - - // Errors from the middleware are reported as client-side errors - // since the middleware is compiled using the client compiler - if (initialData.err && 'middleware' in initialData.err) { - throw error - } - - const node = getNodeError(error) - throw node + throw getServerError(error, initialErr!.source) }) } // We replaced the server-side error with a client-side error, and should diff --git a/packages/next/server/dev/hot-reloader.ts b/packages/next/server/dev/hot-reloader.ts index 99ff8de55050..1d21903271e0 100644 --- a/packages/next/server/dev/hot-reloader.ts +++ b/packages/next/server/dev/hot-reloader.ts @@ -907,6 +907,7 @@ export default class HotReloader { rootDirectory: this.dir, stats: () => this.clientStats, serverStats: () => this.serverStats, + edgeServerStats: () => this.edgeServerStats, }), ] } diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index 8234b4ef6bf9..c827f599180b 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -1,6 +1,5 @@ import type { __ApiPreviewProps } from '../api-utils' import type { CustomRoutes } from '../../lib/load-custom-routes' -import type { FetchEventResult } from '../web/types' import type { FindComponentsResult } from '../next-server' import type { LoadComponentsReturnType } from '../load-components' import type { Options as ServerOptions } from '../next-server' @@ -52,6 +51,7 @@ import { loadDefaultErrorComponents } from '../load-components' import { DecodeError } from '../../shared/lib/utils' import { createOriginalStackFrame, + getErrorSource, getSourceById, parseStack, } from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware' @@ -383,16 +383,16 @@ export default class DevServer extends Server { this.appPathRoutes = appPaths this.middleware = getSortedRoutes(routedMiddleware).map((page) => { + const middlewareRegex = + page === '/' && middlewareMatcher + ? { re: middlewareMatcher, groups: {} } + : getMiddlewareRegex(page, { + catchAll: !ssrMiddleware.has(page), + }) return { - match: getRouteMatcher( - page === '/' && middlewareMatcher - ? { re: middlewareMatcher, groups: {} } - : getMiddlewareRegex(page, { - catchAll: !ssrMiddleware.has(page), - }) - ), + match: getRouteMatcher(middlewareRegex), page, - re: middlewareMatcher, + re: middlewareRegex.re, ssr: ssrMiddleware.has(page), } }) @@ -646,34 +646,47 @@ export default class DevServer extends Server { response: BaseNextResponse parsedUrl: ParsedUrl parsed: UrlWithParsedQuery - }): Promise { + }) { try { const result = await super.runMiddleware({ ...params, onWarning: (warn) => { - this.logErrorWithOriginalStack(warn, 'warning', 'edge-server') + this.logErrorWithOriginalStack(warn, 'warning') }, }) - result?.waitUntil.catch((error) => - this.logErrorWithOriginalStack( - error, - 'unhandledRejection', - 'edge-server' - ) - ) + if ('finished' in result) { + return result + } + + result.waitUntil.catch((error) => { + this.logErrorWithOriginalStack(error, 'unhandledRejection') + }) return result } catch (error) { if (error instanceof DecodeError) { throw error } - this.logErrorWithOriginalStack(error, undefined, 'edge-server') + this.logErrorWithOriginalStack(error) const err = getProperError(error) ;(err as any).middleware = true const { request, response, parsedUrl } = params + + /** + * When there is a failure for an internal Next.js request from + * middleware we bypass the error without finishing the request + * so we can serve the required chunks to render the error. + */ + if ( + request.url.includes('/_next/static') || + request.url.includes('/__nextjs_original-stack-frame') + ) { + return { finished: false } + } + response.statusCode = 500 this.renderError(err, request, response, parsedUrl.pathname) - return null + return { finished: true } } } @@ -737,27 +750,34 @@ export default class DevServer extends Server { private async logErrorWithOriginalStack( err?: unknown, - type?: 'unhandledRejection' | 'uncaughtException' | 'warning', - stats: 'server' | 'edge-server' = 'server' + type?: 'unhandledRejection' | 'uncaughtException' | 'warning' ) { let usedOriginalStack = false if (isError(err) && err.stack) { try { const frames = parseStack(err.stack!) - const frame = frames[0] + const frame = frames.find(({ file }) => !file?.startsWith('eval'))! if (frame.lineNumber && frame?.file) { - const compilation = - stats === 'server' - ? this.hotReloader?.serverStats?.compilation - : this.hotReloader?.edgeServerStats?.compilation - const moduleId = frame.file!.replace( /^(webpack-internal:\/\/\/|file:\/\/)/, '' ) + let compilation: any + + const src = getErrorSource(err) + if (src === 'edge-server') { + compilation = this.hotReloader?.edgeServerStats?.compilation + } else if (src === 'server') { + compilation = this.hotReloader?.serverStats?.compilation + } else { + compilation = frame.file!.includes('(middleware)') + ? this.hotReloader?.edgeServerStats?.compilation + : this.hotReloader?.serverStats?.compilation + } + const source = await getSourceById( !!frame.file?.startsWith(sep) || !!frame.file?.startsWith('file:'), moduleId, diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 829b5dd91ef1..6f674b98934a 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -1135,7 +1135,7 @@ export default class NextNodeServer extends BaseServer { parsedUrl: ParsedUrl parsed: UrlWithParsedQuery onWarning?: (warning: Error) => void - }): Promise { + }) { middlewareBetaWarning() const normalizedPathname = removeTrailingSlash(params.parsed.pathname || '') @@ -1233,6 +1233,7 @@ export default class NextNodeServer extends BaseServer { if (!result) { this.render404(params.request, params.response, params.parsed) + return { finished: true } } else { for (let [key, value] of allHeaders) { result.response.headers.set(key, value) @@ -1274,7 +1275,7 @@ export default class NextNodeServer extends BaseServer { return { finished: false } } - let result: FetchEventResult | null = null + let result: Awaited> try { result = await this.runMiddleware({ @@ -1302,8 +1303,8 @@ export default class NextNodeServer extends BaseServer { return { finished: true } } - if (result === null) { - return { finished: true } + if ('finished' in result) { + return result } if (result.response.headers.has('x-middleware-rewrite')) { diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index dd77a5b3ab8f..a58297de60f2 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -1672,18 +1672,27 @@ export async function renderToHTML( } function errorToJSON(err: Error) { + let source: 'server' | 'edge-server' = 'server' + + if (process.env.NEXT_RUNTIME !== 'edge') { + source = + require('next/dist/compiled/@next/react-dev-overlay/dist/middleware').getErrorSource( + err + ) || 'server' + } + return { name: err.name, + source, message: stripAnsi(err.message), stack: err.stack, - middleware: (err as any).middleware, } } function serializeError( dev: boolean | undefined, err: Error -): Error & { statusCode?: number } { +): Error & { statusCode?: number; source?: 'edge-server' | 'server' } { if (dev) { return errorToJSON(err) } diff --git a/packages/next/server/web/sandbox/context.ts b/packages/next/server/web/sandbox/context.ts index 2b4ea09ead45..9ce6300460a5 100644 --- a/packages/next/server/web/sandbox/context.ts +++ b/packages/next/server/web/sandbox/context.ts @@ -1,5 +1,6 @@ import type { Primitives } from 'next/dist/compiled/@edge-runtime/primitives' import type { WasmBinding } from '../../../build/webpack/loaders/get-module-build-info' +import { getServerError } from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware' import { EDGE_UNSUPPORTED_NODE_APIS } from '../../../shared/lib/constants' import { EdgeRuntime } from 'next/dist/compiled/edge-runtime' import { readFileSync, promises as fs } from 'fs' @@ -116,7 +117,7 @@ async function createModuleContext(options: ModuleContextOptions) { warning.name = 'DynamicCodeEvaluationWarning' Error.captureStackTrace(warning, __next_eval__) warnedEvals.add(key) - options.onWarning(warning) + options.onWarning(getServerError(warning, 'edge-server')) } return fn() } diff --git a/packages/next/server/web/sandbox/sandbox.ts b/packages/next/server/web/sandbox/sandbox.ts index 35c3e22fb71c..3578fd1024f9 100644 --- a/packages/next/server/web/sandbox/sandbox.ts +++ b/packages/next/server/web/sandbox/sandbox.ts @@ -1,8 +1,11 @@ -import type { WasmBinding } from '../../../build/webpack/loaders/get-module-build-info' import type { RequestData, FetchEventResult } from '../types' +import type { WasmBinding } from '../../../build/webpack/loaders/get-module-build-info' +import { getServerError } from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware' import { getModuleContext } from './context' -export async function run(params: { +export const ErrorSource = Symbol('SandboxError') + +type RunnerFn = (params: { name: string env: string[] onWarning: (warn: Error) => void @@ -10,7 +13,9 @@ export async function run(params: { request: RequestData useCache: boolean wasm: WasmBinding[] -}): Promise { +}) => Promise + +export const run = withTaggedErrors(async (params) => { const { runtime, evaluateInContext } = await getModuleContext({ moduleName: params.name, onWarning: params.onWarning, @@ -39,4 +44,22 @@ export async function run(params: { return runtime.context._ENTRIES[`middleware_${params.name}`].default({ request: params.request, }) +}) + +/** + * Decorates the runner function making sure all errors it can produce are + * tagged with `edge-server` so they can properly be rendered in dev. + */ +function withTaggedErrors(fn: RunnerFn): RunnerFn { + return (params) => + fn(params) + .then((result) => ({ + ...result, + waitUntil: result?.waitUntil?.catch((error) => { + throw getServerError(error, 'edge-server') + }), + })) + .catch((error) => { + throw getServerError(error, 'edge-server') + }) } diff --git a/packages/next/shared/lib/utils.ts b/packages/next/shared/lib/utils.ts index 787f18a1f8cc..f80d3980f1f6 100644 --- a/packages/next/shared/lib/utils.ts +++ b/packages/next/shared/lib/utils.ts @@ -92,7 +92,7 @@ export type NEXT_DATA = { autoExport?: boolean isFallback?: boolean dynamicIds?: (string | number)[] - err?: Error & { statusCode?: number } + err?: Error & { statusCode?: number; source?: 'server' | 'edge-server' } gsp?: boolean gssp?: boolean customServer?: boolean diff --git a/packages/react-dev-overlay/src/client.ts b/packages/react-dev-overlay/src/client.ts index abb495d076c8..5120dd0c7663 100644 --- a/packages/react-dev-overlay/src/client.ts +++ b/packages/react-dev-overlay/src/client.ts @@ -94,7 +94,7 @@ function onRefresh() { } export { getErrorByType } from './internal/helpers/getErrorByType' -export { getNodeError } from './internal/helpers/nodeStackFrames' +export { getServerError } from './internal/helpers/nodeStackFrames' export { default as ReactDevOverlay } from './internal/ReactDevOverlay' export { onBuildOk, diff --git a/packages/react-dev-overlay/src/internal/container/Errors.tsx b/packages/react-dev-overlay/src/internal/container/Errors.tsx index bead04084b3d..887d4f45f16b 100644 --- a/packages/react-dev-overlay/src/internal/container/Errors.tsx +++ b/packages/react-dev-overlay/src/internal/container/Errors.tsx @@ -15,7 +15,7 @@ import { LeftRightDialogHeader } from '../components/LeftRightDialogHeader' import { Overlay } from '../components/Overlay' import { Toast } from '../components/Toast' import { getErrorByType, ReadyRuntimeError } from '../helpers/getErrorByType' -import { isNodeError } from '../helpers/nodeStackFrames' +import { getErrorSource } from '../helpers/nodeStackFrames' import { noop as css } from '../helpers/noop-template' import { CloseIcon } from '../icons/CloseIcon' import { RuntimeError } from './RuntimeError' @@ -240,7 +240,10 @@ export const Errors: React.FC = function Errors({ errors }) { ) } - const isServerError = isNodeError(activeError.error) + const isServerError = ['server', 'edge-server'].includes( + getErrorSource(activeError.error) || '' + ) + return (

getOriginalStackFrame(isServerSide, frame)) - ) + return Promise.all(frames.map((frame) => getOriginalStackFrame(frame, type))) } export function getOriginalStackFrame( - isServerSide: boolean, - source: StackFrame + source: StackFrame, + type: 'server' | 'edge-server' | null ): Promise { async function _getOriginalStackFrame(): Promise { const params = new URLSearchParams() - params.append('isServerSide', String(isServerSide)) + params.append('isServer', String(type === 'server')) + params.append('isEdgeServer', String(type === 'edge-server')) for (const key in source) { params.append(key, ((source as any)[key] ?? '').toString()) } diff --git a/packages/react-dev-overlay/src/middleware.ts b/packages/react-dev-overlay/src/middleware.ts index b5aed0b1b5eb..c5ec7a1a1495 100644 --- a/packages/react-dev-overlay/src/middleware.ts +++ b/packages/react-dev-overlay/src/middleware.ts @@ -15,12 +15,15 @@ import type webpack from 'webpack' import { getRawSourceMap } from './internal/helpers/getRawSourceMap' import { launchEditor } from './internal/helpers/launchEditor' +export { getErrorSource } from './internal/helpers/nodeStackFrames' +export { getServerError } from './internal/helpers/nodeStackFrames' export { parseStack } from './internal/helpers/parseStack' export type OverlayMiddlewareOptions = { rootDirectory: string stats(): webpack.Stats | null serverStats(): webpack.Stats | null + edgeServerStats(): webpack.Stats | null } export type OriginalStackFrameResponse = { @@ -212,7 +215,8 @@ function getOverlayMiddleware(options: OverlayMiddlewareOptions) { if (pathname === '/__nextjs_original-stack-frame') { const frame = query as unknown as StackFrame & { - isServerSide: 'true' | 'false' + isEdgeServer: 'true' | 'false' + isServer: 'true' | 'false' } if ( !( @@ -226,7 +230,6 @@ function getOverlayMiddleware(options: OverlayMiddlewareOptions) { return res.end() } - const isServerSide = frame.isServerSide === 'true' const moduleId: string = frame.file.replace( /^(webpack-internal:\/\/\/|file:\/\/)/, '' @@ -234,9 +237,12 @@ function getOverlayMiddleware(options: OverlayMiddlewareOptions) { let source: Source try { - const compilation = isServerSide - ? options.serverStats()?.compilation - : options.stats()?.compilation + const compilation = + frame.isEdgeServer === 'true' + ? options.edgeServerStats()?.compilation + : frame.isServer === 'true' + ? options.serverStats()?.compilation + : options.stats()?.compilation source = await getSourceById( frame.file.startsWith('file:'), diff --git a/test/integration/middleware-dev-errors/lib/unhandled.js b/test/integration/middleware-dev-errors/lib/unhandled.js new file mode 100644 index 000000000000..42ac305e4c22 --- /dev/null +++ b/test/integration/middleware-dev-errors/lib/unhandled.js @@ -0,0 +1,3 @@ +setTimeout(() => { + throw new Error('This file asynchronously fails while loading') +}, 10) diff --git a/test/integration/middleware-dev-errors/lib/unparseable.js b/test/integration/middleware-dev-errors/lib/unparseable.js new file mode 100644 index 000000000000..967997b77506 --- /dev/null +++ b/test/integration/middleware-dev-errors/lib/unparseable.js @@ -0,0 +1 @@ +throw new Error('This file synchronously fails while loading') diff --git a/test/integration/middleware-dev-errors/middleware.js b/test/integration/middleware-dev-errors/middleware.js new file mode 100644 index 000000000000..3dfc1f78793d --- /dev/null +++ b/test/integration/middleware-dev-errors/middleware.js @@ -0,0 +1 @@ +// this will be populated by each test diff --git a/test/integration/middleware-dev-errors/pages/index.js b/test/integration/middleware-dev-errors/pages/index.js new file mode 100644 index 000000000000..71fcce80fc08 --- /dev/null +++ b/test/integration/middleware-dev-errors/pages/index.js @@ -0,0 +1,3 @@ +export default function Home() { + return
A page
+} diff --git a/test/integration/middleware-dev-errors/test/index.test.js b/test/integration/middleware-dev-errors/test/index.test.js new file mode 100644 index 000000000000..dbaead5eb8f8 --- /dev/null +++ b/test/integration/middleware-dev-errors/test/index.test.js @@ -0,0 +1,244 @@ +import { + fetchViaHTTP, + File, + findPort, + getRedboxSource, + hasRedbox, + killApp, + launchApp, +} from 'next-test-utils' +import { join } from 'path' +import stripAnsi from 'strip-ansi' +import webdriver from 'next-webdriver' + +const context = { + appDir: join(__dirname, '../'), + buildLogs: { output: '', stdout: '', stderr: '' }, + logs: { output: '', stdout: '', stderr: '' }, + middleware: new File(join(__dirname, '../middleware.js')), + page: new File(join(__dirname, '../pages/index.js')), +} + +describe('Middleware development errors', () => { + beforeEach(async () => { + context.logs = { output: '', stdout: '', stderr: '' } + context.appPort = await findPort() + context.app = await launchApp(context.appDir, context.appPort, { + env: { __NEXT_TEST_WITH_DEVTOOL: 1 }, + onStdout(msg) { + context.logs.output += msg + context.logs.stdout += msg + }, + onStderr(msg) { + context.logs.output += msg + context.logs.stderr += msg + }, + }) + }) + + afterEach(() => { + context.middleware.restore() + context.page.restore() + if (context.app) { + killApp(context.app) + } + }) + + describe('when middleware throws synchronously', () => { + beforeEach(() => { + context.middleware.write(` + export default function () { + throw new Error('boom') + }`) + }) + + it('logs the error correctly', async () => { + await fetchViaHTTP(context.appPort, '/') + const output = stripAnsi(context.logs.output) + expect(output).toMatch( + new RegExp( + `error - \\(middleware\\)/middleware.js \\(\\d+:\\d+\\) @ Object.__WEBPACK_DEFAULT_EXPORT__ \\[as handler\\]\nError: boom`, + 'm' + ) + ) + expect(output).not.toContain( + 'webpack-internal:///(middleware)/./middleware.js' + ) + }) + + it('renders the error correctly and recovers', async () => { + const browser = await webdriver(context.appPort, '/') + expect(await hasRedbox(browser, true)).toBe(true) + context.middleware.write(`export default function () {}`) + await hasRedbox(browser, false) + }) + }) + + describe('when middleware contains an unhandled rejection', () => { + beforeEach(() => { + context.middleware.write(` + import { NextResponse } from 'next/server' + async function throwError() { + throw new Error('async boom!') + } + export default function () { + throwError() + return NextResponse.next() + }`) + }) + + it('logs the error correctly', async () => { + await fetchViaHTTP(context.appPort, '/') + const output = stripAnsi(context.logs.output) + expect(output).toMatch( + new RegExp( + `error - \\(middleware\\)/middleware.js \\(\\d+:\\d+\\) @ throwError\nError: async boom!`, + 'm' + ) + ) + expect(output).not.toContain( + 'webpack-internal:///(middleware)/./middleware.js' + ) + }) + + it('does not render the error', async () => { + const browser = await webdriver(context.appPort, '/') + expect(await hasRedbox(browser, false)).toBe(false) + expect(await browser.elementByCss('#page-title')).toBeTruthy() + }) + }) + + describe('when running invalid dynamic code with eval', () => { + beforeEach(() => { + context.middleware.write(` + import { NextResponse } from 'next/server' + export default function () { + eval('test') + return NextResponse.next() + }`) + }) + + it('logs the error correctly', async () => { + await fetchViaHTTP(context.appPort, '/') + const output = stripAnsi(context.logs.output) + expect(output).toMatch( + new RegExp( + `error - \\(middleware\\)/middleware.js \\(\\d+:\\d+\\) @ eval\nReferenceError: test is not defined`, + 'm' + ) + ) + expect(output).not.toContain( + 'webpack-internal:///(middleware)/./middleware.js' + ) + }) + + it('renders the error correctly and recovers', async () => { + const browser = await webdriver(context.appPort, '/') + expect(await hasRedbox(browser, true)).toBe(true) + expect(await getRedboxSource(browser)).toContain(`eval('test')`) + context.middleware.write(`export default function () {}`) + await hasRedbox(browser, false) + }) + }) + + describe('when throwing while loading the module', () => { + beforeEach(() => { + context.middleware.write(` + import { NextResponse } from 'next/server' + throw new Error('booooom!') + export default function () { + return NextResponse.next() + }`) + }) + + it('logs the error correctly', async () => { + await fetchViaHTTP(context.appPort, '/') + const output = stripAnsi(context.logs.output) + expect(output).toMatch( + new RegExp( + `error - \\(middleware\\)/middleware.js \\(\\d+:\\d+\\) @ \nError: booooom!`, + 'm' + ) + ) + expect(output).not.toContain( + 'webpack-internal:///(middleware)/./middleware.js' + ) + }) + + it('renders the error correctly and recovers', async () => { + const browser = await webdriver(context.appPort, '/') + expect(await hasRedbox(browser, true)).toBe(true) + expect(await getRedboxSource(browser)).toContain( + `throw new Error('booooom!')` + ) + context.middleware.write(`export default function () {}`) + await hasRedbox(browser, false) + }) + }) + + describe('when there is an unhandled rejection while loading the module', () => { + beforeEach(() => { + context.middleware.write(` + import { NextResponse } from 'next/server' + (async function(){ + throw new Error('you shall see me') + })() + + export default function () { + return NextResponse.next() + }`) + }) + + it('logs the error correctly', async () => { + await fetchViaHTTP(context.appPort, '/') + const output = stripAnsi(context.logs.output) + expect(output).toMatch( + new RegExp( + `error - \\(middleware\\)/middleware.js \\(\\d+:\\d+\\) @ eval\nError: you shall see me`, + 'm' + ) + ) + expect(output).not.toContain( + 'webpack-internal:///(middleware)/./middleware.js' + ) + }) + + it('does not render the error', async () => { + const browser = await webdriver(context.appPort, '/') + expect(await hasRedbox(browser, false)).toBe(false) + expect(await browser.elementByCss('#page-title')).toBeTruthy() + }) + }) + + describe('when there is an unhandled rejection while loading a dependency', () => { + beforeEach(() => { + context.middleware.write(` + import { NextResponse } from 'next/server' + import './lib/unhandled' + + export default function () { + return NextResponse.next() + }`) + }) + + it('logs the error correctly', async () => { + await fetchViaHTTP(context.appPort, '/') + const output = stripAnsi(context.logs.output) + expect(output).toMatch( + new RegExp( + `error - \\(middleware\\)/lib/unhandled.js \\(\\d+:\\d+\\) @ Timeout.eval \\[as _onTimeout\\]\nError: This file asynchronously fails while loading`, + 'm' + ) + ) + expect(output).not.toContain( + 'webpack-internal:///(middleware)/./middleware.js' + ) + }) + + it('does not render the error', async () => { + const browser = await webdriver(context.appPort, '/') + expect(await hasRedbox(browser, false)).toBe(false) + expect(await browser.elementByCss('#page-title')).toBeTruthy() + }) + }) +}) diff --git a/test/integration/middleware-with-node.js-apis/test/index.test.ts b/test/integration/middleware-with-node.js-apis/test/index.test.ts index e3a3776aae59..0403ed80b6f2 100644 --- a/test/integration/middleware-with-node.js-apis/test/index.test.ts +++ b/test/integration/middleware-with-node.js-apis/test/index.test.ts @@ -2,6 +2,7 @@ import { remove } from 'fs-extra' import { + check, fetchViaHTTP, findPort, killApp, @@ -51,6 +52,7 @@ describe('Middleware using Node.js API', () => { output = '' appPort = await findPort() app = await launchApp(appDir, appPort, { + env: { __NEXT_TEST_WITH_DEVTOOL: 1 }, onStdout(msg) { output += msg }, @@ -65,7 +67,9 @@ describe('Middleware using Node.js API', () => { it.each([ { api: 'Buffer', - error: `Cannot read properties of undefined (reading 'from')`, + error: process.version.startsWith('v16') + ? `Cannot read properties of undefined (reading 'from')` + : `Cannot read property 'from' of undefined`, }, ...unsupportedFunctions.map((api) => ({ api, @@ -79,10 +83,18 @@ describe('Middleware using Node.js API', () => { const res = await fetchViaHTTP(appPort, `/${api}`) await waitFor(500) expect(res.status).toBe(500) - expect(output) - .toContain(`NodejsRuntimeApiInMiddlewareWarning: You're using a Node.js API (${api}) which is not supported in the Edge Runtime that Middleware uses. + await check( + () => + output.includes(`NodejsRuntimeApiInMiddlewareWarning: You're using a Node.js API (${api}) which is not supported in the Edge Runtime that Middleware uses. Learn more: https://nextjs.org/docs/api-reference/edge-runtime`) - expect(output).toContain(`TypeError: ${error}`) + ? 'success' + : output, + 'success' + ) + await check( + () => (output.includes(`TypeError: ${error}`) ? 'success' : output), + 'success' + ) }) }) From 0f873c7eea6755462e9f8cda200867b8b32189f1 Mon Sep 17 00:00:00 2001 From: Hung Viet Nguyen Date: Wed, 15 Jun 2022 18:27:28 +0700 Subject: [PATCH 045/149] Update Jest config with SWC docs (#37705) ## Motivation/ Context - When upgrading `next` from `11` to `12`, I followed [Upgrade guide from 11 => 12](https://nextjs.org/docs/upgrading#upgrading-from-11-to-12). I removed `.babelrc` to opt-in `SWC`. I thought that's all, but after removing `.babelrc`, Jest broke immediately. So I follow the guide https://nextjs.org/docs/advanced-features/compiler#jest to configure Jest to work with SWC. I copied the content of `jest.config.js` to my project but it does not work. The reason: ```diff -const createJestConfig = nextJest({ dir }) // `dir` IS NOT DEFINED +const createJestConfig = nextJest({ dir: './' }) // Should change to this. Sync with https://nextjs.org/docs/testing#setting-up-jest-with-the-rust-compiler ``` - This PR is to help others to configure Jest with SWC by copying code from the documentation site without encountering the same issue as I did. ## Documentation - [x] Update the docs so users can just copy and paste when configuring Jest with SWC (Sync with https://nextjs.org/docs/testing#setting-up-jest-with-the-rust-compiler) - [x] Make sure the linting passes by running `pnpm lint` - [x] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) ## Future work - Since [Upgrade guide from 11 => 12](https://nextjs.org/docs/upgrading#upgrading-from-11-to-12) did not mention anything about Jest. If I remove `.babelrc` to opt-in SWC. The current Jest settings will crash (since it's using babel). We likely want to update the Upgrade guide to mention this cc: @leerob --- docs/advanced-features/compiler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/advanced-features/compiler.md b/docs/advanced-features/compiler.md index 21725b3a9b6a..4def26d34351 100644 --- a/docs/advanced-features/compiler.md +++ b/docs/advanced-features/compiler.md @@ -70,7 +70,7 @@ First, update to the latest version of Next.js: `npm install next@latest`. Then, const nextJest = require('next/jest') // Providing the path to your Next.js app which will enable loading next.config.js and .env files -const createJestConfig = nextJest({ dir }) +const createJestConfig = nextJest({ dir: './' }) // Any custom config you want to pass to Jest const customJestConfig = { From 007d186b7843f5e47f1d5685093e38701c83519c Mon Sep 17 00:00:00 2001 From: Max Proske Date: Wed, 15 Jun 2022 04:33:35 -0700 Subject: [PATCH 046/149] Convert hello-world example to TypeScript (#37706) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TypeScript is being leveraged for new examples going forward, so I'm converting this example over. 😂 ## Documentation / Examples - [X] Make sure the linting passes by running `pnpm lint` - [X] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) --- examples/hello-world/README.md | 2 +- examples/hello-world/next-env.d.ts | 5 +++++ examples/hello-world/package.json | 10 ++++++++-- .../hello-world/pages/{about.js => about.tsx} | 0 .../pages/day/{index.js => index.tsx} | 0 .../hello-world/pages/{index.js => index.tsx} | 0 examples/hello-world/tsconfig.json | 20 +++++++++++++++++++ 7 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 examples/hello-world/next-env.d.ts rename examples/hello-world/pages/{about.js => about.tsx} (100%) rename examples/hello-world/pages/day/{index.js => index.tsx} (100%) rename examples/hello-world/pages/{index.js => index.tsx} (100%) create mode 100644 examples/hello-world/tsconfig.json diff --git a/examples/hello-world/README.md b/examples/hello-world/README.md index 238128474f32..43f519bdfa6c 100644 --- a/examples/hello-world/README.md +++ b/examples/hello-world/README.md @@ -1,6 +1,6 @@ # Hello World example -This example shows the most basic idea behind Next. We have 2 pages: `pages/index.js` and `pages/about.js`. The former responds to `/` requests and the latter to `/about`. Using `next/link` you can add hyperlinks between them with universal routing capabilities. The `day` directory shows that you can have subdirectories. +This example shows the most basic idea behind Next. We have 2 pages: `pages/index.tsx` and `pages/about.tsx`. The former responds to `/` requests and the latter to `/about`. Using `next/link` you can add hyperlinks between them with universal routing capabilities. The `day` directory shows that you can have subdirectories. ## Deploy your own diff --git a/examples/hello-world/next-env.d.ts b/examples/hello-world/next-env.d.ts new file mode 100644 index 000000000000..4f11a03dc6cc --- /dev/null +++ b/examples/hello-world/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/hello-world/package.json b/examples/hello-world/package.json index 349de02f4d84..1423be763e13 100644 --- a/examples/hello-world/package.json +++ b/examples/hello-world/package.json @@ -7,7 +7,13 @@ }, "dependencies": { "next": "latest", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/node": "^17.0.43", + "@types/react": "^18.0.12", + "@types/react-dom": "^18.0.5", + "typescript": "^4.7.3" } } diff --git a/examples/hello-world/pages/about.js b/examples/hello-world/pages/about.tsx similarity index 100% rename from examples/hello-world/pages/about.js rename to examples/hello-world/pages/about.tsx diff --git a/examples/hello-world/pages/day/index.js b/examples/hello-world/pages/day/index.tsx similarity index 100% rename from examples/hello-world/pages/day/index.js rename to examples/hello-world/pages/day/index.tsx diff --git a/examples/hello-world/pages/index.js b/examples/hello-world/pages/index.tsx similarity index 100% rename from examples/hello-world/pages/index.js rename to examples/hello-world/pages/index.tsx diff --git a/examples/hello-world/tsconfig.json b/examples/hello-world/tsconfig.json new file mode 100644 index 000000000000..b8d597880a1a --- /dev/null +++ b/examples/hello-world/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} From bf7bf8217f0d3df37d740a0cebf2f140e9c518b6 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 15 Jun 2022 09:09:51 -0500 Subject: [PATCH 047/149] Ensure navigating with middleware parses route params correctly (#37704) --- packages/next/server/base-server.ts | 5 +- packages/next/server/next-server.ts | 9 ++ packages/next/server/web/adapter.ts | 2 +- packages/next/shared/lib/router/router.ts | 87 +++++++++++++++--- test/e2e/middleware-general/app/middleware.js | 10 +++ .../e2e/middleware-general/app/next.config.js | 4 + .../app/pages/blog/[slug].js | 23 +++++ .../e2e/middleware-general/test/index.test.ts | 90 +++++++++++++++++++ 8 files changed, 213 insertions(+), 17 deletions(-) create mode 100644 test/e2e/middleware-general/app/pages/blog/[slug].js diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index fd85219d260c..800f82d3ff6b 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -1239,10 +1239,7 @@ export default abstract class Server { `${query.__nextLocale ? `/${query.__nextLocale}` : ''}${pathname}` ) // return empty JSON when not an SSG/SSP page and not an error - if ( - !(isSSG || hasServerProps) && - (!res.statusCode || res.statusCode === 200 || res.statusCode === 404) - ) { + if (!(isSSG || hasServerProps)) { res.setHeader('content-type', 'application/json') res.body('{}') res.send() diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 6f674b98934a..f841a9c4e00c 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -1332,6 +1332,15 @@ export default class NextNodeServer extends BaseServer { for (const [key, value] of Object.entries( toNodeHeaders(result.response.headers) )) { + if ( + [ + 'x-middleware-rewrite', + 'x-middleware-redirect', + 'x-middleware-refresh', + ].includes(key) + ) { + continue + } if (key !== 'content-encoding' && value !== undefined) { res.setHeader(key, value) } diff --git a/packages/next/server/web/adapter.ts b/packages/next/server/web/adapter.ts index 8b93126e2338..1f47e3704874 100644 --- a/packages/next/server/web/adapter.ts +++ b/packages/next/server/web/adapter.ts @@ -86,7 +86,7 @@ export async function adapter(params: { */ if (isDataReq) { response.headers.set( - 'x-nextjs-matched-path', + 'x-nextjs-rewrite', relativizeURL(String(rewriteUrl), String(requestUrl)) ) } diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 0942d38adbd5..478c8d9bec61 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -355,6 +355,7 @@ export type CompletePrivateRouteInfo = { err?: Error error?: any route?: string + resolvedAs?: string } export type AppProps = Pick & { @@ -1234,8 +1235,32 @@ export default class Router implements BaseRouter { isPreview: nextState.isPreview, }) - if ('route' in routeInfo) { + if ('route' in routeInfo && routeInfo.route !== route) { pathname = routeInfo.route || route + + if (isDynamicRoute(pathname)) { + const prefixedAs = + routeInfo.resolvedAs || + addBasePath(addLocale(as, nextState.locale), true) + + let rewriteAs = prefixedAs + + if (hasBasePath(rewriteAs)) { + rewriteAs = removeBasePath(rewriteAs) + } + + if (process.env.__NEXT_I18N_SUPPORT) { + const localeResult = normalizeLocalePath(rewriteAs, this.locales) + nextState.locale = localeResult.detectedLocale || nextState.locale + rewriteAs = localeResult.pathname + } + const routeRegex = getRouteRegex(pathname) + const routeMatch = getRouteMatcher(routeRegex)(rewriteAs) + + if (routeMatch) { + Object.assign(query, routeMatch) + } + } } // If the routeInfo brings a redirect we simply apply it. @@ -1703,6 +1728,7 @@ export default class Router implements BaseRouter { routeInfo.props = props routeInfo.route = route + routeInfo.resolvedAs = resolvedAs this.components[route] = routeInfo return routeInfo } catch (err) { @@ -2127,9 +2153,9 @@ function getMiddlewareData( trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH), } - // TODO: ensure x-nextjs-matched-path is always present instead of both - // variants - let rewriteTarget = response.headers.get('x-nextjs-matched-path') + let rewriteTarget = + response.headers.get('x-nextjs-rewrite') || + response.headers.get('x-nextjs-matched-path') const matchedPath = response.headers.get('x-matched-path') @@ -2145,17 +2171,54 @@ function getMiddlewareData( parseData: true, }) - parsedRewriteTarget.pathname = pathnameInfo.pathname const fsPathname = removeTrailingSlash(pathnameInfo.pathname) - return Promise.resolve(options.router.pageLoader.getPageList()).then( - (pages) => ({ + return Promise.all([ + options.router.pageLoader.getPageList(), + getClientBuildManifest(), + ]).then(([pages, { __rewrites: rewrites }]: any) => { + let as = parsedRewriteTarget.pathname + + if (isDynamicRoute(as)) { + const parsedSource = getNextPathnameInfo( + parseRelativeUrl(source).pathname, + { parseData: true } + ) + + as = addBasePath(parsedSource.pathname) + } + + if (process.env.__NEXT_HAS_REWRITES) { + const result = resolveRewrites( + as, + pages, + rewrites, + parsedRewriteTarget.query, + (path: string) => resolveDynamicRoute(path, pages), + options.router.locales + ) + + if (result.matchedPage) { + parsedRewriteTarget.pathname = result.parsedAs.pathname + parsedRewriteTarget.query = result.parsedAs.query + } + } + + const resolvedHref = !pages.includes(fsPathname) + ? resolveDynamicRoute( + normalizeLocalePath( + removeBasePath(parsedRewriteTarget.pathname), + options.router.locales + ).pathname, + pages + ) + : fsPathname + + return { type: 'rewrite' as const, parsedAs: parsedRewriteTarget, - resolvedHref: !pages.includes(fsPathname) - ? resolveDynamicRoute(fsPathname, pages) - : fsPathname, - }) - ) + resolvedHref, + } + }) } const src = parsePath(source) diff --git a/test/e2e/middleware-general/app/middleware.js b/test/e2e/middleware-general/app/middleware.js index 4ed57791226e..fcdfb44113fc 100644 --- a/test/e2e/middleware-general/app/middleware.js +++ b/test/e2e/middleware-general/app/middleware.js @@ -52,6 +52,16 @@ export async function middleware(request) { } } + if (url.pathname === '/rewrite-to-dynamic') { + url.pathname = '/blog/from-middleware' + return NextResponse.rewrite(url) + } + + if (url.pathname === '/rewrite-to-config-rewrite') { + url.pathname = '/rewrite-3' + return NextResponse.rewrite(url) + } + if (url.pathname.startsWith('/fetch-user-agent-crypto')) { try { const apiRoute = new URL(url) diff --git a/test/e2e/middleware-general/app/next.config.js b/test/e2e/middleware-general/app/next.config.js index bd50923f4431..8bea92cace43 100644 --- a/test/e2e/middleware-general/app/next.config.js +++ b/test/e2e/middleware-general/app/next.config.js @@ -22,6 +22,10 @@ module.exports = { source: '/rewrite-2', destination: '/about/a', }, + { + source: '/rewrite-3', + destination: '/blog/middleware-rewrite', + }, ] }, } diff --git a/test/e2e/middleware-general/app/pages/blog/[slug].js b/test/e2e/middleware-general/app/pages/blog/[slug].js new file mode 100644 index 000000000000..590ca0dcc1a1 --- /dev/null +++ b/test/e2e/middleware-general/app/pages/blog/[slug].js @@ -0,0 +1,23 @@ +import { useRouter } from 'next/router' + +export default function Page(props) { + const router = useRouter() + return ( + <> +

/blog/[slug]

+

{JSON.stringify(router.query)}

+

{router.pathname}

+

{router.asPath}

+

{JSON.stringify(props)}

+ + ) +} + +export function getServerSideProps({ params }) { + return { + props: { + now: Date.now(), + params, + }, + } +} diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index b9c2d7776709..5a838684a897 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -118,6 +118,96 @@ describe('Middleware Runtime', () => { }) } + it('should have correct dynamic route params on client-transition to dynamic route', async () => { + const browser = await webdriver(next.url, '/') + await browser.eval('window.beforeNav = 1') + await browser.eval('window.next.router.push("/blog/first")') + await browser.waitForElementByCss('#blog') + + expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ + slug: 'first', + }) + expect( + JSON.parse(await browser.elementByCss('#props').text()).params + ).toEqual({ + slug: 'first', + }) + expect(await browser.elementByCss('#pathname').text()).toBe('/blog/[slug]') + expect(await browser.elementByCss('#as-path').text()).toBe('/blog/first') + + await browser.eval('window.next.router.push("/blog/second")') + await check(() => browser.elementByCss('body').text(), /"slug":"second"/) + + expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ + slug: 'second', + }) + expect( + JSON.parse(await browser.elementByCss('#props').text()).params + ).toEqual({ + slug: 'second', + }) + expect(await browser.elementByCss('#pathname').text()).toBe('/blog/[slug]') + expect(await browser.elementByCss('#as-path').text()).toBe('/blog/second') + }) + + it('should have correct dynamic route params for middleware rewrite to dynamic route', async () => { + const browser = await webdriver(next.url, '/') + await browser.eval('window.beforeNav = 1') + await browser.eval('window.next.router.push("/rewrite-to-dynamic")') + await browser.waitForElementByCss('#blog') + + expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ + slug: 'from-middleware', + }) + expect( + JSON.parse(await browser.elementByCss('#props').text()).params + ).toEqual({ + slug: 'from-middleware', + }) + expect(await browser.elementByCss('#pathname').text()).toBe('/blog/[slug]') + expect(await browser.elementByCss('#as-path').text()).toBe( + '/rewrite-to-dynamic' + ) + }) + + it('should have correct route params for chained rewrite from middleware to config rewrite', async () => { + const browser = await webdriver(next.url, '/') + await browser.eval('window.beforeNav = 1') + await browser.eval('window.next.router.push("/rewrite-to-config-rewrite")') + await browser.waitForElementByCss('#blog') + + expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ + slug: 'middleware-rewrite', + }) + expect( + JSON.parse(await browser.elementByCss('#props').text()).params + ).toEqual({ + slug: 'middleware-rewrite', + }) + expect(await browser.elementByCss('#pathname').text()).toBe('/blog/[slug]') + expect(await browser.elementByCss('#as-path').text()).toBe( + '/rewrite-to-config-rewrite' + ) + }) + + it('should have correct route params for rewrite from config dynamic route', async () => { + const browser = await webdriver(next.url, '/') + await browser.eval('window.beforeNav = 1') + await browser.eval('window.next.router.push("/rewrite-3")') + await browser.waitForElementByCss('#blog') + + expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ + slug: 'middleware-rewrite', + }) + expect( + JSON.parse(await browser.elementByCss('#props').text()).params + ).toEqual({ + slug: 'middleware-rewrite', + }) + expect(await browser.elementByCss('#pathname').text()).toBe('/blog/[slug]') + expect(await browser.elementByCss('#as-path').text()).toBe('/rewrite-3') + }) + it('should redirect the same for direct visit and client-transition', async () => { const res = await fetchViaHTTP( next.url, From 7193effcc09f9347f51bd73fac6860c30e4c6acc Mon Sep 17 00:00:00 2001 From: Gal Schlezinger Date: Wed, 15 Jun 2022 18:09:13 +0300 Subject: [PATCH 048/149] Fix shallow routing with rewrites/middleware (#37716) Shallow route changes did not work for rewritten pages when Middleware was used, and made hard refreshes, although it was possible with static rewrites. This happened because the router has a manifest of the static rewrites, allowing static rewrites to map the route before comparing with the local cache. Middleware rewrites are dynamic and happening on the server, so we can't send a manifest easily. This means that we need to propagate the rewrites from the data requests into the components cache in the router to make sure we have cache hits and don't miss. This commit does exactly that and adds a test to verify that it works. This fixes #37072 and fixes #31680 _Note:_ there's one thing that is somewhat an issue though: if the first page the user lands on is a rewritten page, and will try to make a shallow navigation to the same page--we will make a `fetch` request. This is because we don't have any client cache of the `rewrite` we just had. ## Bug - [x] Related issues linked using `fixes #number` - [x] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` --- packages/next/shared/lib/router/router.ts | 25 +++++++++-- test/e2e/middleware-general/app/middleware.js | 5 +++ .../e2e/middleware-general/app/next.config.js | 4 ++ .../middleware-general/app/pages/shallow.js | 43 +++++++++++++++++++ .../e2e/middleware-general/test/index.test.ts | 28 ++++++++++++ 5 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 test/e2e/middleware-general/app/pages/shallow.js diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 478c8d9bec61..90937d43d83d 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -1361,7 +1361,8 @@ export default class Router implements BaseRouter { } // shallow routing is only allowed for same page URL changes. - const isValidShallowRoute = options.shallow && nextState.route === route + const isValidShallowRoute = + options.shallow && nextState.route === (routeInfo.route ?? route) const shouldScroll = options.scroll ?? !isValidShallowRoute const resetScroll = shouldScroll ? { x: 0, y: 0 } : null @@ -1524,7 +1525,7 @@ export default class Router implements BaseRouter { } async getRouteInfo({ - route, + route: requestedRoute, pathname, query, as, @@ -1542,6 +1543,14 @@ export default class Router implements BaseRouter { locale: string | undefined isPreview: boolean }) { + /** + * This `route` binding can change if there's a rewrite + * so we keep a reference to the original requested route + * so we can store the cache for it and avoid re-requesting every time + * for shallow routing purposes. + */ + let route = requestedRoute + try { let existingInfo: PrivateRouteInfo | undefined = this.components[route] if (routeProps.shallow && existingInfo && this.route === route) { @@ -1593,7 +1602,11 @@ export default class Router implements BaseRouter { // Check again the cache with the new destination. existingInfo = this.components[route] if (routeProps.shallow && existingInfo && this.route === route) { - return existingInfo + // If we have a match with the current route due to rewrite, + // we can copy the existing information to the rewritten one. + // Then, we return the information along with the matched route. + this.components[requestedRoute] = { ...existingInfo, route } + return { ...existingInfo, route } } cachedRouteInfo = @@ -1730,6 +1743,12 @@ export default class Router implements BaseRouter { routeInfo.route = route routeInfo.resolvedAs = resolvedAs this.components[route] = routeInfo + + // If the route was rewritten in the process of fetching data, + // we update the cache to allow hitting the same data for shallow requests. + if (route !== requestedRoute) { + this.components[requestedRoute] = { ...routeInfo, route } + } return routeInfo } catch (err) { return this.handleRouteInfoError( diff --git a/test/e2e/middleware-general/app/middleware.js b/test/e2e/middleware-general/app/middleware.js index fcdfb44113fc..0e4cb147c67a 100644 --- a/test/e2e/middleware-general/app/middleware.js +++ b/test/e2e/middleware-general/app/middleware.js @@ -41,6 +41,11 @@ export async function middleware(request) { return NextResponse.next() } + if (url.pathname === '/sha') { + url.pathname = '/shallow' + return NextResponse.rewrite(url) + } + if (url.pathname.startsWith('/fetch-user-agent-default')) { try { const apiRoute = new URL(url) diff --git a/test/e2e/middleware-general/app/next.config.js b/test/e2e/middleware-general/app/next.config.js index 8bea92cace43..718c6b6322fb 100644 --- a/test/e2e/middleware-general/app/next.config.js +++ b/test/e2e/middleware-general/app/next.config.js @@ -22,6 +22,10 @@ module.exports = { source: '/rewrite-2', destination: '/about/a', }, + { + source: '/sha', + destination: '/shallow', + }, { source: '/rewrite-3', destination: '/blog/middleware-rewrite', diff --git a/test/e2e/middleware-general/app/pages/shallow.js b/test/e2e/middleware-general/app/pages/shallow.js new file mode 100644 index 000000000000..cd32b9880b7c --- /dev/null +++ b/test/e2e/middleware-general/app/pages/shallow.js @@ -0,0 +1,43 @@ +import Link from 'next/link' +import { useRouter } from 'next/router' + +export default function Shallow({ message }) { + const { pathname, query } = useRouter() + return ( +
+ +
+ ) +} + +let i = 0 + +export const getServerSideProps = () => { + return { + props: { + message: `Random: ${++i}${Math.random()}`, + }, + } +} diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index 5a838684a897..95ce46a43d8a 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -476,6 +476,34 @@ describe('Middleware Runtime', () => { await browser.waitForElementByCss('.refreshed') expect(await browser.eval('window.__SAME_PAGE')).toBeUndefined() }) + + it('allows shallow linking with middleware', async () => { + const browser = await webdriver(next.url, '/sha') + const getMessageContents = () => + browser.elementById('message-contents').text() + const ssrMessage = await getMessageContents() + const requests: string[] = [] + + browser.on('request', (x) => { + requests.push(x.url()) + }) + + browser.elementById('deep-link').click() + browser.waitForElementByCss('[data-query-hello="goodbye"]') + const deepLinkMessage = await getMessageContents() + expect(deepLinkMessage).not.toEqual(ssrMessage) + + // Changing the route with a shallow link should not cause a server request + browser.elementById('shallow-link').click() + browser.waitForElementByCss('[data-query-hello="world"]') + expect(await getMessageContents()).toEqual(deepLinkMessage) + + // Check that no server requests were made to ?hello=world, + // as it's a shallow request. + expect(requests).toEqual([ + `${next.url}/_next/data/${next.buildId}/en/sha.json?hello=goodbye`, + ]) + }) }) function readMiddlewareJSON(response) { From 40b0dae5586763e34c5d45ae5136ea1fa13c225d Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Wed, 15 Jun 2022 17:14:43 +0200 Subject: [PATCH 049/149] chore: bump react dev dep to 18.2 (#37697) * chore: bump react dev dep to 18.2 * fix test and exclude inc cache path for edge * update compiled Co-authored-by: JJ Kasper --- package.json | 4 +- .../next-middleware-ssr-loader/index.ts | 2 - .../compiled/mini-css-extract-plugin/cjs.js | 2 +- .../hmr/hotModuleReplacement.js | 2 +- .../compiled/mini-css-extract-plugin/index.js | 2 +- .../mini-css-extract-plugin/loader.js | 2 +- packages/next/compiled/sass-loader/cjs.js | 2 +- .../server/lib/incremental-cache/index.ts | 2 +- pnpm-lock.yaml | 185 ++++++++++++------ .../test/index.test.js | 8 +- .../next-dynamic/test/index.test.js | 4 +- 11 files changed, 135 insertions(+), 80 deletions(-) diff --git a/package.json b/package.json index c73652f29bb4..c1061716ec42 100644 --- a/package.json +++ b/package.json @@ -168,9 +168,9 @@ "pretty-bytes": "5.3.0", "pretty-ms": "7.0.0", "random-seed": "0.3.0", - "react": "18.1.0", + "react": "18.2.0", "react-17": "npm:react@17.0.2", - "react-dom": "18.1.0", + "react-dom": "18.2.0", "react-dom-17": "npm:react-dom@17.0.2", "react-ssr-prepass": "1.0.8", "react-virtualized": "9.22.3", diff --git a/packages/next/build/webpack/loaders/next-middleware-ssr-loader/index.ts b/packages/next/build/webpack/loaders/next-middleware-ssr-loader/index.ts index 5feb565ac904..a7ca225b93f1 100644 --- a/packages/next/build/webpack/loaders/next-middleware-ssr-loader/index.ts +++ b/packages/next/build/webpack/loaders/next-middleware-ssr-loader/index.ts @@ -48,8 +48,6 @@ export default async function middlewareSSRLoader(this: any) { const transformed = ` import { adapter } from 'next/dist/server/web/adapter' - import { RouterContext } from 'next/dist/shared/lib/router-context' - import { getRender } from 'next/dist/build/webpack/loaders/next-middleware-ssr-loader/render' import Document from ${stringifiedDocumentPath} diff --git a/packages/next/compiled/mini-css-extract-plugin/cjs.js b/packages/next/compiled/mini-css-extract-plugin/cjs.js index 0056ef466826..98de23b5549b 100644 --- a/packages/next/compiled/mini-css-extract-plugin/cjs.js +++ b/packages/next/compiled/mini-css-extract-plugin/cjs.js @@ -1 +1 @@ -(()=>{"use strict";var e={471:(e,r,_)=>{e.exports=_(717)["default"]},717:e=>{e.exports=require("./index.js")}};var r={};function __nccwpck_require__(_){var t=r[_];if(t!==undefined){return t.exports}var a=r[_]={exports:{}};var i=true;try{e[_](a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(471);module.exports=_})(); \ No newline at end of file +(()=>{"use strict";var e={305:(e,r,_)=>{e.exports=_(717)["default"]},717:e=>{e.exports=require("./index.js")}};var r={};function __nccwpck_require__(_){var t=r[_];if(t!==undefined){return t.exports}var a=r[_]={exports:{}};var i=true;try{e[_](a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(305);module.exports=_})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js b/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js index 6e4172917816..c289e0957c2e 100644 --- a/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js +++ b/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js @@ -1 +1 @@ -(()=>{"use strict";var e={722:(e,r,t)=>{var n=t(121);var i=Object.create(null);var a=typeof document==="undefined";var o=Array.prototype.forEach;function debounce(e,r){var t=0;return function(){var n=this;var i=arguments;var a=function functionCall(){return e.apply(n,i)};clearTimeout(t);t=setTimeout(a,r)}}function noop(){}function getCurrentScriptUrl(e){var r=i[e];if(!r){if(document.currentScript){r=document.currentScript.src}else{var t=document.getElementsByTagName("script");var a=t[t.length-1];if(a){r=a.src}}i[e]=r}return function(e){if(!r){return null}var t=r.split(/([^\\/]+)\.js$/);var i=t&&t[1];if(!i){return[r.replace(".js",".css")]}if(!e){return[r.replace(".js",".css")]}return e.split(",").map((function(e){var t=new RegExp("".concat(i,"\\.js$"),"g");return n(r.replace(t,"".concat(e.replace(/{fileName}/g,i),".css")))}))}}function updateCss(e,r){if(!r){if(!e.href){return}r=e.href.split("?")[0]}if(!isUrlRequest(r)){return}if(e.isLoaded===false){return}if(!r||!(r.indexOf(".css")>-1)){return}e.visited=true;var t=e.cloneNode();t.isLoaded=false;t.addEventListener("load",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.addEventListener("error",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.href="".concat(r,"?").concat(Date.now());if(e.nextSibling){e.parentNode.insertBefore(t,e.nextSibling)}else{e.parentNode.appendChild(t)}}function getReloadUrl(e,r){var t;e=n(e,{stripWWW:false});r.some((function(n){if(e.indexOf(r)>-1){t=n}}));return t}function reloadStyle(e){if(!e){return false}var r=document.querySelectorAll("link");var t=false;o.call(r,(function(r){if(!r.href){return}var n=getReloadUrl(r.href,e);if(!isUrlRequest(n)){return}if(r.visited===true){return}if(n){updateCss(r,n);t=true}}));return t}function reloadAll(){var e=document.querySelectorAll("link");o.call(e,(function(e){if(e.visited===true){return}updateCss(e)}))}function isUrlRequest(e){if(!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)){return false}return true}e.exports=function(e,r){if(a){console.log("no window.document found, will not HMR CSS");return noop}var t=getCurrentScriptUrl(e);function update(){var e=t(r.filename);var n=reloadStyle(e);if(r.locals){console.log("[HMR] Detected local css modules. Reload all css");reloadAll();return}if(n){console.log("[HMR] css reload %s",e.join(" "))}else{console.log("[HMR] Reload all css");reloadAll()}}return debounce(update,50)}},121:e=>{function normalizeUrl(e){return e.reduce((function(e,r){switch(r){case"..":e.pop();break;case".":break;default:e.push(r)}return e}),[]).join("/")}e.exports=function(e){e=e.trim();if(/^data:/i.test(e)){return e}var r=e.indexOf("//")!==-1?e.split("//")[0]+"//":"";var t=e.replace(new RegExp(r,"i"),"").split("/");var n=t[0].toLowerCase().replace(/\.$/,"");t[0]="";var i=normalizeUrl(t);return r+n+i}}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var i=r[t]={exports:{}};var a=true;try{e[t](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(722);module.exports=t})(); \ No newline at end of file +(()=>{"use strict";var e={677:(e,r,t)=>{var n=t(996);var i=Object.create(null);var a=typeof document==="undefined";var o=Array.prototype.forEach;function debounce(e,r){var t=0;return function(){var n=this;var i=arguments;var a=function functionCall(){return e.apply(n,i)};clearTimeout(t);t=setTimeout(a,r)}}function noop(){}function getCurrentScriptUrl(e){var r=i[e];if(!r){if(document.currentScript){r=document.currentScript.src}else{var t=document.getElementsByTagName("script");var a=t[t.length-1];if(a){r=a.src}}i[e]=r}return function(e){if(!r){return null}var t=r.split(/([^\\/]+)\.js$/);var i=t&&t[1];if(!i){return[r.replace(".js",".css")]}if(!e){return[r.replace(".js",".css")]}return e.split(",").map((function(e){var t=new RegExp("".concat(i,"\\.js$"),"g");return n(r.replace(t,"".concat(e.replace(/{fileName}/g,i),".css")))}))}}function updateCss(e,r){if(!r){if(!e.href){return}r=e.href.split("?")[0]}if(!isUrlRequest(r)){return}if(e.isLoaded===false){return}if(!r||!(r.indexOf(".css")>-1)){return}e.visited=true;var t=e.cloneNode();t.isLoaded=false;t.addEventListener("load",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.addEventListener("error",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.href="".concat(r,"?").concat(Date.now());if(e.nextSibling){e.parentNode.insertBefore(t,e.nextSibling)}else{e.parentNode.appendChild(t)}}function getReloadUrl(e,r){var t;e=n(e,{stripWWW:false});r.some((function(n){if(e.indexOf(r)>-1){t=n}}));return t}function reloadStyle(e){if(!e){return false}var r=document.querySelectorAll("link");var t=false;o.call(r,(function(r){if(!r.href){return}var n=getReloadUrl(r.href,e);if(!isUrlRequest(n)){return}if(r.visited===true){return}if(n){updateCss(r,n);t=true}}));return t}function reloadAll(){var e=document.querySelectorAll("link");o.call(e,(function(e){if(e.visited===true){return}updateCss(e)}))}function isUrlRequest(e){if(!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)){return false}return true}e.exports=function(e,r){if(a){console.log("no window.document found, will not HMR CSS");return noop}var t=getCurrentScriptUrl(e);function update(){var e=t(r.filename);var n=reloadStyle(e);if(r.locals){console.log("[HMR] Detected local css modules. Reload all css");reloadAll();return}if(n){console.log("[HMR] css reload %s",e.join(" "))}else{console.log("[HMR] Reload all css");reloadAll()}}return debounce(update,50)}},996:e=>{function normalizeUrl(e){return e.reduce((function(e,r){switch(r){case"..":e.pop();break;case".":break;default:e.push(r)}return e}),[]).join("/")}e.exports=function(e){e=e.trim();if(/^data:/i.test(e)){return e}var r=e.indexOf("//")!==-1?e.split("//")[0]+"//":"";var t=e.replace(new RegExp(r,"i"),"").split("/");var n=t[0].toLowerCase().replace(/\.$/,"");t[0]="";var i=normalizeUrl(t);return r+n+i}}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var i=r[t]={exports:{}};var a=true;try{e[t](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(677);module.exports=t})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/index.js b/packages/next/compiled/mini-css-extract-plugin/index.js index 675159f92055..6e17f1e57a02 100644 --- a/packages/next/compiled/mini-css-extract-plugin/index.js +++ b/packages/next/compiled/mini-css-extract-plugin/index.js @@ -1 +1 @@ -(()=>{"use strict";var e={722:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var s=_interopRequireDefault(n(188));var i=_interopRequireDefault(n(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:n,chunkGraph:s}=e;for(const e of n){const n=typeof s!=="undefined"?s.getModuleId(e):e.id;if(n===t){return e}}return null}function evalModuleCode(e,t,n){const i=new s.default(n,e);i.paths=s.default._nodeModulePaths(e.context);i.filename=n;i._compile(t,n);return i.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const o="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=o;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return i.default.posix.isAbsolute(e)||i.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const n=t.split("!");const{context:s}=e;return JSON.stringify(n.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const n=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&s){r=i.default.relative(s,r);if(isAbsolutePath(r)){return r+n}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+n})).join("!"))}function getUndoPath(e,t,n){let s=-1;let i="";t=t.replace(/[\\/]$/,"");for(const n of e.split(/[/\\]+/)){if(n===".."){if(s>-1){s--}else{const e=t.lastIndexOf("/");const n=t.lastIndexOf("\\");const s=e<0?n:n<0?e:Math.max(e,n);if(s<0){return`${t}/`}i=`${t.slice(s+1)}/${i}`;t=t.slice(0,s)}}else if(n!=="."){s++}}return s>0?`${"../".repeat(s)}${i}`:n?`./${i}`:i}},188:e=>{e.exports=require("module")},476:e=>{e.exports=require("next/dist/compiled/schema-utils3")},17:e=>{e.exports=require("path")},3:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin options","type":"object","additionalProperties":false,"properties":{"filename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of each output CSS file.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#filename"},"chunkFilename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of non-entry chunk files.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#chunkfilename"},"experimentalUseImportModule":{"type":"boolean","description":"Enable the experimental importModule approach instead of using child compilers. This uses less memory and is faster.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#experimentaluseimportmodule"},"ignoreOrder":{"type":"boolean","description":"Remove Order Warnings.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#ignoreorder"},"insert":{"description":"Inserts the `link` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#insert","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"attributes":{"description":"Adds custom attributes to the `link` tag for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#attributes","type":"object"},"linkType":{"anyOf":[{"enum":["text/css"]},{"type":"boolean"}],"description":"This option allows loading asynchronous chunks with a custom link type","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#linktype"},"runtime":{"type":"boolean","description":"Enabled/Disables runtime generation. CSS will be still extracted and can be used for a custom loading methods.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#noRuntime"}}}')}};var t={};function __nccwpck_require__(n){var s=t[n];if(s!==undefined){return s.exports}var i=t[n]={exports:{}};var r=true;try{e[n](i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:true});e.pluginSymbol=e.pluginName=e["default"]=void 0;var t=__nccwpck_require__(476);var s=_interopRequireDefault(__nccwpck_require__(3));var i=__nccwpck_require__(722);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const r="mini-css-extract-plugin";e.pluginName=r;const o=Symbol(r);e.pluginSymbol=o;const a="[name].css";const u=new Set([i.MODULE_TYPE]);const l={sources:new Map,runtimeRequirements:new Set};const d=new WeakMap;const c=new WeakMap;const p=new WeakSet;class MiniCssExtractPlugin{static getCssModule(e){if(d.has(e)){return d.get(e)}class CssModule extends e.Module{constructor({context:e,identifier:t,identifierIndex:n,content:s,layer:r,supports:o,media:a,sourceMap:u,assets:l,assetsInfo:d}){super(i.MODULE_TYPE,e);this.id="";this._context=e;this._identifier=t;this._identifierIndex=n;this.content=s;this.layer=r;this.supports=o;this.media=a;this.sourceMap=u;this.assets=l;this.assetsInfo=d;this._needBuild=true}size(){return this.content.length}identifier(){return`css|${this._identifier}|${this._identifierIndex}`}readableIdentifier(e){return`css ${e.shorten(this._identifier)}${this._identifierIndex?` (${this._identifierIndex})`:""}`}getSourceTypes(){return u}codeGeneration(){return l}nameForCondition(){const e=this._identifier.split("!").pop();const t=e.indexOf("?");if(t>=0){return e.substring(0,t)}return e}updateCacheModule(e){if(this.content!==e.content||this.layer!==e.layer||this.supports!==e.supports||this.media!==e.media||this.sourceMap!==e.sourceMap||this.assets!==e.assets||this.assetsInfo!==e.assetsInfo){this._needBuild=true;this.content=e.content;this.layer=e.layer;this.supports=e.supports;this.media=e.media;this.sourceMap=e.sourceMap;this.assets=e.assets;this.assetsInfo=e.assetsInfo}}needRebuild(){return this._needBuild}needBuild(e,t){t(null,this._needBuild)}build(e,t,n,s,i){this.buildInfo={assets:this.assets,assetsInfo:this.assetsInfo,cacheable:true,hash:this._computeHash(t.outputOptions.hashFunction)};this.buildMeta={};this._needBuild=false;i()}_computeHash(t){const n=e.util.createHash(t);n.update(this.content);if(this.layer){n.update(this.layer)}n.update(this.supports||"");n.update(this.media||"");n.update(this.sourceMap||"");return n.digest("hex")}updateHash(e,t){super.updateHash(e,t);e.update(this.buildInfo.hash)}serialize(e){const{write:t}=e;t(this._context);t(this._identifier);t(this._identifierIndex);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.assets);t(this.assetsInfo);t(this._needBuild);super.serialize(e)}deserialize(e){this._needBuild=e.read();super.deserialize(e)}}d.set(e,CssModule);e.util.serialization.register(CssModule,"mini-css-extract-plugin/dist/CssModule",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=t();const s=t();const i=t();const r=t();const o=t();const a=t();const u=t();const l=t();const d=t();const c=t();const p=new CssModule({context:n,identifier:s,identifierIndex:i,content:r,layer:o,supports:a,media:u,sourceMap:l,assets:d,assetsInfo:c});p.deserialize(e);return p}});return CssModule}static getCssDependency(e){if(c.has(e)){return c.get(e)}class CssDependency extends e.Dependency{constructor({identifier:e,content:t,layer:n,supports:s,media:i,sourceMap:r},o,a){super();this.identifier=e;this.identifierIndex=a;this.content=t;this.layer=n;this.supports=s;this.media=i;this.sourceMap=r;this.context=o;this.assets=undefined;this.assetsInfo=undefined}getResourceIdentifier(){return`css-module-${this.identifier}-${this.identifierIndex}`}getModuleEvaluationSideEffectsState(){return e.ModuleGraphConnection.TRANSITIVE_ONLY}serialize(e){const{write:t}=e;t(this.identifier);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.context);t(this.identifierIndex);t(this.assets);t(this.assetsInfo);super.serialize(e)}deserialize(e){super.deserialize(e)}}c.set(e,CssDependency);e.util.serialization.register(CssDependency,"mini-css-extract-plugin/dist/CssDependency",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=new CssDependency({identifier:t(),content:t(),layer:t(),supports:t(),media:t(),sourceMap:t()},t(),t());const s=t();const i=t();n.assets=s;n.assetsInfo=i;n.deserialize(e);return n}});return CssDependency}constructor(e={}){(0,t.validate)(s.default,e,{baseDataPath:"options"});this._sortedModulesCache=new WeakMap;this.options=Object.assign({filename:a,ignoreOrder:false,experimentalUseImportModule:undefined,runtime:true},e);this.runtimeOptions={insert:e.insert,linkType:e.linkType===true||typeof e.linkType==="undefined"?"text/css":e.linkType,attributes:e.attributes};if(!this.options.chunkFilename){const{filename:e}=this.options;if(typeof e!=="function"){const t=e.includes("[name]");const n=e.includes("[id]");const s=e.includes("[chunkhash]");const i=e.includes("[contenthash]");if(s||i||t||n){this.options.chunkFilename=e}else{this.options.chunkFilename=e.replace(/(^|\/)([^/]*(?:\?|$))/,"$1[id].$2")}}else{this.options.chunkFilename="[id].css"}}}apply(e){const{webpack:t}=e;if(this.options.experimentalUseImportModule){if(typeof e.options.experiments.executeModule==="undefined"){e.options.experiments.executeModule=true}}if(!p.has(t)){p.add(t);t.util.serialization.registerLoader(/^mini-css-extract-plugin\//,i.trueFn)}const{splitChunks:n}=e.options.optimization;if(n){if(n.defaultSizeTypes.includes("...")){n.defaultSizeTypes.push(i.MODULE_TYPE)}}const s=MiniCssExtractPlugin.getCssModule(t);const a=MiniCssExtractPlugin.getCssDependency(t);const{NormalModule:u}=e.webpack;e.hooks.compilation.tap(r,(e=>{const{loader:t}=u.getCompilationHooks(e);t.tap(r,(e=>{e[o]={experimentalUseImportModule:this.options.experimentalUseImportModule}}))}));e.hooks.thisCompilation.tap(r,(n=>{class CssModuleFactory{create({dependencies:[e]},t){t(null,new s(e))}}n.dependencyFactories.set(a,new CssModuleFactory);class CssDependencyTemplate{apply(){}}n.dependencyTemplates.set(a,new CssDependencyTemplate);n.hooks.renderManifest.tap(r,((s,{chunk:o})=>{const{chunkGraph:a}=n;const{HotUpdateChunk:u}=t;if(o instanceof u){return}const l=Array.from(this.getChunkModules(o,a)).filter((e=>e.type===i.MODULE_TYPE));const d=o.canBeInitial()?this.options.filename:this.options.chunkFilename;if(l.length>0){s.push({render:()=>this.renderContentAsset(e,n,o,l,n.runtimeTemplate.requestShortener,d,{contentHashType:i.MODULE_TYPE,chunk:o}),filenameTemplate:d,pathOptions:{chunk:o,contentHashType:i.MODULE_TYPE},identifier:`${r}.${o.id}`,hash:o.contentHash[i.MODULE_TYPE]})}}));n.hooks.contentHash.tap(r,(t=>{const{outputOptions:s,chunkGraph:r}=n;const o=this.sortModules(n,t,r.getChunkModulesIterableBySourceType(t,i.MODULE_TYPE),n.runtimeTemplate.requestShortener);if(o){const{hashFunction:n,hashDigest:a,hashDigestLength:u}=s;const{createHash:l}=e.webpack.util;const d=l(n);for(const e of o){d.update(r.getModuleHash(e,t.runtime))}t.contentHash[i.MODULE_TYPE]=d.digest(a).substring(0,u)}}));if(!this.options.runtime){return}const{Template:o,RuntimeGlobals:u,RuntimeModule:l,runtime:d}=t;const getCssChunkObject=(e,t)=>{const n={};const{chunkGraph:s}=t;for(const t of e.getAllAsyncChunks()){const e=s.getOrderedChunkModulesIterable(t,i.compareModulesByIdentifier);for(const s of e){if(s.type===i.MODULE_TYPE){n[t.id]=1;break}}}return n};class CssLoadingRuntimeModule extends l{constructor(e,t){super("css loading",10);this.runtimeRequirements=e;this.runtimeOptions=t}generate(){const{chunk:e,runtimeRequirements:t}=this;const{runtimeTemplate:n,outputOptions:{crossOriginLoading:s}}=this.compilation;const i=getCssChunkObject(e,this.compilation);const r=t.has(u.ensureChunkHandlers)&&Object.keys(i).length>0;const a=t.has(u.hmrDownloadUpdateHandlers);if(!r&&!a){return null}return o.asString([`var createStylesheet = ${n.basicFunction("chunkId, fullhref, resolve, reject",['var linkTag = document.createElement("link");',this.runtimeOptions.attributes?o.asString(Object.entries(this.runtimeOptions.attributes).map((e=>{const[t,n]=e;return`linkTag.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(n)});`}))):"",'linkTag.rel = "stylesheet";',this.runtimeOptions.linkType?`linkTag.type = ${JSON.stringify(this.runtimeOptions.linkType)};`:"",`var onLinkComplete = ${n.basicFunction("event",["// avoid mem leaks.","linkTag.onerror = linkTag.onload = null;","if (event.type === 'load') {",o.indent(["resolve();"]),"} else {",o.indent(["var errorType = event && (event.type === 'load' ? 'missing' : event.type);","var realHref = event && event.target && event.target.href || fullhref;",'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");','err.code = "CSS_CHUNK_LOAD_FAILED";',"err.type = errorType;","err.request = realHref;","linkTag.parentNode.removeChild(linkTag)","reject(err);"]),"}"])}`,"linkTag.onerror = linkTag.onload = onLinkComplete;","linkTag.href = fullhref;",s?o.asString([`if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`,o.indent(`linkTag.crossOrigin = ${JSON.stringify(s)};`),"}"]):"",typeof this.runtimeOptions.insert!=="undefined"?typeof this.runtimeOptions.insert==="function"?`(${this.runtimeOptions.insert.toString()})(linkTag)`:o.asString([`var target = document.querySelector("${this.runtimeOptions.insert}");`,`target.parentNode.insertBefore(linkTag, target.nextSibling);`]):o.asString(["document.head.appendChild(linkTag);"]),"return linkTag;"])};`,`var findStylesheet = ${n.basicFunction("href, fullhref",['var existingLinkTags = document.getElementsByTagName("link");',"for(var i = 0; i < existingLinkTags.length; i++) {",o.indent(["var tag = existingLinkTags[i];",'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");','if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;']),"}",'var existingStyleTags = document.getElementsByTagName("style");',"for(var i = 0; i < existingStyleTags.length; i++) {",o.indent(["var tag = existingStyleTags[i];",'var dataHref = tag.getAttribute("data-href");',"if(dataHref === href || dataHref === fullhref) return tag;"]),"}"])};`,`var loadStylesheet = ${n.basicFunction("chunkId",`return new Promise(${n.basicFunction("resolve, reject",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"if(findStylesheet(href, fullhref)) return resolve();","createStylesheet(chunkId, fullhref, resolve, reject);"])});`)}`,r?o.asString(["// object to store loaded CSS chunks","var installedCssChunks = {",o.indent(e.ids.map((e=>`${JSON.stringify(e)}: 0`)).join(",\n")),"};","",`${u.ensureChunkHandlers}.miniCss = ${n.basicFunction("chunkId, promises",[`var cssChunks = ${JSON.stringify(i)};`,"if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);","else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {",o.indent([`promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${n.basicFunction("","installedCssChunks[chunkId] = 0;")}, ${n.basicFunction("e",["delete installedCssChunks[chunkId];","throw e;"])}));`]),"}"])};`]):"// no chunk loading","",a?o.asString(["var oldTags = [];","var newTags = [];",`var applyHandler = ${n.basicFunction("options",[`return { dispose: ${n.basicFunction("",["for(var i = 0; i < oldTags.length; i++) {",o.indent(["var oldTag = oldTags[i];","if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);"]),"}","oldTags.length = 0;"])}, apply: ${n.basicFunction("",['for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";',"newTags.length = 0;"])} };`])}`,`${u.hmrDownloadUpdateHandlers}.miniCss = ${n.basicFunction("chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList",["applyHandlers.push(applyHandler);",`chunkIds.forEach(${n.basicFunction("chunkId",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"var oldTag = findStylesheet(href, fullhref);","if(!oldTag) return;",`promises.push(new Promise(${n.basicFunction("resolve, reject",[`var tag = createStylesheet(chunkId, fullhref, ${n.basicFunction("",['tag.as = "style";','tag.rel = "preload";',"resolve();"])}, reject);`,"oldTags.push(oldTag);","newTags.push(tag);"])}));`])});`])}`]):"// no hmr"])}}const c=new WeakSet;const handler=(e,t)=>{if(c.has(e)){return}c.add(e);if(typeof this.options.chunkFilename==="string"&&/\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename)){t.add(u.getFullHash)}t.add(u.publicPath);n.addRuntimeModule(e,new d.GetChunkFilenameRuntimeModule(i.MODULE_TYPE,"mini-css",`${u.require}.miniCssF`,(e=>{if(!e.contentHash[i.MODULE_TYPE]){return false}return e.canBeInitial()?this.options.filename:this.options.chunkFilename}),true));n.addRuntimeModule(e,new CssLoadingRuntimeModule(t,this.runtimeOptions))};n.hooks.runtimeRequirementInTree.for(u.ensureChunkHandlers).tap(r,handler);n.hooks.runtimeRequirementInTree.for(u.hmrDownloadUpdateHandlers).tap(r,handler)}))}getChunkModules(e,t){return typeof t!=="undefined"?t.getOrderedChunkModulesIterable(e,i.compareModulesByIdentifier):e.modulesIterable}sortModules(e,t,n,s){let i=this._sortedModulesCache.get(t);if(i||!n){return i}const o=[...n];const a=new Map(o.map((e=>[e,new Set])));const u=new Map(o.map((e=>[e,new Map])));const l=Array.from(t.groupsIterable,(e=>{const t=o.map((t=>({module:t,index:e.getModulePostOrderIndex(t)}))).filter((e=>e.index!==undefined)).sort(((e,t)=>t.index-e.index)).map((e=>e.module));for(let n=0;n!i.has(e);while(i.size0&&i.has(e[e.length-1])){e.pop()}if(e.length!==0){const t=e[e.length-1];const s=a.get(t);const r=Array.from(s).filter(unusedModulesFilter);if(!d||d.length>r.length){o=e;d=r}if(r.length===0){i.add(e.pop());n=true;break}}}if(!n){const n=o.pop();if(!this.options.ignoreOrder){const i=u.get(n);e.warnings.push(new Error([`chunk ${t.name||t.id} [${r}]`,"Conflicting order. Following module has been added:",` * ${n.readableIdentifier(s)}`,"despite it was not able to fulfill desired ordering with these modules:",...d.map((e=>{const t=u.get(e);const r=t&&t.get(n);const o=Array.from(i.get(e),(e=>e.name)).join(", ");const a=r&&Array.from(r,(e=>e.name)).join(", ");return[` * ${e.readableIdentifier(s)}`,` - couldn't fulfill desired order of chunk group(s) ${o}`,a&&` - while fulfilling desired order of chunk group(s) ${a}`].filter(Boolean).join("\n")}))].join("\n")))}i.add(n)}}this._sortedModulesCache.set(t,i);return i}renderContentAsset(e,t,n,s,r,o,a){const u=this.sortModules(t,n,s,r);const{ConcatSource:l,SourceMapSource:d,RawSource:c}=e.webpack.sources;const p=new l;const h=new l;for(const n of u){let s=n.content.toString();const u=n.readableIdentifier(r);const l=/^@import url/.test(s);let f;if(t.outputOptions.pathinfo){const e=u.replace(/\*\//g,"*_/");const t="*".repeat(e.length);const n=`/*!****${t}****!*\\\n !*** ${e} ***!\n \\****${t}****/\n`;f=new c(n)}if(l){if(typeof f!=="undefined"){h.add(f)}if(n.media){s=s.replace(/;|\s*$/,n.media)}h.add(s);h.add("\n")}else{if(typeof f!=="undefined"){p.add(f)}if(n.supports){p.add(`@supports (${n.supports}) {\n`)}if(n.media){p.add(`@media ${n.media} {\n`)}const r=typeof n.layer!=="undefined";if(r){p.add(`@layer${n.layer.length>0?` ${n.layer}`:""} {\n`)}const{path:l}=t.getPathWithInfo(o,a);const h=(0,i.getUndoPath)(l,e.outputPath,false);s=s.replace(new RegExp(i.ABSOLUTE_PUBLIC_PATH,"g"),"");s=s.replace(new RegExp(i.SINGLE_DOT_PATH_SEGMENT,"g"),".");s=s.replace(new RegExp(i.AUTO_PUBLIC_PATH,"g"),h);if(n.sourceMap){p.add(new d(s,u,n.sourceMap.toString()))}else{p.add(new c(s,u))}p.add("\n");if(r){p.add("}\n")}if(n.media){p.add("}\n")}if(n.supports){p.add("}\n")}}}return new l(h,p)}}MiniCssExtractPlugin.loader=__nccwpck_require__.ab+"loader.js";var h=MiniCssExtractPlugin;e["default"]=h})();module.exports=n})(); \ No newline at end of file +(()=>{"use strict";var e={154:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var s=_interopRequireDefault(n(188));var i=_interopRequireDefault(n(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:n,chunkGraph:s}=e;for(const e of n){const n=typeof s!=="undefined"?s.getModuleId(e):e.id;if(n===t){return e}}return null}function evalModuleCode(e,t,n){const i=new s.default(n,e);i.paths=s.default._nodeModulePaths(e.context);i.filename=n;i._compile(t,n);return i.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const o="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=o;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return i.default.posix.isAbsolute(e)||i.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const n=t.split("!");const{context:s}=e;return JSON.stringify(n.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const n=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&s){r=i.default.relative(s,r);if(isAbsolutePath(r)){return r+n}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+n})).join("!"))}function getUndoPath(e,t,n){let s=-1;let i="";t=t.replace(/[\\/]$/,"");for(const n of e.split(/[/\\]+/)){if(n===".."){if(s>-1){s--}else{const e=t.lastIndexOf("/");const n=t.lastIndexOf("\\");const s=e<0?n:n<0?e:Math.max(e,n);if(s<0){return`${t}/`}i=`${t.slice(s+1)}/${i}`;t=t.slice(0,s)}}else if(n!=="."){s++}}return s>0?`${"../".repeat(s)}${i}`:n?`./${i}`:i}},188:e=>{e.exports=require("module")},476:e=>{e.exports=require("next/dist/compiled/schema-utils3")},17:e=>{e.exports=require("path")},910:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin options","type":"object","additionalProperties":false,"properties":{"filename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of each output CSS file.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#filename"},"chunkFilename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of non-entry chunk files.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#chunkfilename"},"experimentalUseImportModule":{"type":"boolean","description":"Enable the experimental importModule approach instead of using child compilers. This uses less memory and is faster.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#experimentaluseimportmodule"},"ignoreOrder":{"type":"boolean","description":"Remove Order Warnings.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#ignoreorder"},"insert":{"description":"Inserts the `link` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#insert","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"attributes":{"description":"Adds custom attributes to the `link` tag for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#attributes","type":"object"},"linkType":{"anyOf":[{"enum":["text/css"]},{"type":"boolean"}],"description":"This option allows loading asynchronous chunks with a custom link type","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#linktype"},"runtime":{"type":"boolean","description":"Enabled/Disables runtime generation. CSS will be still extracted and can be used for a custom loading methods.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#noRuntime"}}}')}};var t={};function __nccwpck_require__(n){var s=t[n];if(s!==undefined){return s.exports}var i=t[n]={exports:{}};var r=true;try{e[n](i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:true});e.pluginSymbol=e.pluginName=e["default"]=void 0;var t=__nccwpck_require__(476);var s=_interopRequireDefault(__nccwpck_require__(910));var i=__nccwpck_require__(154);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const r="mini-css-extract-plugin";e.pluginName=r;const o=Symbol(r);e.pluginSymbol=o;const a="[name].css";const u=new Set([i.MODULE_TYPE]);const l={sources:new Map,runtimeRequirements:new Set};const d=new WeakMap;const c=new WeakMap;const p=new WeakSet;class MiniCssExtractPlugin{static getCssModule(e){if(d.has(e)){return d.get(e)}class CssModule extends e.Module{constructor({context:e,identifier:t,identifierIndex:n,content:s,layer:r,supports:o,media:a,sourceMap:u,assets:l,assetsInfo:d}){super(i.MODULE_TYPE,e);this.id="";this._context=e;this._identifier=t;this._identifierIndex=n;this.content=s;this.layer=r;this.supports=o;this.media=a;this.sourceMap=u;this.assets=l;this.assetsInfo=d;this._needBuild=true}size(){return this.content.length}identifier(){return`css|${this._identifier}|${this._identifierIndex}`}readableIdentifier(e){return`css ${e.shorten(this._identifier)}${this._identifierIndex?` (${this._identifierIndex})`:""}`}getSourceTypes(){return u}codeGeneration(){return l}nameForCondition(){const e=this._identifier.split("!").pop();const t=e.indexOf("?");if(t>=0){return e.substring(0,t)}return e}updateCacheModule(e){if(this.content!==e.content||this.layer!==e.layer||this.supports!==e.supports||this.media!==e.media||this.sourceMap!==e.sourceMap||this.assets!==e.assets||this.assetsInfo!==e.assetsInfo){this._needBuild=true;this.content=e.content;this.layer=e.layer;this.supports=e.supports;this.media=e.media;this.sourceMap=e.sourceMap;this.assets=e.assets;this.assetsInfo=e.assetsInfo}}needRebuild(){return this._needBuild}needBuild(e,t){t(null,this._needBuild)}build(e,t,n,s,i){this.buildInfo={assets:this.assets,assetsInfo:this.assetsInfo,cacheable:true,hash:this._computeHash(t.outputOptions.hashFunction)};this.buildMeta={};this._needBuild=false;i()}_computeHash(t){const n=e.util.createHash(t);n.update(this.content);if(this.layer){n.update(this.layer)}n.update(this.supports||"");n.update(this.media||"");n.update(this.sourceMap||"");return n.digest("hex")}updateHash(e,t){super.updateHash(e,t);e.update(this.buildInfo.hash)}serialize(e){const{write:t}=e;t(this._context);t(this._identifier);t(this._identifierIndex);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.assets);t(this.assetsInfo);t(this._needBuild);super.serialize(e)}deserialize(e){this._needBuild=e.read();super.deserialize(e)}}d.set(e,CssModule);e.util.serialization.register(CssModule,"mini-css-extract-plugin/dist/CssModule",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=t();const s=t();const i=t();const r=t();const o=t();const a=t();const u=t();const l=t();const d=t();const c=t();const p=new CssModule({context:n,identifier:s,identifierIndex:i,content:r,layer:o,supports:a,media:u,sourceMap:l,assets:d,assetsInfo:c});p.deserialize(e);return p}});return CssModule}static getCssDependency(e){if(c.has(e)){return c.get(e)}class CssDependency extends e.Dependency{constructor({identifier:e,content:t,layer:n,supports:s,media:i,sourceMap:r},o,a){super();this.identifier=e;this.identifierIndex=a;this.content=t;this.layer=n;this.supports=s;this.media=i;this.sourceMap=r;this.context=o;this.assets=undefined;this.assetsInfo=undefined}getResourceIdentifier(){return`css-module-${this.identifier}-${this.identifierIndex}`}getModuleEvaluationSideEffectsState(){return e.ModuleGraphConnection.TRANSITIVE_ONLY}serialize(e){const{write:t}=e;t(this.identifier);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.context);t(this.identifierIndex);t(this.assets);t(this.assetsInfo);super.serialize(e)}deserialize(e){super.deserialize(e)}}c.set(e,CssDependency);e.util.serialization.register(CssDependency,"mini-css-extract-plugin/dist/CssDependency",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=new CssDependency({identifier:t(),content:t(),layer:t(),supports:t(),media:t(),sourceMap:t()},t(),t());const s=t();const i=t();n.assets=s;n.assetsInfo=i;n.deserialize(e);return n}});return CssDependency}constructor(e={}){(0,t.validate)(s.default,e,{baseDataPath:"options"});this._sortedModulesCache=new WeakMap;this.options=Object.assign({filename:a,ignoreOrder:false,experimentalUseImportModule:undefined,runtime:true},e);this.runtimeOptions={insert:e.insert,linkType:e.linkType===true||typeof e.linkType==="undefined"?"text/css":e.linkType,attributes:e.attributes};if(!this.options.chunkFilename){const{filename:e}=this.options;if(typeof e!=="function"){const t=e.includes("[name]");const n=e.includes("[id]");const s=e.includes("[chunkhash]");const i=e.includes("[contenthash]");if(s||i||t||n){this.options.chunkFilename=e}else{this.options.chunkFilename=e.replace(/(^|\/)([^/]*(?:\?|$))/,"$1[id].$2")}}else{this.options.chunkFilename="[id].css"}}}apply(e){const{webpack:t}=e;if(this.options.experimentalUseImportModule){if(typeof e.options.experiments.executeModule==="undefined"){e.options.experiments.executeModule=true}}if(!p.has(t)){p.add(t);t.util.serialization.registerLoader(/^mini-css-extract-plugin\//,i.trueFn)}const{splitChunks:n}=e.options.optimization;if(n){if(n.defaultSizeTypes.includes("...")){n.defaultSizeTypes.push(i.MODULE_TYPE)}}const s=MiniCssExtractPlugin.getCssModule(t);const a=MiniCssExtractPlugin.getCssDependency(t);const{NormalModule:u}=e.webpack;e.hooks.compilation.tap(r,(e=>{const{loader:t}=u.getCompilationHooks(e);t.tap(r,(e=>{e[o]={experimentalUseImportModule:this.options.experimentalUseImportModule}}))}));e.hooks.thisCompilation.tap(r,(n=>{class CssModuleFactory{create({dependencies:[e]},t){t(null,new s(e))}}n.dependencyFactories.set(a,new CssModuleFactory);class CssDependencyTemplate{apply(){}}n.dependencyTemplates.set(a,new CssDependencyTemplate);n.hooks.renderManifest.tap(r,((s,{chunk:o})=>{const{chunkGraph:a}=n;const{HotUpdateChunk:u}=t;if(o instanceof u){return}const l=Array.from(this.getChunkModules(o,a)).filter((e=>e.type===i.MODULE_TYPE));const d=o.canBeInitial()?this.options.filename:this.options.chunkFilename;if(l.length>0){s.push({render:()=>this.renderContentAsset(e,n,o,l,n.runtimeTemplate.requestShortener,d,{contentHashType:i.MODULE_TYPE,chunk:o}),filenameTemplate:d,pathOptions:{chunk:o,contentHashType:i.MODULE_TYPE},identifier:`${r}.${o.id}`,hash:o.contentHash[i.MODULE_TYPE]})}}));n.hooks.contentHash.tap(r,(t=>{const{outputOptions:s,chunkGraph:r}=n;const o=this.sortModules(n,t,r.getChunkModulesIterableBySourceType(t,i.MODULE_TYPE),n.runtimeTemplate.requestShortener);if(o){const{hashFunction:n,hashDigest:a,hashDigestLength:u}=s;const{createHash:l}=e.webpack.util;const d=l(n);for(const e of o){d.update(r.getModuleHash(e,t.runtime))}t.contentHash[i.MODULE_TYPE]=d.digest(a).substring(0,u)}}));if(!this.options.runtime){return}const{Template:o,RuntimeGlobals:u,RuntimeModule:l,runtime:d}=t;const getCssChunkObject=(e,t)=>{const n={};const{chunkGraph:s}=t;for(const t of e.getAllAsyncChunks()){const e=s.getOrderedChunkModulesIterable(t,i.compareModulesByIdentifier);for(const s of e){if(s.type===i.MODULE_TYPE){n[t.id]=1;break}}}return n};class CssLoadingRuntimeModule extends l{constructor(e,t){super("css loading",10);this.runtimeRequirements=e;this.runtimeOptions=t}generate(){const{chunk:e,runtimeRequirements:t}=this;const{runtimeTemplate:n,outputOptions:{crossOriginLoading:s}}=this.compilation;const i=getCssChunkObject(e,this.compilation);const r=t.has(u.ensureChunkHandlers)&&Object.keys(i).length>0;const a=t.has(u.hmrDownloadUpdateHandlers);if(!r&&!a){return null}return o.asString([`var createStylesheet = ${n.basicFunction("chunkId, fullhref, resolve, reject",['var linkTag = document.createElement("link");',this.runtimeOptions.attributes?o.asString(Object.entries(this.runtimeOptions.attributes).map((e=>{const[t,n]=e;return`linkTag.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(n)});`}))):"",'linkTag.rel = "stylesheet";',this.runtimeOptions.linkType?`linkTag.type = ${JSON.stringify(this.runtimeOptions.linkType)};`:"",`var onLinkComplete = ${n.basicFunction("event",["// avoid mem leaks.","linkTag.onerror = linkTag.onload = null;","if (event.type === 'load') {",o.indent(["resolve();"]),"} else {",o.indent(["var errorType = event && (event.type === 'load' ? 'missing' : event.type);","var realHref = event && event.target && event.target.href || fullhref;",'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");','err.code = "CSS_CHUNK_LOAD_FAILED";',"err.type = errorType;","err.request = realHref;","linkTag.parentNode.removeChild(linkTag)","reject(err);"]),"}"])}`,"linkTag.onerror = linkTag.onload = onLinkComplete;","linkTag.href = fullhref;",s?o.asString([`if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`,o.indent(`linkTag.crossOrigin = ${JSON.stringify(s)};`),"}"]):"",typeof this.runtimeOptions.insert!=="undefined"?typeof this.runtimeOptions.insert==="function"?`(${this.runtimeOptions.insert.toString()})(linkTag)`:o.asString([`var target = document.querySelector("${this.runtimeOptions.insert}");`,`target.parentNode.insertBefore(linkTag, target.nextSibling);`]):o.asString(["document.head.appendChild(linkTag);"]),"return linkTag;"])};`,`var findStylesheet = ${n.basicFunction("href, fullhref",['var existingLinkTags = document.getElementsByTagName("link");',"for(var i = 0; i < existingLinkTags.length; i++) {",o.indent(["var tag = existingLinkTags[i];",'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");','if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;']),"}",'var existingStyleTags = document.getElementsByTagName("style");',"for(var i = 0; i < existingStyleTags.length; i++) {",o.indent(["var tag = existingStyleTags[i];",'var dataHref = tag.getAttribute("data-href");',"if(dataHref === href || dataHref === fullhref) return tag;"]),"}"])};`,`var loadStylesheet = ${n.basicFunction("chunkId",`return new Promise(${n.basicFunction("resolve, reject",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"if(findStylesheet(href, fullhref)) return resolve();","createStylesheet(chunkId, fullhref, resolve, reject);"])});`)}`,r?o.asString(["// object to store loaded CSS chunks","var installedCssChunks = {",o.indent(e.ids.map((e=>`${JSON.stringify(e)}: 0`)).join(",\n")),"};","",`${u.ensureChunkHandlers}.miniCss = ${n.basicFunction("chunkId, promises",[`var cssChunks = ${JSON.stringify(i)};`,"if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);","else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {",o.indent([`promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${n.basicFunction("","installedCssChunks[chunkId] = 0;")}, ${n.basicFunction("e",["delete installedCssChunks[chunkId];","throw e;"])}));`]),"}"])};`]):"// no chunk loading","",a?o.asString(["var oldTags = [];","var newTags = [];",`var applyHandler = ${n.basicFunction("options",[`return { dispose: ${n.basicFunction("",["for(var i = 0; i < oldTags.length; i++) {",o.indent(["var oldTag = oldTags[i];","if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);"]),"}","oldTags.length = 0;"])}, apply: ${n.basicFunction("",['for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";',"newTags.length = 0;"])} };`])}`,`${u.hmrDownloadUpdateHandlers}.miniCss = ${n.basicFunction("chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList",["applyHandlers.push(applyHandler);",`chunkIds.forEach(${n.basicFunction("chunkId",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"var oldTag = findStylesheet(href, fullhref);","if(!oldTag) return;",`promises.push(new Promise(${n.basicFunction("resolve, reject",[`var tag = createStylesheet(chunkId, fullhref, ${n.basicFunction("",['tag.as = "style";','tag.rel = "preload";',"resolve();"])}, reject);`,"oldTags.push(oldTag);","newTags.push(tag);"])}));`])});`])}`]):"// no hmr"])}}const c=new WeakSet;const handler=(e,t)=>{if(c.has(e)){return}c.add(e);if(typeof this.options.chunkFilename==="string"&&/\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename)){t.add(u.getFullHash)}t.add(u.publicPath);n.addRuntimeModule(e,new d.GetChunkFilenameRuntimeModule(i.MODULE_TYPE,"mini-css",`${u.require}.miniCssF`,(e=>{if(!e.contentHash[i.MODULE_TYPE]){return false}return e.canBeInitial()?this.options.filename:this.options.chunkFilename}),true));n.addRuntimeModule(e,new CssLoadingRuntimeModule(t,this.runtimeOptions))};n.hooks.runtimeRequirementInTree.for(u.ensureChunkHandlers).tap(r,handler);n.hooks.runtimeRequirementInTree.for(u.hmrDownloadUpdateHandlers).tap(r,handler)}))}getChunkModules(e,t){return typeof t!=="undefined"?t.getOrderedChunkModulesIterable(e,i.compareModulesByIdentifier):e.modulesIterable}sortModules(e,t,n,s){let i=this._sortedModulesCache.get(t);if(i||!n){return i}const o=[...n];const a=new Map(o.map((e=>[e,new Set])));const u=new Map(o.map((e=>[e,new Map])));const l=Array.from(t.groupsIterable,(e=>{const t=o.map((t=>({module:t,index:e.getModulePostOrderIndex(t)}))).filter((e=>e.index!==undefined)).sort(((e,t)=>t.index-e.index)).map((e=>e.module));for(let n=0;n!i.has(e);while(i.size0&&i.has(e[e.length-1])){e.pop()}if(e.length!==0){const t=e[e.length-1];const s=a.get(t);const r=Array.from(s).filter(unusedModulesFilter);if(!d||d.length>r.length){o=e;d=r}if(r.length===0){i.add(e.pop());n=true;break}}}if(!n){const n=o.pop();if(!this.options.ignoreOrder){const i=u.get(n);e.warnings.push(new Error([`chunk ${t.name||t.id} [${r}]`,"Conflicting order. Following module has been added:",` * ${n.readableIdentifier(s)}`,"despite it was not able to fulfill desired ordering with these modules:",...d.map((e=>{const t=u.get(e);const r=t&&t.get(n);const o=Array.from(i.get(e),(e=>e.name)).join(", ");const a=r&&Array.from(r,(e=>e.name)).join(", ");return[` * ${e.readableIdentifier(s)}`,` - couldn't fulfill desired order of chunk group(s) ${o}`,a&&` - while fulfilling desired order of chunk group(s) ${a}`].filter(Boolean).join("\n")}))].join("\n")))}i.add(n)}}this._sortedModulesCache.set(t,i);return i}renderContentAsset(e,t,n,s,r,o,a){const u=this.sortModules(t,n,s,r);const{ConcatSource:l,SourceMapSource:d,RawSource:c}=e.webpack.sources;const p=new l;const h=new l;for(const n of u){let s=n.content.toString();const u=n.readableIdentifier(r);const l=/^@import url/.test(s);let f;if(t.outputOptions.pathinfo){const e=u.replace(/\*\//g,"*_/");const t="*".repeat(e.length);const n=`/*!****${t}****!*\\\n !*** ${e} ***!\n \\****${t}****/\n`;f=new c(n)}if(l){if(typeof f!=="undefined"){h.add(f)}if(n.media){s=s.replace(/;|\s*$/,n.media)}h.add(s);h.add("\n")}else{if(typeof f!=="undefined"){p.add(f)}if(n.supports){p.add(`@supports (${n.supports}) {\n`)}if(n.media){p.add(`@media ${n.media} {\n`)}const r=typeof n.layer!=="undefined";if(r){p.add(`@layer${n.layer.length>0?` ${n.layer}`:""} {\n`)}const{path:l}=t.getPathWithInfo(o,a);const h=(0,i.getUndoPath)(l,e.outputPath,false);s=s.replace(new RegExp(i.ABSOLUTE_PUBLIC_PATH,"g"),"");s=s.replace(new RegExp(i.SINGLE_DOT_PATH_SEGMENT,"g"),".");s=s.replace(new RegExp(i.AUTO_PUBLIC_PATH,"g"),h);if(n.sourceMap){p.add(new d(s,u,n.sourceMap.toString()))}else{p.add(new c(s,u))}p.add("\n");if(r){p.add("}\n")}if(n.media){p.add("}\n")}if(n.supports){p.add("}\n")}}}return new l(h,p)}}MiniCssExtractPlugin.loader=__nccwpck_require__.ab+"loader.js";var h=MiniCssExtractPlugin;e["default"]=h})();module.exports=n})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/loader.js b/packages/next/compiled/mini-css-extract-plugin/loader.js index aa8aacb8fce5..eb76fda0d71a 100644 --- a/packages/next/compiled/mini-css-extract-plugin/loader.js +++ b/packages/next/compiled/mini-css-extract-plugin/loader.js @@ -1 +1 @@ -(()=>{"use strict";var e={722:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var n=_interopRequireDefault(i(188));var o=_interopRequireDefault(i(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:i,chunkGraph:n}=e;for(const e of i){const i=typeof n!=="undefined"?n.getModuleId(e):e.id;if(i===t){return e}}return null}function evalModuleCode(e,t,i){const o=new n.default(i,e);o.paths=n.default._nodeModulePaths(e.context);o.filename=i;o._compile(t,i);return o.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const s="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=s;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return o.default.posix.isAbsolute(e)||o.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const i=t.split("!");const{context:n}=e;return JSON.stringify(i.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const i=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&n){r=o.default.relative(n,r);if(isAbsolutePath(r)){return r+i}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+i})).join("!"))}function getUndoPath(e,t,i){let n=-1;let o="";t=t.replace(/[\\/]$/,"");for(const i of e.split(/[/\\]+/)){if(i===".."){if(n>-1){n--}else{const e=t.lastIndexOf("/");const i=t.lastIndexOf("\\");const n=e<0?i:i<0?e:Math.max(e,i);if(n<0){return`${t}/`}o=`${t.slice(n+1)}/${o}`;t=t.slice(0,n)}}else if(i!=="."){n++}}return n>0?`${"../".repeat(n)}${o}`:i?`./${o}`:o}},717:e=>{e.exports=require("./index.js")},188:e=>{e.exports=require("module")},17:e=>{e.exports=require("path")},594:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin Loader options","type":"object","additionalProperties":false,"properties":{"publicPath":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"Specifies a custom public path for the external resources like images, files, etc inside CSS.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#publicpath"},"emit":{"type":"boolean","description":"If true, emits a file (writes a file to the filesystem). If false, the plugin will extract the CSS but will not emit the file","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#emit"},"esModule":{"type":"boolean","description":"Generates JS modules that use the ES modules syntax.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#esmodule"},"layer":{"type":"string"}}}')}};var t={};function __nccwpck_require__(i){var n=t[i];if(n!==undefined){return n.exports}var o=t[i]={exports:{}};var r=true;try{e[i](o,o.exports,__nccwpck_require__);r=false}finally{if(r)delete t[i]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i={};(()=>{var e=i;Object.defineProperty(e,"__esModule",{value:true});e["default"]=_default;e.pitch=pitch;var t=_interopRequireDefault(__nccwpck_require__(17));var n=__nccwpck_require__(722);var o=_interopRequireDefault(__nccwpck_require__(594));var r=_interopRequireWildcard(__nccwpck_require__(717));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var i=new WeakMap;return(_getRequireWildcardCache=function(e){return e?i:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var i=_getRequireWildcardCache(t);if(i&&i.has(e)){return i.get(e)}var n={};var o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e){if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)){var s=o?Object.getOwnPropertyDescriptor(e,r):null;if(s&&(s.get||s.set)){Object.defineProperty(n,r,s)}else{n[r]=e[r]}}}n.default=e;if(i){i.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function hotLoader(e,i){const o=i.locals?"":"module.hot.accept(undefined, cssReload);";return`${e}\n if(module.hot) {\n // ${Date.now()}\n var cssReload = require(${(0,n.stringifyRequest)(i.context,t.default.join(__dirname,"hmr/hotModuleReplacement.js"))})(module.id, ${JSON.stringify({...i.options,locals:!!i.locals})});\n module.hot.dispose(cssReload);\n ${o}\n }\n `}function pitch(e){const t=this.getOptions(o.default);const i=this.async();const s=this[r.pluginSymbol];if(!s){i(new Error("You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started"));return}const{webpack:a}=this._compiler;const handleExports=(e,o,s,u)=>{let l;let c;const p=typeof t.esModule!=="undefined"?t.esModule:true;const addDependencies=e=>{if(!Array.isArray(e)&&e!=null){throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(e)}`)}const i=new Map;const n=typeof t.emit!=="undefined"?t.emit:true;let o;for(const t of e){if(!t.identifier||!n){continue}const e=i.get(t.identifier)||0;const s=r.default.getCssDependency(a);this._module.addDependency(o=new s(t,t.context,e));i.set(t.identifier,e+1)}if(o&&s){o.assets=s;o.assetsInfo=u}};try{const t=e.__esModule?e.default:e;c=e.__esModule&&(!e.default||!("locals"in e.default));if(c){Object.keys(e).forEach((t=>{if(t!=="default"){if(!l){l={}}l[t]=e[t]}}))}else{l=t&&t.locals}let i;if(!Array.isArray(t)){i=[[null,t]]}else{i=t.map((([e,t,i,r,s,a])=>{let u=e;let l;if(o){const t=(0,n.findModuleById)(o,e);u=t.identifier();({context:l}=t)}else{l=this.rootContext}return{identifier:u,context:l,content:Buffer.from(t),media:i,supports:s,layer:a,sourceMap:r?Buffer.from(JSON.stringify(r)):undefined}}))}addDependencies(i)}catch(e){return i(e)}const d=l?c?Object.keys(l).map((e=>`\nexport var ${e} = ${JSON.stringify(l[e])};`)).join(""):`\n${p?"export default":"module.exports ="} ${JSON.stringify(l)};`:p?`\nexport {};`:"";let f=`// extracted by ${r.pluginName}`;f+=this.hot?hotLoader(d,{context:this.context,options:t,locals:l}):d;return i(null,f)};let{publicPath:u}=this._compilation.outputOptions;if(typeof t.publicPath==="string"){u=t.publicPath}else if(typeof t.publicPath==="function"){u=t.publicPath(this.resourcePath,this.rootContext)}if(u==="auto"){u=n.AUTO_PUBLIC_PATH}if(typeof s.experimentalUseImportModule==="undefined"&&typeof this.importModule==="function"||s.experimentalUseImportModule){if(!this.importModule){i(new Error("You are using 'experimentalUseImportModule' but 'this.importModule' is not available in loader context. You need to have at least webpack 5.33.2."));return}const o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(u);const r=o?u:`${n.ABSOLUTE_PUBLIC_PATH}${u.replace(/\./g,n.SINGLE_DOT_PATH_SEGMENT)}`;this.importModule(`${this.resourcePath}.webpack[javascript/auto]!=!!!${e}`,{layer:t.layer,publicPath:r},((e,t)=>{if(e){i(e);return}handleExports(t)}));return}const l=this.loaders.slice(this.loaderIndex+1);this.addDependency(this.resourcePath);const c="*";const p={filename:c,publicPath:u};const d=this._compilation.createChildCompiler(`${r.pluginName} ${e}`,p);d.options.module={...d.options.module};d.options.module.parser={...d.options.module.parser};d.options.module.parser.javascript={...d.options.module.parser.javascript,url:"relative"};const{NodeTemplatePlugin:f}=a.node;const{NodeTargetPlugin:_}=a.node;new f(p).apply(d);(new _).apply(d);const{EntryOptionPlugin:h}=a;const{library:{EnableLibraryPlugin:m}}=a;new m("commonjs2").apply(d);h.applyEntryOption(d,this.context,{child:{library:{type:"commonjs2"},import:[`!!${e}`]}});const{LimitChunkCountPlugin:y}=a.optimize;new y({maxChunks:1}).apply(d);const{NormalModule:g}=a;d.hooks.thisCompilation.tap(`${r.pluginName} loader`,(t=>{const i=g.getCompilationHooks(t).loader;i.tap(`${r.pluginName} loader`,((t,i)=>{if(i.request===e){i.loaders=l.map((e=>({loader:e.path,options:e.options,ident:e.ident})))}}))}));let b;d.hooks.compilation.tap(r.pluginName,(e=>{e.hooks.processAssets.tap(r.pluginName,(()=>{b=e.assets[c]&&e.assets[c].source();e.chunks.forEach((t=>{t.files.forEach((t=>{e.deleteAsset(t)}))}))}))}));d.runAsChild(((t,o,r)=>{if(t){return i(t)}if(r.errors.length>0){return i(r.errors[0])}const s=Object.create(null);const a=new Map;for(const e of r.getAssets()){s[e.name]=e.source;a.set(e.name,e.info)}r.fileDependencies.forEach((e=>{this.addDependency(e)}),this);r.contextDependencies.forEach((e=>{this.addContextDependency(e)}),this);if(!b){return i(new Error("Didn't get a result from child compiler"))}let u;try{u=(0,n.evalModuleCode)(this,b,e)}catch(e){return i(e)}return handleExports(u,r,s,a)}))}function _default(e){console.log(e)}})();module.exports=i})(); \ No newline at end of file +(()=>{"use strict";var e={154:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var n=_interopRequireDefault(i(188));var o=_interopRequireDefault(i(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:i,chunkGraph:n}=e;for(const e of i){const i=typeof n!=="undefined"?n.getModuleId(e):e.id;if(i===t){return e}}return null}function evalModuleCode(e,t,i){const o=new n.default(i,e);o.paths=n.default._nodeModulePaths(e.context);o.filename=i;o._compile(t,i);return o.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const s="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=s;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return o.default.posix.isAbsolute(e)||o.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const i=t.split("!");const{context:n}=e;return JSON.stringify(i.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const i=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&n){r=o.default.relative(n,r);if(isAbsolutePath(r)){return r+i}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+i})).join("!"))}function getUndoPath(e,t,i){let n=-1;let o="";t=t.replace(/[\\/]$/,"");for(const i of e.split(/[/\\]+/)){if(i===".."){if(n>-1){n--}else{const e=t.lastIndexOf("/");const i=t.lastIndexOf("\\");const n=e<0?i:i<0?e:Math.max(e,i);if(n<0){return`${t}/`}o=`${t.slice(n+1)}/${o}`;t=t.slice(0,n)}}else if(i!=="."){n++}}return n>0?`${"../".repeat(n)}${o}`:i?`./${o}`:o}},717:e=>{e.exports=require("./index.js")},188:e=>{e.exports=require("module")},17:e=>{e.exports=require("path")},230:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin Loader options","type":"object","additionalProperties":false,"properties":{"publicPath":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"Specifies a custom public path for the external resources like images, files, etc inside CSS.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#publicpath"},"emit":{"type":"boolean","description":"If true, emits a file (writes a file to the filesystem). If false, the plugin will extract the CSS but will not emit the file","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#emit"},"esModule":{"type":"boolean","description":"Generates JS modules that use the ES modules syntax.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#esmodule"},"layer":{"type":"string"}}}')}};var t={};function __nccwpck_require__(i){var n=t[i];if(n!==undefined){return n.exports}var o=t[i]={exports:{}};var r=true;try{e[i](o,o.exports,__nccwpck_require__);r=false}finally{if(r)delete t[i]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i={};(()=>{var e=i;Object.defineProperty(e,"__esModule",{value:true});e["default"]=_default;e.pitch=pitch;var t=_interopRequireDefault(__nccwpck_require__(17));var n=__nccwpck_require__(154);var o=_interopRequireDefault(__nccwpck_require__(230));var r=_interopRequireWildcard(__nccwpck_require__(717));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var i=new WeakMap;return(_getRequireWildcardCache=function(e){return e?i:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var i=_getRequireWildcardCache(t);if(i&&i.has(e)){return i.get(e)}var n={};var o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e){if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)){var s=o?Object.getOwnPropertyDescriptor(e,r):null;if(s&&(s.get||s.set)){Object.defineProperty(n,r,s)}else{n[r]=e[r]}}}n.default=e;if(i){i.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function hotLoader(e,i){const o=i.locals?"":"module.hot.accept(undefined, cssReload);";return`${e}\n if(module.hot) {\n // ${Date.now()}\n var cssReload = require(${(0,n.stringifyRequest)(i.context,t.default.join(__dirname,"hmr/hotModuleReplacement.js"))})(module.id, ${JSON.stringify({...i.options,locals:!!i.locals})});\n module.hot.dispose(cssReload);\n ${o}\n }\n `}function pitch(e){const t=this.getOptions(o.default);const i=this.async();const s=this[r.pluginSymbol];if(!s){i(new Error("You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started"));return}const{webpack:a}=this._compiler;const handleExports=(e,o,s,u)=>{let l;let c;const p=typeof t.esModule!=="undefined"?t.esModule:true;const addDependencies=e=>{if(!Array.isArray(e)&&e!=null){throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(e)}`)}const i=new Map;const n=typeof t.emit!=="undefined"?t.emit:true;let o;for(const t of e){if(!t.identifier||!n){continue}const e=i.get(t.identifier)||0;const s=r.default.getCssDependency(a);this._module.addDependency(o=new s(t,t.context,e));i.set(t.identifier,e+1)}if(o&&s){o.assets=s;o.assetsInfo=u}};try{const t=e.__esModule?e.default:e;c=e.__esModule&&(!e.default||!("locals"in e.default));if(c){Object.keys(e).forEach((t=>{if(t!=="default"){if(!l){l={}}l[t]=e[t]}}))}else{l=t&&t.locals}let i;if(!Array.isArray(t)){i=[[null,t]]}else{i=t.map((([e,t,i,r,s,a])=>{let u=e;let l;if(o){const t=(0,n.findModuleById)(o,e);u=t.identifier();({context:l}=t)}else{l=this.rootContext}return{identifier:u,context:l,content:Buffer.from(t),media:i,supports:s,layer:a,sourceMap:r?Buffer.from(JSON.stringify(r)):undefined}}))}addDependencies(i)}catch(e){return i(e)}const d=l?c?Object.keys(l).map((e=>`\nexport var ${e} = ${JSON.stringify(l[e])};`)).join(""):`\n${p?"export default":"module.exports ="} ${JSON.stringify(l)};`:p?`\nexport {};`:"";let f=`// extracted by ${r.pluginName}`;f+=this.hot?hotLoader(d,{context:this.context,options:t,locals:l}):d;return i(null,f)};let{publicPath:u}=this._compilation.outputOptions;if(typeof t.publicPath==="string"){u=t.publicPath}else if(typeof t.publicPath==="function"){u=t.publicPath(this.resourcePath,this.rootContext)}if(u==="auto"){u=n.AUTO_PUBLIC_PATH}if(typeof s.experimentalUseImportModule==="undefined"&&typeof this.importModule==="function"||s.experimentalUseImportModule){if(!this.importModule){i(new Error("You are using 'experimentalUseImportModule' but 'this.importModule' is not available in loader context. You need to have at least webpack 5.33.2."));return}const o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(u);const r=o?u:`${n.ABSOLUTE_PUBLIC_PATH}${u.replace(/\./g,n.SINGLE_DOT_PATH_SEGMENT)}`;this.importModule(`${this.resourcePath}.webpack[javascript/auto]!=!!!${e}`,{layer:t.layer,publicPath:r},((e,t)=>{if(e){i(e);return}handleExports(t)}));return}const l=this.loaders.slice(this.loaderIndex+1);this.addDependency(this.resourcePath);const c="*";const p={filename:c,publicPath:u};const d=this._compilation.createChildCompiler(`${r.pluginName} ${e}`,p);d.options.module={...d.options.module};d.options.module.parser={...d.options.module.parser};d.options.module.parser.javascript={...d.options.module.parser.javascript,url:"relative"};const{NodeTemplatePlugin:f}=a.node;const{NodeTargetPlugin:_}=a.node;new f(p).apply(d);(new _).apply(d);const{EntryOptionPlugin:h}=a;const{library:{EnableLibraryPlugin:m}}=a;new m("commonjs2").apply(d);h.applyEntryOption(d,this.context,{child:{library:{type:"commonjs2"},import:[`!!${e}`]}});const{LimitChunkCountPlugin:y}=a.optimize;new y({maxChunks:1}).apply(d);const{NormalModule:g}=a;d.hooks.thisCompilation.tap(`${r.pluginName} loader`,(t=>{const i=g.getCompilationHooks(t).loader;i.tap(`${r.pluginName} loader`,((t,i)=>{if(i.request===e){i.loaders=l.map((e=>({loader:e.path,options:e.options,ident:e.ident})))}}))}));let b;d.hooks.compilation.tap(r.pluginName,(e=>{e.hooks.processAssets.tap(r.pluginName,(()=>{b=e.assets[c]&&e.assets[c].source();e.chunks.forEach((t=>{t.files.forEach((t=>{e.deleteAsset(t)}))}))}))}));d.runAsChild(((t,o,r)=>{if(t){return i(t)}if(r.errors.length>0){return i(r.errors[0])}const s=Object.create(null);const a=new Map;for(const e of r.getAssets()){s[e.name]=e.source;a.set(e.name,e.info)}r.fileDependencies.forEach((e=>{this.addDependency(e)}),this);r.contextDependencies.forEach((e=>{this.addContextDependency(e)}),this);if(!b){return i(new Error("Didn't get a result from child compiler"))}let u;try{u=(0,n.evalModuleCode)(this,b,e)}catch(e){return i(e)}return handleExports(u,r,s,a)}))}function _default(e){console.log(e)}})();module.exports=i})(); \ No newline at end of file diff --git a/packages/next/compiled/sass-loader/cjs.js b/packages/next/compiled/sass-loader/cjs.js index 26dbe5b3c2c6..e83ef689e55c 100644 --- a/packages/next/compiled/sass-loader/cjs.js +++ b/packages/next/compiled/sass-loader/cjs.js @@ -1 +1 @@ -(function(){var __webpack_modules__={814:function(e,t){function set(e,t,s){if(typeof s.value==="object")s.value=klona(s.value);if(!s.enumerable||s.get||s.set||!s.configurable||!s.writable||t==="__proto__"){Object.defineProperty(e,t,s)}else e[t]=s.value}function klona(e){if(typeof e!=="object")return e;var t=0,s,r,n,o=Object.prototype.toString.call(e);if(o==="[object Object]"){n=Object.create(e.__proto__||null)}else if(o==="[object Array]"){n=Array(e.length)}else if(o==="[object Set]"){n=new Set;e.forEach((function(e){n.add(klona(e))}))}else if(o==="[object Map]"){n=new Map;e.forEach((function(e,t){n.set(klona(t),klona(e))}))}else if(o==="[object Date]"){n=new Date(+e)}else if(o==="[object RegExp]"){n=new RegExp(e.source,e.flags)}else if(o==="[object DataView]"){n=new e.constructor(klona(e.buffer))}else if(o==="[object ArrayBuffer]"){n=e.slice(0)}else if(o.slice(-6)==="Array]"){n=new e.constructor(e)}if(n){for(r=Object.getOwnPropertySymbols(e);t{if(e){if(e.file){this.addDependency(r.default.normalize(e.file))}s(new a.default(e));return}let n=t.map?JSON.parse(t.map):null;if(n&&c){n=(0,o.normalizeSourceMap)(n,this.rootContext)}t.stats.includedFiles.forEach((e=>{const t=r.default.normalize(e);if(r.default.isAbsolute(t)){this.addDependency(t)}}));s(null,t.css.toString(),n)}))}var i=loader;t["default"]=i},179:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getRenderFunctionFromSassImplementation=getRenderFunctionFromSassImplementation;exports.getSassImplementation=getSassImplementation;exports.getSassOptions=getSassOptions;exports.getWebpackImporter=getWebpackImporter;exports.getWebpackResolver=getWebpackResolver;exports.isSupportedFibers=isSupportedFibers;exports.normalizeSourceMap=normalizeSourceMap;var _url=_interopRequireDefault(__nccwpck_require__(310));var _path=_interopRequireDefault(__nccwpck_require__(17));var _full=__nccwpck_require__(814);var _neoAsync=_interopRequireDefault(__nccwpck_require__(175));var _SassWarning=_interopRequireDefault(__nccwpck_require__(66));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getDefaultSassImplementation(){let sassImplPkg="sass";try{require.resolve("sass")}catch(error){try{eval("require.resolve('node-sass')");sassImplPkg="node-sass"}catch(e){sassImplPkg="sass"}}return require(sassImplPkg)}function getSassImplementation(e,t){let s=t;if(!s){try{s=getDefaultSassImplementation()}catch(t){e.emitError(t);return}}if(typeof s==="string"){try{s=require(s)}catch(t){e.emitError(t);return}}const{info:r}=s;if(!r){e.emitError(new Error("Unknown Sass implementation."));return}const n=r.split("\t");if(n.length<2){e.emitError(new Error(`Unknown Sass implementation "${r}".`));return}const[o]=n;if(o==="dart-sass"){return s}else if(o==="node-sass"){return s}e.emitError(new Error(`Unknown Sass implementation "${o}".`))}function isProductionLikeMode(e){return e.mode==="production"||!e.mode}function proxyCustomImporters(e,t){return[].concat(e).map((e=>function proxyImporter(...s){const r={...this,webpackLoaderContext:t};return e.apply(r,s)}))}function isSupportedFibers(){const[e]=process.versions.node.split(".");return Number(e)<16}async function getSassOptions(e,t,s,r,n){const o=(0,_full.klona)(t.sassOptions?typeof t.sassOptions==="function"?t.sassOptions(e)||{}:t.sassOptions:{});const a=r.info.includes("dart-sass");if(a&&isSupportedFibers()){const e=!o.fiber&&o.fiber!==false;if(e){let e;try{e=require.resolve("fibers")}catch(e){}if(e){o.fiber=require(e)}}else if(o.fiber===false){delete o.fiber}}else{delete o.fiber}o.file=e.resourcePath;o.data=t.additionalData?typeof t.additionalData==="function"?await t.additionalData(s,e):`${t.additionalData}\n${s}`:s;if(!o.outputStyle&&isProductionLikeMode(e)){o.outputStyle="compressed"}if(n){o.sourceMap=true;o.outFile=_path.default.join(e.rootContext,"style.css.map");o.sourceMapContents=true;o.omitSourceMapUrl=true;o.sourceMapEmbed=false}const{resourcePath:i}=e;const c=_path.default.extname(i);if(c&&c.toLowerCase()===".sass"&&typeof o.indentedSyntax==="undefined"){o.indentedSyntax=true}else{o.indentedSyntax=Boolean(o.indentedSyntax)}o.importer=o.importer?proxyCustomImporters(Array.isArray(o.importer)?o.importer:[o.importer],e):[];o.includePaths=[].concat(process.cwd()).concat((o.includePaths||[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);if(typeof o.charset==="undefined"){o.charset=true}if(!o.logger){const s=t.warnRuleAsWarning===true;const r=e.getLogger("sass-loader");const formatSpan=e=>`${e.url||"-"}:${e.start.line}:${e.start.column}: `;o.logger={debug(e,t){let s="";if(t.span){s=formatSpan(t.span)}s+=e;r.debug(s)},warn(t,n){let o="";if(n.deprecation){o+="Deprecation "}if(n.span&&!n.stack){o=formatSpan(n.span)}o+=t;if(n.stack){o+=`\n\n${n.stack}`}if(s){e.emitWarning(new _SassWarning.default(o,n))}else{r.warn(o)}}}}return o}const MODULE_REQUEST_REGEX=/^[^?]*~/;const IS_MODULE_IMPORT=/^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/]+\/)$/;function getPossibleRequests(e,t=false,s=false){let r=e;if(t){if(MODULE_REQUEST_REGEX.test(e)){r=r.replace(MODULE_REQUEST_REGEX,"")}if(IS_MODULE_IMPORT.test(e)){r=r[r.length-1]==="/"?r:`${r}/`;return[...new Set([r,e])]}}const n=_path.default.extname(r).toLowerCase();if(n===".css"){return[]}const o=_path.default.dirname(r);const a=o==="."?"":`${o}/`;const i=_path.default.basename(r);const c=_path.default.basename(r,n);return[...new Set([].concat(s?[`${a}_${c}.import${n}`,`${a}${c}.import${n}`]:[]).concat([`${a}_${i}`,`${a}${i}`]).concat(t?[e]:[]))]}function promiseResolve(e){return(t,s)=>new Promise(((r,n)=>{e(t,s,((e,t)=>{if(e){n(e)}else{r(t)}}))}))}const IS_SPECIAL_MODULE_IMPORT=/^~[^/]+$/;const IS_NATIVE_WIN32_PATH=/^[a-z]:[/\\]|^\\\\/i;function getWebpackResolver(e,t,s=[]){async function startResolving(e){if(e.length===0){return Promise.reject()}const[{possibleRequests:t}]=e;if(t.length===0){return Promise.reject()}const[{resolve:s,context:r}]=e;try{return await s(r,t[0])}catch(s){const[,...r]=t;if(r.length===0){const[,...t]=e;return startResolving(t)}e[0].possibleRequests=r;return startResolving(e)}}const r=t.info.includes("dart-sass");const n=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const o=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index.import","_index","index.import","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const a=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const i=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index.import","_index","index.import","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));return(e,t,c)=>{if(!r&&!_path.default.isAbsolute(e)){return Promise.reject()}const l=t;const u=l.slice(0,5).toLowerCase()==="file:";if(u){try{t=_url.default.fileURLToPath(l)}catch(e){t=t.slice(7)}}let p=[];const f=!IS_SPECIAL_MODULE_IMPORT.test(t)&&!u&&!l.startsWith("/")&&!IS_NATIVE_WIN32_PATH.test(l);if(s.length>0&&f){const a=getPossibleRequests(t,false,c);if(!r){p=p.concat({resolve:c?o:n,context:_path.default.dirname(e),possibleRequests:a})}p=p.concat(s.map((e=>({resolve:c?o:n,context:e,possibleRequests:a}))))}const d=getPossibleRequests(t,true,c);p=p.concat({resolve:c?i:a,context:_path.default.dirname(e),possibleRequests:d});return startResolving(p)}}const MATCH_CSS=/\.css$/i;function getWebpackImporter(e,t,s){const r=getWebpackResolver(e.getResolve,t,s);return function importer(t,s,n){const{fromImport:o}=this;r(s,t,o).then((t=>{e.addDependency(_path.default.normalize(t));n({file:t.replace(MATCH_CSS,"")})})).catch((()=>{n({file:t})}))}}let nodeSassJobQueue=null;function getRenderFunctionFromSassImplementation(e){const t=e.info.includes("dart-sass");if(t){return e.render.bind(e)}if(nodeSassJobQueue===null){const t=Number(process.env.UV_THREADPOOL_SIZE||4);nodeSassJobQueue=_neoAsync.default.queue(e.render.bind(e),t-1)}return nodeSassJobQueue.push.bind(nodeSassJobQueue)}const ABSOLUTE_SCHEME=/^[A-Za-z0-9+\-.]+:/;function getURLType(e){if(e[0]==="/"){if(e[1]==="/"){return"scheme-relative"}return"path-absolute"}if(IS_NATIVE_WIN32_PATH.test(e)){return"path-absolute"}return ABSOLUTE_SCHEME.test(e)?"absolute":"path-relative"}function normalizeSourceMap(e,t){const s=e;delete s.file;s.sourceRoot="";s.sources=s.sources.map((e=>{const s=getURLType(e);if(s==="path-relative"){return _path.default.resolve(t,_path.default.normalize(e))}return e}));return s}},175:function(e){"use strict";e.exports=require("next/dist/compiled/neo-async")},17:function(e){"use strict";e.exports=require("path")},310:function(e){"use strict";e.exports=require("url")},615:function(e){"use strict";e.exports=JSON.parse('{"title":"Sass Loader options","type":"object","properties":{"implementation":{"description":"The implementation of the sass to be used.","link":"https://github.com/webpack-contrib/sass-loader#implementation","anyOf":[{"type":"string"},{"type":"object"}]},"sassOptions":{"description":"Options for `node-sass` or `sass` (`Dart Sass`) implementation.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","anyOf":[{"type":"object","additionalProperties":true},{"instanceof":"Function"}]},"additionalData":{"description":"Prepends/Appends `Sass`/`SCSS` code before the actual entry file.","link":"https://github.com/webpack-contrib/sass-loader#additionaldata","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"sourceMap":{"description":"Enables/Disables generation of source maps.","link":"https://github.com/webpack-contrib/sass-loader#sourcemap","type":"boolean"},"webpackImporter":{"description":"Enables/Disables default `webpack` importer.","link":"https://github.com/webpack-contrib/sass-loader#webpackimporter","type":"boolean"},"warnRuleAsWarning":{"description":"Treats the \'@warn\' rule as a webpack warning.","link":"https://github.com/webpack-contrib/sass-loader#warnruleaswarning","type":"boolean"}},"additionalProperties":false}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(172);module.exports=__webpack_exports__})(); \ No newline at end of file +(function(){var __webpack_modules__={814:function(e,t){function set(e,t,s){if(typeof s.value==="object")s.value=klona(s.value);if(!s.enumerable||s.get||s.set||!s.configurable||!s.writable||t==="__proto__"){Object.defineProperty(e,t,s)}else e[t]=s.value}function klona(e){if(typeof e!=="object")return e;var t=0,s,r,n,o=Object.prototype.toString.call(e);if(o==="[object Object]"){n=Object.create(e.__proto__||null)}else if(o==="[object Array]"){n=Array(e.length)}else if(o==="[object Set]"){n=new Set;e.forEach((function(e){n.add(klona(e))}))}else if(o==="[object Map]"){n=new Map;e.forEach((function(e,t){n.set(klona(t),klona(e))}))}else if(o==="[object Date]"){n=new Date(+e)}else if(o==="[object RegExp]"){n=new RegExp(e.source,e.flags)}else if(o==="[object DataView]"){n=new e.constructor(klona(e.buffer))}else if(o==="[object ArrayBuffer]"){n=e.slice(0)}else if(o.slice(-6)==="Array]"){n=new e.constructor(e)}if(n){for(r=Object.getOwnPropertySymbols(e);t{if(e){if(e.file){this.addDependency(r.default.normalize(e.file))}s(new a.default(e));return}let n=t.map?JSON.parse(t.map):null;if(n&&c){n=(0,o.normalizeSourceMap)(n,this.rootContext)}t.stats.includedFiles.forEach((e=>{const t=r.default.normalize(e);if(r.default.isAbsolute(t)){this.addDependency(t)}}));s(null,t.css.toString(),n)}))}var i=loader;t["default"]=i},429:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getRenderFunctionFromSassImplementation=getRenderFunctionFromSassImplementation;exports.getSassImplementation=getSassImplementation;exports.getSassOptions=getSassOptions;exports.getWebpackImporter=getWebpackImporter;exports.getWebpackResolver=getWebpackResolver;exports.isSupportedFibers=isSupportedFibers;exports.normalizeSourceMap=normalizeSourceMap;var _url=_interopRequireDefault(__nccwpck_require__(310));var _path=_interopRequireDefault(__nccwpck_require__(17));var _full=__nccwpck_require__(814);var _neoAsync=_interopRequireDefault(__nccwpck_require__(175));var _SassWarning=_interopRequireDefault(__nccwpck_require__(200));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getDefaultSassImplementation(){let sassImplPkg="sass";try{require.resolve("sass")}catch(error){try{eval("require.resolve('node-sass')");sassImplPkg="node-sass"}catch(e){sassImplPkg="sass"}}return require(sassImplPkg)}function getSassImplementation(e,t){let s=t;if(!s){try{s=getDefaultSassImplementation()}catch(t){e.emitError(t);return}}if(typeof s==="string"){try{s=require(s)}catch(t){e.emitError(t);return}}const{info:r}=s;if(!r){e.emitError(new Error("Unknown Sass implementation."));return}const n=r.split("\t");if(n.length<2){e.emitError(new Error(`Unknown Sass implementation "${r}".`));return}const[o]=n;if(o==="dart-sass"){return s}else if(o==="node-sass"){return s}e.emitError(new Error(`Unknown Sass implementation "${o}".`))}function isProductionLikeMode(e){return e.mode==="production"||!e.mode}function proxyCustomImporters(e,t){return[].concat(e).map((e=>function proxyImporter(...s){const r={...this,webpackLoaderContext:t};return e.apply(r,s)}))}function isSupportedFibers(){const[e]=process.versions.node.split(".");return Number(e)<16}async function getSassOptions(e,t,s,r,n){const o=(0,_full.klona)(t.sassOptions?typeof t.sassOptions==="function"?t.sassOptions(e)||{}:t.sassOptions:{});const a=r.info.includes("dart-sass");if(a&&isSupportedFibers()){const e=!o.fiber&&o.fiber!==false;if(e){let e;try{e=require.resolve("fibers")}catch(e){}if(e){o.fiber=require(e)}}else if(o.fiber===false){delete o.fiber}}else{delete o.fiber}o.file=e.resourcePath;o.data=t.additionalData?typeof t.additionalData==="function"?await t.additionalData(s,e):`${t.additionalData}\n${s}`:s;if(!o.outputStyle&&isProductionLikeMode(e)){o.outputStyle="compressed"}if(n){o.sourceMap=true;o.outFile=_path.default.join(e.rootContext,"style.css.map");o.sourceMapContents=true;o.omitSourceMapUrl=true;o.sourceMapEmbed=false}const{resourcePath:i}=e;const c=_path.default.extname(i);if(c&&c.toLowerCase()===".sass"&&typeof o.indentedSyntax==="undefined"){o.indentedSyntax=true}else{o.indentedSyntax=Boolean(o.indentedSyntax)}o.importer=o.importer?proxyCustomImporters(Array.isArray(o.importer)?o.importer:[o.importer],e):[];o.includePaths=[].concat(process.cwd()).concat((o.includePaths||[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);if(typeof o.charset==="undefined"){o.charset=true}if(!o.logger){const s=t.warnRuleAsWarning===true;const r=e.getLogger("sass-loader");const formatSpan=e=>`${e.url||"-"}:${e.start.line}:${e.start.column}: `;o.logger={debug(e,t){let s="";if(t.span){s=formatSpan(t.span)}s+=e;r.debug(s)},warn(t,n){let o="";if(n.deprecation){o+="Deprecation "}if(n.span&&!n.stack){o=formatSpan(n.span)}o+=t;if(n.stack){o+=`\n\n${n.stack}`}if(s){e.emitWarning(new _SassWarning.default(o,n))}else{r.warn(o)}}}}return o}const MODULE_REQUEST_REGEX=/^[^?]*~/;const IS_MODULE_IMPORT=/^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/]+\/)$/;function getPossibleRequests(e,t=false,s=false){let r=e;if(t){if(MODULE_REQUEST_REGEX.test(e)){r=r.replace(MODULE_REQUEST_REGEX,"")}if(IS_MODULE_IMPORT.test(e)){r=r[r.length-1]==="/"?r:`${r}/`;return[...new Set([r,e])]}}const n=_path.default.extname(r).toLowerCase();if(n===".css"){return[]}const o=_path.default.dirname(r);const a=o==="."?"":`${o}/`;const i=_path.default.basename(r);const c=_path.default.basename(r,n);return[...new Set([].concat(s?[`${a}_${c}.import${n}`,`${a}${c}.import${n}`]:[]).concat([`${a}_${i}`,`${a}${i}`]).concat(t?[e]:[]))]}function promiseResolve(e){return(t,s)=>new Promise(((r,n)=>{e(t,s,((e,t)=>{if(e){n(e)}else{r(t)}}))}))}const IS_SPECIAL_MODULE_IMPORT=/^~[^/]+$/;const IS_NATIVE_WIN32_PATH=/^[a-z]:[/\\]|^\\\\/i;function getWebpackResolver(e,t,s=[]){async function startResolving(e){if(e.length===0){return Promise.reject()}const[{possibleRequests:t}]=e;if(t.length===0){return Promise.reject()}const[{resolve:s,context:r}]=e;try{return await s(r,t[0])}catch(s){const[,...r]=t;if(r.length===0){const[,...t]=e;return startResolving(t)}e[0].possibleRequests=r;return startResolving(e)}}const r=t.info.includes("dart-sass");const n=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const o=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index.import","_index","index.import","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const a=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const i=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index.import","_index","index.import","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));return(e,t,c)=>{if(!r&&!_path.default.isAbsolute(e)){return Promise.reject()}const l=t;const u=l.slice(0,5).toLowerCase()==="file:";if(u){try{t=_url.default.fileURLToPath(l)}catch(e){t=t.slice(7)}}let p=[];const f=!IS_SPECIAL_MODULE_IMPORT.test(t)&&!u&&!l.startsWith("/")&&!IS_NATIVE_WIN32_PATH.test(l);if(s.length>0&&f){const a=getPossibleRequests(t,false,c);if(!r){p=p.concat({resolve:c?o:n,context:_path.default.dirname(e),possibleRequests:a})}p=p.concat(s.map((e=>({resolve:c?o:n,context:e,possibleRequests:a}))))}const d=getPossibleRequests(t,true,c);p=p.concat({resolve:c?i:a,context:_path.default.dirname(e),possibleRequests:d});return startResolving(p)}}const MATCH_CSS=/\.css$/i;function getWebpackImporter(e,t,s){const r=getWebpackResolver(e.getResolve,t,s);return function importer(t,s,n){const{fromImport:o}=this;r(s,t,o).then((t=>{e.addDependency(_path.default.normalize(t));n({file:t.replace(MATCH_CSS,"")})})).catch((()=>{n({file:t})}))}}let nodeSassJobQueue=null;function getRenderFunctionFromSassImplementation(e){const t=e.info.includes("dart-sass");if(t){return e.render.bind(e)}if(nodeSassJobQueue===null){const t=Number(process.env.UV_THREADPOOL_SIZE||4);nodeSassJobQueue=_neoAsync.default.queue(e.render.bind(e),t-1)}return nodeSassJobQueue.push.bind(nodeSassJobQueue)}const ABSOLUTE_SCHEME=/^[A-Za-z0-9+\-.]+:/;function getURLType(e){if(e[0]==="/"){if(e[1]==="/"){return"scheme-relative"}return"path-absolute"}if(IS_NATIVE_WIN32_PATH.test(e)){return"path-absolute"}return ABSOLUTE_SCHEME.test(e)?"absolute":"path-relative"}function normalizeSourceMap(e,t){const s=e;delete s.file;s.sourceRoot="";s.sources=s.sources.map((e=>{const s=getURLType(e);if(s==="path-relative"){return _path.default.resolve(t,_path.default.normalize(e))}return e}));return s}},175:function(e){"use strict";e.exports=require("next/dist/compiled/neo-async")},17:function(e){"use strict";e.exports=require("path")},310:function(e){"use strict";e.exports=require("url")},725:function(e){"use strict";e.exports=JSON.parse('{"title":"Sass Loader options","type":"object","properties":{"implementation":{"description":"The implementation of the sass to be used.","link":"https://github.com/webpack-contrib/sass-loader#implementation","anyOf":[{"type":"string"},{"type":"object"}]},"sassOptions":{"description":"Options for `node-sass` or `sass` (`Dart Sass`) implementation.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","anyOf":[{"type":"object","additionalProperties":true},{"instanceof":"Function"}]},"additionalData":{"description":"Prepends/Appends `Sass`/`SCSS` code before the actual entry file.","link":"https://github.com/webpack-contrib/sass-loader#additionaldata","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"sourceMap":{"description":"Enables/Disables generation of source maps.","link":"https://github.com/webpack-contrib/sass-loader#sourcemap","type":"boolean"},"webpackImporter":{"description":"Enables/Disables default `webpack` importer.","link":"https://github.com/webpack-contrib/sass-loader#webpackimporter","type":"boolean"},"warnRuleAsWarning":{"description":"Treats the \'@warn\' rule as a webpack warning.","link":"https://github.com/webpack-contrib/sass-loader#warnruleaswarning","type":"boolean"}},"additionalProperties":false}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(657);module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/packages/next/server/lib/incremental-cache/index.ts b/packages/next/server/lib/incremental-cache/index.ts index e2a088cf6877..7ffed05d5a59 100644 --- a/packages/next/server/lib/incremental-cache/index.ts +++ b/packages/next/server/lib/incremental-cache/index.ts @@ -63,7 +63,7 @@ export class IncrementalCache { }) { let cacheHandlerMod: any = FileSystemCache - if (incrementalCacheHandlerPath) { + if (process.env.NEXT_RUNTIME !== 'edge' && incrementalCacheHandlerPath) { cacheHandlerMod = require(incrementalCacheHandlerPath) cacheHandlerMod = cacheHandlerMod.default || cacheHandlerMod } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7463c8fb3dd..9e7ae336812c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -133,9 +133,9 @@ importers: pretty-bytes: 5.3.0 pretty-ms: 7.0.0 random-seed: 0.3.0 - react: 18.1.0 + react: 18.2.0 react-17: npm:react@17.0.2 - react-dom: 18.1.0 + react-dom: 18.2.0 react-dom-17: npm:react-dom@17.0.2 react-ssr-prepass: 1.0.8 react-virtualized: 9.22.3 @@ -171,7 +171,7 @@ importers: '@babel/preset-react': 7.14.5_@babel+core@7.18.0 '@edge-runtime/jest-environment': 1.1.0-beta.2 '@fullhuman/postcss-purgecss': 1.3.0 - '@mdx-js/loader': 0.18.0_obpnotbfpw3vqhxpouazlalzou + '@mdx-js/loader': 0.18.0_uuaxwgga6hqycsez5ok7v2wg4i '@next/bundle-analyzer': link:packages/next-bundle-analyzer '@next/env': link:packages/next-env '@next/eslint-plugin-next': link:packages/eslint-plugin-next @@ -184,7 +184,7 @@ importers: '@swc/cli': 0.1.55_@swc+core@1.2.148 '@swc/core': 1.2.148 '@swc/helpers': 0.3.17 - '@testing-library/react': 13.0.0_ef5jwxihqo6n7gxfmzogljlgcm + '@testing-library/react': 13.0.0_biqbaboplfbrettd7655fr4n2y '@types/cheerio': 0.22.16 '@types/fs-extra': 8.1.0 '@types/html-validator': 5.0.2 @@ -283,12 +283,12 @@ importers: pretty-bytes: 5.3.0 pretty-ms: 7.0.0 random-seed: 0.3.0 - react: 18.1.0 + react: 18.2.0 react-17: /react/17.0.2 - react-dom: 18.1.0_react@18.1.0 - react-dom-17: /react-dom/17.0.2_react@18.1.0 - react-ssr-prepass: 1.0.8_hlgeuu36mywb3l5da2rxhzh74u - react-virtualized: 9.22.3_ef5jwxihqo6n7gxfmzogljlgcm + react-dom: 18.2.0_react@18.2.0 + react-dom-17: /react-dom/17.0.2_react@18.2.0 + react-ssr-prepass: 1.0.8_qncsgtzehe3fgiqp6tr7lwq6fm + react-virtualized: 9.22.3_biqbaboplfbrettd7655fr4n2y relay-compiler: 13.0.2 relay-runtime: 13.0.2 release: 6.3.0 @@ -299,7 +299,7 @@ importers: selenium-webdriver: 4.0.0-beta.4 semver: 7.3.7 shell-quote: 1.7.3 - styled-components: 5.3.3_mg42qvqxyojuro644naflvwmve + styled-components: 5.3.3_vtcxgy2wlmese7djxl6h7ok674 styled-jsx-plugin-postcss: 3.0.2 tailwindcss: 1.1.3 taskr: 1.1.0 @@ -308,9 +308,9 @@ importers: turbo: 1.2.14 typescript: 4.6.3 wait-port: 0.2.2 - webpack: link:node_modules/webpack5 + webpack: 5.73.0_@swc+core@1.2.148 webpack-bundle-analyzer: 4.3.0 - worker-loader: 3.0.7_2opjno65lyt7hgwek6rdc5kfzu + worker-loader: 3.0.7_webpack@5.73.0 packages/create-next-app: specifiers: @@ -703,7 +703,7 @@ importers: lodash.curry: 4.1.1 lru-cache: 5.1.1 micromatch: 4.0.4 - mini-css-extract-plugin: 2.4.3 + mini-css-extract-plugin: 2.4.3_webpack@5.73.0 nanoid: 3.1.30 native-url: 0.3.4 neo-async: 2.6.1 @@ -729,9 +729,9 @@ importers: raw-body: 2.4.1 react-is: 17.0.2 react-refresh: 0.12.0 - react-server-dom-webpack: 0.0.0-experimental-d2c9e834a-20220601 + react-server-dom-webpack: 0.0.0-experimental-d2c9e834a-20220601_webpack@5.73.0 regenerator-runtime: 0.13.4 - sass-loader: 12.4.0 + sass-loader: 12.4.0_webpack@5.73.0 schema-utils2: /schema-utils/2.7.1 schema-utils3: /schema-utils/3.0.0 semver: 7.3.2 @@ -4591,11 +4591,11 @@ packages: - supports-color dev: true - /@mdx-js/loader/0.18.0_obpnotbfpw3vqhxpouazlalzou: + /@mdx-js/loader/0.18.0_uuaxwgga6hqycsez5ok7v2wg4i: resolution: {integrity: sha512-eRgtB14JwyIiZZPXjrpYhSHHQ5+GtZ5cbG744EV2DZVKjxxg4OT/EtKc4JoxWHRK2HVU6W7cf8IXjQpqDviRuQ==} dependencies: '@mdx-js/mdx': 0.18.2_@babel+core@7.18.0 - '@mdx-js/tag': 0.18.0_react@18.1.0 + '@mdx-js/tag': 0.18.0_react@18.2.0 loader-utils: 1.4.0 transitivePeerDependencies: - '@babel/core' @@ -4620,12 +4620,12 @@ packages: - '@babel/core' dev: true - /@mdx-js/tag/0.18.0_react@18.1.0: + /@mdx-js/tag/0.18.0_react@18.2.0: resolution: {integrity: sha512-3g1NOnbw+sJZohNOEN9NlaYYDdzq1y34S7PDimSn3zLV8etCu7pTCMFbnFHMSe6mMmm4yJ1gfbS3QiE7t+WMGA==} peerDependencies: react: ^0.14.x || ^15.x || ^16.x dependencies: - react: 18.1.0 + react: 18.2.0 dev: true /@mrmlnc/readdir-enhanced/2.2.1: @@ -5368,7 +5368,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/react/13.0.0_ef5jwxihqo6n7gxfmzogljlgcm: + /@testing-library/react/13.0.0_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-p0lYA1M7uoEmk2LnCbZLGmHJHyH59sAaZVXChTXlyhV/PRW9LoIh4mdf7tiXsO8BoNG+vN8UnFJff1hbZeXv+w==} engines: {node: '>=12'} peerDependencies: @@ -5378,8 +5378,8 @@ packages: '@babel/runtime': 7.16.7 '@testing-library/dom': 8.13.0 '@types/react-dom': 17.0.14 - react: 18.1.0 - react-dom: 18.1.0_react@18.1.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 dev: true /@tootallnate/once/1.1.2: @@ -6514,20 +6514,12 @@ packages: acorn: 8.6.0 dev: true - /acorn-jsx/5.3.1_acorn@7.4.1: - resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 7.4.1 - /acorn-jsx/5.3.1_acorn@8.6.0: resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.6.0 - dev: true /acorn-walk/7.1.1: resolution: {integrity: sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==} @@ -6548,6 +6540,7 @@ packages: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true + dev: true /acorn/8.5.0: resolution: {integrity: sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==} @@ -7287,7 +7280,7 @@ packages: '@babel/helper-module-imports': 7.16.7 babel-plugin-syntax-jsx: 6.18.0 lodash: 4.17.21 - styled-components: 5.3.3_mg42qvqxyojuro644naflvwmve + styled-components: 5.3.3_vtcxgy2wlmese7djxl6h7ok674 dev: true /babel-plugin-syntax-jsx/6.18.0: @@ -10560,8 +10553,8 @@ packages: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.1_acorn@7.4.1 + acorn: 8.6.0 + acorn-jsx: 5.3.1_acorn@8.6.0 eslint-visitor-keys: 1.3.0 /esprima/4.0.1: @@ -15364,13 +15357,14 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - /mini-css-extract-plugin/2.4.3: + /mini-css-extract-plugin/2.4.3_webpack@5.73.0: resolution: {integrity: sha512-zekavl9mZuGyk7COjsfFY/f655AX61EKE0AthXPrmDk+oZyjZ9WzO4WPjXnnO9xl8obK2kmM6rAQrBEmk+WK1g==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 3.1.1 + webpack: 5.73.0 dev: true /minimalistic-assert/1.0.1: @@ -18344,25 +18338,25 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-dom/17.0.2_react@18.1.0: + /react-dom/17.0.2_react@18.2.0: resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: react: 17.0.2 dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react: 18.1.0 + react: 18.2.0 scheduler: 0.20.2 dev: true - /react-dom/18.1.0_react@18.1.0: - resolution: {integrity: sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==} + /react-dom/18.2.0_react@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: - react: ^18.1.0 + react: ^18.2.0 dependencies: loose-envify: 1.4.0 - react: 18.1.0 - scheduler: 0.22.0 + react: 18.2.0 + scheduler: 0.23.0 dev: true /react-is/16.13.1: @@ -18385,7 +18379,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-server-dom-webpack/0.0.0-experimental-d2c9e834a-20220601: + /react-server-dom-webpack/0.0.0-experimental-d2c9e834a-20220601_webpack@5.73.0: resolution: {integrity: sha512-HBWH9fhTJwbX7x3K9kuZ1gHXMN6CCdN0uH1N7jqBqPf8/uLDjNYN/ZKVNqb8augZax6HJDfv5VHVcKr0qr7ZbQ==} engines: {node: '>=0.10.0'} peerDependencies: @@ -18395,20 +18389,21 @@ packages: acorn: 6.4.2 loose-envify: 1.4.0 neo-async: 2.6.2 + webpack: 5.73.0 dev: true - /react-ssr-prepass/1.0.8_hlgeuu36mywb3l5da2rxhzh74u: + /react-ssr-prepass/1.0.8_qncsgtzehe3fgiqp6tr7lwq6fm: resolution: {integrity: sha512-O0gfRA1SaK+9ITKxqfnXsej2jF+OHGP/+GxD4unROQaM/0/UczGF9fuF+wTboxaQoKdIf4FvS3h/OigWh704VA==} peerDependencies: react: ^16.8.0 react-is: ^16.8.0 dependencies: object-is: 1.0.2 - react: 18.1.0 + react: 18.2.0 react-is: 16.13.1 dev: true - /react-virtualized/9.22.3_ef5jwxihqo6n7gxfmzogljlgcm: + /react-virtualized/9.22.3_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==} peerDependencies: react: ^15.3.0 || ^16.0.0-alpha @@ -18419,8 +18414,8 @@ packages: dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.1.0 - react-dom: 18.1.0_react@18.1.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 react-lifecycles-compat: 3.0.4 dev: true @@ -18432,8 +18427,8 @@ packages: object-assign: 4.1.1 dev: true - /react/18.1.0: - resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==} + /react/18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 @@ -19381,7 +19376,7 @@ packages: yargs: 13.3.2 dev: true - /sass-loader/12.4.0: + /sass-loader/12.4.0_webpack@5.73.0: resolution: {integrity: sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -19399,6 +19394,7 @@ packages: dependencies: klona: 2.0.4 neo-async: 2.6.2 + webpack: 5.73.0 dev: true /sax/1.2.4: @@ -19419,8 +19415,8 @@ packages: object-assign: 4.1.1 dev: true - /scheduler/0.22.0: - resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==} + /scheduler/0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 dev: true @@ -20322,7 +20318,7 @@ packages: resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} dev: true - /styled-components/5.3.3_mg42qvqxyojuro644naflvwmve: + /styled-components/5.3.3_vtcxgy2wlmese7djxl6h7ok674: resolution: {integrity: sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==} engines: {node: '>=10'} peerDependencies: @@ -20338,8 +20334,8 @@ packages: babel-plugin-styled-components: 1.13.3_styled-components@5.3.3 css-to-react-native: 3.0.0 hoist-non-react-statics: 3.3.2 - react: 18.1.0 - react-dom: 18.1.0_react@18.1.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 react-is: 16.13.1 shallowequal: 1.1.0 supports-color: 5.5.0 @@ -20627,7 +20623,7 @@ packages: supports-hyperlinks: 2.1.0 dev: true - /terser-webpack-plugin/1.4.4: + /terser-webpack-plugin/1.4.4_webpack@5.73.0: resolution: {integrity: sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==} engines: {node: '>= 6.9.0'} peerDependencies: @@ -20640,10 +20636,37 @@ packages: serialize-javascript: 3.1.0 source-map: 0.6.1 terser: 4.8.0 + webpack: 5.73.0 webpack-sources: 1.4.3 worker-farm: 1.7.0 dev: true + /terser-webpack-plugin/5.2.4_ai2j7bpouqpuepqe2h7rahoxba: + resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@swc/core': 1.2.148 + jest-worker: 27.0.6 + p-limit: 3.1.0 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + source-map: 0.6.1 + terser: 5.10.0 + webpack: 5.73.0_@swc+core@1.2.148 + dev: true + /terser-webpack-plugin/5.2.4_webpack@5.73.0: resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} engines: {node: '>= 10.13.0'} @@ -21020,7 +21043,7 @@ packages: dev: true /tunnel-agent/0.6.0: - resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.0 dev: true @@ -21150,7 +21173,7 @@ packages: dev: true /tweetnacl/0.14.5: - resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=} + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true /type-check/0.3.2: @@ -22048,7 +22071,7 @@ packages: node-libs-browser: 2.2.1 schema-utils: 1.0.0 tapable: 1.1.3 - terser-webpack-plugin: 1.4.4 + terser-webpack-plugin: 1.4.4_webpack@5.73.0 watchpack: 1.7.4 webpack-sources: 1.4.3 transitivePeerDependencies: @@ -22095,6 +22118,46 @@ packages: - uglify-js dev: true + /webpack/5.73.0_@swc+core@1.2.148: + resolution: {integrity: sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.3 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.6.0 + acorn-import-assertions: 1.7.6_acorn@8.6.0 + browserslist: 4.20.2 + chrome-trace-event: 1.0.2 + enhanced-resolve: 5.9.3 + es-module-lexer: 0.9.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.9 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.2.0 + mime-types: 2.1.30 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.0 + terser-webpack-plugin: 5.2.4_ai2j7bpouqpuepqe2h7rahoxba + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + /websocket-driver/0.7.3: resolution: {integrity: sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==} engines: {node: '>=0.8.0'} @@ -22224,7 +22287,7 @@ packages: errno: 0.1.7 dev: true - /worker-loader/3.0.7_2opjno65lyt7hgwek6rdc5kfzu: + /worker-loader/3.0.7_webpack@5.73.0: resolution: {integrity: sha512-LjYLuYJw6kqQKDoygpoD5vWeR1CbZjuVSW3/8pFsptMlUl8gatNM/pszhasSDAWt+dYxMipWB6695k+1zId+iQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -22232,7 +22295,7 @@ packages: dependencies: loader-utils: 2.0.0 schema-utils: 3.1.1 - webpack: link:node_modules/webpack5 + webpack: 5.73.0_@swc+core@1.2.148 dev: true /wrap-ansi/3.0.1: diff --git a/test/integration/next-dynamic-lazy-compilation/test/index.test.js b/test/integration/next-dynamic-lazy-compilation/test/index.test.js index 9a35a187fbe4..e76b1176b91e 100644 --- a/test/integration/next-dynamic-lazy-compilation/test/index.test.js +++ b/test/integration/next-dynamic-lazy-compilation/test/index.test.js @@ -29,9 +29,7 @@ function runTests() { const browser = await webdriver(appPort, '/') const text = await browser.elementByCss('#before-hydration').text() - expect(text).toBe( - 'Index12344' - ) + expect(text).toBe('Index12344') expect(await browser.eval('window.caughtErrors')).toBe('') }) @@ -39,9 +37,7 @@ function runTests() { const browser = await webdriver(appPort, '/') const text = await browser.elementByCss('#first-render').text() - expect(text).toBe( - 'Index12344' - ) + expect(text).toBe('Index12344') expect(await browser.eval('window.caughtErrors')).toBe('') }) } diff --git a/test/integration/next-dynamic/test/index.test.js b/test/integration/next-dynamic/test/index.test.js index ee70ca8b4dce..e0c8f9be9ae7 100644 --- a/test/integration/next-dynamic/test/index.test.js +++ b/test/integration/next-dynamic/test/index.test.js @@ -29,9 +29,7 @@ function runTests() { const text = await browser.elementByCss('#first-render').text() // Failure case is 'Index3' - expect(text).toBe( - 'Index12344' - ) + expect(text).toBe('Index12344') expect(await browser.eval('window.caughtErrors')).toBe('') }) } From 87d8c2bb2acd29e94c1b6a546babe6aaa661c804 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 15 Jun 2022 11:06:55 -0500 Subject: [PATCH 050/149] Update concurrency for dev and start E2E tests (#37719) * Update concurrency for dev and start E2E tests * update config --- .github/workflows/build_test_deploy.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index b8dfb63a3f91..98dd51890188 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -348,6 +348,7 @@ jobs: fail-fast: false matrix: node: [16, 18] + group: [1, 2] steps: - name: Setup node uses: actions/setup-node@v3 @@ -378,7 +379,7 @@ jobs: - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} - - run: NEXT_TEST_MODE=dev node run-tests.js --type e2e + - run: NEXT_TEST_MODE=dev node run-tests.js --type e2e --timings -g ${{ matrix.group }}/2 name: Run test/e2e (dev) if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -400,6 +401,10 @@ jobs: NEXT_TELEMETRY_DISABLED: 1 NEXT_TEST_JOB: 1 NEXT_TEST_REACT_VERSION: ^17 + strategy: + fail-fast: false + matrix: + group: [1, 2] steps: - name: Setup node uses: actions/setup-node@v3 @@ -430,7 +435,7 @@ jobs: - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} - - run: NEXT_TEST_MODE=dev node run-tests.js --type e2e + - run: NEXT_TEST_MODE=dev node run-tests.js --type e2e --timings -g ${{ matrix.group }}/2 name: Run test/e2e (dev) if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -542,6 +547,7 @@ jobs: fail-fast: false matrix: node: [16, 18] + group: [1, 2] steps: - name: Setup node uses: actions/setup-node@v3 @@ -572,7 +578,7 @@ jobs: - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} - - run: NEXT_TEST_MODE=start node run-tests.js --type e2e + - run: NEXT_TEST_MODE=start node run-tests.js --type e2e --timings -g ${{ matrix.group }}/2 name: Run test/e2e (production) if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -587,7 +593,7 @@ jobs: strategy: fail-fast: false matrix: - node: [16, 18] + group: [1, 2] steps: - name: Setup node uses: actions/setup-node@v3 @@ -618,7 +624,7 @@ jobs: - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} - - run: NEXT_TEST_MODE=start node run-tests.js --type e2e + - run: NEXT_TEST_MODE=start node run-tests.js --type e2e --timings -g ${{ matrix.group }}/2 name: Run test/e2e (production) if: ${{needs.build.outputs.docsChange != 'docs only change'}} From 808e558ade1b7563bf9ff8ed86d70dd3c7dba647 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 15 Jun 2022 14:32:44 -0500 Subject: [PATCH 051/149] Ensure rewrite query params with middleware are available in router (#37724) * Ensure rewrite query params with middleware are available in router * Ensure header matches deploy and add test case * update check --- packages/next/server/base-server.ts | 24 +++++++++++++------ packages/next/shared/lib/router/router.ts | 18 ++++++++++---- test/e2e/middleware-general/app/middleware.js | 2 ++ .../e2e/middleware-general/app/next.config.js | 6 ++--- .../e2e/middleware-general/test/index.test.ts | 16 +++++++++++++ 5 files changed, 52 insertions(+), 14 deletions(-) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index 800f82d3ff6b..43905b1e1802 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -1238,13 +1238,6 @@ export default abstract class Server { 'x-nextjs-matched-path', `${query.__nextLocale ? `/${query.__nextLocale}` : ''}${pathname}` ) - // return empty JSON when not an SSG/SSP page and not an error - if (!(isSSG || hasServerProps)) { - res.setHeader('content-type', 'application/json') - res.body('{}') - res.send() - return null - } } // Don't delete query.__flight__ yet, it still needs to be used in renderToHTML later @@ -1878,6 +1871,23 @@ export default abstract class Server { } return response } + + if ( + this.router.catchAllMiddleware && + !!ctx.req.headers['x-nextjs-data'] && + (!res.statusCode || res.statusCode === 200 || res.statusCode === 404) + ) { + res.setHeader( + 'x-nextjs-matched-path', + `${query.__nextLocale ? `/${query.__nextLocale}` : ''}${pathname}` + ) + res.statusCode = 200 + res.setHeader('content-type', 'application/json') + res.body('{}') + res.send() + return null + } + res.statusCode = 404 return this.renderErrorToResponse(ctx, null) } diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 90937d43d83d..2138fe652f61 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -356,6 +356,7 @@ export type CompletePrivateRouteInfo = { error?: any route?: string resolvedAs?: string + query?: ParsedUrlQuery } export type AppProps = Pick & { @@ -1237,6 +1238,7 @@ export default class Router implements BaseRouter { if ('route' in routeInfo && routeInfo.route !== route) { pathname = routeInfo.route || route + query = Object.assign({}, routeInfo.query || {}, query) if (isDynamicRoute(pathname)) { const prefixedAs = @@ -1741,6 +1743,7 @@ export default class Router implements BaseRouter { routeInfo.props = props routeInfo.route = route + routeInfo.query = query routeInfo.resolvedAs = resolvedAs this.components[route] = routeInfo @@ -2171,10 +2174,10 @@ function getMiddlewareData( i18n: { locales: options.router.locales }, trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH), } + const rewriteHeader = response.headers.get('x-nextjs-rewrite') let rewriteTarget = - response.headers.get('x-nextjs-rewrite') || - response.headers.get('x-nextjs-matched-path') + rewriteHeader || response.headers.get('x-nextjs-matched-path') const matchedPath = response.headers.get('x-matched-path') @@ -2197,7 +2200,14 @@ function getMiddlewareData( ]).then(([pages, { __rewrites: rewrites }]: any) => { let as = parsedRewriteTarget.pathname - if (isDynamicRoute(as)) { + if ( + isDynamicRoute(as) || + (!rewriteHeader && + pages.includes( + normalizeLocalePath(removeBasePath(as), options.router.locales) + .pathname + )) + ) { const parsedSource = getNextPathnameInfo( parseRelativeUrl(source).pathname, { parseData: true } @@ -2218,7 +2228,7 @@ function getMiddlewareData( if (result.matchedPage) { parsedRewriteTarget.pathname = result.parsedAs.pathname - parsedRewriteTarget.query = result.parsedAs.query + Object.assign(parsedRewriteTarget.query, result.parsedAs.query) } } diff --git a/test/e2e/middleware-general/app/middleware.js b/test/e2e/middleware-general/app/middleware.js index 0e4cb147c67a..bb4346531556 100644 --- a/test/e2e/middleware-general/app/middleware.js +++ b/test/e2e/middleware-general/app/middleware.js @@ -59,11 +59,13 @@ export async function middleware(request) { if (url.pathname === '/rewrite-to-dynamic') { url.pathname = '/blog/from-middleware' + url.searchParams.set('some', 'middleware') return NextResponse.rewrite(url) } if (url.pathname === '/rewrite-to-config-rewrite') { url.pathname = '/rewrite-3' + url.searchParams.set('some', 'middleware') return NextResponse.rewrite(url) } diff --git a/test/e2e/middleware-general/app/next.config.js b/test/e2e/middleware-general/app/next.config.js index 718c6b6322fb..9308df9dcbfc 100644 --- a/test/e2e/middleware-general/app/next.config.js +++ b/test/e2e/middleware-general/app/next.config.js @@ -16,11 +16,11 @@ module.exports = { return [ { source: '/rewrite-1', - destination: '/ssr-page', + destination: '/ssr-page?from=config', }, { source: '/rewrite-2', - destination: '/about/a', + destination: '/about/a?from=next-config', }, { source: '/sha', @@ -28,7 +28,7 @@ module.exports = { }, { source: '/rewrite-3', - destination: '/blog/middleware-rewrite', + destination: '/blog/middleware-rewrite?hello=config', }, ] }, diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index 95ce46a43d8a..e8647008d7ea 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -158,6 +158,7 @@ describe('Middleware Runtime', () => { expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ slug: 'from-middleware', + some: 'middleware', }) expect( JSON.parse(await browser.elementByCss('#props').text()).params @@ -178,6 +179,8 @@ describe('Middleware Runtime', () => { expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ slug: 'middleware-rewrite', + hello: 'config', + some: 'middleware', }) expect( JSON.parse(await browser.elementByCss('#props').text()).params @@ -198,6 +201,7 @@ describe('Middleware Runtime', () => { expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ slug: 'middleware-rewrite', + hello: 'config', }) expect( JSON.parse(await browser.elementByCss('#props').text()).params @@ -208,6 +212,18 @@ describe('Middleware Runtime', () => { expect(await browser.elementByCss('#as-path').text()).toBe('/rewrite-3') }) + it('should have correct route params for rewrite from config non-dynamic route', async () => { + const browser = await webdriver(next.url, '/') + await browser.eval('window.beforeNav = 1') + await browser.eval('window.next.router.push("/rewrite-1")') + + await check(() => browser.elementByCss('body').text(), /Hello World/) + + expect(await browser.eval('window.next.router.query')).toEqual({ + from: 'config', + }) + }) + it('should redirect the same for direct visit and client-transition', async () => { const res = await fetchViaHTTP( next.url, From 016ce59a97ca026688fbd205c231a9405581e64a Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 15 Jun 2022 14:40:38 -0500 Subject: [PATCH 052/149] v12.1.7-canary.40 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 +- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +-- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 121 +++++-------------- 16 files changed, 51 insertions(+), 114 deletions(-) diff --git a/lerna.json b/lerna.json index d638733e9094..28d7f521da6f 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.39" + "version": "12.1.7-canary.40" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index a7d23a6521e4..c4e6deb98db1 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 582980b119c0..3d07ea42c7ea 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.39", + "@next/eslint-plugin-next": "12.1.7-canary.40", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index bf4b1d66f78a..2d66fc8f6f38 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index d544b417b37c..018562b23f14 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index ba8bc68e5675..b940ec66bfe0 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index 77ce483dbbc6..ae68ad8f7665 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 4d1e7b5e6784..2da73610c602 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 615f3c1386a6..2dfa046fbcec 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index ecf4244aa14b..bea8669b9267 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index 34fdeba26b4a..2c7551a75601 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 2b9815fbee09..a3fccc2133c9 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index e14079fc5194..ec7d4e78aaba 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.39", + "@next/env": "12.1.7-canary.40", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.39", - "@next/polyfill-nomodule": "12.1.7-canary.39", - "@next/react-dev-overlay": "12.1.7-canary.39", - "@next/react-refresh-utils": "12.1.7-canary.39", - "@next/swc": "12.1.7-canary.39", + "@next/polyfill-module": "12.1.7-canary.40", + "@next/polyfill-nomodule": "12.1.7-canary.40", + "@next/react-dev-overlay": "12.1.7-canary.40", + "@next/react-refresh-utils": "12.1.7-canary.40", + "@next/swc": "12.1.7-canary.40", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 994bf1fd5247..7a42044c68ea 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index ae1d18791dd1..09a285053e3c 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.39", + "version": "12.1.7-canary.40", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e7ae336812c..e78573f86c13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -308,9 +308,9 @@ importers: turbo: 1.2.14 typescript: 4.6.3 wait-port: 0.2.2 - webpack: 5.73.0_@swc+core@1.2.148 + webpack: link:node_modules/webpack5 webpack-bundle-analyzer: 4.3.0 - worker-loader: 3.0.7_webpack@5.73.0 + worker-loader: 3.0.7_2opjno65lyt7hgwek6rdc5kfzu packages/create-next-app: specifiers: @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.39 + '@next/eslint-plugin-next': 12.1.7-canary.40 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.39 - '@next/polyfill-module': 12.1.7-canary.39 - '@next/polyfill-nomodule': 12.1.7-canary.39 - '@next/react-dev-overlay': 12.1.7-canary.39 - '@next/react-refresh-utils': 12.1.7-canary.39 - '@next/swc': 12.1.7-canary.39 + '@next/env': 12.1.7-canary.40 + '@next/polyfill-module': 12.1.7-canary.40 + '@next/polyfill-nomodule': 12.1.7-canary.40 + '@next/react-dev-overlay': 12.1.7-canary.40 + '@next/react-refresh-utils': 12.1.7-canary.40 + '@next/swc': 12.1.7-canary.40 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 @@ -703,7 +703,7 @@ importers: lodash.curry: 4.1.1 lru-cache: 5.1.1 micromatch: 4.0.4 - mini-css-extract-plugin: 2.4.3_webpack@5.73.0 + mini-css-extract-plugin: 2.4.3 nanoid: 3.1.30 native-url: 0.3.4 neo-async: 2.6.1 @@ -729,9 +729,9 @@ importers: raw-body: 2.4.1 react-is: 17.0.2 react-refresh: 0.12.0 - react-server-dom-webpack: 0.0.0-experimental-d2c9e834a-20220601_webpack@5.73.0 + react-server-dom-webpack: 0.0.0-experimental-d2c9e834a-20220601 regenerator-runtime: 0.13.4 - sass-loader: 12.4.0_webpack@5.73.0 + sass-loader: 12.4.0 schema-utils2: /schema-utils/2.7.1 schema-utils3: /schema-utils/3.0.0 semver: 7.3.2 @@ -6514,12 +6514,20 @@ packages: acorn: 8.6.0 dev: true + /acorn-jsx/5.3.1_acorn@7.4.1: + resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + /acorn-jsx/5.3.1_acorn@8.6.0: resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.6.0 + dev: true /acorn-walk/7.1.1: resolution: {integrity: sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==} @@ -6540,7 +6548,6 @@ packages: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /acorn/8.5.0: resolution: {integrity: sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==} @@ -10553,8 +10560,8 @@ packages: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - acorn: 8.6.0 - acorn-jsx: 5.3.1_acorn@8.6.0 + acorn: 7.4.1 + acorn-jsx: 5.3.1_acorn@7.4.1 eslint-visitor-keys: 1.3.0 /esprima/4.0.1: @@ -15357,14 +15364,13 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - /mini-css-extract-plugin/2.4.3_webpack@5.73.0: + /mini-css-extract-plugin/2.4.3: resolution: {integrity: sha512-zekavl9mZuGyk7COjsfFY/f655AX61EKE0AthXPrmDk+oZyjZ9WzO4WPjXnnO9xl8obK2kmM6rAQrBEmk+WK1g==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 3.1.1 - webpack: 5.73.0 dev: true /minimalistic-assert/1.0.1: @@ -18379,7 +18385,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-server-dom-webpack/0.0.0-experimental-d2c9e834a-20220601_webpack@5.73.0: + /react-server-dom-webpack/0.0.0-experimental-d2c9e834a-20220601: resolution: {integrity: sha512-HBWH9fhTJwbX7x3K9kuZ1gHXMN6CCdN0uH1N7jqBqPf8/uLDjNYN/ZKVNqb8augZax6HJDfv5VHVcKr0qr7ZbQ==} engines: {node: '>=0.10.0'} peerDependencies: @@ -18389,7 +18395,6 @@ packages: acorn: 6.4.2 loose-envify: 1.4.0 neo-async: 2.6.2 - webpack: 5.73.0 dev: true /react-ssr-prepass/1.0.8_qncsgtzehe3fgiqp6tr7lwq6fm: @@ -19376,7 +19381,7 @@ packages: yargs: 13.3.2 dev: true - /sass-loader/12.4.0_webpack@5.73.0: + /sass-loader/12.4.0: resolution: {integrity: sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -19394,7 +19399,6 @@ packages: dependencies: klona: 2.0.4 neo-async: 2.6.2 - webpack: 5.73.0 dev: true /sax/1.2.4: @@ -20623,7 +20627,7 @@ packages: supports-hyperlinks: 2.1.0 dev: true - /terser-webpack-plugin/1.4.4_webpack@5.73.0: + /terser-webpack-plugin/1.4.4: resolution: {integrity: sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==} engines: {node: '>= 6.9.0'} peerDependencies: @@ -20636,37 +20640,10 @@ packages: serialize-javascript: 3.1.0 source-map: 0.6.1 terser: 4.8.0 - webpack: 5.73.0 webpack-sources: 1.4.3 worker-farm: 1.7.0 dev: true - /terser-webpack-plugin/5.2.4_ai2j7bpouqpuepqe2h7rahoxba: - resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@swc/core': 1.2.148 - jest-worker: 27.0.6 - p-limit: 3.1.0 - schema-utils: 3.1.1 - serialize-javascript: 6.0.0 - source-map: 0.6.1 - terser: 5.10.0 - webpack: 5.73.0_@swc+core@1.2.148 - dev: true - /terser-webpack-plugin/5.2.4_webpack@5.73.0: resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} engines: {node: '>= 10.13.0'} @@ -22071,7 +22048,7 @@ packages: node-libs-browser: 2.2.1 schema-utils: 1.0.0 tapable: 1.1.3 - terser-webpack-plugin: 1.4.4_webpack@5.73.0 + terser-webpack-plugin: 1.4.4 watchpack: 1.7.4 webpack-sources: 1.4.3 transitivePeerDependencies: @@ -22118,46 +22095,6 @@ packages: - uglify-js dev: true - /webpack/5.73.0_@swc+core@1.2.148: - resolution: {integrity: sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': 3.7.3 - '@types/estree': 0.0.51 - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/wasm-edit': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.6.0 - acorn-import-assertions: 1.7.6_acorn@8.6.0 - browserslist: 4.20.2 - chrome-trace-event: 1.0.2 - enhanced-resolve: 5.9.3 - es-module-lexer: 0.9.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.9 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.2.0 - mime-types: 2.1.30 - neo-async: 2.6.2 - schema-utils: 3.1.1 - tapable: 2.2.0 - terser-webpack-plugin: 5.2.4_ai2j7bpouqpuepqe2h7rahoxba - watchpack: 2.4.0 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - dev: true - /websocket-driver/0.7.3: resolution: {integrity: sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==} engines: {node: '>=0.8.0'} @@ -22287,7 +22224,7 @@ packages: errno: 0.1.7 dev: true - /worker-loader/3.0.7_webpack@5.73.0: + /worker-loader/3.0.7_2opjno65lyt7hgwek6rdc5kfzu: resolution: {integrity: sha512-LjYLuYJw6kqQKDoygpoD5vWeR1CbZjuVSW3/8pFsptMlUl8gatNM/pszhasSDAWt+dYxMipWB6695k+1zId+iQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -22295,7 +22232,7 @@ packages: dependencies: loader-utils: 2.0.0 schema-utils: 3.1.1 - webpack: 5.73.0_@swc+core@1.2.148 + webpack: link:node_modules/webpack5 dev: true /wrap-ansi/3.0.1: From 1fcbc3ec60504f49a27537c9fc0c1046395fea36 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 15 Jun 2022 15:51:51 -0500 Subject: [PATCH 053/149] Update pre-compiled (#37729) Seems this got out of sync pre-release so this re-syncs the compiled files Fixes: https://github.com/vercel/next.js/runs/6907047235?check_suite_focus=true ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) --- packages/next/compiled/mini-css-extract-plugin/cjs.js | 2 +- .../mini-css-extract-plugin/hmr/hotModuleReplacement.js | 2 +- packages/next/compiled/mini-css-extract-plugin/index.js | 2 +- packages/next/compiled/mini-css-extract-plugin/loader.js | 2 +- packages/next/compiled/sass-loader/cjs.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/next/compiled/mini-css-extract-plugin/cjs.js b/packages/next/compiled/mini-css-extract-plugin/cjs.js index 98de23b5549b..0056ef466826 100644 --- a/packages/next/compiled/mini-css-extract-plugin/cjs.js +++ b/packages/next/compiled/mini-css-extract-plugin/cjs.js @@ -1 +1 @@ -(()=>{"use strict";var e={305:(e,r,_)=>{e.exports=_(717)["default"]},717:e=>{e.exports=require("./index.js")}};var r={};function __nccwpck_require__(_){var t=r[_];if(t!==undefined){return t.exports}var a=r[_]={exports:{}};var i=true;try{e[_](a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(305);module.exports=_})(); \ No newline at end of file +(()=>{"use strict";var e={471:(e,r,_)=>{e.exports=_(717)["default"]},717:e=>{e.exports=require("./index.js")}};var r={};function __nccwpck_require__(_){var t=r[_];if(t!==undefined){return t.exports}var a=r[_]={exports:{}};var i=true;try{e[_](a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(471);module.exports=_})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js b/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js index c289e0957c2e..6e4172917816 100644 --- a/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js +++ b/packages/next/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js @@ -1 +1 @@ -(()=>{"use strict";var e={677:(e,r,t)=>{var n=t(996);var i=Object.create(null);var a=typeof document==="undefined";var o=Array.prototype.forEach;function debounce(e,r){var t=0;return function(){var n=this;var i=arguments;var a=function functionCall(){return e.apply(n,i)};clearTimeout(t);t=setTimeout(a,r)}}function noop(){}function getCurrentScriptUrl(e){var r=i[e];if(!r){if(document.currentScript){r=document.currentScript.src}else{var t=document.getElementsByTagName("script");var a=t[t.length-1];if(a){r=a.src}}i[e]=r}return function(e){if(!r){return null}var t=r.split(/([^\\/]+)\.js$/);var i=t&&t[1];if(!i){return[r.replace(".js",".css")]}if(!e){return[r.replace(".js",".css")]}return e.split(",").map((function(e){var t=new RegExp("".concat(i,"\\.js$"),"g");return n(r.replace(t,"".concat(e.replace(/{fileName}/g,i),".css")))}))}}function updateCss(e,r){if(!r){if(!e.href){return}r=e.href.split("?")[0]}if(!isUrlRequest(r)){return}if(e.isLoaded===false){return}if(!r||!(r.indexOf(".css")>-1)){return}e.visited=true;var t=e.cloneNode();t.isLoaded=false;t.addEventListener("load",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.addEventListener("error",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.href="".concat(r,"?").concat(Date.now());if(e.nextSibling){e.parentNode.insertBefore(t,e.nextSibling)}else{e.parentNode.appendChild(t)}}function getReloadUrl(e,r){var t;e=n(e,{stripWWW:false});r.some((function(n){if(e.indexOf(r)>-1){t=n}}));return t}function reloadStyle(e){if(!e){return false}var r=document.querySelectorAll("link");var t=false;o.call(r,(function(r){if(!r.href){return}var n=getReloadUrl(r.href,e);if(!isUrlRequest(n)){return}if(r.visited===true){return}if(n){updateCss(r,n);t=true}}));return t}function reloadAll(){var e=document.querySelectorAll("link");o.call(e,(function(e){if(e.visited===true){return}updateCss(e)}))}function isUrlRequest(e){if(!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)){return false}return true}e.exports=function(e,r){if(a){console.log("no window.document found, will not HMR CSS");return noop}var t=getCurrentScriptUrl(e);function update(){var e=t(r.filename);var n=reloadStyle(e);if(r.locals){console.log("[HMR] Detected local css modules. Reload all css");reloadAll();return}if(n){console.log("[HMR] css reload %s",e.join(" "))}else{console.log("[HMR] Reload all css");reloadAll()}}return debounce(update,50)}},996:e=>{function normalizeUrl(e){return e.reduce((function(e,r){switch(r){case"..":e.pop();break;case".":break;default:e.push(r)}return e}),[]).join("/")}e.exports=function(e){e=e.trim();if(/^data:/i.test(e)){return e}var r=e.indexOf("//")!==-1?e.split("//")[0]+"//":"";var t=e.replace(new RegExp(r,"i"),"").split("/");var n=t[0].toLowerCase().replace(/\.$/,"");t[0]="";var i=normalizeUrl(t);return r+n+i}}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var i=r[t]={exports:{}};var a=true;try{e[t](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(677);module.exports=t})(); \ No newline at end of file +(()=>{"use strict";var e={722:(e,r,t)=>{var n=t(121);var i=Object.create(null);var a=typeof document==="undefined";var o=Array.prototype.forEach;function debounce(e,r){var t=0;return function(){var n=this;var i=arguments;var a=function functionCall(){return e.apply(n,i)};clearTimeout(t);t=setTimeout(a,r)}}function noop(){}function getCurrentScriptUrl(e){var r=i[e];if(!r){if(document.currentScript){r=document.currentScript.src}else{var t=document.getElementsByTagName("script");var a=t[t.length-1];if(a){r=a.src}}i[e]=r}return function(e){if(!r){return null}var t=r.split(/([^\\/]+)\.js$/);var i=t&&t[1];if(!i){return[r.replace(".js",".css")]}if(!e){return[r.replace(".js",".css")]}return e.split(",").map((function(e){var t=new RegExp("".concat(i,"\\.js$"),"g");return n(r.replace(t,"".concat(e.replace(/{fileName}/g,i),".css")))}))}}function updateCss(e,r){if(!r){if(!e.href){return}r=e.href.split("?")[0]}if(!isUrlRequest(r)){return}if(e.isLoaded===false){return}if(!r||!(r.indexOf(".css")>-1)){return}e.visited=true;var t=e.cloneNode();t.isLoaded=false;t.addEventListener("load",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.addEventListener("error",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.href="".concat(r,"?").concat(Date.now());if(e.nextSibling){e.parentNode.insertBefore(t,e.nextSibling)}else{e.parentNode.appendChild(t)}}function getReloadUrl(e,r){var t;e=n(e,{stripWWW:false});r.some((function(n){if(e.indexOf(r)>-1){t=n}}));return t}function reloadStyle(e){if(!e){return false}var r=document.querySelectorAll("link");var t=false;o.call(r,(function(r){if(!r.href){return}var n=getReloadUrl(r.href,e);if(!isUrlRequest(n)){return}if(r.visited===true){return}if(n){updateCss(r,n);t=true}}));return t}function reloadAll(){var e=document.querySelectorAll("link");o.call(e,(function(e){if(e.visited===true){return}updateCss(e)}))}function isUrlRequest(e){if(!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)){return false}return true}e.exports=function(e,r){if(a){console.log("no window.document found, will not HMR CSS");return noop}var t=getCurrentScriptUrl(e);function update(){var e=t(r.filename);var n=reloadStyle(e);if(r.locals){console.log("[HMR] Detected local css modules. Reload all css");reloadAll();return}if(n){console.log("[HMR] css reload %s",e.join(" "))}else{console.log("[HMR] Reload all css");reloadAll()}}return debounce(update,50)}},121:e=>{function normalizeUrl(e){return e.reduce((function(e,r){switch(r){case"..":e.pop();break;case".":break;default:e.push(r)}return e}),[]).join("/")}e.exports=function(e){e=e.trim();if(/^data:/i.test(e)){return e}var r=e.indexOf("//")!==-1?e.split("//")[0]+"//":"";var t=e.replace(new RegExp(r,"i"),"").split("/");var n=t[0].toLowerCase().replace(/\.$/,"");t[0]="";var i=normalizeUrl(t);return r+n+i}}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var i=r[t]={exports:{}};var a=true;try{e[t](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(722);module.exports=t})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/index.js b/packages/next/compiled/mini-css-extract-plugin/index.js index 6e17f1e57a02..675159f92055 100644 --- a/packages/next/compiled/mini-css-extract-plugin/index.js +++ b/packages/next/compiled/mini-css-extract-plugin/index.js @@ -1 +1 @@ -(()=>{"use strict";var e={154:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var s=_interopRequireDefault(n(188));var i=_interopRequireDefault(n(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:n,chunkGraph:s}=e;for(const e of n){const n=typeof s!=="undefined"?s.getModuleId(e):e.id;if(n===t){return e}}return null}function evalModuleCode(e,t,n){const i=new s.default(n,e);i.paths=s.default._nodeModulePaths(e.context);i.filename=n;i._compile(t,n);return i.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const o="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=o;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return i.default.posix.isAbsolute(e)||i.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const n=t.split("!");const{context:s}=e;return JSON.stringify(n.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const n=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&s){r=i.default.relative(s,r);if(isAbsolutePath(r)){return r+n}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+n})).join("!"))}function getUndoPath(e,t,n){let s=-1;let i="";t=t.replace(/[\\/]$/,"");for(const n of e.split(/[/\\]+/)){if(n===".."){if(s>-1){s--}else{const e=t.lastIndexOf("/");const n=t.lastIndexOf("\\");const s=e<0?n:n<0?e:Math.max(e,n);if(s<0){return`${t}/`}i=`${t.slice(s+1)}/${i}`;t=t.slice(0,s)}}else if(n!=="."){s++}}return s>0?`${"../".repeat(s)}${i}`:n?`./${i}`:i}},188:e=>{e.exports=require("module")},476:e=>{e.exports=require("next/dist/compiled/schema-utils3")},17:e=>{e.exports=require("path")},910:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin options","type":"object","additionalProperties":false,"properties":{"filename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of each output CSS file.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#filename"},"chunkFilename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of non-entry chunk files.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#chunkfilename"},"experimentalUseImportModule":{"type":"boolean","description":"Enable the experimental importModule approach instead of using child compilers. This uses less memory and is faster.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#experimentaluseimportmodule"},"ignoreOrder":{"type":"boolean","description":"Remove Order Warnings.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#ignoreorder"},"insert":{"description":"Inserts the `link` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#insert","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"attributes":{"description":"Adds custom attributes to the `link` tag for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#attributes","type":"object"},"linkType":{"anyOf":[{"enum":["text/css"]},{"type":"boolean"}],"description":"This option allows loading asynchronous chunks with a custom link type","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#linktype"},"runtime":{"type":"boolean","description":"Enabled/Disables runtime generation. CSS will be still extracted and can be used for a custom loading methods.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#noRuntime"}}}')}};var t={};function __nccwpck_require__(n){var s=t[n];if(s!==undefined){return s.exports}var i=t[n]={exports:{}};var r=true;try{e[n](i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:true});e.pluginSymbol=e.pluginName=e["default"]=void 0;var t=__nccwpck_require__(476);var s=_interopRequireDefault(__nccwpck_require__(910));var i=__nccwpck_require__(154);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const r="mini-css-extract-plugin";e.pluginName=r;const o=Symbol(r);e.pluginSymbol=o;const a="[name].css";const u=new Set([i.MODULE_TYPE]);const l={sources:new Map,runtimeRequirements:new Set};const d=new WeakMap;const c=new WeakMap;const p=new WeakSet;class MiniCssExtractPlugin{static getCssModule(e){if(d.has(e)){return d.get(e)}class CssModule extends e.Module{constructor({context:e,identifier:t,identifierIndex:n,content:s,layer:r,supports:o,media:a,sourceMap:u,assets:l,assetsInfo:d}){super(i.MODULE_TYPE,e);this.id="";this._context=e;this._identifier=t;this._identifierIndex=n;this.content=s;this.layer=r;this.supports=o;this.media=a;this.sourceMap=u;this.assets=l;this.assetsInfo=d;this._needBuild=true}size(){return this.content.length}identifier(){return`css|${this._identifier}|${this._identifierIndex}`}readableIdentifier(e){return`css ${e.shorten(this._identifier)}${this._identifierIndex?` (${this._identifierIndex})`:""}`}getSourceTypes(){return u}codeGeneration(){return l}nameForCondition(){const e=this._identifier.split("!").pop();const t=e.indexOf("?");if(t>=0){return e.substring(0,t)}return e}updateCacheModule(e){if(this.content!==e.content||this.layer!==e.layer||this.supports!==e.supports||this.media!==e.media||this.sourceMap!==e.sourceMap||this.assets!==e.assets||this.assetsInfo!==e.assetsInfo){this._needBuild=true;this.content=e.content;this.layer=e.layer;this.supports=e.supports;this.media=e.media;this.sourceMap=e.sourceMap;this.assets=e.assets;this.assetsInfo=e.assetsInfo}}needRebuild(){return this._needBuild}needBuild(e,t){t(null,this._needBuild)}build(e,t,n,s,i){this.buildInfo={assets:this.assets,assetsInfo:this.assetsInfo,cacheable:true,hash:this._computeHash(t.outputOptions.hashFunction)};this.buildMeta={};this._needBuild=false;i()}_computeHash(t){const n=e.util.createHash(t);n.update(this.content);if(this.layer){n.update(this.layer)}n.update(this.supports||"");n.update(this.media||"");n.update(this.sourceMap||"");return n.digest("hex")}updateHash(e,t){super.updateHash(e,t);e.update(this.buildInfo.hash)}serialize(e){const{write:t}=e;t(this._context);t(this._identifier);t(this._identifierIndex);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.assets);t(this.assetsInfo);t(this._needBuild);super.serialize(e)}deserialize(e){this._needBuild=e.read();super.deserialize(e)}}d.set(e,CssModule);e.util.serialization.register(CssModule,"mini-css-extract-plugin/dist/CssModule",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=t();const s=t();const i=t();const r=t();const o=t();const a=t();const u=t();const l=t();const d=t();const c=t();const p=new CssModule({context:n,identifier:s,identifierIndex:i,content:r,layer:o,supports:a,media:u,sourceMap:l,assets:d,assetsInfo:c});p.deserialize(e);return p}});return CssModule}static getCssDependency(e){if(c.has(e)){return c.get(e)}class CssDependency extends e.Dependency{constructor({identifier:e,content:t,layer:n,supports:s,media:i,sourceMap:r},o,a){super();this.identifier=e;this.identifierIndex=a;this.content=t;this.layer=n;this.supports=s;this.media=i;this.sourceMap=r;this.context=o;this.assets=undefined;this.assetsInfo=undefined}getResourceIdentifier(){return`css-module-${this.identifier}-${this.identifierIndex}`}getModuleEvaluationSideEffectsState(){return e.ModuleGraphConnection.TRANSITIVE_ONLY}serialize(e){const{write:t}=e;t(this.identifier);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.context);t(this.identifierIndex);t(this.assets);t(this.assetsInfo);super.serialize(e)}deserialize(e){super.deserialize(e)}}c.set(e,CssDependency);e.util.serialization.register(CssDependency,"mini-css-extract-plugin/dist/CssDependency",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=new CssDependency({identifier:t(),content:t(),layer:t(),supports:t(),media:t(),sourceMap:t()},t(),t());const s=t();const i=t();n.assets=s;n.assetsInfo=i;n.deserialize(e);return n}});return CssDependency}constructor(e={}){(0,t.validate)(s.default,e,{baseDataPath:"options"});this._sortedModulesCache=new WeakMap;this.options=Object.assign({filename:a,ignoreOrder:false,experimentalUseImportModule:undefined,runtime:true},e);this.runtimeOptions={insert:e.insert,linkType:e.linkType===true||typeof e.linkType==="undefined"?"text/css":e.linkType,attributes:e.attributes};if(!this.options.chunkFilename){const{filename:e}=this.options;if(typeof e!=="function"){const t=e.includes("[name]");const n=e.includes("[id]");const s=e.includes("[chunkhash]");const i=e.includes("[contenthash]");if(s||i||t||n){this.options.chunkFilename=e}else{this.options.chunkFilename=e.replace(/(^|\/)([^/]*(?:\?|$))/,"$1[id].$2")}}else{this.options.chunkFilename="[id].css"}}}apply(e){const{webpack:t}=e;if(this.options.experimentalUseImportModule){if(typeof e.options.experiments.executeModule==="undefined"){e.options.experiments.executeModule=true}}if(!p.has(t)){p.add(t);t.util.serialization.registerLoader(/^mini-css-extract-plugin\//,i.trueFn)}const{splitChunks:n}=e.options.optimization;if(n){if(n.defaultSizeTypes.includes("...")){n.defaultSizeTypes.push(i.MODULE_TYPE)}}const s=MiniCssExtractPlugin.getCssModule(t);const a=MiniCssExtractPlugin.getCssDependency(t);const{NormalModule:u}=e.webpack;e.hooks.compilation.tap(r,(e=>{const{loader:t}=u.getCompilationHooks(e);t.tap(r,(e=>{e[o]={experimentalUseImportModule:this.options.experimentalUseImportModule}}))}));e.hooks.thisCompilation.tap(r,(n=>{class CssModuleFactory{create({dependencies:[e]},t){t(null,new s(e))}}n.dependencyFactories.set(a,new CssModuleFactory);class CssDependencyTemplate{apply(){}}n.dependencyTemplates.set(a,new CssDependencyTemplate);n.hooks.renderManifest.tap(r,((s,{chunk:o})=>{const{chunkGraph:a}=n;const{HotUpdateChunk:u}=t;if(o instanceof u){return}const l=Array.from(this.getChunkModules(o,a)).filter((e=>e.type===i.MODULE_TYPE));const d=o.canBeInitial()?this.options.filename:this.options.chunkFilename;if(l.length>0){s.push({render:()=>this.renderContentAsset(e,n,o,l,n.runtimeTemplate.requestShortener,d,{contentHashType:i.MODULE_TYPE,chunk:o}),filenameTemplate:d,pathOptions:{chunk:o,contentHashType:i.MODULE_TYPE},identifier:`${r}.${o.id}`,hash:o.contentHash[i.MODULE_TYPE]})}}));n.hooks.contentHash.tap(r,(t=>{const{outputOptions:s,chunkGraph:r}=n;const o=this.sortModules(n,t,r.getChunkModulesIterableBySourceType(t,i.MODULE_TYPE),n.runtimeTemplate.requestShortener);if(o){const{hashFunction:n,hashDigest:a,hashDigestLength:u}=s;const{createHash:l}=e.webpack.util;const d=l(n);for(const e of o){d.update(r.getModuleHash(e,t.runtime))}t.contentHash[i.MODULE_TYPE]=d.digest(a).substring(0,u)}}));if(!this.options.runtime){return}const{Template:o,RuntimeGlobals:u,RuntimeModule:l,runtime:d}=t;const getCssChunkObject=(e,t)=>{const n={};const{chunkGraph:s}=t;for(const t of e.getAllAsyncChunks()){const e=s.getOrderedChunkModulesIterable(t,i.compareModulesByIdentifier);for(const s of e){if(s.type===i.MODULE_TYPE){n[t.id]=1;break}}}return n};class CssLoadingRuntimeModule extends l{constructor(e,t){super("css loading",10);this.runtimeRequirements=e;this.runtimeOptions=t}generate(){const{chunk:e,runtimeRequirements:t}=this;const{runtimeTemplate:n,outputOptions:{crossOriginLoading:s}}=this.compilation;const i=getCssChunkObject(e,this.compilation);const r=t.has(u.ensureChunkHandlers)&&Object.keys(i).length>0;const a=t.has(u.hmrDownloadUpdateHandlers);if(!r&&!a){return null}return o.asString([`var createStylesheet = ${n.basicFunction("chunkId, fullhref, resolve, reject",['var linkTag = document.createElement("link");',this.runtimeOptions.attributes?o.asString(Object.entries(this.runtimeOptions.attributes).map((e=>{const[t,n]=e;return`linkTag.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(n)});`}))):"",'linkTag.rel = "stylesheet";',this.runtimeOptions.linkType?`linkTag.type = ${JSON.stringify(this.runtimeOptions.linkType)};`:"",`var onLinkComplete = ${n.basicFunction("event",["// avoid mem leaks.","linkTag.onerror = linkTag.onload = null;","if (event.type === 'load') {",o.indent(["resolve();"]),"} else {",o.indent(["var errorType = event && (event.type === 'load' ? 'missing' : event.type);","var realHref = event && event.target && event.target.href || fullhref;",'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");','err.code = "CSS_CHUNK_LOAD_FAILED";',"err.type = errorType;","err.request = realHref;","linkTag.parentNode.removeChild(linkTag)","reject(err);"]),"}"])}`,"linkTag.onerror = linkTag.onload = onLinkComplete;","linkTag.href = fullhref;",s?o.asString([`if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`,o.indent(`linkTag.crossOrigin = ${JSON.stringify(s)};`),"}"]):"",typeof this.runtimeOptions.insert!=="undefined"?typeof this.runtimeOptions.insert==="function"?`(${this.runtimeOptions.insert.toString()})(linkTag)`:o.asString([`var target = document.querySelector("${this.runtimeOptions.insert}");`,`target.parentNode.insertBefore(linkTag, target.nextSibling);`]):o.asString(["document.head.appendChild(linkTag);"]),"return linkTag;"])};`,`var findStylesheet = ${n.basicFunction("href, fullhref",['var existingLinkTags = document.getElementsByTagName("link");',"for(var i = 0; i < existingLinkTags.length; i++) {",o.indent(["var tag = existingLinkTags[i];",'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");','if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;']),"}",'var existingStyleTags = document.getElementsByTagName("style");',"for(var i = 0; i < existingStyleTags.length; i++) {",o.indent(["var tag = existingStyleTags[i];",'var dataHref = tag.getAttribute("data-href");',"if(dataHref === href || dataHref === fullhref) return tag;"]),"}"])};`,`var loadStylesheet = ${n.basicFunction("chunkId",`return new Promise(${n.basicFunction("resolve, reject",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"if(findStylesheet(href, fullhref)) return resolve();","createStylesheet(chunkId, fullhref, resolve, reject);"])});`)}`,r?o.asString(["// object to store loaded CSS chunks","var installedCssChunks = {",o.indent(e.ids.map((e=>`${JSON.stringify(e)}: 0`)).join(",\n")),"};","",`${u.ensureChunkHandlers}.miniCss = ${n.basicFunction("chunkId, promises",[`var cssChunks = ${JSON.stringify(i)};`,"if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);","else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {",o.indent([`promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${n.basicFunction("","installedCssChunks[chunkId] = 0;")}, ${n.basicFunction("e",["delete installedCssChunks[chunkId];","throw e;"])}));`]),"}"])};`]):"// no chunk loading","",a?o.asString(["var oldTags = [];","var newTags = [];",`var applyHandler = ${n.basicFunction("options",[`return { dispose: ${n.basicFunction("",["for(var i = 0; i < oldTags.length; i++) {",o.indent(["var oldTag = oldTags[i];","if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);"]),"}","oldTags.length = 0;"])}, apply: ${n.basicFunction("",['for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";',"newTags.length = 0;"])} };`])}`,`${u.hmrDownloadUpdateHandlers}.miniCss = ${n.basicFunction("chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList",["applyHandlers.push(applyHandler);",`chunkIds.forEach(${n.basicFunction("chunkId",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"var oldTag = findStylesheet(href, fullhref);","if(!oldTag) return;",`promises.push(new Promise(${n.basicFunction("resolve, reject",[`var tag = createStylesheet(chunkId, fullhref, ${n.basicFunction("",['tag.as = "style";','tag.rel = "preload";',"resolve();"])}, reject);`,"oldTags.push(oldTag);","newTags.push(tag);"])}));`])});`])}`]):"// no hmr"])}}const c=new WeakSet;const handler=(e,t)=>{if(c.has(e)){return}c.add(e);if(typeof this.options.chunkFilename==="string"&&/\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename)){t.add(u.getFullHash)}t.add(u.publicPath);n.addRuntimeModule(e,new d.GetChunkFilenameRuntimeModule(i.MODULE_TYPE,"mini-css",`${u.require}.miniCssF`,(e=>{if(!e.contentHash[i.MODULE_TYPE]){return false}return e.canBeInitial()?this.options.filename:this.options.chunkFilename}),true));n.addRuntimeModule(e,new CssLoadingRuntimeModule(t,this.runtimeOptions))};n.hooks.runtimeRequirementInTree.for(u.ensureChunkHandlers).tap(r,handler);n.hooks.runtimeRequirementInTree.for(u.hmrDownloadUpdateHandlers).tap(r,handler)}))}getChunkModules(e,t){return typeof t!=="undefined"?t.getOrderedChunkModulesIterable(e,i.compareModulesByIdentifier):e.modulesIterable}sortModules(e,t,n,s){let i=this._sortedModulesCache.get(t);if(i||!n){return i}const o=[...n];const a=new Map(o.map((e=>[e,new Set])));const u=new Map(o.map((e=>[e,new Map])));const l=Array.from(t.groupsIterable,(e=>{const t=o.map((t=>({module:t,index:e.getModulePostOrderIndex(t)}))).filter((e=>e.index!==undefined)).sort(((e,t)=>t.index-e.index)).map((e=>e.module));for(let n=0;n!i.has(e);while(i.size0&&i.has(e[e.length-1])){e.pop()}if(e.length!==0){const t=e[e.length-1];const s=a.get(t);const r=Array.from(s).filter(unusedModulesFilter);if(!d||d.length>r.length){o=e;d=r}if(r.length===0){i.add(e.pop());n=true;break}}}if(!n){const n=o.pop();if(!this.options.ignoreOrder){const i=u.get(n);e.warnings.push(new Error([`chunk ${t.name||t.id} [${r}]`,"Conflicting order. Following module has been added:",` * ${n.readableIdentifier(s)}`,"despite it was not able to fulfill desired ordering with these modules:",...d.map((e=>{const t=u.get(e);const r=t&&t.get(n);const o=Array.from(i.get(e),(e=>e.name)).join(", ");const a=r&&Array.from(r,(e=>e.name)).join(", ");return[` * ${e.readableIdentifier(s)}`,` - couldn't fulfill desired order of chunk group(s) ${o}`,a&&` - while fulfilling desired order of chunk group(s) ${a}`].filter(Boolean).join("\n")}))].join("\n")))}i.add(n)}}this._sortedModulesCache.set(t,i);return i}renderContentAsset(e,t,n,s,r,o,a){const u=this.sortModules(t,n,s,r);const{ConcatSource:l,SourceMapSource:d,RawSource:c}=e.webpack.sources;const p=new l;const h=new l;for(const n of u){let s=n.content.toString();const u=n.readableIdentifier(r);const l=/^@import url/.test(s);let f;if(t.outputOptions.pathinfo){const e=u.replace(/\*\//g,"*_/");const t="*".repeat(e.length);const n=`/*!****${t}****!*\\\n !*** ${e} ***!\n \\****${t}****/\n`;f=new c(n)}if(l){if(typeof f!=="undefined"){h.add(f)}if(n.media){s=s.replace(/;|\s*$/,n.media)}h.add(s);h.add("\n")}else{if(typeof f!=="undefined"){p.add(f)}if(n.supports){p.add(`@supports (${n.supports}) {\n`)}if(n.media){p.add(`@media ${n.media} {\n`)}const r=typeof n.layer!=="undefined";if(r){p.add(`@layer${n.layer.length>0?` ${n.layer}`:""} {\n`)}const{path:l}=t.getPathWithInfo(o,a);const h=(0,i.getUndoPath)(l,e.outputPath,false);s=s.replace(new RegExp(i.ABSOLUTE_PUBLIC_PATH,"g"),"");s=s.replace(new RegExp(i.SINGLE_DOT_PATH_SEGMENT,"g"),".");s=s.replace(new RegExp(i.AUTO_PUBLIC_PATH,"g"),h);if(n.sourceMap){p.add(new d(s,u,n.sourceMap.toString()))}else{p.add(new c(s,u))}p.add("\n");if(r){p.add("}\n")}if(n.media){p.add("}\n")}if(n.supports){p.add("}\n")}}}return new l(h,p)}}MiniCssExtractPlugin.loader=__nccwpck_require__.ab+"loader.js";var h=MiniCssExtractPlugin;e["default"]=h})();module.exports=n})(); \ No newline at end of file +(()=>{"use strict";var e={722:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var s=_interopRequireDefault(n(188));var i=_interopRequireDefault(n(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:n,chunkGraph:s}=e;for(const e of n){const n=typeof s!=="undefined"?s.getModuleId(e):e.id;if(n===t){return e}}return null}function evalModuleCode(e,t,n){const i=new s.default(n,e);i.paths=s.default._nodeModulePaths(e.context);i.filename=n;i._compile(t,n);return i.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const o="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=o;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return i.default.posix.isAbsolute(e)||i.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const n=t.split("!");const{context:s}=e;return JSON.stringify(n.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const n=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&s){r=i.default.relative(s,r);if(isAbsolutePath(r)){return r+n}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+n})).join("!"))}function getUndoPath(e,t,n){let s=-1;let i="";t=t.replace(/[\\/]$/,"");for(const n of e.split(/[/\\]+/)){if(n===".."){if(s>-1){s--}else{const e=t.lastIndexOf("/");const n=t.lastIndexOf("\\");const s=e<0?n:n<0?e:Math.max(e,n);if(s<0){return`${t}/`}i=`${t.slice(s+1)}/${i}`;t=t.slice(0,s)}}else if(n!=="."){s++}}return s>0?`${"../".repeat(s)}${i}`:n?`./${i}`:i}},188:e=>{e.exports=require("module")},476:e=>{e.exports=require("next/dist/compiled/schema-utils3")},17:e=>{e.exports=require("path")},3:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin options","type":"object","additionalProperties":false,"properties":{"filename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of each output CSS file.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#filename"},"chunkFilename":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"This option determines the name of non-entry chunk files.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#chunkfilename"},"experimentalUseImportModule":{"type":"boolean","description":"Enable the experimental importModule approach instead of using child compilers. This uses less memory and is faster.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#experimentaluseimportmodule"},"ignoreOrder":{"type":"boolean","description":"Remove Order Warnings.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#ignoreorder"},"insert":{"description":"Inserts the `link` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#insert","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"attributes":{"description":"Adds custom attributes to the `link` tag for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#attributes","type":"object"},"linkType":{"anyOf":[{"enum":["text/css"]},{"type":"boolean"}],"description":"This option allows loading asynchronous chunks with a custom link type","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#linktype"},"runtime":{"type":"boolean","description":"Enabled/Disables runtime generation. CSS will be still extracted and can be used for a custom loading methods.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#noRuntime"}}}')}};var t={};function __nccwpck_require__(n){var s=t[n];if(s!==undefined){return s.exports}var i=t[n]={exports:{}};var r=true;try{e[n](i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:true});e.pluginSymbol=e.pluginName=e["default"]=void 0;var t=__nccwpck_require__(476);var s=_interopRequireDefault(__nccwpck_require__(3));var i=__nccwpck_require__(722);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const r="mini-css-extract-plugin";e.pluginName=r;const o=Symbol(r);e.pluginSymbol=o;const a="[name].css";const u=new Set([i.MODULE_TYPE]);const l={sources:new Map,runtimeRequirements:new Set};const d=new WeakMap;const c=new WeakMap;const p=new WeakSet;class MiniCssExtractPlugin{static getCssModule(e){if(d.has(e)){return d.get(e)}class CssModule extends e.Module{constructor({context:e,identifier:t,identifierIndex:n,content:s,layer:r,supports:o,media:a,sourceMap:u,assets:l,assetsInfo:d}){super(i.MODULE_TYPE,e);this.id="";this._context=e;this._identifier=t;this._identifierIndex=n;this.content=s;this.layer=r;this.supports=o;this.media=a;this.sourceMap=u;this.assets=l;this.assetsInfo=d;this._needBuild=true}size(){return this.content.length}identifier(){return`css|${this._identifier}|${this._identifierIndex}`}readableIdentifier(e){return`css ${e.shorten(this._identifier)}${this._identifierIndex?` (${this._identifierIndex})`:""}`}getSourceTypes(){return u}codeGeneration(){return l}nameForCondition(){const e=this._identifier.split("!").pop();const t=e.indexOf("?");if(t>=0){return e.substring(0,t)}return e}updateCacheModule(e){if(this.content!==e.content||this.layer!==e.layer||this.supports!==e.supports||this.media!==e.media||this.sourceMap!==e.sourceMap||this.assets!==e.assets||this.assetsInfo!==e.assetsInfo){this._needBuild=true;this.content=e.content;this.layer=e.layer;this.supports=e.supports;this.media=e.media;this.sourceMap=e.sourceMap;this.assets=e.assets;this.assetsInfo=e.assetsInfo}}needRebuild(){return this._needBuild}needBuild(e,t){t(null,this._needBuild)}build(e,t,n,s,i){this.buildInfo={assets:this.assets,assetsInfo:this.assetsInfo,cacheable:true,hash:this._computeHash(t.outputOptions.hashFunction)};this.buildMeta={};this._needBuild=false;i()}_computeHash(t){const n=e.util.createHash(t);n.update(this.content);if(this.layer){n.update(this.layer)}n.update(this.supports||"");n.update(this.media||"");n.update(this.sourceMap||"");return n.digest("hex")}updateHash(e,t){super.updateHash(e,t);e.update(this.buildInfo.hash)}serialize(e){const{write:t}=e;t(this._context);t(this._identifier);t(this._identifierIndex);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.assets);t(this.assetsInfo);t(this._needBuild);super.serialize(e)}deserialize(e){this._needBuild=e.read();super.deserialize(e)}}d.set(e,CssModule);e.util.serialization.register(CssModule,"mini-css-extract-plugin/dist/CssModule",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=t();const s=t();const i=t();const r=t();const o=t();const a=t();const u=t();const l=t();const d=t();const c=t();const p=new CssModule({context:n,identifier:s,identifierIndex:i,content:r,layer:o,supports:a,media:u,sourceMap:l,assets:d,assetsInfo:c});p.deserialize(e);return p}});return CssModule}static getCssDependency(e){if(c.has(e)){return c.get(e)}class CssDependency extends e.Dependency{constructor({identifier:e,content:t,layer:n,supports:s,media:i,sourceMap:r},o,a){super();this.identifier=e;this.identifierIndex=a;this.content=t;this.layer=n;this.supports=s;this.media=i;this.sourceMap=r;this.context=o;this.assets=undefined;this.assetsInfo=undefined}getResourceIdentifier(){return`css-module-${this.identifier}-${this.identifierIndex}`}getModuleEvaluationSideEffectsState(){return e.ModuleGraphConnection.TRANSITIVE_ONLY}serialize(e){const{write:t}=e;t(this.identifier);t(this.content);t(this.layer);t(this.supports);t(this.media);t(this.sourceMap);t(this.context);t(this.identifierIndex);t(this.assets);t(this.assetsInfo);super.serialize(e)}deserialize(e){super.deserialize(e)}}c.set(e,CssDependency);e.util.serialization.register(CssDependency,"mini-css-extract-plugin/dist/CssDependency",null,{serialize(e,t){e.serialize(t)},deserialize(e){const{read:t}=e;const n=new CssDependency({identifier:t(),content:t(),layer:t(),supports:t(),media:t(),sourceMap:t()},t(),t());const s=t();const i=t();n.assets=s;n.assetsInfo=i;n.deserialize(e);return n}});return CssDependency}constructor(e={}){(0,t.validate)(s.default,e,{baseDataPath:"options"});this._sortedModulesCache=new WeakMap;this.options=Object.assign({filename:a,ignoreOrder:false,experimentalUseImportModule:undefined,runtime:true},e);this.runtimeOptions={insert:e.insert,linkType:e.linkType===true||typeof e.linkType==="undefined"?"text/css":e.linkType,attributes:e.attributes};if(!this.options.chunkFilename){const{filename:e}=this.options;if(typeof e!=="function"){const t=e.includes("[name]");const n=e.includes("[id]");const s=e.includes("[chunkhash]");const i=e.includes("[contenthash]");if(s||i||t||n){this.options.chunkFilename=e}else{this.options.chunkFilename=e.replace(/(^|\/)([^/]*(?:\?|$))/,"$1[id].$2")}}else{this.options.chunkFilename="[id].css"}}}apply(e){const{webpack:t}=e;if(this.options.experimentalUseImportModule){if(typeof e.options.experiments.executeModule==="undefined"){e.options.experiments.executeModule=true}}if(!p.has(t)){p.add(t);t.util.serialization.registerLoader(/^mini-css-extract-plugin\//,i.trueFn)}const{splitChunks:n}=e.options.optimization;if(n){if(n.defaultSizeTypes.includes("...")){n.defaultSizeTypes.push(i.MODULE_TYPE)}}const s=MiniCssExtractPlugin.getCssModule(t);const a=MiniCssExtractPlugin.getCssDependency(t);const{NormalModule:u}=e.webpack;e.hooks.compilation.tap(r,(e=>{const{loader:t}=u.getCompilationHooks(e);t.tap(r,(e=>{e[o]={experimentalUseImportModule:this.options.experimentalUseImportModule}}))}));e.hooks.thisCompilation.tap(r,(n=>{class CssModuleFactory{create({dependencies:[e]},t){t(null,new s(e))}}n.dependencyFactories.set(a,new CssModuleFactory);class CssDependencyTemplate{apply(){}}n.dependencyTemplates.set(a,new CssDependencyTemplate);n.hooks.renderManifest.tap(r,((s,{chunk:o})=>{const{chunkGraph:a}=n;const{HotUpdateChunk:u}=t;if(o instanceof u){return}const l=Array.from(this.getChunkModules(o,a)).filter((e=>e.type===i.MODULE_TYPE));const d=o.canBeInitial()?this.options.filename:this.options.chunkFilename;if(l.length>0){s.push({render:()=>this.renderContentAsset(e,n,o,l,n.runtimeTemplate.requestShortener,d,{contentHashType:i.MODULE_TYPE,chunk:o}),filenameTemplate:d,pathOptions:{chunk:o,contentHashType:i.MODULE_TYPE},identifier:`${r}.${o.id}`,hash:o.contentHash[i.MODULE_TYPE]})}}));n.hooks.contentHash.tap(r,(t=>{const{outputOptions:s,chunkGraph:r}=n;const o=this.sortModules(n,t,r.getChunkModulesIterableBySourceType(t,i.MODULE_TYPE),n.runtimeTemplate.requestShortener);if(o){const{hashFunction:n,hashDigest:a,hashDigestLength:u}=s;const{createHash:l}=e.webpack.util;const d=l(n);for(const e of o){d.update(r.getModuleHash(e,t.runtime))}t.contentHash[i.MODULE_TYPE]=d.digest(a).substring(0,u)}}));if(!this.options.runtime){return}const{Template:o,RuntimeGlobals:u,RuntimeModule:l,runtime:d}=t;const getCssChunkObject=(e,t)=>{const n={};const{chunkGraph:s}=t;for(const t of e.getAllAsyncChunks()){const e=s.getOrderedChunkModulesIterable(t,i.compareModulesByIdentifier);for(const s of e){if(s.type===i.MODULE_TYPE){n[t.id]=1;break}}}return n};class CssLoadingRuntimeModule extends l{constructor(e,t){super("css loading",10);this.runtimeRequirements=e;this.runtimeOptions=t}generate(){const{chunk:e,runtimeRequirements:t}=this;const{runtimeTemplate:n,outputOptions:{crossOriginLoading:s}}=this.compilation;const i=getCssChunkObject(e,this.compilation);const r=t.has(u.ensureChunkHandlers)&&Object.keys(i).length>0;const a=t.has(u.hmrDownloadUpdateHandlers);if(!r&&!a){return null}return o.asString([`var createStylesheet = ${n.basicFunction("chunkId, fullhref, resolve, reject",['var linkTag = document.createElement("link");',this.runtimeOptions.attributes?o.asString(Object.entries(this.runtimeOptions.attributes).map((e=>{const[t,n]=e;return`linkTag.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(n)});`}))):"",'linkTag.rel = "stylesheet";',this.runtimeOptions.linkType?`linkTag.type = ${JSON.stringify(this.runtimeOptions.linkType)};`:"",`var onLinkComplete = ${n.basicFunction("event",["// avoid mem leaks.","linkTag.onerror = linkTag.onload = null;","if (event.type === 'load') {",o.indent(["resolve();"]),"} else {",o.indent(["var errorType = event && (event.type === 'load' ? 'missing' : event.type);","var realHref = event && event.target && event.target.href || fullhref;",'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");','err.code = "CSS_CHUNK_LOAD_FAILED";',"err.type = errorType;","err.request = realHref;","linkTag.parentNode.removeChild(linkTag)","reject(err);"]),"}"])}`,"linkTag.onerror = linkTag.onload = onLinkComplete;","linkTag.href = fullhref;",s?o.asString([`if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`,o.indent(`linkTag.crossOrigin = ${JSON.stringify(s)};`),"}"]):"",typeof this.runtimeOptions.insert!=="undefined"?typeof this.runtimeOptions.insert==="function"?`(${this.runtimeOptions.insert.toString()})(linkTag)`:o.asString([`var target = document.querySelector("${this.runtimeOptions.insert}");`,`target.parentNode.insertBefore(linkTag, target.nextSibling);`]):o.asString(["document.head.appendChild(linkTag);"]),"return linkTag;"])};`,`var findStylesheet = ${n.basicFunction("href, fullhref",['var existingLinkTags = document.getElementsByTagName("link");',"for(var i = 0; i < existingLinkTags.length; i++) {",o.indent(["var tag = existingLinkTags[i];",'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");','if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;']),"}",'var existingStyleTags = document.getElementsByTagName("style");',"for(var i = 0; i < existingStyleTags.length; i++) {",o.indent(["var tag = existingStyleTags[i];",'var dataHref = tag.getAttribute("data-href");',"if(dataHref === href || dataHref === fullhref) return tag;"]),"}"])};`,`var loadStylesheet = ${n.basicFunction("chunkId",`return new Promise(${n.basicFunction("resolve, reject",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"if(findStylesheet(href, fullhref)) return resolve();","createStylesheet(chunkId, fullhref, resolve, reject);"])});`)}`,r?o.asString(["// object to store loaded CSS chunks","var installedCssChunks = {",o.indent(e.ids.map((e=>`${JSON.stringify(e)}: 0`)).join(",\n")),"};","",`${u.ensureChunkHandlers}.miniCss = ${n.basicFunction("chunkId, promises",[`var cssChunks = ${JSON.stringify(i)};`,"if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);","else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {",o.indent([`promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${n.basicFunction("","installedCssChunks[chunkId] = 0;")}, ${n.basicFunction("e",["delete installedCssChunks[chunkId];","throw e;"])}));`]),"}"])};`]):"// no chunk loading","",a?o.asString(["var oldTags = [];","var newTags = [];",`var applyHandler = ${n.basicFunction("options",[`return { dispose: ${n.basicFunction("",["for(var i = 0; i < oldTags.length; i++) {",o.indent(["var oldTag = oldTags[i];","if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);"]),"}","oldTags.length = 0;"])}, apply: ${n.basicFunction("",['for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";',"newTags.length = 0;"])} };`])}`,`${u.hmrDownloadUpdateHandlers}.miniCss = ${n.basicFunction("chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList",["applyHandlers.push(applyHandler);",`chunkIds.forEach(${n.basicFunction("chunkId",[`var href = ${u.require}.miniCssF(chunkId);`,`var fullhref = ${u.publicPath} + href;`,"var oldTag = findStylesheet(href, fullhref);","if(!oldTag) return;",`promises.push(new Promise(${n.basicFunction("resolve, reject",[`var tag = createStylesheet(chunkId, fullhref, ${n.basicFunction("",['tag.as = "style";','tag.rel = "preload";',"resolve();"])}, reject);`,"oldTags.push(oldTag);","newTags.push(tag);"])}));`])});`])}`]):"// no hmr"])}}const c=new WeakSet;const handler=(e,t)=>{if(c.has(e)){return}c.add(e);if(typeof this.options.chunkFilename==="string"&&/\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename)){t.add(u.getFullHash)}t.add(u.publicPath);n.addRuntimeModule(e,new d.GetChunkFilenameRuntimeModule(i.MODULE_TYPE,"mini-css",`${u.require}.miniCssF`,(e=>{if(!e.contentHash[i.MODULE_TYPE]){return false}return e.canBeInitial()?this.options.filename:this.options.chunkFilename}),true));n.addRuntimeModule(e,new CssLoadingRuntimeModule(t,this.runtimeOptions))};n.hooks.runtimeRequirementInTree.for(u.ensureChunkHandlers).tap(r,handler);n.hooks.runtimeRequirementInTree.for(u.hmrDownloadUpdateHandlers).tap(r,handler)}))}getChunkModules(e,t){return typeof t!=="undefined"?t.getOrderedChunkModulesIterable(e,i.compareModulesByIdentifier):e.modulesIterable}sortModules(e,t,n,s){let i=this._sortedModulesCache.get(t);if(i||!n){return i}const o=[...n];const a=new Map(o.map((e=>[e,new Set])));const u=new Map(o.map((e=>[e,new Map])));const l=Array.from(t.groupsIterable,(e=>{const t=o.map((t=>({module:t,index:e.getModulePostOrderIndex(t)}))).filter((e=>e.index!==undefined)).sort(((e,t)=>t.index-e.index)).map((e=>e.module));for(let n=0;n!i.has(e);while(i.size0&&i.has(e[e.length-1])){e.pop()}if(e.length!==0){const t=e[e.length-1];const s=a.get(t);const r=Array.from(s).filter(unusedModulesFilter);if(!d||d.length>r.length){o=e;d=r}if(r.length===0){i.add(e.pop());n=true;break}}}if(!n){const n=o.pop();if(!this.options.ignoreOrder){const i=u.get(n);e.warnings.push(new Error([`chunk ${t.name||t.id} [${r}]`,"Conflicting order. Following module has been added:",` * ${n.readableIdentifier(s)}`,"despite it was not able to fulfill desired ordering with these modules:",...d.map((e=>{const t=u.get(e);const r=t&&t.get(n);const o=Array.from(i.get(e),(e=>e.name)).join(", ");const a=r&&Array.from(r,(e=>e.name)).join(", ");return[` * ${e.readableIdentifier(s)}`,` - couldn't fulfill desired order of chunk group(s) ${o}`,a&&` - while fulfilling desired order of chunk group(s) ${a}`].filter(Boolean).join("\n")}))].join("\n")))}i.add(n)}}this._sortedModulesCache.set(t,i);return i}renderContentAsset(e,t,n,s,r,o,a){const u=this.sortModules(t,n,s,r);const{ConcatSource:l,SourceMapSource:d,RawSource:c}=e.webpack.sources;const p=new l;const h=new l;for(const n of u){let s=n.content.toString();const u=n.readableIdentifier(r);const l=/^@import url/.test(s);let f;if(t.outputOptions.pathinfo){const e=u.replace(/\*\//g,"*_/");const t="*".repeat(e.length);const n=`/*!****${t}****!*\\\n !*** ${e} ***!\n \\****${t}****/\n`;f=new c(n)}if(l){if(typeof f!=="undefined"){h.add(f)}if(n.media){s=s.replace(/;|\s*$/,n.media)}h.add(s);h.add("\n")}else{if(typeof f!=="undefined"){p.add(f)}if(n.supports){p.add(`@supports (${n.supports}) {\n`)}if(n.media){p.add(`@media ${n.media} {\n`)}const r=typeof n.layer!=="undefined";if(r){p.add(`@layer${n.layer.length>0?` ${n.layer}`:""} {\n`)}const{path:l}=t.getPathWithInfo(o,a);const h=(0,i.getUndoPath)(l,e.outputPath,false);s=s.replace(new RegExp(i.ABSOLUTE_PUBLIC_PATH,"g"),"");s=s.replace(new RegExp(i.SINGLE_DOT_PATH_SEGMENT,"g"),".");s=s.replace(new RegExp(i.AUTO_PUBLIC_PATH,"g"),h);if(n.sourceMap){p.add(new d(s,u,n.sourceMap.toString()))}else{p.add(new c(s,u))}p.add("\n");if(r){p.add("}\n")}if(n.media){p.add("}\n")}if(n.supports){p.add("}\n")}}}return new l(h,p)}}MiniCssExtractPlugin.loader=__nccwpck_require__.ab+"loader.js";var h=MiniCssExtractPlugin;e["default"]=h})();module.exports=n})(); \ No newline at end of file diff --git a/packages/next/compiled/mini-css-extract-plugin/loader.js b/packages/next/compiled/mini-css-extract-plugin/loader.js index eb76fda0d71a..aa8aacb8fce5 100644 --- a/packages/next/compiled/mini-css-extract-plugin/loader.js +++ b/packages/next/compiled/mini-css-extract-plugin/loader.js @@ -1 +1 @@ -(()=>{"use strict";var e={154:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var n=_interopRequireDefault(i(188));var o=_interopRequireDefault(i(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:i,chunkGraph:n}=e;for(const e of i){const i=typeof n!=="undefined"?n.getModuleId(e):e.id;if(i===t){return e}}return null}function evalModuleCode(e,t,i){const o=new n.default(i,e);o.paths=n.default._nodeModulePaths(e.context);o.filename=i;o._compile(t,i);return o.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const s="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=s;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return o.default.posix.isAbsolute(e)||o.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const i=t.split("!");const{context:n}=e;return JSON.stringify(i.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const i=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&n){r=o.default.relative(n,r);if(isAbsolutePath(r)){return r+i}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+i})).join("!"))}function getUndoPath(e,t,i){let n=-1;let o="";t=t.replace(/[\\/]$/,"");for(const i of e.split(/[/\\]+/)){if(i===".."){if(n>-1){n--}else{const e=t.lastIndexOf("/");const i=t.lastIndexOf("\\");const n=e<0?i:i<0?e:Math.max(e,i);if(n<0){return`${t}/`}o=`${t.slice(n+1)}/${o}`;t=t.slice(0,n)}}else if(i!=="."){n++}}return n>0?`${"../".repeat(n)}${o}`:i?`./${o}`:o}},717:e=>{e.exports=require("./index.js")},188:e=>{e.exports=require("module")},17:e=>{e.exports=require("path")},230:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin Loader options","type":"object","additionalProperties":false,"properties":{"publicPath":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"Specifies a custom public path for the external resources like images, files, etc inside CSS.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#publicpath"},"emit":{"type":"boolean","description":"If true, emits a file (writes a file to the filesystem). If false, the plugin will extract the CSS but will not emit the file","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#emit"},"esModule":{"type":"boolean","description":"Generates JS modules that use the ES modules syntax.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#esmodule"},"layer":{"type":"string"}}}')}};var t={};function __nccwpck_require__(i){var n=t[i];if(n!==undefined){return n.exports}var o=t[i]={exports:{}};var r=true;try{e[i](o,o.exports,__nccwpck_require__);r=false}finally{if(r)delete t[i]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i={};(()=>{var e=i;Object.defineProperty(e,"__esModule",{value:true});e["default"]=_default;e.pitch=pitch;var t=_interopRequireDefault(__nccwpck_require__(17));var n=__nccwpck_require__(154);var o=_interopRequireDefault(__nccwpck_require__(230));var r=_interopRequireWildcard(__nccwpck_require__(717));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var i=new WeakMap;return(_getRequireWildcardCache=function(e){return e?i:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var i=_getRequireWildcardCache(t);if(i&&i.has(e)){return i.get(e)}var n={};var o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e){if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)){var s=o?Object.getOwnPropertyDescriptor(e,r):null;if(s&&(s.get||s.set)){Object.defineProperty(n,r,s)}else{n[r]=e[r]}}}n.default=e;if(i){i.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function hotLoader(e,i){const o=i.locals?"":"module.hot.accept(undefined, cssReload);";return`${e}\n if(module.hot) {\n // ${Date.now()}\n var cssReload = require(${(0,n.stringifyRequest)(i.context,t.default.join(__dirname,"hmr/hotModuleReplacement.js"))})(module.id, ${JSON.stringify({...i.options,locals:!!i.locals})});\n module.hot.dispose(cssReload);\n ${o}\n }\n `}function pitch(e){const t=this.getOptions(o.default);const i=this.async();const s=this[r.pluginSymbol];if(!s){i(new Error("You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started"));return}const{webpack:a}=this._compiler;const handleExports=(e,o,s,u)=>{let l;let c;const p=typeof t.esModule!=="undefined"?t.esModule:true;const addDependencies=e=>{if(!Array.isArray(e)&&e!=null){throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(e)}`)}const i=new Map;const n=typeof t.emit!=="undefined"?t.emit:true;let o;for(const t of e){if(!t.identifier||!n){continue}const e=i.get(t.identifier)||0;const s=r.default.getCssDependency(a);this._module.addDependency(o=new s(t,t.context,e));i.set(t.identifier,e+1)}if(o&&s){o.assets=s;o.assetsInfo=u}};try{const t=e.__esModule?e.default:e;c=e.__esModule&&(!e.default||!("locals"in e.default));if(c){Object.keys(e).forEach((t=>{if(t!=="default"){if(!l){l={}}l[t]=e[t]}}))}else{l=t&&t.locals}let i;if(!Array.isArray(t)){i=[[null,t]]}else{i=t.map((([e,t,i,r,s,a])=>{let u=e;let l;if(o){const t=(0,n.findModuleById)(o,e);u=t.identifier();({context:l}=t)}else{l=this.rootContext}return{identifier:u,context:l,content:Buffer.from(t),media:i,supports:s,layer:a,sourceMap:r?Buffer.from(JSON.stringify(r)):undefined}}))}addDependencies(i)}catch(e){return i(e)}const d=l?c?Object.keys(l).map((e=>`\nexport var ${e} = ${JSON.stringify(l[e])};`)).join(""):`\n${p?"export default":"module.exports ="} ${JSON.stringify(l)};`:p?`\nexport {};`:"";let f=`// extracted by ${r.pluginName}`;f+=this.hot?hotLoader(d,{context:this.context,options:t,locals:l}):d;return i(null,f)};let{publicPath:u}=this._compilation.outputOptions;if(typeof t.publicPath==="string"){u=t.publicPath}else if(typeof t.publicPath==="function"){u=t.publicPath(this.resourcePath,this.rootContext)}if(u==="auto"){u=n.AUTO_PUBLIC_PATH}if(typeof s.experimentalUseImportModule==="undefined"&&typeof this.importModule==="function"||s.experimentalUseImportModule){if(!this.importModule){i(new Error("You are using 'experimentalUseImportModule' but 'this.importModule' is not available in loader context. You need to have at least webpack 5.33.2."));return}const o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(u);const r=o?u:`${n.ABSOLUTE_PUBLIC_PATH}${u.replace(/\./g,n.SINGLE_DOT_PATH_SEGMENT)}`;this.importModule(`${this.resourcePath}.webpack[javascript/auto]!=!!!${e}`,{layer:t.layer,publicPath:r},((e,t)=>{if(e){i(e);return}handleExports(t)}));return}const l=this.loaders.slice(this.loaderIndex+1);this.addDependency(this.resourcePath);const c="*";const p={filename:c,publicPath:u};const d=this._compilation.createChildCompiler(`${r.pluginName} ${e}`,p);d.options.module={...d.options.module};d.options.module.parser={...d.options.module.parser};d.options.module.parser.javascript={...d.options.module.parser.javascript,url:"relative"};const{NodeTemplatePlugin:f}=a.node;const{NodeTargetPlugin:_}=a.node;new f(p).apply(d);(new _).apply(d);const{EntryOptionPlugin:h}=a;const{library:{EnableLibraryPlugin:m}}=a;new m("commonjs2").apply(d);h.applyEntryOption(d,this.context,{child:{library:{type:"commonjs2"},import:[`!!${e}`]}});const{LimitChunkCountPlugin:y}=a.optimize;new y({maxChunks:1}).apply(d);const{NormalModule:g}=a;d.hooks.thisCompilation.tap(`${r.pluginName} loader`,(t=>{const i=g.getCompilationHooks(t).loader;i.tap(`${r.pluginName} loader`,((t,i)=>{if(i.request===e){i.loaders=l.map((e=>({loader:e.path,options:e.options,ident:e.ident})))}}))}));let b;d.hooks.compilation.tap(r.pluginName,(e=>{e.hooks.processAssets.tap(r.pluginName,(()=>{b=e.assets[c]&&e.assets[c].source();e.chunks.forEach((t=>{t.files.forEach((t=>{e.deleteAsset(t)}))}))}))}));d.runAsChild(((t,o,r)=>{if(t){return i(t)}if(r.errors.length>0){return i(r.errors[0])}const s=Object.create(null);const a=new Map;for(const e of r.getAssets()){s[e.name]=e.source;a.set(e.name,e.info)}r.fileDependencies.forEach((e=>{this.addDependency(e)}),this);r.contextDependencies.forEach((e=>{this.addContextDependency(e)}),this);if(!b){return i(new Error("Didn't get a result from child compiler"))}let u;try{u=(0,n.evalModuleCode)(this,b,e)}catch(e){return i(e)}return handleExports(u,r,s,a)}))}function _default(e){console.log(e)}})();module.exports=i})(); \ No newline at end of file +(()=>{"use strict";var e={722:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:true});t.SINGLE_DOT_PATH_SEGMENT=t.MODULE_TYPE=t.AUTO_PUBLIC_PATH=t.ABSOLUTE_PUBLIC_PATH=void 0;t.compareModulesByIdentifier=compareModulesByIdentifier;t.evalModuleCode=evalModuleCode;t.findModuleById=findModuleById;t.getUndoPath=getUndoPath;t.stringifyRequest=stringifyRequest;t.trueFn=trueFn;var n=_interopRequireDefault(i(188));var o=_interopRequireDefault(i(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function trueFn(){return true}function findModuleById(e,t){const{modules:i,chunkGraph:n}=e;for(const e of i){const i=typeof n!=="undefined"?n.getModuleId(e):e.id;if(i===t){return e}}return null}function evalModuleCode(e,t,i){const o=new n.default(i,e);o.paths=n.default._nodeModulePaths(e.context);o.filename=i;o._compile(t,i);return o.exports}function compareIds(e,t){if(typeof e!==typeof t){return typeof et){return 1}return 0}function compareModulesByIdentifier(e,t){return compareIds(e.identifier(),t.identifier())}const r="css/mini-extract";t.MODULE_TYPE=r;const s="__mini_css_extract_plugin_public_path_auto__";t.AUTO_PUBLIC_PATH=s;const a="webpack:///mini-css-extract-plugin/";t.ABSOLUTE_PUBLIC_PATH=a;const u="__mini_css_extract_plugin_single_dot_path_segment__";t.SINGLE_DOT_PATH_SEGMENT=u;function isAbsolutePath(e){return o.default.posix.isAbsolute(e)||o.default.win32.isAbsolute(e)}const l=/^\.\.?[/\\]/;function isRelativePath(e){return l.test(e)}function stringifyRequest(e,t){if(typeof e.utils!=="undefined"&&typeof e.utils.contextify==="function"){return JSON.stringify(e.utils.contextify(e.context,t))}const i=t.split("!");const{context:n}=e;return JSON.stringify(i.map((e=>{const t=e.match(/^(.*?)(\?.*)/);const i=t?t[2]:"";let r=t?t[1]:e;if(isAbsolutePath(r)&&n){r=o.default.relative(n,r);if(isAbsolutePath(r)){return r+i}if(isRelativePath(r)===false){r=`./${r}`}}return r.replace(/\\/g,"/")+i})).join("!"))}function getUndoPath(e,t,i){let n=-1;let o="";t=t.replace(/[\\/]$/,"");for(const i of e.split(/[/\\]+/)){if(i===".."){if(n>-1){n--}else{const e=t.lastIndexOf("/");const i=t.lastIndexOf("\\");const n=e<0?i:i<0?e:Math.max(e,i);if(n<0){return`${t}/`}o=`${t.slice(n+1)}/${o}`;t=t.slice(0,n)}}else if(i!=="."){n++}}return n>0?`${"../".repeat(n)}${o}`:i?`./${o}`:o}},717:e=>{e.exports=require("./index.js")},188:e=>{e.exports=require("module")},17:e=>{e.exports=require("path")},594:e=>{e.exports=JSON.parse('{"title":"Mini CSS Extract Plugin Loader options","type":"object","additionalProperties":false,"properties":{"publicPath":{"anyOf":[{"type":"string"},{"instanceof":"Function"}],"description":"Specifies a custom public path for the external resources like images, files, etc inside CSS.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#publicpath"},"emit":{"type":"boolean","description":"If true, emits a file (writes a file to the filesystem). If false, the plugin will extract the CSS but will not emit the file","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#emit"},"esModule":{"type":"boolean","description":"Generates JS modules that use the ES modules syntax.","link":"https://github.com/webpack-contrib/mini-css-extract-plugin#esmodule"},"layer":{"type":"string"}}}')}};var t={};function __nccwpck_require__(i){var n=t[i];if(n!==undefined){return n.exports}var o=t[i]={exports:{}};var r=true;try{e[i](o,o.exports,__nccwpck_require__);r=false}finally{if(r)delete t[i]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i={};(()=>{var e=i;Object.defineProperty(e,"__esModule",{value:true});e["default"]=_default;e.pitch=pitch;var t=_interopRequireDefault(__nccwpck_require__(17));var n=__nccwpck_require__(722);var o=_interopRequireDefault(__nccwpck_require__(594));var r=_interopRequireWildcard(__nccwpck_require__(717));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var i=new WeakMap;return(_getRequireWildcardCache=function(e){return e?i:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var i=_getRequireWildcardCache(t);if(i&&i.has(e)){return i.get(e)}var n={};var o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e){if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)){var s=o?Object.getOwnPropertyDescriptor(e,r):null;if(s&&(s.get||s.set)){Object.defineProperty(n,r,s)}else{n[r]=e[r]}}}n.default=e;if(i){i.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function hotLoader(e,i){const o=i.locals?"":"module.hot.accept(undefined, cssReload);";return`${e}\n if(module.hot) {\n // ${Date.now()}\n var cssReload = require(${(0,n.stringifyRequest)(i.context,t.default.join(__dirname,"hmr/hotModuleReplacement.js"))})(module.id, ${JSON.stringify({...i.options,locals:!!i.locals})});\n module.hot.dispose(cssReload);\n ${o}\n }\n `}function pitch(e){const t=this.getOptions(o.default);const i=this.async();const s=this[r.pluginSymbol];if(!s){i(new Error("You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started"));return}const{webpack:a}=this._compiler;const handleExports=(e,o,s,u)=>{let l;let c;const p=typeof t.esModule!=="undefined"?t.esModule:true;const addDependencies=e=>{if(!Array.isArray(e)&&e!=null){throw new Error(`Exported value was not extracted as an array: ${JSON.stringify(e)}`)}const i=new Map;const n=typeof t.emit!=="undefined"?t.emit:true;let o;for(const t of e){if(!t.identifier||!n){continue}const e=i.get(t.identifier)||0;const s=r.default.getCssDependency(a);this._module.addDependency(o=new s(t,t.context,e));i.set(t.identifier,e+1)}if(o&&s){o.assets=s;o.assetsInfo=u}};try{const t=e.__esModule?e.default:e;c=e.__esModule&&(!e.default||!("locals"in e.default));if(c){Object.keys(e).forEach((t=>{if(t!=="default"){if(!l){l={}}l[t]=e[t]}}))}else{l=t&&t.locals}let i;if(!Array.isArray(t)){i=[[null,t]]}else{i=t.map((([e,t,i,r,s,a])=>{let u=e;let l;if(o){const t=(0,n.findModuleById)(o,e);u=t.identifier();({context:l}=t)}else{l=this.rootContext}return{identifier:u,context:l,content:Buffer.from(t),media:i,supports:s,layer:a,sourceMap:r?Buffer.from(JSON.stringify(r)):undefined}}))}addDependencies(i)}catch(e){return i(e)}const d=l?c?Object.keys(l).map((e=>`\nexport var ${e} = ${JSON.stringify(l[e])};`)).join(""):`\n${p?"export default":"module.exports ="} ${JSON.stringify(l)};`:p?`\nexport {};`:"";let f=`// extracted by ${r.pluginName}`;f+=this.hot?hotLoader(d,{context:this.context,options:t,locals:l}):d;return i(null,f)};let{publicPath:u}=this._compilation.outputOptions;if(typeof t.publicPath==="string"){u=t.publicPath}else if(typeof t.publicPath==="function"){u=t.publicPath(this.resourcePath,this.rootContext)}if(u==="auto"){u=n.AUTO_PUBLIC_PATH}if(typeof s.experimentalUseImportModule==="undefined"&&typeof this.importModule==="function"||s.experimentalUseImportModule){if(!this.importModule){i(new Error("You are using 'experimentalUseImportModule' but 'this.importModule' is not available in loader context. You need to have at least webpack 5.33.2."));return}const o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(u);const r=o?u:`${n.ABSOLUTE_PUBLIC_PATH}${u.replace(/\./g,n.SINGLE_DOT_PATH_SEGMENT)}`;this.importModule(`${this.resourcePath}.webpack[javascript/auto]!=!!!${e}`,{layer:t.layer,publicPath:r},((e,t)=>{if(e){i(e);return}handleExports(t)}));return}const l=this.loaders.slice(this.loaderIndex+1);this.addDependency(this.resourcePath);const c="*";const p={filename:c,publicPath:u};const d=this._compilation.createChildCompiler(`${r.pluginName} ${e}`,p);d.options.module={...d.options.module};d.options.module.parser={...d.options.module.parser};d.options.module.parser.javascript={...d.options.module.parser.javascript,url:"relative"};const{NodeTemplatePlugin:f}=a.node;const{NodeTargetPlugin:_}=a.node;new f(p).apply(d);(new _).apply(d);const{EntryOptionPlugin:h}=a;const{library:{EnableLibraryPlugin:m}}=a;new m("commonjs2").apply(d);h.applyEntryOption(d,this.context,{child:{library:{type:"commonjs2"},import:[`!!${e}`]}});const{LimitChunkCountPlugin:y}=a.optimize;new y({maxChunks:1}).apply(d);const{NormalModule:g}=a;d.hooks.thisCompilation.tap(`${r.pluginName} loader`,(t=>{const i=g.getCompilationHooks(t).loader;i.tap(`${r.pluginName} loader`,((t,i)=>{if(i.request===e){i.loaders=l.map((e=>({loader:e.path,options:e.options,ident:e.ident})))}}))}));let b;d.hooks.compilation.tap(r.pluginName,(e=>{e.hooks.processAssets.tap(r.pluginName,(()=>{b=e.assets[c]&&e.assets[c].source();e.chunks.forEach((t=>{t.files.forEach((t=>{e.deleteAsset(t)}))}))}))}));d.runAsChild(((t,o,r)=>{if(t){return i(t)}if(r.errors.length>0){return i(r.errors[0])}const s=Object.create(null);const a=new Map;for(const e of r.getAssets()){s[e.name]=e.source;a.set(e.name,e.info)}r.fileDependencies.forEach((e=>{this.addDependency(e)}),this);r.contextDependencies.forEach((e=>{this.addContextDependency(e)}),this);if(!b){return i(new Error("Didn't get a result from child compiler"))}let u;try{u=(0,n.evalModuleCode)(this,b,e)}catch(e){return i(e)}return handleExports(u,r,s,a)}))}function _default(e){console.log(e)}})();module.exports=i})(); \ No newline at end of file diff --git a/packages/next/compiled/sass-loader/cjs.js b/packages/next/compiled/sass-loader/cjs.js index e83ef689e55c..26dbe5b3c2c6 100644 --- a/packages/next/compiled/sass-loader/cjs.js +++ b/packages/next/compiled/sass-loader/cjs.js @@ -1 +1 @@ -(function(){var __webpack_modules__={814:function(e,t){function set(e,t,s){if(typeof s.value==="object")s.value=klona(s.value);if(!s.enumerable||s.get||s.set||!s.configurable||!s.writable||t==="__proto__"){Object.defineProperty(e,t,s)}else e[t]=s.value}function klona(e){if(typeof e!=="object")return e;var t=0,s,r,n,o=Object.prototype.toString.call(e);if(o==="[object Object]"){n=Object.create(e.__proto__||null)}else if(o==="[object Array]"){n=Array(e.length)}else if(o==="[object Set]"){n=new Set;e.forEach((function(e){n.add(klona(e))}))}else if(o==="[object Map]"){n=new Map;e.forEach((function(e,t){n.set(klona(t),klona(e))}))}else if(o==="[object Date]"){n=new Date(+e)}else if(o==="[object RegExp]"){n=new RegExp(e.source,e.flags)}else if(o==="[object DataView]"){n=new e.constructor(klona(e.buffer))}else if(o==="[object ArrayBuffer]"){n=e.slice(0)}else if(o.slice(-6)==="Array]"){n=new e.constructor(e)}if(n){for(r=Object.getOwnPropertySymbols(e);t{if(e){if(e.file){this.addDependency(r.default.normalize(e.file))}s(new a.default(e));return}let n=t.map?JSON.parse(t.map):null;if(n&&c){n=(0,o.normalizeSourceMap)(n,this.rootContext)}t.stats.includedFiles.forEach((e=>{const t=r.default.normalize(e);if(r.default.isAbsolute(t)){this.addDependency(t)}}));s(null,t.css.toString(),n)}))}var i=loader;t["default"]=i},429:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getRenderFunctionFromSassImplementation=getRenderFunctionFromSassImplementation;exports.getSassImplementation=getSassImplementation;exports.getSassOptions=getSassOptions;exports.getWebpackImporter=getWebpackImporter;exports.getWebpackResolver=getWebpackResolver;exports.isSupportedFibers=isSupportedFibers;exports.normalizeSourceMap=normalizeSourceMap;var _url=_interopRequireDefault(__nccwpck_require__(310));var _path=_interopRequireDefault(__nccwpck_require__(17));var _full=__nccwpck_require__(814);var _neoAsync=_interopRequireDefault(__nccwpck_require__(175));var _SassWarning=_interopRequireDefault(__nccwpck_require__(200));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getDefaultSassImplementation(){let sassImplPkg="sass";try{require.resolve("sass")}catch(error){try{eval("require.resolve('node-sass')");sassImplPkg="node-sass"}catch(e){sassImplPkg="sass"}}return require(sassImplPkg)}function getSassImplementation(e,t){let s=t;if(!s){try{s=getDefaultSassImplementation()}catch(t){e.emitError(t);return}}if(typeof s==="string"){try{s=require(s)}catch(t){e.emitError(t);return}}const{info:r}=s;if(!r){e.emitError(new Error("Unknown Sass implementation."));return}const n=r.split("\t");if(n.length<2){e.emitError(new Error(`Unknown Sass implementation "${r}".`));return}const[o]=n;if(o==="dart-sass"){return s}else if(o==="node-sass"){return s}e.emitError(new Error(`Unknown Sass implementation "${o}".`))}function isProductionLikeMode(e){return e.mode==="production"||!e.mode}function proxyCustomImporters(e,t){return[].concat(e).map((e=>function proxyImporter(...s){const r={...this,webpackLoaderContext:t};return e.apply(r,s)}))}function isSupportedFibers(){const[e]=process.versions.node.split(".");return Number(e)<16}async function getSassOptions(e,t,s,r,n){const o=(0,_full.klona)(t.sassOptions?typeof t.sassOptions==="function"?t.sassOptions(e)||{}:t.sassOptions:{});const a=r.info.includes("dart-sass");if(a&&isSupportedFibers()){const e=!o.fiber&&o.fiber!==false;if(e){let e;try{e=require.resolve("fibers")}catch(e){}if(e){o.fiber=require(e)}}else if(o.fiber===false){delete o.fiber}}else{delete o.fiber}o.file=e.resourcePath;o.data=t.additionalData?typeof t.additionalData==="function"?await t.additionalData(s,e):`${t.additionalData}\n${s}`:s;if(!o.outputStyle&&isProductionLikeMode(e)){o.outputStyle="compressed"}if(n){o.sourceMap=true;o.outFile=_path.default.join(e.rootContext,"style.css.map");o.sourceMapContents=true;o.omitSourceMapUrl=true;o.sourceMapEmbed=false}const{resourcePath:i}=e;const c=_path.default.extname(i);if(c&&c.toLowerCase()===".sass"&&typeof o.indentedSyntax==="undefined"){o.indentedSyntax=true}else{o.indentedSyntax=Boolean(o.indentedSyntax)}o.importer=o.importer?proxyCustomImporters(Array.isArray(o.importer)?o.importer:[o.importer],e):[];o.includePaths=[].concat(process.cwd()).concat((o.includePaths||[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);if(typeof o.charset==="undefined"){o.charset=true}if(!o.logger){const s=t.warnRuleAsWarning===true;const r=e.getLogger("sass-loader");const formatSpan=e=>`${e.url||"-"}:${e.start.line}:${e.start.column}: `;o.logger={debug(e,t){let s="";if(t.span){s=formatSpan(t.span)}s+=e;r.debug(s)},warn(t,n){let o="";if(n.deprecation){o+="Deprecation "}if(n.span&&!n.stack){o=formatSpan(n.span)}o+=t;if(n.stack){o+=`\n\n${n.stack}`}if(s){e.emitWarning(new _SassWarning.default(o,n))}else{r.warn(o)}}}}return o}const MODULE_REQUEST_REGEX=/^[^?]*~/;const IS_MODULE_IMPORT=/^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/]+\/)$/;function getPossibleRequests(e,t=false,s=false){let r=e;if(t){if(MODULE_REQUEST_REGEX.test(e)){r=r.replace(MODULE_REQUEST_REGEX,"")}if(IS_MODULE_IMPORT.test(e)){r=r[r.length-1]==="/"?r:`${r}/`;return[...new Set([r,e])]}}const n=_path.default.extname(r).toLowerCase();if(n===".css"){return[]}const o=_path.default.dirname(r);const a=o==="."?"":`${o}/`;const i=_path.default.basename(r);const c=_path.default.basename(r,n);return[...new Set([].concat(s?[`${a}_${c}.import${n}`,`${a}${c}.import${n}`]:[]).concat([`${a}_${i}`,`${a}${i}`]).concat(t?[e]:[]))]}function promiseResolve(e){return(t,s)=>new Promise(((r,n)=>{e(t,s,((e,t)=>{if(e){n(e)}else{r(t)}}))}))}const IS_SPECIAL_MODULE_IMPORT=/^~[^/]+$/;const IS_NATIVE_WIN32_PATH=/^[a-z]:[/\\]|^\\\\/i;function getWebpackResolver(e,t,s=[]){async function startResolving(e){if(e.length===0){return Promise.reject()}const[{possibleRequests:t}]=e;if(t.length===0){return Promise.reject()}const[{resolve:s,context:r}]=e;try{return await s(r,t[0])}catch(s){const[,...r]=t;if(r.length===0){const[,...t]=e;return startResolving(t)}e[0].possibleRequests=r;return startResolving(e)}}const r=t.info.includes("dart-sass");const n=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const o=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index.import","_index","index.import","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const a=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const i=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index.import","_index","index.import","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));return(e,t,c)=>{if(!r&&!_path.default.isAbsolute(e)){return Promise.reject()}const l=t;const u=l.slice(0,5).toLowerCase()==="file:";if(u){try{t=_url.default.fileURLToPath(l)}catch(e){t=t.slice(7)}}let p=[];const f=!IS_SPECIAL_MODULE_IMPORT.test(t)&&!u&&!l.startsWith("/")&&!IS_NATIVE_WIN32_PATH.test(l);if(s.length>0&&f){const a=getPossibleRequests(t,false,c);if(!r){p=p.concat({resolve:c?o:n,context:_path.default.dirname(e),possibleRequests:a})}p=p.concat(s.map((e=>({resolve:c?o:n,context:e,possibleRequests:a}))))}const d=getPossibleRequests(t,true,c);p=p.concat({resolve:c?i:a,context:_path.default.dirname(e),possibleRequests:d});return startResolving(p)}}const MATCH_CSS=/\.css$/i;function getWebpackImporter(e,t,s){const r=getWebpackResolver(e.getResolve,t,s);return function importer(t,s,n){const{fromImport:o}=this;r(s,t,o).then((t=>{e.addDependency(_path.default.normalize(t));n({file:t.replace(MATCH_CSS,"")})})).catch((()=>{n({file:t})}))}}let nodeSassJobQueue=null;function getRenderFunctionFromSassImplementation(e){const t=e.info.includes("dart-sass");if(t){return e.render.bind(e)}if(nodeSassJobQueue===null){const t=Number(process.env.UV_THREADPOOL_SIZE||4);nodeSassJobQueue=_neoAsync.default.queue(e.render.bind(e),t-1)}return nodeSassJobQueue.push.bind(nodeSassJobQueue)}const ABSOLUTE_SCHEME=/^[A-Za-z0-9+\-.]+:/;function getURLType(e){if(e[0]==="/"){if(e[1]==="/"){return"scheme-relative"}return"path-absolute"}if(IS_NATIVE_WIN32_PATH.test(e)){return"path-absolute"}return ABSOLUTE_SCHEME.test(e)?"absolute":"path-relative"}function normalizeSourceMap(e,t){const s=e;delete s.file;s.sourceRoot="";s.sources=s.sources.map((e=>{const s=getURLType(e);if(s==="path-relative"){return _path.default.resolve(t,_path.default.normalize(e))}return e}));return s}},175:function(e){"use strict";e.exports=require("next/dist/compiled/neo-async")},17:function(e){"use strict";e.exports=require("path")},310:function(e){"use strict";e.exports=require("url")},725:function(e){"use strict";e.exports=JSON.parse('{"title":"Sass Loader options","type":"object","properties":{"implementation":{"description":"The implementation of the sass to be used.","link":"https://github.com/webpack-contrib/sass-loader#implementation","anyOf":[{"type":"string"},{"type":"object"}]},"sassOptions":{"description":"Options for `node-sass` or `sass` (`Dart Sass`) implementation.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","anyOf":[{"type":"object","additionalProperties":true},{"instanceof":"Function"}]},"additionalData":{"description":"Prepends/Appends `Sass`/`SCSS` code before the actual entry file.","link":"https://github.com/webpack-contrib/sass-loader#additionaldata","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"sourceMap":{"description":"Enables/Disables generation of source maps.","link":"https://github.com/webpack-contrib/sass-loader#sourcemap","type":"boolean"},"webpackImporter":{"description":"Enables/Disables default `webpack` importer.","link":"https://github.com/webpack-contrib/sass-loader#webpackimporter","type":"boolean"},"warnRuleAsWarning":{"description":"Treats the \'@warn\' rule as a webpack warning.","link":"https://github.com/webpack-contrib/sass-loader#warnruleaswarning","type":"boolean"}},"additionalProperties":false}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(657);module.exports=__webpack_exports__})(); \ No newline at end of file +(function(){var __webpack_modules__={814:function(e,t){function set(e,t,s){if(typeof s.value==="object")s.value=klona(s.value);if(!s.enumerable||s.get||s.set||!s.configurable||!s.writable||t==="__proto__"){Object.defineProperty(e,t,s)}else e[t]=s.value}function klona(e){if(typeof e!=="object")return e;var t=0,s,r,n,o=Object.prototype.toString.call(e);if(o==="[object Object]"){n=Object.create(e.__proto__||null)}else if(o==="[object Array]"){n=Array(e.length)}else if(o==="[object Set]"){n=new Set;e.forEach((function(e){n.add(klona(e))}))}else if(o==="[object Map]"){n=new Map;e.forEach((function(e,t){n.set(klona(t),klona(e))}))}else if(o==="[object Date]"){n=new Date(+e)}else if(o==="[object RegExp]"){n=new RegExp(e.source,e.flags)}else if(o==="[object DataView]"){n=new e.constructor(klona(e.buffer))}else if(o==="[object ArrayBuffer]"){n=e.slice(0)}else if(o.slice(-6)==="Array]"){n=new e.constructor(e)}if(n){for(r=Object.getOwnPropertySymbols(e);t{if(e){if(e.file){this.addDependency(r.default.normalize(e.file))}s(new a.default(e));return}let n=t.map?JSON.parse(t.map):null;if(n&&c){n=(0,o.normalizeSourceMap)(n,this.rootContext)}t.stats.includedFiles.forEach((e=>{const t=r.default.normalize(e);if(r.default.isAbsolute(t)){this.addDependency(t)}}));s(null,t.css.toString(),n)}))}var i=loader;t["default"]=i},179:function(__unused_webpack_module,exports,__nccwpck_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getRenderFunctionFromSassImplementation=getRenderFunctionFromSassImplementation;exports.getSassImplementation=getSassImplementation;exports.getSassOptions=getSassOptions;exports.getWebpackImporter=getWebpackImporter;exports.getWebpackResolver=getWebpackResolver;exports.isSupportedFibers=isSupportedFibers;exports.normalizeSourceMap=normalizeSourceMap;var _url=_interopRequireDefault(__nccwpck_require__(310));var _path=_interopRequireDefault(__nccwpck_require__(17));var _full=__nccwpck_require__(814);var _neoAsync=_interopRequireDefault(__nccwpck_require__(175));var _SassWarning=_interopRequireDefault(__nccwpck_require__(66));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getDefaultSassImplementation(){let sassImplPkg="sass";try{require.resolve("sass")}catch(error){try{eval("require.resolve('node-sass')");sassImplPkg="node-sass"}catch(e){sassImplPkg="sass"}}return require(sassImplPkg)}function getSassImplementation(e,t){let s=t;if(!s){try{s=getDefaultSassImplementation()}catch(t){e.emitError(t);return}}if(typeof s==="string"){try{s=require(s)}catch(t){e.emitError(t);return}}const{info:r}=s;if(!r){e.emitError(new Error("Unknown Sass implementation."));return}const n=r.split("\t");if(n.length<2){e.emitError(new Error(`Unknown Sass implementation "${r}".`));return}const[o]=n;if(o==="dart-sass"){return s}else if(o==="node-sass"){return s}e.emitError(new Error(`Unknown Sass implementation "${o}".`))}function isProductionLikeMode(e){return e.mode==="production"||!e.mode}function proxyCustomImporters(e,t){return[].concat(e).map((e=>function proxyImporter(...s){const r={...this,webpackLoaderContext:t};return e.apply(r,s)}))}function isSupportedFibers(){const[e]=process.versions.node.split(".");return Number(e)<16}async function getSassOptions(e,t,s,r,n){const o=(0,_full.klona)(t.sassOptions?typeof t.sassOptions==="function"?t.sassOptions(e)||{}:t.sassOptions:{});const a=r.info.includes("dart-sass");if(a&&isSupportedFibers()){const e=!o.fiber&&o.fiber!==false;if(e){let e;try{e=require.resolve("fibers")}catch(e){}if(e){o.fiber=require(e)}}else if(o.fiber===false){delete o.fiber}}else{delete o.fiber}o.file=e.resourcePath;o.data=t.additionalData?typeof t.additionalData==="function"?await t.additionalData(s,e):`${t.additionalData}\n${s}`:s;if(!o.outputStyle&&isProductionLikeMode(e)){o.outputStyle="compressed"}if(n){o.sourceMap=true;o.outFile=_path.default.join(e.rootContext,"style.css.map");o.sourceMapContents=true;o.omitSourceMapUrl=true;o.sourceMapEmbed=false}const{resourcePath:i}=e;const c=_path.default.extname(i);if(c&&c.toLowerCase()===".sass"&&typeof o.indentedSyntax==="undefined"){o.indentedSyntax=true}else{o.indentedSyntax=Boolean(o.indentedSyntax)}o.importer=o.importer?proxyCustomImporters(Array.isArray(o.importer)?o.importer:[o.importer],e):[];o.includePaths=[].concat(process.cwd()).concat((o.includePaths||[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);if(typeof o.charset==="undefined"){o.charset=true}if(!o.logger){const s=t.warnRuleAsWarning===true;const r=e.getLogger("sass-loader");const formatSpan=e=>`${e.url||"-"}:${e.start.line}:${e.start.column}: `;o.logger={debug(e,t){let s="";if(t.span){s=formatSpan(t.span)}s+=e;r.debug(s)},warn(t,n){let o="";if(n.deprecation){o+="Deprecation "}if(n.span&&!n.stack){o=formatSpan(n.span)}o+=t;if(n.stack){o+=`\n\n${n.stack}`}if(s){e.emitWarning(new _SassWarning.default(o,n))}else{r.warn(o)}}}}return o}const MODULE_REQUEST_REGEX=/^[^?]*~/;const IS_MODULE_IMPORT=/^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/]+\/)$/;function getPossibleRequests(e,t=false,s=false){let r=e;if(t){if(MODULE_REQUEST_REGEX.test(e)){r=r.replace(MODULE_REQUEST_REGEX,"")}if(IS_MODULE_IMPORT.test(e)){r=r[r.length-1]==="/"?r:`${r}/`;return[...new Set([r,e])]}}const n=_path.default.extname(r).toLowerCase();if(n===".css"){return[]}const o=_path.default.dirname(r);const a=o==="."?"":`${o}/`;const i=_path.default.basename(r);const c=_path.default.basename(r,n);return[...new Set([].concat(s?[`${a}_${c}.import${n}`,`${a}${c}.import${n}`]:[]).concat([`${a}_${i}`,`${a}${i}`]).concat(t?[e]:[]))]}function promiseResolve(e){return(t,s)=>new Promise(((r,n)=>{e(t,s,((e,t)=>{if(e){n(e)}else{r(t)}}))}))}const IS_SPECIAL_MODULE_IMPORT=/^~[^/]+$/;const IS_NATIVE_WIN32_PATH=/^[a-z]:[/\\]|^\\\\/i;function getWebpackResolver(e,t,s=[]){async function startResolving(e){if(e.length===0){return Promise.reject()}const[{possibleRequests:t}]=e;if(t.length===0){return Promise.reject()}const[{resolve:s,context:r}]=e;try{return await s(r,t[0])}catch(s){const[,...r]=t;if(r.length===0){const[,...t]=e;return startResolving(t)}e[0].possibleRequests=r;return startResolving(e)}}const r=t.info.includes("dart-sass");const n=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const o=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index.import","_index","index.import","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const a=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const i=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style"],mainFields:["sass","style","main","..."],mainFiles:["_index.import","_index","index.import","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));return(e,t,c)=>{if(!r&&!_path.default.isAbsolute(e)){return Promise.reject()}const l=t;const u=l.slice(0,5).toLowerCase()==="file:";if(u){try{t=_url.default.fileURLToPath(l)}catch(e){t=t.slice(7)}}let p=[];const f=!IS_SPECIAL_MODULE_IMPORT.test(t)&&!u&&!l.startsWith("/")&&!IS_NATIVE_WIN32_PATH.test(l);if(s.length>0&&f){const a=getPossibleRequests(t,false,c);if(!r){p=p.concat({resolve:c?o:n,context:_path.default.dirname(e),possibleRequests:a})}p=p.concat(s.map((e=>({resolve:c?o:n,context:e,possibleRequests:a}))))}const d=getPossibleRequests(t,true,c);p=p.concat({resolve:c?i:a,context:_path.default.dirname(e),possibleRequests:d});return startResolving(p)}}const MATCH_CSS=/\.css$/i;function getWebpackImporter(e,t,s){const r=getWebpackResolver(e.getResolve,t,s);return function importer(t,s,n){const{fromImport:o}=this;r(s,t,o).then((t=>{e.addDependency(_path.default.normalize(t));n({file:t.replace(MATCH_CSS,"")})})).catch((()=>{n({file:t})}))}}let nodeSassJobQueue=null;function getRenderFunctionFromSassImplementation(e){const t=e.info.includes("dart-sass");if(t){return e.render.bind(e)}if(nodeSassJobQueue===null){const t=Number(process.env.UV_THREADPOOL_SIZE||4);nodeSassJobQueue=_neoAsync.default.queue(e.render.bind(e),t-1)}return nodeSassJobQueue.push.bind(nodeSassJobQueue)}const ABSOLUTE_SCHEME=/^[A-Za-z0-9+\-.]+:/;function getURLType(e){if(e[0]==="/"){if(e[1]==="/"){return"scheme-relative"}return"path-absolute"}if(IS_NATIVE_WIN32_PATH.test(e)){return"path-absolute"}return ABSOLUTE_SCHEME.test(e)?"absolute":"path-relative"}function normalizeSourceMap(e,t){const s=e;delete s.file;s.sourceRoot="";s.sources=s.sources.map((e=>{const s=getURLType(e);if(s==="path-relative"){return _path.default.resolve(t,_path.default.normalize(e))}return e}));return s}},175:function(e){"use strict";e.exports=require("next/dist/compiled/neo-async")},17:function(e){"use strict";e.exports=require("path")},310:function(e){"use strict";e.exports=require("url")},615:function(e){"use strict";e.exports=JSON.parse('{"title":"Sass Loader options","type":"object","properties":{"implementation":{"description":"The implementation of the sass to be used.","link":"https://github.com/webpack-contrib/sass-loader#implementation","anyOf":[{"type":"string"},{"type":"object"}]},"sassOptions":{"description":"Options for `node-sass` or `sass` (`Dart Sass`) implementation.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","anyOf":[{"type":"object","additionalProperties":true},{"instanceof":"Function"}]},"additionalData":{"description":"Prepends/Appends `Sass`/`SCSS` code before the actual entry file.","link":"https://github.com/webpack-contrib/sass-loader#additionaldata","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"sourceMap":{"description":"Enables/Disables generation of source maps.","link":"https://github.com/webpack-contrib/sass-loader#sourcemap","type":"boolean"},"webpackImporter":{"description":"Enables/Disables default `webpack` importer.","link":"https://github.com/webpack-contrib/sass-loader#webpackimporter","type":"boolean"},"warnRuleAsWarning":{"description":"Treats the \'@warn\' rule as a webpack warning.","link":"https://github.com/webpack-contrib/sass-loader#warnruleaswarning","type":"boolean"}},"additionalProperties":false}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(172);module.exports=__webpack_exports__})(); \ No newline at end of file From 6b829d8bd6f829ce17dd8557ec3eb04bd6aa5f3a Mon Sep 17 00:00:00 2001 From: Andrei Stefan Date: Thu, 16 Jun 2022 05:13:52 +0300 Subject: [PATCH 054/149] fix(eslint): allow in conjunction with (#37504) (#37570) * fix(eslint): allow in conjunction with (#37504) * Apply suggestions from code review * add space Co-authored-by: JJ Kasper --- errors/no-img-element.md | 19 ++++++- .../lib/rules/no-img-element.js | 4 ++ .../eslint-plugin-next/no-img-element.test.ts | 56 ++++++++++++++++++- 3 files changed, 77 insertions(+), 2 deletions(-) diff --git a/errors/no-img-element.md b/errors/no-img-element.md index db4d31f363f2..1e4d9f651442 100644 --- a/errors/no-img-element.md +++ b/errors/no-img-element.md @@ -4,7 +4,7 @@ ### Why This Error Occurred -An `` element was used to display an image. For better performance and automatic Image Optimization, use `next/image` instead. +An `` element was used to display an image. Use either `` in conjunction with `` element, or use `next/image` that has better performance and automatic Image Optimization over ``. ### Possible Ways to Fix It @@ -29,6 +29,23 @@ function Home() { export default Home ``` +
+ +Use `` in conjunction with `` element: + +```jsx +function Home() { + return ( + <> + + + Landscape picture + + + ) +} +``` + ### Useful Links - [Image Component and Image Optimization](https://nextjs.org/docs/basic-features/image-optimization) diff --git a/packages/eslint-plugin-next/lib/rules/no-img-element.js b/packages/eslint-plugin-next/lib/rules/no-img-element.js index a9fcbf2bb1c0..8724474ce3b9 100644 --- a/packages/eslint-plugin-next/lib/rules/no-img-element.js +++ b/packages/eslint-plugin-next/lib/rules/no-img-element.js @@ -22,6 +22,10 @@ module.exports = { return } + if (node.parent?.parent?.openingElement?.name?.name === 'picture') { + return + } + context.report({ node, message: `Do not use \`\` element. Use \`\` from \`next/image\` instead. See: ${url}`, diff --git a/test/unit/eslint-plugin-next/no-img-element.test.ts b/test/unit/eslint-plugin-next/no-img-element.test.ts index e9d255a64d5d..18efcff88a4d 100644 --- a/test/unit/eslint-plugin-next/no-img-element.test.ts +++ b/test/unit/eslint-plugin-next/no-img-element.test.ts @@ -30,6 +30,36 @@ ruleTester.run('no-img-element', rule, { ); } }`, + `export class MyComponent { + render() { + return ( + + Test picture + + ); + } + }`, + `export class MyComponent { + render() { + return ( +
+ + + Test picture + +
+ ); + } + }`, ], invalid: [ { @@ -51,7 +81,31 @@ ruleTester.run('no-img-element', rule, { errors: [ { message: - 'Do not use `` element. Use `` from `next/image` instead. See: https://nextjs.org/docs/messages/no-img-element', + 'Do not use `` element. Use `` from `next/image` instead. ' + + 'See: https://nextjs.org/docs/messages/no-img-element', + type: 'JSXOpeningElement', + }, + ], + }, + { + code: ` + export class MyComponent { + render() { + return ( + Test picture + ); + } + }`, + errors: [ + { + message: + 'Do not use `` element. Use `` from `next/image` instead. ' + + 'See: https://nextjs.org/docs/messages/no-img-element', type: 'JSXOpeningElement', }, ], From ea89854e3297364fcd44e3ae77adffe36b2be54e Mon Sep 17 00:00:00 2001 From: Frankie Date: Wed, 15 Jun 2022 19:21:31 -0700 Subject: [PATCH 055/149] Update Ghost CMS Example: Accept-Version Header API requirement, typo (#37737) * Update next.config.js Fix typo on next config * Update api.js Update Ghost's content-api version `Accept-Version: v{major}.{minor}` requirement Co-authored-by: JJ Kasper --- examples/cms-ghost/lib/api.js | 2 +- examples/cms-ghost/next.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/cms-ghost/lib/api.js b/examples/cms-ghost/lib/api.js index b3221e74e118..d870198f6ba9 100644 --- a/examples/cms-ghost/lib/api.js +++ b/examples/cms-ghost/lib/api.js @@ -7,7 +7,7 @@ const GHOST_API_KEY = process.env.GHOST_API_KEY || GHOST_API_KEY_DEFAULT const api = new GhostContentAPI({ url: GHOST_API_URL, key: GHOST_API_KEY, - version: 'v3', + version: 'v3.0', }) const is404 = (error) => /not found/i.test(error.message) diff --git a/examples/cms-ghost/next.config.js b/examples/cms-ghost/next.config.js index e37e5c8b9a6b..bdd3fa3f3a8e 100644 --- a/examples/cms-ghost/next.config.js +++ b/examples/cms-ghost/next.config.js @@ -1,5 +1,5 @@ module.exports = { images: { - domains: ['static.gotsby.org'], + domains: ['static.ghost.org'], }, } From 0bf9233e141a82ef49d28f1965205fe4042ef572 Mon Sep 17 00:00:00 2001 From: Seiya Nuta Date: Thu, 16 Jun 2022 23:59:30 +0900 Subject: [PATCH 056/149] [middleware] Warn dynamic WASM compilation (#37681) In Middlewares, dynamic code execution is not allowed. Currently, we warn if eval / new Function are invoked in dev but don't warn another dynamic code execution in WebAssembly. This PR adds warnings for `WebAssembly.compile` and `WebAssembly.instantiate` with a buffer parameter (note that `WebAssembly.instantiate` with a **module** parameter is legit) invocations. Note that other methods that compile WASM dynamically such as `WebAssembly.compileStreaming` are not exposed to users so we don't need to cover them. ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [x] Integration tests added - [x] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [x] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- errors/manifest.json | 4 ++ errors/middleware-dynamic-wasm-compilation.md | 27 ++++++++ .../webpack/plugins/middleware-plugin.ts | 62 +++++++++++++++++- packages/next/server/web/sandbox/context.ts | 43 ++++++++++++ .../middleware-dynamic-code/lib/square.wasm | Bin 0 -> 63 bytes .../middleware-dynamic-code/lib/wasm.js | 35 ++++++++++ .../middleware-dynamic-code/middleware.js | 27 ++++++++ .../middleware-dynamic-code/next.config.js | 6 ++ .../test/index.test.js | 59 +++++++++++++++-- .../index.test.ts | 58 ++++++++++++++-- .../middleware-with-dynamic-code/square.wasm | Bin 0 -> 63 bytes 11 files changed, 309 insertions(+), 12 deletions(-) create mode 100644 errors/middleware-dynamic-wasm-compilation.md create mode 100644 test/integration/middleware-dynamic-code/lib/square.wasm create mode 100644 test/integration/middleware-dynamic-code/lib/wasm.js create mode 100644 test/integration/middleware-dynamic-code/next.config.js create mode 100644 test/production/middleware-with-dynamic-code/square.wasm diff --git a/errors/manifest.json b/errors/manifest.json index 4205dc491e8f..23129300371a 100644 --- a/errors/manifest.json +++ b/errors/manifest.json @@ -699,6 +699,10 @@ { "title": "get-initial-props-export", "path": "/errors/get-initial-props-export.md" + }, + { + "title": "middleware-dynamic-wasm-compilation", + "path": "/errors/middleware-dynamic-wasm-compilation.md" } ] } diff --git a/errors/middleware-dynamic-wasm-compilation.md b/errors/middleware-dynamic-wasm-compilation.md new file mode 100644 index 000000000000..7b5272a41d50 --- /dev/null +++ b/errors/middleware-dynamic-wasm-compilation.md @@ -0,0 +1,27 @@ +# Dynamic WASM compilation is not available in Middlewares + +#### Why This Error Occurred + +Compiling WASM binaries dynamically is not allowed in Middlewares. Specifically, +the following APIs are not supported: + +- `WebAssembly.compile` +- `WebAssembly.instantiate` with [a buffer parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate#primary_overload_%E2%80%94_taking_wasm_binary_code) + +#### Possible Ways to Fix It + +Bundle your WASM binaries using `import`: + +```typescript +import { NextResponse } from 'next/server' +import squareWasm from './square.wasm?module' + +export default async function middleware() { + const m = await WebAssembly.instantiate(squareWasm) + const answer = m.exports.square(9) + + const response = NextResponse.next() + response.headers.set('x-square', answer.toString()) + return response +} +``` diff --git a/packages/next/build/webpack/plugins/middleware-plugin.ts b/packages/next/build/webpack/plugins/middleware-plugin.ts index bcf9ea94e061..8fa4bbf2ab50 100644 --- a/packages/next/build/webpack/plugins/middleware-plugin.ts +++ b/packages/next/build/webpack/plugins/middleware-plugin.ts @@ -138,6 +138,60 @@ function getCodeAnalizer(params: { return true } + /** + * This expression handler allows to wrap a WebAssembly.compile invocation with a + * function call where we can warn about WASM code generation not being allowed + * but actually execute the expression. + */ + const handleWrapWasmCompileExpression = (expr: any) => { + if (!isInMiddlewareLayer(parser)) { + return + } + + if (dev) { + const { ConstDependency } = wp.dependencies + const dep1 = new ConstDependency( + '__next_webassembly_compile__(function() { return ', + expr.range[0] + ) + dep1.loc = expr.loc + parser.state.module.addPresentationalDependency(dep1) + const dep2 = new ConstDependency('})', expr.range[1]) + dep2.loc = expr.loc + parser.state.module.addPresentationalDependency(dep2) + } + + handleExpression() + } + + /** + * This expression handler allows to wrap a WebAssembly.instatiate invocation with a + * function call where we can warn about WASM code generation not being allowed + * but actually execute the expression. + * + * Note that we don't update `usingIndirectEval`, i.e. we don't abort a production build + * since we can't determine statically if the first parameter is a module (legit use) or + * a buffer (dynamic code generation). + */ + const handleWrapWasmInstantiateExpression = (expr: any) => { + if (!isInMiddlewareLayer(parser)) { + return + } + + if (dev) { + const { ConstDependency } = wp.dependencies + const dep1 = new ConstDependency( + '__next_webassembly_instantiate__(function() { return ', + expr.range[0] + ) + dep1.loc = expr.loc + parser.state.module.addPresentationalDependency(dep1) + const dep2 = new ConstDependency('})', expr.range[1]) + dep2.loc = expr.loc + parser.state.module.addPresentationalDependency(dep2) + } + } + /** * For an expression this will check the graph to ensure it is being used * by exports. Then it will store in the module buildInfo a boolean to @@ -232,6 +286,12 @@ function getCodeAnalizer(params: { hooks.new.for(`${prefix}Function`).tap(NAME, handleWrapExpression) hooks.expression.for(`${prefix}eval`).tap(NAME, handleExpression) hooks.expression.for(`${prefix}Function`).tap(NAME, handleExpression) + hooks.call + .for(`${prefix}WebAssembly.compile`) + .tap(NAME, handleWrapWasmCompileExpression) + hooks.call + .for(`${prefix}WebAssembly.instantiate`) + .tap(NAME, handleWrapWasmInstantiateExpression) } hooks.new.for('Response').tap(NAME, handleNewResponseExpression) hooks.new.for('NextResponse').tap(NAME, handleNewResponseExpression) @@ -331,7 +391,7 @@ function getExtractMetadata(params: { } const error = new wp.WebpackError( - `Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware ${entryName}${ + `Dynamic Code Evaluation (e. g. 'eval', 'new Function', 'WebAssembly.compile') not allowed in Middleware ${entryName}${ typeof buildInfo.usingIndirectEval !== 'boolean' ? `\nUsed by ${Array.from(buildInfo.usingIndirectEval).join( ', ' diff --git a/packages/next/server/web/sandbox/context.ts b/packages/next/server/web/sandbox/context.ts index 9ce6300460a5..f137a42e846e 100644 --- a/packages/next/server/web/sandbox/context.ts +++ b/packages/next/server/web/sandbox/context.ts @@ -99,6 +99,7 @@ export async function getModuleContext(options: ModuleContextOptions) { */ async function createModuleContext(options: ModuleContextOptions) { const warnedEvals = new Set() + const warnedWasmCodegens = new Set() const wasm = await loadWasm(options.wasm) const runtime = new EdgeRuntime({ codeGeneration: @@ -122,6 +123,48 @@ async function createModuleContext(options: ModuleContextOptions) { return fn() } + context.__next_webassembly_compile__ = + function __next_webassembly_compile__(fn: Function) { + const key = fn.toString() + if (!warnedWasmCodegens.has(key)) { + const warning = new Error( + "Dynamic WASM code generation (e. g. 'WebAssembly.compile') not allowed in Middleware.\n" + + 'Learn More: https://nextjs.org/docs/messages/middleware-dynamic-wasm-compilation' + ) + warning.name = 'DynamicWasmCodeGenerationWarning' + Error.captureStackTrace(warning, __next_webassembly_compile__) + warnedWasmCodegens.add(key) + options.onWarning(warning) + } + return fn() + } + + context.__next_webassembly_instantiate__ = + async function __next_webassembly_instantiate__(fn: Function) { + const result = await fn() + + // If a buffer is given, WebAssembly.instantiate returns an object + // containing both a module and an instance while it returns only an + // instance if a WASM module is given. Utilize the fact to determine + // if the WASM code generation happens. + // + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate#primary_overload_%E2%80%94_taking_wasm_binary_code + const instantiatedFromBuffer = result.hasOwnProperty('module') + + const key = fn.toString() + if (instantiatedFromBuffer && !warnedWasmCodegens.has(key)) { + const warning = new Error( + "Dynamic WASM code generation ('WebAssembly.instantiate' with a buffer parameter) not allowed in Middleware.\n" + + 'Learn More: https://nextjs.org/docs/messages/middleware-dynamic-wasm-compilation' + ) + warning.name = 'DynamicWasmCodeGenerationWarning' + Error.captureStackTrace(warning, __next_webassembly_instantiate__) + warnedWasmCodegens.add(key) + options.onWarning(warning) + } + return result + } + const __fetch = context.fetch context.fetch = (input: RequestInfo, init: RequestInit = {}) => { init.headers = new Headers(init.headers ?? {}) diff --git a/test/integration/middleware-dynamic-code/lib/square.wasm b/test/integration/middleware-dynamic-code/lib/square.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f836887dda8004a4f54c3897c1d349b676293119 GIT binary patch literal 63 zcmWN { const json = JSON.parse(res.headers.get('data')) await waitFor(500) expect(json.value).toEqual(100) - expect(output).toContain(DYNAMIC_CODE_ERROR) + expect(output).toContain(EVAL_ERROR) expect(output).toContain('DynamicCodeEvaluationWarning') expect(output).toContain('./middleware') // TODO check why that has a backslash on windows @@ -57,14 +60,62 @@ describe('Middleware usage of dynamic code evaluation', () => { const json = JSON.parse(res.headers.get('data')) await waitFor(500) expect(json.value).toEqual(100) - expect(output).not.toContain(DYNAMIC_CODE_ERROR) + expect(output).not.toContain('Dynamic Code Evaluation') }) it('does not has problems with eval in page or server code', async () => { const html = await renderViaHTTP(context.appPort, `/`) expect(html).toMatch(/>.*?100.*?and.*?100.*?<\//) await waitFor(500) - expect(output).not.toContain(DYNAMIC_CODE_ERROR) + expect(output).not.toContain('Dynamic Code Evaluation') + }) + + it('shows a warning when running WebAssembly.compile', async () => { + const res = await fetchViaHTTP( + context.appPort, + `/using-webassembly-compile` + ) + const json = JSON.parse(res.headers.get('data')) + await waitFor(500) + expect(json.value).toEqual(81) + expect(output).toContain(WASM_COMPILE_ERROR) + expect(output).toContain('DynamicWasmCodeGenerationWarning') + expect(output).toContain('./middleware') + expect(output).toMatch(/lib[\\/]wasm\.js/) + expect(output).toContain('usingWebAssemblyCompile') + expect(stripAnsi(output)).toContain( + 'await WebAssembly.compile(SQUARE_WASM_BUFFER)' + ) + }) + + it('shows a warning when running WebAssembly.instantiate w/ a buffer parameter', async () => { + const res = await fetchViaHTTP( + context.appPort, + `/using-webassembly-instantiate-with-buffer` + ) + const json = JSON.parse(res.headers.get('data')) + await waitFor(500) + expect(json.value).toEqual(81) + expect(output).toContain(WASM_INSTANTIATE_ERROR) + expect(output).toContain('DynamicWasmCodeGenerationWarning') + expect(output).toContain('./middleware') + expect(output).toMatch(/lib[\\/]wasm\.js/) + expect(output).toContain('usingWebAssemblyInstantiateWithBuffer') + expect(stripAnsi(output)).toContain( + 'await WebAssembly.instantiate(SQUARE_WASM_BUFFER, {})' + ) + }) + + it('does not show a warning when running WebAssembly.instantiate w/ a module parameter', async () => { + const res = await fetchViaHTTP( + context.appPort, + `/using-webassembly-instantiate` + ) + const json = JSON.parse(res.headers.get('data')) + await waitFor(500) + expect(json.value).toEqual(81) + expect(output).not.toContain(WASM_INSTANTIATE_ERROR) + expect(output).not.toContain('DynamicWasmCodeGenerationWarning') }) }) diff --git a/test/production/middleware-with-dynamic-code/index.test.ts b/test/production/middleware-with-dynamic-code/index.test.ts index 2002b3053037..56e24b404ec6 100644 --- a/test/production/middleware-with-dynamic-code/index.test.ts +++ b/test/production/middleware-with-dynamic-code/index.test.ts @@ -1,6 +1,9 @@ -import { createNext } from 'e2e-utils' +import { createNext, FileRef } from 'e2e-utils' +import { join } from 'path' import { NextInstance } from 'test/lib/next-modes/base' +const DYNAMIC_CODE_EVAL_ERROR = `Dynamic Code Evaluation (e. g. 'eval', 'new Function', 'WebAssembly.compile') not allowed in Middleware middleware` + describe('Middleware with Dynamic code invokations', () => { let next: NextInstance @@ -8,6 +11,7 @@ describe('Middleware with Dynamic code invokations', () => { next = await createNext({ files: { 'lib/utils.js': '', + 'lib/square.wasm': new FileRef(join(__dirname, 'square.wasm')), 'pages/index.js': ` export default function () { return
Hello, world!
} `, @@ -32,6 +36,7 @@ describe('Middleware with Dynamic code invokations', () => { }) afterAll(() => next.destroy()) + beforeEach(() => next.stop()) it('detects dynamic code nested in @apollo/react-hooks', async () => { await next.patchFile( @@ -57,7 +62,7 @@ describe('Middleware with Dynamic code invokations', () => { await expect(next.start()).rejects.toThrow() expect(next.cliOutput).toContain(` ./node_modules/ts-invariant/lib/invariant.esm.js -Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware middleware`) +${DYNAMIC_CODE_EVAL_ERROR}`) }) it('detects dynamic code nested in has', async () => { @@ -71,10 +76,10 @@ Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware await expect(next.start()).rejects.toThrow() expect(next.cliOutput).toContain(` ./node_modules/function-bind/implementation.js -Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware middleware`) +${DYNAMIC_CODE_EVAL_ERROR}`) expect(next.cliOutput).toContain(` ./node_modules/has/src/index.js -Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware middleware`) +${DYNAMIC_CODE_EVAL_ERROR}`) }) it('detects dynamic code nested in qs', async () => { @@ -88,7 +93,7 @@ Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware await expect(next.start()).rejects.toThrow() expect(next.cliOutput).toContain(` ./node_modules/get-intrinsic/index.js -Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware middleware`) +${DYNAMIC_CODE_EVAL_ERROR}`) }) it('does not detects dynamic code nested in @aws-sdk/client-s3 (legit Function.bind)', async () => { @@ -106,8 +111,47 @@ Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware expect(next.cliOutput).not.toContain( `./node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js` ) - expect(next.cliOutput).not.toContain( - `Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Middleware middleware` + expect(next.cliOutput).not.toContain(DYNAMIC_CODE_EVAL_ERROR) + }) + + it('does not determine WebAssembly.instantiate with a module parameter as dynamic code execution (legit)', async () => { + await next.patchFile( + 'lib/utils.js', + ` + import wasm from './square.wasm?module' + const instance = WebAssembly.instantiate(wasm) + ` ) + await next.start() + + expect(next.cliOutput).not.toContain(DYNAMIC_CODE_EVAL_ERROR) + }) + + // Actually this causes a dynamic code evaluation however, we can't determine the type of + // first parameter of WebAssembly.instanntiate statically. + it('does not determine WebAssembly.instantiate with a buffer parameter as dynamic code execution', async () => { + await next.patchFile( + 'lib/utils.js', + ` + const instance = WebAssembly.instantiate(new Uint8Array([0, 1, 2, 3])) + ` + ) + await next.start() + + expect(next.cliOutput).not.toContain(DYNAMIC_CODE_EVAL_ERROR) + }) + + it('detects use of WebAssembly.compile', async () => { + await next.patchFile( + 'lib/utils.js', + ` + const module = WebAssembly.compile(new Uint8Array([0, 1, 2, 3])) + ` + ) + + await expect(next.start()).rejects.toThrow() + expect(next.cliOutput).toContain(` +./lib/utils.js +${DYNAMIC_CODE_EVAL_ERROR}`) }) }) diff --git a/test/production/middleware-with-dynamic-code/square.wasm b/test/production/middleware-with-dynamic-code/square.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f836887dda8004a4f54c3897c1d349b676293119 GIT binary patch literal 63 zcmWN Date: Thu, 16 Jun 2022 11:22:35 -0500 Subject: [PATCH 057/149] Update to skip middleware for unstable_revalidate (#37734) * Update to skip middleware for unstable_revalidate * lint fix --- packages/next/server/next-server.ts | 9 ++++++ test/e2e/middleware-general/app/middleware.js | 6 ++++ .../app/pages/ssg/[slug].js | 30 +++++++++++++++++++ .../e2e/middleware-general/test/index.test.ts | 15 ++++++++++ 4 files changed, 60 insertions(+) create mode 100644 test/e2e/middleware-general/app/pages/ssg/[slug].js diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index f841a9c4e00c..10f6d0f52702 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -82,6 +82,7 @@ import ResponseCache from '../server/response-cache' import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash' import { getNextPathnameInfo } from '../shared/lib/router/utils/get-next-pathname-info' import { bodyStreamToNodeStream, clonableBodyForRequest } from './body-streams' +import { checkIsManualRevalidate } from './api-utils' const shouldUseReactRoot = parseInt(React.version) >= 18 if (shouldUseReactRoot) { @@ -1137,6 +1138,14 @@ export default class NextNodeServer extends BaseServer { onWarning?: (warning: Error) => void }) { middlewareBetaWarning() + + // middleware is skipped for on-demand revalidate requests + if ( + checkIsManualRevalidate(params.request, this.renderOpts.previewProps) + .isManualRevalidate + ) { + return { finished: false } + } const normalizedPathname = removeTrailingSlash(params.parsed.pathname || '') // For middleware to "fetch" we must always provide an absolute URL diff --git a/test/e2e/middleware-general/app/middleware.js b/test/e2e/middleware-general/app/middleware.js index bb4346531556..215d8b090ba9 100644 --- a/test/e2e/middleware-general/app/middleware.js +++ b/test/e2e/middleware-general/app/middleware.js @@ -36,6 +36,12 @@ const params = (url) => { export async function middleware(request) { const url = request.nextUrl + if (request.headers.get('x-prerender-revalidate')) { + const res = NextResponse.next() + res.headers.set('x-middleware', 'hi') + return res + } + // this is needed for tests to get the BUILD_ID if (url.pathname.startsWith('/_next/static/__BUILD_ID')) { return NextResponse.next() diff --git a/test/e2e/middleware-general/app/pages/ssg/[slug].js b/test/e2e/middleware-general/app/pages/ssg/[slug].js new file mode 100644 index 000000000000..621575a122f1 --- /dev/null +++ b/test/e2e/middleware-general/app/pages/ssg/[slug].js @@ -0,0 +1,30 @@ +import { useRouter } from 'next/router' + +export default function Page(props) { + const router = useRouter() + return ( + <> +

/blog/[slug]

+

{JSON.stringify(router.query)}

+

{router.pathname}

+

{router.asPath}

+

{JSON.stringify(props)}

+ + ) +} + +export function getStaticProps({ params }) { + return { + props: { + now: Date.now(), + params, + }, + } +} + +export function getStaticPaths() { + return { + paths: ['/ssg/first'], + fallback: 'blocking', + } +} diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index e8647008d7ea..049b0e90015b 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -116,6 +116,21 @@ describe('Middleware Runtime', () => { ) } }) + + it('should not run middleware for on-demand revalidate', async () => { + const bypassToken = ( + await fs.readJSON(join(next.testDir, '.next/prerender-manifest.json')) + ).preview.previewModeId + + const res = await fetchViaHTTP(next.url, '/ssg/first', undefined, { + headers: { + 'x-prerender-revalidate': bypassToken, + }, + }) + expect(res.status).toBe(200) + expect(res.headers.get('x-middleware')).toBeFalsy() + expect(res.headers.get('x-nextjs-cache')).toBe('REVALIDATED') + }) } it('should have correct dynamic route params on client-transition to dynamic route', async () => { From eb55af1cfefd30fd86735df769231bfbc90990a9 Mon Sep 17 00:00:00 2001 From: Lee Robinson Date: Thu, 16 Jun 2022 11:29:18 -0500 Subject: [PATCH 058/149] Add upgrade guide for Middleware. (#37382) * Middleware upgrade guide * Add a bit more * Apply suggestions from code review Co-authored-by: Rich Haines Co-authored-by: Edward Thomson Co-authored-by: Dominik Ferber * Apply suggestions from code review Co-authored-by: Rich Haines * Updates based on PR comments * Add before / after * Flip paragraphs * Apply suggestions from code review Co-authored-by: Rich Haines * Apply suggestions from code review Co-authored-by: Kiko Beats * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Damien Simonin Feugas * Update errors/middleware-upgrade-guide.md Co-authored-by: Dom Sip * Update errors/middleware-upgrade-guide.md Co-authored-by: Damien Simonin Feugas * Update middleware-upgrade-guide.md * Update errors/middleware-upgrade-guide.md Co-authored-by: Rich Haines * Update errors/middleware-upgrade-guide.md Co-authored-by: Rich Haines * Apply suggestions from code review Co-authored-by: Rich Haines * Apply suggestions from code review * Update errors/middleware-upgrade-guide.md Co-authored-by: Rich Haines Co-authored-by: Edward Thomson Co-authored-by: Dominik Ferber Co-authored-by: Kiko Beats Co-authored-by: Damien Simonin Feugas Co-authored-by: Dom Sip --- errors/middleware-upgrade-guide.md | 356 +++++++++++++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 errors/middleware-upgrade-guide.md diff --git a/errors/middleware-upgrade-guide.md b/errors/middleware-upgrade-guide.md new file mode 100644 index 000000000000..8ee1b234ed60 --- /dev/null +++ b/errors/middleware-upgrade-guide.md @@ -0,0 +1,356 @@ +# Middleware Upgrade Guide + +As we work on improving Middleware for General Availability (GA), we've made some changes to the Middleware APIs (and how you define Middleware in your application) based on your feedback. + +This upgrade guide will help you understand the changes and how to migrate your existing Middleware to the new API. The guide is for Next.js developers who: + +- Currently use the beta Next.js Middleware features +- Choose to upgrade to the next stable version of Next.js (`v12.2`) + +You can start upgrading your Middleware usage today with the latest canary release (`npm i next@canary`). + +## Using Next.js Middleware on Vercel + +If you're using Next.js on Vercel, your existing deploys using Middleware will continue to work, and you can continue to deploy your site using Middleware. When you upgrade your site to the next stable version of Next.js (`v12.2`), you will need to follow this upgrade guide to update your Middleware. + +## Breaking changes + +1. [No Nested Middleware](#no-nested-middleware) +2. [No Response Body](#no-response-body) +3. [Cookies API Revamped](#cookies-api-revamped) +4. [New User-Agent Helper](#new-user-agent-helper) +5. [No More Page Match Data](#no-more-page-match-data) +6. [Executing Middleware on Internal Next.js Requests](#executing-middleware-on-internal-nextjs-requests) + +## No Nested Middleware + +### Summary of changes + +- Define a single Middleware file at the root of your project +- No need to prefix the file with an underscore +- A custom matcher can be used to define matching routes using an exported config object + +### Explanation + +Previously, you could create a `_middleware.ts` file under the `pages` directory at any level. Middleware execution was based on the file path where it was created. Beta customers found this route matching confusing. For example: + +- Middleware in `pages/dashboard/_middleware.ts` +- Middleware in `pages/dashboard/users/_middleware.ts` +- A request to `/dashboard/users/*` **would match both.** + +Based on customer feedback, we have replaced this API with a single root Middleware. + +### How to upgrade + +You should declare **one single Middleware file** in your application, which should be located at the root of the project directory (**not** inside of the `pages` directory), and named **without** an `_` prefix. Your Middleware file can still have either a `.ts` or `.js` extension. + +Middleware will be invoked for **every route in the app**, and a custom matcher can be used to define matching filters. The following is an example for a Middleware that triggers for `/about/*` and `/dashboard/:path*`, the custom matcher is defined in an exported config object: + +```typescript +// middleware.ts +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' + +export function middleware(request: NextRequest) { + return NextResponse.rewrite(new URL('/about-2', request.url)) +} + +// Supports both a single string value or an array of matchers +export const config = { + matcher: ['/about/:path*', '/dashboard/:path*'], +} +``` + +While the config option is preferred since it doesn't get invoked on every request, you can also use conditional statements to only run the Middleware when it matches specific paths. One advantage of using conditionals is defining explicit ordering for when Middleware executes. The following example shows how you can merge two previously nested Middleware: + +```typescript +// /middleware.js +import type { NextRequest } from 'next/server' + +export function middleware(request: NextRequest) { + if (request.nextUrl.pathname.startsWith('/about')) { + // This logic is only applied to /about + } + + if (request.nextUrl.pathname.startsWith('/dashboard')) { + // This logic is only applied to /dashboard + } +} +``` + +## No Response Body + +### Summary of changes + +- Middleware can no longer respond with a body +- If your Middleware _does_ respond with a body, a runtime error will be thrown +- Migrate to using `rewrites`/`redirects` to pages/APIs handling a response + +### Explanation + +To help ensure security, we are removing the ability to send response bodies in Middleware. This ensures that Middleware is only used to `rewrite`, `redirect`, or modify the incoming request (e.g. [setting cookies](#cookies-api-revamped)). + +The following patterns will no longer work: + +```js +new Response('a text value') +new Response(streamOrBuffer) +new Response(JSON.stringify(obj), { headers: 'application/json' }) +NextResponse.json() +``` + +### How to upgrade + +For cases where Middleware is used to respond (such as authorization), you should migrate to use `rewrites`/`redirects` to pages that show an authorization error, login forms, or to an API Route. + +#### Before + +```typescript +// pages/_middleware.ts +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' +import { isAuthValid } from './lib/auth' + +export function middleware(request: NextRequest) { + // Example function to validate auth + if (isAuthValid(req)) { + return NextResponse.next() + } + + return NextResponse.json({ message: 'Auth required' }, { status: 401 }) +} +``` + +#### After + +```typescript +// middleware.ts +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' +import { isAuthValid } from './lib/auth' + +export function middleware(request: NextRequest) { + // Example function to validate auth + if (isAuthValid(req)) { + return NextResponse.next() + } + + const loginUrl = new URL('/login', request.url) + loginUrl.searchParams.set('from', request.nextUrl.pathname) + + return NextResponse.redirect(loginUrl) +} +``` + +## Cookies API Revamped + +### Summary of changes + +| Added | Removed | +| ----------------------- | ------------- | +| `cookie.set` | `cookie` | +| `cookie.delete` | `clearCookie` | +| `cookie.getWithOptions` | `cookies` | + +### Explanation + +Based on beta feedback, we are changing the Cookies API in `NextRequest` and `NextResponse` to align more to a `get`/`set` model. The `Cookies` API extends Map, including methods like [entries](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries) and [values](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries). + +### How to upgrade + +`NextResponse` now has a `cookies` instance with: + +- `cookie.delete` +- `cookie.set` +- `cookie.getWithOptions` + +As well as other extended methods from `Map`. + +#### Before + +```javascript +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' + +export function middleware(request: NextRequest) { + // create an instance of the class to access the public methods. This uses `next()`, + // you could use `redirect()` or `rewrite()` as well + let response = NextResponse.next() + // get the cookies from the request + let cookieFromRequest = request.cookies['my-cookie'] + // set the `cookie` + response.cookie('hello', 'world') + // set the `cookie` with options + const cookieWithOptions = response.cookie('hello', 'world', { + path: '/', + maxAge: 1000 * 60 * 60 * 24 * 7, + httpOnly: true, + sameSite: 'strict', + domain: 'example.com', + }) + // clear the `cookie` + response.clearCookie('hello') + + return response +} +``` + +#### After + +```typescript +// middleware.ts +export function middleware() { + const response = new NextResponse() + + // set a cookie + response.cookies.set('vercel', 'fast') + + // set another cookie with options + response.cookies.set('nextjs', 'awesome', { path: '/test' }) + + // get all the details of a cookie + const {value, options} = response.cookies.getWithOptions('vercel') + console.log(value) // => 'fast' + console.log(options) // => { Path: '/test' } + + // deleting a cookie will mark it as expired + response.cookies.delete('vercel') + + // clear all cookies means mark all of them as expired + response.cookies.clear() +} +``` +## New User-Agent Helper + +### Summary of changes + +- Accessing the user agent is no longer available on the request object +- We've added a new `userAgent` helper to reduce Middleware size by `17kb` + +### Explanation + +To help reduce the size of your Middleware, we have extracted the user agent from the request object and created a new helper `userAgent`. + +The helper is imported from `next/server` and allows you to opt in to using the user agent. The helper gives you access to the same properties that were available from the request object. + +### How to upgrade + +- Import the `userAgent` helper from `next/server` +- Destructure the properties you need to work with + +#### Before + +```typescript +// middleware.ts +import { NextRequest, NextResponse } from 'next/server' + +export function middleware(request: NextRequest) { + const url = request.nextUrl + const viewport = request.ua.device.type === 'mobile' ? 'mobile' : 'desktop' + url.searchParams.set('viewport', viewport) + return NextResponse.rewrites(url) +} +``` + +#### After + +```typescript +// middleware.ts +import { NextRequest, NextResponse, userAgent } from 'next/server' + +export function middleware(request: NextRequest) { + const url = request.nextUrl + const { device } = userAgent(request) + const viewport = device.type === 'mobile' ? 'mobile' : 'desktop' + url.searchParams.set('viewport', viewport) + return NextResponse.rewrites(url) +} +``` + +## No More Page Match Data + +### Summary of changes + +- Use [`URLPattern`](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern) to check if a Middleware is being invoked for a certain page match + +### Explanation + +Currently, Middleware estimates whether you are serving an asset of a Page based on the Next.js routes manifest (internal configuration). This value is surfaced through `request.page`. + +To make page and asset matching more accurate, we are now using the web standard `URLPattern` API. + +### How to upgrade + +Use [`URLPattern`](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern) to check if a Middleware is being invoked for a certain page match. + +#### Before + +```typescript +// middleware.ts +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' + +export function middleware(request: NextRequest) { + const { params } = event.request.page + const { locale, slug } = params + + if (locale && slug) { + const { search, protocol, host } = request.nextUrl + const url = new URL(`${protocol}//${locale}.${host}/${slug}${search}`) + return NextResponse.redirect(url) + } +} +``` + +#### After + +```typescript +// middleware.ts +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' + +const PATTERNS = [ + [ + new URLPattern({ pathname: '/:locale/:slug' }), + ({ pathname }) => pathname.groups, + ], +] + +const params = (url) => { + const input = url.split('?')[0] + let result = {} + + for (const [pattern, handler] of PATTERNS) { + const patternResult = pattern.exec(input) + if (patternResult !== null && 'pathname' in patternResult) { + result = handler(patternResult) + break + } + } + return result +} + +export function middleware(request: NextRequest) { + const { locale, slug } = params(request.url) + + if (locale && slug) { + const { search, protocol, host } = request.nextUrl + const url = new URL(`${protocol}//${locale}.${host}/${slug}${search}`) + return NextResponse.redirect(url) + } +} +``` + +## Executing Middleware on Internal Next.js Requests + +### Summary of changes + +- Middleware will be executed for _all_ requests, including `_next` + +### Explanation + +Prior to Next.js `v12.2`, Middleware was not executed for `_next` requests. + +For cases where Middleware is used for authorization, you should migrate to use `rewrites`/`redirects` to Pages that show an authorization error, login forms, or to an API Route. + +See [No Reponse Body](#no-response-body) for an example of how to migrate to use `rewrites`/`redirects`. From 97395b4cd6265518fa0c1b721113c5e69763637d Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 16 Jun 2022 11:46:15 -0500 Subject: [PATCH 059/149] Add missing error manifest entry and fix lint (#37758) * Add missing error manifest entry * fix lint * guid -> guide --- errors/manifest.json | 4 ++++ errors/middleware-upgrade-guide.md | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/errors/manifest.json b/errors/manifest.json index 23129300371a..23986a780ad1 100644 --- a/errors/manifest.json +++ b/errors/manifest.json @@ -4,6 +4,10 @@ "title": "Messages", "heading": true, "routes": [ + { + "title": "middleware-upgrade-guide", + "path": "/errors/middleware-upgrade-guide.md" + }, { "title": "react-hydration-error", "path": "/errors/react-hydration-error.md" diff --git a/errors/middleware-upgrade-guide.md b/errors/middleware-upgrade-guide.md index 8ee1b234ed60..ea3968fd6392 100644 --- a/errors/middleware-upgrade-guide.md +++ b/errors/middleware-upgrade-guide.md @@ -209,7 +209,7 @@ export function middleware() { response.cookies.set('nextjs', 'awesome', { path: '/test' }) // get all the details of a cookie - const {value, options} = response.cookies.getWithOptions('vercel') + const { value, options } = response.cookies.getWithOptions('vercel') console.log(value) // => 'fast' console.log(options) // => { Path: '/test' } @@ -220,6 +220,7 @@ export function middleware() { response.cookies.clear() } ``` + ## New User-Agent Helper ### Summary of changes @@ -229,7 +230,7 @@ export function middleware() { ### Explanation -To help reduce the size of your Middleware, we have extracted the user agent from the request object and created a new helper `userAgent`. +To help reduce the size of your Middleware, we have extracted the user agent from the request object and created a new helper `userAgent`. The helper is imported from `next/server` and allows you to opt in to using the user agent. The helper gives you access to the same properties that were available from the request object. From a4abc1e77dd05ae2ac172858e4b9fb82af5294f3 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 16 Jun 2022 11:56:43 -0500 Subject: [PATCH 060/149] Expose test timings token for e2e tests (#37756) * Expose test timings token for e2e tests * update flake --- .github/workflows/build_test_deploy.yml | 4 ++++ run-tests.js | 7 ------- test/e2e/next-script/index.test.ts | 22 +++++++++++++--------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index 98dd51890188..96c6c0045d12 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -344,6 +344,7 @@ jobs: env: NEXT_TELEMETRY_DISABLED: 1 NEXT_TEST_JOB: 1 + TEST_TIMINGS_TOKEN: ${{ secrets.TEST_TIMINGS_TOKEN }} strategy: fail-fast: false matrix: @@ -401,6 +402,7 @@ jobs: NEXT_TELEMETRY_DISABLED: 1 NEXT_TEST_JOB: 1 NEXT_TEST_REACT_VERSION: ^17 + TEST_TIMINGS_TOKEN: ${{ secrets.TEST_TIMINGS_TOKEN }} strategy: fail-fast: false matrix: @@ -543,6 +545,7 @@ jobs: env: NEXT_TELEMETRY_DISABLED: 1 NEXT_TEST_JOB: 1 + TEST_TIMINGS_TOKEN: ${{ secrets.TEST_TIMINGS_TOKEN }} strategy: fail-fast: false matrix: @@ -590,6 +593,7 @@ jobs: NEXT_TELEMETRY_DISABLED: 1 NEXT_TEST_JOB: 1 NEXT_TEST_REACT_VERSION: ^17 + TEST_TIMINGS_TOKEN: ${{ secrets.TEST_TIMINGS_TOKEN }} strategy: fail-fast: false matrix: diff --git a/run-tests.js b/run-tests.js index b49e6926e232..51cc60a3f8c1 100644 --- a/run-tests.js +++ b/run-tests.js @@ -287,20 +287,13 @@ async function main() { if (isFinalRun && hideOutput) { // limit out to last 64kb so that we don't // run out of log room in CI - let trimmedOutputSize = 0 - const trimmedOutputLimit = 64 * 1024 const trimmedOutput = [] for (let i = outputChunks.length; i >= 0; i--) { const chunk = outputChunks[i] if (!chunk) continue - trimmedOutputSize += chunk.byteLength || chunk.length trimmedOutput.unshift(chunk) - - if (trimmedOutputSize > trimmedOutputLimit) { - break - } } trimmedOutput.forEach((chunk) => process.stdout.write(chunk)) } diff --git a/test/e2e/next-script/index.test.ts b/test/e2e/next-script/index.test.ts index 099be304dabb..18b746cb9fb9 100644 --- a/test/e2e/next-script/index.test.ts +++ b/test/e2e/next-script/index.test.ts @@ -243,12 +243,14 @@ describe('experimental.nextScriptWorkers: true with required Partytown dependenc try { browser = await webdriver(next.url, '/') - const predefinedWorkerScripts = await browser.eval( - `document.querySelectorAll('script[type="text/partytown"]').length` - ) - expect(predefinedWorkerScripts).toEqual(1) + await check(async () => { + const predefinedWorkerScripts = await browser.eval( + `document.querySelectorAll('script[type="text/partytown"]').length` + ) + return predefinedWorkerScripts + '' + }, '1') - // Partytown modifes type to "text/partytown-x" after it has been executed in the web worker + // Partytown modifies type to "text/partytown-x" after it has been executed in the web worker await check(async () => { const processedWorkerScripts = await browser.eval( `document.querySelectorAll('script[type="text/partytown-x"]').length` @@ -275,10 +277,12 @@ describe('experimental.nextScriptWorkers: true with required Partytown dependenc try { browser = await webdriver(next.url, '/') - const predefinedWorkerScripts = await browser.eval( - `document.querySelectorAll('script[type="text/partytown"]').length` - ) - expect(predefinedWorkerScripts).toEqual(1) + await check(async () => { + const predefinedWorkerScripts = await browser.eval( + `document.querySelectorAll('script[type="text/partytown"]').length` + ) + return predefinedWorkerScripts + '' + }, '1') // Partytown modifes type to "text/partytown-x" after it has been executed in the web worker await check(async () => { From b8e533b589d545bc2df93d49533e64ad4ba639bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Orb=C3=A1n?= Date: Thu, 16 Jun 2022 20:08:07 +0200 Subject: [PATCH 061/149] chore: use `pnpm install` in tests (#37712) ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- .github/workflows/build_test_deploy.yml | 54 +++++++++++++++++-- .github/workflows/test_react_experimental.yml | 2 + .github/workflows/test_react_next.yml | 2 + test/lib/create-next-install.js | 7 +-- test/production/jest/relay/relay-jest.test.ts | 1 + .../index.test.ts | 5 +- .../pnpm-support/test/index.test.ts | 11 ---- .../production/typescript-basic/index.test.ts | 1 + 8 files changed, 62 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index 96c6c0045d12..e0159e488100 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -98,7 +98,6 @@ jobs: steps: - name: Setup node uses: actions/setup-node@v3 - if: ${{ steps.docs-change.outputs.docsChange != 'docs only change' }} with: node-version: 16 check-latest: true @@ -227,6 +226,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: node run-tests.js --type unit if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -268,6 +270,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -320,6 +325,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -377,6 +385,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -434,6 +445,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -489,6 +503,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -531,6 +548,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -578,6 +598,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -625,6 +648,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -671,6 +697,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -716,7 +745,10 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native - - run: cd test/integration/with-electron/app && yarn + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + + - run: cd test/integration/with-electron/app && yarn install if: ${{needs.build.outputs.docsChange != 'docs only change'}} - run: xvfb-run node run-tests.js test/integration/with-electron/test/index.test.js @@ -771,6 +803,7 @@ jobs: if: ${{needs.build.outputs.docsChange != 'docs only change'}} # test rsc hydration on firefox due to limited support of TransformStream api - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} - run: xvfb-run pnpm testheadless test/integration/react-streaming-and-server-components/test/index.test.js -t "should handle streaming server components correctly" if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -811,6 +844,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + # TODO: use macos runner so that we can use playwright to test against # PRs instead of only running on canary? - run: '[[ -z "$BROWSERSTACK_ACCESS_KEY" ]] && echo "Skipping for PR" || npm i -g browserstack-local@1.4.0' @@ -856,6 +892,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: '[[ -z "$BROWSERSTACK_ACCESS_KEY" ]] && echo "Skipping for PR" || npm i -g browserstack-local@1.4.0' if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -887,6 +926,8 @@ jobs: with: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} - run: npx playwright install-deps && npx playwright install firefox if: ${{needs.build.outputs.docsChange != 'docs only change'}} - run: node run-tests.js test/integration/production/test/index.test.js @@ -965,6 +1006,9 @@ jobs: name: next-swc-test-binary path: packages/next-swc/native + - run: npm i -g pnpm@${PNPM_VERSION} + name: Install pnpm + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps name: Install playwright dependencies @@ -1166,6 +1210,9 @@ jobs: - run: node ./scripts/setup-wasm.mjs if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: npm i -g pnpm@${PNPM_VERSION} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + - run: TEST_WASM=true xvfb-run node run-tests.js test/integration/production/test/index.test.js if: ${{needs.build.outputs.docsChange != 'docs only change'}} @@ -1529,7 +1576,8 @@ jobs: - name: Turbo Cache id: turbo-cache uses: actions/cache@v3 - if: ${{ steps.docs-change.outputs.DOCS_CHANGE != 'docs only change' }} + if: ${{needs.build.outputs.docsChange != 'docs only change'}} + with: path: .turbo key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ steps.get-week.outputs.WEEK }}-${{ github.sha }} diff --git a/.github/workflows/test_react_experimental.yml b/.github/workflows/test_react_experimental.yml index 80bf673a04f0..f01a146964bd 100644 --- a/.github/workflows/test_react_experimental.yml +++ b/.github/workflows/test_react_experimental.yml @@ -44,6 +44,8 @@ jobs: path: ./* key: ${{ github.sha }}-react-experimental + - run: npm i -g pnpm@latest + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps - run: node run-tests.js --timings -g ${{ matrix.group }}/6 diff --git a/.github/workflows/test_react_next.yml b/.github/workflows/test_react_next.yml index b2f756bb9f64..0a0a118bcd91 100644 --- a/.github/workflows/test_react_next.yml +++ b/.github/workflows/test_react_next.yml @@ -44,6 +44,8 @@ jobs: path: ./* key: ${{ github.sha }}-react-next + - run: npm i -g pnpm@latest + - run: npm i -g playwright-chromium@1.22.2 && npx playwright install-deps - run: node run-tests.js --timings -g ${{ matrix.group }}/6 diff --git a/test/lib/create-next-install.js b/test/lib/create-next-install.js index 8378db866641..5ef5965914e5 100644 --- a/test/lib/create-next-install.js +++ b/test/lib/create-next-install.js @@ -98,13 +98,10 @@ async function createNextInstall( stdio: ['ignore', 'inherit', 'inherit'], }) } else { - await execa('yarn', ['install'], { + await execa('pnpm', ['install', '--strict-peer-dependencies=false'], { cwd: installDir, stdio: ['ignore', 'inherit', 'inherit'], - env: { - ...process.env, - YARN_CACHE_FOLDER: path.join(installDir, '.yarn-cache'), - }, + env: process.env, }) } diff --git a/test/production/jest/relay/relay-jest.test.ts b/test/production/jest/relay/relay-jest.test.ts index 405e27236f62..d4de22362910 100644 --- a/test/production/jest/relay/relay-jest.test.ts +++ b/test/production/jest/relay/relay-jest.test.ts @@ -61,6 +61,7 @@ describe('next/jest', () => { 'babel-plugin-relay': '^13.2.0', jsdom: '^19.0.0', 'relay-compiler': '^13.0.1', + 'relay-runtime': '^13.0.2', 'relay-test-utils': '^13.0.2', typescript: '^4.6.3', }, diff --git a/test/production/middleware-with-dynamic-code/index.test.ts b/test/production/middleware-with-dynamic-code/index.test.ts index 56e24b404ec6..26c7cc9ffa4a 100644 --- a/test/production/middleware-with-dynamic-code/index.test.ts +++ b/test/production/middleware-with-dynamic-code/index.test.ts @@ -2,9 +2,9 @@ import { createNext, FileRef } from 'e2e-utils' import { join } from 'path' import { NextInstance } from 'test/lib/next-modes/base' -const DYNAMIC_CODE_EVAL_ERROR = `Dynamic Code Evaluation (e. g. 'eval', 'new Function', 'WebAssembly.compile') not allowed in Middleware middleware` +describe('Middleware with Dynamic code invocations', () => { + const DYNAMIC_CODE_EVAL_ERROR = `Dynamic Code Evaluation (e. g. 'eval', 'new Function', 'WebAssembly.compile') not allowed in Middleware middleware` -describe('Middleware with Dynamic code invokations', () => { let next: NextInstance beforeAll(async () => { @@ -31,6 +31,7 @@ describe('Middleware with Dynamic code invokations', () => { has: 'latest', qs: 'latest', }, + installCommand: 'yarn install', }) await next.stop() }) diff --git a/test/production/pnpm-support/test/index.test.ts b/test/production/pnpm-support/test/index.test.ts index f691c62ad618..10976c14831d 100644 --- a/test/production/pnpm-support/test/index.test.ts +++ b/test/production/pnpm-support/test/index.test.ts @@ -1,6 +1,5 @@ /* eslint-env jest */ import path from 'path' -import execa from 'execa' import fs from 'fs-extra' import webdriver from 'next-webdriver' import { createNext, FileRef } from 'e2e-utils' @@ -15,15 +14,6 @@ import { describe('pnpm support', () => { let next: NextInstance | undefined - beforeAll(async () => { - try { - const version = await execa('pnpm', ['--version']) - console.warn(`using pnpm version`, version.stdout) - } catch (_) { - // install pnpm if not available - await execa('npm', ['i', '-g', 'pnpm@latest']) - } - }) afterEach(async () => { try { await next?.destroy() @@ -44,7 +34,6 @@ describe('pnpm support', () => { start: 'next start', }, }, - installCommand: 'pnpm install', buildCommand: 'pnpm run build', }) diff --git a/test/production/typescript-basic/index.test.ts b/test/production/typescript-basic/index.test.ts index 09979db2b251..4ad49de99d19 100644 --- a/test/production/typescript-basic/index.test.ts +++ b/test/production/typescript-basic/index.test.ts @@ -28,6 +28,7 @@ describe('TypeScript basic', () => { '@types/node': 'latest', '@types/react': 'latest', '@types/react-dom': 'latest', + 'styled-jsx': 'latest', }, }) }) From 37de4f989acd1a4214248c1489c696bfee980afa Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 16 Jun 2022 13:41:44 -0500 Subject: [PATCH 062/149] Remove previous query param deleting warning (#37740) --- packages/next/server/next-server.ts | 26 ------------------- .../middleware-rewrites/test/index.test.ts | 13 ---------- 2 files changed, 39 deletions(-) diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 10f6d0f52702..5beb225713fd 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -1378,12 +1378,6 @@ export default class NextNodeServer extends BaseServer { const parsedDestination = parseUrl(rewritePath) const newUrl = parsedDestination.pathname - // TODO: remove after next minor version current `v12.0.9` - this.warnIfQueryParametersWereDeleted( - parsedUrl.query, - parsedDestination.query - ) - if ( parsedDestination.protocol && (parsedDestination.port @@ -1449,26 +1443,6 @@ export default class NextNodeServer extends BaseServer { return require(join(this.distDir, ROUTES_MANIFEST)) } - // TODO: remove after next minor version current `v12.0.9` - private warnIfQueryParametersWereDeleted( - incoming: ParsedUrlQuery, - rewritten: ParsedUrlQuery - ): void { - const incomingQuery = urlQueryToSearchParams(incoming) - const rewrittenQuery = urlQueryToSearchParams(rewritten) - - const missingKeys = [...incomingQuery.keys()].filter((key) => { - return !rewrittenQuery.has(key) - }) - - if (missingKeys.length > 0) { - Log.warn( - `Query params are no longer automatically merged for rewrites in middleware, see more info here: https://nextjs.org/docs/messages/deleting-query-params-in-middlewares` - ) - this.warnIfQueryParametersWereDeleted = () => {} - } - } - private async runEdgeFunctionApiEndpoint(params: { req: NodeNextRequest res: NodeNextResponse diff --git a/test/e2e/middleware-rewrites/test/index.test.ts b/test/e2e/middleware-rewrites/test/index.test.ts index 3a6082730307..9a4e9e86228b 100644 --- a/test/e2e/middleware-rewrites/test/index.test.ts +++ b/test/e2e/middleware-rewrites/test/index.test.ts @@ -169,19 +169,6 @@ describe('Middleware Rewrite', () => { }, 'success') }) - if (!(global as any).isNextDeploy) { - // runtime logs aren't currently available for deploy test - it(`warns about a query param deleted`, async () => { - await fetchViaHTTP(next.url, `/clear-query-params`, { - a: '1', - allowed: 'kept', - }) - expect(next.cliOutput).toContain( - 'Query params are no longer automatically merged for rewrites in middleware' - ) - }) - } - it('should allow to opt-out prefetch caching', async () => { const browser = await webdriver(next.url, '/') await browser.addCookie({ name: 'about-bypass', value: '1' }) From 87a3c0c5bdf6b7e4a27d81effa6b605bd97f9019 Mon Sep 17 00:00:00 2001 From: Robert Cunningham <57107798+bagpyp@users.noreply.github.com> Date: Thu, 16 Jun 2022 12:38:42 -0700 Subject: [PATCH 063/149] fix grammar in failed-loading-swc (#37765) just a little clearer, was confused previously --- errors/failed-loading-swc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/errors/failed-loading-swc.md b/errors/failed-loading-swc.md index 46f691de4417..a406920642ee 100644 --- a/errors/failed-loading-swc.md +++ b/errors/failed-loading-swc.md @@ -8,7 +8,7 @@ SWC requires a binary be downloaded that is compatible specific to your system. #### Possible Ways to Fix It -When on an M1 Mac and switching from a Node.js version without M1 support e.g. v14 to a version with e.g. v16, you may need a different swc dependency which can require re-installing `node_modules` (`npm i --force` or `yarn install --force`). +When on an M1 Mac and switching from a Node.js version without M1 support to one with, e.g. v14 to v16, you may need a different swc dependency which can require re-installing `node_modules` (`npm i --force` or `yarn install --force`). On Windows make sure you have Microsoft Visual C++ Redistributable installed. https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist From 448ba2b384c586126d4c2a61c32f4f787716a8bd Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 16 Jun 2022 15:59:47 -0400 Subject: [PATCH 064/149] Enhance experimental feature warning (#37752) This improves the warning thats printed when you have experimental features enable so its clear which ones are enabled (in parenthesis) and where they are enabled (in next.config.js or next.config.mjs) ## Before ``` warn - You have enabled experimental feature(s). ``` ## After ``` warn - You have enabled experimental features (reactRoot, serverComponents, scrollRestoration) in next.config.js. ``` --- packages/next/server/config.ts | 27 ++++++---- .../test/index.test.js | 52 ++++++++++++++++--- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/packages/next/server/config.ts b/packages/next/server/config.ts index 427f03f3524d..58800ffb2862 100644 --- a/packages/next/server/config.ts +++ b/packages/next/server/config.ts @@ -25,14 +25,23 @@ export { DomainLocale, NextConfig, normalizeConfig } from './config-shared' const targets = ['server', 'serverless', 'experimental-serverless-trace'] -const experimentalWarning = execOnce(() => { - Log.warn(chalk.bold('You have enabled experimental feature(s).')) - Log.warn( - `Experimental features are not covered by semver, and may cause unexpected or broken application behavior. ` + - `Use them at your own risk.` - ) - console.warn() -}) +const experimentalWarning = execOnce( + (configFileName: string, features: string[]) => { + const s = features.length > 1 ? 's' : '' + Log.warn( + chalk.bold( + `You have enabled experimental feature${s} (${features.join( + ', ' + )}) in ${configFileName}.` + ) + ) + Log.warn( + `Experimental features are not covered by semver, and may cause unexpected or broken application behavior. ` + + `Use at your own risk.` + ) + console.warn() + } +) function assignDefaults(userConfig: { [key: string]: any }) { const configFileName = userConfig.configFileName @@ -74,7 +83,7 @@ function assignDefaults(userConfig: { [key: string]: any }) { typeof value === 'object' && Object.keys(value).length > 0 ) { - experimentalWarning() + experimentalWarning(configFileName, Object.keys(value)) } if (key === 'distDir') { diff --git a/test/integration/config-experimental-warning/test/index.test.js b/test/integration/config-experimental-warning/test/index.test.js index 70c5b0b1bd03..dc20cd682047 100644 --- a/test/integration/config-experimental-warning/test/index.test.js +++ b/test/integration/config-experimental-warning/test/index.test.js @@ -5,9 +5,15 @@ import { nextBuild, File } from 'next-test-utils' const appDir = join(__dirname, '..') const configFile = new File(join(appDir, '/next.config.js')) +const configFileMjs = new File(join(appDir, '/next.config.mjs')) -describe('Promise in next config', () => { - afterAll(() => configFile.delete()) +describe('Config Experimental Warning', () => { + afterEach(() => { + configFile.write('') + configFile.delete() + configFileMjs.write('') + configFileMjs.delete() + }) it('should not show warning with default config from function', async () => { configFile.write(` @@ -20,7 +26,7 @@ describe('Promise in next config', () => { `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).not.toMatch(/experimental feature/) + expect(stderr).not.toMatch('You have enabled experimental feature') }) it('should not show warning with config from object', async () => { @@ -30,7 +36,7 @@ describe('Promise in next config', () => { } `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).not.toMatch(/experimental feature/) + expect(stderr).not.toMatch('You have enabled experimental feature') }) it('should show warning with config from object with experimental', async () => { @@ -43,7 +49,9 @@ describe('Promise in next config', () => { } `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch(/experimental feature/) + expect(stderr).toMatch( + 'You have enabled experimental feature (something) in next.config.js.' + ) }) it('should show warning with config from function with experimental', async () => { @@ -56,6 +64,38 @@ describe('Promise in next config', () => { }) `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) - expect(stderr).toMatch(/experimental feature/) + expect(stderr).toMatch( + 'You have enabled experimental feature (something) in next.config.js.' + ) + }) + + it('should show warning with config from object with experimental and multiple keys', async () => { + configFile.write(` + module.exports = { + experimental: { + something: true, + another: 1, + } + } + `) + const { stderr } = await nextBuild(appDir, [], { stderr: true }) + expect(stderr).toMatch( + 'You have enabled experimental features (something, another) in next.config.js.' + ) + }) + + it('should show warning with next.config.mjs from object with experimental', async () => { + configFileMjs.write(` + const config = { + experimental: { + something: true, + } + } + export default config + `) + const { stderr } = await nextBuild(appDir, [], { stderr: true }) + expect(stderr).toMatch( + 'You have enabled experimental feature (something) in next.config.mjs.' + ) }) }) From b7d057453d92088c8584dbabc6f41ece5fc49a9d Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 16 Jun 2022 16:20:17 -0400 Subject: [PATCH 065/149] Add `images.unoptimized: true` for easy `next export` (#37698) In a previous PR (#19032), we added a hard error during `next export` if the default Image Optimization API is being used because it requires a server to optimized on demand. The error message offers several different solutions but it didn't consider that by the time someone runs `next export`, they are probably done writing their app. So if `next export` is a hard requirement, the quickest path forward is to disable Image Optimization API. So this PR adds a new configuration option to `next.config.js`: ```js module.exports = { images: { unoptimized: true } } ``` ### Update Upon further discussion, we might want to avoid doing this just for images and instead introduce a top-level config to indicate export is coming and then handle errors or warn for [unsupported features](https://nextjs.org/docs/advanced-features/static-html-export#unsupported-features). ``` module.exports = { nextExport: true } ``` Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- docs/api-reference/next/image.md | 14 +- errors/export-image-api.md | 4 +- errors/invalid-images-config.md | 11 +- packages/next/build/webpack-config.ts | 1 + packages/next/client/image.tsx | 10 +- packages/next/export/index.ts | 12 +- packages/next/server/config-shared.ts | 1 + packages/next/server/config.ts | 10 ++ .../export-image-loader/test/index.test.js | 35 +++++ .../unoptimized/next.config.js | 7 + .../unoptimized/pages/index.js | 33 +++++ .../unoptimized/public/test.jpg | Bin 0 -> 6765 bytes .../unoptimized/public/test.png | Bin 0 -> 1545 bytes .../unoptimized/public/test.webp | Bin 0 -> 1018 bytes .../unoptimized/test/index.test.js | 120 ++++++++++++++++++ 15 files changed, 247 insertions(+), 11 deletions(-) create mode 100644 test/integration/image-component/unoptimized/next.config.js create mode 100644 test/integration/image-component/unoptimized/pages/index.js create mode 100644 test/integration/image-component/unoptimized/public/test.jpg create mode 100644 test/integration/image-component/unoptimized/public/test.png create mode 100644 test/integration/image-component/unoptimized/public/test.webp create mode 100644 test/integration/image-component/unoptimized/test/index.test.js diff --git a/docs/api-reference/next/image.md b/docs/api-reference/next/image.md index 07a2f61ba9f3..565103e497c8 100644 --- a/docs/api-reference/next/image.md +++ b/docs/api-reference/next/image.md @@ -16,7 +16,7 @@ description: Enable Image Optimization with the built-in Image component. | Version | Changes | | --------- | ----------------------------------------------------------------------------------------------------- | -| `v12.1.7` | Experimental `remotePatterns` configuration added. | +| `v12.2.0` | Experimental `remotePatterns` and experimental `unoptimized` configuration added. | | `v12.1.1` | `style` prop added. Experimental[\*](#experimental-raw-layout-mode) support for `layout="raw"` added. | | `v12.1.0` | `dangerouslyAllowSVG` and `contentSecurityPolicy` configuration added. | | `v12.0.9` | `lazyRoot` prop added. | @@ -301,6 +301,18 @@ const Example = () => { When true, the source image will be served as-is instead of changing quality, size, or format. Defaults to `false`. +This prop can be assigned to all images by updating `next.config.js` with the following experimental configuration: + +```js +module.exports = { + experimental: { + images: { + unoptimized: true, + }, + }, +} +``` + ## Other Props Other properties on the `` component will be passed to the underlying diff --git a/errors/export-image-api.md b/errors/export-image-api.md index caedb0679147..340139b94a13 100644 --- a/errors/export-image-api.md +++ b/errors/export-image-api.md @@ -12,8 +12,8 @@ This is because Next.js optimizes images on-demand, as users request them (not a - Use [`next start`](https://nextjs.org/docs/api-reference/cli#production) to run a server, which includes the Image Optimization API. - Use any provider which supports Image Optimization (such as [Vercel](https://vercel.com)). -- [Configure the loader](https://nextjs.org/docs/api-reference/next/image#loader-configuration) in `next.config.js`. -- Use the [`loader`](https://nextjs.org/docs/api-reference/next/image#loader) prop for each instance of `next/image`. +- [Configure `loader`](https://nextjs.org/docs/api-reference/next/image#loader-configuration) in `next.config.js`. +- [Configure `unoptimized`](https://nextjs.org/docs/api-reference/next/image#unoptimized) in `next.config.js`. ### Useful Links diff --git a/errors/invalid-images-config.md b/errors/invalid-images-config.md index 8a03674a31df..9050dfbc5b1a 100644 --- a/errors/invalid-images-config.md +++ b/errors/invalid-images-config.md @@ -17,8 +17,6 @@ module.exports = { imageSizes: [16, 32, 48, 64, 96, 128, 256, 384], // limit of 50 domains values domains: [], - // limit of 50 objects - remotePatterns: [], // path prefix for Image Optimization API, useful with `loader` path: '/_next/image', // loader can be 'default', 'imgix', 'cloudinary', 'akamai', or 'custom' @@ -33,6 +31,15 @@ module.exports = { dangerouslyAllowSVG: false, // set the Content-Security-Policy header contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;", + // the following are experimental features, and may cause breaking changes + }, + experimental: { + images: { + // limit of 50 objects + remotePatterns: [], + // when true, every image will be unoptimized + unoptimized: false, + }, }, } ``` diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index df829f82554a..780e12c6a850 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -1521,6 +1521,7 @@ export default async function getBaseWebpackConfig( imageSizes: config.images.imageSizes, path: config.images.path, loader: config.images.loader, + experimentalUnoptimized: config?.experimental?.images?.unoptimized, experimentalLayoutRaw: config.experimental?.images?.layoutRaw, ...(dev ? { diff --git a/packages/next/client/image.tsx b/packages/next/client/image.tsx index 8ee3602dbe81..07250527109c 100644 --- a/packages/next/client/image.tsx +++ b/packages/next/client/image.tsx @@ -18,8 +18,11 @@ import { ImageConfigContext } from '../shared/lib/image-config-context' import { warnOnce } from '../shared/lib/utils' import { normalizePathTrailingSlash } from './normalize-trailing-slash' -const { experimentalLayoutRaw = false, experimentalRemotePatterns = [] } = - (process.env.__NEXT_IMAGE_OPTS as any) || {} +const { + experimentalLayoutRaw = false, + experimentalRemotePatterns = [], + experimentalUnoptimized, +} = (process.env.__NEXT_IMAGE_OPTS as any) || {} const configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete const loadedImageURLs = new Set() const allImgs = new Map< @@ -464,6 +467,9 @@ export default function Image({ ) { isLazy = false } + if (experimentalUnoptimized) { + unoptimized = true + } const [blurComplete, setBlurComplete] = useState(false) const [setIntersection, isIntersected, resetIntersected] = diff --git a/packages/next/export/index.ts b/packages/next/export/index.ts index 7166bfeac138..676fd4072775 100644 --- a/packages/next/export/index.ts +++ b/packages/next/export/index.ts @@ -326,6 +326,7 @@ export default async function exportApp( const { i18n, images: { loader = 'default' }, + experimental, } = nextConfig if (i18n && !options.buildExport) { @@ -344,14 +345,17 @@ export default async function exportApp( .catch(() => ({})) ) - if (isNextImageImported && loader === 'default' && !hasNextSupport) { + if ( + isNextImageImported && + loader === 'default' && + !experimental?.images?.unoptimized && + !hasNextSupport + ) { throw new Error( `Image Optimization using Next.js' default loader is not compatible with \`next export\`. Possible solutions: - Use \`next start\` to run a server, which includes the Image Optimization API. - - Use any provider which supports Image Optimization (like Vercel). - - Configure a third-party loader in \`next.config.js\`. - - Use the \`loader\` prop for \`next/image\`. + - Configure \`images.unoptimized = true\` in \`next.config.js\` to disable the Image Optimization API. Read more: https://nextjs.org/docs/messages/export-image-api` ) } diff --git a/packages/next/server/config-shared.ts b/packages/next/server/config-shared.ts index 6a11f9d8234b..0a5844b6d4ce 100644 --- a/packages/next/server/config-shared.ts +++ b/packages/next/server/config-shared.ts @@ -122,6 +122,7 @@ export interface ExperimentalConfig { images?: { layoutRaw: boolean remotePatterns: RemotePattern[] + unoptimized?: boolean } middlewareSourceMaps?: boolean modularizeImports?: Record< diff --git a/packages/next/server/config.ts b/packages/next/server/config.ts index 58800ffb2862..e89c80b63344 100644 --- a/packages/next/server/config.ts +++ b/packages/next/server/config.ts @@ -430,6 +430,16 @@ function assignDefaults(userConfig: { [key: string]: any }) { )}), received (${images.contentSecurityPolicy}).\nSee more info here: https://nextjs.org/docs/messages/invalid-images-config` ) } + + const unoptimized = result.experimental?.images?.unoptimized + if ( + typeof unoptimized !== 'undefined' && + typeof unoptimized !== 'boolean' + ) { + throw new Error( + `Specified images.unoptimized should be a boolean, received (${unoptimized}).\nSee more info here: https://nextjs.org/docs/messages/invalid-images-config` + ) + } } if (result.webpack5 === false) { diff --git a/test/integration/export-image-loader/test/index.test.js b/test/integration/export-image-loader/test/index.test.js index 34c2516db70e..b6cd36f14345 100644 --- a/test/integration/export-image-loader/test/index.test.js +++ b/test/integration/export-image-loader/test/index.test.js @@ -81,3 +81,38 @@ describe('Export with custom loader next/image component', () => { await pagesIndexJs.restore() }) }) + +describe('Export with unoptimized next/image component', () => { + beforeAll(async () => { + await nextConfig.replace( + '{ /* replaceme */ }', + JSON.stringify({ + experimental: { + images: { + unoptimized: true, + }, + }, + }) + ) + }) + it('should build successfully', async () => { + await fs.remove(join(appDir, '.next')) + const { code } = await nextBuild(appDir) + if (code !== 0) throw new Error(`build failed with status ${code}`) + }) + + it('should export successfully', async () => { + const { code } = await nextExport(appDir, { outdir }) + if (code !== 0) throw new Error(`export failed with status ${code}`) + }) + + it('should contain img element with same src in html output', async () => { + const html = await fs.readFile(join(outdir, 'index.html')) + const $ = cheerio.load(html) + expect($('img[src="/o.png"]')).toBeDefined() + }) + + afterAll(async () => { + await nextConfig.restore() + }) +}) diff --git a/test/integration/image-component/unoptimized/next.config.js b/test/integration/image-component/unoptimized/next.config.js new file mode 100644 index 000000000000..5733bb27b41f --- /dev/null +++ b/test/integration/image-component/unoptimized/next.config.js @@ -0,0 +1,7 @@ +module.exports = { + experimental: { + images: { + unoptimized: true, + }, + }, +} diff --git a/test/integration/image-component/unoptimized/pages/index.js b/test/integration/image-component/unoptimized/pages/index.js new file mode 100644 index 000000000000..ce47511bc4a9 --- /dev/null +++ b/test/integration/image-component/unoptimized/pages/index.js @@ -0,0 +1,33 @@ +import React from 'react' +import Image from 'next/image' +import testJpg from '../public/test.jpg' + +const Page = () => { + return ( +
+

Unoptimized Config

+

Scroll down...

+
+ +
+ +
+ +
+ +
+ ) +} + +export default Page diff --git a/test/integration/image-component/unoptimized/public/test.jpg b/test/integration/image-component/unoptimized/public/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d536c882412ed3df0dc162823ca5146bcc033499 GIT binary patch literal 6765 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 literal 0 HcmV?d00001 diff --git a/test/integration/image-component/unoptimized/public/test.webp b/test/integration/image-component/unoptimized/public/test.webp new file mode 100644 index 0000000000000000000000000000000000000000..4b306cb0898cc93e83dd6f72566e13cbd1339eaa GIT binary patch literal 1018 zcmWIYbaVT}%)k)t>J$(bV4?5~$lhSgFqctl0^gPIDuB8qHv48H-EEbk|FBuIt(=eGzI!$@2M@ z#TTkpe-pQ_(pI`{*bt+CqK4g>WuD^-8`F(nA0CC+|Bv@@pq)xt!UWH|e=J2I&PYA^ zWlqk)0|9oTHfu`3u4+!vT_4xYrvJXmxxu=z`*eD{~o~@4h9AWfq9;% zqR$+A*q{}?M)}6!)9;$Um~P0+FB3LdlX7i)VN-;n!!5QNkGLvHafX9Y89~=x2}Fh~ z6{=Xw=Xf8owQpHQQhfe*DWBsR$IZ_)v2DNh4;YT~5_h_!EDZl17V~0$^#W^&%R;M9 z1TEjSC+p$CeWvFQFka)8vCV&;F*&+u0)t$j-NbM5|Eshts#iT?RJqI9Y@6$P?sJE; z(L-rLjkkxn89m~?Lr5i{_oxx zSN0*UK=A6}>)z2FvXA5!`;<=WJryi<{b@Bvy@XxL&U~+rMl7KV^LSQ#f56oEGG)cK z=rpw;j*oejQy>@ zO`}}>1>=?-D{WT%kUkpAsF(X!&bNaVHSjask0+H4Wp zPLZ)O`L|h_E7aw-7d((IxEm7R?EL(E9LSfq9oZdPx)1Qg`#-(@lK0TJ8-elG*X7c( z`yam$?FnSP{2}Dw-$B|+seK+ P+udJbdSnVPy+8l}7RKRp literal 0 HcmV?d00001 diff --git a/test/integration/image-component/unoptimized/test/index.test.js b/test/integration/image-component/unoptimized/test/index.test.js new file mode 100644 index 000000000000..383e6f2b3374 --- /dev/null +++ b/test/integration/image-component/unoptimized/test/index.test.js @@ -0,0 +1,120 @@ +/* eslint-env jest */ + +import { join } from 'path' +import { + check, + findPort, + killApp, + launchApp, + nextBuild, + nextStart, +} from 'next-test-utils' +import webdriver from 'next-webdriver' + +const appDir = join(__dirname, '../') +let appPort +let app + +function runTests() { + it('should not optimize any image', async () => { + const browser = await webdriver(appPort, '/') + + expect( + await browser.elementById('internal-image').getAttribute('src') + ).toMatch('data:') + expect( + await browser.elementById('static-image').getAttribute('src') + ).toMatch('data:') + expect( + await browser.elementById('external-image').getAttribute('src') + ).toMatch('data:') + expect(await browser.elementById('eager-image').getAttribute('src')).toBe( + '/test.webp' + ) + + expect( + await browser.elementById('internal-image').getAttribute('srcset') + ).toBeNull() + expect( + await browser.elementById('static-image').getAttribute('srcset') + ).toBeNull() + expect( + await browser.elementById('external-image').getAttribute('srcset') + ).toBeNull() + expect( + await browser.elementById('eager-image').getAttribute('srcset') + ).toBeNull() + + await browser.eval( + `document.getElementById("internal-image").scrollIntoView({behavior: "smooth"})` + ) + await browser.eval( + `document.getElementById("static-image").scrollIntoView({behavior: "smooth"})` + ) + await browser.eval( + `document.getElementById("external-image").scrollIntoView({behavior: "smooth"})` + ) + await browser.eval( + `document.getElementById("eager-image").scrollIntoView({behavior: "smooth"})` + ) + + await check( + () => + browser.eval(`document.getElementById("external-image").currentSrc`), + /placeholder.com/ + ) + + expect( + await browser.elementById('internal-image').getAttribute('src') + ).toBe('/test.png') + expect( + await browser.elementById('static-image').getAttribute('src') + ).toMatch(/test(.*)jpg/) + expect( + await browser.elementById('external-image').getAttribute('src') + ).toBe('https://via.placeholder.com/800/000/FFF.png?text=test') + expect(await browser.elementById('eager-image').getAttribute('src')).toBe( + '/test.webp' + ) + + expect( + await browser.elementById('internal-image').getAttribute('srcset') + ).toBeNull() + expect( + await browser.elementById('static-image').getAttribute('srcset') + ).toBeNull() + expect( + await browser.elementById('external-image').getAttribute('srcset') + ).toBeNull() + expect( + await browser.elementById('eager-image').getAttribute('srcset') + ).toBeNull() + }) +} + +describe('Unoptimized Image Tests', () => { + describe('dev mode', () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + runTests('dev') + }) + + describe('server mode', () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + runTests('server') + }) +}) From 5730ed0f616e653a7585ebe33019ddbdc2bf2950 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 16 Jun 2022 16:04:44 -0500 Subject: [PATCH 066/149] Ensure eslint-config warning/errors are correct (#37760) * Ensure eslint-config warning/errors are correct * fix tests --- packages/eslint-plugin-next/lib/index.js | 48 +++++++++++----------- test/integration/eslint/test/index.test.js | 26 ++++++------ 2 files changed, 38 insertions(+), 36 deletions(-) diff --git a/packages/eslint-plugin-next/lib/index.js b/packages/eslint-plugin-next/lib/index.js index 0f228b4beb2b..aed890316a42 100644 --- a/packages/eslint-plugin-next/lib/index.js +++ b/packages/eslint-plugin-next/lib/index.js @@ -25,36 +25,36 @@ module.exports = { recommended: { plugins: ['@next/next'], rules: { - // Errors - '@next/next/google-font-display': 'error', - '@next/next/google-font-preconnect': 'error', - '@next/next/next-script-for-ga': 'error', - '@next/next/no-before-interactive-script-outside-document': 'error', - '@next/next/no-css-tags': 'error', - '@next/next/no-head-element': 'error', - '@next/next/no-html-link-for-pages': 'error', - '@next/next/no-img-element': 'error', - '@next/next/no-page-custom-font': 'error', - '@next/next/no-styled-jsx-in-document': 'error', - '@next/next/no-sync-scripts': 'error', - '@next/next/no-title-in-document-head': 'error', - '@next/next/no-typos': 'error', - '@next/next/no-unwanted-polyfillio': 'error', - // Warnings - '@next/next/inline-script-id': 'warn', - '@next/next/no-document-import-in-page': 'warn', - '@next/next/no-duplicate-head': 'warn', - '@next/next/no-head-import-in-document': 'warn', - '@next/next/no-server-import-in-page': 'warn', - '@next/next/no-script-component-in-head': 'warn', + // warnings + '@next/next/google-font-display': 'warn', + '@next/next/google-font-preconnect': 'warn', + '@next/next/next-script-for-ga': 'warn', + '@next/next/no-before-interactive-script-outside-document': 'warn', + '@next/next/no-css-tags': 'warn', + '@next/next/no-head-element': 'warn', + '@next/next/no-html-link-for-pages': 'warn', + '@next/next/no-img-element': 'warn', + '@next/next/no-page-custom-font': 'warn', + '@next/next/no-styled-jsx-in-document': 'warn', + '@next/next/no-sync-scripts': 'warn', + '@next/next/no-title-in-document-head': 'warn', + '@next/next/no-typos': 'warn', + '@next/next/no-unwanted-polyfillio': 'warn', + // errors + '@next/next/inline-script-id': 'error', + '@next/next/no-document-import-in-page': 'error', + '@next/next/no-duplicate-head': 'error', + '@next/next/no-head-import-in-document': 'error', + '@next/next/no-server-import-in-page': 'error', + '@next/next/no-script-component-in-head': 'error', }, }, 'core-web-vitals': { plugins: ['@next/next'], extends: ['plugin:@next/next/recommended'], rules: { - '@next/next/no-html-link-for-pages': 'warn', - '@next/next/no-sync-scripts': 'warn', + '@next/next/no-html-link-for-pages': 'error', + '@next/next/no-sync-scripts': 'error', }, }, }, diff --git a/test/integration/eslint/test/index.test.js b/test/integration/eslint/test/index.test.js index 1ded794432b0..9a3f23bf25d7 100644 --- a/test/integration/eslint/test/index.test.js +++ b/test/integration/eslint/test/index.test.js @@ -90,7 +90,9 @@ describe('ESLint', () => { expect(output).toContain( 'Error: Comments inside children section of tag should be placed inside braces' ) - expect(output).toContain('Error: Synchronous scripts should not be used.') + expect(output).toContain( + 'Warning: Synchronous scripts should not be used.' + ) }) test('invalid older eslint version', async () => { @@ -283,11 +285,9 @@ describe('ESLint', () => { const output = stdout + stderr expect(output).toContain( - 'Error: Do not use `` element. Use `` from `next/image` instead.' - ) - expect(output).toContain( - 'Warning: Synchronous scripts should not be used.' + 'Warning: Do not use `` element. Use `` from `next/image` instead.' ) + expect(output).toContain('Error: Synchronous scripts should not be used.') }) test('shows warnings and errors when extending plugin recommended config', async () => { @@ -301,9 +301,11 @@ describe('ESLint', () => { ) const output = stdout + stderr - expect(output).toContain('Error: Synchronous scripts should not be used.') expect(output).toContain( - 'Warning: `` from `next/document` should not be imported outside of `pages/_document.js`.' + 'Warning: Synchronous scripts should not be used.' + ) + expect(output).toContain( + 'Error: `` from `next/document` should not be imported outside of `pages/_document.js`.' ) }) @@ -319,11 +321,9 @@ describe('ESLint', () => { const output = stdout + stderr expect(output).toContain( - 'Error: Do not use `` element. Use `` from `next/image` instead.' - ) - expect(output).toContain( - 'Warning: Synchronous scripts should not be used.' + 'Warning: Do not use `` element. Use `` from `next/image` instead.' ) + expect(output).toContain('Error: Synchronous scripts should not be used.') }) test('success message when no warnings or errors', async () => { @@ -403,7 +403,9 @@ describe('ESLint', () => { expect(output).toContain( 'Error: Comments inside children section of tag should be placed inside braces' ) - expect(output).toContain('Error: Synchronous scripts should not be used.') + expect(output).toContain( + 'Warning: Synchronous scripts should not be used.' + ) }) test('max warnings flag errors when warnings exceed threshold', async () => { From 6ca1de80cdf22da9d0d459777b506f8b01fba30d Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 16 Jun 2022 16:20:34 -0500 Subject: [PATCH 067/149] Add bug report field to issue template (#37766) --- .github/ISSUE_TEMPLATE/1.bug_report.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.github/ISSUE_TEMPLATE/1.bug_report.yml index dbce6318ee4a..7e3c51a9ca0c 100644 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1.bug_report.yml @@ -41,6 +41,12 @@ body: description: A clear and concise description of what you expected to happen. validations: required: true + - type: input + attributes: + label: Link to reproduction + description: A link to a https://stackblitz.com/ or git repo with a minimal reproduction. Minimal reproductions should be created from a create-next-app starter and include only relevant changes to cause the issue if possible. + validations: + required: true - type: textarea attributes: label: To Reproduce From 2d5d43fb75c5bd69235130684b2e0d16926e8148 Mon Sep 17 00:00:00 2001 From: Javi Velasco Date: Thu, 16 Jun 2022 23:43:01 +0200 Subject: [PATCH 068/149] Refactor server routing (#37725) This PR fixes an issue where we have a middleware that rewrites every single request to the same origin while having `i18n` configured. It would be something like: ```typescript import { NextResponse } from 'next/server' export function middleware(req) { return NextResponse.rewrite(req.nextUrl) } ``` In this case we are going to be adding always the `locale` at the beginning of the destination since it is a rewrite. This causes static assets to not match and the whole application to break. I believe this is a potential footgun so in this PR we are addressing the issue by removing the locale from pathname for those cases where we check against the filesystem (e.g. public folder). To achieve this change, this PR introduces some preparation changes and then a refactor of the logic in the server router. After this refactor we are going to be relying on properties that can be defined in the `Route` to decide wether or not we should remove the `basePath`, `locale`, etc instead of checking which _type_ of route it is that we are matching. Overall this simplifies quite a lot the server router. The way we are testing the mentioned issue is by adding a default rewrite in the rewrite tests middleware. --- packages/next/server/base-server.ts | 7 +- packages/next/server/dev/next-dev-server.ts | 1 - packages/next/server/next-server.ts | 11 +- packages/next/server/router.ts | 177 ++++++++---------- packages/next/server/server-route-utils.ts | 51 +++-- packages/next/server/web/next-url.ts | 3 + .../shared/lib/router/utils/add-locale.ts | 8 +- .../router/utils/format-next-pathname-info.ts | 13 +- .../e2e/middleware-rewrites/app/middleware.js | 2 + .../public/files/texts/file.txt | 1 + test/integration/i18n-support/test/shared.js | 20 +- test/unit/web-runtime/next-url.test.ts | 31 +++ 12 files changed, 189 insertions(+), 136 deletions(-) create mode 100644 test/integration/i18n-support-base-path/public/files/texts/file.txt diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index 43905b1e1802..5220d13e7f5c 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -705,7 +705,6 @@ export default abstract class Server { } protected generateRoutes(): { - basePath: string headers: Route[] rewrites: { beforeFiles: Route[] @@ -719,7 +718,7 @@ export default abstract class Server { pageChecker: PageChecker useFileSystemPublicRoutes: boolean dynamicRoutes: DynamicRoutes | undefined - locales: string[] + nextConfig: NextConfig } { const publicRoutes = this.generatePublicRoutes() const imageRoutes = this.generateImageRoutes() @@ -834,6 +833,7 @@ export default abstract class Server { const catchAllRoute: Route = { match: getPathMatch('/:path*'), type: 'route', + matchesLocale: true, name: 'Catchall render', fn: async (req, res, _params, parsedUrl) => { let { pathname, query } = parsedUrl @@ -899,9 +899,8 @@ export default abstract class Server { catchAllMiddleware, useFileSystemPublicRoutes, dynamicRoutes: this.dynamicRoutes, - basePath: this.nextConfig.basePath, pageChecker: this.hasPage.bind(this), - locales: this.nextConfig.i18n?.locales || [], + nextConfig: this.nextConfig, } } diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index c827f599180b..1bcc41e5a63c 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -948,7 +948,6 @@ export default class DevServer extends Server { fsRoutes.push({ match: getPathMatch('/:path*'), type: 'route', - requireBasePath: false, name: 'catchall public directory route', fn: async (req, res, params, parsedUrl) => { const { pathname } = parsedUrl diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 5beb225713fd..351d559aa434 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -381,6 +381,7 @@ export default class NextNodeServer extends BaseServer { return [ { match: getPathMatch('/:path*'), + matchesBasePath: true, name: 'public folder catchall', fn: async (req, res, params, parsedUrl) => { const pathParts: string[] = params.path || [] @@ -973,7 +974,7 @@ export default class NextNodeServer extends BaseServer { let fallback: Route[] = [] if (!this.minimalMode) { - const buildRewrite = (rewrite: Rewrite, check = true) => { + const buildRewrite = (rewrite: Rewrite, check = true): Route => { const rewriteRoute = getCustomRoute({ type: 'rewrite', rule: rewrite, @@ -985,6 +986,10 @@ export default class NextNodeServer extends BaseServer { type: rewriteRoute.type, name: `Rewrite route ${rewriteRoute.source}`, match: rewriteRoute.match, + matchesBasePath: true, + matchesLocale: true, + matchesLocaleAPIRoutes: true, + matchesTrailingSlash: true, fn: async (req, res, params, parsedUrl) => { const { newUrl, parsedDestination } = prepareDestination({ appendParamsToQuery: true, @@ -1011,7 +1016,7 @@ export default class NextNodeServer extends BaseServer { query: parsedDestination.query, } }, - } as Route + } } if (Array.isArray(this.customRoutes.rewrites)) { @@ -1264,6 +1269,8 @@ export default class NextNodeServer extends BaseServer { return { match: getPathMatch('/:path*'), + matchesBasePath: true, + matchesLocale: true, type: 'route', name: 'middleware catchall', fn: async (req, res, _params, parsed) => { diff --git a/packages/next/server/router.ts b/packages/next/server/router.ts index 16bc54bd56c0..20518b20a2fc 100644 --- a/packages/next/server/router.ts +++ b/packages/next/server/router.ts @@ -1,3 +1,4 @@ +import type { NextConfig } from './config' import type { ParsedUrlQuery } from 'querystring' import type { BaseNextRequest, BaseNextResponse } from './base-http' import type { @@ -13,6 +14,8 @@ import { RouteHas } from '../lib/load-custom-routes' import { matchHas } from '../shared/lib/router/utils/prepare-destination' import { removePathPrefix } from '../shared/lib/router/utils/remove-path-prefix' import { getRequestMeta } from './request-meta' +import { formatNextPathnameInfo } from '../shared/lib/router/utils/format-next-pathname-info' +import { getNextPathnameInfo } from '../shared/lib/router/utils/get-next-pathname-info' type RouteResult = { finished: boolean @@ -27,7 +30,10 @@ export type Route = { check?: boolean statusCode?: number name: string - requireBasePath?: false + matchesBasePath?: true + matchesLocale?: true + matchesLocaleAPIRoutes?: true + matchesTrailingSlash?: true internal?: true fn: ( req: BaseNextRequest, @@ -41,10 +47,7 @@ export type DynamicRoutes = Array<{ page: string; match: RouteMatch }> export type PageChecker = (pathname: string) => Promise -const customRouteTypes = new Set(['rewrite', 'redirect', 'header']) - export default class Router { - basePath: string headers: Route[] fsRoutes: Route[] redirects: Route[] @@ -58,11 +61,10 @@ export default class Router { pageChecker: PageChecker dynamicRoutes: DynamicRoutes useFileSystemPublicRoutes: boolean - locales: string[] seenRequests: Set + nextConfig: NextConfig constructor({ - basePath = '', headers = [], fsRoutes = [], rewrites = { @@ -76,9 +78,8 @@ export default class Router { dynamicRoutes = [], pageChecker, useFileSystemPublicRoutes, - locales = [], + nextConfig, }: { - basePath: string headers: Route[] fsRoutes: Route[] rewrites: { @@ -92,9 +93,9 @@ export default class Router { dynamicRoutes: DynamicRoutes | undefined pageChecker: PageChecker useFileSystemPublicRoutes: boolean - locales: string[] + nextConfig: NextConfig }) { - this.basePath = basePath + this.nextConfig = nextConfig this.headers = headers this.fsRoutes = fsRoutes this.rewrites = rewrites @@ -104,10 +105,17 @@ export default class Router { this.catchAllMiddleware = catchAllMiddleware this.dynamicRoutes = dynamicRoutes this.useFileSystemPublicRoutes = useFileSystemPublicRoutes - this.locales = locales this.seenRequests = new Set() } + get locales() { + return this.nextConfig.i18n?.locales || [] + } + + get basePath() { + return this.nextConfig.basePath || '' + } + setDynamicRoutes(routes: DynamicRoutes = []) { this.dynamicRoutes = routes } @@ -228,7 +236,6 @@ export default class Router { { type: 'route', name: 'page checker', - requireBasePath: false, match: getPathMatch('/:path*'), fn: async ( checkerReq, @@ -262,7 +269,6 @@ export default class Router { { type: 'route', name: 'dynamic route/page check', - requireBasePath: false, match: getPathMatch('/:path*'), fn: async ( _checkerReq, @@ -283,86 +289,62 @@ export default class Router { // disabled ...(this.useFileSystemPublicRoutes ? [this.catchAllRoute] : []), ] - const originallyHadBasePath = - !this.basePath || getRequestMeta(req, '_nextHadBasePath') for (const testRoute of allRoutes) { - // if basePath is being used, the basePath will still be included - // in the pathname here to allow custom-routes to require containing - // it or not, filesystem routes and pages must always include the basePath - // if it is set - let currentPathname = parsedUrlUpdated.pathname as string - const originalPathname = currentPathname - const requireBasePath = testRoute.requireBasePath !== false - const isCustomRoute = customRouteTypes.has(testRoute.type) - const isPublicFolderCatchall = - testRoute.name === 'public folder catchall' - const isMiddlewareCatchall = testRoute.name === 'middleware catchall' - const keepBasePath = - isCustomRoute || isPublicFolderCatchall || isMiddlewareCatchall - const keepLocale = isCustomRoute - - const currentPathnameNoBasePath = removePathPrefix( - currentPathname, - this.basePath - ) - - if (!keepBasePath) { - currentPathname = currentPathnameNoBasePath + const originalPathname = parsedUrlUpdated.pathname as string + const pathnameInfo = getNextPathnameInfo(originalPathname, { + nextConfig: this.nextConfig, + parseData: false, + }) + + if ( + pathnameInfo.locale && + !testRoute.matchesLocaleAPIRoutes && + pathnameInfo.pathname.match(/^\/api(?:\/|$)/) + ) { + continue } - const localePathResult = normalizeLocalePath( - currentPathnameNoBasePath, - this.locales - ) + if (getRequestMeta(req, '_nextHadBasePath')) { + pathnameInfo.basePath = this.basePath + } - const activeBasePath = keepBasePath ? this.basePath : '' + const basePath = pathnameInfo.basePath + if (!testRoute.matchesBasePath) { + pathnameInfo.basePath = '' + } - // don't match API routes when they are locale prefixed - // e.g. /api/hello shouldn't match /en/api/hello as a page - // rewrites/redirects can match though if ( - !isCustomRoute && - localePathResult.detectedLocale && - localePathResult.pathname.match(/^\/api(?:\/|$)/) + testRoute.matchesLocale && + parsedUrl.query.__nextLocale && + !pathnameInfo.locale ) { - continue + pathnameInfo.locale = parsedUrl.query.__nextLocale } - if (keepLocale) { - if ( - !testRoute.internal && - parsedUrl.query.__nextLocale && - !localePathResult.detectedLocale - ) { - currentPathname = `${activeBasePath}/${ - parsedUrl.query.__nextLocale - }${ - currentPathnameNoBasePath === '/' ? '' : currentPathnameNoBasePath - }` - } + if ( + !testRoute.matchesLocale && + pathnameInfo.locale === this.nextConfig.i18n?.defaultLocale && + pathnameInfo.locale + ) { + pathnameInfo.locale = undefined + } - if ( - getRequestMeta(req, '__nextHadTrailingSlash') && - !currentPathname.endsWith('/') - ) { - currentPathname += '/' - } - } else { - currentPathname = `${ - getRequestMeta(req, '_nextHadBasePath') ? activeBasePath : '' - }${ - activeBasePath && currentPathnameNoBasePath === '/' - ? '' - : currentPathnameNoBasePath - }` + if ( + testRoute.matchesTrailingSlash && + getRequestMeta(req, '__nextHadTrailingSlash') + ) { + pathnameInfo.trailingSlash = true } - let newParams = testRoute.match(currentPathname) + const matchPathname = formatNextPathnameInfo({ + ignorePrefix: true, + ...pathnameInfo, + }) + let newParams = testRoute.match(matchPathname) if (testRoute.has && newParams) { const hasParams = matchHas(req, testRoute.has, parsedUrlUpdated.query) - if (hasParams) { Object.assign(newParams, hasParams) } else { @@ -370,27 +352,23 @@ export default class Router { } } - // Check if the match function matched - if (newParams) { - // since we require basePath be present for non-custom-routes we - // 404 here when we matched an fs route - if (!keepBasePath) { - if ( - !originallyHadBasePath && - !getRequestMeta(req, '_nextDidRewrite') - ) { - if (requireBasePath) { - // consider this a non-match so the 404 renders - return false - } - // page checker occurs before rewrites so we need to continue - // to check those since they don't always require basePath - continue - } - - parsedUrlUpdated.pathname = currentPathname - } + /** + * If it is a matcher that doesn't match the basePath (like the public + * directory) but Next.js is configured to use a basePath that was + * never there, we consider this an invalid match and keep routing. + */ + if ( + newParams && + this.basePath && + !testRoute.matchesBasePath && + !getRequestMeta(req, '_nextDidRewrite') && + !basePath + ) { + continue + } + if (newParams) { + parsedUrlUpdated.pathname = matchPathname const result = await testRoute.fn( req, res, @@ -398,16 +376,13 @@ export default class Router { parsedUrlUpdated ) - // The response was handled if (result.finished) { return true } // since the fs route didn't finish routing we need to re-add the // basePath to continue checking with the basePath present - if (!keepBasePath) { - parsedUrlUpdated.pathname = originalPathname - } + parsedUrlUpdated.pathname = originalPathname if (result.pathname) { parsedUrlUpdated.pathname = result.pathname diff --git a/packages/next/server/server-route-utils.ts b/packages/next/server/server-route-utils.ts index 881ca8f14705..eecfcb14fff7 100644 --- a/packages/next/server/server-route-utils.ts +++ b/packages/next/server/server-route-utils.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-redeclare */ import type { Header, Redirect, @@ -19,15 +20,27 @@ import { stringify as stringifyQs } from 'querystring' import { format as formatUrl } from 'url' import { normalizeRepeatedSlashes } from '../shared/lib/utils' -export const getCustomRoute = ({ - type, - rule, - restrictedRedirectPaths, -}: { +export function getCustomRoute(params: { + rule: Header + type: RouteType + restrictedRedirectPaths: string[] +}): Route & Header +export function getCustomRoute(params: { + rule: Rewrite + type: RouteType + restrictedRedirectPaths: string[] +}): Route & Rewrite +export function getCustomRoute(params: { + rule: Redirect + type: RouteType + restrictedRedirectPaths: string[] +}): Route & Redirect +export function getCustomRoute(params: { rule: Rewrite | Redirect | Header type: RouteType restrictedRedirectPaths: string[] -}) => { +}): (Route & Rewrite) | (Route & Header) | (Route & Rewrite) { + const { rule, type, restrictedRedirectPaths } = params const match = getPathMatch(rule.source, { strict: true, removeUnnamedParams: true, @@ -46,7 +59,7 @@ export const getCustomRoute = ({ match, name: type, fn: async (_req, _res, _params, _parsedUrl) => ({ finished: false }), - } as Route & Rewrite & Header + } } export const createHeaderRoute = ({ @@ -55,7 +68,7 @@ export const createHeaderRoute = ({ }: { rule: Header restrictedRedirectPaths: string[] -}) => { +}): Route => { const headerRoute = getCustomRoute({ type: 'header', rule, @@ -63,13 +76,16 @@ export const createHeaderRoute = ({ }) return { match: headerRoute.match, + matchesBasePath: true, + matchesLocale: true, + matchesLocaleAPIRoutes: true, + matchesTrailingSlash: true, has: headerRoute.has, type: headerRoute.type, name: `${headerRoute.type} ${headerRoute.source} header route`, fn: async (_req, res, params, _parsedUrl) => { const hasParams = Object.keys(params).length > 0 - - for (const header of (headerRoute as Header).headers) { + for (const header of headerRoute.headers) { let { key, value } = header if (hasParams) { key = compileNonPath(key, params) @@ -79,7 +95,7 @@ export const createHeaderRoute = ({ } return { finished: false } }, - } as Route + } } export const createRedirectRoute = ({ @@ -88,7 +104,7 @@ export const createRedirectRoute = ({ }: { rule: Redirect restrictedRedirectPaths: string[] -}) => { +}): Route => { const redirectRoute = getCustomRoute({ type: 'redirect', rule, @@ -98,6 +114,10 @@ export const createRedirectRoute = ({ internal: redirectRoute.internal, type: redirectRoute.type, match: redirectRoute.match, + matchesBasePath: true, + matchesLocale: redirectRoute.internal ? undefined : true, + matchesLocaleAPIRoutes: true, + matchesTrailingSlash: true, has: redirectRoute.has, statusCode: redirectRoute.statusCode, name: `Redirect route ${redirectRoute.source}`, @@ -121,10 +141,7 @@ export const createRedirectRoute = ({ } res - .redirect( - updatedDestination, - getRedirectStatus(redirectRoute as Redirect) - ) + .redirect(updatedDestination, getRedirectStatus(redirectRoute)) .body(updatedDestination) .send() @@ -132,7 +149,7 @@ export const createRedirectRoute = ({ finished: true, } }, - } as Route + } } // since initial query values are decoded by querystring.parse diff --git a/packages/next/server/web/next-url.ts b/packages/next/server/web/next-url.ts index d559db592339..e1f515bfb2e1 100644 --- a/packages/next/server/web/next-url.ts +++ b/packages/next/server/web/next-url.ts @@ -25,6 +25,7 @@ export class NextURL { domainLocale?: DomainLocale locale?: string options: Options + trailingSlash?: boolean url: URL } @@ -77,6 +78,7 @@ export class NextURL { this[Internal].basePath = pathnameInfo.basePath ?? '' this[Internal].buildId = pathnameInfo.buildId this[Internal].locale = pathnameInfo.locale ?? defaultLocale + this[Internal].trailingSlash = pathnameInfo.trailingSlash } private formatPathname() { @@ -88,6 +90,7 @@ export class NextURL { : undefined, locale: this[Internal].locale, pathname: this[Internal].url.pathname, + trailingSlash: this[Internal].trailingSlash, }) } diff --git a/packages/next/shared/lib/router/utils/add-locale.ts b/packages/next/shared/lib/router/utils/add-locale.ts index 8a9961a71b79..1365d468cff9 100644 --- a/packages/next/shared/lib/router/utils/add-locale.ts +++ b/packages/next/shared/lib/router/utils/add-locale.ts @@ -9,13 +9,15 @@ import { pathHasPrefix } from './path-has-prefix' export function addLocale( path: string, locale?: string | false, - defaultLocale?: string + defaultLocale?: string, + ignorePrefix?: boolean ) { if ( locale && locale !== defaultLocale && - !pathHasPrefix(path.toLowerCase(), `/${locale.toLowerCase()}`) && - !pathHasPrefix(path.toLowerCase(), '/api') + (ignorePrefix || + (!pathHasPrefix(path.toLowerCase(), `/${locale.toLowerCase()}`) && + !pathHasPrefix(path.toLowerCase(), '/api'))) ) { return addPathPrefix(path, `/${locale}`) } diff --git a/packages/next/shared/lib/router/utils/format-next-pathname-info.ts b/packages/next/shared/lib/router/utils/format-next-pathname-info.ts index 88cfee77ea69..784bd8adc8d0 100644 --- a/packages/next/shared/lib/router/utils/format-next-pathname-info.ts +++ b/packages/next/shared/lib/router/utils/format-next-pathname-info.ts @@ -1,17 +1,20 @@ import type { NextPathnameInfo } from './get-next-pathname-info' +import { removeTrailingSlash } from './remove-trailing-slash' import { addPathPrefix } from './add-path-prefix' import { addPathSuffix } from './add-path-suffix' import { addLocale } from './add-locale' interface ExtendedInfo extends NextPathnameInfo { defaultLocale?: string + ignorePrefix?: boolean } export function formatNextPathnameInfo(info: ExtendedInfo) { let pathname = addLocale( info.pathname, info.locale, - info.buildId ? undefined : info.defaultLocale + info.buildId ? undefined : info.defaultLocale, + info.ignorePrefix ) if (info.buildId) { @@ -22,7 +25,9 @@ export function formatNextPathnameInfo(info: ExtendedInfo) { } pathname = addPathPrefix(pathname, info.basePath) - return info.trailingSlash && !info.buildId && !pathname.endsWith('/') - ? addPathSuffix(pathname, '/') - : pathname + return info.trailingSlash + ? !info.buildId && !pathname.endsWith('/') + ? addPathSuffix(pathname, '/') + : pathname + : removeTrailingSlash(pathname) } diff --git a/test/e2e/middleware-rewrites/app/middleware.js b/test/e2e/middleware-rewrites/app/middleware.js index 6042a2c06e6c..241b52a02307 100644 --- a/test/e2e/middleware-rewrites/app/middleware.js +++ b/test/e2e/middleware-rewrites/app/middleware.js @@ -117,4 +117,6 @@ export async function middleware(request) { url.searchParams.set('locale', url.locale) return NextResponse.rewrite(url) } + + return NextResponse.rewrite(request.nextUrl) } diff --git a/test/integration/i18n-support-base-path/public/files/texts/file.txt b/test/integration/i18n-support-base-path/public/files/texts/file.txt new file mode 100644 index 000000000000..811b379a89ba --- /dev/null +++ b/test/integration/i18n-support-base-path/public/files/texts/file.txt @@ -0,0 +1 @@ +hello from file.txt \ No newline at end of file diff --git a/test/integration/i18n-support/test/shared.js b/test/integration/i18n-support/test/shared.js index b95c70805c04..34c48c021fe9 100644 --- a/test/integration/i18n-support/test/shared.js +++ b/test/integration/i18n-support/test/shared.js @@ -71,8 +71,14 @@ export function runTests(ctx) { undefined, { redirect: 'manual' } ) - expect(res.status).toBe(404) - expect(await res.text()).toContain('could not be found') + + if (locale !== 'en-US') { + expect(res.status).toBe(404) + expect(await res.text()).toContain('could not be found') + } else { + // We only 404 for non-default locale + expect(res.status).toBe(200) + } } } }) @@ -85,8 +91,14 @@ export function runTests(ctx) { undefined, { redirect: 'manual' } ) - expect(res.status).toBe(404) - expect(await res.text()).toContain('could not be found') + + if (locale !== 'en-US') { + expect(res.status).toBe(404) + expect(await res.text()).toContain('could not be found') + } else { + // We only 404 for non-default locale + expect(res.status).toBe(200) + } } }) diff --git a/test/unit/web-runtime/next-url.test.ts b/test/unit/web-runtime/next-url.test.ts index 969347902bc2..582466a38d07 100644 --- a/test/unit/web-runtime/next-url.test.ts +++ b/test/unit/web-runtime/next-url.test.ts @@ -337,6 +337,37 @@ it('preserves the trailingSlash', async () => { expect(String(url)).toEqual('http://localhost:3000/es/') }) +it('formats correctly the trailingSlash for root pages', async () => { + const url = new NextURL('/', { + base: 'http://127.0.0.1:3000', + nextConfig: { + trailingSlash: true, + i18n: { + defaultLocale: 'en', + locales: ['en', 'es', 'fr'], + }, + }, + }) + + url.locale = 'es' + expect(String(url)).toEqual('http://localhost:3000/es/') +}) + +it('keeps the trailingSlash format for non root pages', async () => { + const url = new NextURL('/es', { + base: 'http://127.0.0.1:3000', + nextConfig: { + trailingSlash: true, + i18n: { + defaultLocale: 'en', + locales: ['en', 'es', 'fr'], + }, + }, + }) + + expect(String(url)).toEqual('http://localhost:3000/es') +}) + it('allows to preserve a json request', async () => { const url = new NextURL( 'http://localhost:3000/_next/static/development/_devMiddlewareManifest.json', From c480726da2ed8385a792e2155fa09282436bfa3c Mon Sep 17 00:00:00 2001 From: Lee Robinson Date: Thu, 16 Jun 2022 16:59:54 -0500 Subject: [PATCH 069/149] Update 4MB API Routes warning error guide. (#37779) We added documentation for this, but didn't post it back to the error guide, which is linked when you'd hit this limit. https://github.com/vercel/next.js/pull/34700 --- errors/api-routes-response-size-limit.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/errors/api-routes-response-size-limit.md b/errors/api-routes-response-size-limit.md index 2b557cc852ac..4bc2c5c3a36a 100644 --- a/errors/api-routes-response-size-limit.md +++ b/errors/api-routes-response-size-limit.md @@ -2,12 +2,27 @@ #### Why This Error Occurred -API Routes are meant to respond quickly and are not intended to support responding with large amounts of data. The maximum size of responses is 4 MB. +API Routes are meant to respond quickly and are not intended to support responding with large amounts of data. The maximum size of responses is 4MB. #### Possible Ways to Fix It -Limit your API Route responses to less than 4 MB. If you need to support sending large files to the client, you should consider using a dedicated media host for those assets. See link below for suggestions. +If you are not using Next.js in a serverless environment, and understand the performance implications of not using a CDN or dedicated media host, you can set this limit to `false` inside your API Route. -### Useful Links +```js +export const config = { + api: { + responseLimit: false, + }, +} +``` -[Tips to avoid the 5 MB limit](https://vercel.com/support/articles/how-to-bypass-vercel-5mb-body-size-limit-serverless-functions) +`responseLimit` can also take the number of bytes or any string format supported by `bytes`, for example `1000`, `'500kb'` or `'3mb'`. +This value will be the maximum response size before a warning is displayed. The default value is 4MB. + +```js +export const config = { + api: { + responseLimit: '8mb', + }, +} +``` From e4b1fb07937bbcf1fbd96bec63b7ead81967cfc0 Mon Sep 17 00:00:00 2001 From: dfelsie <63637073+dfelsie@users.noreply.github.com> Date: Thu, 16 Jun 2022 23:21:06 -0400 Subject: [PATCH 070/149] Update Chakra-UI dependencies for React 18 (#37772) Title self-explanatory: the package.json inside of the with-chakra-ui example template has been updated to newer versions Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- examples/with-chakra-ui/package.json | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/examples/with-chakra-ui/package.json b/examples/with-chakra-ui/package.json index aa973b56cc55..299146a71ca8 100644 --- a/examples/with-chakra-ui/package.json +++ b/examples/with-chakra-ui/package.json @@ -6,19 +6,20 @@ "start": "next start" }, "dependencies": { - "@chakra-ui/icons": "^1.1.7", - "@chakra-ui/react": "1.8.8", - "@emotion/react": "^11", - "@emotion/styled": "^11", - "framer-motion": "^6", + "@chakra-ui/icons": "^2.0.2", + "@chakra-ui/react": "^2.2.1", + "@chakra-ui/theme-tools": "^2.0.2", + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.9.0", + "framer-motion": "^6.3.0", "next": "latest", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { - "@types/node": "^14.6.0", - "@types/react": "^17.0.3", - "@types/react-dom": "^17.0.3", - "typescript": "4.3.2" + "@types/node": "^18.0.0", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "typescript": "^4.7.2" } } From c2b80064853301e746ca100b6a49de04b8f5b593 Mon Sep 17 00:00:00 2001 From: Damien Simonin Feugas Date: Fri, 17 Jun 2022 17:06:30 +0200 Subject: [PATCH 071/149] refactor(middleware): leverages edge-runtime builtins to decorate errors in dev (#37718) ### What's in there? This is a followup of https://github.com/vercel/next.js/pull/37695. For the dev server to clean stacktraces, we're decorating errors caught during code evaluation (`getServerSideProps` or middleware). However, when these errors are asynchronously raised, we can't decorate them before processing them, leading to this fallback logic: https://github.com/vercel/next.js/blob/bf7bf8217f0d3df37d740a0cebf2f140e9c518b6/packages/next/server/dev/next-dev-server.ts#L775-L779 Thanks to latest improvement of the edge-runtime in 1.1.0-beta.4, we can now catch unhandled rejection and uncaught exception, and decorate them. ### How to test? Please reuse the existing tests who already covered these cases: `pnpm testheadless --testPathPattern middleware-dev-errors` Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- package.json | 2 +- .../@edge-runtime/primitives/index.js | 1094 +++++++++-------- .../@edge-runtime/primitives/package.json | 2 +- packages/next/compiled/edge-runtime/index.js | 2 +- packages/next/package.json | 4 +- packages/next/server/dev/next-dev-server.ts | 6 +- packages/next/server/web/sandbox/context.ts | 32 +- .../src/internal/helpers/nodeStackFrames.ts | 15 +- packages/react-dev-overlay/src/middleware.ts | 5 +- pnpm-lock.yaml | 94 +- 10 files changed, 648 insertions(+), 608 deletions(-) mode change 100755 => 100644 packages/next/compiled/@edge-runtime/primitives/index.js diff --git a/package.json b/package.json index c1061716ec42..61f85969e612 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "@babel/plugin-proposal-object-rest-spread": "7.14.7", "@babel/preset-flow": "7.14.5", "@babel/preset-react": "7.14.5", - "@edge-runtime/jest-environment": "1.1.0-beta.2", + "@edge-runtime/jest-environment": "1.1.0-beta.6", "@fullhuman/postcss-purgecss": "1.3.0", "@mdx-js/loader": "0.18.0", "@next/bundle-analyzer": "workspace:*", diff --git a/packages/next/compiled/@edge-runtime/primitives/index.js b/packages/next/compiled/@edge-runtime/primitives/index.js old mode 100755 new mode 100644 index c60075402fe3..b9a8e3ffacfa --- a/packages/next/compiled/@edge-runtime/primitives/index.js +++ b/packages/next/compiled/@edge-runtime/primitives/index.js @@ -3027,9 +3027,9 @@ var require_ponyfill = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/isFunction.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/isFunction.js var require_isFunction = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/isFunction.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/isFunction.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isFunction = void 0; @@ -3038,9 +3038,9 @@ var require_isFunction = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/blobHelpers.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/blobHelpers.js var require_blobHelpers = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/blobHelpers.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/blobHelpers.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sliceBlob = exports.consumeBlobParts = void 0; @@ -3118,9 +3118,9 @@ var require_blobHelpers = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/Blob.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/Blob.js var require_Blob = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/Blob.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/Blob.js"(exports) { "use strict"; var __classPrivateFieldGet2 = exports && exports.__classPrivateFieldGet || function(receiver, state, kind, f) { if (kind === "a" && !f) @@ -3243,9 +3243,9 @@ var require_Blob = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/File.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/File.js var require_File = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/File.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/File.js"(exports) { "use strict"; var __classPrivateFieldSet2 = exports && exports.__classPrivateFieldSet || function(receiver, state, value, kind, f) { if (kind === "m") @@ -3297,9 +3297,9 @@ var require_File = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/isFile.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/isFile.js var require_isFile = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/isFile.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/isFile.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isFile = void 0; @@ -3309,9 +3309,9 @@ var require_isFile = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/deprecateConstructorEntries.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/deprecateConstructorEntries.js var require_deprecateConstructorEntries = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/deprecateConstructorEntries.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/deprecateConstructorEntries.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deprecateConstructorEntries = void 0; @@ -3321,9 +3321,9 @@ var require_deprecateConstructorEntries = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/FormData.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/FormData.js var require_FormData = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/FormData.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/FormData.js"(exports) { "use strict"; var __classPrivateFieldGet2 = exports && exports.__classPrivateFieldGet || function(receiver, state, kind, f) { if (kind === "a" && !f) @@ -3458,9 +3458,9 @@ var require_FormData = __commonJS({ } }); -// ../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/index.js +// ../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/index.js var require_cjs2 = __commonJS({ - "../../node_modules/.pnpm/formdata-node@4.3.2/node_modules/formdata-node/lib/cjs/index.js"(exports) { + "../../node_modules/.pnpm/formdata-node@4.3.3/node_modules/formdata-node/lib/cjs/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -13057,9 +13057,9 @@ var require_web_crypto = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/constants.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/constants.js var require_constants2 = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/constants.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/constants.js"(exports, module2) { "use strict"; var corsSafeListedMethods = ["GET", "HEAD", "POST"]; var nullBodyStatus = [101, 204, 205, 304]; @@ -13125,9 +13125,9 @@ var require_constants2 = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/symbols.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/symbols.js var require_symbols = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/symbols.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/symbols.js"(exports, module2) { module2.exports = { kClose: Symbol("close"), kDestroy: Symbol("destroy"), @@ -13207,9 +13207,9 @@ var require_http = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/symbols.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/symbols.js var require_symbols2 = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/symbols.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/symbols.js"(exports, module2) { "use strict"; module2.exports = { kUrl: Symbol("url"), @@ -13222,9 +13222,9 @@ var require_symbols2 = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/errors.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/errors.js var require_errors = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/errors.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/errors.js"(exports, module2) { "use strict"; var AbortError = class extends Error { constructor() { @@ -13463,9 +13463,9 @@ var require_web_streams = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/util.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/util.js var require_util = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/util.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/util.js"(exports, module2) { "use strict"; var assert = require("assert"); var { kDestroyed, kBodyUsed } = require_symbols(); @@ -13798,274 +13798,9 @@ var require_util = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/headers.js -var require_headers = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/headers.js"(exports, module2) { - "use strict"; - var { validateHeaderName, validateHeaderValue } = require_http(); - var { kHeadersList } = require_symbols(); - var { kGuard } = require_symbols2(); - var { kEnumerableProperty } = require_util(); - var kHeadersMap = Symbol("headers map"); - var kHeadersSortedMap = Symbol("headers map sorted"); - function normalizeAndValidateHeaderName(name) { - if (name === void 0) { - throw new TypeError(`Header name ${name}`); - } - const normalizedHeaderName = name.toLocaleLowerCase(); - validateHeaderName(normalizedHeaderName); - return normalizedHeaderName; - } - __name(normalizeAndValidateHeaderName, "normalizeAndValidateHeaderName"); - function normalizeAndValidateHeaderValue(name, value) { - if (value === void 0) { - throw new TypeError(value, name); - } - const normalizedHeaderValue = `${value}`.replace(/^[\n\t\r\x20]+|[\n\t\r\x20]+$/g, ""); - validateHeaderValue(name, normalizedHeaderValue); - return normalizedHeaderValue; - } - __name(normalizeAndValidateHeaderValue, "normalizeAndValidateHeaderValue"); - function fill(headers, object) { - if (object[Symbol.iterator]) { - for (let header of object) { - if (!header[Symbol.iterator]) { - throw new TypeError(); - } - if (typeof header === "string") { - throw new TypeError(); - } - if (!Array.isArray(header)) { - header = [...header]; - } - if (header.length !== 2) { - throw new TypeError(); - } - headers.append(header[0], header[1]); - } - } else if (object && typeof object === "object") { - for (const header of Object.entries(object)) { - headers.append(header[0], header[1]); - } - } else { - throw TypeError(); - } - } - __name(fill, "fill"); - var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); - function makeHeadersIterator(iterator) { - const i = { - next() { - if (Object.getPrototypeOf(this) !== i) { - throw new TypeError("'next' called on an object that does not implement interface Headers Iterator."); - } - return iterator.next(); - }, - [Symbol.toStringTag]: "Headers Iterator" - }; - Object.setPrototypeOf(i, esIteratorPrototype); - return Object.setPrototypeOf({}, i); - } - __name(makeHeadersIterator, "makeHeadersIterator"); - var HeadersList = class { - constructor(init) { - if (init instanceof HeadersList) { - this[kHeadersMap] = new Map(init[kHeadersMap]); - this[kHeadersSortedMap] = init[kHeadersSortedMap]; - } else { - this[kHeadersMap] = new Map(init); - this[kHeadersSortedMap] = null; - } - } - clear() { - this[kHeadersMap].clear(); - this[kHeadersSortedMap] = null; - } - append(name, value) { - this[kHeadersSortedMap] = null; - const normalizedName = normalizeAndValidateHeaderName(name); - const normalizedValue = normalizeAndValidateHeaderValue(name, value); - const exists = this[kHeadersMap].get(normalizedName); - if (exists) { - this[kHeadersMap].set(normalizedName, `${exists}, ${normalizedValue}`); - } else { - this[kHeadersMap].set(normalizedName, `${normalizedValue}`); - } - } - set(name, value) { - this[kHeadersSortedMap] = null; - const normalizedName = normalizeAndValidateHeaderName(name); - return this[kHeadersMap].set(normalizedName, value); - } - delete(name) { - this[kHeadersSortedMap] = null; - const normalizedName = normalizeAndValidateHeaderName(name); - return this[kHeadersMap].delete(normalizedName); - } - get(name) { - var _a2; - const normalizedName = normalizeAndValidateHeaderName(name); - return (_a2 = this[kHeadersMap].get(normalizedName)) != null ? _a2 : null; - } - has(name) { - const normalizedName = normalizeAndValidateHeaderName(name); - return this[kHeadersMap].has(normalizedName); - } - keys() { - return this[kHeadersMap].keys(); - } - values() { - return this[kHeadersMap].values(); - } - entries() { - return this[kHeadersMap].entries(); - } - [Symbol.iterator]() { - return this[kHeadersMap][Symbol.iterator](); - } - }; - __name(HeadersList, "HeadersList"); - var Headers = class { - constructor(...args) { - var _a2; - if (args[0] !== void 0 && !(typeof args[0] === "object" && args[0] != null) && !Array.isArray(args[0])) { - throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(record or sequence>"); - } - const init = args.length >= 1 ? (_a2 = args[0]) != null ? _a2 : {} : {}; - this[kHeadersList] = new HeadersList(); - this[kGuard] = "none"; - fill(this, init); - } - get [Symbol.toStringTag]() { - return this.constructor.name; - } - append(name, value) { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - if (arguments.length < 2) { - throw new TypeError(`Failed to execute 'append' on 'Headers': 2 arguments required, but only ${arguments.length} present.`); - } - if (this[kGuard] === "immutable") { - throw new TypeError("immutable"); - } else if (this[kGuard] === "request-no-cors") { - } - return this[kHeadersList].append(String(name), String(value)); - } - delete(name) { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - if (arguments.length < 1) { - throw new TypeError(`Failed to execute 'delete' on 'Headers': 1 argument required, but only ${arguments.length} present.`); - } - if (this[kGuard] === "immutable") { - throw new TypeError("immutable"); - } else if (this[kGuard] === "request-no-cors") { - } - return this[kHeadersList].delete(String(name)); - } - get(name) { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - if (arguments.length < 1) { - throw new TypeError(`Failed to execute 'get' on 'Headers': 1 argument required, but only ${arguments.length} present.`); - } - return this[kHeadersList].get(String(name)); - } - has(name) { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - if (arguments.length < 1) { - throw new TypeError(`Failed to execute 'has' on 'Headers': 1 argument required, but only ${arguments.length} present.`); - } - return this[kHeadersList].has(String(name)); - } - set(name, value) { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - if (arguments.length < 2) { - throw new TypeError(`Failed to execute 'set' on 'Headers': 2 arguments required, but only ${arguments.length} present.`); - } - if (this[kGuard] === "immutable") { - throw new TypeError("immutable"); - } else if (this[kGuard] === "request-no-cors") { - } - return this[kHeadersList].set(String(name), String(value)); - } - get [kHeadersSortedMap]() { - var _a2, _b; - (_b = (_a2 = this[kHeadersList])[kHeadersSortedMap]) != null ? _b : _a2[kHeadersSortedMap] = new Map([...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)); - return this[kHeadersList][kHeadersSortedMap]; - } - keys() { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - return makeHeadersIterator(this[kHeadersSortedMap].keys()); - } - values() { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - return makeHeadersIterator(this[kHeadersSortedMap].values()); - } - entries() { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - return makeHeadersIterator(this[kHeadersSortedMap].entries()); - } - forEach(callbackFn, thisArg = globalThis) { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - if (arguments.length < 1) { - throw new TypeError(`Failed to execute 'forEach' on 'Headers': 1 argument required, but only ${arguments.length} present.`); - } - if (typeof callbackFn !== "function") { - throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'."); - } - for (const [key, value] of this) { - callbackFn.apply(thisArg, [value, key, this]); - } - } - [Symbol.for("nodejs.util.inspect.custom")]() { - if (!(this instanceof Headers)) { - throw new TypeError("Illegal invocation"); - } - return this[kHeadersList]; - } - }; - __name(Headers, "Headers"); - Headers.prototype[Symbol.iterator] = Headers.prototype.entries; - Object.defineProperties(Headers.prototype, { - append: kEnumerableProperty, - delete: kEnumerableProperty, - get: kEnumerableProperty, - has: kEnumerableProperty, - set: kEnumerableProperty, - keys: kEnumerableProperty, - values: kEnumerableProperty, - entries: kEnumerableProperty, - forEach: kEnumerableProperty - }); - module2.exports = { - fill, - Headers, - HeadersList, - normalizeAndValidateHeaderName, - normalizeAndValidateHeaderValue - }; - } -}); - -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/file.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/file.js var require_file = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/file.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/file.js"(exports, module2) { "use strict"; var { Blob } = require_buffer(); var { kState } = require_symbols2(); @@ -14169,9 +13904,9 @@ var require_file = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/util.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/util.js var require_util2 = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/util.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/util.js"(exports, module2) { "use strict"; var { redirectStatus } = require_constants2(); var { performance } = require("perf_hooks"); @@ -14304,199 +14039,466 @@ var require_util2 = __commonJS({ return false; } } - return true; - } - __name(isValidReasonPhrase, "isValidReasonPhrase"); - function isTokenChar(c) { - return !(c >= 127 || c <= 32 || c === "(" || c === ")" || c === "<" || c === ">" || c === "@" || c === "," || c === ";" || c === ":" || c === "\\" || c === '"' || c === "/" || c === "[" || c === "]" || c === "?" || c === "=" || c === "{" || c === "}"); - } - __name(isTokenChar, "isTokenChar"); - function isValidHTTPToken(characters) { - if (!characters || typeof characters !== "string") { - return false; + return true; + } + __name(isValidReasonPhrase, "isValidReasonPhrase"); + function isTokenChar(c) { + return !(c >= 127 || c <= 32 || c === "(" || c === ")" || c === "<" || c === ">" || c === "@" || c === "," || c === ";" || c === ":" || c === "\\" || c === '"' || c === "/" || c === "[" || c === "]" || c === "?" || c === "=" || c === "{" || c === "}"); + } + __name(isTokenChar, "isTokenChar"); + function isValidHTTPToken(characters) { + if (!characters || typeof characters !== "string") { + return false; + } + for (let i = 0; i < characters.length; ++i) { + const c = characters.charCodeAt(i); + if (c > 127 || !isTokenChar(c)) { + return false; + } + } + return true; + } + __name(isValidHTTPToken, "isValidHTTPToken"); + function setRequestReferrerPolicyOnRedirect(request, actualResponse) { + const policy = ""; + if (policy !== "") { + request.referrerPolicy = policy; + } + } + __name(setRequestReferrerPolicyOnRedirect, "setRequestReferrerPolicyOnRedirect"); + function crossOriginResourcePolicyCheck() { + return "allowed"; + } + __name(crossOriginResourcePolicyCheck, "crossOriginResourcePolicyCheck"); + function corsCheck() { + return "success"; + } + __name(corsCheck, "corsCheck"); + function TAOCheck() { + return "success"; + } + __name(TAOCheck, "TAOCheck"); + function appendFetchMetadata(httpRequest) { + let header = null; + header = httpRequest.mode; + httpRequest.headersList.set("sec-fetch-mode", header); + } + __name(appendFetchMetadata, "appendFetchMetadata"); + function appendRequestOriginHeader(request) { + let serializedOrigin = request.origin; + if (request.responseTainting === "cors" || request.mode === "websocket") { + if (serializedOrigin) { + request.headersList.append("Origin", serializedOrigin); + } + } else if (request.method !== "GET" && request.method !== "HEAD") { + switch (request.referrerPolicy) { + case "no-referrer": + serializedOrigin = null; + break; + case "no-referrer-when-downgrade": + case "strict-origin": + case "strict-origin-when-cross-origin": + if (/^https:/.test(request.origin) && !/^https:/.test(requestCurrentURL(request))) { + serializedOrigin = null; + } + break; + case "same-origin": + if (!sameOrigin(request, requestCurrentURL(request))) { + serializedOrigin = null; + } + break; + default: + } + if (serializedOrigin) { + request.headersList.append("Origin", serializedOrigin); + } + } + } + __name(appendRequestOriginHeader, "appendRequestOriginHeader"); + function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { + return performance.now(); + } + __name(coarsenedSharedCurrentTime, "coarsenedSharedCurrentTime"); + function createOpaqueTimingInfo(timingInfo) { + var _a2, _b; + return { + startTime: (_a2 = timingInfo.startTime) != null ? _a2 : 0, + redirectStartTime: 0, + redirectEndTime: 0, + postRedirectStartTime: (_b = timingInfo.startTime) != null ? _b : 0, + finalServiceWorkerStartTime: 0, + finalNetworkResponseStartTime: 0, + finalNetworkRequestStartTime: 0, + endTime: 0, + encodedBodySize: 0, + decodedBodySize: 0, + finalConnectionTimingInfo: null + }; + } + __name(createOpaqueTimingInfo, "createOpaqueTimingInfo"); + function makePolicyContainer() { + return {}; + } + __name(makePolicyContainer, "makePolicyContainer"); + function clonePolicyContainer() { + return {}; + } + __name(clonePolicyContainer, "clonePolicyContainer"); + function determineRequestsReferrer(request) { + return "no-referrer"; + } + __name(determineRequestsReferrer, "determineRequestsReferrer"); + function matchRequestIntegrity(request, bytes) { + return false; + } + __name(matchRequestIntegrity, "matchRequestIntegrity"); + function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { + } + __name(tryUpgradeRequestToAPotentiallyTrustworthyURL, "tryUpgradeRequestToAPotentiallyTrustworthyURL"); + function sameOrigin(A, B) { + if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { + return true; + } + return false; + } + __name(sameOrigin, "sameOrigin"); + function createDeferredPromise() { + let res; + let rej; + const promise = new Promise((resolve, reject) => { + res = resolve; + rej = reject; + }); + return { promise, resolve: res, reject: rej }; + } + __name(createDeferredPromise, "createDeferredPromise"); + function isAborted(fetchParams) { + return fetchParams.controller.state === "aborted"; + } + __name(isAborted, "isAborted"); + function isCancelled(fetchParams) { + return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; + } + __name(isCancelled, "isCancelled"); + function normalizeMethod(method) { + return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method) ? method.toUpperCase() : method; + } + __name(normalizeMethod, "normalizeMethod"); + function serializeJavascriptValueToJSONString(value) { + const result = JSON.stringify(value); + if (result === void 0) { + throw new TypeError("Value is not JSON serializable"); + } + assert(typeof result === "string"); + return result; + } + __name(serializeJavascriptValueToJSONString, "serializeJavascriptValueToJSONString"); + var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); + function makeIterator(iterator, name) { + const i = { + next() { + if (Object.getPrototypeOf(this) !== i) { + throw new TypeError(`'next' called on an object that does not implement interface ${name} Iterator.`); + } + return iterator.next(); + }, + [Symbol.toStringTag]: `${name} Iterator` + }; + Object.setPrototypeOf(i, esIteratorPrototype); + return Object.setPrototypeOf({}, i); + } + __name(makeIterator, "makeIterator"); + module2.exports = { + isAborted, + isCancelled, + createDeferredPromise, + ReadableStreamFrom, + toUSVString, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + coarsenedSharedCurrentTime, + matchRequestIntegrity, + determineRequestsReferrer, + makePolicyContainer, + clonePolicyContainer, + appendFetchMetadata, + appendRequestOriginHeader, + TAOCheck, + corsCheck, + crossOriginResourcePolicyCheck, + createOpaqueTimingInfo, + setRequestReferrerPolicyOnRedirect, + isValidHTTPToken, + requestBadPort, + requestCurrentURL, + responseURL, + responseLocationURL, + isBlobLike, + isFileLike, + isValidReasonPhrase, + sameOrigin, + normalizeMethod, + serializeJavascriptValueToJSONString, + makeIterator + }; + } +}); + +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/headers.js +var require_headers = __commonJS({ + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/headers.js"(exports, module2) { + "use strict"; + var { validateHeaderName, validateHeaderValue } = require_http(); + var { kHeadersList } = require_symbols(); + var { kGuard } = require_symbols2(); + var { kEnumerableProperty } = require_util(); + var { makeIterator } = require_util2(); + var kHeadersMap = Symbol("headers map"); + var kHeadersSortedMap = Symbol("headers map sorted"); + function normalizeAndValidateHeaderName(name) { + if (name === void 0) { + throw new TypeError(`Header name ${name}`); + } + const normalizedHeaderName = name.toLocaleLowerCase(); + validateHeaderName(normalizedHeaderName); + return normalizedHeaderName; + } + __name(normalizeAndValidateHeaderName, "normalizeAndValidateHeaderName"); + function normalizeAndValidateHeaderValue(name, value) { + if (value === void 0) { + throw new TypeError(value, name); + } + const normalizedHeaderValue = `${value}`.replace(/^[\n\t\r\x20]+|[\n\t\r\x20]+$/g, ""); + validateHeaderValue(name, normalizedHeaderValue); + return normalizedHeaderValue; + } + __name(normalizeAndValidateHeaderValue, "normalizeAndValidateHeaderValue"); + function fill(headers, object) { + if (object[Symbol.iterator]) { + for (let header of object) { + if (!header[Symbol.iterator]) { + throw new TypeError(); + } + if (typeof header === "string") { + throw new TypeError(); + } + if (!Array.isArray(header)) { + header = [...header]; + } + if (header.length !== 2) { + throw new TypeError(); + } + headers.append(header[0], header[1]); + } + } else if (object && typeof object === "object") { + for (const header of Object.entries(object)) { + headers.append(header[0], header[1]); + } + } else { + throw TypeError(); + } + } + __name(fill, "fill"); + var HeadersList = class { + constructor(init) { + if (init instanceof HeadersList) { + this[kHeadersMap] = new Map(init[kHeadersMap]); + this[kHeadersSortedMap] = init[kHeadersSortedMap]; + } else { + this[kHeadersMap] = new Map(init); + this[kHeadersSortedMap] = null; + } + } + clear() { + this[kHeadersMap].clear(); + this[kHeadersSortedMap] = null; + } + append(name, value) { + this[kHeadersSortedMap] = null; + const normalizedName = normalizeAndValidateHeaderName(name); + const normalizedValue = normalizeAndValidateHeaderValue(name, value); + const exists = this[kHeadersMap].get(normalizedName); + if (exists) { + this[kHeadersMap].set(normalizedName, `${exists}, ${normalizedValue}`); + } else { + this[kHeadersMap].set(normalizedName, `${normalizedValue}`); + } + } + set(name, value) { + this[kHeadersSortedMap] = null; + const normalizedName = normalizeAndValidateHeaderName(name); + return this[kHeadersMap].set(normalizedName, value); + } + delete(name) { + this[kHeadersSortedMap] = null; + const normalizedName = normalizeAndValidateHeaderName(name); + return this[kHeadersMap].delete(normalizedName); + } + get(name) { + var _a2; + const normalizedName = normalizeAndValidateHeaderName(name); + return (_a2 = this[kHeadersMap].get(normalizedName)) != null ? _a2 : null; + } + has(name) { + const normalizedName = normalizeAndValidateHeaderName(name); + return this[kHeadersMap].has(normalizedName); + } + keys() { + return this[kHeadersMap].keys(); + } + values() { + return this[kHeadersMap].values(); + } + entries() { + return this[kHeadersMap].entries(); + } + [Symbol.iterator]() { + return this[kHeadersMap][Symbol.iterator](); + } + }; + __name(HeadersList, "HeadersList"); + var Headers = class { + constructor(...args) { + var _a2; + if (args[0] !== void 0 && !(typeof args[0] === "object" && args[0] != null) && !Array.isArray(args[0])) { + throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(record or sequence>"); + } + const init = args.length >= 1 ? (_a2 = args[0]) != null ? _a2 : {} : {}; + this[kHeadersList] = new HeadersList(); + this[kGuard] = "none"; + fill(this, init); + } + get [Symbol.toStringTag]() { + return this.constructor.name; + } + append(name, value) { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); + } + if (arguments.length < 2) { + throw new TypeError(`Failed to execute 'append' on 'Headers': 2 arguments required, but only ${arguments.length} present.`); + } + if (this[kGuard] === "immutable") { + throw new TypeError("immutable"); + } else if (this[kGuard] === "request-no-cors") { + } + return this[kHeadersList].append(String(name), String(value)); + } + delete(name) { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); + } + if (arguments.length < 1) { + throw new TypeError(`Failed to execute 'delete' on 'Headers': 1 argument required, but only ${arguments.length} present.`); + } + if (this[kGuard] === "immutable") { + throw new TypeError("immutable"); + } else if (this[kGuard] === "request-no-cors") { + } + return this[kHeadersList].delete(String(name)); + } + get(name) { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); + } + if (arguments.length < 1) { + throw new TypeError(`Failed to execute 'get' on 'Headers': 1 argument required, but only ${arguments.length} present.`); + } + return this[kHeadersList].get(String(name)); + } + has(name) { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); + } + if (arguments.length < 1) { + throw new TypeError(`Failed to execute 'has' on 'Headers': 1 argument required, but only ${arguments.length} present.`); + } + return this[kHeadersList].has(String(name)); + } + set(name, value) { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); + } + if (arguments.length < 2) { + throw new TypeError(`Failed to execute 'set' on 'Headers': 2 arguments required, but only ${arguments.length} present.`); + } + if (this[kGuard] === "immutable") { + throw new TypeError("immutable"); + } else if (this[kGuard] === "request-no-cors") { + } + return this[kHeadersList].set(String(name), String(value)); + } + get [kHeadersSortedMap]() { + var _a2, _b; + (_b = (_a2 = this[kHeadersList])[kHeadersSortedMap]) != null ? _b : _a2[kHeadersSortedMap] = new Map([...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)); + return this[kHeadersList][kHeadersSortedMap]; } - for (let i = 0; i < characters.length; ++i) { - const c = characters.charCodeAt(i); - if (c > 127 || !isTokenChar(c)) { - return false; + keys() { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); } + return makeIterator(this[kHeadersSortedMap].keys(), "Headers"); } - return true; - } - __name(isValidHTTPToken, "isValidHTTPToken"); - function setRequestReferrerPolicyOnRedirect(request, actualResponse) { - const policy = ""; - if (policy !== "") { - request.referrerPolicy = policy; + values() { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); + } + return makeIterator(this[kHeadersSortedMap].values(), "Headers"); } - } - __name(setRequestReferrerPolicyOnRedirect, "setRequestReferrerPolicyOnRedirect"); - function crossOriginResourcePolicyCheck() { - return "allowed"; - } - __name(crossOriginResourcePolicyCheck, "crossOriginResourcePolicyCheck"); - function corsCheck() { - return "success"; - } - __name(corsCheck, "corsCheck"); - function TAOCheck() { - return "success"; - } - __name(TAOCheck, "TAOCheck"); - function appendFetchMetadata(httpRequest) { - let header = null; - header = httpRequest.mode; - httpRequest.headersList.set("sec-fetch-mode", header); - } - __name(appendFetchMetadata, "appendFetchMetadata"); - function appendRequestOriginHeader(request) { - let serializedOrigin = request.origin; - if (request.responseTainting === "cors" || request.mode === "websocket") { - if (serializedOrigin) { - request.headersList.append("Origin", serializedOrigin); + entries() { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); } - } else if (request.method !== "GET" && request.method !== "HEAD") { - switch (request.referrerPolicy) { - case "no-referrer": - serializedOrigin = null; - break; - case "no-referrer-when-downgrade": - case "strict-origin": - case "strict-origin-when-cross-origin": - if (/^https:/.test(request.origin) && !/^https:/.test(requestCurrentURL(request))) { - serializedOrigin = null; - } - break; - case "same-origin": - if (!sameOrigin(request, requestCurrentURL(request))) { - serializedOrigin = null; - } - break; - default: + return makeIterator(this[kHeadersSortedMap].entries(), "Headers"); + } + forEach(callbackFn, thisArg = globalThis) { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); } - if (serializedOrigin) { - request.headersList.append("Origin", serializedOrigin); + if (arguments.length < 1) { + throw new TypeError(`Failed to execute 'forEach' on 'Headers': 1 argument required, but only ${arguments.length} present.`); + } + if (typeof callbackFn !== "function") { + throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'."); + } + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]); } } - } - __name(appendRequestOriginHeader, "appendRequestOriginHeader"); - function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { - return performance.now(); - } - __name(coarsenedSharedCurrentTime, "coarsenedSharedCurrentTime"); - function createOpaqueTimingInfo(timingInfo) { - var _a2, _b; - return { - startTime: (_a2 = timingInfo.startTime) != null ? _a2 : 0, - redirectStartTime: 0, - redirectEndTime: 0, - postRedirectStartTime: (_b = timingInfo.startTime) != null ? _b : 0, - finalServiceWorkerStartTime: 0, - finalNetworkResponseStartTime: 0, - finalNetworkRequestStartTime: 0, - endTime: 0, - encodedBodySize: 0, - decodedBodySize: 0, - finalConnectionTimingInfo: null - }; - } - __name(createOpaqueTimingInfo, "createOpaqueTimingInfo"); - function makePolicyContainer() { - return {}; - } - __name(makePolicyContainer, "makePolicyContainer"); - function clonePolicyContainer() { - return {}; - } - __name(clonePolicyContainer, "clonePolicyContainer"); - function determineRequestsReferrer(request) { - return "no-referrer"; - } - __name(determineRequestsReferrer, "determineRequestsReferrer"); - function matchRequestIntegrity(request, bytes) { - return false; - } - __name(matchRequestIntegrity, "matchRequestIntegrity"); - function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { - } - __name(tryUpgradeRequestToAPotentiallyTrustworthyURL, "tryUpgradeRequestToAPotentiallyTrustworthyURL"); - function sameOrigin(A, B) { - if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { - return true; - } - return false; - } - __name(sameOrigin, "sameOrigin"); - function createDeferredPromise() { - let res; - let rej; - const promise = new Promise((resolve, reject) => { - res = resolve; - rej = reject; - }); - return { promise, resolve: res, reject: rej }; - } - __name(createDeferredPromise, "createDeferredPromise"); - function isAborted(fetchParams) { - return fetchParams.controller.state === "aborted"; - } - __name(isAborted, "isAborted"); - function isCancelled(fetchParams) { - return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; - } - __name(isCancelled, "isCancelled"); - function normalizeMethod(method) { - return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method) ? method.toUpperCase() : method; - } - __name(normalizeMethod, "normalizeMethod"); - function serializeJavascriptValueToJSONString(value) { - const result = JSON.stringify(value); - if (result === void 0) { - throw new TypeError("Value is not JSON serializable"); + [Symbol.for("nodejs.util.inspect.custom")]() { + if (!(this instanceof Headers)) { + throw new TypeError("Illegal invocation"); + } + return this[kHeadersList]; } - assert(typeof result === "string"); - return result; - } - __name(serializeJavascriptValueToJSONString, "serializeJavascriptValueToJSONString"); + }; + __name(Headers, "Headers"); + Headers.prototype[Symbol.iterator] = Headers.prototype.entries; + Object.defineProperties(Headers.prototype, { + append: kEnumerableProperty, + delete: kEnumerableProperty, + get: kEnumerableProperty, + has: kEnumerableProperty, + set: kEnumerableProperty, + keys: kEnumerableProperty, + values: kEnumerableProperty, + entries: kEnumerableProperty, + forEach: kEnumerableProperty + }); module2.exports = { - isAborted, - isCancelled, - createDeferredPromise, - ReadableStreamFrom, - toUSVString, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - coarsenedSharedCurrentTime, - matchRequestIntegrity, - determineRequestsReferrer, - makePolicyContainer, - clonePolicyContainer, - appendFetchMetadata, - appendRequestOriginHeader, - TAOCheck, - corsCheck, - crossOriginResourcePolicyCheck, - createOpaqueTimingInfo, - setRequestReferrerPolicyOnRedirect, - isValidHTTPToken, - requestBadPort, - requestCurrentURL, - responseURL, - responseLocationURL, - isBlobLike, - isFileLike, - isValidReasonPhrase, - sameOrigin, - normalizeMethod, - serializeJavascriptValueToJSONString + fill, + Headers, + HeadersList, + normalizeAndValidateHeaderName, + normalizeAndValidateHeaderValue }; } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/formdata.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/formdata.js var require_formdata = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/formdata.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/formdata.js"(exports, module2) { "use strict"; - var { isBlobLike, isFileLike, toUSVString } = require_util2(); + var { isBlobLike, isFileLike, toUSVString, makeIterator } = require_util2(); var { kState } = require_symbols2(); var { File, FileLike } = require_file(); var { Blob } = require_buffer(); @@ -14602,39 +14604,43 @@ var require_formdata = __commonJS({ get [Symbol.toStringTag]() { return this.constructor.name; } - *entries() { + entries() { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } - for (const pair of this) { - yield pair; - } + return makeIterator(makeIterable(this[kState], "entries"), "FormData"); } - *keys() { + keys() { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } - for (const [key] of this) { - yield key; + return makeIterator(makeIterable(this[kState], "keys"), "FormData"); + } + values() { + if (!(this instanceof _FormData)) { + throw new TypeError("Illegal invocation"); } + return makeIterator(makeIterable(this[kState], "values"), "FormData"); } - *values() { + forEach(callbackFn, thisArg = globalThis) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } - for (const [, value] of this) { - yield value; + if (arguments.length < 1) { + throw new TypeError(`Failed to execute 'forEach' on 'FormData': 1 argument required, but only ${arguments.length} present.`); } - } - *[Symbol.iterator]() { - for (const { name, value } of this[kState]) { - yield [name, value]; + if (typeof callbackFn !== "function") { + throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'."); + } + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]); } } }; var FormData = _FormData; __name(FormData, "FormData"); __publicField(FormData, "name", "FormData"); + FormData.prototype[Symbol.iterator] = FormData.prototype.entries; function makeEntry(name, value, filename) { const entry = { name: null, @@ -14651,6 +14657,18 @@ var require_formdata = __commonJS({ return entry; } __name(makeEntry, "makeEntry"); + function* makeIterable(entries, type) { + for (const { name, value } of entries) { + if (type === "entries") { + yield [name, value]; + } else if (type === "values") { + yield value; + } else { + yield name; + } + } + } + __name(makeIterable, "makeIterable"); module2.exports = { FormData }; } }); @@ -14662,9 +14680,9 @@ var require_util_types = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/body.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/body.js var require_body = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/body.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/body.js"(exports, module2) { "use strict"; var util = require_util(); var { ReadableStreamFrom, toUSVString, isBlobLike } = require_util2(); @@ -14675,7 +14693,7 @@ var require_body = __commonJS({ var assert = require("assert"); var { NotSupportedError } = require_errors(); var { isErrored } = require_util(); - var { isUint8Array } = require_util_types(); + var { isUint8Array, isArrayBuffer } = require_util_types(); var ReadableStream; async function* blobGen(blob) { if (blob.stream) { @@ -14698,7 +14716,7 @@ var require_body = __commonJS({ } else if (object instanceof URLSearchParams) { source = object.toString(); contentType = "application/x-www-form-urlencoded;charset=UTF-8"; - } else if (object instanceof ArrayBuffer || ArrayBuffer.isView(object)) { + } else if (isArrayBuffer(object) || ArrayBuffer.isView(object)) { if (object instanceof DataView) { object = object.buffer; } @@ -14892,9 +14910,9 @@ Content-Type: ${value.type || "application/octet-stream"}\r } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/response.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/response.js var require_response = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/response.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/response.js"(exports, module2) { "use strict"; var { Headers, HeadersList, fill } = require_headers(); var { AbortError } = require_errors(); @@ -15202,9 +15220,9 @@ var require_response = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/request.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/request.js var require_request = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/request.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/request.js"(exports, module2) { "use strict"; var { extractBody, mixinBody, cloneBody } = require_body(); var { Headers, fill: fillHeaders, HeadersList } = require_headers(); @@ -15655,9 +15673,9 @@ var require_request = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/dataURL.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/dataURL.js var require_dataURL = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/dataURL.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/dataURL.js"(exports, module2) { var assert = require("assert"); var { atob: atob2 } = require_buffer(); var encoder = new TextEncoder(); @@ -15869,9 +15887,9 @@ var require_dataURL = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/index.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/index.js var require_fetch = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/fetch/index.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/fetch/index.js"(exports, module2) { "use strict"; var { Response, @@ -16426,7 +16444,7 @@ var require_fetch = __commonJS({ if (actualResponse.status !== 303 && request.body != null && request.body.source == null) { return makeNetworkError(); } - if ([301, 302].includes(actualResponse.status) && request.method === "POST" || actualResponse.status === 303 && !["GET", "HEADER"].includes(request.method)) { + if ([301, 302].includes(actualResponse.status) && request.method === "POST" || actualResponse.status === 303 && !["GET", "HEAD"].includes(request.method)) { request.method = "GET"; request.body = null; for (const headerName of requestBodyHeader) { @@ -16809,9 +16827,9 @@ var require_fetch = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/dispatcher.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/dispatcher.js var require_dispatcher = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/dispatcher.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/dispatcher.js"(exports, module2) { "use strict"; var EventEmitter = require("events"); var Dispatcher = class extends EventEmitter { @@ -16830,9 +16848,9 @@ var require_dispatcher = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/dispatcher-base.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/dispatcher-base.js var require_dispatcher_base = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/dispatcher-base.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/dispatcher-base.js"(exports, module2) { "use strict"; var Dispatcher = require_dispatcher(); var { @@ -16963,9 +16981,9 @@ var require_dispatcher_base = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/node/fixed-queue.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/node/fixed-queue.js var require_fixed_queue = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/node/fixed-queue.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/node/fixed-queue.js"(exports, module2) { "use strict"; var kSize = 2048; var kMask = kSize - 1; @@ -17021,9 +17039,9 @@ var require_fixed_queue = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/pool-stats.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/pool-stats.js var require_pool_stats = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/pool-stats.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/pool-stats.js"(exports, module2) { var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); var kPool = Symbol("pool"); var PoolStats = class { @@ -17054,9 +17072,9 @@ var require_pool_stats = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/pool-base.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/pool-base.js var require_pool_base = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/pool-base.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/pool-base.js"(exports, module2) { "use strict"; var DispatcherBase = require_dispatcher_base(); var FixedQueue = require_fixed_queue(); @@ -17210,9 +17228,9 @@ var require_pool_base = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/request.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/request.js var require_request2 = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/request.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/request.js"(exports, module2) { "use strict"; var { InvalidArgumentError: InvalidArgumentError2, @@ -17256,7 +17274,7 @@ var require_request2 = __commonJS({ }, handler) { if (typeof path !== "string") { throw new InvalidArgumentError2("path must be a string"); - } else if (path[0] !== "/" && !(path.startsWith("http://") || path.startsWith("https://"))) { + } else if (path[0] !== "/" && !(path.startsWith("http://") || path.startsWith("https://")) && method !== "CONNECT") { throw new InvalidArgumentError2("path must be an absolute URL or start with a slash"); } if (typeof method !== "string") { @@ -17279,12 +17297,12 @@ var require_request2 = __commonJS({ this.body = null; } else if (util.isStream(body)) { this.body = body; - } else if (body instanceof DataView) { - this.body = body.buffer.byteLength ? Buffer.from(body.buffer) : null; - } else if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) { - this.body = body.byteLength ? Buffer.from(body) : null; } else if (util.isBuffer(body)) { this.body = body.byteLength ? body : null; + } else if (ArrayBuffer.isView(body)) { + this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; + } else if (body instanceof ArrayBuffer) { + this.body = body.byteLength ? Buffer.from(body) : null; } else if (typeof body === "string") { this.body = body.length ? Buffer.from(body) : null; } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) { @@ -17443,9 +17461,9 @@ var require_request2 = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/handler/redirect.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/handler/redirect.js var require_redirect = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/handler/redirect.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/handler/redirect.js"(exports, module2) { "use strict"; var util = require_util(); var { kBodyUsed } = require_symbols(); @@ -17587,9 +17605,9 @@ var require_redirect = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/connect.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/connect.js var require_connect = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/core/connect.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/core/connect.js"(exports, module2) { "use strict"; var net = require("net"); var assert = require("assert"); @@ -17605,7 +17623,7 @@ var require_connect = __commonJS({ const sessionCache = /* @__PURE__ */ new Map(); timeout = timeout == null ? 1e4 : timeout; maxCachedSessions = maxCachedSessions == null ? 100 : maxCachedSessions; - return /* @__PURE__ */ __name(function connect({ hostname, host, protocol, port, servername }, callback) { + return /* @__PURE__ */ __name(function connect({ hostname, host, protocol, port, servername, httpSocket }, callback) { let socket; if (protocol === "https:") { if (!tls) { @@ -17620,6 +17638,7 @@ var require_connect = __commonJS({ }, options), { servername, session, + socket: httpSocket, port: port || 443, host: hostname })); @@ -17638,6 +17657,7 @@ var require_connect = __commonJS({ } }); } else { + assert(!httpSocket, "httpSocket can only be sent on TLS update"); socket = net.connect(__spreadProps(__spreadValues({ highWaterMark: 64 * 1024 }, options), { @@ -17673,9 +17693,9 @@ var require_connect = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/utils.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/utils.js var require_utils2 = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/utils.js"(exports) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/utils.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enumToMap = void 0; @@ -17694,9 +17714,9 @@ var require_utils2 = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/constants.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/constants.js var require_constants3 = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/constants.js"(exports) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/constants.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; @@ -18013,23 +18033,23 @@ var require_constants3 = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/llhttp.wasm.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/llhttp.wasm.js var require_llhttp_wasm = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/llhttp.wasm.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/llhttp.wasm.js"(exports, module2) { module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGgtwQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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QZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQBBBCEFIARBiARxQYAERg0CIARBKHFFDQILQQAPC0EAQQMgACkDIFAbIQULIAULXQECf0EAIQECQCAALQAoQQFGDQAgAC8BMiICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6IBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMiIFQZx/akHkAEkNACAFQcwBRg0AIAVBsAJGDQAgBEHAAHENAEEAIQMgBEGIBHFBgARGDQAgBEEocUEARyEDCyAAQQA7ATAgAEEAOgAvIAMLlAEBAn8CQAJAAkAgAC0AKkUNACAALQArRQ0AQQAhASAALwEwIgJBAnFFDQEMAgtBACEBIAAvATAiAkEBcUUNAQtBASEBIAAtAChBAUYNACAALwEyIgBBnH9qQeQASQ0AIABBzAFGDQAgAEGwAkYNACACQcAAcQ0AQQAhASACQYgEcUGABEYNACACQShxQQBHIQELIAELTwAgAEEYakIANwMAIABCADcDACAAQTBqQgA3AwAgAEEoakIANwMAIABBIGpCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIABBuAE2AhxBAAt7AQF/AkAgACgCDCIDDQACQCAAKAIERQ0AIAAgATYCBAsCQCAAIAEgAhC4gICAACIDDQAgACgCDA8LIAAgAzYCHEEAIQMgACgCBCIBRQ0AIAAgASACIAAoAggRgYCAgAAAIgFFDQAgACACNgIUIAAgATYCDCABIQMLIAML8soBAxl/A34FfyOAgICAAEEQayIDJICAgIAAIAEhBCABIQUgASEGIAEhByABIQggASEJIAEhCiABIQsgASEMIAEhDSABIQ4gASEPIAEhECABIREgASESIAEhEyABIRQgASEVIAEhFiABIRcgASEYIAEhGSABIRoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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QQEhGwwPC0GbASEbDA4LQZwBIRsMDQtBngEhGwwMC0GgASEbDAsLQZ8BIRsMCgtBoQEhGwwJC0GiASEbDAgLQaMBIRsMBwtBpAEhGwwGC0GlASEbDAULQaYBIRsMBAtBpwEhGwwDC0GoASEbDAILQakBIRsMAQtBrwEhGwsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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IAAgIDYCAAybAgsgAEEANgIAIB8gI2tBBWohAUEjIRsMswELAkAgASIEIAJHDQBB6wAhGwyaAgsCQAJAIAQtAABBtH9qDggAtgG2AbYBtgG2AbYBAbYBCyAEQQFqIQFB3QAhGwyPAgsgBEEBaiEBQd4AIRsMjgILAkAgASIEIAJHDQBB7AAhGwyZAgsgBC0AAEHFAEcNswEgBEEBaiEBDOQBC0HtACEbIAEiHyACRg2XAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBqLKAgABqLQAARw2zASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMmAILIABBADYCACAfICNrQQRqIQFBLSEbDLABC0HuACEbIAEiHyACRg2WAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFB8LKAgABqLQAARw2yASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMlwILIABBADYCACAfICNrQQlqIQFBKSEbDK8BCwJAIAEiASACRw0AQe8AIRsMlgILQQEhGyABLQAAQd8ARw2uASABQQFqIQEM4gELQfAAIRsgASIfIAJGDZQCIAIgH2sgACgCACIjaiEgIB8hBCAjIQEDQCAELQAAIAFBrLKAgABqLQAARw2vASABQQFGDfoBIAFBAWohASAEQQFqIgQgAkcNAAsgACAgNgIADJQCC0HxACEbIAEiHyACRg2TAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBrrKAgABqLQAARw2vASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMlAILIABBADYCACAfICNrQQNqIQFBAiEbDKwBC0HyACEbIAEiHyACRg2SAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBkLOAgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMkwILIABBADYCACAfICNrQQJqIQFBHyEbDKsBC0HzACEbIAEiHyACRg2RAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBkrOAgABqLQAARw2tASABQQFGDQEgAUEBaiEBIARBAWoiBCAC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c3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHBhcmFtZXRlcnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAE1LQUNUSVZJVFkAQ09QWQBOT1RJRlkAUExBWQBQVVQAQ0hFQ0tPVVQAUE9TVABSRVBPUlQASFBFX0lOVkFMSURfQ09OU1RBTlQAR0VUAEhQRV9TVFJJQ1QAUkVESVJFQ1QAQ09OTkVDVABIUEVfSU5WQUxJRF9TVEFUVVMAT1BUSU9OUwBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBIUEVfSU5WQUxJRF9VUkwATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAFBBVVNFAFBVUkdFAE1FUkdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QAUFJPUEZJTkQAVU5CSU5EAFJFQklORABIUEVfTEZfRVhQRUNURUQASFBFX1BBVVNFRABIRUFEAEV4cGVjdGVkIEhUVFAvAIwLAAB/CwAAgwoAADkNAADACwAADQsAAA8NAABlCwAAagoAACMLAABMCwAApQsAACMMAACfCgAAjAwAAPcLAAA3CwAAPwwAAG0MAADfCgAAVwwAAEkNAAC0DAAAxwwAANYKAACFDAAAfwoAAFQNAABeCgAAUQoAAJcKAACyCgAA7QwAAEAKAACcCwAAdQsAADoMAAAiDQAA5AsAAPALAACaCwAANA0AADINAAArDQAAewsAAGMKAAA1CgAAVQoAAK4MAADuCwAARQoAAP4MAAD8DAAA6AsAAKgMAADzCgAAlQsAAJMLAADdDAAAoQsAAPMMAADkDAAA/goAAEwKAACiDAAABAsAAMgKAAC6CgAAjgoAAAgNAADeCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWxvc2VlZXAtYWxpdmUAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWN0aW9uZW50LWxlbmd0aG9ucm94eS1jb25uZWN0aW9uAAAAAAAAAAAAAAAAAAAAcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAAAAAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAADBAAABAQEBAQEBAQEBAQFBAQEBAQEBAQEBAQEAAQABgcEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAACAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv"; } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/llhttp_simd.wasm.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/llhttp_simd.wasm.js var require_llhttp_simd_wasm = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/llhttp/llhttp_simd.wasm.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/llhttp/llhttp_simd.wasm.js"(exports, module2) { module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGgtwQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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C0GcASEbDA0LQZ4BIRsMDAtBoAEhGwwLC0GfASEbDAoLQaEBIRsMCQtBogEhGwwIC0GjASEbDAcLQaQBIRsMBgtBpQEhGwwFC0GmASEbDAQLQacBIRsMAwtBqAEhGwwCC0GpASEbDAELQa8BIRsLA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBsO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aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBwYXJhbWV0ZXJzAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABNS0FDVElWSVRZAENPUFkATk9USUZZAFBMQVkAUFVUAENIRUNLT1VUAFBPU1QAUkVQT1JUAEhQRV9JTlZBTElEX0NPTlNUQU5UAEdFVABIUEVfU1RSSUNUAFJFRElSRUNUAENPTk5FQ1QASFBFX0lOVkFMSURfU1RBVFVTAE9QVElPTlMAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASFBFX0lOVkFMSURfVVJMAE1LQ09MAEFDTABIUEVfSU5URVJOQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBS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bmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="; } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/client.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/client.js var require_client = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/client.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/client.js"(exports, module2) { "use strict"; var assert = require("assert"); var net = require("net"); @@ -19344,9 +19364,9 @@ ${len.toString(16)}\r } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/pool.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/pool.js var require_pool = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/pool.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/pool.js"(exports, module2) { "use strict"; var { PoolBase, @@ -19427,9 +19447,9 @@ var require_pool = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/compat/dispatcher-weakref.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/compat/dispatcher-weakref.js var require_dispatcher_weakref = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/compat/dispatcher-weakref.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/compat/dispatcher-weakref.js"(exports, module2) { "use strict"; var { kConnected, kSize } = require_symbols(); var CompatWeakRef = class { @@ -19463,9 +19483,9 @@ var require_dispatcher_weakref = __commonJS({ } }); -// ../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/agent.js +// ../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/agent.js var require_agent = __commonJS({ - "../../node_modules/.pnpm/undici@5.4.0/node_modules/undici/lib/agent.js"(exports, module2) { + "../../node_modules/.pnpm/undici@5.5.1/node_modules/undici/lib/agent.js"(exports, module2) { "use strict"; var { InvalidArgumentError: InvalidArgumentError2 } = require_errors(); var { kClients, kRunning, kClose, kDestroy, kDispatch } = require_symbols(); diff --git a/packages/next/compiled/@edge-runtime/primitives/package.json b/packages/next/compiled/@edge-runtime/primitives/package.json index e8ee131a482b..f3a83e287bda 100644 --- a/packages/next/compiled/@edge-runtime/primitives/package.json +++ b/packages/next/compiled/@edge-runtime/primitives/package.json @@ -1 +1 @@ -{"name":"@edge-runtime/primitives","version":"1.1.0-beta.2","main":"./index.js","license":"MPLv2"} +{"name":"@edge-runtime/primitives","version":"1.1.0-beta.6","main":"./index.js","license":"MPLv2"} diff --git a/packages/next/compiled/edge-runtime/index.js b/packages/next/compiled/edge-runtime/index.js index 3a4e417449ea..3f966d978537 100644 --- a/packages/next/compiled/edge-runtime/index.js +++ b/packages/next/compiled/edge-runtime/index.js @@ -1 +1 @@ -(()=>{var e={446:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EdgeVM=void 0;const n=r(951);const o=r(332);class EdgeVM extends o.VM{constructor(e={}){super({...e,extend:t=>e.extend?e.extend((0,n.addPrimitives)(t)):(0,n.addPrimitives)(t)})}}t.EdgeVM=EdgeVM},144:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.VM=t.EdgeVM=void 0;var n=r(446);Object.defineProperty(t,"EdgeVM",{enumerable:true,get:function(){return n.EdgeVM}});var o=r(332);Object.defineProperty(t,"VM",{enumerable:true,get:function(){return o.VM}})},977:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createRequire=t.requireDependencies=void 0;const n=r(147);const o=r(484);const s=r(17);function requireDependencies(e){const{context:t,requireCache:r,dependencies:n}=e;const o=createRequire(t,r);for(const{path:e,mapExports:r}of n){const n=o(e,e);for(const e of Object.keys(r)){t[r[e]]=n[e]}}}t.requireDependencies=requireDependencies;function createRequire(e,t){return function requireFn(r,i){const E=require.resolve(i,{paths:[(0,s.dirname)(r)]});const a=t.get(E);if(a!==undefined){return a.exports}const d={exports:{},loaded:false,id:E};t.set(E,d);const c=(0,o.runInContext)(`(function(module,exports,require,__dirname,__filename) {${(0,n.readFileSync)(E,"utf-8")}\n})`,e);try{c(d,d.exports,requireFn.bind(null,E),(0,s.dirname)(E),E)}finally{t.delete(E)}d.loaded=true;return d.exports}}t.createRequire=createRequire},529:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.tempFile=void 0;const o=n(r(147));const s=n(r(37));const i=n(r(17));const E=n(r(951));const{crypto:a}=E.default;function tempFile(e){const t=i.default.join(s.default.tmpdir(),a.randomUUID());o.default.writeFileSync(t,e);return{path:t,remove:()=>o.default.unlinkSync(t)}}t.tempFile=tempFile},332:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.VM=void 0;const n=r(484);const o=r(977);const s=r(529);class VM{constructor(e={}){var t,r,s,i;const E=(0,n.createContext)({},{name:"Edge Runtime",codeGeneration:(t=e.codeGeneration)!==null&&t!==void 0?t:{strings:false,wasm:false}});this.requireCache=(r=e.requireCache)!==null&&r!==void 0?r:new Map;this.context=(i=(s=e.extend)===null||s===void 0?void 0:s.call(e,E))!==null&&i!==void 0?i:E;this.requireFn=(0,o.createRequire)(this.context,this.requireCache)}evaluate(e){return(0,n.runInContext)(e,this.context)}require(e){return this.requireFn(e,e)}requireInContext(e){const t=this.require(e);for(const[e,r]of Object.entries(t)){this.context[e]=r}}requireInlineInContext(e){const t=(0,s.tempFile)(e);this.requireInContext(t.path);t.remove()}}t.VM=VM},734:e=>{"use strict";e.exports=e=>{const t=e[0]*1e9+e[1];const r=t/1e6;const n=t/1e9;return{seconds:n,milliseconds:r,nanoseconds:t}}},606:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EdgeRuntime=void 0;const n=r(144);const o=r(190);let s;class EdgeRuntime extends n.EdgeVM{constructor(e){super({...e,extend:t=>{var r,n;return(n=(r=e===null||e===void 0?void 0:e.extend)===null||r===void 0?void 0:r.call(e,t))!==null&&n!==void 0?n:t}});Object.defineProperty(this.context,"__onUnhandledRejectionHandler",{value:e=>s=e,configurable:false,enumerable:false,writable:true});Object.defineProperty(this,"__rejectionHandlers",{get:()=>s,configurable:false,enumerable:false});Object.defineProperty(this.context,"VercelRuntime",{configurable:false,enumerable:false,writable:false,value:{version:o.VERSION}});this.evaluate(getDefineEventListenersCode());this.dispatchFetch=this.evaluate(getDispatchFetchCode());if(e===null||e===void 0?void 0:e.initialCode){this.evaluate(e.initialCode)}}}t.EdgeRuntime=EdgeRuntime;process.on("unhandledRejection",((e,t)=>{s===null||s===void 0?void 0:s.forEach((r=>r(e,t)))}));function getDefineEventListenersCode(){return`\n Object.defineProperty(self, '__listeners', {\n configurable: false,\n enumerable: false,\n value: {},\n writable: true,\n })\n\n function addEventListener(type, handler) {\n const eventType = type.toLowerCase();\n if (eventType === 'fetch' && self.__listeners.fetch) {\n throw new TypeError('You can register just one "fetch" event listener');\n }\n\n self.__listeners[eventType] = self.__listeners[eventType] || [];\n self.__listeners[eventType].push(handler);\n\n if (eventType === 'unhandledrejection') {\n self.__onUnhandledRejectionHandler(self.__listeners.unhandledrejection)\n }\n }\n\n function removeEventListener(type, handler) {\n const eventType = type.toLowerCase();\n if (self.__listeners[eventType]) {\n self.__listeners[eventType] = self.__listeners[eventType].filter(item => {\n return item !== handler;\n });\n\n if (self.__listeners[eventType].length === 0) {\n delete self.__listeners[eventType];\n }\n }\n\n if (eventType === 'unhandledrejection') {\n self.__onUnhandledRejectionHandler(self.__listeners.unhandledrejection)\n }\n }\n `}function getDispatchFetchCode(){return`(async function dispatchFetch(input, init) {\n const request = new Request(input, init);\n const event = new FetchEvent(request);\n if (!self.__listeners.fetch) {\n throw new Error("No fetch event listeners found");\n }\n\n const getResponse = ({ response, error }) => {\n if (error || !response || !(response instanceof Response)) {\n console.error(error ? error : 'The event listener did not respond')\n response = new Response(null, {\n statusText: 'Internal Server Error',\n status: 500\n })\n }\n\n response.waitUntil = () => Promise.all(event.awaiting);\n return response;\n }\n\n try {\n await self.__listeners.fetch[0].call(event, event)\n } catch (error) {\n return getResponse({ error })\n }\n\n return Promise.resolve(event.response)\n .then(response => getResponse({ response }))\n .catch(error => getResponse({ error }))\n })`}},516:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getClonableBodyStream=void 0;const n=r(781);function getClonableBodyStream(e,t){let r=null;return{finalize(){if(r){replaceRequestBody(e,bodyStreamToNodeStream(r))}},cloneBodyStream(){const n=r!==null&&r!==void 0?r:requestToBodyStream(e,t);const[o,s]=n.tee();r=o;return s}}}t.getClonableBodyStream=getClonableBodyStream;function requestToBodyStream(e,t){const r=new t({start(t){e.on("data",(e=>t.enqueue(e)));e.on("end",(()=>t.terminate()));e.on("error",(e=>t.error(e)))}});return r.readable}function bodyStreamToNodeStream(e){const t=e.getReader();return n.Readable.from(async function*(){while(true){const{done:e,value:r}=await t.read();if(e){return}yield r}}())}function replaceRequestBody(e,t){for(const r in t){let n=t[r];if(typeof n==="function"){n=n.bind(t)}e[r]=n}return e}},288:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.createHandler=void 0;const o=r(516);const s=n(r(720));const i=n(r(242));const E=n(r(504));function createHandler(e){const t=new Set;return{handler:async(r,n)=>{var a,d;const c=(0,E.default)();const _=r.method!=="GET"&&r.method!=="HEAD"?(0,o.getClonableBodyStream)(r,e.runtime.context.TransformStream):undefined;const u=await e.runtime.dispatchFetch(String(getURL(r)),{headers:toRequestInitHeaders(r),method:r.method,body:_===null||_===void 0?void 0:_.cloneBodyStream()});const l=u.waitUntil();t.add(l);l.finally((()=>t.delete(l)));n.statusCode=u.status;n.statusMessage=u.statusText;for(const[e,t]of Object.entries(toNodeHeaders(u.headers))){if(e!=="content-encoding"&&t!==undefined){n.setHeader(e,t)}}if(u.body){for await(const e of u.body){n.write(e)}}const S=`${r.socket.remoteAddress} ${r.method} ${r.url}`;const R=`${(a=(0,s.default)(c()).match(/[a-zA-Z]+|[0-9]+/g))===null||a===void 0?void 0:a.join(" ")}`;const h=`${n.statusCode} ${i.default[n.statusCode]}`;(d=e.logger)===null||d===void 0?void 0:d.debug(`${S} → ${h} in ${R}`);n.end()},waitUntil:()=>Promise.all(t)}}t.createHandler=createHandler;function getURL(e){var t;const r=((t=e.socket)===null||t===void 0?void 0:t.encrypted)?"https":"http";return new URL(String(e.url),`${r}://${String(e.headers.host)}`)}function toRequestInitHeaders(e){return Object.keys(e.headers).map((t=>{const r=e.headers[t];return[t,Array.isArray(r)?r.join(", "):r!==null&&r!==void 0?r:""]}))}function toNodeHeaders(e){const t={};if(e){for(const[r,n]of e.entries()){t[r]=r.toLowerCase()==="set-cookie"?e.getAll("set-cookie"):n}}return t}},822:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.runServer=t.createHandler=void 0;var n=r(288);Object.defineProperty(t,"createHandler",{enumerable:true,get:function(){return n.createHandler}});var o=r(731);Object.defineProperty(t,"runServer",{enumerable:true,get:function(){return o.runServer}})},731:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.runServer=void 0;const o=r(288);const s=r(361);const i=n(r(685));async function runServer(e){const{handler:t,waitUntil:r}=(0,o.createHandler)(e);const n=i.default.createServer(t);n.listen(e.port);try{await(0,s.once)(n,"listening")}catch(t){if((t===null||t===void 0?void 0:t.code)==="EADDRINUSE"){return runServer({...e,port:undefined})}throw t}const E=n.address();const a=typeof E==="string"||E==null?String(E):`http://localhost:${E.port}`;return{url:a,close:async()=>{await r();await new Promise(((e,t)=>n.close((r=>{if(r)t(r);e()}))))},waitUntil:r}}t.runServer=runServer},190:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.VERSION=void 0;t.VERSION="1.1.0-beta.2"},242:e=>{var t;t={"1xx":"Informational","1xx_NAME":"INFORMATIONAL","1xx_MESSAGE":"Indicates an interim response for communicating connection status or request progress prior to completing the requested action and sending a final response.",INFORMATIONAL:"1xx","2xx":"Successful","2xx_NAME":"SUCCESSFUL","2xx_MESSAGE":"Indicates that the client's request was successfully received, understood, and accepted.",SUCCESSFUL:"2xx","3xx":"Redirection","3xx_NAME":"REDIRECTION","3xx_MESSAGE":"Indicates that further action needs to be taken by the user agent in order to fulfill the request.",REDIRECTION:"3xx","4xx":"Client Error","4xx_NAME":"CLIENT_ERROR","4xx_MESSAGE":"Indicates that the client seems to have erred.",CLIENT_ERROR:"4xx","5xx":"Server Error","5xx_NAME":"SERVER_ERROR","5xx_MESSAGE":"Indicates that the server is aware that it has erred or is incapable of performing the requested method.",SERVER_ERROR:"5xx"};e.exports={classes:t,100:"Continue","100_NAME":"CONTINUE","100_MESSAGE":"The server has received the request headers and the client should proceed to send the request body.","100_CLASS":t.INFORMATIONAL,CONTINUE:100,101:"Switching Protocols","101_NAME":"SWITCHING_PROTOCOLS","101_MESSAGE":"The requester has asked the server to switch protocols and the server has agreed to do so.","101_CLASS":t.INFORMATIONAL,SWITCHING_PROTOCOLS:101,102:"Processing","102_NAME":"PROCESSING","102_MESSAGE":"A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet.[7] This prevents the client from timing out and assuming the request was lost.","102_CLASS":t.INFORMATIONAL,PROCESSING:102,103:"Early Hints","103_NAME":"EARLY_HINTS","103_MESSAGE":"Used to return some response headers before final HTTP message.","103_CLASS":t.INFORMATIONAL,EARLY_HINTS:103,200:"OK","200_NAME":"OK","200_MESSAGE":"Standard response for successful HTTP requests.","200_CLASS":t.SUCCESSFUL,OK:200,201:"Created","201_NAME":"CREATED","201_MESSAGE":"The request has been fulfilled, resulting in the creation of a new resource.","201_CLASS":t.SUCCESSFUL,CREATED:201,202:"Accepted","202_NAME":"ACCEPTED","202_MESSAGE":"The request has been accepted for processing, but the processing has not been completed.","202_CLASS":t.SUCCESSFUL,ACCEPTED:202,203:"Non-Authoritative Information","203_NAME":"NON_AUTHORITATIVE_INFORMATION","203_MESSAGE":"The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin's response.","203_CLASS":t.SUCCESSFUL,NON_AUTHORITATIVE_INFORMATION:203,204:"No Content","204_NAME":"NO_CONTENT","204_MESSAGE":"The server successfully processed the request and is not returning any content.","204_CLASS":t.SUCCESSFUL,NO_CONTENT:204,205:"Reset Content","205_NAME":"RESET_CONTENT","205_MESSAGE":"The server successfully processed the request, but is not returning any content. Unlike a 204 response, this response requires that the requester reset the document view.","205_CLASS":t.SUCCESSFUL,RESET_CONTENT:205,206:"Partial Content","206_NAME":"PARTIAL_CONTENT","206_MESSAGE":"The server is delivering only part of the resource (byte serving) due to a range header sent by the client.","206_CLASS":t.SUCCESSFUL,PARTIAL_CONTENT:206,207:"Multi Status","207_NAME":"MULTI_STATUS","207_MESSAGE":"The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.","207_CLASS":t.SUCCESSFUL,MULTI_STATUS:207,208:"Already Reported","208_NAME":"ALREADY_REPORTED","208_MESSAGE":"The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.","208_CLASS":t.SUCCESSFUL,ALREADY_REPORTED:208,226:"IM Used","226_NAME":"IM_USED","226_MESSAGE":"The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.","226_CLASS":t.SUCCESSFUL,IM_USED:226,300:"Multiple Choices","300_NAME":"MULTIPLE_CHOICES","300_MESSAGE":"Indicates multiple options for the resource from which the client may choose.","300_CLASS":t.REDIRECTION,MULTIPLE_CHOICES:300,301:"Moved Permanently","301_NAME":"MOVED_PERMANENTLY","301_MESSAGE":"This and all future requests should be directed to the given URI.","301_CLASS":t.REDIRECTION,MOVED_PERMANENTLY:301,302:"Found","302_NAME":"FOUND","302_MESSAGE":'This is an example of industry practice contradicting the standard. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was "Moved Temporarily"), but popular browsers implemented 302 with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.',"302_CLASS":t.REDIRECTION,FOUND:302,303:"See Other","303_NAME":"SEE_OTHER","303_MESSAGE":"The response to the request can be found under another URI using the GET method.","303_CLASS":t.REDIRECTION,SEE_OTHER:303,304:"Not Modified","304_NAME":"NOT_MODIFIED","304_MESSAGE":"Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.","304_CLASS":t.REDIRECTION,NOT_MODIFIED:304,305:"Use Proxy","305_NAME":"USE_PROXY","305_MESSAGE":"The requested resource is available only through a proxy, the address for which is provided in the response.","305_CLASS":t.REDIRECTION,USE_PROXY:305,306:"Switch Proxy","306_NAME":"SWITCH_PROXY","306_MESSAGE":'No longer used. Originally meant "Subsequent requests should use the specified proxy.',"306_CLASS":t.REDIRECTION,SWITCH_PROXY:306,307:"Temporary Redirect","307_NAME":"TEMPORARY_REDIRECT","307_MESSAGE":"In this case, the request should be repeated with another URI; however, future requests should still use the original URI.","307_CLASS":t.REDIRECTION,TEMPORARY_REDIRECT:307,308:"Permanent Redirect","308_NAME":"PERMANENT_REDIRECT","308_MESSAGE":"The request and all future requests should be repeated using another URI.","308_CLASS":t.REDIRECTION,PERMANENT_REDIRECT:308,400:"Bad Request","400_NAME":"BAD_REQUEST","400_MESSAGE":"The server cannot or will not process the request due to an apparent client error.","400_CLASS":t.CLIENT_ERROR,BAD_REQUEST:400,401:"Unauthorized","401_NAME":"UNAUTHORIZED","401_MESSAGE":"Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided.","401_CLASS":t.CLIENT_ERROR,UNAUTHORIZED:401,402:"Payment Required","402_NAME":"PAYMENT_REQUIRED","402_MESSAGE":"Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed for example by GNU Taler, but that has not yet happened, and this code is not usually used.","402_CLASS":t.CLIENT_ERROR,PAYMENT_REQUIRED:402,403:"Forbidden","403_NAME":"FORBIDDEN","403_MESSAGE":"The request was valid, but the server is refusing action.","403_CLASS":t.CLIENT_ERROR,FORBIDDEN:403,404:"Not Found","404_NAME":"NOT_FOUND","404_MESSAGE":"The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.","404_CLASS":t.CLIENT_ERROR,NOT_FOUND:404,405:"Method Not Allowed","405_NAME":"METHOD_NOT_ALLOWED","405_MESSAGE":"A request method is not supported for the requested resource.","405_CLASS":t.CLIENT_ERROR,METHOD_NOT_ALLOWED:405,406:"Not Acceptable","406_NAME":"NOT_ACCEPTABLE","406_MESSAGE":"The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.","406_CLASS":t.CLIENT_ERROR,NOT_ACCEPTABLE:406,407:"Proxy Authentication Required","407_NAME":"PROXY_AUTHENTICATION_REQUIRED","407_MESSAGE":"The client must first authenticate itself with the proxy.","407_CLASS":t.CLIENT_ERROR,PROXY_AUTHENTICATION_REQUIRED:407,408:"Request Time-out","408_NAME":"REQUEST_TIMEOUT","408_MESSAGE":"The server timed out waiting for the request.","408_CLASS":t.CLIENT_ERROR,REQUEST_TIMEOUT:408,409:"Conflict","409_NAME":"CONFLICT","409_MESSAGE":"Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.","409_CLASS":t.CLIENT_ERROR,CONFLICT:409,410:"Gone","410_NAME":"GONE","410_MESSAGE":"Indicates that the resource requested is no longer available and will not be available again.","410_CLASS":t.CLIENT_ERROR,GONE:410,411:"Length Required","411_NAME":"LENGTH_REQUIRED","411_MESSAGE":"The request did not specify the length of its content, which is required by the requested resource.","411_CLASS":t.CLIENT_ERROR,LENGTH_REQUIRED:411,412:"Precondition Failed","412_NAME":"PRECONDITION_FAILED","412_MESSAGE":"The server does not meet one of the preconditions that the requester put on the request.","412_CLASS":t.CLIENT_ERROR,PRECONDITION_FAILED:412,413:"Request Entity Too Large","413_NAME":"REQUEST_ENTITY_TOO_LARGE","413_MESSAGE":'The request is larger than the server is willing or able to process. Previously called "Request Entity Too Large".',"413_CLASS":t.CLIENT_ERROR,REQUEST_ENTITY_TOO_LARGE:413,414:"Request-URI Too Large","414_NAME":"REQUEST_URI_TOO_LONG","414_MESSAGE":"The URI provided was too long for the server to process.","414_CLASS":t.CLIENT_ERROR,REQUEST_URI_TOO_LONG:414,415:"Unsupported Media Type","415_NAME":"UNSUPPORTED_MEDIA_TYPE","415_MESSAGE":"The request entity has a media type which the server or resource does not support.","415_CLASS":t.CLIENT_ERROR,UNSUPPORTED_MEDIA_TYPE:415,416:"Requested Range not Satisfiable","416_NAME":"REQUESTED_RANGE_NOT_SATISFIABLE","416_MESSAGE":"The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.","416_CLASS":t.CLIENT_ERROR,REQUESTED_RANGE_NOT_SATISFIABLE:416,417:"Expectation Failed","417_NAME":"EXPECTATION_FAILED","417_MESSAGE":"The server cannot meet the requirements of the Expect request-header field.","417_CLASS":t.CLIENT_ERROR,EXPECTATION_FAILED:417,418:"I'm a teapot","418_NAME":"IM_A_TEAPOT","418_MESSAGE":'Any attempt to brew coffee with a teapot should result in the error code "418 I\'m a teapot". The resulting entity body MAY be short and stout.',"418_CLASS":t.CLIENT_ERROR,IM_A_TEAPOT:418,421:"Misdirected Request","421_NAME":"MISDIRECTED_REQUEST","421_MESSAGE":"The request was directed at a server that is not able to produce a response.","421_CLASS":t.CLIENT_ERROR,MISDIRECTED_REQUEST:421,422:"Unprocessable Entity","422_NAME":"UNPROCESSABLE_ENTITY","422_MESSAGE":"The request was well-formed but was unable to be followed due to semantic errors.","422_CLASS":t.CLIENT_ERROR,UNPROCESSABLE_ENTITY:422,423:"Locked","423_NAME":"LOCKED","423_MESSAGE":"The resource that is being accessed is locked.","423_CLASS":t.CLIENT_ERROR,LOCKED:423,424:"Failed Dependency","424_NAME":"FAILED_DEPENDENCY","424_MESSAGE":"The request failed because it depended on another request and that request failed.","424_CLASS":t.CLIENT_ERROR,FAILED_DEPENDENCY:424,426:"Upgrade Required","426_NAME":"UPGRADE_REQUIRED","426_MESSAGE":"The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.","426_CLASS":t.CLIENT_ERROR,UPGRADE_REQUIRED:426,428:"Precondition Required","428_NAME":"PRECONDITION_REQUIRED","428_MESSAGE":"The origin server requires the request to be conditional.","428_CLASS":t.CLIENT_ERROR,PRECONDITION_REQUIRED:428,429:"Too Many Requests","429_NAME":"TOO_MANY_REQUESTS","429_MESSAGE":"The user has sent too many requests in a given amount of time.","429_CLASS":t.CLIENT_ERROR,TOO_MANY_REQUESTS:429,431:"Request Header Fields Too Large","431_NAME":"REQUEST_HEADER_FIELDS_TOO_LARGE","431_MESSAGE":"The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.","431_CLASS":t.CLIENT_ERROR,REQUEST_HEADER_FIELDS_TOO_LARGE:431,451:"Unavailable For Legal Reasons","451_NAME":"UNAVAILABLE_FOR_LEGAL_REASONS","451_MESSAGE":"A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.","451_CLASS":t.CLIENT_ERROR,UNAVAILABLE_FOR_LEGAL_REASONS:451,500:"Internal Server Error","500_NAME":"INTERNAL_SERVER_ERROR","500_MESSAGE":"A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.","500_CLASS":t.SERVER_ERROR,INTERNAL_SERVER_ERROR:500,501:"Not Implemented","501_NAME":"NOT_IMPLEMENTED","501_MESSAGE":"The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability.","501_CLASS":t.SERVER_ERROR,NOT_IMPLEMENTED:501,502:"Bad Gateway","502_NAME":"BAD_GATEWAY","502_MESSAGE":"The server was acting as a gateway or proxy and received an invalid response from the upstream server.","502_CLASS":t.SERVER_ERROR,BAD_GATEWAY:502,503:"Service Unavailable","503_NAME":"SERVICE_UNAVAILABLE","503_MESSAGE":"The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.","503_CLASS":t.SERVER_ERROR,SERVICE_UNAVAILABLE:503,504:"Gateway Time-out","504_NAME":"GATEWAY_TIMEOUT","504_MESSAGE":"The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.","504_CLASS":t.SERVER_ERROR,GATEWAY_TIMEOUT:504,505:"HTTP Version not Supported","505_NAME":"HTTP_VERSION_NOT_SUPPORTED","505_MESSAGE":"The server does not support the HTTP protocol version used in the request.","505_CLASS":t.SERVER_ERROR,HTTP_VERSION_NOT_SUPPORTED:505,506:"Variant Also Negotiates","506_NAME":"VARIANT_ALSO_NEGOTIATES","506_MESSAGE":"Transparent content negotiation for the request results in a circular reference.","506_CLASS":t.SERVER_ERROR,VARIANT_ALSO_NEGOTIATES:506,507:"Insufficient Storage","507_NAME":"INSUFFICIENT_STORAGE","507_MESSAGE":"The server is unable to store the representation needed to complete the request.","507_CLASS":t.SERVER_ERROR,INSUFFICIENT_STORAGE:507,508:"Loop Detected","508_NAME":"LOOP_DETECTED","508_MESSAGE":"The server detected an infinite loop while processing the request.","508_CLASS":t.SERVER_ERROR,LOOP_DETECTED:508,510:"Not Extended","510_NAME":"NOT_EXTENDED","510_MESSAGE":"Further extensions to the request are required for the server to fulfil it.","510_CLASS":t.SERVER_ERROR,NOT_EXTENDED:510,511:"Network Authentication Required","511_NAME":"NETWORK_AUTHENTICATION_REQUIRED","511_MESSAGE":"The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network.","511_CLASS":t.SERVER_ERROR,NETWORK_AUTHENTICATION_REQUIRED:511,extra:{unofficial:{103:"Checkpoint","103_NAME":"CHECKPOINT","103_MESSAGE":"Used in the resumable requests proposal to resume aborted PUT or POST requests.","103_CLASS":t.INFORMATIONAL,CHECKPOINT:103,419:"Page Expired","419_NAME":"PAGE_EXPIRED","419_MESSAGE":"Used by the Laravel Framework when a CSRF Token is missing or expired.","419_CLASS":t.CLIENT_ERROR,PAGE_EXPIRED:419,218:"This is fine","218_NAME":"THIS_IS_FINE","218_MESSAGE":"Used as a catch-all error condition for allowing response bodies to flow through Apache when ProxyErrorOverride is enabled. When ProxyErrorOverride is enabled in Apache, response bodies that contain a status code of 4xx or 5xx are automatically discarded by Apache in favor of a generic response or a custom response specified by the ErrorDocument directive.","218_CLASS":t.SUCCESSFUL,THIS_IS_FINE:218,420:"Enhance Your Calm","420_NAME":"ENHANCE_YOUR_CALM","420_MESSAGE":"Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.","420_CLASS":t.CLIENT_ERROR,ENHANCE_YOUR_CALM:420,450:"Blocked by Windows Parental Controls","450_NAME":"BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS","450_MESSAGE":"The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.","450_CLASS":t.CLIENT_ERROR,BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS:450,498:"Invalid Token","498_NAME":"INVALID_TOKEN","498_MESSAGE":"Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.","498_CLASS":t.CLIENT_ERROR,INVALID_TOKEN:498,499:"Token Required","499_NAME":"TOKEN_REQUIRED","499_MESSAGE":"Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.","499_CLASS":t.CLIENT_ERROR,TOKEN_REQUIRED:499,509:"Bandwidth Limit Exceeded","509_NAME":"BANDWIDTH_LIMIT_EXCEEDED","509_MESSAGE":"The server has exceeded the bandwidth specified by the server administrator.","509_CLASS":t.SERVER_ERROR,BANDWIDTH_LIMIT_EXCEEDED:509,530:"Site is frozen","530_NAME":"SITE_IS_FROZEN","530_MESSAGE":"Used by the Pantheon web platform to indicate a site that has been frozen due to inactivity.","530_CLASS":t.SERVER_ERROR,SITE_IS_FROZEN:530,598:"Network read timeout error","598_NAME":"NETWORK_READ_TIMEOUT_ERROR","598_MESSAGE":"Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.","598_CLASS":t.SERVER_ERROR,NETWORK_READ_TIMEOUT_ERROR:598},iis:{440:"Login Time-out","440_NAME":"LOGIN_TIME_OUT","440_MESSAGE":"The client's session has expired and must log in again.","440_CLASS":t.CLIENT_ERROR,LOGIN_TIME_OUT:440,449:"Retry With","449_NAME":"RETRY_WITH","449_MESSAGE":"The server cannot honour the request because the user has not provided the required information.","449_CLASS":t.CLIENT_ERROR,RETRY_WITH:449,451:"Redirect","451_NAME":"REDIRECT","451_MESSAGE":"Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users' mailbox.","451_CLASS":t.CLIENT_ERROR,REDIRECT:451},nginx:{444:"No Response","444_NAME":"NO_RESPONSE","444_MESSAGE":"Used internally to instruct the server to return no information to the client and close the connection immediately.","444_CLASS":t.CLIENT_ERROR,NO_RESPONSE:444,494:"Request header too large","494_NAME":"REQUEST_HEADER_TOO_LARGE","494_MESSAGE":"Client sent too large request or too long header line.","494_CLASS":t.CLIENT_ERROR,REQUEST_HEADER_TOO_LARGE:494,495:"SSL Certificate Error","495_NAME":"SSL_CERTIFICATE_ERROR","495_MESSAGE":"An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.","495_CLASS":t.CLIENT_ERROR,SSL_CERTIFICATE_ERROR:495,496:"SSL Certificate Required","496_NAME":"SSL_CERTIFICATE_REQUIRED","496_MESSAGE":"An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.","496_CLASS":t.CLIENT_ERROR,SSL_CERTIFICATE_REQUIRED:496,497:"HTTP Request Sent to HTTPS Port","497_NAME":"HTTP_REQUEST_SENT_TO_HTTPS_PORT","497_MESSAGE":"An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.","497_CLASS":t.CLIENT_ERROR,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,499:"Client Closed Request","499_NAME":"CLIENT_CLOSED_REQUEST","499_MESSAGE":"Used when the client has closed the request before the server could send a response.","499_CLASS":t.CLIENT_ERROR,CLIENT_CLOSED_REQUEST:499},cloudflare:{520:"Unknown Error","520_NAME":"UNKNOWN_ERROR","520_MESSAGE":'The 520 error is used as a "catch-all response for when the origin server returns something unexpected", listing connection resets, large headers, and empty or invalid responses as common triggers.',"520_CLASS":t.SERVER_ERROR,UNKNOWN_ERROR:520,521:"Web Server Is Down","521_NAME":"WEB_SERVER_IS_DOWN","521_MESSAGE":"The origin server has refused the connection from Cloudflare.","521_CLASS":t.SERVER_ERROR,WEB_SERVER_IS_DOWN:521,522:"Connection Timed Out","522_NAME":"CONNECTION_TIMED_OUT","522_MESSAGE":"Cloudflare could not negotiate a TCP handshake with the origin server.","522_CLASS":t.SERVER_ERROR,CONNECTION_TIMED_OUT:522,523:"Origin Is Unreachable","523_NAME":"ORIGIN_IS_UNREACHABLE","523_MESSAGE":"Cloudflare could not reach the origin server.","523_CLASS":t.SERVER_ERROR,ORIGIN_IS_UNREACHABLE:523,524:"A Timeout Occurred","524_NAME":"A_TIMEOUT_OCCURRED","524_MESSAGE":"Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.","524_CLASS":t.SERVER_ERROR,A_TIMEOUT_OCCURRED:524,525:"SSL Handshake Failed","525_NAME":"SSL_HANDSHAKE_FAILED","525_MESSAGE":"Cloudflare could not negotiate a SSL/TLS handshake with the origin server.","525_CLASS":t.SERVER_ERROR,SSL_HANDSHAKE_FAILED:525,526:"Invalid SSL Certificate","526_NAME":"INVALID_SSL_CERTIFICATE","526_MESSAGE":"Cloudflare could not validate the SSL/TLS certificate that the origin server presented.","526_CLASS":t.SERVER_ERROR,INVALID_SSL_CERTIFICATE:526,527:"Railgun Error","527_NAME":"RAILGUN_ERROR","527_MESSAGE":"Error 527 indicates that the request timed out or failed after the WAN connection had been established.","527_CLASS":t.SERVER_ERROR,RAILGUN_ERROR:527}}}},672:e=>{"use strict";e.exports=e=>{if(typeof e!=="number"){throw new TypeError("Expected a number")}const t=e>0?Math.floor:Math.ceil;return{days:t(e/864e5),hours:t(e/36e5)%24,minutes:t(e/6e4)%60,seconds:t(e/1e3)%60,milliseconds:t(e)%1e3,microseconds:t(e*1e3)%1e3,nanoseconds:t(e*1e6)%1e3}}},720:(e,t,r)=>{"use strict";const n=r(672);const pluralize=(e,t)=>t===1?e:`${e}s`;const o=1e-7;e.exports=(e,t={})=>{if(!Number.isFinite(e)){throw new TypeError("Expected a finite number")}if(t.colonNotation){t.compact=false;t.formatSubMilliseconds=false;t.separateMilliseconds=false;t.verbose=false}if(t.compact){t.secondsDecimalDigits=0;t.millisecondsDecimalDigits=0}const r=[];const floorDecimals=(e,t)=>{const r=Math.floor(e*10**t+o);const n=Math.round(r)/10**t;return n.toFixed(t)};const add=(e,n,o,s)=>{if((r.length===0||!t.colonNotation)&&e===0&&!(t.colonNotation&&o==="m")){return}s=(s||e||"0").toString();let i;let E;if(t.colonNotation){i=r.length>0?":":"";E="";const e=s.includes(".")?s.split(".")[0].length:s.length;const t=r.length>0?2:1;s="0".repeat(Math.max(0,t-e))+s}else{i="";E=t.verbose?" "+pluralize(n,e):o}r.push(i+s+E)};const s=n(e);add(Math.trunc(s.days/365),"year","y");add(s.days%365,"day","d");add(s.hours,"hour","h");add(s.minutes,"minute","m");if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3){add(s.seconds,"second","s");if(t.formatSubMilliseconds){add(s.milliseconds,"millisecond","ms");add(s.microseconds,"microsecond","µs");add(s.nanoseconds,"nanosecond","ns")}else{const e=s.milliseconds+s.microseconds/1e3+s.nanoseconds/1e6;const r=typeof t.millisecondsDecimalDigits==="number"?t.millisecondsDecimalDigits:0;const n=e>=1?Math.round(e):Math.ceil(e);const o=r?e.toFixed(r):n;add(Number.parseFloat(o,10),"millisecond","ms",o)}}else{const r=e/1e3%60;const n=typeof t.secondsDecimalDigits==="number"?t.secondsDecimalDigits:1;const o=floorDecimals(r,n);const s=t.keepDecimalsOnWholeSeconds?o:o.replace(/\.0+$/,"");add(Number.parseFloat(s,10),"second","s",s)}if(r.length===0){return"0"+(t.verbose?" milliseconds":"ms")}if(t.compact){return r[0]}if(typeof t.unitCount==="number"){const e=t.colonNotation?"":" ";return r.slice(0,Math.max(t.unitCount,1)).join(e)}return t.colonNotation?r.join(""):r.join(" ")}},504:(e,t,r)=>{"use strict";const n=r(734);e.exports=()=>{const e=process.hrtime();const end=t=>n(process.hrtime(e))[t];const returnValue=()=>end("milliseconds");returnValue.rounded=()=>Math.round(end("milliseconds"));returnValue.seconds=()=>end("seconds");returnValue.nanoseconds=()=>end("nanoseconds");return returnValue}},361:e=>{"use strict";e.exports=require("events")},147:e=>{"use strict";e.exports=require("fs")},685:e=>{"use strict";e.exports=require("http")},951:e=>{"use strict";e.exports=require("next/dist/compiled/@edge-runtime/primitives")},37:e=>{"use strict";e.exports=require("os")},17:e=>{"use strict";e.exports=require("path")},781:e=>{"use strict";e.exports=require("stream")},484:e=>{"use strict";e.exports=require("vm")}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var o=t[r]={exports:{}};var s=true;try{e[r].call(o.exports,o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete t[r]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r={};(()=>{"use strict";var e=r;Object.defineProperty(e,"__esModule",{value:true});e.EdgeRuntime=e.runServer=e.createHandler=void 0;var t=__nccwpck_require__(822);Object.defineProperty(e,"createHandler",{enumerable:true,get:function(){return t.createHandler}});Object.defineProperty(e,"runServer",{enumerable:true,get:function(){return t.runServer}});var n=__nccwpck_require__(606);Object.defineProperty(e,"EdgeRuntime",{enumerable:true,get:function(){return n.EdgeRuntime}})})();module.exports=r})(); \ No newline at end of file +(()=>{var e={612:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EdgeVM=void 0;const n=r(951);const o=r(88);class EdgeVM extends o.VM{constructor(e={}){super({...e,extend:t=>e.extend?e.extend((0,n.addPrimitives)(t)):(0,n.addPrimitives)(t)})}}t.EdgeVM=EdgeVM},157:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.VM=t.EdgeVM=void 0;var n=r(612);Object.defineProperty(t,"EdgeVM",{enumerable:true,get:function(){return n.EdgeVM}});var o=r(88);Object.defineProperty(t,"VM",{enumerable:true,get:function(){return o.VM}})},333:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createRequire=t.requireDependencies=void 0;const n=r(147);const o=r(144);const s=r(17);function requireDependencies(e){const{context:t,requireCache:r,dependencies:n}=e;const o=createRequire(t,r);for(const{path:e,mapExports:r}of n){const n=o(e,e);for(const e of Object.keys(r)){t[r[e]]=n[e]}}}t.requireDependencies=requireDependencies;function createRequire(e,t){return function requireFn(r,i){const a=require.resolve(i,{paths:[(0,s.dirname)(r)]});const E=t.get(a);if(E!==undefined){return E.exports}const d={exports:{},loaded:false,id:a};t.set(a,d);const c=(0,o.runInContext)(`(function(module,exports,require,__dirname,__filename) {${(0,n.readFileSync)(a,"utf-8")}\n})`,e);try{c(d,d.exports,requireFn.bind(null,a),(0,s.dirname)(a),a)}finally{t.delete(a)}d.loaded=true;return d.exports}}t.createRequire=createRequire},187:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.tempFile=void 0;const o=n(r(147));const s=n(r(37));const i=n(r(17));const a=n(r(951));const{crypto:E}=a.default;function tempFile(e){const t=i.default.join(s.default.tmpdir(),E.randomUUID());o.default.writeFileSync(t,e);return{path:t,remove:()=>o.default.unlinkSync(t)}}t.tempFile=tempFile},88:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.VM=void 0;const n=r(144);const o=r(333);const s=r(187);class VM{constructor(e={}){var t,r,s,i;const a=(0,n.createContext)({},{name:"Edge Runtime",codeGeneration:(t=e.codeGeneration)!==null&&t!==void 0?t:{strings:false,wasm:false}});this.requireCache=(r=e.requireCache)!==null&&r!==void 0?r:new Map;this.context=(i=(s=e.extend)===null||s===void 0?void 0:s.call(e,a))!==null&&i!==void 0?i:a;this.requireFn=(0,o.createRequire)(this.context,this.requireCache)}evaluate(e){return(0,n.runInContext)(e,this.context)}require(e){return this.requireFn(e,e)}requireInContext(e){const t=this.require(e);for(const[e,r]of Object.entries(t)){this.context[e]=r}}requireInlineInContext(e){const t=(0,s.tempFile)(e);this.requireInContext(t.path);t.remove()}}t.VM=VM},734:e=>{"use strict";e.exports=e=>{const t=e[0]*1e9+e[1];const r=t/1e6;const n=t/1e9;return{seconds:n,milliseconds:r,nanoseconds:t}}},629:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EdgeRuntime=void 0;const n=r(157);const o=r(978);let s;let i;class EdgeRuntime extends n.EdgeVM{constructor(e){super({...e,extend:t=>{var r,n;return(n=(r=e===null||e===void 0?void 0:e.extend)===null||r===void 0?void 0:r.call(e,t))!==null&&n!==void 0?n:t}});defineHandlerProps({object:this,setterName:"__onUnhandledRejectionHandler",setter:e=>s=e,getterName:"__rejectionHandlers",getter:()=>s});defineHandlerProps({object:this,setterName:"__onErrorHandler",setter:e=>i=e,getterName:"__errorHandlers",getter:()=>i});Object.defineProperty(this.context,"VercelRuntime",{configurable:false,enumerable:false,writable:false,value:{version:o.VERSION}});this.evaluate(getDefineEventListenersCode());this.dispatchFetch=this.evaluate(getDispatchFetchCode());if(e===null||e===void 0?void 0:e.initialCode){this.evaluate(e.initialCode)}}}t.EdgeRuntime=EdgeRuntime;process.on("unhandledRejection",(function invokeRejectionHandlers(e,t){s===null||s===void 0?void 0:s.forEach((r=>r(e,t)))}));process.on("uncaughtException",(function invokeErrorHandlers(e){i===null||i===void 0?void 0:i.forEach((t=>t(e)))}));function getDefineEventListenersCode(){return`\n Object.defineProperty(self, '__listeners', {\n configurable: false,\n enumerable: false,\n value: {},\n writable: true,\n })\n\n function conditionallyUpdatesHandlerList(eventType) {\n if (eventType === 'unhandledrejection') {\n self.__onUnhandledRejectionHandler = self.__listeners[eventType];\n } else if (eventType === 'error') {\n self.__onErrorHandler = self.__listeners[eventType];\n }\n }\n\n function addEventListener(type, handler) {\n const eventType = type.toLowerCase();\n if (eventType === 'fetch' && self.__listeners.fetch) {\n throw new TypeError('You can register just one "fetch" event listener');\n }\n\n self.__listeners[eventType] = self.__listeners[eventType] || [];\n self.__listeners[eventType].push(handler);\n conditionallyUpdatesHandlerList(eventType);\n }\n\n function removeEventListener(type, handler) {\n const eventType = type.toLowerCase();\n if (self.__listeners[eventType]) {\n self.__listeners[eventType] = self.__listeners[eventType].filter(item => {\n return item !== handler;\n });\n\n if (self.__listeners[eventType].length === 0) {\n delete self.__listeners[eventType];\n }\n }\n conditionallyUpdatesHandlerList(eventType);\n }\n `}function getDispatchFetchCode(){return`(async function dispatchFetch(input, init) {\n const request = new Request(input, init);\n const event = new FetchEvent(request);\n if (!self.__listeners.fetch) {\n throw new Error("No fetch event listeners found");\n }\n\n const getResponse = ({ response, error }) => {\n if (error || !response || !(response instanceof Response)) {\n console.error(error ? error : 'The event listener did not respond')\n response = new Response(null, {\n statusText: 'Internal Server Error',\n status: 500\n })\n }\n\n response.waitUntil = () => Promise.all(event.awaiting);\n return response;\n }\n\n try {\n await self.__listeners.fetch[0].call(event, event)\n } catch (error) {\n return getResponse({ error })\n }\n\n return Promise.resolve(event.response)\n .then(response => getResponse({ response }))\n .catch(error => getResponse({ error }))\n })`}function defineHandlerProps({object:e,setterName:t,setter:r,getterName:n,getter:o}){Object.defineProperty(e.context,t,{set:r,configurable:false,enumerable:false});Object.defineProperty(e,n,{get:o,configurable:false,enumerable:false})}},508:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getClonableBodyStream=void 0;const n=r(781);function getClonableBodyStream(e,t){let r=null;return{finalize(){if(r){replaceRequestBody(e,bodyStreamToNodeStream(r))}},cloneBodyStream(){const n=r!==null&&r!==void 0?r:requestToBodyStream(e,t);const[o,s]=n.tee();r=o;return s}}}t.getClonableBodyStream=getClonableBodyStream;function requestToBodyStream(e,t){const r=new t({start(t){e.on("data",(e=>t.enqueue(e)));e.on("end",(()=>t.terminate()));e.on("error",(e=>t.error(e)))}});return r.readable}function bodyStreamToNodeStream(e){const t=e.getReader();return n.Readable.from(async function*(){while(true){const{done:e,value:r}=await t.read();if(e){return}yield r}}())}function replaceRequestBody(e,t){for(const r in t){let n=t[r];if(typeof n==="function"){n=n.bind(t)}e[r]=n}return e}},434:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.createHandler=void 0;const o=r(508);const s=n(r(720));const i=n(r(242));const a=n(r(504));function createHandler(e){const t=new Set;return{handler:async(r,n)=>{var E,d;const c=(0,a.default)();const _=r.method!=="GET"&&r.method!=="HEAD"?(0,o.getClonableBodyStream)(r,e.runtime.context.TransformStream):undefined;const u=await e.runtime.dispatchFetch(String(getURL(r)),{headers:toRequestInitHeaders(r),method:r.method,body:_===null||_===void 0?void 0:_.cloneBodyStream()});const l=u.waitUntil();t.add(l);l.finally((()=>t.delete(l)));n.statusCode=u.status;n.statusMessage=u.statusText;for(const[e,t]of Object.entries(toNodeHeaders(u.headers))){if(e!=="content-encoding"&&t!==undefined){n.setHeader(e,t)}}if(u.body){for await(const e of u.body){n.write(e)}}const S=`${r.socket.remoteAddress} ${r.method} ${r.url}`;const R=`${(E=(0,s.default)(c()).match(/[a-zA-Z]+|[0-9]+/g))===null||E===void 0?void 0:E.join(" ")}`;const A=`${n.statusCode} ${i.default[n.statusCode]}`;(d=e.logger)===null||d===void 0?void 0:d.debug(`${S} → ${A} in ${R}`);n.end()},waitUntil:()=>Promise.all(t)}}t.createHandler=createHandler;function getURL(e){var t;const r=((t=e.socket)===null||t===void 0?void 0:t.encrypted)?"https":"http";return new URL(String(e.url),`${r}://${String(e.headers.host)}`)}function toRequestInitHeaders(e){return Object.keys(e.headers).map((t=>{const r=e.headers[t];return[t,Array.isArray(r)?r.join(", "):r!==null&&r!==void 0?r:""]}))}function toNodeHeaders(e){const t={};if(e){for(const[r,n]of e.entries()){t[r]=r.toLowerCase()==="set-cookie"?e.getAll("set-cookie"):n}}return t}},972:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.runServer=t.createHandler=void 0;var n=r(434);Object.defineProperty(t,"createHandler",{enumerable:true,get:function(){return n.createHandler}});var o=r(418);Object.defineProperty(t,"runServer",{enumerable:true,get:function(){return o.runServer}})},418:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.runServer=void 0;const o=r(434);const s=r(361);const i=n(r(685));async function runServer(e){const{handler:t,waitUntil:r}=(0,o.createHandler)(e);const n=i.default.createServer(t);n.listen(e.port);try{await(0,s.once)(n,"listening")}catch(t){if((t===null||t===void 0?void 0:t.code)==="EADDRINUSE"){return runServer({...e,port:undefined})}throw t}const a=n.address();const E=typeof a==="string"||a==null?String(a):`http://localhost:${a.port}`;return{url:E,close:async()=>{await r();await new Promise(((e,t)=>n.close((r=>{if(r)t(r);e()}))))},waitUntil:r}}t.runServer=runServer},978:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.VERSION=void 0;t.VERSION="1.1.0-beta.6"},242:e=>{var t;t={"1xx":"Informational","1xx_NAME":"INFORMATIONAL","1xx_MESSAGE":"Indicates an interim response for communicating connection status or request progress prior to completing the requested action and sending a final response.",INFORMATIONAL:"1xx","2xx":"Successful","2xx_NAME":"SUCCESSFUL","2xx_MESSAGE":"Indicates that the client's request was successfully received, understood, and accepted.",SUCCESSFUL:"2xx","3xx":"Redirection","3xx_NAME":"REDIRECTION","3xx_MESSAGE":"Indicates that further action needs to be taken by the user agent in order to fulfill the request.",REDIRECTION:"3xx","4xx":"Client Error","4xx_NAME":"CLIENT_ERROR","4xx_MESSAGE":"Indicates that the client seems to have erred.",CLIENT_ERROR:"4xx","5xx":"Server Error","5xx_NAME":"SERVER_ERROR","5xx_MESSAGE":"Indicates that the server is aware that it has erred or is incapable of performing the requested method.",SERVER_ERROR:"5xx"};e.exports={classes:t,100:"Continue","100_NAME":"CONTINUE","100_MESSAGE":"The server has received the request headers and the client should proceed to send the request body.","100_CLASS":t.INFORMATIONAL,CONTINUE:100,101:"Switching Protocols","101_NAME":"SWITCHING_PROTOCOLS","101_MESSAGE":"The requester has asked the server to switch protocols and the server has agreed to do so.","101_CLASS":t.INFORMATIONAL,SWITCHING_PROTOCOLS:101,102:"Processing","102_NAME":"PROCESSING","102_MESSAGE":"A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet.[7] This prevents the client from timing out and assuming the request was lost.","102_CLASS":t.INFORMATIONAL,PROCESSING:102,103:"Early Hints","103_NAME":"EARLY_HINTS","103_MESSAGE":"Used to return some response headers before final HTTP message.","103_CLASS":t.INFORMATIONAL,EARLY_HINTS:103,200:"OK","200_NAME":"OK","200_MESSAGE":"Standard response for successful HTTP requests.","200_CLASS":t.SUCCESSFUL,OK:200,201:"Created","201_NAME":"CREATED","201_MESSAGE":"The request has been fulfilled, resulting in the creation of a new resource.","201_CLASS":t.SUCCESSFUL,CREATED:201,202:"Accepted","202_NAME":"ACCEPTED","202_MESSAGE":"The request has been accepted for processing, but the processing has not been completed.","202_CLASS":t.SUCCESSFUL,ACCEPTED:202,203:"Non-Authoritative Information","203_NAME":"NON_AUTHORITATIVE_INFORMATION","203_MESSAGE":"The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin's response.","203_CLASS":t.SUCCESSFUL,NON_AUTHORITATIVE_INFORMATION:203,204:"No Content","204_NAME":"NO_CONTENT","204_MESSAGE":"The server successfully processed the request and is not returning any content.","204_CLASS":t.SUCCESSFUL,NO_CONTENT:204,205:"Reset Content","205_NAME":"RESET_CONTENT","205_MESSAGE":"The server successfully processed the request, but is not returning any content. Unlike a 204 response, this response requires that the requester reset the document view.","205_CLASS":t.SUCCESSFUL,RESET_CONTENT:205,206:"Partial Content","206_NAME":"PARTIAL_CONTENT","206_MESSAGE":"The server is delivering only part of the resource (byte serving) due to a range header sent by the client.","206_CLASS":t.SUCCESSFUL,PARTIAL_CONTENT:206,207:"Multi Status","207_NAME":"MULTI_STATUS","207_MESSAGE":"The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.","207_CLASS":t.SUCCESSFUL,MULTI_STATUS:207,208:"Already Reported","208_NAME":"ALREADY_REPORTED","208_MESSAGE":"The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.","208_CLASS":t.SUCCESSFUL,ALREADY_REPORTED:208,226:"IM Used","226_NAME":"IM_USED","226_MESSAGE":"The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.","226_CLASS":t.SUCCESSFUL,IM_USED:226,300:"Multiple Choices","300_NAME":"MULTIPLE_CHOICES","300_MESSAGE":"Indicates multiple options for the resource from which the client may choose.","300_CLASS":t.REDIRECTION,MULTIPLE_CHOICES:300,301:"Moved Permanently","301_NAME":"MOVED_PERMANENTLY","301_MESSAGE":"This and all future requests should be directed to the given URI.","301_CLASS":t.REDIRECTION,MOVED_PERMANENTLY:301,302:"Found","302_NAME":"FOUND","302_MESSAGE":'This is an example of industry practice contradicting the standard. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was "Moved Temporarily"), but popular browsers implemented 302 with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.',"302_CLASS":t.REDIRECTION,FOUND:302,303:"See Other","303_NAME":"SEE_OTHER","303_MESSAGE":"The response to the request can be found under another URI using the GET method.","303_CLASS":t.REDIRECTION,SEE_OTHER:303,304:"Not Modified","304_NAME":"NOT_MODIFIED","304_MESSAGE":"Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.","304_CLASS":t.REDIRECTION,NOT_MODIFIED:304,305:"Use Proxy","305_NAME":"USE_PROXY","305_MESSAGE":"The requested resource is available only through a proxy, the address for which is provided in the response.","305_CLASS":t.REDIRECTION,USE_PROXY:305,306:"Switch Proxy","306_NAME":"SWITCH_PROXY","306_MESSAGE":'No longer used. Originally meant "Subsequent requests should use the specified proxy.',"306_CLASS":t.REDIRECTION,SWITCH_PROXY:306,307:"Temporary Redirect","307_NAME":"TEMPORARY_REDIRECT","307_MESSAGE":"In this case, the request should be repeated with another URI; however, future requests should still use the original URI.","307_CLASS":t.REDIRECTION,TEMPORARY_REDIRECT:307,308:"Permanent Redirect","308_NAME":"PERMANENT_REDIRECT","308_MESSAGE":"The request and all future requests should be repeated using another URI.","308_CLASS":t.REDIRECTION,PERMANENT_REDIRECT:308,400:"Bad Request","400_NAME":"BAD_REQUEST","400_MESSAGE":"The server cannot or will not process the request due to an apparent client error.","400_CLASS":t.CLIENT_ERROR,BAD_REQUEST:400,401:"Unauthorized","401_NAME":"UNAUTHORIZED","401_MESSAGE":"Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided.","401_CLASS":t.CLIENT_ERROR,UNAUTHORIZED:401,402:"Payment Required","402_NAME":"PAYMENT_REQUIRED","402_MESSAGE":"Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed for example by GNU Taler, but that has not yet happened, and this code is not usually used.","402_CLASS":t.CLIENT_ERROR,PAYMENT_REQUIRED:402,403:"Forbidden","403_NAME":"FORBIDDEN","403_MESSAGE":"The request was valid, but the server is refusing action.","403_CLASS":t.CLIENT_ERROR,FORBIDDEN:403,404:"Not Found","404_NAME":"NOT_FOUND","404_MESSAGE":"The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.","404_CLASS":t.CLIENT_ERROR,NOT_FOUND:404,405:"Method Not Allowed","405_NAME":"METHOD_NOT_ALLOWED","405_MESSAGE":"A request method is not supported for the requested resource.","405_CLASS":t.CLIENT_ERROR,METHOD_NOT_ALLOWED:405,406:"Not Acceptable","406_NAME":"NOT_ACCEPTABLE","406_MESSAGE":"The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.","406_CLASS":t.CLIENT_ERROR,NOT_ACCEPTABLE:406,407:"Proxy Authentication Required","407_NAME":"PROXY_AUTHENTICATION_REQUIRED","407_MESSAGE":"The client must first authenticate itself with the proxy.","407_CLASS":t.CLIENT_ERROR,PROXY_AUTHENTICATION_REQUIRED:407,408:"Request Time-out","408_NAME":"REQUEST_TIMEOUT","408_MESSAGE":"The server timed out waiting for the request.","408_CLASS":t.CLIENT_ERROR,REQUEST_TIMEOUT:408,409:"Conflict","409_NAME":"CONFLICT","409_MESSAGE":"Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.","409_CLASS":t.CLIENT_ERROR,CONFLICT:409,410:"Gone","410_NAME":"GONE","410_MESSAGE":"Indicates that the resource requested is no longer available and will not be available again.","410_CLASS":t.CLIENT_ERROR,GONE:410,411:"Length Required","411_NAME":"LENGTH_REQUIRED","411_MESSAGE":"The request did not specify the length of its content, which is required by the requested resource.","411_CLASS":t.CLIENT_ERROR,LENGTH_REQUIRED:411,412:"Precondition Failed","412_NAME":"PRECONDITION_FAILED","412_MESSAGE":"The server does not meet one of the preconditions that the requester put on the request.","412_CLASS":t.CLIENT_ERROR,PRECONDITION_FAILED:412,413:"Request Entity Too Large","413_NAME":"REQUEST_ENTITY_TOO_LARGE","413_MESSAGE":'The request is larger than the server is willing or able to process. Previously called "Request Entity Too Large".',"413_CLASS":t.CLIENT_ERROR,REQUEST_ENTITY_TOO_LARGE:413,414:"Request-URI Too Large","414_NAME":"REQUEST_URI_TOO_LONG","414_MESSAGE":"The URI provided was too long for the server to process.","414_CLASS":t.CLIENT_ERROR,REQUEST_URI_TOO_LONG:414,415:"Unsupported Media Type","415_NAME":"UNSUPPORTED_MEDIA_TYPE","415_MESSAGE":"The request entity has a media type which the server or resource does not support.","415_CLASS":t.CLIENT_ERROR,UNSUPPORTED_MEDIA_TYPE:415,416:"Requested Range not Satisfiable","416_NAME":"REQUESTED_RANGE_NOT_SATISFIABLE","416_MESSAGE":"The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.","416_CLASS":t.CLIENT_ERROR,REQUESTED_RANGE_NOT_SATISFIABLE:416,417:"Expectation Failed","417_NAME":"EXPECTATION_FAILED","417_MESSAGE":"The server cannot meet the requirements of the Expect request-header field.","417_CLASS":t.CLIENT_ERROR,EXPECTATION_FAILED:417,418:"I'm a teapot","418_NAME":"IM_A_TEAPOT","418_MESSAGE":'Any attempt to brew coffee with a teapot should result in the error code "418 I\'m a teapot". The resulting entity body MAY be short and stout.',"418_CLASS":t.CLIENT_ERROR,IM_A_TEAPOT:418,421:"Misdirected Request","421_NAME":"MISDIRECTED_REQUEST","421_MESSAGE":"The request was directed at a server that is not able to produce a response.","421_CLASS":t.CLIENT_ERROR,MISDIRECTED_REQUEST:421,422:"Unprocessable Entity","422_NAME":"UNPROCESSABLE_ENTITY","422_MESSAGE":"The request was well-formed but was unable to be followed due to semantic errors.","422_CLASS":t.CLIENT_ERROR,UNPROCESSABLE_ENTITY:422,423:"Locked","423_NAME":"LOCKED","423_MESSAGE":"The resource that is being accessed is locked.","423_CLASS":t.CLIENT_ERROR,LOCKED:423,424:"Failed Dependency","424_NAME":"FAILED_DEPENDENCY","424_MESSAGE":"The request failed because it depended on another request and that request failed.","424_CLASS":t.CLIENT_ERROR,FAILED_DEPENDENCY:424,426:"Upgrade Required","426_NAME":"UPGRADE_REQUIRED","426_MESSAGE":"The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.","426_CLASS":t.CLIENT_ERROR,UPGRADE_REQUIRED:426,428:"Precondition Required","428_NAME":"PRECONDITION_REQUIRED","428_MESSAGE":"The origin server requires the request to be conditional.","428_CLASS":t.CLIENT_ERROR,PRECONDITION_REQUIRED:428,429:"Too Many Requests","429_NAME":"TOO_MANY_REQUESTS","429_MESSAGE":"The user has sent too many requests in a given amount of time.","429_CLASS":t.CLIENT_ERROR,TOO_MANY_REQUESTS:429,431:"Request Header Fields Too Large","431_NAME":"REQUEST_HEADER_FIELDS_TOO_LARGE","431_MESSAGE":"The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.","431_CLASS":t.CLIENT_ERROR,REQUEST_HEADER_FIELDS_TOO_LARGE:431,451:"Unavailable For Legal Reasons","451_NAME":"UNAVAILABLE_FOR_LEGAL_REASONS","451_MESSAGE":"A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.","451_CLASS":t.CLIENT_ERROR,UNAVAILABLE_FOR_LEGAL_REASONS:451,500:"Internal Server Error","500_NAME":"INTERNAL_SERVER_ERROR","500_MESSAGE":"A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.","500_CLASS":t.SERVER_ERROR,INTERNAL_SERVER_ERROR:500,501:"Not Implemented","501_NAME":"NOT_IMPLEMENTED","501_MESSAGE":"The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability.","501_CLASS":t.SERVER_ERROR,NOT_IMPLEMENTED:501,502:"Bad Gateway","502_NAME":"BAD_GATEWAY","502_MESSAGE":"The server was acting as a gateway or proxy and received an invalid response from the upstream server.","502_CLASS":t.SERVER_ERROR,BAD_GATEWAY:502,503:"Service Unavailable","503_NAME":"SERVICE_UNAVAILABLE","503_MESSAGE":"The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.","503_CLASS":t.SERVER_ERROR,SERVICE_UNAVAILABLE:503,504:"Gateway Time-out","504_NAME":"GATEWAY_TIMEOUT","504_MESSAGE":"The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.","504_CLASS":t.SERVER_ERROR,GATEWAY_TIMEOUT:504,505:"HTTP Version not Supported","505_NAME":"HTTP_VERSION_NOT_SUPPORTED","505_MESSAGE":"The server does not support the HTTP protocol version used in the request.","505_CLASS":t.SERVER_ERROR,HTTP_VERSION_NOT_SUPPORTED:505,506:"Variant Also Negotiates","506_NAME":"VARIANT_ALSO_NEGOTIATES","506_MESSAGE":"Transparent content negotiation for the request results in a circular reference.","506_CLASS":t.SERVER_ERROR,VARIANT_ALSO_NEGOTIATES:506,507:"Insufficient Storage","507_NAME":"INSUFFICIENT_STORAGE","507_MESSAGE":"The server is unable to store the representation needed to complete the request.","507_CLASS":t.SERVER_ERROR,INSUFFICIENT_STORAGE:507,508:"Loop Detected","508_NAME":"LOOP_DETECTED","508_MESSAGE":"The server detected an infinite loop while processing the request.","508_CLASS":t.SERVER_ERROR,LOOP_DETECTED:508,510:"Not Extended","510_NAME":"NOT_EXTENDED","510_MESSAGE":"Further extensions to the request are required for the server to fulfil it.","510_CLASS":t.SERVER_ERROR,NOT_EXTENDED:510,511:"Network Authentication Required","511_NAME":"NETWORK_AUTHENTICATION_REQUIRED","511_MESSAGE":"The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network.","511_CLASS":t.SERVER_ERROR,NETWORK_AUTHENTICATION_REQUIRED:511,extra:{unofficial:{103:"Checkpoint","103_NAME":"CHECKPOINT","103_MESSAGE":"Used in the resumable requests proposal to resume aborted PUT or POST requests.","103_CLASS":t.INFORMATIONAL,CHECKPOINT:103,419:"Page Expired","419_NAME":"PAGE_EXPIRED","419_MESSAGE":"Used by the Laravel Framework when a CSRF Token is missing or expired.","419_CLASS":t.CLIENT_ERROR,PAGE_EXPIRED:419,218:"This is fine","218_NAME":"THIS_IS_FINE","218_MESSAGE":"Used as a catch-all error condition for allowing response bodies to flow through Apache when ProxyErrorOverride is enabled. When ProxyErrorOverride is enabled in Apache, response bodies that contain a status code of 4xx or 5xx are automatically discarded by Apache in favor of a generic response or a custom response specified by the ErrorDocument directive.","218_CLASS":t.SUCCESSFUL,THIS_IS_FINE:218,420:"Enhance Your Calm","420_NAME":"ENHANCE_YOUR_CALM","420_MESSAGE":"Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.","420_CLASS":t.CLIENT_ERROR,ENHANCE_YOUR_CALM:420,450:"Blocked by Windows Parental Controls","450_NAME":"BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS","450_MESSAGE":"The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.","450_CLASS":t.CLIENT_ERROR,BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS:450,498:"Invalid Token","498_NAME":"INVALID_TOKEN","498_MESSAGE":"Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.","498_CLASS":t.CLIENT_ERROR,INVALID_TOKEN:498,499:"Token Required","499_NAME":"TOKEN_REQUIRED","499_MESSAGE":"Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.","499_CLASS":t.CLIENT_ERROR,TOKEN_REQUIRED:499,509:"Bandwidth Limit Exceeded","509_NAME":"BANDWIDTH_LIMIT_EXCEEDED","509_MESSAGE":"The server has exceeded the bandwidth specified by the server administrator.","509_CLASS":t.SERVER_ERROR,BANDWIDTH_LIMIT_EXCEEDED:509,530:"Site is frozen","530_NAME":"SITE_IS_FROZEN","530_MESSAGE":"Used by the Pantheon web platform to indicate a site that has been frozen due to inactivity.","530_CLASS":t.SERVER_ERROR,SITE_IS_FROZEN:530,598:"Network read timeout error","598_NAME":"NETWORK_READ_TIMEOUT_ERROR","598_MESSAGE":"Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.","598_CLASS":t.SERVER_ERROR,NETWORK_READ_TIMEOUT_ERROR:598},iis:{440:"Login Time-out","440_NAME":"LOGIN_TIME_OUT","440_MESSAGE":"The client's session has expired and must log in again.","440_CLASS":t.CLIENT_ERROR,LOGIN_TIME_OUT:440,449:"Retry With","449_NAME":"RETRY_WITH","449_MESSAGE":"The server cannot honour the request because the user has not provided the required information.","449_CLASS":t.CLIENT_ERROR,RETRY_WITH:449,451:"Redirect","451_NAME":"REDIRECT","451_MESSAGE":"Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users' mailbox.","451_CLASS":t.CLIENT_ERROR,REDIRECT:451},nginx:{444:"No Response","444_NAME":"NO_RESPONSE","444_MESSAGE":"Used internally to instruct the server to return no information to the client and close the connection immediately.","444_CLASS":t.CLIENT_ERROR,NO_RESPONSE:444,494:"Request header too large","494_NAME":"REQUEST_HEADER_TOO_LARGE","494_MESSAGE":"Client sent too large request or too long header line.","494_CLASS":t.CLIENT_ERROR,REQUEST_HEADER_TOO_LARGE:494,495:"SSL Certificate Error","495_NAME":"SSL_CERTIFICATE_ERROR","495_MESSAGE":"An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.","495_CLASS":t.CLIENT_ERROR,SSL_CERTIFICATE_ERROR:495,496:"SSL Certificate Required","496_NAME":"SSL_CERTIFICATE_REQUIRED","496_MESSAGE":"An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.","496_CLASS":t.CLIENT_ERROR,SSL_CERTIFICATE_REQUIRED:496,497:"HTTP Request Sent to HTTPS Port","497_NAME":"HTTP_REQUEST_SENT_TO_HTTPS_PORT","497_MESSAGE":"An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.","497_CLASS":t.CLIENT_ERROR,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,499:"Client Closed Request","499_NAME":"CLIENT_CLOSED_REQUEST","499_MESSAGE":"Used when the client has closed the request before the server could send a response.","499_CLASS":t.CLIENT_ERROR,CLIENT_CLOSED_REQUEST:499},cloudflare:{520:"Unknown Error","520_NAME":"UNKNOWN_ERROR","520_MESSAGE":'The 520 error is used as a "catch-all response for when the origin server returns something unexpected", listing connection resets, large headers, and empty or invalid responses as common triggers.',"520_CLASS":t.SERVER_ERROR,UNKNOWN_ERROR:520,521:"Web Server Is Down","521_NAME":"WEB_SERVER_IS_DOWN","521_MESSAGE":"The origin server has refused the connection from Cloudflare.","521_CLASS":t.SERVER_ERROR,WEB_SERVER_IS_DOWN:521,522:"Connection Timed Out","522_NAME":"CONNECTION_TIMED_OUT","522_MESSAGE":"Cloudflare could not negotiate a TCP handshake with the origin server.","522_CLASS":t.SERVER_ERROR,CONNECTION_TIMED_OUT:522,523:"Origin Is Unreachable","523_NAME":"ORIGIN_IS_UNREACHABLE","523_MESSAGE":"Cloudflare could not reach the origin server.","523_CLASS":t.SERVER_ERROR,ORIGIN_IS_UNREACHABLE:523,524:"A Timeout Occurred","524_NAME":"A_TIMEOUT_OCCURRED","524_MESSAGE":"Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.","524_CLASS":t.SERVER_ERROR,A_TIMEOUT_OCCURRED:524,525:"SSL Handshake Failed","525_NAME":"SSL_HANDSHAKE_FAILED","525_MESSAGE":"Cloudflare could not negotiate a SSL/TLS handshake with the origin server.","525_CLASS":t.SERVER_ERROR,SSL_HANDSHAKE_FAILED:525,526:"Invalid SSL Certificate","526_NAME":"INVALID_SSL_CERTIFICATE","526_MESSAGE":"Cloudflare could not validate the SSL/TLS certificate that the origin server presented.","526_CLASS":t.SERVER_ERROR,INVALID_SSL_CERTIFICATE:526,527:"Railgun Error","527_NAME":"RAILGUN_ERROR","527_MESSAGE":"Error 527 indicates that the request timed out or failed after the WAN connection had been established.","527_CLASS":t.SERVER_ERROR,RAILGUN_ERROR:527}}}},672:e=>{"use strict";e.exports=e=>{if(typeof e!=="number"){throw new TypeError("Expected a number")}const t=e>0?Math.floor:Math.ceil;return{days:t(e/864e5),hours:t(e/36e5)%24,minutes:t(e/6e4)%60,seconds:t(e/1e3)%60,milliseconds:t(e)%1e3,microseconds:t(e*1e3)%1e3,nanoseconds:t(e*1e6)%1e3}}},720:(e,t,r)=>{"use strict";const n=r(672);const pluralize=(e,t)=>t===1?e:`${e}s`;const o=1e-7;e.exports=(e,t={})=>{if(!Number.isFinite(e)){throw new TypeError("Expected a finite number")}if(t.colonNotation){t.compact=false;t.formatSubMilliseconds=false;t.separateMilliseconds=false;t.verbose=false}if(t.compact){t.secondsDecimalDigits=0;t.millisecondsDecimalDigits=0}const r=[];const floorDecimals=(e,t)=>{const r=Math.floor(e*10**t+o);const n=Math.round(r)/10**t;return n.toFixed(t)};const add=(e,n,o,s)=>{if((r.length===0||!t.colonNotation)&&e===0&&!(t.colonNotation&&o==="m")){return}s=(s||e||"0").toString();let i;let a;if(t.colonNotation){i=r.length>0?":":"";a="";const e=s.includes(".")?s.split(".")[0].length:s.length;const t=r.length>0?2:1;s="0".repeat(Math.max(0,t-e))+s}else{i="";a=t.verbose?" "+pluralize(n,e):o}r.push(i+s+a)};const s=n(e);add(Math.trunc(s.days/365),"year","y");add(s.days%365,"day","d");add(s.hours,"hour","h");add(s.minutes,"minute","m");if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3){add(s.seconds,"second","s");if(t.formatSubMilliseconds){add(s.milliseconds,"millisecond","ms");add(s.microseconds,"microsecond","µs");add(s.nanoseconds,"nanosecond","ns")}else{const e=s.milliseconds+s.microseconds/1e3+s.nanoseconds/1e6;const r=typeof t.millisecondsDecimalDigits==="number"?t.millisecondsDecimalDigits:0;const n=e>=1?Math.round(e):Math.ceil(e);const o=r?e.toFixed(r):n;add(Number.parseFloat(o,10),"millisecond","ms",o)}}else{const r=e/1e3%60;const n=typeof t.secondsDecimalDigits==="number"?t.secondsDecimalDigits:1;const o=floorDecimals(r,n);const s=t.keepDecimalsOnWholeSeconds?o:o.replace(/\.0+$/,"");add(Number.parseFloat(s,10),"second","s",s)}if(r.length===0){return"0"+(t.verbose?" milliseconds":"ms")}if(t.compact){return r[0]}if(typeof t.unitCount==="number"){const e=t.colonNotation?"":" ";return r.slice(0,Math.max(t.unitCount,1)).join(e)}return t.colonNotation?r.join(""):r.join(" ")}},504:(e,t,r)=>{"use strict";const n=r(734);e.exports=()=>{const e=process.hrtime();const end=t=>n(process.hrtime(e))[t];const returnValue=()=>end("milliseconds");returnValue.rounded=()=>Math.round(end("milliseconds"));returnValue.seconds=()=>end("seconds");returnValue.nanoseconds=()=>end("nanoseconds");return returnValue}},361:e=>{"use strict";e.exports=require("events")},147:e=>{"use strict";e.exports=require("fs")},685:e=>{"use strict";e.exports=require("http")},951:e=>{"use strict";e.exports=require("next/dist/compiled/@edge-runtime/primitives")},37:e=>{"use strict";e.exports=require("os")},17:e=>{"use strict";e.exports=require("path")},781:e=>{"use strict";e.exports=require("stream")},144:e=>{"use strict";e.exports=require("vm")}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var o=t[r]={exports:{}};var s=true;try{e[r].call(o.exports,o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete t[r]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r={};(()=>{"use strict";var e=r;Object.defineProperty(e,"__esModule",{value:true});e.EdgeRuntime=e.runServer=e.createHandler=void 0;var t=__nccwpck_require__(972);Object.defineProperty(e,"createHandler",{enumerable:true,get:function(){return t.createHandler}});Object.defineProperty(e,"runServer",{enumerable:true,get:function(){return t.runServer}});var n=__nccwpck_require__(629);Object.defineProperty(e,"EdgeRuntime",{enumerable:true,get:function(){return n.EdgeRuntime}})})();module.exports=r})(); \ No newline at end of file diff --git a/packages/next/package.json b/packages/next/package.json index ec7d4e78aaba..fe1ec18f9e19 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -117,7 +117,7 @@ "@babel/runtime": "7.15.4", "@babel/traverse": "7.18.0", "@babel/types": "7.18.0", - "@edge-runtime/primitives": "1.1.0-beta.2", + "@edge-runtime/primitives": "1.1.0-beta.6", "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", @@ -194,7 +194,7 @@ "debug": "4.1.1", "devalue": "2.0.1", "domain-browser": "4.19.0", - "edge-runtime": "1.1.0-beta.2", + "edge-runtime": "1.1.0-beta.6", "etag": "1.8.1", "events": "3.3.0", "find-cache-dir": "3.3.1", diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index 1bcc41e5a63c..cca58219ba9e 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -770,12 +770,8 @@ export default class DevServer extends Server { const src = getErrorSource(err) if (src === 'edge-server') { compilation = this.hotReloader?.edgeServerStats?.compilation - } else if (src === 'server') { - compilation = this.hotReloader?.serverStats?.compilation } else { - compilation = frame.file!.includes('(middleware)') - ? this.hotReloader?.edgeServerStats?.compilation - : this.hotReloader?.serverStats?.compilation + compilation = this.hotReloader?.serverStats?.compilation } const source = await getSourceById( diff --git a/packages/next/server/web/sandbox/context.ts b/packages/next/server/web/sandbox/context.ts index f137a42e846e..c2e00710c6fc 100644 --- a/packages/next/server/web/sandbox/context.ts +++ b/packages/next/server/web/sandbox/context.ts @@ -1,6 +1,9 @@ import type { Primitives } from 'next/dist/compiled/@edge-runtime/primitives' import type { WasmBinding } from '../../../build/webpack/loaders/get-module-build-info' -import { getServerError } from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware' +import { + decorateServerError, + getServerError, +} from 'next/dist/compiled/@next/react-dev-overlay/dist/middleware' import { EDGE_UNSUPPORTED_NODE_APIS } from '../../../shared/lib/constants' import { EdgeRuntime } from 'next/dist/compiled/edge-runtime' import { readFileSync, promises as fs } from 'fs' @@ -127,9 +130,12 @@ async function createModuleContext(options: ModuleContextOptions) { function __next_webassembly_compile__(fn: Function) { const key = fn.toString() if (!warnedWasmCodegens.has(key)) { - const warning = new Error( - "Dynamic WASM code generation (e. g. 'WebAssembly.compile') not allowed in Middleware.\n" + - 'Learn More: https://nextjs.org/docs/messages/middleware-dynamic-wasm-compilation' + const warning = getServerError( + new Error( + "Dynamic WASM code generation (e. g. 'WebAssembly.compile') not allowed in Middleware.\n" + + 'Learn More: https://nextjs.org/docs/messages/middleware-dynamic-wasm-compilation' + ), + 'edge-server' ) warning.name = 'DynamicWasmCodeGenerationWarning' Error.captureStackTrace(warning, __next_webassembly_compile__) @@ -153,9 +159,12 @@ async function createModuleContext(options: ModuleContextOptions) { const key = fn.toString() if (instantiatedFromBuffer && !warnedWasmCodegens.has(key)) { - const warning = new Error( - "Dynamic WASM code generation ('WebAssembly.instantiate' with a buffer parameter) not allowed in Middleware.\n" + - 'Learn More: https://nextjs.org/docs/messages/middleware-dynamic-wasm-compilation' + const warning = getServerError( + new Error( + "Dynamic WASM code generation ('WebAssembly.instantiate' with a buffer parameter) not allowed in Middleware.\n" + + 'Learn More: https://nextjs.org/docs/messages/middleware-dynamic-wasm-compilation' + ), + 'edge-server' ) warning.name = 'DynamicWasmCodeGenerationWarning' Error.captureStackTrace(warning, __next_webassembly_instantiate__) @@ -228,6 +237,9 @@ async function createModuleContext(options: ModuleContextOptions) { }, }) + runtime.context.addEventListener('unhandledrejection', decorateUnhandledError) + runtime.context.addEventListener('error', decorateUnhandledError) + return { runtime, paths: new Map(), @@ -314,3 +326,9 @@ Learn more: https://nextjs.org/docs/api-reference/edge-runtime`) warnedAlready.add(name) } } + +function decorateUnhandledError(error: any) { + if (error instanceof Error) { + decorateServerError(error, 'edge-server') + } +} diff --git a/packages/react-dev-overlay/src/internal/helpers/nodeStackFrames.ts b/packages/react-dev-overlay/src/internal/helpers/nodeStackFrames.ts index 88a5e2d3dfeb..6e05737bf58e 100644 --- a/packages/react-dev-overlay/src/internal/helpers/nodeStackFrames.ts +++ b/packages/react-dev-overlay/src/internal/helpers/nodeStackFrames.ts @@ -25,10 +25,9 @@ export function getErrorSource(error: Error): 'server' | 'edge-server' | null { return (error as any)[symbolError] || null } -export function getServerError( - error: Error, - type: 'edge-server' | 'server' -): Error { +type ErrorType = 'edge-server' | 'server' + +export function getServerError(error: Error, type: ErrorType): Error { let n: Error try { throw new Error(error.message) @@ -59,11 +58,15 @@ export function getServerError( n.stack = error.stack } - Object.defineProperty(n, symbolError, { + decorateServerError(n, type) + return n +} + +export function decorateServerError(error: Error, type: ErrorType) { + Object.defineProperty(error, symbolError, { writable: false, enumerable: false, configurable: false, value: type, }) - return n } diff --git a/packages/react-dev-overlay/src/middleware.ts b/packages/react-dev-overlay/src/middleware.ts index c5ec7a1a1495..0d628125fa67 100644 --- a/packages/react-dev-overlay/src/middleware.ts +++ b/packages/react-dev-overlay/src/middleware.ts @@ -16,7 +16,10 @@ import { getRawSourceMap } from './internal/helpers/getRawSourceMap' import { launchEditor } from './internal/helpers/launchEditor' export { getErrorSource } from './internal/helpers/nodeStackFrames' -export { getServerError } from './internal/helpers/nodeStackFrames' +export { + decorateServerError, + getServerError, +} from './internal/helpers/nodeStackFrames' export { parseStack } from './internal/helpers/parseStack' export type OverlayMiddlewareOptions = { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e78573f86c13..698d865cc87d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: '@babel/plugin-proposal-object-rest-spread': 7.14.7 '@babel/preset-flow': 7.14.5 '@babel/preset-react': 7.14.5 - '@edge-runtime/jest-environment': 1.1.0-beta.2 + '@edge-runtime/jest-environment': 1.1.0-beta.6 '@fullhuman/postcss-purgecss': 1.3.0 '@mdx-js/loader': 0.18.0 '@next/bundle-analyzer': workspace:* @@ -169,7 +169,7 @@ importers: '@babel/plugin-proposal-object-rest-spread': 7.14.7_@babel+core@7.18.0 '@babel/preset-flow': 7.14.5_@babel+core@7.18.0 '@babel/preset-react': 7.14.5_@babel+core@7.18.0 - '@edge-runtime/jest-environment': 1.1.0-beta.2 + '@edge-runtime/jest-environment': 1.1.0-beta.6 '@fullhuman/postcss-purgecss': 1.3.0 '@mdx-js/loader': 0.18.0_uuaxwgga6hqycsez5ok7v2wg4i '@next/bundle-analyzer': link:packages/next-bundle-analyzer @@ -408,7 +408,7 @@ importers: '@babel/runtime': 7.15.4 '@babel/traverse': 7.18.0 '@babel/types': 7.18.0 - '@edge-runtime/primitives': 1.1.0-beta.2 + '@edge-runtime/primitives': 1.1.0-beta.6 '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 @@ -488,7 +488,7 @@ importers: debug: 4.1.1 devalue: 2.0.1 domain-browser: 4.19.0 - edge-runtime: 1.1.0-beta.2 + edge-runtime: 1.1.0-beta.6 etag: 1.8.1 events: 3.3.0 find-cache-dir: 3.3.1 @@ -602,7 +602,7 @@ importers: '@babel/runtime': 7.15.4 '@babel/traverse': 7.18.0 '@babel/types': 7.18.0 - '@edge-runtime/primitives': 1.1.0-beta.2 + '@edge-runtime/primitives': 1.1.0-beta.6 '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 @@ -679,7 +679,7 @@ importers: debug: 4.1.1 devalue: 2.0.1 domain-browser: 4.19.0 - edge-runtime: 1.1.0-beta.2 + edge-runtime: 1.1.0-beta.6 etag: 1.8.1 events: 3.3.0 find-cache-dir: 3.3.1 @@ -3225,25 +3225,25 @@ packages: resolution: {integrity: sha512-mxi0n00nJwnjaXUQIfTS7l64yvwGXs435gEjuDhzTHZyrmnCYdELXdJr3Q+6v4DO1mmmtNTYFHUvIlpCmMUC6g==} dev: true - /@edge-runtime/jest-environment/1.1.0-beta.2: - resolution: {integrity: sha512-ERIwwQnmj9f9sWbrvv2aT9MDFW8WIMiTSkVSct/TjHyU5o+eUhFHsXnuXwocv4slBhUFZjNbqMpHcJmNAEvMaw==} + /@edge-runtime/jest-environment/1.1.0-beta.6: + resolution: {integrity: sha512-YE82392oHFj7YYHNQd9w1z8EmWiM/BZ98UgnJBzbAz9utJR7eKBmuJyhzuoCiuxMXA8hgXlZBnNePSh5kg02dw==} dependencies: - '@edge-runtime/vm': 1.1.0-beta.2 - '@jest/environment': 28.1.0 - '@jest/fake-timers': 28.1.0 - '@jest/types': 28.1.0 - jest-mock: 28.1.0 - jest-util: 28.1.0 + '@edge-runtime/vm': 1.1.0-beta.6 + '@jest/environment': 28.1.1 + '@jest/fake-timers': 28.1.1 + '@jest/types': 28.1.1 + jest-mock: 28.1.1 + jest-util: 28.1.1 dev: true - /@edge-runtime/primitives/1.1.0-beta.2: - resolution: {integrity: sha512-EAqRUEPaR7HCRvIjxBLhhGFcqH31jIXs41u9LNfw7gMKqk3ekitWfWDVirz2vsFz3O5o3QSVllIJRO/2LAkImA==} + /@edge-runtime/primitives/1.1.0-beta.6: + resolution: {integrity: sha512-CGwjdCZjyIsxfkpUmEW4jSifo79sYLF6m6u5v67ill5wX8Tfr6eP5QSAqOaNWZXNGIgPEfljWAwhIMpUZSdhMA==} dev: true - /@edge-runtime/vm/1.1.0-beta.2: - resolution: {integrity: sha512-JIAI74WKEnVnz9UQIuFD+ptqsiEAVNOOhCxJXs4CyxZQXhcZOGclCSFdXcttPB4yCwozhAmVJnC+5O7vJsNuTA==} + /@edge-runtime/vm/1.1.0-beta.6: + resolution: {integrity: sha512-OA6lCgAYbzW/cYw+ok+umq6OjeULMcMcnC2+4N4IG23xGOv/rWVbsAJnDeV9uU35OdKOzNHl6gpcyHLP9NAaoA==} dependencies: - '@edge-runtime/primitives': 1.1.0-beta.2 + '@edge-runtime/primitives': 1.1.0-beta.6 dev: true /@emotion/is-prop-valid/0.8.8: @@ -3690,14 +3690,14 @@ packages: jest-mock: 27.0.6 dev: true - /@jest/environment/28.1.0: - resolution: {integrity: sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA==} + /@jest/environment/28.1.1: + resolution: {integrity: sha512-9auVQ2GzQ7nrU+lAr8KyY838YahElTX9HVjbQPPS2XjlxQ+na18G113OoBhyBGBtD6ZnO/SrUy5WR8EzOj1/Uw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/fake-timers': 28.1.0 - '@jest/types': 28.1.0 + '@jest/fake-timers': 28.1.1 + '@jest/types': 28.1.1 '@types/node': 17.0.21 - jest-mock: 28.1.0 + jest-mock: 28.1.1 dev: true /@jest/fake-timers/27.0.6: @@ -3712,16 +3712,16 @@ packages: jest-util: 27.0.6 dev: true - /@jest/fake-timers/28.1.0: - resolution: {integrity: sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg==} + /@jest/fake-timers/28.1.1: + resolution: {integrity: sha512-BY/3+TyLs5+q87rGWrGUY5f8e8uC3LsVHS9Diz8+FV3ARXL4sNnkLlIB8dvDvRrp+LUCGM+DLqlsYubizGUjIA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/types': 28.1.0 + '@jest/types': 28.1.1 '@sinonjs/fake-timers': 9.1.2 '@types/node': 17.0.21 - jest-message-util: 28.1.0 - jest-mock: 28.1.0 - jest-util: 28.1.0 + jest-message-util: 28.1.1 + jest-mock: 28.1.1 + jest-util: 28.1.1 dev: true /@jest/globals/27.0.6: @@ -3843,8 +3843,8 @@ packages: chalk: 4.1.2 dev: true - /@jest/types/28.1.0: - resolution: {integrity: sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==} + /@jest/types/28.1.1: + resolution: {integrity: sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/schemas': 28.0.2 @@ -9917,12 +9917,12 @@ packages: safe-buffer: 5.2.0 dev: true - /edge-runtime/1.1.0-beta.2: - resolution: {integrity: sha512-cJF/5CuwKOZ94zB/5OmrPWJx3Me9wXwd44LDfLp7IDWwfph9QhAxEj01c4G8E1KO18kRSXnHdMQJiBSfJld+mA==} + /edge-runtime/1.1.0-beta.6: + resolution: {integrity: sha512-U7JjYWsc2EhEGnsQ9MIkazv7esVusreDpZ+kazv1zcHtL5cdmr8XspX2QITZd5n+lRwRD3QE7kzkt8ZLKiiXaA==} hasBin: true dependencies: '@edge-runtime/format': 1.0.0 - '@edge-runtime/vm': 1.1.0-beta.2 + '@edge-runtime/vm': 1.1.0-beta.6 exit-hook: 2.2.1 http-status: 1.5.2 mri: 1.2.0 @@ -13614,17 +13614,17 @@ packages: stack-utils: 2.0.3 dev: true - /jest-message-util/28.1.0: - resolution: {integrity: sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==} + /jest-message-util/28.1.1: + resolution: {integrity: sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@babel/code-frame': 7.16.7 - '@jest/types': 28.1.0 + '@jest/types': 28.1.1 '@types/stack-utils': 2.0.0 chalk: 4.1.2 graceful-fs: 4.2.9 micromatch: 4.0.4 - pretty-format: 28.1.0 + pretty-format: 28.1.1 slash: 3.0.0 stack-utils: 2.0.3 dev: true @@ -13637,11 +13637,11 @@ packages: '@types/node': 17.0.21 dev: true - /jest-mock/28.1.0: - resolution: {integrity: sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw==} + /jest-mock/28.1.1: + resolution: {integrity: sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/types': 28.1.0 + '@jest/types': 28.1.1 '@types/node': 17.0.21 dev: true @@ -13807,11 +13807,11 @@ packages: picomatch: 2.2.3 dev: true - /jest-util/28.1.0: - resolution: {integrity: sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==} + /jest-util/28.1.1: + resolution: {integrity: sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/types': 28.1.0 + '@jest/types': 28.1.1 '@types/node': 17.0.21 chalk: 4.1.2 ci-info: 3.3.1 @@ -17959,8 +17959,8 @@ packages: react-is: 17.0.2 dev: true - /pretty-format/28.1.0: - resolution: {integrity: sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==} + /pretty-format/28.1.1: + resolution: {integrity: sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/schemas': 28.0.2 From 85e643be83f8ff009463e5700c436c39fb0ea11e Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 17 Jun 2022 10:28:25 -0500 Subject: [PATCH 072/149] Ensure query params are populated correctly with middleware (#37784) * Ensure query params are populated correctly with middleware * update test * dont match edge ssr * fix query hydrate check * fix lint * update test --- packages/next/client/index.tsx | 88 ++++++++++--------- packages/next/shared/lib/router/router.ts | 59 +++++++++---- test/e2e/middleware-general/app/middleware.js | 6 ++ .../app/pages/ssg/[slug].js | 16 +++- .../e2e/middleware-general/test/index.test.ts | 19 ++++ .../middleware-rewrites/app/pages/index.js | 8 ++ .../dynamic-routing/test/index.test.js | 74 ++++++++-------- .../dynamic-routing/test/middleware.test.js | 7 ++ .../middleware-prefetch/tests/index.test.js | 1 + 9 files changed, 185 insertions(+), 93 deletions(-) create mode 100644 test/integration/dynamic-routing/test/middleware.test.js diff --git a/packages/next/client/index.tsx b/packages/next/client/index.tsx index b301d85e542d..ab33f21d74ee 100644 --- a/packages/next/client/index.tsx +++ b/packages/next/client/index.tsx @@ -104,47 +104,55 @@ class Container extends React.Component<{ // - the page was (auto) exported and has a query string or search (hash) // - it was auto exported and is a dynamic route (to provide params) // - if it is a client-side skeleton (fallback render) - if ( - router.isSsr && - // We don't update for 404 requests as this can modify - // the asPath unexpectedly e.g. adding basePath when - // it wasn't originally present - initialData.page !== '/404' && - initialData.page !== '/_error' && - (initialData.isFallback || - (initialData.nextExport && - (isDynamicRoute(router.pathname) || - location.search || - process.env.__NEXT_HAS_REWRITES)) || - (initialData.props && - initialData.props.__N_SSG && - (location.search || process.env.__NEXT_HAS_REWRITES))) - ) { - // update query on mount for exported pages - router.replace( - router.pathname + - '?' + - String( - assign( - urlQueryToSearchParams(router.query), - new URLSearchParams(location.search) - ) - ), - asPath, - { - // @ts-ignore - // WARNING: `_h` is an internal option for handing Next.js - // client-side hydration. Your app should _never_ use this property. - // It may change at any time without notice. - _h: 1, - // Fallback pages must trigger the data fetch, so the transition is - // not shallow. - // Other pages (strictly updating query) happens shallowly, as data - // requirements would already be present. - shallow: !initialData.isFallback, - } - ) + const handleQueryUpdate = (matchesMiddleware = false) => { + if ( + router.isSsr && + // We don't update for 404 requests as this can modify + // the asPath unexpectedly e.g. adding basePath when + // it wasn't originally present + initialData.page !== '/404' && + initialData.page !== '/_error' && + (initialData.isFallback || + (initialData.nextExport && + (isDynamicRoute(router.pathname) || + location.search || + process.env.__NEXT_HAS_REWRITES || + matchesMiddleware)) || + (initialData.props && + initialData.props.__N_SSG && + (location.search || + process.env.__NEXT_HAS_REWRITES || + matchesMiddleware))) + ) { + // update query on mount for exported pages + router.replace( + router.pathname + + '?' + + String( + assign( + urlQueryToSearchParams(router.query), + new URLSearchParams(location.search) + ) + ), + asPath, + { + // @ts-ignore + // WARNING: `_h` is an internal option for handing Next.js + // client-side hydration. Your app should _never_ use this property. + // It may change at any time without notice. + _h: 1, + // Fallback pages must trigger the data fetch, so the transition is + // not shallow. + // Other pages (strictly updating query) happens shallowly, as data + // requirements would already be present. + shallow: !initialData.isFallback && !matchesMiddleware, + } + ) + } } + router._initialMatchesMiddlewarePromise + .then((matchesMiddleware) => handleQueryUpdate(matchesMiddleware)) + .catch(() => handleQueryUpdate()) } componentDidUpdate() { diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index 2138fe652f61..52eb85e4c6cb 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -584,6 +584,7 @@ export default class Router implements BaseRouter { isReady: boolean isLocaleDomain: boolean isFirstPopStateEvent = true + _initialMatchesMiddlewarePromise: Promise private state: Readonly<{ route: string @@ -709,6 +710,8 @@ export default class Router implements BaseRouter { isFallback, } + this._initialMatchesMiddlewarePromise = Promise.resolve(false) + if (typeof window !== 'undefined') { // make sure "as" doesn't start with double slashes or else it can // throw an error as it's considered invalid @@ -718,7 +721,7 @@ export default class Router implements BaseRouter { const options: TransitionOptions = { locale } const asPath = getURL() - matchesMiddleware({ + this._initialMatchesMiddlewarePromise = matchesMiddleware({ router: this, locale, asPath, @@ -738,6 +741,7 @@ export default class Router implements BaseRouter { asPath, options ) + return matches }) } @@ -1108,11 +1112,13 @@ export default class Router implements BaseRouter { // we don't attempt resolve asPath when we need to execute // middleware as the resolving will occur server-side - const isMiddlewareMatch = await matchesMiddleware({ - asPath: as, - locale: nextState.locale, - router: this, - }) + const isMiddlewareMatch = + !options.shallow && + (await matchesMiddleware({ + asPath: as, + locale: nextState.locale, + router: this, + })) if (!isMiddlewareMatch && shouldResolveHref && pathname !== '/_error') { ;(options as any)._shouldResolveHref = true @@ -1234,10 +1240,12 @@ export default class Router implements BaseRouter { routeProps, locale: nextState.locale, isPreview: nextState.isPreview, + hasMiddleware: isMiddlewareMatch, }) - if ('route' in routeInfo && routeInfo.route !== route) { + if ('route' in routeInfo && isMiddlewareMatch) { pathname = routeInfo.route || route + route = pathname query = Object.assign({}, routeInfo.query || {}, query) if (isDynamicRoute(pathname)) { @@ -1534,6 +1542,7 @@ export default class Router implements BaseRouter { resolvedAs, routeProps, locale, + hasMiddleware, isPreview, }: { route: string @@ -1541,6 +1550,7 @@ export default class Router implements BaseRouter { query: ParsedUrlQuery as: string resolvedAs: string + hasMiddleware?: boolean routeProps: RouteProperties locale: string | undefined isPreview: boolean @@ -1552,10 +1562,14 @@ export default class Router implements BaseRouter { * for shallow routing purposes. */ let route = requestedRoute - try { let existingInfo: PrivateRouteInfo | undefined = this.components[route] - if (routeProps.shallow && existingInfo && this.route === route) { + if ( + !hasMiddleware && + routeProps.shallow && + existingInfo && + this.route === route + ) { return existingInfo } @@ -1603,7 +1617,12 @@ export default class Router implements BaseRouter { // Check again the cache with the new destination. existingInfo = this.components[route] - if (routeProps.shallow && existingInfo && this.route === route) { + if ( + routeProps.shallow && + existingInfo && + this.route === route && + !hasMiddleware + ) { // If we have a match with the current route due to rewrite, // we can copy the existing information to the rewritten one. // Then, we return the information along with the matched route. @@ -2120,13 +2139,14 @@ function matchesMiddleware( return Promise.resolve(options.router.pageLoader.getMiddlewareList()).then( (items) => { const { pathname: asPathname } = parsePath(options.asPath) - const cleanedAs = removeLocale( - hasBasePath(asPathname) ? removeBasePath(asPathname) : asPathname, - options.locale - ) + const cleanedAs = hasBasePath(asPathname) + ? removeBasePath(asPathname) + : asPathname - return !!items?.some(([regex]) => { - return new RegExp(regex).test(cleanedAs) + return !!items?.some(([regex, ssr]) => { + return ( + !ssr && new RegExp(regex).test(addLocale(cleanedAs, options.locale)) + ) }) } ) @@ -2214,6 +2234,7 @@ function getMiddlewareData( ) as = addBasePath(parsedSource.pathname) + parsedRewriteTarget.pathname = as } if (process.env.__NEXT_HAS_REWRITES) { @@ -2228,6 +2249,7 @@ function getMiddlewareData( if (result.matchedPage) { parsedRewriteTarget.pathname = result.parsedAs.pathname + as = parsedRewriteTarget.pathname Object.assign(parsedRewriteTarget.query, result.parsedAs.query) } } @@ -2242,6 +2264,11 @@ function getMiddlewareData( ) : fsPathname + if (isDynamicRoute(resolvedHref)) { + const matches = getRouteMatcher(getRouteRegex(resolvedHref))(as) + Object.assign(parsedRewriteTarget.query, matches || {}) + } + return { type: 'rewrite' as const, parsedAs: parsedRewriteTarget, diff --git a/test/e2e/middleware-general/app/middleware.js b/test/e2e/middleware-general/app/middleware.js index 215d8b090ba9..75b2ad2da9c2 100644 --- a/test/e2e/middleware-general/app/middleware.js +++ b/test/e2e/middleware-general/app/middleware.js @@ -47,6 +47,12 @@ export async function middleware(request) { return NextResponse.next() } + if (url.pathname === '/to-ssg') { + url.pathname = '/ssg/hello' + url.searchParams.set('from', 'middleware') + return NextResponse.rewrite(url) + } + if (url.pathname === '/sha') { url.pathname = '/shallow' return NextResponse.rewrite(url) diff --git a/test/e2e/middleware-general/app/pages/ssg/[slug].js b/test/e2e/middleware-general/app/pages/ssg/[slug].js index 621575a122f1..9c30448cb207 100644 --- a/test/e2e/middleware-general/app/pages/ssg/[slug].js +++ b/test/e2e/middleware-general/app/pages/ssg/[slug].js @@ -1,13 +1,25 @@ import { useRouter } from 'next/router' +import { useEffect } from 'react' +import { useState } from 'react' export default function Page(props) { const router = useRouter() + const [asPath, setAsPath] = useState( + router.isReady ? router.asPath : router.href + ) + + useEffect(() => { + if (router.isReady) { + setAsPath(router.asPath) + } + }, [router.asPath, router.isReady]) + return ( <>

/blog/[slug]

{JSON.stringify(router.query)}

{router.pathname}

-

{router.asPath}

+

{asPath}

{JSON.stringify(props)}

) @@ -24,7 +36,7 @@ export function getStaticProps({ params }) { export function getStaticPaths() { return { - paths: ['/ssg/first'], + paths: ['/ssg/first', '/ssg/hello'], fallback: 'blocking', } } diff --git a/test/e2e/middleware-general/test/index.test.ts b/test/e2e/middleware-general/test/index.test.ts index 049b0e90015b..1645ffd4308c 100644 --- a/test/e2e/middleware-general/test/index.test.ts +++ b/test/e2e/middleware-general/test/index.test.ts @@ -133,6 +133,25 @@ describe('Middleware Runtime', () => { }) } + it('should have correct query values for rewrite to ssg page', async () => { + const browser = await webdriver(next.url, '/to-ssg') + await browser.eval('window.beforeNav = 1') + + await check(() => browser.elementByCss('body').text(), /\/to-ssg/) + + expect(JSON.parse(await browser.elementByCss('#query').text())).toEqual({ + slug: 'hello', + from: 'middleware', + }) + expect( + JSON.parse(await browser.elementByCss('#props').text()).params + ).toEqual({ + slug: 'hello', + }) + expect(await browser.elementByCss('#pathname').text()).toBe('/ssg/[slug]') + expect(await browser.elementByCss('#as-path').text()).toBe('/to-ssg') + }) + it('should have correct dynamic route params on client-transition to dynamic route', async () => { const browser = await webdriver(next.url, '/') await browser.eval('window.beforeNav = 1') diff --git a/test/e2e/middleware-rewrites/app/pages/index.js b/test/e2e/middleware-rewrites/app/pages/index.js index 554e38a7115f..e49f9f2cf979 100644 --- a/test/e2e/middleware-rewrites/app/pages/index.js +++ b/test/e2e/middleware-rewrites/app/pages/index.js @@ -64,3 +64,11 @@ export default function Home() {
) } + +export function getServerSideProps() { + return { + props: { + now: Date.now(), + }, + } +} diff --git a/test/integration/dynamic-routing/test/index.test.js b/test/integration/dynamic-routing/test/index.test.js index cc97e9a6b6b9..1b5bf31a715c 100644 --- a/test/integration/dynamic-routing/test/index.test.js +++ b/test/integration/dynamic-routing/test/index.test.js @@ -931,8 +931,11 @@ function runTests({ dev, serverless }) { () => browser.eval(`document.body.innerHTML`), /onmpost:.*post-1/ ) - const scrollPosition = await browser.eval('window.pageYOffset') - expect(scrollPosition).toBe(7232) + + const elementPosition = await browser.eval( + `document.querySelector("#item-400").getBoundingClientRect().y` + ) + expect(elementPosition).toEqual(0) }) it('should scroll to a hash on client-side navigation', async () => { @@ -943,8 +946,10 @@ function runTests({ dev, serverless }) { const text = await browser.elementByCss('#asdf').text() expect(text).toMatch(/onmpost:.*test-w-hash/) - const scrollPosition = await browser.eval('window.pageYOffset') - expect(scrollPosition).toBe(7232) + const elementPosition = await browser.eval( + `document.querySelector("#item-400").getBoundingClientRect().y` + ) + expect(elementPosition).toEqual(0) }) it('should prioritize public files over dynamic route', async () => { @@ -1061,17 +1066,19 @@ function runTests({ dev, serverless }) { expect(text).toBe('slug: first') }) - it('should show error when interpolating fails for href', async () => { - const browser = await webdriver(appPort, '/') - await browser - .elementByCss('#view-post-1-interpolated-incorrectly') - .click() - expect(await hasRedbox(browser)).toBe(true) - const header = await getRedboxHeader(browser) - expect(header).toContain( - 'The provided `href` (/[name]?another=value) value is missing query values (name) to be interpolated properly.' - ) - }) + if (!process.env.__MIDDLEWARE_TEST) { + it('should show error when interpolating fails for href', async () => { + const browser = await webdriver(appPort, '/') + await browser + .elementByCss('#view-post-1-interpolated-incorrectly') + .click() + expect(await hasRedbox(browser)).toBe(true) + const header = await getRedboxHeader(browser) + expect(header).toContain( + 'The provided `href` (/[name]?another=value) value is missing query values (name) to be interpolated properly.' + ) + }) + } it('should work with HMR correctly', async () => { const browser = await webdriver(appPort, '/post-1/comments') @@ -1389,6 +1396,23 @@ function runTests({ dev, serverless }) { const nextConfig = join(appDir, 'next.config.js') describe('Dynamic Routing', () => { + if (process.env.__MIDDLEWARE_TEST) { + const middlewarePath = join(__dirname, '../middleware.js') + + beforeAll(async () => { + await fs.writeFile( + middlewarePath, + ` + import { NextResponse } from 'next/server' + export default function middleware() { + return NextResponse.next() + } + ` + ) + }) + afterAll(() => fs.remove(middlewarePath)) + } + describe('dev mode', () => { beforeAll(async () => { await fs.remove(nextConfig) @@ -1416,24 +1440,4 @@ describe('Dynamic Routing', () => { runTests({ dev: false, serverless: false }) }) - - describe('serverless mode', () => { - beforeAll(async () => { - await fs.writeFile( - nextConfig, - `module.exports = { target: 'serverless' }` - ) - - await nextBuild(appDir) - buildId = await fs.readFile(buildIdPath, 'utf8') - - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - await fs.remove(nextConfig) - }) - runTests({ dev: false, serverless: true }) - }) }) diff --git a/test/integration/dynamic-routing/test/middleware.test.js b/test/integration/dynamic-routing/test/middleware.test.js new file mode 100644 index 000000000000..eb120c702aaa --- /dev/null +++ b/test/integration/dynamic-routing/test/middleware.test.js @@ -0,0 +1,7 @@ +/* eslint-env jest */ + +process.env.__MIDDLEWARE_TEST = '1' + +// run all existing tests from ./index.test.js with middleware +// setup enabled via the above env variable +require('./index.test') diff --git a/test/integration/middleware-prefetch/tests/index.test.js b/test/integration/middleware-prefetch/tests/index.test.js index 88eebf09374d..796a78a1db5e 100644 --- a/test/integration/middleware-prefetch/tests/index.test.js +++ b/test/integration/middleware-prefetch/tests/index.test.js @@ -72,6 +72,7 @@ describe('Middleware Production Prefetch', () => { new URL(href).pathname.replace(/^\/_next\/data\/[^/]+/, '') ) assert.deepEqual(mapped, [ + '/index.json', '/made-up.json', '/ssg-page-2.json', '/ssg-page.json', From 67e937d821a0ab13097cc95ac21002065d0089ae Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 17 Jun 2022 10:44:25 -0500 Subject: [PATCH 073/149] v12.1.7-canary.41 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 ++-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +++++++------- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 16 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index 28d7f521da6f..c7cdb2561079 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.40" + "version": "12.1.7-canary.41" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index c4e6deb98db1..a01e3451898e 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 3d07ea42c7ea..5b65cca4a63c 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.40", + "@next/eslint-plugin-next": "12.1.7-canary.41", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 2d66fc8f6f38..ef2acd2a27d9 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index 018562b23f14..b448df4be3ba 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index b940ec66bfe0..786fa49bafc6 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index ae68ad8f7665..4b19dd1e8b1d 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 2da73610c602..069df8c7972b 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 2dfa046fbcec..3656bf7895c9 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index bea8669b9267..5cfff5ce7f91 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index 2c7551a75601..173080b54288 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index a3fccc2133c9..21b832b016ff 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index fe1ec18f9e19..983f5bfa9e5c 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.40", + "@next/env": "12.1.7-canary.41", "@swc/helpers": "0.3.17", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.40", - "@next/polyfill-nomodule": "12.1.7-canary.40", - "@next/react-dev-overlay": "12.1.7-canary.40", - "@next/react-refresh-utils": "12.1.7-canary.40", - "@next/swc": "12.1.7-canary.40", + "@next/polyfill-module": "12.1.7-canary.41", + "@next/polyfill-nomodule": "12.1.7-canary.41", + "@next/react-dev-overlay": "12.1.7-canary.41", + "@next/react-refresh-utils": "12.1.7-canary.41", + "@next/swc": "12.1.7-canary.41", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 7a42044c68ea..85287e3139d7 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 09a285053e3c..0926b839bf3d 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.40", + "version": "12.1.7-canary.41", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 698d865cc87d..574a8b6b4740 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.40 + '@next/eslint-plugin-next': 12.1.7-canary.41 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.40 - '@next/polyfill-module': 12.1.7-canary.40 - '@next/polyfill-nomodule': 12.1.7-canary.40 - '@next/react-dev-overlay': 12.1.7-canary.40 - '@next/react-refresh-utils': 12.1.7-canary.40 - '@next/swc': 12.1.7-canary.40 + '@next/env': 12.1.7-canary.41 + '@next/polyfill-module': 12.1.7-canary.41 + '@next/polyfill-nomodule': 12.1.7-canary.41 + '@next/react-dev-overlay': 12.1.7-canary.41 + '@next/react-refresh-utils': 12.1.7-canary.41 + '@next/swc': 12.1.7-canary.41 '@swc/helpers': 0.3.17 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 From 455b74fe5418449b2c6a663e7b44bd0e4d9d4d79 Mon Sep 17 00:00:00 2001 From: Qiushi Pan <17402261+qqpann@users.noreply.github.com> Date: Sat, 18 Jun 2022 02:06:22 +0900 Subject: [PATCH 074/149] fix: markdown format for the blog-starter example (#37792) ## Documentation / Examples The markdown format for blog-starter example was broken, so fixed it. - [x] Make sure the linting passes by running `pnpm lint` It failed, without my changes. - [x] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) --- examples/blog-starter/README.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/examples/blog-starter/README.md b/examples/blog-starter/README.md index bf307147d62f..81126c03323e 100644 --- a/examples/blog-starter/README.md +++ b/examples/blog-starter/README.md @@ -39,24 +39,18 @@ Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_mediu Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: -``` +```bash npx create-next-app --example blog-starter blog-starter-app - -``` - -or - -``` +# or yarn create next-app --example blog-starter blog-starter-app # or pnpm create next-app --example blog-starter blog-starter-app - ``` Your blog should be up and running on [http://localhost:3000](http://localhost:3000)! If it doesn't work, post on [GitHub discussions](https://github.com/vercel/next.js/discussions). Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). -# Notes +## Notes This blog-starter uses [Tailwind CSS](https://tailwindcss.com) [(v3.0)](https://tailwindcss.com/blog/tailwindcss-v3). From 924582b52c62a86f63b11208c41141f5c8b8aef8 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 17 Jun 2022 12:36:37 -0500 Subject: [PATCH 075/149] Update to use latest version of pnpm (#37794) * Update to use latest version of pnpm * add packageManager field --- .github/actions/next-stats-action/Dockerfile | 2 +- .github/workflows/build_test_deploy.yml | 2 +- .github/workflows/pull_request_stats.yml | 2 +- azure-pipelines.yml | 2 +- package.json | 5 +++-- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/actions/next-stats-action/Dockerfile b/.github/actions/next-stats-action/Dockerfile index 5a73df157674..f8c5d71855ec 100644 --- a/.github/actions/next-stats-action/Dockerfile +++ b/.github/actions/next-stats-action/Dockerfile @@ -7,7 +7,7 @@ LABEL repository="https://github.com/vercel/next-stats-action" COPY . /next-stats # Install node_modules -RUN npm i -g pnpm@7.1.6 +RUN npm i -g pnpm@7.2.1 RUN cd /next-stats && pnpm install --production RUN git config --global user.email 'stats@localhost' diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index e0159e488100..a65c80fb31de 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -10,7 +10,7 @@ env: NAPI_CLI_VERSION: 2.7.0 TURBO_VERSION: 1.2.14 RUST_TOOLCHAIN: nightly-2022-02-23 - PNPM_VERSION: 7.1.6 + PNPM_VERSION: 7.2.1 jobs: check-examples: diff --git a/.github/workflows/pull_request_stats.yml b/.github/workflows/pull_request_stats.yml index 9c6a4ebf6d3a..6c338ab39a07 100644 --- a/.github/workflows/pull_request_stats.yml +++ b/.github/workflows/pull_request_stats.yml @@ -8,7 +8,7 @@ env: NAPI_CLI_VERSION: 2.7.0 TURBO_VERSION: 1.2.14 RUST_TOOLCHAIN: nightly-2022-02-23 - PNPM_VERSION: 7.1.6 + PNPM_VERSION: 7.2.1 jobs: build-native-dev: diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 19650fd8b426..d5a3b1dfcaec 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -33,7 +33,7 @@ pr: variables: PNPM_CACHE_FOLDER: $(Pipeline.Workspace)/.pnpm-store - PNPM_VERSION: 7.1.6 + PNPM_VERSION: 7.2.1 NEXT_TELEMETRY_DISABLED: '1' node_version: ^14.19.0 diff --git a/package.json b/package.json index 61f85969e612..ed95aec3410b 100644 --- a/package.json +++ b/package.json @@ -207,6 +207,7 @@ }, "engines": { "node": ">=12.22.0", - "pnpm": "7" - } + "pnpm": ">= 7.2.1" + }, + "packageManager": "pnpm@7.2.1" } From af9d92207e26cfefb64c62010f63ca6982e88a89 Mon Sep 17 00:00:00 2001 From: Alex Castle Date: Fri, 17 Jun 2022 14:16:20 -0700 Subject: [PATCH 076/149] Use SVG blur technique for raw layout images (#37022) This PR switches to using an SVG filter for blurring placeholder images, rather than a CSS filter. It's based on the technique described in @cramforce's [blog post](https://www.industrialempathy.com/posts/image-optimizations/#blurry-placeholder). One change I made to @cramforce's version was to increase the stdDeviation property of the SVG (which controls the gaussian blur strength) from .5 to 50. Smaller values than this tended to look bad, as our technique for generating the blurry placeholder image tends to produce images with sharp contrast between the pixels, which looks bad when blown up unless it's blurred by a substantial amount. This PR currently only affects the experimental `layout="raw"` but I expect to eventually apply it to all images. CC: @styfle @kara --- packages/next/client/image.tsx | 12 +++++++++--- .../image-component/base-path/test/static.test.js | 8 ++++---- .../image-component/default/pages/static-img.js | 6 ++++++ .../image-component/default/test/index.test.js | 6 +++--- .../image-component/default/test/static.test.js | 9 +++++++-- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/packages/next/client/image.tsx b/packages/next/client/image.tsx index 07250527109c..eb473ff41f32 100644 --- a/packages/next/client/image.tsx +++ b/packages/next/client/image.tsx @@ -704,15 +704,21 @@ export default function Image({ } } } - const imgStyle = Object.assign({}, style, layout === 'raw' ? {} : layoutStyle) + const svgBlurPlaceholder = `url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http%3A//www.w3.org/2000/svg' xmlns%3Axlink='http%3A//www.w3.org/1999/xlink' viewBox='0 0 ${widthInt} ${heightInt}'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='50'%3E%3C/feGaussianBlur%3E%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1 1'%3E%3C/feFuncA%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cimage filter='url(%23b)' x='0' y='0' height='100%25' width='100%25' href='${blurDataURL}'%3E%3C/image%3E%3C/svg%3E");` const blurStyle = placeholder === 'blur' && !blurComplete ? { - filter: 'blur(20px)', backgroundSize: objectFit || 'cover', - backgroundImage: `url("${blurDataURL}")`, backgroundPosition: objectPosition || '0% 0%', + ...(layout === 'raw' && blurDataURL?.startsWith('data:image') + ? { + backgroundImage: svgBlurPlaceholder, + } + : { + filter: 'blur(20px)', + backgroundImage: `url("${blurDataURL}")`, + }), } : {} if (layout === 'fill') { diff --git a/test/integration/image-component/base-path/test/static.test.js b/test/integration/image-component/base-path/test/static.test.js index 76ab796af2d6..34c33dfe3a47 100644 --- a/test/integration/image-component/base-path/test/static.test.js +++ b/test/integration/image-component/base-path/test/static.test.js @@ -70,20 +70,20 @@ const runTests = (isDev = false) => { }) it('Should add a blur placeholder to statically imported jpg', async () => { expect(html).toContain( - `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;filter:blur(20px);background-size:cover;background-image:url(${ + `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;background-size:cover;background-position:0% 0%;filter:blur(20px);background-image:url(${ isDev ? '"/docs/_next/image?url=%2Fdocs%2F_next%2Fstatic%2Fmedia%2Ftest.fab2915d.jpg&w=8&q=70"' : '"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoKCgoKCgsMDAsPEA4QDxYUExMUFiIYGhgaGCIzICUgICUgMy03LCksNy1RQDg4QFFeT0pPXnFlZXGPiI+7u/sBCgoKCgoKCwwMCw8QDhAPFhQTExQWIhgaGBoYIjMgJSAgJSAzLTcsKSw3LVFAODhAUV5PSk9ecWVlcY+Ij7u7+//CABEIAAYACAMBIgACEQEDEQH/xAAnAAEBAAAAAAAAAAAAAAAAAAAABwEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAAmgP/xAAcEAACAQUBAAAAAAAAAAAAAAASFBMAAQMFERX/2gAIAQEAAT8AZ1HjrKZX55JysIc4Ff/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Af//Z"' - });background-position:0% 0%"` + })` ) }) it('Should add a blur placeholder to statically imported png', async () => { expect(html).toContain( - `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;filter:blur(20px);background-size:cover;background-image:url(${ + `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;background-size:cover;background-position:0% 0%;filter:blur(20px);background-image:url(${ isDev ? '"/docs/_next/image?url=%2Fdocs%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=8&q=70"' : '"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAICAAAAAAZhBqgAAAAJklEQVR42mNgkmBkYGXgZGBoY2Co/lPAcOf/dYaCzHwGEBAVEwUAZZIG0TbWicQAAAAASUVORK5CYII="' - });background-position:0% 0%"` + })` ) }) } diff --git a/test/integration/image-component/default/pages/static-img.js b/test/integration/image-component/default/pages/static-img.js index ee07521ec8ac..ba51c7f4c05f 100644 --- a/test/integration/image-component/default/pages/static-img.js +++ b/test/integration/image-component/default/pages/static-img.js @@ -23,6 +23,12 @@ const Page = () => { layout="fixed" placeholder="blur" /> + { }) it('Should add a blur placeholder to statically imported jpg', async () => { expect(html).toContain( - `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;filter:blur(20px);background-size:cover;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoKCgoKCgsMDAsPEA4QDxYUExMUFiIYGhgaGCIzICUgICUgMy03LCksNy1RQDg4QFFeT0pPXnFlZXGPiI+7u/sBCgoKCgoKCwwMCw8QDhAPFhQTExQWIhgaGBoYIjMgJSAgJSAzLTcsKSw3LVFAODhAUV5PSk9ecWVlcY+Ij7u7+//CABEIAAYACAMBIgACEQEDEQH/xAAnAAEBAAAAAAAAAAAAAAAAAAAABwEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAAmgP/xAAcEAACAQUBAAAAAAAAAAAAAAASFBMAAQMFERX/2gAIAQEAAT8AZ1HjrKZX55JysIc4Ff/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Af//Z");background-position:0% 0%"` + `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;background-size:cover;background-position:0% 0%;filter:blur(20px);background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoKCgoKCgsMDAsPEA4QDxYUExMUFiIYGhgaGCIzICUgICUgMy03LCksNy1RQDg4QFFeT0pPXnFlZXGPiI+7u/sBCgoKCgoKCwwMCw8QDhAPFhQTExQWIhgaGBoYIjMgJSAgJSAzLTcsKSw3LVFAODhAUV5PSk9ecWVlcY+Ij7u7+//CABEIAAYACAMBIgACEQEDEQH/xAAnAAEBAAAAAAAAAAAAAAAAAAAABwEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAAmgP/xAAcEAACAQUBAAAAAAAAAAAAAAASFBMAAQMFERX/2gAIAQEAAT8AZ1HjrKZX55JysIc4Ff/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Af//Z")"` + ) + }) + it('Should add a blur to a statically imported image in "raw" mode', async () => { + expect(html).toContain( + `style="background-size:cover;background-position:0% 0%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http%3A//www.w3.org/2000/svg' xmlns%3Axlink='http%3A//www.w3.org/1999/xlink' viewBox='0 0 400 300'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='50'%3E%3C/feGaussianBlur%3E%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1 1'%3E%3C/feFuncA%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cimage filter='url(%23b)' x='0' y='0' height='100%25' width='100%25' href='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoKCgoKCgsMDAsPEA4QDxYUExMUFiIYGhgaGCIzICUgICUgMy03LCksNy1RQDg4QFFeT0pPXnFlZXGPiI+7u/sBCgoKCgoKCwwMCw8QDhAPFhQTExQWIhgaGBoYIjMgJSAgJSAzLTcsKSw3LVFAODhAUV5PSk9ecWVlcY+Ij7u7+//CABEIAAYACAMBIgACEQEDEQH/xAAnAAEBAAAAAAAAAAAAAAAAAAAABwEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAAmgP/xAAcEAACAQUBAAAAAAAAAAAAAAASFBMAAQMFERX/2gAIAQEAAT8AZ1HjrKZX55JysIc4Ff/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Af//Z'%3E%3C/image%3E%3C/svg%3E");` ) }) it('Should add a blur placeholder to statically imported png', async () => { expect(html).toContain( - `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;filter:blur(20px);background-size:cover;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAAAAADhZOFXAAAAOklEQVR42iWGsQkAIBDE0iuIdiLOJjiGIzjiL/Meb4okiNYIlLjK3hJMzCQG1/0qmXXOUkjAV+m9wAMe3QiV6Ne8VgAAAABJRU5ErkJggg==");background-position:0% 0%"` + `style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;background-size:cover;background-position:0% 0%;filter:blur(20px);background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAAAAADhZOFXAAAAOklEQVR42iWGsQkAIBDE0iuIdiLOJjiGIzjiL/Meb4okiNYIlLjK3hJMzCQG1/0qmXXOUkjAV+m9wAMe3QiV6Ne8VgAAAABJRU5ErkJggg==")` ) }) } From 5c88484f04ac487bc40d971cbd04edd7c94d8f01 Mon Sep 17 00:00:00 2001 From: Sukka Date: Sat, 18 Jun 2022 19:44:37 +0800 Subject: [PATCH 077/149] fix(config): only warn experimental feature when used (#37755) ```js // next.config.js module.exports = { experimental: { legacyBrowsers: false, sharedPool: true, newNextLinkBehavior: false } } ``` With the current implementation, using the config above will warn the usage of experimental features. However, those are the preset values that are defined in `defaultConfig` which means actually no experimental feature has been enabled at all. The PR changes to only check if experimental features are actually enabled (have different values than the ones defined in `defaultConfig`). --- packages/next/server/config.ts | 53 +++++++++++-- .../test/index.test.js | 79 ++++++++++++++++--- 2 files changed, 115 insertions(+), 17 deletions(-) diff --git a/packages/next/server/config.ts b/packages/next/server/config.ts index e89c80b63344..aeabcd36ab33 100644 --- a/packages/next/server/config.ts +++ b/packages/next/server/config.ts @@ -9,8 +9,9 @@ import { CONFIG_FILES, PHASE_DEVELOPMENT_SERVER } from '../shared/lib/constants' import { execOnce } from '../shared/lib/utils' import { defaultConfig, - NextConfigComplete, normalizeConfig, + ExperimentalConfig, + NextConfigComplete, } from './config-shared' import { loadWebpackHook } from './config-utils' import { @@ -43,6 +44,23 @@ const experimentalWarning = execOnce( } ) +const missingExperimentalWarning = execOnce( + (configFileName: string, features: string[]) => { + const s = features.length > 1 ? 's' : '' + const dont = features.length > 1 ? 'do not' : 'does not' + const them = features.length > 1 ? 'them' : 'it' + Log.warn( + chalk.bold( + `You have defined experimental feature${s} (${features.join( + ', ' + )}) in ${configFileName} that ${dont} exist in this version of Next.js.` + ) + ) + Log.warn(`Please remove ${them} from your configuration.`) + console.warn() + } +) + function assignDefaults(userConfig: { [key: string]: any }) { const configFileName = userConfig.configFileName if (typeof userConfig.exportTrailingSlash !== 'undefined') { @@ -77,13 +95,32 @@ function assignDefaults(userConfig: { [key: string]: any }) { return currentConfig } - if ( - key === 'experimental' && - value !== defaultConfig[key] && - typeof value === 'object' && - Object.keys(value).length > 0 - ) { - experimentalWarning(configFileName, Object.keys(value)) + if (key === 'experimental' && typeof value === 'object') { + const enabledMissingExperiments: string[] = [] + const enabledExperiments: (keyof ExperimentalConfig)[] = [] + + // defaultConfig.experimental is predefined and will never be undefined + // This is only a type guard for the typescript + if (defaultConfig.experimental) { + for (const featureName of Object.keys( + value + ) as (keyof ExperimentalConfig)[]) { + if (!(featureName in defaultConfig.experimental)) { + enabledMissingExperiments.push(featureName) + } else if ( + value[featureName] !== defaultConfig.experimental[featureName] + ) { + enabledExperiments.push(featureName) + } + } + } + + if (enabledMissingExperiments.length > 0) { + missingExperimentalWarning(configFileName, enabledMissingExperiments) + } + if (enabledExperiments.length > 0) { + experimentalWarning(configFileName, enabledExperiments) + } } if (key === 'distDir') { diff --git a/test/integration/config-experimental-warning/test/index.test.js b/test/integration/config-experimental-warning/test/index.test.js index dc20cd682047..151684dfb9ee 100644 --- a/test/integration/config-experimental-warning/test/index.test.js +++ b/test/integration/config-experimental-warning/test/index.test.js @@ -44,13 +44,13 @@ describe('Config Experimental Warning', () => { module.exports = { target: 'server', experimental: { - something: true + newNextLinkBehavior: true } } `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) expect(stderr).toMatch( - 'You have enabled experimental feature (something) in next.config.js.' + 'You have enabled experimental feature (newNextLinkBehavior) in next.config.js.' ) }) @@ -59,13 +59,28 @@ describe('Config Experimental Warning', () => { module.exports = (phase) => ({ target: 'server', experimental: { - something: true + newNextLinkBehavior: true } }) `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) expect(stderr).toMatch( - 'You have enabled experimental feature (something) in next.config.js.' + 'You have enabled experimental feature (newNextLinkBehavior) in next.config.js.' + ) + }) + + it('should not show warning with default value', async () => { + configFile.write(` + module.exports = (phase) => ({ + target: 'server', + experimental: { + newNextLinkBehavior: false + } + }) + `) + const { stderr } = await nextBuild(appDir, [], { stderr: true }) + expect(stderr).not.toMatch( + 'You have enabled experimental feature (newNextLinkBehavior) in next.config.js.' ) }) @@ -73,14 +88,14 @@ describe('Config Experimental Warning', () => { configFile.write(` module.exports = { experimental: { - something: true, - another: 1, + newNextLinkBehavior: true, + legacyBrowsers: false, } } `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) expect(stderr).toMatch( - 'You have enabled experimental features (something, another) in next.config.js.' + 'You have enabled experimental features (newNextLinkBehavior, legacyBrowsers) in next.config.js.' ) }) @@ -88,14 +103,60 @@ describe('Config Experimental Warning', () => { configFileMjs.write(` const config = { experimental: { - something: true, + newNextLinkBehavior: true, } } export default config `) const { stderr } = await nextBuild(appDir, [], { stderr: true }) expect(stderr).toMatch( - 'You have enabled experimental feature (something) in next.config.mjs.' + 'You have enabled experimental feature (newNextLinkBehavior) in next.config.mjs.' + ) + }) + + it('should show warning with next.config.js from object with non-exist experimental', async () => { + configFile.write(` + const config = { + experimental: { + foo: true + } + } + module.exports = config + `) + const { stderr } = await nextBuild(appDir, [], { stderr: true }) + expect(stderr).toMatch( + 'You have defined experimental feature (foo) in next.config.js that does not exist in this version' + ) + }) + + it('should show warning with next.config.mjs from object with non-exist experimental', async () => { + configFileMjs.write(` + const config = { + experimental: { + foo: true + } + } + export default config + `) + const { stderr } = await nextBuild(appDir, [], { stderr: true }) + expect(stderr).toMatch( + 'You have defined experimental feature (foo) in next.config.mjs that does not exist in this version' + ) + }) + + it('should show warning with next.config.js from object with multiple non-exist experimental', async () => { + configFile.write(` + const config = { + experimental: { + foo: true, + bar: false + } + } + module.exports = config + `) + const { stderr } = await nextBuild(appDir, [], { stderr: true }) + expect(stderr).toMatch( + 'You have defined experimental features (foo, bar) in next.config.js that do not exist in this version' ) }) }) From 1ccf894501a91c7eae3fd9e9891b9d27c453ab73 Mon Sep 17 00:00:00 2001 From: Max Proske Date: Sat, 18 Jun 2022 10:18:21 -0700 Subject: [PATCH 078/149] Convert amp example to TypeScript (#37744) Converted AMP example over to TypeScript to match the Contribution guidelines, updated all dependencies, and made some necessary changes to allow AMP apps to build in TypeScript. I added an additional .d.ts file, and referenced it in the tsconfig.json include array, as per the [Next.js docs](https://nextjs.org/docs/basic-features/typescript#existing-projects). These additional types are required to allow lowercase AMP elements to be a property on JSX.IntrinsicElements. Fixes: > Property 'amp-img' does not exist on type 'JSX.IntrinsicElements'.ts I also replaced all occurrences of styled JSX with [@ijjk's workaround](https://github.com/vercel/next.js/issues/7584#issuecomment-503376412) to get styles in the head at build time for AMP-only pages, hybrid AMP pages, and normal pages (non-AMP). I tried using the useAmp hook first with multiple ` ) diff --git a/test/development/acceptance/helpers.ts b/test/development/acceptance/helpers.ts index 135d4133b38a..3bd54202c6ea 100644 --- a/test/development/acceptance/helpers.ts +++ b/test/development/acceptance/helpers.ts @@ -1,5 +1,4 @@ import { - ignoreFullRefreshWarnings, getRedboxDescription, getRedboxHeader, getRedboxSource, @@ -31,7 +30,6 @@ export async function sandbox( } await next.start() const browser = await webdriver(next.appPort, '/') - await ignoreFullRefreshWarnings(browser) return { session: { async write(filename, content) { diff --git a/test/development/basic-basepath/hmr.test.ts b/test/development/basic-basepath/hmr.test.ts index a424a6799e7b..f4cba53e3e09 100644 --- a/test/development/basic-basepath/hmr.test.ts +++ b/test/development/basic-basepath/hmr.test.ts @@ -3,7 +3,6 @@ import cheerio from 'cheerio' import webdriver from 'next-webdriver' import { check, - clickReloadOnFullRefreshWarning, getBrowserBodyText, getRedboxHeader, getRedboxSource, @@ -383,7 +382,6 @@ describe('basic HMR', () => { await next.patchFile(aboutPage, aboutContent) - await clickReloadOnFullRefreshWarning(browser) await check( () => getBrowserBodyText(browser), /This is the contact page/ @@ -418,8 +416,6 @@ describe('basic HMR', () => { aboutContent.replace('export', 'aa=20;\nexport') ) - await clickReloadOnFullRefreshWarning(browser) - expect(await hasRedbox(browser)).toBe(true) expect(await getRedboxHeader(browser)).toMatch(/aa is not defined/) @@ -489,7 +485,6 @@ describe('basic HMR', () => { ) ) - await clickReloadOnFullRefreshWarning(browser) expect(await hasRedbox(browser)).toBe(true) expect(await getRedboxHeader(browser)).toMatchInlineSnapshot(` " 1 of 1 unhandled error @@ -539,7 +534,6 @@ describe('basic HMR', () => { const isReact17 = process.env.NEXT_TEST_REACT_VERSION === '^17' - await clickReloadOnFullRefreshWarning(browser) expect(await hasRedbox(browser)).toBe(true) // TODO: Replace this when webpack 5 is the default expect( @@ -591,7 +585,6 @@ describe('basic HMR', () => { ) ) - await clickReloadOnFullRefreshWarning(browser) expect(await hasRedbox(browser)).toBe(true) expect(await getRedboxHeader(browser)).toMatchInlineSnapshot(` " 1 of 1 unhandled error @@ -645,7 +638,6 @@ describe('basic HMR', () => { errorContent.replace('throw error', 'return {}') ) - await clickReloadOnFullRefreshWarning(browser) await check(() => getBrowserBodyText(browser), /Hello/) await next.patchFile(erroredPage, errorContent) @@ -694,7 +686,6 @@ describe('basic HMR', () => { errorContent.replace('throw error', 'return {}') ) - await clickReloadOnFullRefreshWarning(browser) await check(() => getBrowserBodyText(browser), /Hello/) await next.patchFile(erroredPage, errorContent) diff --git a/test/development/basic/hmr.test.ts b/test/development/basic/hmr.test.ts index de03e7096a40..48c49a704e69 100644 --- a/test/development/basic/hmr.test.ts +++ b/test/development/basic/hmr.test.ts @@ -3,7 +3,6 @@ import cheerio from 'cheerio' import webdriver from 'next-webdriver' import { check, - clickReloadOnFullRefreshWarning, getBrowserBodyText, getRedboxHeader, getRedboxSource, @@ -137,7 +136,6 @@ describe('basic HMR', () => { // change the content try { await next.patchFile(aboutPagePath, editedContent) - await clickReloadOnFullRefreshWarning(browser) await check(() => getBrowserBodyText(browser), /COOL page/) } finally { // add the original content @@ -449,7 +447,6 @@ describe('basic HMR', () => { await next.patchFile(aboutPage, aboutContent) - await clickReloadOnFullRefreshWarning(browser) await check( () => getBrowserBodyText(browser), /This is the contact page/ @@ -484,7 +481,6 @@ describe('basic HMR', () => { aboutContent.replace('export', 'aa=20;\nexport') ) - await clickReloadOnFullRefreshWarning(browser) expect(await hasRedbox(browser)).toBe(true) expect(await getRedboxHeader(browser)).toMatch(/aa is not defined/) @@ -554,7 +550,6 @@ describe('basic HMR', () => { ) ) - await clickReloadOnFullRefreshWarning(browser) expect(await hasRedbox(browser)).toBe(true) expect(await getRedboxHeader(browser)).toMatchInlineSnapshot(` " 1 of 1 unhandled error @@ -604,7 +599,6 @@ describe('basic HMR', () => { const isReact17 = process.env.NEXT_TEST_REACT_VERSION === '^17' - await clickReloadOnFullRefreshWarning(browser) expect(await hasRedbox(browser)).toBe(true) // TODO: Replace this when webpack 5 is the default expect( @@ -656,7 +650,6 @@ describe('basic HMR', () => { ) ) - await clickReloadOnFullRefreshWarning(browser) expect(await hasRedbox(browser)).toBe(true) expect(await getRedboxHeader(browser)).toMatchInlineSnapshot(` " 1 of 1 unhandled error @@ -710,7 +703,6 @@ describe('basic HMR', () => { errorContent.replace('throw error', 'return {}') ) - await clickReloadOnFullRefreshWarning(browser) await check(() => getBrowserBodyText(browser), /Hello/) await next.patchFile(erroredPage, errorContent) @@ -759,7 +751,6 @@ describe('basic HMR', () => { errorContent.replace('throw error', 'return {}') ) - await clickReloadOnFullRefreshWarning(browser) await check(() => getBrowserBodyText(browser), /Hello/) await next.patchFile(erroredPage, errorContent) diff --git a/test/development/full-reload-warning/index.test.ts b/test/development/full-reload-warning/index.test.ts new file mode 100644 index 000000000000..1ff815fa5664 --- /dev/null +++ b/test/development/full-reload-warning/index.test.ts @@ -0,0 +1,97 @@ +import { createNext } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { check, getRedboxHeader } from 'next-test-utils' +import webdriver from 'next-webdriver' + +describe('show a warning in CLI and browser when doing a full reload', () => { + let next: NextInstance + + beforeEach(async () => { + next = await createNext({ + files: { + 'pages/anonymous-page-function.js': ` + export default function() { + return

hello world

+ } + `, + 'pages/runtime-error.js': ` + export default function() { + return whoops + } + `, + }, + dependencies: {}, + }) + }) + afterEach(() => next.destroy()) + + test('error', async () => { + const browser = await webdriver(next.url, `/anonymous-page-function`) + expect(await browser.elementByCss('p').text()).toBe('hello world') + expect(next.cliOutput).not.toContain( + 'Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/basic-features/fast-refresh#how-it-works' + ) + + const currentFileContent = await next.readFile( + './pages/anonymous-page-function.js' + ) + const newFileContent = currentFileContent.replace( + '

hello world

', + '

hello world!!!

' + ) + await next.patchFile('./pages/anonymous-page-function.js', newFileContent) + await check(() => browser.elementByCss('p').text(), 'hello world!!!') + + // CLI warning and stacktrace + expect(next.cliOutput).toContain( + 'Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/basic-features/fast-refresh#how-it-works' + ) + expect(next.cliOutput).toContain( + 'Error: Aborted because ./pages/anonymous-page-function.js is not accepted' + ) + + // Browser warning + const browserLogs = await browser.log() + expect( + browserLogs.some(({ message }) => + message.includes( + "Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree." + ) + ) + ).toBeTruthy() + }) + + test('runtime-error', async () => { + const browser = await webdriver(next.url, `/runtime-error`) + await check( + () => getRedboxHeader(browser), + /ReferenceError: whoops is not defined/ + ) + expect(next.cliOutput).not.toContain( + 'Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/basic-features/fast-refresh#how-it-works' + ) + + const currentFileContent = await next.readFile('./pages/runtime-error.js') + const newFileContent = currentFileContent.replace('whoops', '"whoops"') + await next.patchFile('./pages/runtime-error.js', newFileContent) + await check(() => browser.elementByCss('body').text(), 'whoops') + + // CLI warning and stacktrace + expect(next.cliOutput).toContain( + 'Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/basic-features/fast-refresh#how-it-works' + ) + expect(next.cliOutput).not.toContain( + 'Error: Aborted because ./pages/runtime-error.js is not accepted' + ) + + // Browser warning + const browserLogs = await browser.log() + expect( + browserLogs.some(({ message }) => + message.includes( + '[Fast Refresh] performing full reload because your application had an unrecoverable error' + ) + ) + ).toBeTruthy() + }) +}) diff --git a/test/integration/app-document-add-hmr/test/index.test.js b/test/integration/app-document-add-hmr/test/index.test.js index 25f82eee915d..af24d990203a 100644 --- a/test/integration/app-document-add-hmr/test/index.test.js +++ b/test/integration/app-document-add-hmr/test/index.test.js @@ -3,13 +3,7 @@ import fs from 'fs-extra' import { join } from 'path' import webdriver from 'next-webdriver' -import { - killApp, - findPort, - launchApp, - check, - clickReloadOnFullRefreshWarning, -} from 'next-test-utils' +import { killApp, findPort, launchApp, check } from 'next-test-utils' const appDir = join(__dirname, '../') const appPage = join(appDir, 'pages/_app.js') @@ -46,7 +40,6 @@ describe('_app/_document add HMR', () => { ` ) - await clickReloadOnFullRefreshWarning(browser) await check(async () => { const html = await browser.eval('document.documentElement.innerHTML') return html.includes('custom _app') && html.includes('index page') diff --git a/test/integration/app-document-remove-hmr/test/index.test.js b/test/integration/app-document-remove-hmr/test/index.test.js index 0a7dfe3dbf9a..bfa930c72557 100644 --- a/test/integration/app-document-remove-hmr/test/index.test.js +++ b/test/integration/app-document-remove-hmr/test/index.test.js @@ -3,13 +3,7 @@ import fs from 'fs-extra' import { join } from 'path' import webdriver from 'next-webdriver' -import { - killApp, - findPort, - launchApp, - check, - clickReloadOnFullRefreshWarning, -} from 'next-test-utils' +import { killApp, findPort, launchApp, check } from 'next-test-utils' const appDir = join(__dirname, '../') const appPage = join(appDir, 'pages/_app.js') @@ -36,7 +30,6 @@ describe('_app removal HMR', () => { await fs.rename(appPage, appPage + '.bak') - await clickReloadOnFullRefreshWarning(browser) await check(async () => { const html = await browser.eval('document.documentElement.innerHTML') return html.includes('index page') && !html.includes('custom _app') @@ -63,7 +56,6 @@ describe('_app removal HMR', () => { await fs.rename(appPage + '.bak', appPage) - await clickReloadOnFullRefreshWarning(browser) await check(async () => { const html = await browser.eval('document.documentElement.innerHTML') return html.includes('index page updated') && diff --git a/test/integration/no-duplicate-compile-error/test/index.test.js b/test/integration/no-duplicate-compile-error/test/index.test.js index 7390c8d2d7d1..bdd6715272a4 100644 --- a/test/integration/no-duplicate-compile-error/test/index.test.js +++ b/test/integration/no-duplicate-compile-error/test/index.test.js @@ -1,7 +1,6 @@ /* eslint-env jest */ import { check, - clickReloadOnFullRefreshWarning, File, findPort, hasRedbox, @@ -44,8 +43,6 @@ describe('no duplicate compile error output', () => { f.restore() } - await clickReloadOnFullRefreshWarning(browser) - // Wait for compile error to disappear: await check( () => hasRedbox(browser, false).then((r) => (r ? 'yes' : 'no')), diff --git a/test/integration/typescript-hmr/test/index.test.js b/test/integration/typescript-hmr/test/index.test.js index 621a442b147c..7b2ab6250b18 100644 --- a/test/integration/typescript-hmr/test/index.test.js +++ b/test/integration/typescript-hmr/test/index.test.js @@ -3,7 +3,6 @@ import fs from 'fs-extra' import { check, - ignoreFullRefreshWarnings, findPort, getBrowserBodyText, getRedboxHeader, @@ -37,7 +36,6 @@ describe('TypeScript HMR', () => { let browser try { browser = await webdriver(appPort, '/hello') - await ignoreFullRefreshWarnings(browser) await check(() => getBrowserBodyText(browser), /Hello World/) const pagePath = join(appDir, 'pages/hello.tsx') @@ -91,7 +89,6 @@ describe('TypeScript HMR', () => { const origContent = await fs.readFile(pagePath, 'utf8') try { browser = await webdriver(appPort, '/type-error-recover') - await ignoreFullRefreshWarnings(browser) const errContent = origContent.replace( '() =>

Hello world

', '(): boolean =>

hello with error

' diff --git a/test/lib/next-test-utils.js b/test/lib/next-test-utils.js index c468e06f2a06..78935652c1df 100644 --- a/test/lib/next-test-utils.js +++ b/test/lib/next-test-utils.js @@ -607,42 +607,6 @@ export async function hasRedbox(browser, expected = true) { return false } -export async function ignoreFullRefreshWarnings(browser) { - await browser.eval(() => { - sessionStorage.setItem('_has_warned_about_full_refresh', 'ignore') - }) -} - -export async function clickReloadOnFullRefreshWarning(browser) { - await retry(async () => { - const hasFullRefreshWarning = await evaluate(browser, () => - Boolean( - Array.from(document.querySelectorAll('nextjs-portal')).find( - (p) => - p.shadowRoot.querySelector( - '#nextjs__container_refresh_warning_label' - )?.textContent === 'About to perform a full refresh' - ) - ) - ) - if (!hasFullRefreshWarning) throw new Error('No full refresh warning') - return evaluate(browser, () => { - const buttons = Array.from(document.querySelectorAll('nextjs-portal')) - .find( - (p) => - p.shadowRoot.querySelector( - '#nextjs__container_refresh_warning_label' - )?.textContent === 'About to perform a full refresh' - ) - .shadowRoot.querySelectorAll('button') - - Array.from(buttons) - .find((b) => b.textContent === 'Reload') - .click() - }) - }) -} - export async function getRedboxHeader(browser) { return retry( () => From 92915e47f7122b332f7921f1e129a7bdca493e1f Mon Sep 17 00:00:00 2001 From: Gal Schlezinger Date: Wed, 22 Jun 2022 19:03:31 +0300 Subject: [PATCH 123/149] Remove NextResponse.json as we already have it defined from inheriting Response (#37887) Lately, `Response.json` was introduced as a standard static method. That means we can remove our implementation of `NextResponse.json` piggyback on `Response.json` Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- packages/next/server/web/spec-extension/response.ts | 13 ++++--------- test/unit/web-runtime/next-response.test.ts | 7 ++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/next/server/web/spec-extension/response.ts b/packages/next/server/web/spec-extension/response.ts index 3be0ead678be..862f0935164c 100644 --- a/packages/next/server/web/spec-extension/response.ts +++ b/packages/next/server/web/spec-extension/response.ts @@ -31,15 +31,10 @@ export class NextResponse extends Response { return this[INTERNALS].cookies } - static json(body: any, init?: ResponseInit) { - const { headers, ...responseInit } = init || {} - return new NextResponse(JSON.stringify(body), { - ...responseInit, - headers: { - ...headers, - 'content-type': 'application/json', - }, - }) + static json(body: any, init?: ResponseInit): NextResponse { + // @ts-expect-error This is not in lib/dom right now, and we can't augment it. + const response: Response = Response.json(body, init) + return new NextResponse(response.body, response) } static redirect(url: string | NextURL | URL, status = 307) { diff --git a/test/unit/web-runtime/next-response.test.ts b/test/unit/web-runtime/next-response.test.ts index aea5b5964603..9a9be22243bf 100644 --- a/test/unit/web-runtime/next-response.test.ts +++ b/test/unit/web-runtime/next-response.test.ts @@ -4,7 +4,7 @@ import { NextResponse } from 'next/server/web/spec-extension/response' -const toJSON = async (response) => ({ +const toJSON = async (response: Response) => ({ body: await response.json(), contentType: response.headers.get('content-type'), status: response.status, @@ -53,3 +53,8 @@ it('can be cloned', async () => { server: 'Vercel', }) }) + +it('can return JSON', async () => { + const response = NextResponse.json({ hello: 'world' }) + expect(await response.json()).toEqual({ hello: 'world' }) +}) From 1a0346e68dac4c0132ae7f1a6ac5b2391845d575 Mon Sep 17 00:00:00 2001 From: Hoon Oh <2078254+hoonoh@users.noreply.github.com> Date: Thu, 23 Jun 2022 02:54:01 +0900 Subject: [PATCH 124/149] fix: keep _ssgManifest.js output uniform (#37906) Hello, This PR sorts paths array before generating `_ssgManifest.js` to keep output of static HTML exports uniform. Before this change, the output of `_ssgManifest.js` would almost always change, which in result changes the static HTML export artifact's checksum every time. --- packages/next/build/index.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index 3b810e17d44a..9a76c4d6fe20 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -2396,13 +2396,15 @@ function generateClientSsgManifest( locales, }: { buildId: string; distDir: string; locales: string[] } ) { - const ssgPages = new Set([ - ...Object.entries(prerenderManifest.routes) - // Filter out dynamic routes - .filter(([, { srcRoute }]) => srcRoute == null) - .map(([route]) => normalizeLocalePath(route, locales).pathname), - ...Object.keys(prerenderManifest.dynamicRoutes), - ]) + const ssgPages = new Set( + [ + ...Object.entries(prerenderManifest.routes) + // Filter out dynamic routes + .filter(([, { srcRoute }]) => srcRoute == null) + .map(([route]) => normalizeLocalePath(route, locales).pathname), + ...Object.keys(prerenderManifest.dynamicRoutes), + ].sort() + ) const clientSsgManifestContent = `self.__SSG_MANIFEST=${devalue( ssgPages From b04cdc9f2f21912d1235c83544318d14bcb9739f Mon Sep 17 00:00:00 2001 From: Shu Ding Date: Wed, 22 Jun 2022 21:56:26 +0200 Subject: [PATCH 125/149] Fix next/head in _app in RSC pages (#37928) * fix next/head in _app with rsc * revert change Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/next/build/webpack-config.ts | 5 +++++ .../test/css.js | 7 +++++++ .../test/index.test.js | 12 +++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index b1604e5c284f..97fee15486df 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -1280,6 +1280,11 @@ export default async function getBaseWebpackConfig( loader: 'next-flight-client-loader', }, }, + // _app should be treated as a client component as well as all its dependencies. + { + test: new RegExp(`_app\\.(${rawPageExtensions.join('|')})$`), + layer: 'sc_client', + }, ] : [] : []), diff --git a/test/integration/react-streaming-and-server-components/test/css.js b/test/integration/react-streaming-and-server-components/test/css.js index 39bcf1bfafdd..b48a62cf3566 100644 --- a/test/integration/react-streaming-and-server-components/test/css.js +++ b/test/integration/react-streaming-and-server-components/test/css.js @@ -9,6 +9,7 @@ export default function (context) { ) expect(currentColor).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) }) + it('should include global styles with `serverComponents: true`', async () => { const browser = await webdriver(context.appPort, '/global-styles-rsc') const currentColor = await browser.eval( @@ -24,4 +25,10 @@ export default function (context) { ) expect(currentColor).toMatchInlineSnapshot(`"rgb(255, 0, 0)"`) }) + + it('should support next/head inside _app with RSC', async () => { + const browser = await webdriver(context.appPort, '/multi') + const title = await browser.eval(`document.title`) + expect(title).toBe('hi') + }) } diff --git a/test/integration/react-streaming-and-server-components/test/index.test.js b/test/integration/react-streaming-and-server-components/test/index.test.js index 238f16b6b6ec..549c08a1c7c2 100644 --- a/test/integration/react-streaming-and-server-components/test/index.test.js +++ b/test/integration/react-streaming-and-server-components/test/index.test.js @@ -24,11 +24,17 @@ import streaming from './streaming' import basic from './basic' import { getNodeBuiltinModuleNotSupportedInEdgeRuntimeMessage } from 'next/dist/build/utils' -const appWithGlobalCss = ` +const appWithGlobalCssAndHead = ` import '../styles.css' +import Head from 'next/head' function App({ Component, pageProps }) { - return + return <> + + hi + + + } export default App @@ -156,7 +162,7 @@ const nodejsRuntimeBasicSuite = { const cssSuite = { runTests: css, - beforeAll: () => appPage.write(appWithGlobalCss), + beforeAll: () => appPage.write(appWithGlobalCssAndHead), afterAll: () => appPage.delete(), } From 89bc9c66ea79de6d7505851234c5fe179aad1051 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 22 Jun 2022 17:02:46 -0500 Subject: [PATCH 126/149] Ensure resolvedUrl is correct with fallback rewrites (#37932) * Ensure resolvedUrl is correct with fallback rewrites * fix-lint * normalize slash --- .../loaders/next-serverless-loader/utils.ts | 7 +- packages/next/server/base-server.ts | 5 + .../app/next.config.js | 32 +++++ .../app/pages/blog/[slug].js | 32 +++++ .../app/pages/index.js | 25 ++++ .../app/pages/news.js | 25 ++++ .../minimal-mode-response-cache/index.test.ts | 122 ++++++++++++++++++ 7 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 test/production/minimal-mode-response-cache/app/next.config.js create mode 100644 test/production/minimal-mode-response-cache/app/pages/blog/[slug].js create mode 100644 test/production/minimal-mode-response-cache/app/pages/index.js create mode 100644 test/production/minimal-mode-response-cache/app/pages/news.js create mode 100644 test/production/minimal-mode-response-cache/index.test.ts diff --git a/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts b/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts index dffb65244b40..1ab53f32acf8 100644 --- a/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts +++ b/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts @@ -28,6 +28,7 @@ import { denormalizePagePath } from '../../../../shared/lib/page-path/denormaliz import cookie from 'next/dist/compiled/cookie' import { TEMPORARY_REDIRECT_STATUS } from '../../../../shared/lib/constants' import { addRequestMeta } from '../../../../server/request-meta' +import { removeTrailingSlash } from '../../../../shared/lib/router/utils/remove-trailing-slash' export const vercelHeader = 'x-vercel-id' @@ -98,7 +99,11 @@ export function getUtils({ let fsPathname = parsedUrl.pathname const matchesPage = () => { - return fsPathname === page || dynamicRouteMatcher?.(fsPathname) + const fsPathnameNoSlash = removeTrailingSlash(fsPathname || '') + return ( + fsPathnameNoSlash === removeTrailingSlash(page) || + dynamicRouteMatcher?.(fsPathnameNoSlash) + ) } const checkRewrite = (rewrite: Rewrite): boolean => { diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index cccd5679389d..c81c1175ed47 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -1341,6 +1341,11 @@ export default abstract class Server { let resolvedUrlPathname = getRequestMeta(req, '_nextRewroteUrl') || urlPathname + if (isSSG && this.minimalMode && req.headers['x-matched-path']) { + // the url value is already correct when the matched-path header is set + resolvedUrlPathname = urlPathname + } + urlPathname = removeTrailingSlash(urlPathname) resolvedUrlPathname = normalizeLocalePath( removeTrailingSlash(resolvedUrlPathname), diff --git a/test/production/minimal-mode-response-cache/app/next.config.js b/test/production/minimal-mode-response-cache/app/next.config.js new file mode 100644 index 000000000000..e882c72b0b63 --- /dev/null +++ b/test/production/minimal-mode-response-cache/app/next.config.js @@ -0,0 +1,32 @@ +module.exports = { + experimental: { + outputStandalone: true, + }, + trailingSlash: true, + rewrites() { + return { + beforeFiles: [ + { + source: '/news/:path/', + destination: '/news/:path*/', + }, + ], + afterFiles: [ + { + source: '/somewhere', + destination: '/', + }, + ], + fallback: [ + { + source: '/:path*', + destination: '/:path*', + }, + { + source: '/(.*)', + destination: '/seo-redirects', + }, + ], + } + }, +} diff --git a/test/production/minimal-mode-response-cache/app/pages/blog/[slug].js b/test/production/minimal-mode-response-cache/app/pages/blog/[slug].js new file mode 100644 index 000000000000..7744865fab40 --- /dev/null +++ b/test/production/minimal-mode-response-cache/app/pages/blog/[slug].js @@ -0,0 +1,32 @@ +import { useRouter } from 'next/router' + +export default function Page(props) { + const router = useRouter() + + return ( + <> +

/blog/[slug]

+

{JSON.stringify(props)}

+

{router.asPath}

+

{router.pathname}

+

{JSON.stringify(router.query)}

+ + ) +} + +export function getStaticProps({ params }) { + console.log('getStaticProps /blog/[slug]', params) + return { + props: { + params, + now: Date.now(), + }, + } +} + +export function getStaticPaths() { + return { + paths: ['/blog/first'], + fallback: 'blocking', + } +} diff --git a/test/production/minimal-mode-response-cache/app/pages/index.js b/test/production/minimal-mode-response-cache/app/pages/index.js new file mode 100644 index 000000000000..0d7ef7f93f62 --- /dev/null +++ b/test/production/minimal-mode-response-cache/app/pages/index.js @@ -0,0 +1,25 @@ +import { useRouter } from 'next/router' + +export default function Page(props) { + const router = useRouter() + + return ( + <> +

/

+

{JSON.stringify(props)}

+

{router.asPath}

+

{router.pathname}

+

{JSON.stringify(router.query)}

+ + ) +} + +export function getStaticProps() { + console.log('getStaticProps /') + return { + props: { + index: true, + now: Date.now(), + }, + } +} diff --git a/test/production/minimal-mode-response-cache/app/pages/news.js b/test/production/minimal-mode-response-cache/app/pages/news.js new file mode 100644 index 000000000000..74ce52a740af --- /dev/null +++ b/test/production/minimal-mode-response-cache/app/pages/news.js @@ -0,0 +1,25 @@ +import { useRouter } from 'next/router' + +export default function Page(props) { + const router = useRouter() + + return ( + <> +

/news

+

{JSON.stringify(props)}

+

{router.asPath}

+

{router.pathname}

+

{JSON.stringify(router.query)}

+ + ) +} + +export function getStaticProps() { + console.log('getStaticProps /news') + return { + props: { + news: true, + now: Date.now(), + }, + } +} diff --git a/test/production/minimal-mode-response-cache/index.test.ts b/test/production/minimal-mode-response-cache/index.test.ts new file mode 100644 index 000000000000..e311bfc8aaa4 --- /dev/null +++ b/test/production/minimal-mode-response-cache/index.test.ts @@ -0,0 +1,122 @@ +import glob from 'glob' +import fs from 'fs-extra' +import { join } from 'path' +import cheerio from 'cheerio' +import { createNext, FileRef } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import { + killApp, + findPort, + renderViaHTTP, + initNextServerScript, +} from 'next-test-utils' + +describe('minimal-mode-response-cache', () => { + let next: NextInstance + let server + let appPort + + beforeAll(async () => { + // test build against environment with next support + process.env.NOW_BUILDER = '1' + + next = await createNext({ + files: new FileRef(join(__dirname, 'app')), + }) + await next.stop() + + await fs.move( + join(next.testDir, '.next/standalone'), + join(next.testDir, 'standalone') + ) + for (const file of await fs.readdir(next.testDir)) { + if (file !== 'standalone') { + await fs.remove(join(next.testDir, file)) + console.log('removed', file) + } + } + const files = glob.sync('**/*', { + cwd: join(next.testDir, 'standalone/.next/server/pages'), + dot: true, + }) + + for (const file of files) { + if (file.endsWith('.json') || file.endsWith('.html')) { + await fs.remove(join(next.testDir, '.next/server', file)) + } + } + + const testServer = join(next.testDir, 'standalone/server.js') + await fs.writeFile( + testServer, + (await fs.readFile(testServer, 'utf8')) + .replace('console.error(err)', `console.error('top-level', err)`) + .replace('conf:', 'minimalMode: true,conf:') + ) + appPort = await findPort() + server = await initNextServerScript( + testServer, + /Listening on/, + { + ...process.env, + PORT: appPort, + }, + undefined, + { + cwd: next.testDir, + } + ) + }) + afterAll(async () => { + await next.destroy() + if (server) await killApp(server) + }) + + it('should have correct responses', async () => { + const html = await renderViaHTTP(appPort, '/') + expect(html.length).toBeTruthy() + + for (const { path, matchedPath, query, asPath, pathname } of [ + { path: '/', asPath: '/' }, + { path: '/', matchedPath: '/index', asPath: '/' }, + { path: '/', matchedPath: '/index/', asPath: '/' }, + { path: '/', matchedPath: '/', asPath: '/' }, + { + path: '/news/', + matchedPath: '/news/', + asPath: '/news/', + pathname: '/news', + }, + { + path: '/news/', + matchedPath: '/news', + asPath: '/news/', + pathname: '/news', + }, + { + path: '/blog/first/', + matchedPath: '/blog/first/', + pathname: '/blog/[slug]', + asPath: '/blog/first/', + query: { slug: 'first' }, + }, + { + path: '/blog/second/', + matchedPath: '/blog/[slug]/', + pathname: '/blog/[slug]', + asPath: '/blog/second/', + query: { slug: 'second' }, + }, + ]) { + const html = await renderViaHTTP(appPort, path, undefined, { + headers: { + 'x-matched-path': matchedPath || path, + }, + }) + const $ = cheerio.load(html) + expect($('#asPath').text()).toBe(asPath) + expect($('#pathname').text()).toBe(pathname || path) + expect(JSON.parse($('#query').text())).toEqual(query || {}) + } + }) +}) From f246e781bb2193c954bdf0ef05518ad3c13dadfe Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 22 Jun 2022 17:25:10 -0500 Subject: [PATCH 127/149] v12.1.7-canary.45 --- lerna.json | 2 +- packages/create-next-app/package.json | 2 +- packages/eslint-config-next/package.json | 4 ++-- packages/eslint-plugin-next/package.json | 2 +- packages/next-bundle-analyzer/package.json | 2 +- packages/next-codemod/package.json | 2 +- packages/next-env/package.json | 2 +- packages/next-mdx/package.json | 2 +- packages/next-plugin-storybook/package.json | 2 +- packages/next-polyfill-module/package.json | 2 +- packages/next-polyfill-nomodule/package.json | 2 +- packages/next-swc/package.json | 2 +- packages/next/package.json | 14 +++++++------- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 16 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index 0d5ccc253cb2..8be7ab9065a9 100644 --- a/lerna.json +++ b/lerna.json @@ -16,5 +16,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "12.1.7-canary.44" + "version": "12.1.7-canary.45" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index f7bc5ac456cd..47f75c5063a3 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index bbab31cd60ba..a911f625e235 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "description": "ESLint configuration used by NextJS.", "main": "index.js", "license": "MIT", @@ -9,7 +9,7 @@ "directory": "packages/eslint-config-next" }, "dependencies": { - "@next/eslint-plugin-next": "12.1.7-canary.44", + "@next/eslint-plugin-next": "12.1.7-canary.45", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index d79ae61b50e1..98050ab0fa52 100644 --- a/packages/eslint-plugin-next/package.json +++ b/packages/eslint-plugin-next/package.json @@ -1,6 +1,6 @@ { "name": "@next/eslint-plugin-next", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "description": "ESLint plugin for NextJS.", "main": "lib/index.js", "license": "MIT", diff --git a/packages/next-bundle-analyzer/package.json b/packages/next-bundle-analyzer/package.json index 51256975692c..40e863b191b3 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "main": "index.js", "types": "index.d.ts", "license": "MIT", diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index 26d8f57c78bd..ac9292654229 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index 8844be1625b6..e040ec890adb 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 53cc238250e7..120e8e7a364b 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 521181effe06..a6799db4e388 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "repository": { "url": "vercel/next.js", "directory": "packages/next-plugin-storybook" diff --git a/packages/next-polyfill-module/package.json b/packages/next-polyfill-module/package.json index dfe18fbab8f0..5ebd2f1f761d 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)", "main": "dist/polyfill-module.js", "license": "MIT", diff --git a/packages/next-polyfill-nomodule/package.json b/packages/next-polyfill-nomodule/package.json index 82c98e884966..e87acc369c70 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 51c5c1401bc6..7fce64f5d061 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -1,6 +1,6 @@ { "name": "@next/swc", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "private": true, "scripts": { "build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin", diff --git a/packages/next/package.json b/packages/next/package.json index 322f6b2b49aa..250a4dc5adb3 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@next/env": "12.1.7-canary.44", + "@next/env": "12.1.7-canary.45", "@swc/helpers": "0.4.2", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.5", @@ -121,11 +121,11 @@ "@hapi/accept": "5.0.2", "@napi-rs/cli": "2.4.4", "@napi-rs/triples": "1.1.0", - "@next/polyfill-module": "12.1.7-canary.44", - "@next/polyfill-nomodule": "12.1.7-canary.44", - "@next/react-dev-overlay": "12.1.7-canary.44", - "@next/react-refresh-utils": "12.1.7-canary.44", - "@next/swc": "12.1.7-canary.44", + "@next/polyfill-module": "12.1.7-canary.45", + "@next/polyfill-nomodule": "12.1.7-canary.45", + "@next/react-dev-overlay": "12.1.7-canary.45", + "@next/react-refresh-utils": "12.1.7-canary.45", + "@next/swc": "12.1.7-canary.45", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 86b12b8dac75..05a6f7037486 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-dev-overlay", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "description": "A development-only overlay for developing React applications.", "repository": { "url": "vercel/next.js", diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index 46efd92f57c6..34526520cc71 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -1,6 +1,6 @@ { "name": "@next/react-refresh-utils", - "version": "12.1.7-canary.44", + "version": "12.1.7-canary.45", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4cc10f80605f..e5831f7cae4d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -356,7 +356,7 @@ importers: packages/eslint-config-next: specifiers: - '@next/eslint-plugin-next': 12.1.7-canary.44 + '@next/eslint-plugin-next': 12.1.7-canary.45 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 eslint-import-resolver-node: ^0.3.6 @@ -412,12 +412,12 @@ importers: '@hapi/accept': 5.0.2 '@napi-rs/cli': 2.4.4 '@napi-rs/triples': 1.1.0 - '@next/env': 12.1.7-canary.44 - '@next/polyfill-module': 12.1.7-canary.44 - '@next/polyfill-nomodule': 12.1.7-canary.44 - '@next/react-dev-overlay': 12.1.7-canary.44 - '@next/react-refresh-utils': 12.1.7-canary.44 - '@next/swc': 12.1.7-canary.44 + '@next/env': 12.1.7-canary.45 + '@next/polyfill-module': 12.1.7-canary.45 + '@next/polyfill-nomodule': 12.1.7-canary.45 + '@next/react-dev-overlay': 12.1.7-canary.45 + '@next/react-refresh-utils': 12.1.7-canary.45 + '@next/swc': 12.1.7-canary.45 '@swc/helpers': 0.4.2 '@taskr/clear': 1.1.0 '@taskr/esnext': 1.1.0 From b0533635ab318ab88350033fa6a8571b0f5a5434 Mon Sep 17 00:00:00 2001 From: Lee Robinson Date: Wed, 22 Jun 2022 20:11:31 -0500 Subject: [PATCH 128/149] Update Middleware beta message. (#37934) To help folks find the upgrade guide. --- errors/beta-middleware.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/errors/beta-middleware.md b/errors/beta-middleware.md index fed56e1573c9..c3743a5e8719 100644 --- a/errors/beta-middleware.md +++ b/errors/beta-middleware.md @@ -2,12 +2,14 @@ #### Why This Error Occurred -The middleware feature of Next.js is still in beta so this warning is shown to express that the feature is not yet covered by semver and can experience changes at any point. +[Middleware](https://nextjs.org/docs/advanced-features/middleware) was beta in versions prior to `v12.2` and not yet covered by [semver](https://semver.org/). #### Possible Ways to Fix It -No fix necessary. +You can continue to use Middleware in versions prior to `v12.2`. However, you will need to make changes to upgrade to newer versions. + +If you're using Next.js on Vercel, your existing deploys using Middleware will continue to work, and you can continue to deploy your site using Middleware. When you upgrade your site to `v12.2` or later, you will need to follow the [upgrade guide](https://nextjs.org/docs/messages/middleware-upgrade-guide). ### Useful Links -- [semver documentation](https://semver.org/) +- [Middleware Upgrade Guide](https://nextjs.org/docs/messages/middleware-upgrade-guide) From e6796bafc4989988c3c28ea6b1c0c3caa3fe1e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Orb=C3=A1n?= Date: Thu, 23 Jun 2022 16:05:46 +0200 Subject: [PATCH 129/149] chore: add `action.yml` to Issue validator action (#37950) See: https://github.com/vercel/next.js/runs/7024234103?check_suite_focus=true#step:2:1 ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) --- .github/actions/issue-validator/action.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/actions/issue-validator/action.yml diff --git a/.github/actions/issue-validator/action.yml b/.github/actions/issue-validator/action.yml new file mode 100644 index 000000000000..9be0e9441e20 --- /dev/null +++ b/.github/actions/issue-validator/action.yml @@ -0,0 +1,6 @@ +name: Issue validator +description: 'Validates bug reports on the Next.js repository' +author: 'Vercel' +runs: + using: 'node18' + main: 'index.js' From 11b13074f1a1ecea50224492c99d834d6447d718 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 23 Jun 2022 09:13:40 -0500 Subject: [PATCH 130/149] Ensure special chars in middleware matcher is handled (#37933) --- packages/next/build/entries.ts | 8 ++++++-- .../build/webpack/loaders/next-middleware-loader.ts | 11 +++++++++-- test/e2e/middleware-matcher/app/middleware.js | 7 ++++++- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/next/build/entries.ts b/packages/next/build/entries.ts index 8a715fa45946..e597495b6a1e 100644 --- a/packages/next/build/entries.ts +++ b/packages/next/build/entries.ts @@ -164,8 +164,12 @@ export function getEdgeServerEntry(opts: { const loaderParams: MiddlewareLoaderOptions = { absolutePagePath: opts.absolutePagePath, page: opts.page, - matcherRegexp: - opts.middleware?.pathMatcher && opts.middleware.pathMatcher.source, + // pathMatcher can have special characters that break the loader params + // parsing so we base64 encode/decode the string + matcherRegexp: Buffer.from( + (opts.middleware?.pathMatcher && opts.middleware.pathMatcher.source) || + '' + ).toString('base64'), } return `next-middleware-loader?${stringify(loaderParams)}!` diff --git a/packages/next/build/webpack/loaders/next-middleware-loader.ts b/packages/next/build/webpack/loaders/next-middleware-loader.ts index 62f28910b80e..5acb878bcf76 100644 --- a/packages/next/build/webpack/loaders/next-middleware-loader.ts +++ b/packages/next/build/webpack/loaders/next-middleware-loader.ts @@ -9,8 +9,15 @@ export type MiddlewareLoaderOptions = { } export default function middlewareLoader(this: any) { - const { absolutePagePath, page, matcherRegexp }: MiddlewareLoaderOptions = - this.getOptions() + const { + absolutePagePath, + page, + matcherRegexp: base64MatcherRegex, + }: MiddlewareLoaderOptions = this.getOptions() + const matcherRegexp = Buffer.from( + base64MatcherRegex || '', + 'base64' + ).toString() const stringifiedPagePath = stringifyRequest(this, absolutePagePath) const buildInfo = getModuleBuildInfo(this._module) buildInfo.nextEdgeMiddleware = { diff --git a/test/e2e/middleware-matcher/app/middleware.js b/test/e2e/middleware-matcher/app/middleware.js index 242080626645..09d45a951fc6 100644 --- a/test/e2e/middleware-matcher/app/middleware.js +++ b/test/e2e/middleware-matcher/app/middleware.js @@ -1,7 +1,12 @@ import { NextResponse } from 'next/server' export const config = { - matcher: ['/with-middleware/:path*', '/another-middleware/:path*'], + matcher: [ + '/with-middleware/:path*', + '/another-middleware/:path*', + // the below is testing special characters don't break the build + '/_sites/:path((?![^/]*\\.json$)[^/]+$)', + ], } export default (req) => { From 3881bbd3ec2e6a0522aecb5753a2b5bc188885b9 Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Thu, 23 Jun 2022 18:33:16 +0200 Subject: [PATCH 131/149] Drop experimental.reactRoot in favor of auto detection (#37956) * Drop experimental.reactRoot in favor of auto detection * fix it hydraion metric --- packages/next/bin/next.ts | 3 +- packages/next/build/entries.ts | 1 - packages/next/build/webpack-config.ts | 32 +++++++------------ .../next-middleware-ssr-loader/render.ts | 1 - .../loaders/next-serverless-loader/index.ts | 3 -- packages/next/export/index.ts | 1 - packages/next/server/app-render.tsx | 1 - packages/next/server/base-server.ts | 4 +-- packages/next/server/config-shared.ts | 2 -- packages/next/server/config.ts | 20 ------------ packages/next/server/next-server.ts | 3 +- packages/next/server/next.ts | 3 +- packages/next/server/render.tsx | 10 +++--- packages/next/server/utils.ts | 4 +++ test/e2e/app-dir/app-rendering/next.config.js | 1 - test/e2e/app-dir/app/next.config.js | 1 - .../react-18-invalid-config/index.test.js | 13 ++------ .../react-18-invalid-config/next.config.js | 2 +- test/integration/react-18/app/next.config.js | 1 - .../unsupported-native-module/next.config.js | 1 - test/unit/parse-page-runtime.test.ts | 2 +- 21 files changed, 28 insertions(+), 81 deletions(-) diff --git a/packages/next/bin/next.ts b/packages/next/bin/next.ts index fccca27b57f4..dd467cb224a5 100755 --- a/packages/next/bin/next.ts +++ b/packages/next/bin/next.ts @@ -1,8 +1,8 @@ #!/usr/bin/env node import * as log from '../build/output/log' import arg from 'next/dist/compiled/arg/index.js' -import React from 'react' import { NON_STANDARD_NODE_ENV } from '../lib/constants' +import { shouldUseReactRoot } from '../server/utils' ;['react', 'react-dom'].forEach((dependency) => { try { // When 'npm link' is used it checks the clone location. Not the project. @@ -107,7 +107,6 @@ if (process.env.NODE_ENV) { ;(process.env as any).NODE_ENV = process.env.NODE_ENV || defaultEnv ;(process.env as any).NEXT_RUNTIME = 'nodejs' -const shouldUseReactRoot = parseInt(React.version) >= 18 if (shouldUseReactRoot) { ;(process.env as any).__NEXT_REACT_ROOT = 'true' } diff --git a/packages/next/build/entries.ts b/packages/next/build/entries.ts index e597495b6a1e..5abc35f4487b 100644 --- a/packages/next/build/entries.ts +++ b/packages/next/build/entries.ts @@ -247,7 +247,6 @@ export function getServerlessEntry(opts: { page: opts.page, poweredByHeader: opts.config.poweredByHeader ? 'true' : '', previewProps: JSON.stringify(opts.previewMode), - reactRoot: !!opts.config.experimental.reactRoot ? 'true' : '', runtimeConfig: Object.keys(opts.config.publicRuntimeConfig).length > 0 || Object.keys(opts.config.serverRuntimeConfig).length > 0 diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index 97fee15486df..0b97e45af895 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -364,26 +364,17 @@ export default async function getBaseWebpackConfig( rewrites.afterFiles.length > 0 || rewrites.fallback.length > 0 - // Make sure `reactRoot` is enabled when React 18 or experimental is detected. - if (hasReactRoot) { - config.experimental.reactRoot = true - } - - // Only inform during one of the builds - if (isClient && config.experimental.reactRoot && !hasReactRoot) { - // It's fine to only mention React 18 here as we don't recommend people to try experimental. - Log.warn('You have to use React 18 to use `experimental.reactRoot`.') - } - - if (isClient && config.experimental.runtime && !hasReactRoot) { - throw new Error( - '`experimental.runtime` requires `experimental.reactRoot` to be enabled along with React 18.' - ) - } - if (config.experimental.serverComponents && !hasReactRoot) { - throw new Error( - '`experimental.serverComponents` requires React 18 to be installed.' - ) + if (isClient && !hasReactRoot) { + if (config.experimental.runtime) { + throw new Error( + '`experimental.runtime` requires React 18 to be installed.' + ) + } + if (config.experimental.serverComponents) { + throw new Error( + '`experimental.serverComponents` requires React 18 to be installed.' + ) + } } const hasConcurrentFeatures = hasReactRoot @@ -1830,7 +1821,6 @@ export default async function getBaseWebpackConfig( reactProductionProfiling, webpack: !!config.webpack, hasRewrites, - reactRoot: config.experimental.reactRoot, runtime: config.experimental.runtime, swcMinify: config.swcMinify, swcLoader: useSWCLoader, diff --git a/packages/next/build/webpack/loaders/next-middleware-ssr-loader/render.ts b/packages/next/build/webpack/loaders/next-middleware-ssr-loader/render.ts index cab9ec47e952..fdea86c4fbca 100644 --- a/packages/next/build/webpack/loaders/next-middleware-ssr-loader/render.ts +++ b/packages/next/build/webpack/loaders/next-middleware-ssr-loader/render.ts @@ -55,7 +55,6 @@ export function getRender({ page, extendRenderOpts: { buildId, - reactRoot: true, runtime: 'edge', supportsDynamicHTML: true, disableOptimizedLoading: true, diff --git a/packages/next/build/webpack/loaders/next-serverless-loader/index.ts b/packages/next/build/webpack/loaders/next-serverless-loader/index.ts index 533f4d64aa7a..879260d278c1 100644 --- a/packages/next/build/webpack/loaders/next-serverless-loader/index.ts +++ b/packages/next/build/webpack/loaders/next-serverless-loader/index.ts @@ -31,7 +31,6 @@ export type ServerlessLoaderQuery = { previewProps: string loadedEnvFiles: string i18n: string - reactRoot: string } const nextServerlessLoader: webpack.loader.Loader = function () { @@ -53,7 +52,6 @@ const nextServerlessLoader: webpack.loader.Loader = function () { previewProps, loadedEnvFiles, i18n, - reactRoot, }: ServerlessLoaderQuery = typeof this.query === 'string' ? parse(this.query.slice(1)) : this.query @@ -187,7 +185,6 @@ const nextServerlessLoader: webpack.loader.Loader = function () { canonicalBase: "${canonicalBase}", generateEtags: ${generateEtags || 'false'}, poweredByHeader: ${poweredByHeader || 'false'}, - reactRoot: ${reactRoot || 'false'}, runtimeConfig, buildManifest, diff --git a/packages/next/export/index.ts b/packages/next/export/index.ts index 676fd4072775..8b28637fd048 100644 --- a/packages/next/export/index.ts +++ b/packages/next/export/index.ts @@ -388,7 +388,6 @@ export default async function exportApp( optimizeCss: nextConfig.experimental.optimizeCss, nextScriptWorkers: nextConfig.experimental.nextScriptWorkers, optimizeFonts: nextConfig.optimizeFonts, - reactRoot: nextConfig.experimental.reactRoot || false, largePageDataBytes: nextConfig.experimental.largePageDataBytes, } diff --git a/packages/next/server/app-render.tsx b/packages/next/server/app-render.tsx index b02051520338..96c9d833473e 100644 --- a/packages/next/server/app-render.tsx +++ b/packages/next/server/app-render.tsx @@ -32,7 +32,6 @@ export type RenderOptsPartial = { supportsDynamicHTML?: boolean runtime?: 'nodejs' | 'edge' serverComponents?: boolean - reactRoot: boolean } export type RenderOpts = LoadComponentsReturnType & RenderOptsPartial diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index c81c1175ed47..55380a10931d 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -177,7 +177,6 @@ export default abstract class Server { serverComponentManifest?: any renderServerComponentData?: boolean serverComponentProps?: any - reactRoot: boolean largePageDataBytes?: number } protected serverOptions: ServerOptions @@ -328,7 +327,6 @@ export default abstract class Server { crossOrigin: this.nextConfig.crossOrigin ? this.nextConfig.crossOrigin : undefined, - reactRoot: this.nextConfig.experimental.reactRoot === true, largePageDataBytes: this.nextConfig.experimental.largePageDataBytes, } @@ -1292,7 +1290,7 @@ export default abstract class Server { typeof components.Document?.getInitialProps !== 'function' || // When concurrent features is enabled, the built-in `Document` // component also supports dynamic HTML. - (this.renderOpts.reactRoot && + (!!process.env.__NEXT_REACT_ROOT && NEXT_BUILTIN_DOCUMENT in components.Document) // Disable dynamic HTML in cases that we know it won't be generated, diff --git a/packages/next/server/config-shared.ts b/packages/next/server/config-shared.ts index 0a5844b6d4ce..d637a34ef7d4 100644 --- a/packages/next/server/config-shared.ts +++ b/packages/next/server/config-shared.ts @@ -107,7 +107,6 @@ export interface ExperimentalConfig { validator?: string skipValidation?: boolean } - reactRoot?: boolean disableOptimizedLoading?: boolean gzipSize?: boolean craCompat?: boolean @@ -511,7 +510,6 @@ export const defaultConfig: NextConfig = { nextScriptWorkers: false, scrollRestoration: false, externalDir: false, - reactRoot: Number(process.env.NEXT_PRIVATE_REACT_ROOT) > 0, disableOptimizedLoading: false, gzipSize: true, swcFileReading: true, diff --git a/packages/next/server/config.ts b/packages/next/server/config.ts index aeabcd36ab33..452dcc7b9ab2 100644 --- a/packages/next/server/config.ts +++ b/packages/next/server/config.ts @@ -74,19 +74,6 @@ function assignDefaults(userConfig: { [key: string]: any }) { delete userConfig.exportTrailingSlash } - if (typeof userConfig.experimental?.reactMode !== 'undefined') { - console.warn( - chalk.yellow.bold('Warning: ') + - `The experimental "reactMode" option has been replaced with "reactRoot". Please update your ${configFileName}.` - ) - if (typeof userConfig.experimental?.reactRoot === 'undefined') { - userConfig.experimental.reactRoot = ['concurrent', 'blocking'].includes( - userConfig.experimental.reactMode - ) - } - delete userConfig.experimental.reactMode - } - const config = Object.keys(userConfig).reduce<{ [key: string]: any }>( (currentConfig, key) => { const value = userConfig[key] @@ -233,13 +220,6 @@ function assignDefaults(userConfig: { [key: string]: any }) { } } - const hasReactRoot = process.env.__NEXT_REACT_ROOT - if (hasReactRoot) { - // users might not have the `experimental` key in their config - result.experimental = result.experimental || {} - result.experimental.reactRoot = true - } - if (result?.images) { const images: ImageConfig = result.images diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index a02c358219c4..7031e4285b8e 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -25,7 +25,6 @@ import type { import fs from 'fs' import { join, relative, resolve, sep } from 'path' import { IncomingMessage, ServerResponse } from 'http' -import React from 'react' import { addRequestMeta, getRequestMeta } from './request-meta' import { @@ -88,8 +87,8 @@ import { } from './body-streams' import { checkIsManualRevalidate } from './api-utils' import { isDynamicRoute } from '../shared/lib/router/utils' +import { shouldUseReactRoot } from './utils' -const shouldUseReactRoot = parseInt(React.version) >= 18 if (shouldUseReactRoot) { ;(process.env as any).__NEXT_REACT_ROOT = 'true' } diff --git a/packages/next/server/next.ts b/packages/next/server/next.ts index 9bfc2ef3927b..a6f3bbc0581b 100644 --- a/packages/next/server/next.ts +++ b/packages/next/server/next.ts @@ -3,7 +3,6 @@ import type { NodeRequestHandler } from './next-server' import type { UrlWithParsedQuery } from 'url' import './node-polyfill-fetch' -import React from 'react' import { default as Server } from './next-server' import * as log from '../build/output/log' import loadConfig from './config' @@ -13,6 +12,7 @@ import { PHASE_DEVELOPMENT_SERVER } from '../shared/lib/constants' import { PHASE_PRODUCTION_SERVER } from '../shared/lib/constants' import { IncomingMessage, ServerResponse } from 'http' import { NextUrlWithParsedQuery } from './request-meta' +import { shouldUseReactRoot } from './utils' let ServerImpl: typeof Server @@ -183,7 +183,6 @@ function createServer(options: NextServerOptions): NextServer { ) } - const shouldUseReactRoot = parseInt(React.version) >= 18 if (shouldUseReactRoot) { ;(process.env as any).__NEXT_REACT_ROOT = 'true' } diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index a58297de60f2..b5684b5a7d0a 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -83,16 +83,15 @@ import stripAnsi from 'next/dist/compiled/strip-ansi' import { urlQueryToSearchParams } from '../shared/lib/router/utils/querystring' import { postProcessHTML } from './post-process' import { htmlEscapeJsonString } from './htmlescape' -import { stripInternalQueries } from './utils' +import { shouldUseReactRoot, stripInternalQueries } from './utils' let tryGetPreviewData: typeof import('./api-utils/node').tryGetPreviewData let warn: typeof import('../build/output/log').warn const DOCTYPE = '' -const ReactDOMServer = - parseInt(React.version) >= 18 - ? require('react-dom/server.browser') - : require('react-dom/server') +const ReactDOMServer = shouldUseReactRoot + ? require('react-dom/server.browser') + : require('react-dom/server') if (process.env.NEXT_RUNTIME !== 'edge') { require('./node-polyfill-web-streams') @@ -244,7 +243,6 @@ export type RenderOptsPartial = { customServer?: boolean crossOrigin?: string images: ImageConfigComplete - reactRoot: boolean largePageDataBytes?: number } diff --git a/packages/next/server/utils.ts b/packages/next/server/utils.ts index 5f78790f3f0f..65b238153b66 100644 --- a/packages/next/server/utils.ts +++ b/packages/next/server/utils.ts @@ -1,4 +1,5 @@ import type { NextParsedUrlQuery } from './request-meta' +import React from 'react' import { BLOCKED_PAGES } from '../shared/lib/constants' export function isBlockedPage(pathname: string): boolean { @@ -42,3 +43,6 @@ export function stripInternalQueries(query: NextParsedUrlQuery) { return query } + +// When react version is >= 18 opt-in using reactRoot +export const shouldUseReactRoot = parseInt(React.version) >= 18 diff --git a/test/e2e/app-dir/app-rendering/next.config.js b/test/e2e/app-dir/app-rendering/next.config.js index 931d58c1b7d7..b6e52ffc6acd 100644 --- a/test/e2e/app-dir/app-rendering/next.config.js +++ b/test/e2e/app-dir/app-rendering/next.config.js @@ -2,7 +2,6 @@ module.exports = { experimental: { appDir: true, runtime: 'nodejs', - reactRoot: true, serverComponents: true, }, } diff --git a/test/e2e/app-dir/app/next.config.js b/test/e2e/app-dir/app/next.config.js index 931d58c1b7d7..b6e52ffc6acd 100644 --- a/test/e2e/app-dir/app/next.config.js +++ b/test/e2e/app-dir/app/next.config.js @@ -2,7 +2,6 @@ module.exports = { experimental: { appDir: true, runtime: 'nodejs', - reactRoot: true, serverComponents: true, }, } diff --git a/test/integration/react-18-invalid-config/index.test.js b/test/integration/react-18-invalid-config/index.test.js index dc2f1e2c930c..f5598e394a17 100644 --- a/test/integration/react-18-invalid-config/index.test.js +++ b/test/integration/react-18-invalid-config/index.test.js @@ -48,7 +48,7 @@ function writeNextConfig(config, reactVersion = 17) { } describe('Invalid react 18 webpack config', () => { - it('should enable `experimental.reactRoot` when `experimental.runtime` is enabled', async () => { + it('should install react 18 when `experimental.runtime` is enabled', async () => { writeNextConfig({ runtime: 'edge', }) @@ -56,7 +56,7 @@ describe('Invalid react 18 webpack config', () => { nextConfig.restore() expect(stderr).toContain( - '`experimental.runtime` requires `experimental.reactRoot` to be enabled along with React 18.' + '`experimental.runtime` requires React 18 to be installed.' ) }) }) @@ -68,20 +68,13 @@ describe('React 17 with React 18 config', () => { join(reactDomPackagePah, 'package.json'), JSON.stringify({ name: 'react-dom', version: '17.0.0' }) ) - writeNextConfig({ reactRoot: true }) + writeNextConfig({}) }) afterAll(async () => { await fs.remove(reactDomPackagePah) nextConfig.restore() }) - it('should warn user when not using react 18 and `experimental.reactRoot` is enabled', async () => { - const { stderr } = await nextBuild(appDir, [], { stderr: true, nodeArgs }) - expect(stderr).toContain( - 'You have to use React 18 to use `experimental.reactRoot`.' - ) - }) - it('suspense is not allowed in blocking rendering mode', async () => { const { stderr, code } = await nextBuild(appDir, [], { stderr: true, diff --git a/test/integration/react-18-invalid-config/next.config.js b/test/integration/react-18-invalid-config/next.config.js index 07523fe9fd1e..4ba52ba2c8df 100644 --- a/test/integration/react-18-invalid-config/next.config.js +++ b/test/integration/react-18-invalid-config/next.config.js @@ -1 +1 @@ -module.exports = { experimental: { reactRoot: true } } +module.exports = {} diff --git a/test/integration/react-18/app/next.config.js b/test/integration/react-18/app/next.config.js index a44130da4430..89120f9a581a 100644 --- a/test/integration/react-18/app/next.config.js +++ b/test/integration/react-18/app/next.config.js @@ -1,7 +1,6 @@ module.exports = { // reactStrictMode: true, experimental: { - reactRoot: true, // runtime: 'edge', }, images: { diff --git a/test/integration/react-streaming-and-server-components/unsupported-native-module/next.config.js b/test/integration/react-streaming-and-server-components/unsupported-native-module/next.config.js index 190994aa291b..060d50f525d6 100644 --- a/test/integration/react-streaming-and-server-components/unsupported-native-module/next.config.js +++ b/test/integration/react-streaming-and-server-components/unsupported-native-module/next.config.js @@ -1,6 +1,5 @@ module.exports = { experimental: { - reactRoot: true, serverComponents: true, }, } diff --git a/test/unit/parse-page-runtime.test.ts b/test/unit/parse-page-runtime.test.ts index 50437004802b..f377657f55b3 100644 --- a/test/unit/parse-page-runtime.test.ts +++ b/test/unit/parse-page-runtime.test.ts @@ -5,7 +5,7 @@ const fixtureDir = join(__dirname, 'fixtures') function createNextConfig(runtime?: 'edge' | 'nodejs') { return { - experimental: { reactRoot: true, runtime }, + experimental: { runtime }, } } From 7c20918bc787d24403fab170e7840f946886dcef Mon Sep 17 00:00:00 2001 From: Leah Date: Thu, 23 Jun 2022 18:55:05 +0200 Subject: [PATCH 132/149] feat: enable configuration of `styled-components` transform and enable `css` prop support (#37861) This allows configuring / overriding the default options of the `styled-components` swc transform and allows using the `css` prop support, which was already implemented, but not available. Edit: made the CSS prop transform run before the display name, so it gets picked up by that and receives the (deterministic) name. Relates to #30802 --- docs/advanced-features/compiler.md | 27 +++- package.json | 2 +- packages/next-swc/crates/core/src/lib.rs | 23 +-- .../crates/styled_components/src/lib.rs | 19 ++- .../styled_components/src/utils/analyzer.rs | 37 ++--- .../crates/styled_components/src/utils/mod.rs | 23 +-- .../src/visitors/display_name_and_id.rs | 38 +++-- .../visitors/transpile_css_prop/transpile.rs | 29 +++- .../output.js | 141 ++++++++++++++---- packages/next/build/swc/options.js | 20 ++- packages/next/server/config-shared.ts | 19 ++- packages/react-refresh-utils/tsconfig.json | 2 +- .../basic/styled-components.test.ts | 13 ++ .../basic/styled-components/next.config.js | 4 +- .../basic/styled-components/pages/index.js | 7 +- 15 files changed, 287 insertions(+), 117 deletions(-) diff --git a/docs/advanced-features/compiler.md b/docs/advanced-features/compiler.md index 4def26d34351..43022a63fd50 100644 --- a/docs/advanced-features/compiler.md +++ b/docs/advanced-features/compiler.md @@ -40,12 +40,31 @@ We're working to port `babel-plugin-styled-components` to the Next.js Compiler. First, update to the latest version of Next.js: `npm install next@latest`. Then, update your `next.config.js` file: ```js -// next.config.js - module.exports = { compiler: { - // ssr and displayName are configured by default - styledComponents: true, + // see https://styled-components.com/docs/tooling#babel-plugin for more info on the options. + styledComponents: boolean | { + // Enabled by default in development, disabled in production to reduce file size, + // setting this will override the default for all environments. + displayName?: boolean, + // Enabled by default. + ssr?: boolean, + // Enabled by default. + fileName?: boolean, + // Empty by default. + topLevelImportPaths?: string[], + // Defaults to ["index"]. + meaninglessFileNames?: string[], + // Disabled by default. + cssProp?: boolean, + // Empty by default. + namespace?: string, + // Not supported yet. + minify?: boolean, + // Not supported yet. + transpileTemplateLiterals?: boolean, + // Not supported yet. + pure?: boolean, }, } ``` diff --git a/package.json b/package.json index 76467b5ffa1c..ff2e619592a7 100644 --- a/package.json +++ b/package.json @@ -209,5 +209,5 @@ "node": ">=12.22.0", "pnpm": ">= 7.2.1" }, - "packageManager": "pnpm@7.2.1" + "packageManager": "pnpm@7.3.0" } diff --git a/packages/next-swc/crates/core/src/lib.rs b/packages/next-swc/crates/core/src/lib.rs index ecebc808ff4d..60fcb7ce18af 100644 --- a/packages/next-swc/crates/core/src/lib.rs +++ b/packages/next-swc/crates/core/src/lib.rs @@ -134,23 +134,12 @@ pub fn custom_before_pass<'a, C: Comments + 'a>( styled_jsx::styled_jsx(cm.clone(), file.name.clone()), hook_optimizer::hook_optimizer(), match &opts.styled_components { - Some(config) => { - let config = Rc::new(config.clone()); - let state: Rc> = Default::default(); - - Either::Left(chain!( - styled_components::analyzer(config.clone(), state.clone()), - styled_components::display_name_and_id( - file.name.clone(), - file.src_hash, - config, - state - ) - )) - } - None => { - Either::Right(noop()) - } + Some(config) => Either::Left(styled_components::styled_components( + file.name.clone(), + file.src_hash, + config.clone(), + )), + None => Either::Right(noop()), }, Optional::new( next_ssg::next_ssg(eliminated_packages), diff --git a/packages/next-swc/crates/styled_components/src/lib.rs b/packages/next-swc/crates/styled_components/src/lib.rs index b463ab9f6e33..14c0890351bc 100644 --- a/packages/next-swc/crates/styled_components/src/lib.rs +++ b/packages/next-swc/crates/styled_components/src/lib.rs @@ -9,7 +9,7 @@ pub use crate::{ use serde::Deserialize; use std::{cell::RefCell, rc::Rc}; use swc_atoms::JsWord; -use swc_common::{chain, FileName}; +use swc_common::{chain, pass::Optional, FileName}; use swc_ecmascript::visit::{Fold, VisitMut}; mod css; @@ -28,6 +28,9 @@ pub struct Config { #[serde(default = "true_by_default")] pub file_name: bool, + #[serde(default = "default_index_file_name")] + pub meaningless_file_names: Vec, + #[serde(default)] pub namespace: String, @@ -40,6 +43,9 @@ pub struct Config { #[serde(default)] pub minify: bool, + #[serde(default)] + pub pure: bool, + #[serde(default)] pub css_prop: bool, } @@ -48,6 +54,10 @@ fn true_by_default() -> bool { true } +fn default_index_file_name() -> Vec { + vec!["index".to_string()] +} + impl Config { pub(crate) fn use_namespace(&self) -> String { if self.namespace.is_empty() { @@ -70,7 +80,10 @@ pub fn styled_components( chain!( analyzer(config.clone(), state.clone()), - display_name_and_id(file_name, src_file_hash, config, state), - transpile_css_prop() + Optional { + enabled: config.css_prop, + visitor: transpile_css_prop(state.clone()) + }, + display_name_and_id(file_name, src_file_hash, config.clone(), state) ) } diff --git a/packages/next-swc/crates/styled_components/src/utils/analyzer.rs b/packages/next-swc/crates/styled_components/src/utils/analyzer.rs index 5d59d92123fb..b6c4bca8d9e2 100644 --- a/packages/next-swc/crates/styled_components/src/utils/analyzer.rs +++ b/packages/next-swc/crates/styled_components/src/utils/analyzer.rs @@ -61,27 +61,28 @@ impl Visit for Analyzer<'_> { fn visit_var_declarator(&mut self, v: &VarDeclarator) { v.visit_children_with(self); - if let Pat::Ident(name) = &v.name { - if let Some(Expr::Call(CallExpr { + if let ( + Pat::Ident(name), + Some(Expr::Call(CallExpr { callee: Callee::Expr(callee), args, .. - })) = v.init.as_deref() - { - if let Expr::Ident(callee) = &**callee { - if &*callee.sym == "require" && args.len() == 1 && args[0].spread.is_none() { - if let Expr::Lit(Lit::Str(v)) = &*args[0].expr { - let is_styled = if self.config.top_level_import_paths.is_empty() { - &*v.value == "styled-components" - || v.value.starts_with("styled-components/") - } else { - self.config.top_level_import_paths.contains(&v.value) - }; - - if is_styled { - self.state.styled_required = Some(name.id.to_id()); - self.state.unresolved_ctxt = Some(callee.span.ctxt); - } + })), + ) = (&v.name, v.init.as_deref()) + { + if let Expr::Ident(callee) = &**callee { + if &*callee.sym == "require" && args.len() == 1 && args[0].spread.is_none() { + if let Expr::Lit(Lit::Str(v)) = &*args[0].expr { + let is_styled = if self.config.top_level_import_paths.is_empty() { + &*v.value == "styled-components" + || v.value.starts_with("styled-components/") + } else { + self.config.top_level_import_paths.contains(&v.value) + }; + + if is_styled { + self.state.styled_required = Some(name.id.to_id()); + self.state.unresolved_ctxt = Some(callee.span.ctxt); } } } diff --git a/packages/next-swc/crates/styled_components/src/utils/mod.rs b/packages/next-swc/crates/styled_components/src/utils/mod.rs index de303c989d18..754b4cc33449 100644 --- a/packages/next-swc/crates/styled_components/src/utils/mod.rs +++ b/packages/next-swc/crates/styled_components/src/utils/mod.rs @@ -1,6 +1,4 @@ pub use self::analyzer::{analyze, analyzer}; -use once_cell::sync::Lazy; -use regex::{Captures, Regex}; use std::{borrow::Cow, cell::RefCell}; use swc_atoms::js_word; use swc_common::{collections::AHashMap, SyntaxContext}; @@ -210,7 +208,11 @@ impl State { false } - fn import_local_name(&self, name: &str, cache_identifier: Option<&Ident>) -> Option { + pub(crate) fn import_local_name( + &self, + name: &str, + cache_identifier: Option<&Ident>, + ) -> Option { if name == "default" { if let Some(cached) = self.imported_local_name.clone() { return Some(cached); @@ -251,6 +253,10 @@ impl State { name } + pub(crate) fn set_import_name(&mut self, id: Id) { + self.imported_local_name = Some(id); + } + fn is_helper(&self, e: &Expr) -> bool { self.is_create_global_style_helper(e) || self.is_css_helper(e) @@ -304,10 +310,9 @@ impl State { } pub fn prefix_leading_digit(s: &str) -> Cow { - static REGEX: Lazy = Lazy::new(|| Regex::new(r"^(\d)").unwrap()); - - REGEX.replace(s, |s: &Captures| { - // - format!("sc-{}", s.get(0).unwrap().as_str()) - }) + if s.chars().next().map(|c| c.is_digit(10)).unwrap_or(false) { + Cow::Owned(format!("sc-{}", s)) + } else { + Cow::Borrowed(s) + } } diff --git a/packages/next-swc/crates/styled_components/src/visitors/display_name_and_id.rs b/packages/next-swc/crates/styled_components/src/visitors/display_name_and_id.rs index c4eed07e1762..0b761ec51f1b 100644 --- a/packages/next-swc/crates/styled_components/src/visitors/display_name_and_id.rs +++ b/packages/next-swc/crates/styled_components/src/visitors/display_name_and_id.rs @@ -49,16 +49,21 @@ struct DisplayNameAndId { impl DisplayNameAndId { fn get_block_name(&self, p: &Path) -> String { - let file_stem = p.file_stem(); - if let Some(file_stem) = file_stem { - if file_stem == "index" { - } else { - return file_stem.to_string_lossy().to_string(); + match p.file_stem().map(|s| s.to_string_lossy()) { + Some(file_stem) + if !self + .config + .meaningless_file_names + .iter() + .any(|meaningless| file_stem.as_ref() == meaningless) => + { + file_stem.into() } - } else { + _ => self.get_block_name( + p.parent() + .expect("path only contains meaningless filenames (e.g. /index/index)?"), + ), } - - self.get_block_name(p.parent().expect("/index/index/index?")) } fn get_display_name(&mut self, _: &Expr) -> JsWord { @@ -338,20 +343,13 @@ impl VisitMut for DisplayNameAndId { None }; - let display_name = if self.config.display_name { - Some(self.get_display_name(expr)) - } else { - None - }; - + let display_name = self + .config + .display_name + .then(|| self.get_display_name(expr)); trace!("display_name: {:?}", display_name); - let component_id = if self.config.ssr { - Some(self.get_component_id().into()) - } else { - None - }; - + let component_id = self.config.ssr.then(|| self.get_component_id().into()); trace!("component_id: {:?}", display_name); self.add_config( diff --git a/packages/next-swc/crates/styled_components/src/visitors/transpile_css_prop/transpile.rs b/packages/next-swc/crates/styled_components/src/visitors/transpile_css_prop/transpile.rs index 1a9f96b302d9..07278c30d7fe 100644 --- a/packages/next-swc/crates/styled_components/src/visitors/transpile_css_prop/transpile.rs +++ b/packages/next-swc/crates/styled_components/src/visitors/transpile_css_prop/transpile.rs @@ -1,7 +1,10 @@ //! Port of https://github.com/styled-components/babel-plugin-styled-components/blob/a20c3033508677695953e7a434de4746168eeb4e/src/visitors/transpileCssProp.js +use std::cell::RefCell; +use std::rc::Rc; use std::{borrow::Cow, collections::HashMap}; +use crate::State; use inflector::Inflector; use once_cell::sync::Lazy; use regex::Regex; @@ -24,12 +27,17 @@ use super::top_level_binding_collector::collect_top_level_decls; static TAG_NAME_REGEX: Lazy = Lazy::new(|| Regex::new("^[a-z][a-z\\d]*(\\-[a-z][a-z\\d]*)?$").unwrap()); -pub fn transpile_css_prop() -> impl Fold + VisitMut { - as_folder(TranspileCssProp::default()) +pub fn transpile_css_prop(state: Rc>) -> impl Fold + VisitMut { + as_folder(TranspileCssProp { + state, + ..Default::default() + }) } #[derive(Default)] struct TranspileCssProp { + state: Rc>, + import_name: Option, injected_nodes: Vec, interleaved_injections: AHashMap>, @@ -69,10 +77,18 @@ impl VisitMut for TranspileCssProp { continue; } - let import_name = self - .import_name - .get_or_insert_with(|| private_ident!("_styled")) - .clone(); + let import_name = if let Some(ident) = self + .state + .borrow() + .import_local_name("default", None) + .map(Ident::from) + { + ident + } else { + self.import_name + .get_or_insert_with(|| private_ident!("_styled")) + .clone() + }; let name = get_name_ident(&elem.opening.name); let id_sym = name.sym.to_class_case(); @@ -349,6 +365,7 @@ impl VisitMut for TranspileCssProp { self.top_level_decls = None; if let Some(import_name) = self.import_name.take() { + self.state.borrow_mut().set_import_name(import_name.to_id()); let specifier = ImportSpecifier::Default(ImportDefaultSpecifier { span: DUMMY_SP, local: import_name, diff --git a/packages/next-swc/crates/styled_components/tests/fixtures/transpile-css-prop-all-options-on/output.js b/packages/next-swc/crates/styled_components/tests/fixtures/transpile-css-prop-all-options-on/output.js index e0504edff2e3..ce524e2f2388 100644 --- a/packages/next-swc/crates/styled_components/tests/fixtures/transpile-css-prop-all-options-on/output.js +++ b/packages/next-swc/crates/styled_components/tests/fixtures/transpile-css-prop-all-options-on/output.js @@ -1,4 +1,3 @@ -import _styled from "styled-components"; import styled from 'styled-components'; import SomeComponent from '../SomeComponentPath'; const { SomeOtherComponent } = require('../SomeOtherComponentPath'); @@ -90,25 +89,40 @@ const Thing3 = styled.div.withConfig({ })` color: blue; `; -var _StyledThing6 = _styled(Thing3)((p)=>({ +var _StyledThing6 = styled(Thing3).withConfig({ + displayName: "code___StyledThing6", + componentId: "sc-867225be-3" +})((p)=>({ [p.$_css19]: { color: 'red' } })); -var _StyledThing5 = _styled(Thing3)((p)=>({ +var _StyledThing5 = styled(Thing3).withConfig({ + displayName: "code___StyledThing5", + componentId: "sc-867225be-4" +})((p)=>({ [p.$_css18]: { color: 'red' } })); -var _StyledThing4 = _styled(Thing3)((p)=>({ +var _StyledThing4 = styled(Thing3).withConfig({ + displayName: "code___StyledThing4", + componentId: "sc-867225be-5" +})((p)=>({ [p.$_css17]: { color: 'red' } })); -var _StyledThing3 = _styled(Thing3)((p)=>({ +var _StyledThing3 = styled(Thing3).withConfig({ + displayName: "code___StyledThing3", + componentId: "sc-867225be-6" +})((p)=>({ color: p.$_css16 })); -var _StyledThing = _styled(Thing3)`color: red;`; +var _StyledThing = styled(Thing3).withConfig({ + displayName: "code___StyledThing", + componentId: "sc-867225be-7" +})`color: red;`; const EarlyUsageComponent2 = (p)=><_StyledThing2 />; function Thing4(props1) { return
; @@ -165,42 +179,102 @@ const ObjectPropWithSpread = ()=>{ bottom: '-100px' } : {}}/>; }; -var _StyledSomeComponent = _styled(SomeComponent)`color: red;`; -var _StyledSomeOtherComponent = _styled(SomeOtherComponent)`color: red;`; -var _StyledThing2 = _styled(Thing4)`color: red;`; -var _StyledP = _styled("p")`flex: 1;`; -var _StyledP2 = _styled("p")` +var _StyledSomeComponent = styled(SomeComponent).withConfig({ + displayName: "code___StyledSomeComponent", + componentId: "sc-867225be-8" +})`color: red;`; +var _StyledSomeOtherComponent = styled(SomeOtherComponent).withConfig({ + displayName: "code___StyledSomeOtherComponent", + componentId: "sc-867225be-9" +})`color: red;`; +var _StyledThing2 = styled(Thing4).withConfig({ + displayName: "code___StyledThing2", + componentId: "sc-867225be-10" +})`color: red;`; +var _StyledP = styled("p").withConfig({ + displayName: "code___StyledP", + componentId: "sc-867225be-11" +})`flex: 1;`; +var _StyledP2 = styled("p").withConfig({ + displayName: "code___StyledP2", + componentId: "sc-867225be-12" +})` flex: 1; `; -var _StyledP3 = _styled("p")({ +var _StyledP3 = styled("p").withConfig({ + displayName: "code___StyledP3", + componentId: "sc-867225be-13" +})({ color: 'blue' }); -var _StyledP4 = _styled("p")`flex: 1;`; -var _StyledP5 = _styled("p")` +var _StyledP4 = styled("p").withConfig({ + displayName: "code___StyledP4", + componentId: "sc-867225be-14" +})`flex: 1;`; +var _StyledP5 = styled("p").withConfig({ + displayName: "code___StyledP5", + componentId: "sc-867225be-15" +})` color: blue; `; -var _StyledParagraph = _styled(Paragraph)`flex: 1`; -var _StyledP6 = _styled("p")`${(p)=>p.$_css}`; -var _StyledP7 = _styled("p")` +var _StyledParagraph = styled(Paragraph).withConfig({ + displayName: "code___StyledParagraph", + componentId: "sc-867225be-16" +})`flex: 1`; +var _StyledP6 = styled("p").withConfig({ + displayName: "code___StyledP6", + componentId: "sc-867225be-17" +})`${(p)=>p.$_css}`; +var _StyledP7 = styled("p").withConfig({ + displayName: "code___StyledP7", + componentId: "sc-867225be-18" +})` background: ${(p)=>p.$_css2}; `; -var _StyledP8 = _styled("p")` +var _StyledP8 = styled("p").withConfig({ + displayName: "code___StyledP8", + componentId: "sc-867225be-19" +})` color: ${(props1)=>props1.theme.a}; `; -var _StyledP9 = _styled("p")` +var _StyledP9 = styled("p").withConfig({ + displayName: "code___StyledP9", + componentId: "sc-867225be-20" +})` border-radius: ${radius}px; `; -var _StyledP10 = _styled("p")` +var _StyledP10 = styled("p").withConfig({ + displayName: "code___StyledP10", + componentId: "sc-867225be-21" +})` color: ${(p)=>p.$_css3}; `; -var _StyledP11 = _styled("p")` +var _StyledP11 = styled("p").withConfig({ + displayName: "code___StyledP11", + componentId: "sc-867225be-22" +})` color: ${(props1)=>props1.theme.color}; `; -var _StyledButtonGhost = _styled(Button.Ghost)`flex: 1`; -var _StyledButtonGhostNew = _styled(Button.Ghost.New)`flex: 1`; -var _StyledButtonGhost2 = _styled(button.ghost)`flex: 1`; -var _StyledButtonGhost3 = _styled("button-ghost")`flex: 1`; -var _StyledP12 = _styled("p")((p)=>({ +var _StyledButtonGhost = styled(Button.Ghost).withConfig({ + displayName: "code___StyledButtonGhost", + componentId: "sc-867225be-23" +})`flex: 1`; +var _StyledButtonGhostNew = styled(Button.Ghost.New).withConfig({ + displayName: "code___StyledButtonGhostNew", + componentId: "sc-867225be-24" +})`flex: 1`; +var _StyledButtonGhost2 = styled(button.ghost).withConfig({ + displayName: "code___StyledButtonGhost2", + componentId: "sc-867225be-25" +})`flex: 1`; +var _StyledButtonGhost3 = styled("button-ghost").withConfig({ + displayName: "code___StyledButtonGhost3", + componentId: "sc-867225be-26" +})`flex: 1`; +var _StyledP12 = styled("p").withConfig({ + displayName: "code___StyledP12", + componentId: "sc-867225be-27" +})((p)=>({ background: p.$_css4, color: p.$_css5, textAlign: 'left', @@ -211,7 +285,10 @@ var _StyledP12 = _styled("p")((p)=>({ content: p.$_css7 } })); -var _StyledP13 = _styled("p")((p)=>({ +var _StyledP13 = styled("p").withConfig({ + displayName: "code___StyledP13", + componentId: "sc-867225be-28" +})((p)=>({ ...{ '::before': { content: p.$_css8 @@ -237,10 +314,16 @@ var _StyledP13 = _styled("p")((p)=>({ content: p.$_css14 } })); -var _StyledP14 = _styled("p")((p)=>({ +var _StyledP14 = styled("p").withConfig({ + displayName: "code___StyledP14", + componentId: "sc-867225be-29" +})((p)=>({ color: p.$_css15 })); -var _StyledDiv = _styled("div")((p)=>({ +var _StyledDiv = styled("div").withConfig({ + displayName: "code___StyledDiv", + componentId: "sc-867225be-30" +})((p)=>({ ...p.$_css20, ...p.$_css21 })); diff --git a/packages/next/build/swc/options.js b/packages/next/build/swc/options.js index f6895bcaddec..e6e9ec9bccb7 100644 --- a/packages/next/build/swc/options.js +++ b/packages/next/build/swc/options.js @@ -17,7 +17,7 @@ export function getParserOptions({ filename, jsConfig, ...rest }) { dynamicImport: true, decorators: enableDecorators, // Exclude regular TypeScript files from React transformation to prevent e.g. generic parameters and angle-bracket type assertion from being interpreted as JSX tags. - [isTypeScript ? 'tsx' : 'jsx']: isTSFile ? false : true, + [isTypeScript ? 'tsx' : 'jsx']: !isTSFile, importAssertions: true, } } @@ -104,11 +104,7 @@ function getBaseSWCOptions({ }, }, sourceMaps: jest ? 'inline' : undefined, - styledComponents: nextConfig?.compiler?.styledComponents - ? { - displayName: Boolean(development), - } - : null, + styledComponents: getStyledComponentsOptions(nextConfig, development), removeConsole: nextConfig?.compiler?.removeConsole, // disable "reactRemoveProperties" when "jest" is true // otherwise the setting from next.config.js will be used @@ -121,6 +117,18 @@ function getBaseSWCOptions({ } } +function getStyledComponentsOptions(nextConfig, development) { + let styledComponentsOptions = nextConfig?.compiler?.styledComponents + if (!styledComponentsOptions) { + return null + } + + return { + ...styledComponentsOptions, + displayName: styledComponentsOptions.displayName ?? Boolean(development), + } +} + function getEmotionOptions(nextConfig, development) { if (!nextConfig?.compiler?.emotion) { return null diff --git a/packages/next/server/config-shared.ts b/packages/next/server/config-shared.ts index d637a34ef7d4..c0c95b1374a7 100644 --- a/packages/next/server/config-shared.ts +++ b/packages/next/server/config-shared.ts @@ -421,7 +421,24 @@ export interface NextConfig extends Record { | { exclude?: string[] } - styledComponents?: boolean + styledComponents?: + | boolean + | { + /** + * Enabled by default in development, disabled in production to reduce file size, + * setting this will override the default for all environments. + */ + displayName?: boolean + topLevelImportPaths?: string[] + ssr?: boolean + fileName?: boolean + meaninglessFileNames?: string[] + minify?: boolean + transpileTemplateLiterals?: boolean + namespace?: string + pure?: boolean + cssProp?: boolean + } emotion?: | boolean | { diff --git a/packages/react-refresh-utils/tsconfig.json b/packages/react-refresh-utils/tsconfig.json index 4798cd7ae317..bd580ec9271e 100644 --- a/packages/react-refresh-utils/tsconfig.json +++ b/packages/react-refresh-utils/tsconfig.json @@ -13,5 +13,5 @@ } }, "include": ["**/*.ts"], - "exclude": ["node_modules"] + "exclude": ["node_modules", "dist"] } diff --git a/test/development/basic/styled-components.test.ts b/test/development/basic/styled-components.test.ts index 458dd9508694..69adfd195b85 100644 --- a/test/development/basic/styled-components.test.ts +++ b/test/development/basic/styled-components.test.ts @@ -66,6 +66,19 @@ describe('styled-components SWC transform', () => { `window.getComputedStyle(document.querySelector('#btn')).color` ) ).toBe('rgb(255, 255, 255)') + expect( + await browser.eval( + `window.getComputedStyle(document.querySelector('#wrap-div')).color` + ) + ).toBe('rgb(0, 0, 0)') + }) + + it('should enable the display name transform by default', async () => { + // make sure the index chunk gets generated + await webdriver(next.appPort, '/') + + const chunk = await next.readFile('.next/static/chunks/pages/index.js') + expect(chunk).toContain('displayName: \\"pages__Button\\"') }) it('should contain styles in initial HTML', async () => { diff --git a/test/development/basic/styled-components/next.config.js b/test/development/basic/styled-components/next.config.js index 91f693fda525..1b9e5702bf86 100644 --- a/test/development/basic/styled-components/next.config.js +++ b/test/development/basic/styled-components/next.config.js @@ -1,5 +1,7 @@ module.exports = { compiler: { - styledComponents: true, + styledComponents: { + cssProp: true, + }, }, } diff --git a/test/development/basic/styled-components/pages/index.js b/test/development/basic/styled-components/pages/index.js index 8c833028979d..a40708a54546 100644 --- a/test/development/basic/styled-components/pages/index.js +++ b/test/development/basic/styled-components/pages/index.js @@ -23,7 +23,12 @@ const Button = styled.a` export default function Home() { console.log('__render__') return ( -
+
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/base-path/public/exif-rotation.jpg b/test/integration/image-future/base-path/public/exif-rotation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5470a458f09336557e017e6c555c966af798a32d GIT binary patch literal 9767 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 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/foo/test-rect.jpg b/test/integration/image-future/base-path/public/foo/test-rect.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68d3a8415f5e640fa5dc79e09d2f9fd455067a4b GIT binary patch literal 6089 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 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/test.avif b/test/integration/image-future/base-path/public/test.avif new file mode 100644 index 0000000000000000000000000000000000000000..e2c8170a6833ebff1ae4e11b9abff1bee6f4bdeb GIT binary patch literal 1043 zcmZQzU{FXasVqn=%S>Yc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|HGYPp_`;RN zQI{$oYx^~h{C(Tl1>lMeCPK)4A9urjDmcF}Sym>Oq zuQvx$8Y^FDRZDZOWigVCZeiEkrgxdQRO`S}W#70Swno%#aR?0O_-fq@A z-td)488LdsvuqsOrJH7$mpA;W{kt{rw6ka2>P6SsmbvX-Aywq>sQL4q8{^?~mjnJg z20obKDzi<|bg6crjj7nL&JLcE+fO_VBRQ8@g@t_nB@%R!>CSEYYUf!`7hLns*tTd> zSWy-Gb7sq_oii%;?o^*IcRoF4R$A*kG5^U`OFsSW3(c9ZQt8M zob`Q+N!|6H`07RK4oh-e^;{*{7S<|t-8djNcUhnIfm{C!4jj3$VX>{8g{4pX*>^6T zT(>g5aGCZtO|AQ=c0|p&tk~r!&%xKXR-Whno43-~uSGn0M(wpNqM?_#CeJPGxvD(z z{6Zl!X%nq=i^}`Lg)}a;PG*i{bJ7WFX4p~rhiM^mP+0QgIn%Gt(YT`Pp7ZwbcCmX8 zWVc7J-??N}_n$*M6TdNLr07%x{9L-mp21sQc-6yijyltyR=BP#OPsFth@+or&m-O` ai*%+vXFpb>?I3lmL0LhJC*)VwLI(iE8=mC= literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/test.bmp b/test/integration/image-future/base-path/public/test.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f33feda8616b735b81ededeb14244f820342f24b GIT binary patch literal 80858 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 F{{U@jL16#@ literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/test.gif b/test/integration/image-future/base-path/public/test.gif new file mode 100644 index 0000000000000000000000000000000000000000..6bbbd315e9fe876cbdbd61261aceabd359efb49f GIT binary patch literal 2301 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 SFaH;^1F{2ux&x}M-`O2o>eJW& literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/test.jpg b/test/integration/image-future/base-path/public/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d536c882412ed3df0dc162823ca5146bcc033499 GIT binary patch literal 6765 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 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/test.svg b/test/integration/image-future/base-path/public/test.svg new file mode 100644 index 000000000000..a9b392f1aad5 --- /dev/null +++ b/test/integration/image-future/base-path/public/test.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/test/integration/image-future/base-path/public/test.tiff b/test/integration/image-future/base-path/public/test.tiff new file mode 100644 index 0000000000000000000000000000000000000000..c2cc3e203bb3fdb5d828597623a630e6b0e59bfb GIT binary patch literal 2260 zcmYk8X*|?h9LE2H$(405mTgq;xLX1{585!sB> zlHk2xXGw4(o7xY>&t4og@!=H#quZ z+dP}zUTJm?u+yVVeF|@Py<*q4yz^h&Q};l7eHmfy#9oge`*tsFiF?m+!4CQ*cFI|U zULg+c@5A8*qnEEb!ez3oN?-bhI(B%`Tx$NshdIGZru}Je0>Yg--tWeAz6*?SM#u`M z_AdoTIzRE&&Kp_1N^n7x+Eq=jhef$OSqbl$+l+{IHIU63TKP(daqaY`z1`T0j&(CA zo&L1@JvPp*b7lAY&!>D`V9?VvC2rO(K1(RLD-AEf-p!YClA}AVQkk=dZ%~uFCv6?h z+Y8|`f%K*;Sqbz(EHTi&bi9l3Gf0Z3XpQt9fP9ubPzHe0UsS6S0ia9#+>2~1I>Gxn zzy^REDx}NV_MTpsJPGTOQvf;S000BYBV@+t&XN^a7;KKF*ERH(NP)jT7YBi(ySR>u zD5;2YCmJn4M2Ob%&^soJknEQMIuiHJE%A#A-j#a^?V6JU^eN3s85ZvaM2W*bnz>dh z{33$V&;8ic98lgaRh&^DI^XzQoC9pLfoDG_lYo@6(qUB%vQeOZpw{!0u% zQjhn%zmh<%n>@-F$e)MXB zdPSeP7zSpGVIdAs+39M?mmjTQ6x(eR$6QIlx-{Pr%~0Pe#pEhACp#amEQ69&eTu8S zk6=6nX)~GRc^uhF)$YK$JW9^Fej>Q2V#0*tFAc%OxmyY)(1HL+`32+hKuw9DH^zH) zrA`BN$e%7@Z+Tw0aC+E=x{_T|BV=lpLu0W6Z^Gl~>jxEq??M~sW`hIWvm_^&ryoXz zt!(T+t)!zhccdyxcZ4n=&DW}yamz0iz@{o6K5OJy*{bjqkA-T5 zBV_#obhmV03GUikH-CIM?V~~bkEEz&T6lVPW;-u>j?h4*o)Y2luI^`SvGoDpruumk z{CP?$mG^ljMO%?!L0oDPuFE`)D*5#V8|8PmMZLHtf@%Yi=+$9ZBrk;R-ys=rKjO8b zMM7|(EsYlN93el5sQ1=x1H>*M*5Thel}JzWG-kSk!egzb+U@EuUH#ILTX^Kv;9Y)J zh6_D)bc3G1Hom9)UV?8MrP#HkGl}IMQ%NV}Eq?n1rGoE2YdS=sZ-;}~|>WE+Q-zQXaTM}+f@LsKSe;}cPcV3rY+2!CYFM^koHVq$baNP5oz6JKA z6l{C5|3kfmOZ)-psVmzb+3!k30p%^MA16K3JRNGeNJi($C~VOieLoN3KK?SAdslxP z%Dn$L$qi33j7bdO*b-jOZ~wG`VIJ>dp{jdXonG#A^z!12 zQQT-e?9?7eYJjM2{Ke1&G6lPr%~-l!2S1{CGj_hXj>RnfheAf_yv%^umht)v6u&9H z5|ycwp#C7GenvmSkDa#u2qGm};q7jGxoK=hQoFs0LY|V1fT3SqA0G*T1 zrralYP85D#={z!1+Qcepb6i#+2U$vRw6JGCi%J;{<)y1q)|eg%C#i~S^G@tl@fOfZ1=At zeW6BWB%vZSA>GCoV?iZpm7@0x(Y_?xauT)zL#W02PC8YP!fG)4UG{#^OO+&YJ(e)$ z=!fyEA~n&l`}59zq>yUTRGS^)i>u#cR1ImT)9wJ|j)&fOOcv^~kAisMF?VXoTK)D1 z|KRYX%sMib?hvKsg`do=Cx?wV9Gt!E4=rjSlP4UbP`>_{ibitNwBx}=yg#YFi9Ge% zDJm$yf3l56-kEbcxE>e)?P<;uT6B&|4-UZ4Te7rj)A;xR0K^J_002m1PM|-SEo literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/test.webp b/test/integration/image-future/base-path/public/test.webp new file mode 100644 index 0000000000000000000000000000000000000000..4b306cb0898cc93e83dd6f72566e13cbd1339eaa GIT binary patch literal 1018 zcmWIYbaVT}%)k)t>J$(bV4?5~$lhSgFqctl0^gPIDuB8qHv48H-EEbk|FBuIt(=eGzI!$@2M@ z#TTkpe-pQ_(pI`{*bt+CqK4g>WuD^-8`F(nA0CC+|Bv@@pq)xt!UWH|e=J2I&PYA^ zWlqk)0|9oTHfu`3u4+!vT_4xYrvJXmxxu=z`*eD{~o~@4h9AWfq9;% zqR$+A*q{}?M)}6!)9;$Um~P0+FB3LdlX7i)VN-;n!!5QNkGLvHafX9Y89~=x2}Fh~ z6{=Xw=Xf8owQpHQQhfe*DWBsR$IZ_)v2DNh4;YT~5_h_!EDZl17V~0$^#W^&%R;M9 z1TEjSC+p$CeWvFQFka)8vCV&;F*&+u0)t$j-NbM5|Eshts#iT?RJqI9Y@6$P?sJE; z(L-rLjkkxn89m~?Lr5i{_oxx zSN0*UK=A6}>)z2FvXA5!`;<=WJryi<{b@Bvy@XxL&U~+rMl7KV^LSQ#f56oEGG)cK z=rpw;j*oejQy>@ zO`}}>1>=?-D{WT%kUkpAsF(X!&bNaVHSjask0+H4Wp zPLZ)O`L|h_E7aw-7d((IxEm7R?EL(E9LSfq9oZdPx)1Qg`#-(@lK0TJ8-elG*X7c( z`yam$?FnSP{2}Dw-$B|+seK+ P+udJbdSnVPy+8l}7RKRp literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/public/wide.png b/test/integration/image-future/base-path/public/wide.png new file mode 100644 index 0000000000000000000000000000000000000000..b7bb4dc1497bac8e6f4c339b760dcecbc67de692 GIT binary patch literal 46715 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 Sp zOVd&fKiPEUh{fCxHkoy8=)A-CtH)I3Yjrg%8!S} zSFCh)i?o;Sb1Q7@D&|z^Mi&XET{9A~t=zT1c}nqU8BeD+qhx7!>(*x-iP@<(NoKCf zS&3Cb{KzFh(Mx)8+J&3by}!B7eJ`S( zw*K@OWFw>NKstq?i^$lpqE_#_4=x&d7;X{7<-BkHy8GtJ^=Edal?`rq9i?_4)2c1? zh(M;8dR%HsS7xGy-bRb0k5y z@0m$Oc}{cmlFQPjB_&~oA|6NIiapQF!SAHC?%26ZK2yd-F(xU?4wqFf?px4tB&&Ks zNy&w_;1YR>rr<2$I?rN}Ye~^vM+Q=(*SC$ain8fTO|h5$buA&odc)sHw_wRZ&7xbjahcT?_gg zkColKyl%&A`KQq-Zr_7qQ{24lkC=Jy<$s>~)in8>V^fAkTdLEg0lB|Qc$c)bso~m9 zZbq?It!{Brrh6~!^$zLiD{Ased~4O@5$Dl#x5QQK!gX`ErY@O%>!W<^Gt;oQ<0tHY zEX{xLH}qE_ib-7$4>~IKU6q^K@u%0AW4<)MBBqU~SOd}m2JLABn;VAy%0okjF28bT zRn=46%#oR?y-RIsQ=*`Yt4MNYTQgQ}Oh-<0igb~1>^6rsB~$*6)aFjlI77UoihWa8 zbg{54iCgfYJfro+W42WtP-|;_e7*eh=}A7fH#S#nz3~0*^XEfGu{Oi6QEi;|+^wRs z&V1-ZuJ@3IjY)aC`G&NP)Y&OMPpT3ZSYOQ4d>7yuW?1|sjxm!rzL1DUMo_&AxG|SN;O-8gU}{K)Lt z#s!fNR!n+srrIQ*q}XX?e7@>yc5-LU*K9uzqPAUz)A8Y&v5B@up(Z9h-r#ZtYVEDMFxY+%F{y*+N zbjZK))~fjB47-MAi~AQa!U0K0((2@_zsXZpQK7A&`i~TkbU0O8Ngh zvMh-a)i-j<-~as%lrQ>t%O}t8xC|G6|NSyc$bbJSx&HSrsNDhgi6iSe{$axZd4K{W z`jHDKF5|Yx{&&*;Z({y$V*YQ({NIlGe+3fcLjM=a{(pYP{2m%9DzV^5<>jY}Bk(_U N6|GG%8+M=ie*nVr4@Lk0 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/base-path/test/index.test.js b/test/integration/image-future/base-path/test/index.test.js new file mode 100644 index 000000000000..b394442d1196 --- /dev/null +++ b/test/integration/image-future/base-path/test/index.test.js @@ -0,0 +1,219 @@ +/* eslint-env jest */ + +import { + check, + findPort, + getRedboxHeader, + hasRedbox, + killApp, + launchApp, + nextBuild, + nextStart, + waitFor, +} from 'next-test-utils' +import webdriver from 'next-webdriver' +import { join } from 'path' + +const appDir = join(__dirname, '../') + +let appPort +let app + +async function hasImageMatchingUrl(browser, url) { + const links = await browser.elementsByCss('img') + let foundMatch = false + for (const link of links) { + const src = await link.getAttribute('src') + if (new URL(src, `http://localhost:${appPort}`).toString() === url) { + foundMatch = true + break + } + } + return foundMatch +} + +async function getComputed(browser, id, prop) { + const val = await browser.eval(`document.getElementById('${id}').${prop}`) + if (typeof val === 'number') { + return val + } + if (typeof val === 'string') { + const v = parseInt(val, 10) + if (isNaN(v)) { + return val + } + return v + } + return null +} + +function getRatio(width, height) { + return height / width +} + +function runTests(mode) { + it('should load the images', async () => { + let browser + try { + browser = await webdriver(appPort, '/docs') + + await check(async () => { + const result = await browser.eval( + `document.getElementById('basic-image').naturalWidth` + ) + + if (result === 0) { + throw new Error('Incorrectly loaded image') + } + + return 'result-correct' + }, /result-correct/) + + expect( + await hasImageMatchingUrl( + browser, + `http://localhost:${appPort}/docs/_next/image?url=%2Fdocs%2Ftest.jpg&w=828&q=75` + ) + ).toBe(true) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should update the image on src change', async () => { + let browser + try { + browser = await webdriver(appPort, '/docs/update') + + await check( + () => browser.eval(`document.getElementById("update-image").src`), + /test\.jpg/ + ) + + await browser.eval(`document.getElementById("toggle").click()`) + + await check( + () => browser.eval(`document.getElementById("update-image").src`), + /test\.png/ + ) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should work when using flexbox', async () => { + let browser + try { + browser = await webdriver(appPort, '/docs/flex') + await check(async () => { + const result = await browser.eval( + `document.getElementById('basic-image').width` + ) + if (result === 0) { + throw new Error('Incorrectly loaded image') + } + + return 'result-correct' + }, /result-correct/) + } finally { + if (browser) { + await browser.close() + } + } + }) + + if (mode === 'dev') { + it('should show missing src error', async () => { + const browser = await webdriver(appPort, '/docs/missing-src') + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + 'Image is missing required "src" property. Make sure you pass "src" in props to the `next/image` component. Received: {"width":200}' + ) + }) + + it('should show invalid src error', async () => { + const browser = await webdriver(appPort, '/docs/invalid-src') + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + 'Invalid src prop (https://google.com/test.png) on `next/image`, hostname "google.com" is not configured under images in your `next.config.js`' + ) + }) + + it('should show invalid src error when protocol-relative', async () => { + const browser = await webdriver( + appPort, + '/docs/invalid-src-proto-relative' + ) + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + 'Failed to parse src "//assets.example.com/img.jpg" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)' + ) + }) + } + + it('should correctly ignore prose styles', async () => { + let browser + try { + browser = await webdriver(appPort, '/docs/prose') + + const id = 'prose-image' + + // Wait for image to load: + await check(async () => { + const result = await browser.eval( + `document.getElementById(${JSON.stringify(id)}).naturalWidth` + ) + + if (result < 1) { + throw new Error('Image not ready') + } + + return 'result-correct' + }, /result-correct/) + + await waitFor(1000) + + const computedWidth = await getComputed(browser, id, 'width') + const computedHeight = await getComputed(browser, id, 'height') + expect(getRatio(computedWidth, computedHeight)).toBeCloseTo(1, 1) + } finally { + if (browser) { + await browser.close() + } + } + }) +} + +describe('Image Component basePath Tests', () => { + describe('dev mode', () => { + beforeAll(async () => { + appPort = await findPort() + app = await launchApp(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + runTests('dev') + }) + + describe('server mode', () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + }) + afterAll(async () => { + await killApp(app) + }) + + runTests('server') + }) +}) diff --git a/test/integration/image-future/base-path/test/static.test.js b/test/integration/image-future/base-path/test/static.test.js new file mode 100644 index 000000000000..67a99e6e1366 --- /dev/null +++ b/test/integration/image-future/base-path/test/static.test.js @@ -0,0 +1,104 @@ +import { + findPort, + killApp, + nextBuild, + nextStart, + renderViaHTTP, + File, + waitFor, +} from 'next-test-utils' +import webdriver from 'next-webdriver' +import { join } from 'path' + +const appDir = join(__dirname, '../') +let appPort +let app +let browser +let html + +const indexPage = new File(join(appDir, 'pages/static-img.js')) + +const runTests = () => { + it('Should allow an image with a static src to omit height and width', async () => { + expect(await browser.elementById('basic-static')).toBeTruthy() + expect(await browser.elementById('blur-png')).toBeTruthy() + expect(await browser.elementById('blur-webp')).toBeTruthy() + expect(await browser.elementById('blur-avif')).toBeTruthy() + expect(await browser.elementById('blur-jpg')).toBeTruthy() + expect(await browser.elementById('static-svg')).toBeTruthy() + expect(await browser.elementById('static-gif')).toBeTruthy() + expect(await browser.elementById('static-bmp')).toBeTruthy() + expect(await browser.elementById('static-ico')).toBeTruthy() + expect(await browser.elementById('static-unoptimized')).toBeTruthy() + }) + it('Should use immutable cache-control header for static import', async () => { + await browser.eval( + `document.getElementById("basic-static").scrollIntoView()` + ) + await waitFor(1000) + const url = await browser.eval( + `document.getElementById("basic-static").src` + ) + const res = await fetch(url) + expect(res.headers.get('cache-control')).toBe( + 'public, max-age=315360000, immutable' + ) + }) + it('Should use immutable cache-control header even when unoptimized', async () => { + await browser.eval( + `document.getElementById("static-unoptimized").scrollIntoView()` + ) + await waitFor(1000) + const url = await browser.eval( + `document.getElementById("static-unoptimized").src` + ) + const res = await fetch(url) + expect(res.headers.get('cache-control')).toBe( + 'public, max-age=31536000, immutable' + ) + }) + it('Should automatically provide an image height and width', async () => { + expect(html).toContain('width="400" height="300"') + }) + it('Should allow provided width and height to override intrinsic', async () => { + expect(html).toContain('width="150" height="150"') + }) + it('Should add a blur to a statically imported image in "raw" mode', async () => { + expect(html).toContain( + `style="background-size:cover;background-position:0% 0%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http%3A//www.w3.org/2000/svg' xmlns%3Axlink='http%3A//www.w3.org/1999/xlink' viewBox='0 0 400 300'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='50'%3E%3C/feGaussianBlur%3E%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1 1'%3E%3C/feFuncA%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cimage filter='url(%23b)' x='0' y='0' height='100%25' width='100%25' href='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoKCgoKCgsMDAsPEA4QDxYUExMUFiIYGhgaGCIzICUgICUgMy03LCksNy1RQDg4QFFeT0pPXnFlZXGPiI+7u/sBCgoKCgoKCwwMCw8QDhAPFhQTExQWIhgaGBoYIjMgJSAgJSAzLTcsKSw3LVFAODhAUV5PSk9ecWVlcY+Ij7u7+//CABEIAAYACAMBIgACEQEDEQH/xAAnAAEBAAAAAAAAAAAAAAAAAAAABwEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAAmgP/xAAcEAACAQUBAAAAAAAAAAAAAAASFBMAAQMFERX/2gAIAQEAAT8AZ1HjrKZX55JysIc4Ff/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Af//Z'%3E%3C/image%3E%3C/svg%3E");` + ) + }) +} + +describe('Build Error Tests', () => { + it('should throw build error when import statement is used with missing file', async () => { + await indexPage.replace( + '../public/foo/test-rect.jpg', + '../public/foo/test-rect-broken.jpg' + ) + + const { stderr } = await nextBuild(appDir, undefined, { stderr: true }) + await indexPage.restore() + + expect(stderr).toContain( + "Module not found: Can't resolve '../public/foo/test-rect-broken.jpg" + ) + // should contain the importing module + expect(stderr).toContain('./pages/static-img.js') + // should contain a import trace + expect(stderr).not.toContain('Import trace for requested module') + }) +}) +describe('Future Static Image Component Tests for basePath', () => { + beforeAll(async () => { + await nextBuild(appDir) + appPort = await findPort() + app = await nextStart(appDir, appPort) + html = await renderViaHTTP(appPort, '/docs/static-img') + browser = await webdriver(appPort, '/docs/static-img') + }) + afterAll(() => { + killApp(app) + }) + runTests() +}) diff --git a/test/integration/image-future/default/components/TallImage.js b/test/integration/image-future/default/components/TallImage.js new file mode 100644 index 000000000000..4b9addb90214 --- /dev/null +++ b/test/integration/image-future/default/components/TallImage.js @@ -0,0 +1,20 @@ +import React from 'react' +import Image from 'next/future/image' + +import testTall from './tall.png' + +const Page = () => { + return ( +
+

Static Image

+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/components/tall.png b/test/integration/image-future/default/components/tall.png new file mode 100644 index 0000000000000000000000000000000000000000..a792dda6c172ffb6254d0d82e3a9a8a7cfe4d3e3 GIT binary patch literal 6391 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 + + +
+ + + + ) +} diff --git a/test/integration/image-future/default/pages/blob.js b/test/integration/image-future/default/pages/blob.js new file mode 100644 index 000000000000..00b3cf367cd4 --- /dev/null +++ b/test/integration/image-future/default/pages/blob.js @@ -0,0 +1,26 @@ +import React, { useEffect, useState } from 'react' +import Image from 'next/future/image' + +const Page = () => { + const [src, setSrc] = useState() + + useEffect(() => { + fetch('/test.jpg') + .then((res) => { + return res.blob() + }) + .then((blob) => { + const url = URL.createObjectURL(blob) + setSrc(url) + }) + }, []) + + return ( +
+

Blob URL

+ {src ? : null} +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/blurry-placeholder.js b/test/integration/image-future/default/pages/blurry-placeholder.js new file mode 100644 index 000000000000..ffe30bd04a0f --- /dev/null +++ b/test/integration/image-future/default/pages/blurry-placeholder.js @@ -0,0 +1,31 @@ +import React from 'react' +import Image from 'next/future/image' + +export default function Page() { + return ( +
+

Blurry Placeholder

+ + + +
+ + +
+ ) +} diff --git a/test/integration/image-future/default/pages/drop-srcset.js b/test/integration/image-future/default/pages/drop-srcset.js new file mode 100644 index 000000000000..08506f74e8ab --- /dev/null +++ b/test/integration/image-future/default/pages/drop-srcset.js @@ -0,0 +1,20 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Drop srcSet prop (cannot be manually provided)

+ +

Assign sizes prop

+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/flex.js b/test/integration/image-future/default/pages/flex.js new file mode 100644 index 000000000000..53db2563c0dc --- /dev/null +++ b/test/integration/image-future/default/pages/flex.js @@ -0,0 +1,19 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Hello World

+ +

This is the index page

+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/hidden-parent.js b/test/integration/image-future/default/pages/hidden-parent.js new file mode 100644 index 000000000000..95b460505889 --- /dev/null +++ b/test/integration/image-future/default/pages/hidden-parent.js @@ -0,0 +1,21 @@ +import Image from 'next/future/image' +import React from 'react' + +const Page = () => { + return ( +
+

Hello World

+
+ +
+

This is the hidden parent page

+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/index.js b/test/integration/image-future/default/pages/index.js new file mode 100644 index 000000000000..a46b62be7173 --- /dev/null +++ b/test/integration/image-future/default/pages/index.js @@ -0,0 +1,14 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Home Page

+ +

This is the index page

+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/inside-paragraph.js b/test/integration/image-future/default/pages/inside-paragraph.js new file mode 100644 index 000000000000..3c3033bd8e34 --- /dev/null +++ b/test/integration/image-future/default/pages/inside-paragraph.js @@ -0,0 +1,13 @@ +import React from 'react' +import Image from 'next/future/image' +import img from '../public/test.jpg' + +const Page = () => { + return ( +

+ +

+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/invalid-loader.js b/test/integration/image-future/default/pages/invalid-loader.js new file mode 100644 index 000000000000..9affbe804b4a --- /dev/null +++ b/test/integration/image-future/default/pages/invalid-loader.js @@ -0,0 +1,50 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Warn for this loader that doesnt use width

+ `${src}`} + /> + `${src}/${width}/file.jpg`} + /> + `${src}?w=${width / 2}`} + /> + + `https://example.vercel.sh${src}?width=${width * 2}` + } + /> + `https://example.vercel.sh${src}?size=medium`} + /> +
footer
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/invalid-placeholder-blur-static.js b/test/integration/image-future/default/pages/invalid-placeholder-blur-static.js new file mode 100644 index 000000000000..0221bc7d8ede --- /dev/null +++ b/test/integration/image-future/default/pages/invalid-placeholder-blur-static.js @@ -0,0 +1,17 @@ +import React from 'react' +import Image from 'next/future/image' +import testBMP from '../public/test.bmp' + +const Page = () => { + return ( +
+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/invalid-placeholder-blur.js b/test/integration/image-future/default/pages/invalid-placeholder-blur.js new file mode 100644 index 000000000000..87fe60aeea00 --- /dev/null +++ b/test/integration/image-future/default/pages/invalid-placeholder-blur.js @@ -0,0 +1,18 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/invalid-src-proto-relative.js b/test/integration/image-future/default/pages/invalid-src-proto-relative.js new file mode 100644 index 000000000000..0874a9c209db --- /dev/null +++ b/test/integration/image-future/default/pages/invalid-src-proto-relative.js @@ -0,0 +1,13 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Invalid Protocol Relative Source

+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/invalid-src.js b/test/integration/image-future/default/pages/invalid-src.js new file mode 100644 index 000000000000..36047a94c6bc --- /dev/null +++ b/test/integration/image-future/default/pages/invalid-src.js @@ -0,0 +1,13 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Invalid Source

+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/invalid-width-or-height.js b/test/integration/image-future/default/pages/invalid-width-or-height.js new file mode 100644 index 000000000000..d596af6d5165 --- /dev/null +++ b/test/integration/image-future/default/pages/invalid-width-or-height.js @@ -0,0 +1,18 @@ +import React from 'react' +import Image from 'next/future/image' + +export default function Page() { + return ( +
+

Invalid width or height

+ + +
+ ) +} diff --git a/test/integration/image-future/default/pages/layout-raw-placeholder-blur.js b/test/integration/image-future/default/pages/layout-raw-placeholder-blur.js new file mode 100644 index 000000000000..5ce94676731a --- /dev/null +++ b/test/integration/image-future/default/pages/layout-raw-placeholder-blur.js @@ -0,0 +1,21 @@ +import React from 'react' +import Image from 'next/future/image' + +import testJPG from '../public/test.jpg' +import testPNG from '../public/test.png' + +const Page = () => { + return ( +
+

Layout Raw with Placeholder Blur

+

Scroll down...

+
+ +
+ +
Footer
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/layout-raw.js b/test/integration/image-future/default/pages/layout-raw.js new file mode 100644 index 000000000000..a4b059e20b8a --- /dev/null +++ b/test/integration/image-future/default/pages/layout-raw.js @@ -0,0 +1,54 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Layout Raw

+
+ +
+
+ +
+
+ +
+
+ +
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/loader-svg.js b/test/integration/image-future/default/pages/loader-svg.js new file mode 100644 index 000000000000..bafba5e9cfac --- /dev/null +++ b/test/integration/image-future/default/pages/loader-svg.js @@ -0,0 +1,22 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Should work with SVG

+ `${src}?size=${width}`} + /> +
+ +
footer
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/missing-src.js b/test/integration/image-future/default/pages/missing-src.js new file mode 100644 index 000000000000..3f2186089f21 --- /dev/null +++ b/test/integration/image-future/default/pages/missing-src.js @@ -0,0 +1,12 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/on-error.js b/test/integration/image-future/default/pages/on-error.js new file mode 100644 index 000000000000..a566e457c6ed --- /dev/null +++ b/test/integration/image-future/default/pages/on-error.js @@ -0,0 +1,49 @@ +import { useState } from 'react' +import Image from 'next/future/image' + +const Page = () => { + const [clicked, setClicked] = useState(false) + + return ( +
+

Test onError

+

+ If error occured while loading image, native onError should be called. +

+ + + + + + ) +} + +function ImageWithMessage({ id, ...props }) { + const [msg, setMsg] = useState(`no error occured for img${id}`) + + return ( + <> +
+ { + setMsg(`error occured while loading ${e.target.id}`) + }} + {...props} + /> +
+

{msg}

+
+ + ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/on-load.js b/test/integration/image-future/default/pages/on-load.js new file mode 100644 index 000000000000..b868235bbeb9 --- /dev/null +++ b/test/integration/image-future/default/pages/on-load.js @@ -0,0 +1,93 @@ +import { useState } from 'react' +import Image from 'next/future/image' + +const Page = () => { + // Hoisted state to count each image load callback + const [idToCount, setIdToCount] = useState({}) + const [clicked, setClicked] = useState(false) + + return ( +
+

Test onLoad

+

+ This is the native onLoad which doesn't work as many places as + onLoadingComplete +

+ + + + + + + + + + + + + ) +} + +function ImageWithMessage({ id, idToCount, setIdToCount, ...props }) { + const [msg, setMsg] = useState('[LOADING]') + return ( + <> +
+ { + let count = idToCount[id] || 0 + count++ + idToCount[id] = count + setIdToCount(idToCount) + const msg = `loaded ${count} ${e.target.id} with native onLoad` + setMsg(msg) + console.log(msg) + }} + {...props} + /> +
+

{msg}

+
+ + ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/on-loading-complete.js b/test/integration/image-future/default/pages/on-loading-complete.js new file mode 100644 index 000000000000..858532aff168 --- /dev/null +++ b/test/integration/image-future/default/pages/on-loading-complete.js @@ -0,0 +1,124 @@ +import { useState } from 'react' +import Image from 'next/future/image' + +const Page = () => { + // Hoisted state to count each image load callback + const [idToCount, setIdToCount] = useState({}) + const [clicked, setClicked] = useState(false) + + return ( +
+

On Loading Complete Test

+ + + + + + + + + + + + + + + + + + + + + ) +} + +function ImageWithMessage({ id, idToCount, setIdToCount, ...props }) { + const [msg, setMsg] = useState('[LOADING]') + return ( + <> +
+ { + let count = idToCount[id] || 0 + count++ + idToCount[id] = count + setIdToCount(idToCount) + const msg = `loaded ${count} img${id} with dimensions ${naturalWidth}x${naturalHeight}` + setMsg(msg) + console.log(msg) + }} + {...props} + /> +
+

{msg}

+
+ + ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/priority-missing-warning.js b/test/integration/image-future/default/pages/priority-missing-warning.js new file mode 100644 index 000000000000..0f16973fe538 --- /dev/null +++ b/test/integration/image-future/default/pages/priority-missing-warning.js @@ -0,0 +1,15 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Priority Missing Warning Page

+ + +
Priority Missing Warning Footer
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/priority.js b/test/integration/image-future/default/pages/priority.js new file mode 100644 index 000000000000..e73327d727c3 --- /dev/null +++ b/test/integration/image-future/default/pages/priority.js @@ -0,0 +1,44 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Priority Page

+ + + + + +

This is the priority page

+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/prose.js b/test/integration/image-future/default/pages/prose.js new file mode 100644 index 000000000000..513e3d3e6eb1 --- /dev/null +++ b/test/integration/image-future/default/pages/prose.js @@ -0,0 +1,15 @@ +import Image from 'next/future/image' +import React from 'react' +import * as styles from './prose.module.css' + +const Page = () => { + return ( +
+

Hello World

+ +

This is the rotated page

+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/prose.module.css b/test/integration/image-future/default/pages/prose.module.css new file mode 100644 index 000000000000..0e432d4ffaf3 --- /dev/null +++ b/test/integration/image-future/default/pages/prose.module.css @@ -0,0 +1,5 @@ +/* @tailwindcss/typography does this */ +.prose img { + margin-top: 2em; + margin-bottom: 2em; +} diff --git a/test/integration/image-future/default/pages/rotated.js b/test/integration/image-future/default/pages/rotated.js new file mode 100644 index 000000000000..65c2bb3fe035 --- /dev/null +++ b/test/integration/image-future/default/pages/rotated.js @@ -0,0 +1,19 @@ +import Image from 'next/future/image' +import React from 'react' + +const Page = () => { + return ( +
+

Hello World

+ +

This is the rotated page

+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/sizes.js b/test/integration/image-future/default/pages/sizes.js new file mode 100644 index 000000000000..cc9b509657d6 --- /dev/null +++ b/test/integration/image-future/default/pages/sizes.js @@ -0,0 +1,20 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Assign sizes prop

+ +

Assign sizes prop

+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/small-img-import.js b/test/integration/image-future/default/pages/small-img-import.js new file mode 100644 index 000000000000..fc6fee07a0af --- /dev/null +++ b/test/integration/image-future/default/pages/small-img-import.js @@ -0,0 +1,13 @@ +import React from 'react' +import Image from 'next/future/image' +import Small from '../public/small.jpg' + +const Page = () => { + return ( +
+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/static-img.js b/test/integration/image-future/default/pages/static-img.js new file mode 100644 index 000000000000..6865a263afaa --- /dev/null +++ b/test/integration/image-future/default/pages/static-img.js @@ -0,0 +1,46 @@ +import React from 'react' +import testImg from '../public/foo/test-rect.jpg' +import Image from 'next/future/image' + +import testJPG from '../public/test.jpg' +import testPNG from '../public/test.png' +import testWEBP from '../public/test.webp' +import testAVIF from '../public/test.avif' +import testSVG from '../public/test.svg' +import testGIF from '../public/test.gif' +import testBMP from '../public/test.bmp' +import testICO from '../public/test.ico' + +import TallImage from '../components/TallImage' + +const Page = () => { + return ( +
+

Static Image

+ + + + + + +
+ + + + + + + + +
+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/style-filter.js b/test/integration/image-future/default/pages/style-filter.js new file mode 100644 index 000000000000..508481ea193a --- /dev/null +++ b/test/integration/image-future/default/pages/style-filter.js @@ -0,0 +1,31 @@ +import React from 'react' +import Image from 'next/future/image' +import style from '../style.module.css' +import img from '../public/test.jpg' + +const Page = () => { + return ( +
+

Image Style Filter

+ + + + + +
Footer
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/style-inheritance.js b/test/integration/image-future/default/pages/style-inheritance.js new file mode 100644 index 000000000000..c4868b855125 --- /dev/null +++ b/test/integration/image-future/default/pages/style-inheritance.js @@ -0,0 +1,34 @@ +import React from 'react' +import Image from 'next/future/image' +import style from '../style.module.css' + +const Page = () => { + return ( +
+

Image Style Inheritance

+ + + + + + + + +
Footer
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/style-prop.js b/test/integration/image-future/default/pages/style-prop.js new file mode 100644 index 000000000000..7daa8638fef5 --- /dev/null +++ b/test/integration/image-future/default/pages/style-prop.js @@ -0,0 +1,50 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+

Style prop usage and warnings

+ + + + + +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/update.js b/test/integration/image-future/default/pages/update.js new file mode 100644 index 000000000000..4618cbe3c004 --- /dev/null +++ b/test/integration/image-future/default/pages/update.js @@ -0,0 +1,23 @@ +import React, { useState } from 'react' +import Image from 'next/future/image' + +const Page = () => { + const [toggled, setToggled] = useState(false) + return ( +
+

Update Page

+ +

This is the index page

+ +
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/valid-html-w3c.js b/test/integration/image-future/default/pages/valid-html-w3c.js new file mode 100644 index 000000000000..1cef418bd90c --- /dev/null +++ b/test/integration/image-future/default/pages/valid-html-w3c.js @@ -0,0 +1,20 @@ +import Head from 'next/head' +import Image from 'next/future/image' + +const Page = () => { + return ( +
+ + Title + + + + +
+ basic image +
+
+ ) +} + +export default Page diff --git a/test/integration/image-future/default/pages/warning-once.js b/test/integration/image-future/default/pages/warning-once.js new file mode 100644 index 000000000000..f75ac8fe0fc9 --- /dev/null +++ b/test/integration/image-future/default/pages/warning-once.js @@ -0,0 +1,23 @@ +import React from 'react' +import Image from 'next/future/image' + +const Page = () => { + const [count, setCount] = React.useState(0) + return ( + <> +

Warning should print at most once

+ + +
footer here
+ + ) +} + +export default Page diff --git a/test/integration/image-future/default/public/exif-rotation.jpg b/test/integration/image-future/default/public/exif-rotation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5470a458f09336557e017e6c555c966af798a32d GIT binary patch literal 9767 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 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/foo/test-rect.jpg b/test/integration/image-future/default/public/foo/test-rect.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68d3a8415f5e640fa5dc79e09d2f9fd455067a4b GIT binary patch literal 6089 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 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/small.jpg b/test/integration/image-future/default/public/small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb60a66dfd882a51eead0c6f0f3483f47976b978 GIT binary patch literal 439 zcmex=DK+5#AqGJX27U&9W=2H@CP7AK zLB{__7&L&+1UeB3u(EKVi2x=4-(uilW@KOzU={%KPA}XwPuiP}=6U!n!5vM7~XW?v;M8w_(|_^y^P5Oa1Md&XuNo z6I~e?UpU>du6OIp%C2WK#l&@gP6=b>b6#61z2LS>Rr$8PJJiqgt872D=KhxLQ$ML$ oHT2mmxFMJ^YuUXd8=yl(1X2CKz#ss&oQV-=xjh~Q%n$`P0qJyIZ~y=R literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/test.avif b/test/integration/image-future/default/public/test.avif new file mode 100644 index 0000000000000000000000000000000000000000..e2c8170a6833ebff1ae4e11b9abff1bee6f4bdeb GIT binary patch literal 1043 zcmZQzU{FXasVqn=%S>Yc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|HGYPp_`;RN zQI{$oYx^~h{C(Tl1>lMeCPK)4A9urjDmcF}Sym>Oq zuQvx$8Y^FDRZDZOWigVCZeiEkrgxdQRO`S}W#70Swno%#aR?0O_-fq@A z-td)488LdsvuqsOrJH7$mpA;W{kt{rw6ka2>P6SsmbvX-Aywq>sQL4q8{^?~mjnJg z20obKDzi<|bg6crjj7nL&JLcE+fO_VBRQ8@g@t_nB@%R!>CSEYYUf!`7hLns*tTd> zSWy-Gb7sq_oii%;?o^*IcRoF4R$A*kG5^U`OFsSW3(c9ZQt8M zob`Q+N!|6H`07RK4oh-e^;{*{7S<|t-8djNcUhnIfm{C!4jj3$VX>{8g{4pX*>^6T zT(>g5aGCZtO|AQ=c0|p&tk~r!&%xKXR-Whno43-~uSGn0M(wpNqM?_#CeJPGxvD(z z{6Zl!X%nq=i^}`Lg)}a;PG*i{bJ7WFX4p~rhiM^mP+0QgIn%Gt(YT`Pp7ZwbcCmX8 zWVc7J-??N}_n$*M6TdNLr07%x{9L-mp21sQc-6yijyltyR=BP#OPsFth@+or&m-O` ai*%+vXFpb>?I3lmL0LhJC*)VwLI(iE8=mC= literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/test.bmp b/test/integration/image-future/default/public/test.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f33feda8616b735b81ededeb14244f820342f24b GIT binary patch literal 80858 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 F{{U@jL16#@ literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/test.gif b/test/integration/image-future/default/public/test.gif new file mode 100644 index 0000000000000000000000000000000000000000..6bbbd315e9fe876cbdbd61261aceabd359efb49f GIT binary patch literal 2301 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 SFaH;^1F{2ux&x}M-`O2o>eJW& literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/test.jpg b/test/integration/image-future/default/public/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d536c882412ed3df0dc162823ca5146bcc033499 GIT binary patch literal 6765 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 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/test.svg b/test/integration/image-future/default/public/test.svg new file mode 100644 index 000000000000..a9b392f1aad5 --- /dev/null +++ b/test/integration/image-future/default/public/test.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/test/integration/image-future/default/public/test.tiff b/test/integration/image-future/default/public/test.tiff new file mode 100644 index 0000000000000000000000000000000000000000..c2cc3e203bb3fdb5d828597623a630e6b0e59bfb GIT binary patch literal 2260 zcmYk8X*|?h9LE2H$(405mTgq;xLX1{585!sB> zlHk2xXGw4(o7xY>&t4og@!=H#quZ z+dP}zUTJm?u+yVVeF|@Py<*q4yz^h&Q};l7eHmfy#9oge`*tsFiF?m+!4CQ*cFI|U zULg+c@5A8*qnEEb!ez3oN?-bhI(B%`Tx$NshdIGZru}Je0>Yg--tWeAz6*?SM#u`M z_AdoTIzRE&&Kp_1N^n7x+Eq=jhef$OSqbl$+l+{IHIU63TKP(daqaY`z1`T0j&(CA zo&L1@JvPp*b7lAY&!>D`V9?VvC2rO(K1(RLD-AEf-p!YClA}AVQkk=dZ%~uFCv6?h z+Y8|`f%K*;Sqbz(EHTi&bi9l3Gf0Z3XpQt9fP9ubPzHe0UsS6S0ia9#+>2~1I>Gxn zzy^REDx}NV_MTpsJPGTOQvf;S000BYBV@+t&XN^a7;KKF*ERH(NP)jT7YBi(ySR>u zD5;2YCmJn4M2Ob%&^soJknEQMIuiHJE%A#A-j#a^?V6JU^eN3s85ZvaM2W*bnz>dh z{33$V&;8ic98lgaRh&^DI^XzQoC9pLfoDG_lYo@6(qUB%vQeOZpw{!0u% zQjhn%zmh<%n>@-F$e)MXB zdPSeP7zSpGVIdAs+39M?mmjTQ6x(eR$6QIlx-{Pr%~0Pe#pEhACp#amEQ69&eTu8S zk6=6nX)~GRc^uhF)$YK$JW9^Fej>Q2V#0*tFAc%OxmyY)(1HL+`32+hKuw9DH^zH) zrA`BN$e%7@Z+Tw0aC+E=x{_T|BV=lpLu0W6Z^Gl~>jxEq??M~sW`hIWvm_^&ryoXz zt!(T+t)!zhccdyxcZ4n=&DW}yamz0iz@{o6K5OJy*{bjqkA-T5 zBV_#obhmV03GUikH-CIM?V~~bkEEz&T6lVPW;-u>j?h4*o)Y2luI^`SvGoDpruumk z{CP?$mG^ljMO%?!L0oDPuFE`)D*5#V8|8PmMZLHtf@%Yi=+$9ZBrk;R-ys=rKjO8b zMM7|(EsYlN93el5sQ1=x1H>*M*5Thel}JzWG-kSk!egzb+U@EuUH#ILTX^Kv;9Y)J zh6_D)bc3G1Hom9)UV?8MrP#HkGl}IMQ%NV}Eq?n1rGoE2YdS=sZ-;}~|>WE+Q-zQXaTM}+f@LsKSe;}cPcV3rY+2!CYFM^koHVq$baNP5oz6JKA z6l{C5|3kfmOZ)-psVmzb+3!k30p%^MA16K3JRNGeNJi($C~VOieLoN3KK?SAdslxP z%Dn$L$qi33j7bdO*b-jOZ~wG`VIJ>dp{jdXonG#A^z!12 zQQT-e?9?7eYJjM2{Ke1&G6lPr%~-l!2S1{CGj_hXj>RnfheAf_yv%^umht)v6u&9H z5|ycwp#C7GenvmSkDa#u2qGm};q7jGxoK=hQoFs0LY|V1fT3SqA0G*T1 zrralYP85D#={z!1+Qcepb6i#+2U$vRw6JGCi%J;{<)y1q)|eg%C#i~S^G@tl@fOfZ1=At zeW6BWB%vZSA>GCoV?iZpm7@0x(Y_?xauT)zL#W02PC8YP!fG)4UG{#^OO+&YJ(e)$ z=!fyEA~n&l`}59zq>yUTRGS^)i>u#cR1ImT)9wJ|j)&fOOcv^~kAisMF?VXoTK)D1 z|KRYX%sMib?hvKsg`do=Cx?wV9Gt!E4=rjSlP4UbP`>_{ibitNwBx}=yg#YFi9Ge% zDJm$yf3l56-kEbcxE>e)?P<;uT6B&|4-UZ4Te7rj)A;xR0K^J_002m1PM|-SEo literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/test.webp b/test/integration/image-future/default/public/test.webp new file mode 100644 index 0000000000000000000000000000000000000000..4b306cb0898cc93e83dd6f72566e13cbd1339eaa GIT binary patch literal 1018 zcmWIYbaVT}%)k)t>J$(bV4?5~$lhSgFqctl0^gPIDuB8qHv48H-EEbk|FBuIt(=eGzI!$@2M@ z#TTkpe-pQ_(pI`{*bt+CqK4g>WuD^-8`F(nA0CC+|Bv@@pq)xt!UWH|e=J2I&PYA^ zWlqk)0|9oTHfu`3u4+!vT_4xYrvJXmxxu=z`*eD{~o~@4h9AWfq9;% zqR$+A*q{}?M)}6!)9;$Um~P0+FB3LdlX7i)VN-;n!!5QNkGLvHafX9Y89~=x2}Fh~ z6{=Xw=Xf8owQpHQQhfe*DWBsR$IZ_)v2DNh4;YT~5_h_!EDZl17V~0$^#W^&%R;M9 z1TEjSC+p$CeWvFQFka)8vCV&;F*&+u0)t$j-NbM5|Eshts#iT?RJqI9Y@6$P?sJE; z(L-rLjkkxn89m~?Lr5i{_oxx zSN0*UK=A6}>)z2FvXA5!`;<=WJryi<{b@Bvy@XxL&U~+rMl7KV^LSQ#f56oEGG)cK z=rpw;j*oejQy>@ zO`}}>1>=?-D{WT%kUkpAsF(X!&bNaVHSjask0+H4Wp zPLZ)O`L|h_E7aw-7d((IxEm7R?EL(E9LSfq9oZdPx)1Qg`#-(@lK0TJ8-elG*X7c( z`yam$?FnSP{2}Dw-$B|+seK+ P+udJbdSnVPy+8l}7RKRp literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/public/wide.png b/test/integration/image-future/default/public/wide.png new file mode 100644 index 0000000000000000000000000000000000000000..b7bb4dc1497bac8e6f4c339b760dcecbc67de692 GIT binary patch literal 46715 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 Sp zOVd&fKiPEUh{fCxHkoy8=)A-CtH)I3Yjrg%8!S} zSFCh)i?o;Sb1Q7@D&|z^Mi&XET{9A~t=zT1c}nqU8BeD+qhx7!>(*x-iP@<(NoKCf zS&3Cb{KzFh(Mx)8+J&3by}!B7eJ`S( zw*K@OWFw>NKstq?i^$lpqE_#_4=x&d7;X{7<-BkHy8GtJ^=Edal?`rq9i?_4)2c1? zh(M;8dR%HsS7xGy-bRb0k5y z@0m$Oc}{cmlFQPjB_&~oA|6NIiapQF!SAHC?%26ZK2yd-F(xU?4wqFf?px4tB&&Ks zNy&w_;1YR>rr<2$I?rN}Ye~^vM+Q=(*SC$ain8fTO|h5$buA&odc)sHw_wRZ&7xbjahcT?_gg zkColKyl%&A`KQq-Zr_7qQ{24lkC=Jy<$s>~)in8>V^fAkTdLEg0lB|Qc$c)bso~m9 zZbq?It!{Brrh6~!^$zLiD{Ased~4O@5$Dl#x5QQK!gX`ErY@O%>!W<^Gt;oQ<0tHY zEX{xLH}qE_ib-7$4>~IKU6q^K@u%0AW4<)MBBqU~SOd}m2JLABn;VAy%0okjF28bT zRn=46%#oR?y-RIsQ=*`Yt4MNYTQgQ}Oh-<0igb~1>^6rsB~$*6)aFjlI77UoihWa8 zbg{54iCgfYJfro+W42WtP-|;_e7*eh=}A7fH#S#nz3~0*^XEfGu{Oi6QEi;|+^wRs z&V1-ZuJ@3IjY)aC`G&NP)Y&OMPpT3ZSYOQ4d>7yuW?1|sjxm!rzL1DUMo_&AxG|SN;O-8gU}{K)Lt z#s!fNR!n+srrIQ*q}XX?e7@>yc5-LU*K9uzqPAUz)A8Y&v5B@up(Z9h-r#ZtYVEDMFxY+%F{y*+N zbjZK))~fjB47-MAi~AQa!U0K0((2@_zsXZpQK7A&`i~TkbU0O8Ngh zvMh-a)i-j<-~as%lrQ>t%O}t8xC|G6|NSyc$bbJSx&HSrsNDhgi6iSe{$axZd4K{W z`jHDKF5|Yx{&&*;Z({y$V*YQ({NIlGe+3fcLjM=a{(pYP{2m%9DzV^5<>jY}Bk(_U N6|GG%8+M=ie*nVr4@Lk0 literal 0 HcmV?d00001 diff --git a/test/integration/image-future/default/style.module.css b/test/integration/image-future/default/style.module.css new file mode 100644 index 000000000000..e538759372d0 --- /dev/null +++ b/test/integration/image-future/default/style.module.css @@ -0,0 +1,18 @@ +.displayFlex { + display: flex; +} + +.mainContainer span { + margin: 57px; +} + +.mainContainer img { + border-radius: 139px; +} + +.overrideImg { + filter: opacity(0.5); + background-size: 30%; + background-image: url('data:image/png;base64,iVBORw0KGgo='); + background-position: 1px 2px; +} diff --git a/test/integration/image-future/default/test/index.test.js b/test/integration/image-future/default/test/index.test.js new file mode 100644 index 000000000000..09b77797f309 --- /dev/null +++ b/test/integration/image-future/default/test/index.test.js @@ -0,0 +1,1072 @@ +/* eslint-env jest */ + +import cheerio from 'cheerio' +import validateHTML from 'html-validator' +import { + check, + findPort, + getRedboxHeader, + hasRedbox, + killApp, + launchApp, + nextBuild, + nextStart, + renderViaHTTP, + waitFor, +} from 'next-test-utils' +import webdriver from 'next-webdriver' +import { join } from 'path' +import { existsSync } from 'fs' + +const appDir = join(__dirname, '../') + +let appPort +let app + +async function hasImageMatchingUrl(browser, url) { + const links = await browser.elementsByCss('img') + let foundMatch = false + for (const link of links) { + const src = await link.getAttribute('src') + if (new URL(src, `http://localhost:${appPort}`).toString() === url) { + foundMatch = true + break + } + } + return foundMatch +} + +async function getComputed(browser, id, prop) { + const val = await browser.eval(`document.getElementById('${id}').${prop}`) + if (typeof val === 'number') { + return val + } + if (typeof val === 'string') { + const v = parseInt(val, 10) + if (isNaN(v)) { + return val + } + return v + } + return null +} + +async function getComputedStyle(browser, id, prop) { + return browser.eval( + `window.getComputedStyle(document.getElementById('${id}')).getPropertyValue('${prop}')` + ) +} + +async function getSrc(browser, id) { + const src = await browser.elementById(id).getAttribute('src') + if (src) { + const url = new URL(src, `http://localhost:${appPort}`) + return url.href.slice(url.origin.length) + } +} + +function getRatio(width, height) { + return height / width +} + +function runTests(mode) { + it('should load the images', async () => { + let browser + try { + browser = await webdriver(appPort, '/') + + await check(async () => { + const result = await browser.eval( + `document.getElementById('basic-image').naturalWidth` + ) + + if (result === 0) { + throw new Error('Incorrectly loaded image') + } + + return 'result-correct' + }, /result-correct/) + + expect( + await hasImageMatchingUrl( + browser, + `http://localhost:${appPort}/_next/image?url=%2Ftest.jpg&w=828&q=75` + ) + ).toBe(true) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should preload priority images', async () => { + let browser + try { + browser = await webdriver(appPort, '/priority') + + await check(async () => { + const result = await browser.eval( + `document.getElementById('basic-image').naturalWidth` + ) + + if (result === 0) { + throw new Error('Incorrectly loaded image') + } + + return 'result-correct' + }, /result-correct/) + + const links = await browser.elementsByCss('link[rel=preload][as=image]') + const entries = [] + for (const link of links) { + const imagesrcset = await link.getAttribute('imagesrcset') + const imagesizes = await link.getAttribute('imagesizes') + entries.push({ imagesrcset, imagesizes }) + } + expect(entries).toEqual([ + { + imagesizes: '', + imagesrcset: + '/_next/image?url=%2Ftest.jpg&w=640&q=75 1x, /_next/image?url=%2Ftest.jpg&w=828&q=75 2x', + }, + { + imagesizes: '100vw', + imagesrcset: + '/_next/image?url=%2Fwide.png&w=640&q=75 640w, /_next/image?url=%2Fwide.png&w=750&q=75 750w, /_next/image?url=%2Fwide.png&w=828&q=75 828w, /_next/image?url=%2Fwide.png&w=1080&q=75 1080w, /_next/image?url=%2Fwide.png&w=1200&q=75 1200w, /_next/image?url=%2Fwide.png&w=1920&q=75 1920w, /_next/image?url=%2Fwide.png&w=2048&q=75 2048w, /_next/image?url=%2Fwide.png&w=3840&q=75 3840w', + }, + { + imagesizes: '', + imagesrcset: + '/_next/image?url=%2Ftest.webp&w=1200&q=75 1x, /_next/image?url=%2Ftest.webp&w=3840&q=75 2x', + }, + ]) + + // When priority={true}, we should _not_ set loading="lazy" + expect( + await browser.elementById('basic-image').getAttribute('loading') + ).toBe(null) + expect( + await browser.elementById('load-eager').getAttribute('loading') + ).toBe('eager') + expect( + await browser.elementById('responsive1').getAttribute('loading') + ).toBe(null) + expect( + await browser.elementById('responsive2').getAttribute('loading') + ).toBe(null) + expect(await browser.elementById('raw1').getAttribute('loading')).toBe( + null + ) + + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .join('\n') + expect(warnings).not.toMatch( + /was detected as the Largest Contentful Paint/gm + ) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should not pass through user-provided srcset (causing a flash)', async () => { + const html = await renderViaHTTP(appPort, '/drop-srcset') + const $html = cheerio.load(html) + + const els = [].slice.apply($html('img')) + expect(els.length).toBe(2) + + const [el, noscriptEl] = els + expect(noscriptEl.attribs.src).toBeDefined() + expect(noscriptEl.attribs.srcset).toBeDefined() + + expect(el.attribs.src).not.toBe('/truck.jpg') + expect(el.attribs.srcset).not.toBe( + '/truck375.jpg 375w, /truck640.jpg 640w, /truck.jpg' + ) + expect(el.attribs.srcSet).not.toBe( + '/truck375.jpg 375w, /truck640.jpg 640w, /truck.jpg' + ) + }) + + it('should update the image on src change', async () => { + let browser + try { + browser = await webdriver(appPort, '/update') + + await check( + () => browser.eval(`document.getElementById("update-image").src`), + /test\.jpg/ + ) + + await browser.eval(`document.getElementById("toggle").click()`) + + await check( + () => browser.eval(`document.getElementById("update-image").src`), + /test\.png/ + ) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should callback onLoadingComplete when image is fully loaded', async () => { + let browser + try { + browser = await webdriver(appPort, '/on-loading-complete') + + await browser.eval( + `document.getElementById("footer").scrollIntoView({behavior: "smooth"})` + ) + + await check( + () => browser.eval(`document.getElementById("img1").currentSrc`), + /test(.*)jpg/ + ) + await check( + () => browser.eval(`document.getElementById("img2").currentSrc`), + /test(.*).png/ + ) + await check( + () => browser.eval(`document.getElementById("img3").currentSrc`), + /test\.svg/ + ) + await check( + () => browser.eval(`document.getElementById("img4").currentSrc`), + /test(.*)ico/ + ) + await check( + () => browser.eval(`document.getElementById("msg1").textContent`), + 'loaded 1 img1 with dimensions 128x128' + ) + await check( + () => browser.eval(`document.getElementById("msg2").textContent`), + 'loaded 1 img2 with dimensions 400x400' + ) + await check( + () => browser.eval(`document.getElementById("msg3").textContent`), + 'loaded 1 img3 with dimensions 400x400' + ) + await check( + () => browser.eval(`document.getElementById("msg4").textContent`), + 'loaded 1 img4 with dimensions 32x32' + ) + await check( + () => browser.eval(`document.getElementById("msg5").textContent`), + 'loaded 1 img5 with dimensions 3x5' + ) + await check( + () => browser.eval(`document.getElementById("msg6").textContent`), + 'loaded 1 img6 with dimensions 3x5' + ) + await check( + () => browser.eval(`document.getElementById("msg7").textContent`), + 'loaded 1 img7 with dimensions 400x400' + ) + await check( + () => browser.eval(`document.getElementById("msg8").textContent`), + 'loaded 1 img8 with dimensions 640x373' + ) + await check( + () => + browser.eval( + `document.getElementById("img8").getAttribute("data-nimg")` + ), + 'future' + ) + await check( + () => browser.eval(`document.getElementById("img8").currentSrc`), + /wide.png/ + ) + await browser.eval('document.getElementById("toggle").click()') + await check( + () => browser.eval(`document.getElementById("msg8").textContent`), + 'loaded 2 img8 with dimensions 400x300' + ) + await check( + () => + browser.eval( + `document.getElementById("img8").getAttribute("data-nimg")` + ), + 'future' + ) + await check( + () => browser.eval(`document.getElementById("img8").currentSrc`), + /test-rect.jpg/ + ) + await check( + () => browser.eval(`document.getElementById("msg9").textContent`), + 'loaded 1 img9 with dimensions 400x400' + ) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should callback native onLoad in most cases', async () => { + let browser = await webdriver(appPort, '/on-load') + + for (let i = 1; i < 6; i++) { + await browser.eval( + `document.getElementById("img${i}").scrollIntoView({behavior: "smooth"})` + ) + await waitFor(100) + } + + await check( + () => browser.eval(`document.getElementById("img1").currentSrc`), + /test(.*)jpg/ + ) + await check( + () => browser.eval(`document.getElementById("img2").currentSrc`), + /test(.*).png/ + ) + await check( + () => browser.eval(`document.getElementById("img3").currentSrc`), + /test\.svg/ + ) + await check( + () => browser.eval(`document.getElementById("img4").currentSrc`), + /test(.*)ico/ + ) + await check( + () => browser.eval(`document.getElementById("msg1").textContent`), + 'loaded 1 img1 with native onLoad' + ) + await check( + () => browser.eval(`document.getElementById("msg2").textContent`), + 'loaded 1 img2 with native onLoad' + ) + await check( + () => browser.eval(`document.getElementById("msg3").textContent`), + 'loaded 1 img3 with native onLoad' + ) + await check( + () => browser.eval(`document.getElementById("msg4").textContent`), + 'loaded 1 img4 with native onLoad' + ) + await check( + () => browser.eval(`document.getElementById("msg5").textContent`), + 'loaded 1 img5 with native onLoad' + ) + await check( + () => + browser.eval( + `document.getElementById("img5").getAttribute("data-nimg")` + ), + 'future' + ) + await check( + () => browser.eval(`document.getElementById("img5").currentSrc`), + /wide.png/ + ) + await browser.eval('document.getElementById("toggle").click()') + await check( + () => browser.eval(`document.getElementById("msg5").textContent`), + 'loaded 2 img5 with native onLoad' + ) + await check( + () => + browser.eval( + `document.getElementById("img5").getAttribute("data-nimg")` + ), + 'future' + ) + await check( + () => browser.eval(`document.getElementById("img5").currentSrc`), + /test-rect.jpg/ + ) + }) + + it('should callback native onError when error occured while loading image', async () => { + let browser = await webdriver(appPort, '/on-error') + await browser.eval( + `document.getElementById("img1").scrollIntoView({behavior: "smooth"})` + ) + await check( + () => browser.eval(`document.getElementById("msg1").textContent`), + 'no error occured for img1' + ) + await browser.eval( + `document.getElementById("img2").scrollIntoView({behavior: "smooth"})` + ) + await check( + () => browser.eval(`document.getElementById("msg2").textContent`), + 'no error occured for img2' + ) + await browser.eval(`document.getElementById("toggle").click()`) + await check( + () => browser.eval(`document.getElementById("msg2").textContent`), + 'error occured while loading img2' + ) + }) + + it('should work with image with blob src', async () => { + let browser + try { + browser = await webdriver(appPort, '/blob') + + await check( + () => browser.eval(`document.getElementById("blob-image").src`), + /^blob:/ + ) + await check( + () => browser.eval(`document.getElementById("blob-image").srcset`), + '' + ) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should work when using flexbox', async () => { + let browser + try { + browser = await webdriver(appPort, '/flex') + await check(async () => { + const result = await browser.eval( + `document.getElementById('basic-image').width` + ) + if (result === 0) { + throw new Error('Incorrectly loaded image') + } + + return 'result-correct' + }, /result-correct/) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should work with sizes and automatically use responsive srcset', async () => { + const browser = await webdriver(appPort, '/sizes') + const id = 'sizes1' + expect(await getSrc(browser, id)).toBe( + '/_next/image?url=%2Fwide.png&w=3840&q=75' + ) + expect(await browser.elementById(id).getAttribute('srcset')).toBe( + '/_next/image?url=%2Fwide.png&w=16&q=75 16w, /_next/image?url=%2Fwide.png&w=32&q=75 32w, /_next/image?url=%2Fwide.png&w=48&q=75 48w, /_next/image?url=%2Fwide.png&w=64&q=75 64w, /_next/image?url=%2Fwide.png&w=96&q=75 96w, /_next/image?url=%2Fwide.png&w=128&q=75 128w, /_next/image?url=%2Fwide.png&w=256&q=75 256w, /_next/image?url=%2Fwide.png&w=384&q=75 384w, /_next/image?url=%2Fwide.png&w=640&q=75 640w, /_next/image?url=%2Fwide.png&w=750&q=75 750w, /_next/image?url=%2Fwide.png&w=828&q=75 828w, /_next/image?url=%2Fwide.png&w=1080&q=75 1080w, /_next/image?url=%2Fwide.png&w=1200&q=75 1200w, /_next/image?url=%2Fwide.png&w=1920&q=75 1920w, /_next/image?url=%2Fwide.png&w=2048&q=75 2048w, /_next/image?url=%2Fwide.png&w=3840&q=75 3840w' + ) + expect(await browser.elementById(id).getAttribute('sizes')).toBe( + '(max-width: 2048px) 1200px, 3840px' + ) + }) + + it('should render no wrappers or sizers and minimal styling with layout-raw', async () => { + let browser + try { + browser = await webdriver(appPort, '/layout-raw') + + const numberOfChildren = await browser.eval( + `document.getElementById('image-container1').children.length` + ) + expect(numberOfChildren).toBe(1) + const childElementType = await browser.eval( + `document.getElementById('image-container1').children[0].nodeName` + ) + expect(childElementType).toBe('IMG') + + expect(await browser.elementById('raw1').getAttribute('style')).toBeNull() + expect(await browser.elementById('raw1').getAttribute('height')).toBe( + '700' + ) + expect(await browser.elementById('raw1').getAttribute('width')).toBe( + '1200' + ) + expect(await browser.elementById('raw1').getAttribute('srcset')).toBe( + `/_next/image?url=%2Fwide.png&w=1200&q=75 1x, /_next/image?url=%2Fwide.png&w=3840&q=75 2x` + ) + expect(await browser.elementById('raw1').getAttribute('loading')).toBe( + 'eager' + ) + + expect(await browser.elementById('raw2').getAttribute('style')).toBe( + 'padding-left:4rem;width:100%;object-position:30% 30%' + ) + expect(await browser.elementById('raw2').getAttribute('height')).toBe( + '700' + ) + expect(await browser.elementById('raw2').getAttribute('width')).toBe( + '1200' + ) + expect(await browser.elementById('raw2').getAttribute('srcset')).toBe( + `/_next/image?url=%2Fwide.png&w=16&q=75 16w, /_next/image?url=%2Fwide.png&w=32&q=75 32w, /_next/image?url=%2Fwide.png&w=48&q=75 48w, /_next/image?url=%2Fwide.png&w=64&q=75 64w, /_next/image?url=%2Fwide.png&w=96&q=75 96w, /_next/image?url=%2Fwide.png&w=128&q=75 128w, /_next/image?url=%2Fwide.png&w=256&q=75 256w, /_next/image?url=%2Fwide.png&w=384&q=75 384w, /_next/image?url=%2Fwide.png&w=640&q=75 640w, /_next/image?url=%2Fwide.png&w=750&q=75 750w, /_next/image?url=%2Fwide.png&w=828&q=75 828w, /_next/image?url=%2Fwide.png&w=1080&q=75 1080w, /_next/image?url=%2Fwide.png&w=1200&q=75 1200w, /_next/image?url=%2Fwide.png&w=1920&q=75 1920w, /_next/image?url=%2Fwide.png&w=2048&q=75 2048w, /_next/image?url=%2Fwide.png&w=3840&q=75 3840w` + ) + expect(await browser.elementById('raw2').getAttribute('loading')).toBe( + 'lazy' + ) + + expect(await browser.elementById('raw3').getAttribute('style')).toBeNull() + expect(await browser.elementById('raw3').getAttribute('srcset')).toBe( + `/_next/image?url=%2Ftest.png&w=640&q=75 1x, /_next/image?url=%2Ftest.png&w=828&q=75 2x` + ) + if (mode === 'dev') { + await waitFor(1000) + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .join('\n') + expect(warnings).toMatch( + /Image with src "\/wide.png" has either width or height modified, but not the other./gm + ) + expect(warnings).not.toMatch( + /Image with src "\/test.png" has either width or height modified, but not the other./gm + ) + } + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should lazy load layout=raw and placeholder=blur', async () => { + const browser = await webdriver(appPort, '/layout-raw-placeholder-blur') + + // raw1 + expect(await browser.elementById('raw1').getAttribute('src')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.fab2915d.jpg&w=828&q=75' + ) + expect(await browser.elementById('raw1').getAttribute('srcset')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.fab2915d.jpg&w=640&q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.fab2915d.jpg&w=828&q=75 2x' + ) + expect(await browser.elementById('raw1').getAttribute('loading')).toBe( + 'lazy' + ) + expect(await browser.elementById('raw1').getAttribute('sizes')).toBeNull() + expect(await browser.elementById('raw1').getAttribute('style')).toMatch( + 'background-size:cover;background-position:0% 0%;' + ) + expect(await browser.elementById('raw1').getAttribute('height')).toBe('400') + expect(await browser.elementById('raw1').getAttribute('width')).toBe('400') + await browser.eval( + `document.getElementById("raw1").scrollIntoView({behavior: "smooth"})` + ) + await check( + () => browser.eval(`document.getElementById("raw1").currentSrc`), + /test(.*)jpg/ + ) + expect(await browser.elementById('raw1').getAttribute('src')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.fab2915d.jpg&w=828&q=75' + ) + expect(await browser.elementById('raw1').getAttribute('srcset')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.fab2915d.jpg&w=640&q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.fab2915d.jpg&w=828&q=75 2x' + ) + expect(await browser.elementById('raw1').getAttribute('loading')).toBe( + 'lazy' + ) + expect(await browser.elementById('raw1').getAttribute('sizes')).toBeNull() + expect(await browser.elementById('raw1').getAttribute('style')).toMatch('') + expect(await browser.elementById('raw1').getAttribute('height')).toBe('400') + expect(await browser.elementById('raw1').getAttribute('width')).toBe('400') + + // raw2 + expect(await browser.elementById('raw2').getAttribute('src')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=3840&q=75' + ) + expect(await browser.elementById('raw2').getAttribute('srcset')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=3840&q=75 3840w' + ) + expect(await browser.elementById('raw2').getAttribute('sizes')).toBe('50vw') + expect(await browser.elementById('raw2').getAttribute('loading')).toBe( + 'lazy' + ) + expect(await browser.elementById('raw2').getAttribute('style')).toMatch( + 'background-size:cover;background-position:0% 0%;' + ) + expect(await browser.elementById('raw2').getAttribute('height')).toBe('400') + expect(await browser.elementById('raw2').getAttribute('width')).toBe('400') + await browser.eval( + `document.getElementById("raw2").scrollIntoView({behavior: "smooth"})` + ) + await check( + () => browser.eval(`document.getElementById("raw2").currentSrc`), + /test(.*)png/ + ) + expect(await browser.elementById('raw2').getAttribute('src')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=3840&q=75' + ) + expect(await browser.elementById('raw2').getAttribute('srcset')).toBe( + '/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Ftest.3f1a293b.png&w=3840&q=75 3840w' + ) + expect(await browser.elementById('raw2').getAttribute('sizes')).toBe('50vw') + expect(await browser.elementById('raw2').getAttribute('loading')).toBe( + 'lazy' + ) + expect(await browser.elementById('raw2').getAttribute('style')).toBe('') + expect(await browser.elementById('raw2').getAttribute('height')).toBe('400') + expect(await browser.elementById('raw2').getAttribute('width')).toBe('400') + }) + + it('should handle the styles prop appropriately', async () => { + const browser = await webdriver(appPort, '/style-prop') + + expect(await browser.elementById('with-styles').getAttribute('style')).toBe( + 'border-radius:10px;padding:10px' + ) + expect( + await browser + .elementById('with-overlapping-styles-intrinsic') + .getAttribute('style') + ).toBe('width:10px;border-radius:10px;margin:15px') + expect( + await browser + .elementById('with-overlapping-styles-raw') + .getAttribute('style') + ).toBe('width:10px;border-radius:10px;margin:15px') + expect( + await browser + .elementById('without-styles-responsive') + .getAttribute('style') + ).toBeNull() + expect( + await browser.elementById('without-styles-raw').getAttribute('style') + ).toBeNull() + }) + + if (mode === 'dev') { + it('should show missing src error', async () => { + const browser = await webdriver(appPort, '/missing-src') + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + 'Image is missing required "src" property. Make sure you pass "src" in props to the `next/image` component. Received: {"width":200}' + ) + }) + + it('should show invalid src error', async () => { + const browser = await webdriver(appPort, '/invalid-src') + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + 'Invalid src prop (https://google.com/test.png) on `next/image`, hostname "google.com" is not configured under images in your `next.config.js`' + ) + }) + + it('should show invalid src error when protocol-relative', async () => { + const browser = await webdriver(appPort, '/invalid-src-proto-relative') + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + 'Failed to parse src "//assets.example.com/img.jpg" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)' + ) + }) + + it('should show error when string src and placeholder=blur and blurDataURL is missing', async () => { + const browser = await webdriver(appPort, '/invalid-placeholder-blur') + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + `Image with src "/test.png" has "placeholder='blur'" property but is missing the "blurDataURL" property.` + ) + }) + + it('should show error when not numeric string width or height', async () => { + const browser = await webdriver(appPort, '/invalid-width-or-height') + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toContain( + `Image with src "/test.jpg" has invalid "width" or "height" property. These should be numeric values.` + ) + }) + + it('should show error when static import and placeholder=blur and blurDataUrl is missing', async () => { + const browser = await webdriver( + appPort, + '/invalid-placeholder-blur-static' + ) + + expect(await hasRedbox(browser)).toBe(true) + expect(await getRedboxHeader(browser)).toMatch( + /Image with src "(.*)bmp" has "placeholder='blur'" property but is missing the "blurDataURL" property/ + ) + }) + + it('should warn when using a very small image with placeholder=blur', async () => { + const browser = await webdriver(appPort, '/small-img-import') + + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .join('\n') + expect(await hasRedbox(browser)).toBe(false) + expect(warnings).toMatch( + /Image with src (.*)jpg(.*) is smaller than 40x40. Consider removing(.*)/gm + ) + }) + + it('should not warn when Image is child of p', async () => { + const browser = await webdriver(appPort, '/inside-paragraph') + + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .join('\n') + expect(await hasRedbox(browser)).toBe(false) + expect(warnings).not.toMatch( + /Expected server HTML to contain a matching/gm + ) + expect(warnings).not.toMatch(/cannot appear as a descendant/gm) + }) + + it('should warn when priority prop is missing on LCP image', async () => { + let browser + try { + browser = await webdriver(appPort, '/priority-missing-warning') + // Wait for image to load: + await check(async () => { + const result = await browser.eval( + `document.getElementById('responsive').naturalWidth` + ) + if (result < 1) { + throw new Error('Image not ready') + } + return 'done' + }, 'done') + await waitFor(1000) + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .join('\n') + expect(await hasRedbox(browser)).toBe(false) + expect(warnings).toMatch( + /Image with src (.*)wide.png(.*) was detected as the Largest Contentful Paint/gm + ) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should warn when loader is missing width', async () => { + const browser = await webdriver(appPort, '/invalid-loader') + await browser.eval(`document.querySelector("footer").scrollIntoView()`) + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .join('\n') + expect(await hasRedbox(browser)).toBe(false) + expect(warnings).toMatch( + /Image with src (.*)png(.*) has a "loader" property that does not implement width/gm + ) + expect(warnings).not.toMatch( + /Image with src (.*)jpg(.*) has a "loader" property that does not implement width/gm + ) + expect(warnings).not.toMatch( + /Image with src (.*)webp(.*) has a "loader" property that does not implement width/gm + ) + expect(warnings).not.toMatch( + /Image with src (.*)gif(.*) has a "loader" property that does not implement width/gm + ) + expect(warnings).not.toMatch( + /Image with src (.*)tiff(.*) has a "loader" property that does not implement width/gm + ) + }) + + it('should not warn when svg, even if with loader prop or without', async () => { + const browser = await webdriver(appPort, '/loader-svg') + await browser.eval(`document.querySelector("footer").scrollIntoView()`) + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .join('\n') + expect(await hasRedbox(browser)).toBe(false) + expect(warnings).not.toMatch( + /Image with src (.*) has a "loader" property that does not implement width/gm + ) + expect(await browser.elementById('with-loader').getAttribute('src')).toBe( + '/test.svg?size=256' + ) + expect( + await browser.elementById('with-loader').getAttribute('srcset') + ).toBe('/test.svg?size=128 1x, /test.svg?size=256 2x') + expect( + await browser.elementById('without-loader').getAttribute('src') + ).toBe('/test.svg') + expect( + await browser.elementById('without-loader').getAttribute('srcset') + ).toBe('/test.svg 1x, /test.svg 2x') + }) + + it('should warn at most once even after state change', async () => { + const browser = await webdriver(appPort, '/warning-once') + await browser.eval(`document.querySelector("footer").scrollIntoView()`) + await browser.eval(`document.querySelector("button").click()`) + await browser.eval(`document.querySelector("button").click()`) + const count = await browser.eval( + `document.querySelector("button").textContent` + ) + expect(count).toBe('Count: 2') + await check(async () => { + const result = await browser.eval( + 'document.getElementById("w").naturalWidth' + ) + if (result < 1) { + throw new Error('Image not loaded') + } + return 'done' + }, 'done') + await waitFor(1000) + const warnings = (await browser.log('browser')) + .map((log) => log.message) + .filter((log) => log.startsWith('Image with src')) + expect(warnings[0]).toMatch( + 'Image with src "/test.png" was detected as the Largest Contentful Paint (LCP).' + ) + expect(warnings.length).toBe(1) + }) + } else { + //server-only tests + it('should not create an image folder in server/chunks', async () => { + expect( + existsSync(join(appDir, '.next/server/chunks/static/media')) + ).toBeFalsy() + }) + } + + it('should correctly ignore prose styles', async () => { + let browser + try { + browser = await webdriver(appPort, '/prose') + + const id = 'prose-image' + + // Wait for image to load: + await check(async () => { + const result = await browser.eval( + `document.getElementById(${JSON.stringify(id)}).naturalWidth` + ) + + if (result < 1) { + throw new Error('Image not ready') + } + + return 'result-correct' + }, /result-correct/) + + await waitFor(1000) + + const computedWidth = await getComputed(browser, id, 'width') + const computedHeight = await getComputed(browser, id, 'height') + expect(getRatio(computedWidth, computedHeight)).toBeCloseTo(1, 1) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should apply style inheritance for img elements but not wrapper elements', async () => { + let browser + try { + browser = await webdriver(appPort, '/style-inheritance') + + await browser.eval( + `document.querySelector("footer").scrollIntoView({behavior: "smooth"})` + ) + + const imagesWithIds = await browser.eval(` + function foo() { + const imgs = document.querySelectorAll("img[id]"); + for (let img of imgs) { + const br = window.getComputedStyle(img).getPropertyValue("border-radius"); + if (!br) return 'no-border-radius'; + if (br !== '139px') return br; + } + return true; + }() + `) + expect(imagesWithIds).toBe(true) + + const allSpans = await browser.eval(` + function foo() { + const spans = document.querySelectorAll("span"); + for (let span of spans) { + const m = window.getComputedStyle(span).getPropertyValue("margin"); + if (m && m !== '0px') return m; + } + return false; + }() + `) + expect(allSpans).toBe(false) + } finally { + if (browser) { + await browser.close() + } + } + }) + + it('should apply filter style after image loads', async () => { + const browser = await webdriver(appPort, '/style-filter') + await check(() => getSrc(browser, 'img-plain'), /^\/_next\/image/) + await check(() => getSrc(browser, 'img-blur'), /^\/_next\/image/) + await waitFor(1000) + + expect(await getComputedStyle(browser, 'img-plain', 'filter')).toBe( + 'opacity(0.5)' + ) + expect( + await getComputedStyle(browser, 'img-plain', 'background-size') + ).toBe('30%') + expect( + await getComputedStyle(browser, 'img-plain', 'background-image') + ).toMatch('iVBORw0KGgo=') + expect( + await getComputedStyle(browser, 'img-plain', 'background-position') + ).toBe('1px 2px') + + expect(await getComputedStyle(browser, 'img-blur', 'filter')).toBe( + 'opacity(0.5)' + ) + expect(await getComputedStyle(browser, 'img-blur', 'background-size')).toBe( + '30%' + ) + expect( + await getComputedStyle(browser, 'img-blur', 'background-image') + ).toMatch('iVBORw0KGgo=') + expect( + await getComputedStyle(browser, 'img-blur', 'background-position') + ).toBe('1px 2px') + }) + + // Tests that use the `unsized` attribute: + if (mode !== 'dev') { + it('should correctly rotate image', async () => { + const browser = await webdriver(appPort, '/rotated') + + const id = 'exif-rotation-image' + + // Wait for image to load: + await check(async () => { + const result = await browser.eval( + `document.getElementById(${JSON.stringify(id)}).naturalWidth` + ) + + if (result === 0) { + throw new Error('Image not ready') + } + + return 'result-correct' + }, /result-correct/) + + await waitFor(500) + + const computedWidth = await getComputed(browser, id, 'width') + const computedHeight = await getComputed(browser, id, 'height') + expect(getRatio(computedHeight, computedWidth)).toBeCloseTo(0.75, 1) + }) + } + + it('should have blurry placeholder when enabled', async () => { + const html = await renderViaHTTP(appPort, '/blurry-placeholder') + const $html = cheerio.load(html) + + $html('noscript > img').attr('id', 'unused') + + expect($html('#blurry-placeholder-raw')[0].attribs.style).toContain( + `background-size:cover;background-position:0% 0%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http%3A//www.w3.org/2000/svg' xmlns%3Axlink='http%3A//www.w3.org/1999/xlink' viewBox='0 0 400 400'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='50'%3E%3C/feGaussianBlur%3E%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1 1'%3E%3C/feFuncA%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cimage filter='url(%23b)' x='0' y='0' height='100%25' width='100%25' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8P4nhDwAGuAKPn6cicwAAAABJRU5ErkJggg=='%3E%3C/image%3E%3C/svg%3E")` + ) + + expect($html('#blurry-placeholder-with-lazy')[0].attribs.style).toContain( + `background-size:cover;background-position:0% 0%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http%3A//www.w3.org/2000/svg' xmlns%3Axlink='http%3A//www.w3.org/1999/xlink' viewBox='0 0 400 400'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='50'%3E%3C/feGaussianBlur%3E%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1 1'%3E%3C/feFuncA%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cimage filter='url(%23b)' x='0' y='0' height='100%25' width='100%25' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mO0/8/wBwAE/wI85bEJ6gAAAABJRU5ErkJggg=='%3E%3C/image%3E%3C/svg%3E")` + ) + }) + + it('should not use blurry placeholder for