From a815ba9f792a71540be88f680cd6d2d6a3f87993 Mon Sep 17 00:00:00 2001 From: Javi Velasco Date: Wed, 20 Oct 2021 19:52:11 +0200 Subject: [PATCH 1/8] Implement Middleware RFC (#30081) This PR adds support for [Middleware as per RFC ](https://github.com/vercel/next.js/discussions/29750). ## 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 --- packages/next/build/entries.ts | 101 +++-- packages/next/build/index.ts | 66 +++- packages/next/build/webpack-config.ts | 49 ++- .../webpack/loaders/next-middleware-loader.ts | 33 ++ .../loaders/next-serverless-loader/utils.ts | 4 +- .../webpack/plugins/build-manifest-plugin.ts | 7 + .../webpack/plugins/middleware-plugin.ts | 197 ++++++++++ .../nextjs-require-cache-hot-reloader.ts | 15 +- packages/next/client/index.tsx | 6 + packages/next/client/next-dev.js | 2 + packages/next/client/page-loader.ts | 27 ++ packages/next/client/route-loader.ts | 22 ++ .../compiled/@peculiar/webcrypto/package.json | 1 + .../compiled/@peculiar/webcrypto/webcrypto.js | 1 + packages/next/compiled/formdata-node/LICENSE | 21 + packages/next/compiled/formdata-node/index.js | 1 + .../next/compiled/formdata-node/package.json | 1 + .../next/compiled/ua-parser-js/package.json | 1 + .../next/compiled/ua-parser-js/ua-parser.js | 1 + packages/next/compiled/uuid/index.js | 1 + packages/next/compiled/uuid/package.json | 1 + .../compiled/web-streams-polyfill/LICENSE | 22 ++ .../web-streams-polyfill/package.json | 1 + .../compiled/web-streams-polyfill/ponyfill.js | 1 + packages/next/lib/constants.ts | 3 + packages/next/package.json | 9 + packages/next/server.d.ts | 3 + packages/next/server.js | 2 + packages/next/server/accept-header.ts | 137 +++++++ packages/next/server/dev/hot-reloader.ts | 67 ++-- packages/next/server/dev/next-dev-server.ts | 96 ++++- .../server/dev/on-demand-entry-handler.ts | 9 +- packages/next/server/next-server.ts | 360 ++++++++++++++++-- packages/next/server/render.tsx | 10 +- packages/next/server/require.ts | 41 +- packages/next/server/router.ts | 18 +- packages/next/server/web/adapter.ts | 36 ++ packages/next/server/web/form-data.ts | 73 ++++ packages/next/server/web/is.ts | 80 ++++ packages/next/server/web/next-url.ts | 234 ++++++++++++ packages/next/server/web/sandbox/index.ts | 1 + packages/next/server/web/sandbox/polyfills.ts | 120 ++++++ packages/next/server/web/sandbox/sandbox.ts | 170 +++++++++ .../next/server/web/spec-compliant/body.ts | 235 ++++++++++++ .../server/web/spec-compliant/fetch-event.ts | 28 ++ .../next/server/web/spec-compliant/headers.ts | 239 ++++++++++++ .../next/server/web/spec-compliant/request.ts | 124 ++++++ .../server/web/spec-compliant/response.ts | 113 ++++++ .../server/web/spec-extension/fetch-event.ts | 10 + .../next/server/web/spec-extension/request.ts | 114 ++++++ .../server/web/spec-extension/response.ts | 106 ++++++ packages/next/server/web/types.ts | 32 ++ packages/next/server/web/utils.ts | 44 +++ packages/next/shared/lib/constants.ts | 2 + .../shared/lib/i18n/get-locale-metadata.ts | 4 +- packages/next/shared/lib/router/router.ts | 238 +++++++++++- .../lib/router/utils/get-middleware-regex.ts | 34 ++ .../next/shared/lib/router/utils/index.ts | 1 + packages/next/taskfile.js | 50 +++ packages/next/types/index.d.ts | 23 ++ packages/next/types/misc.d.ts | 20 + packages/next/types/webpack.d.ts | 2 + .../pages/nav/hash-changes-with-state.js | 4 +- .../client-navigation/test/index.test.js | 3 +- .../custom-routes/test/index.test.js | 50 +++ .../dynamic-routing/test/index.test.js | 14 + .../middleware-base-path/next.config.js | 3 + .../middleware-base-path/pages/_middleware.js | 14 + .../middleware-base-path/pages/about.js | 7 + .../middleware-base-path/pages/index.js | 32 ++ .../middleware-base-path/test/index.test.js | 41 ++ .../middleware-core/next.config.js | 6 + .../pages/interface/[id]/index.js | 3 + .../pages/interface/_middleware.js | 14 + .../middleware-core/pages/interface/static.js | 3 + .../pages/redirects/_middleware.js | 65 ++++ .../middleware-core/pages/redirects/header.js | 3 + .../middleware-core/pages/redirects/index.js | 33 ++ .../pages/redirects/new-home.js | 3 + .../pages/redirects/old-home.js | 3 + .../pages/responses/_middleware.js | 100 +++++ .../middleware-core/pages/responses/index.js | 68 ++++ .../pages/rewrites/_middleware.js | 31 ++ .../middleware-core/pages/rewrites/a.js | 3 + .../middleware-core/pages/rewrites/about.js | 16 + .../middleware-core/pages/rewrites/b.js | 3 + .../middleware-core/pages/rewrites/index.js | 29 ++ .../middleware-core/test/index.test.js | 344 +++++++++++++++++ test/unit/accept-headers.test.ts | 77 ++++ test/unit/web-runtime/body.test.ts | 212 +++++++++++ test/unit/web-runtime/request.test.ts | 37 ++ test/unit/web-runtime/response.test.ts | 42 ++ test/unit/web-runtime/utils.test.ts | 121 ++++++ yarn.lock | 111 ++++++ 94 files changed, 4805 insertions(+), 160 deletions(-) create mode 100644 packages/next/build/webpack/loaders/next-middleware-loader.ts create mode 100644 packages/next/build/webpack/plugins/middleware-plugin.ts create mode 100644 packages/next/compiled/@peculiar/webcrypto/package.json create mode 100644 packages/next/compiled/@peculiar/webcrypto/webcrypto.js create mode 100644 packages/next/compiled/formdata-node/LICENSE create mode 100644 packages/next/compiled/formdata-node/index.js create mode 100644 packages/next/compiled/formdata-node/package.json create mode 100644 packages/next/compiled/ua-parser-js/package.json create mode 100644 packages/next/compiled/ua-parser-js/ua-parser.js create mode 100644 packages/next/compiled/uuid/index.js create mode 100644 packages/next/compiled/uuid/package.json create mode 100644 packages/next/compiled/web-streams-polyfill/LICENSE create mode 100644 packages/next/compiled/web-streams-polyfill/package.json create mode 100644 packages/next/compiled/web-streams-polyfill/ponyfill.js create mode 100644 packages/next/server.d.ts create mode 100644 packages/next/server.js create mode 100644 packages/next/server/accept-header.ts create mode 100644 packages/next/server/web/adapter.ts create mode 100644 packages/next/server/web/form-data.ts create mode 100644 packages/next/server/web/is.ts create mode 100644 packages/next/server/web/next-url.ts create mode 100644 packages/next/server/web/sandbox/index.ts create mode 100644 packages/next/server/web/sandbox/polyfills.ts create mode 100644 packages/next/server/web/sandbox/sandbox.ts create mode 100644 packages/next/server/web/spec-compliant/body.ts create mode 100644 packages/next/server/web/spec-compliant/fetch-event.ts create mode 100644 packages/next/server/web/spec-compliant/headers.ts create mode 100644 packages/next/server/web/spec-compliant/request.ts create mode 100644 packages/next/server/web/spec-compliant/response.ts create mode 100644 packages/next/server/web/spec-extension/fetch-event.ts create mode 100644 packages/next/server/web/spec-extension/request.ts create mode 100644 packages/next/server/web/spec-extension/response.ts create mode 100644 packages/next/server/web/types.ts create mode 100644 packages/next/server/web/utils.ts create mode 100644 packages/next/shared/lib/router/utils/get-middleware-regex.ts create mode 100644 test/integration/middleware-base-path/next.config.js create mode 100644 test/integration/middleware-base-path/pages/_middleware.js create mode 100644 test/integration/middleware-base-path/pages/about.js create mode 100644 test/integration/middleware-base-path/pages/index.js create mode 100644 test/integration/middleware-base-path/test/index.test.js create mode 100644 test/integration/middleware-core/next.config.js create mode 100644 test/integration/middleware-core/pages/interface/[id]/index.js create mode 100644 test/integration/middleware-core/pages/interface/_middleware.js create mode 100644 test/integration/middleware-core/pages/interface/static.js create mode 100644 test/integration/middleware-core/pages/redirects/_middleware.js create mode 100644 test/integration/middleware-core/pages/redirects/header.js create mode 100644 test/integration/middleware-core/pages/redirects/index.js create mode 100644 test/integration/middleware-core/pages/redirects/new-home.js create mode 100644 test/integration/middleware-core/pages/redirects/old-home.js create mode 100644 test/integration/middleware-core/pages/responses/_middleware.js create mode 100644 test/integration/middleware-core/pages/responses/index.js create mode 100644 test/integration/middleware-core/pages/rewrites/_middleware.js create mode 100644 test/integration/middleware-core/pages/rewrites/a.js create mode 100644 test/integration/middleware-core/pages/rewrites/about.js create mode 100644 test/integration/middleware-core/pages/rewrites/b.js create mode 100644 test/integration/middleware-core/pages/rewrites/index.js create mode 100644 test/integration/middleware-core/test/index.test.js create mode 100644 test/unit/accept-headers.test.ts create mode 100644 test/unit/web-runtime/body.test.ts create mode 100644 test/unit/web-runtime/request.test.ts create mode 100644 test/unit/web-runtime/response.test.ts create mode 100644 test/unit/web-runtime/utils.test.ts diff --git a/packages/next/build/entries.ts b/packages/next/build/entries.ts index e090275e12b96..6882ff1ba0d11 100644 --- a/packages/next/build/entries.ts +++ b/packages/next/build/entries.ts @@ -2,16 +2,19 @@ import chalk from 'chalk' import { posix, join } from 'path' import { stringify } from 'querystring' import { API_ROUTE, DOT_NEXT_ALIAS, PAGES_DIR_ALIAS } from '../lib/constants' +import { MIDDLEWARE_ROUTE } from '../lib/constants' import { __ApiPreviewProps } from '../server/api-utils' import { isTargetLikeServerless } from '../server/config' import { normalizePagePath } from '../server/normalize-page-path' import { warn } from './output/log' +import { MiddlewareLoaderOptions } from './webpack/loaders/next-middleware-loader' import { ClientPagesLoaderOptions } from './webpack/loaders/next-client-pages-loader' import { ServerlessLoaderQuery } from './webpack/loaders/next-serverless-loader' import { LoadedEnvFiles } from '@next/env' import { NextConfigComplete } from '../server/config-shared' import type webpack5 from 'webpack5' +type ObjectValue = T extends { [key: string]: infer V } ? V : never type PagesMapping = { [page: string]: string } @@ -118,6 +121,18 @@ export function createEntrypoints( const isLikeServerless = isTargetLikeServerless(target) + if (page.match(MIDDLEWARE_ROUTE)) { + const loaderOpts: MiddlewareLoaderOptions = { + absolutePagePath: pages[page], + page, + } + + client[clientBundlePath] = `next-middleware-loader?${stringify( + loaderOpts + )}!` + return + } + if (isApiRoute && isLikeServerless) { const serverlessLoaderOptions: ServerlessLoaderQuery = { page, @@ -170,54 +185,56 @@ export function createEntrypoints( } } -export function finalizeEntrypoint( - name: string, - value: any, +export function finalizeEntrypoint({ + name, + value, + isServer, +}: { isServer: boolean -): any { + name: string + value: ObjectValue +}): ObjectValue { + const entry = + typeof value !== 'object' || Array.isArray(value) + ? { import: value } + : value + if (isServer) { const isApi = name.startsWith('pages/api/') - const runtime = isApi ? 'webpack-api-runtime' : 'webpack-runtime' - const layer = isApi ? 'api' : undefined - const publicPath = isApi ? '' : undefined - if (typeof value === 'object' && !Array.isArray(value)) { - return { - publicPath, - runtime, - layer, - ...value, - } - } else { - return { - import: value, - publicPath, - runtime, - layer, - } + return { + publicPath: isApi ? '' : undefined, + runtime: isApi ? 'webpack-api-runtime' : 'webpack-runtime', + layer: isApi ? 'api' : undefined, + ...entry, } - } else { - if ( - name !== 'polyfills' && - name !== 'main' && - name !== 'amp' && - name !== 'react-refresh' - ) { - const dependOn = + } + + if (name.match(MIDDLEWARE_ROUTE)) { + return { + filename: 'server/[name].js', + layer: 'middleware', + library: { + name: ['_ENTRIES', `middleware_[name]`], + type: 'assign', + }, + ...entry, + } + } + + if ( + name !== 'polyfills' && + name !== 'main' && + name !== 'amp' && + name !== 'react-refresh' + ) { + return { + dependOn: name.startsWith('pages/') && name !== 'pages/_app' ? 'pages/_app' - : 'main' - if (typeof value === 'object' && !Array.isArray(value)) { - return { - dependOn, - ...value, - } - } else { - return { - import: value, - dependOn, - } - } + : 'main', + ...entry, } } - return value + + return entry } diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index c2fc765aaac88..86cb451f12911 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -13,6 +13,7 @@ import formatWebpackMessages from '../client/dev/error-overlay/format-webpack-me import { STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR, PUBLIC_DIR_MIDDLEWARE_CONFLICT, + MIDDLEWARE_ROUTE, } from '../lib/constants' import { fileExists } from '../lib/file-exists' import { findPagesDir } from '../lib/find-pages-dir' @@ -46,6 +47,7 @@ import { SERVER_DIRECTORY, SERVER_FILES_MANIFEST, STATIC_STATUS_PAGES, + MIDDLEWARE_MANIFEST, } from '../shared/lib/constants' import { getRouteRegex, @@ -94,6 +96,9 @@ import { normalizeLocalePath } from '../shared/lib/i18n/normalize-locale-path' import { NextConfigComplete } from '../server/config-shared' import isError from '../lib/is-error' import { TelemetryPlugin } from './webpack/plugins/telemetry-plugin' +import { MiddlewareManifest } from './webpack/plugins/middleware-plugin' + +const RESERVED_PAGE = /^\/(_app|_error|_document|api(\/|$))/ export type SsgRoute = { initialRevalidateSeconds: number | false @@ -394,6 +399,12 @@ export default async function build( fallback: Array> } headers: Array> + staticRoutes: Array<{ + page: string + regex: string + namedRegex?: string + routeKeys?: { [key: string]: string } + }> dynamicRoutes: Array<{ page: string regex: string @@ -424,16 +435,16 @@ export default async function build( redirects: redirects.map((r: any) => buildCustomRoute(r, 'redirect')), headers: headers.map((r: any) => buildCustomRoute(r, 'header')), dynamicRoutes: getSortedRoutes(pageKeys) - .filter(isDynamicRoute) - .map((page) => { - const routeRegex = getRouteRegex(page) - return { - page, - regex: normalizeRouteRegex(routeRegex.re.source), - routeKeys: routeRegex.routeKeys, - namedRegex: routeRegex.namedRegex, - } - }), + .filter((page) => isDynamicRoute(page) && !page.match(MIDDLEWARE_ROUTE)) + .map(pageToRoute), + staticRoutes: getSortedRoutes(pageKeys) + .filter( + (page) => + !isDynamicRoute(page) && + !page.match(MIDDLEWARE_ROUTE) && + !page.match(RESERVED_PAGE) + ) + .map(pageToRoute), dataRoutes: [], i18n: config.i18n || undefined, })) @@ -833,11 +844,7 @@ export default async function build( let isHybridAmp = false let ssgPageRoutes: string[] | null = null - const nonReservedPage = !page.match( - /^\/(_app|_error|_document|api(\/|$))/ - ) - - if (nonReservedPage) { + if (!page.match(MIDDLEWARE_ROUTE) && !page.match(RESERVED_PAGE)) { try { let isPageStaticSpan = checkPageSpan.traceChild('is-page-static') @@ -1694,6 +1701,25 @@ export default async function build( ) } + const middlewareManifest: MiddlewareManifest = JSON.parse( + await promises.readFile( + path.join(distDir, SERVER_DIRECTORY, MIDDLEWARE_MANIFEST), + 'utf8' + ) + ) + + await promises.writeFile( + path.join( + distDir, + CLIENT_STATIC_FILES_PATH, + buildId, + '_middlewareManifest.js' + ), + `self.__MIDDLEWARE_MANIFEST=${devalue( + middlewareManifest.sortedMiddleware + )};self.__MIDDLEWARE_MANIFEST_CB&&self.__MIDDLEWARE_MANIFEST_CB()` + ) + const images = { ...config.images } const { deviceSizes, imageSizes } = images ;(images as any).sizes = [...deviceSizes, ...imageSizes] @@ -1797,3 +1823,13 @@ function generateClientSsgManifest( function isTelemetryPlugin(plugin: unknown): plugin is TelemetryPlugin { return plugin instanceof TelemetryPlugin } + +function pageToRoute(page: string) { + const routeRegex = getRouteRegex(page) + return { + page, + regex: normalizeRouteRegex(routeRegex.re.source), + routeKeys: routeRegex.routeKeys, + namedRegex: routeRegex.namedRegex, + } +} diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index 388a6bf7343db..eb184df4a5d51 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -13,6 +13,7 @@ import { NEXT_PROJECT_ROOT, NEXT_PROJECT_ROOT_DIST_CLIENT, PAGES_DIR_ALIAS, + MIDDLEWARE_ROUTE, } from '../lib/constants' import { fileExists } from '../lib/file-exists' import { getPackageVersion } from '../lib/get-package-version' @@ -34,6 +35,7 @@ import { finalizeEntrypoint } from './entries' import * as Log from './output/log' import { build as buildConfiguration } from './webpack/config' import { __overrideCssConfiguration } from './webpack/config/blocks/css/overrideCssConfiguration' +import MiddlewarePlugin from './webpack/plugins/middleware-plugin' import BuildManifestPlugin from './webpack/plugins/build-manifest-plugin' import { JsConfigPathsPlugin } from './webpack/plugins/jsconfig-paths-plugin' import { DropClientPage } from './webpack/plugins/next-drop-client-page-plugin' @@ -323,6 +325,20 @@ export default async function getBaseWebpackConfig( hasJsxRuntime: true, }, }, + babelMiddleware: { + loader: require.resolve('./babel/loader/index'), + options: { + cache: false, + configFile: babelConfigFile, + cwd: dir, + development: dev, + distDir, + hasJsxRuntime: true, + hasReactRefresh: false, + isServer: true, + pagesDir, + }, + }, } const babelIncludeRegexes: RegExp[] = [ @@ -576,10 +592,12 @@ export default async function getBaseWebpackConfig( // as we don't need a separate vendor chunk from that // and all other chunk depend on them so there is no // duplication that need to be pulled out. - chunks: (chunk) => !/^(polyfills|main|pages\/_app)$/.test(chunk.name), + chunks: (chunk) => + !/^(polyfills|main|pages\/_app|\/_middleware)$/.test(chunk.name), cacheGroups: { framework: { - chunks: 'all', + chunks: (chunk: webpack.compilation.Chunk) => + !chunk.name?.match(MIDDLEWARE_ROUTE), name: 'framework', // This regex ignores nested copies of framework libraries so they're // bundled with their issuer. @@ -629,6 +647,12 @@ export default async function getBaseWebpackConfig( minChunks: totalPages, priority: 20, }, + middleware: { + chunks: (chunk: webpack.compilation.Chunk) => + chunk.name?.match(MIDDLEWARE_ROUTE), + filename: 'server/middleware-chunks/[name].js', + minChunks: 2, + }, }, maxInitialRequests: 25, minSize: 20000, @@ -898,7 +922,7 @@ export default async function getBaseWebpackConfig( : ({ filename: '[name].js', // allow to split entrypoints - chunks: 'all', + chunks: ({ name }: any) => !name?.match(MIDDLEWARE_ROUTE), // size of files is not so relevant for server build // we want to prefer deduplication to load less code minSize: 1000, @@ -1001,6 +1025,7 @@ export default async function getBaseWebpackConfig( 'next-serverless-loader', 'next-style-loader', 'noop-loader', + 'next-middleware-loader', ].reduce((alias, loader) => { // using multiple aliases to replace `resolveLoader.modules` alias[loader] = path.join(__dirname, 'webpack', 'loaders', loader) @@ -1046,6 +1071,11 @@ export default async function getBaseWebpackConfig( }, use: defaultLoaders.babel, }, + { + ...codeCondition, + issuerLayer: 'middleware', + use: defaultLoaders.babelMiddleware, + }, { ...codeCondition, use: hasReactRefresh @@ -1238,6 +1268,9 @@ export default async function getBaseWebpackConfig( isServerless && isServer && new ServerlessPlugin(), isServer && new PagesManifestPlugin({ serverless: isLikeServerless, dev }), + // MiddlewarePlugin should be after DefinePlugin so NEXT_PUBLIC_* + // replacement is done before its process.env.* handling + !isServer && new MiddlewarePlugin({ dev }), isServer && new NextJsSsrImportPlugin(), !isServer && new BuildManifestPlugin({ @@ -1304,6 +1337,10 @@ export default async function getBaseWebpackConfig( }, } + if (!isServer) { + webpack5Config.output!.enabledLibraryTypes = ['assign'] + } + if (dev) { // @ts-ignore unsafeCache exists webpack5Config.module.unsafeCache = (module) => @@ -1819,7 +1856,11 @@ export default async function getBaseWebpackConfig( delete entry['main.js'] for (const name of Object.keys(entry)) { - entry[name] = finalizeEntrypoint(name, entry[name], isServer) + entry[name] = finalizeEntrypoint({ + value: entry[name], + isServer, + name, + }) } return entry diff --git a/packages/next/build/webpack/loaders/next-middleware-loader.ts b/packages/next/build/webpack/loaders/next-middleware-loader.ts new file mode 100644 index 0000000000000..d036508e177b3 --- /dev/null +++ b/packages/next/build/webpack/loaders/next-middleware-loader.ts @@ -0,0 +1,33 @@ +import loaderUtils from 'next/dist/compiled/loader-utils' + +export type MiddlewareLoaderOptions = { + absolutePagePath: string + page: string +} + +export default function middlewareLoader(this: any) { + const { absolutePagePath, page }: MiddlewareLoaderOptions = + loaderUtils.getOptions(this) + const stringifiedPagePath = loaderUtils.stringifyRequest( + this, + absolutePagePath + ) + + return ` + import { adapter } from 'next/dist/server/web/adapter' + + var mod = require(${stringifiedPagePath}) + var handler = mod.middleware || mod.default; + + if (typeof handler !== 'function') { + throw new Error('The Middleware "pages${page}" must export a \`middleware\` or a \`default\` function'); + } + + export default function (opts) { + return adapter({ + ...opts, + handler + }) + } + ` +} 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 a0f98cc5942bc..27383855f07a2 100644 --- a/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts +++ b/packages/next/build/webpack/loaders/next-serverless-loader/utils.ts @@ -16,7 +16,7 @@ import { GetStaticPaths, GetStaticProps, } from '../../../../types' -import accept from '@hapi/accept' +import { acceptLanguage } from '../../../../server/accept-header' import { detectLocaleCookie } from '../../../../shared/lib/i18n/detect-locale-cookie' import { detectDomainLocale } from '../../../../shared/lib/i18n/detect-domain-locale' import { denormalizePagePath } from '../../../../server/denormalize-page-path' @@ -358,7 +358,7 @@ export function getUtils({ try { acceptPreferredLocale = i18n.localeDetection !== false - ? accept.language(req.headers['accept-language'], i18n.locales) + ? acceptLanguage(req.headers['accept-language'], i18n.locales) : detectedLocale } catch (_) { acceptPreferredLocale = detectedLocale diff --git a/packages/next/build/webpack/plugins/build-manifest-plugin.ts b/packages/next/build/webpack/plugins/build-manifest-plugin.ts index efe59ef633026..fac146a487bbe 100644 --- a/packages/next/build/webpack/plugins/build-manifest-plugin.ts +++ b/packages/next/build/webpack/plugins/build-manifest-plugin.ts @@ -204,6 +204,13 @@ 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=new Set;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/build/webpack/plugins/middleware-plugin.ts b/packages/next/build/webpack/plugins/middleware-plugin.ts new file mode 100644 index 0000000000000..677bdce29a86c --- /dev/null +++ b/packages/next/build/webpack/plugins/middleware-plugin.ts @@ -0,0 +1,197 @@ +import { webpack, sources } from 'next/dist/compiled/webpack/webpack' +import { getMiddlewareRegex } from '../../../shared/lib/router/utils' +import { getSortedRoutes } from '../../../shared/lib/router/utils' +import { MIDDLEWARE_MANIFEST } from '../../../shared/lib/constants' +import { MIDDLEWARE_ROUTE } from '../../../lib/constants' + +const PLUGIN_NAME = 'MiddlewarePlugin' +const MIDDLEWARE_FULL_ROUTE_REGEX = /^pages[/\\]?(.*)\/_middleware$/ + +export interface MiddlewareManifest { + version: 1 + sortedMiddleware: string[] + middleware: { + [page: string]: { + env: string[] + files: string[] + name: string + page: string + regexp: string + } + } +} + +export default class MiddlewarePlugin { + dev: boolean + + constructor({ dev }: { dev: boolean }) { + this.dev = dev + } + + createAssets( + compilation: any, + assets: any, + envPerRoute: Map + ) { + const entrypoints = compilation.entrypoints + const middlewareManifest: MiddlewareManifest = { + sortedMiddleware: [], + middleware: {}, + version: 1, + } + + for (const entrypoint of entrypoints.values()) { + const result = MIDDLEWARE_FULL_ROUTE_REGEX.exec(entrypoint.name) + const location = result ? `/${result[1]}` : null + if (!location) { + continue + } + + const files = entrypoint + .getFiles() + .filter((file: string) => !file.endsWith('.hot-update.js')) + + middlewareManifest.middleware[location] = { + env: envPerRoute.get(entrypoint.name)!, + files, + name: entrypoint.name, + page: location, + regexp: getMiddlewareRegex(location).namedRegex!, + } + } + + middlewareManifest.sortedMiddleware = getSortedRoutes( + Object.keys(middlewareManifest.middleware) + ) + + assets[`server/${MIDDLEWARE_MANIFEST}`] = new sources.RawSource( + JSON.stringify(middlewareManifest, null, 2) + ) + } + + apply(compiler: webpack.Compiler) { + compiler.hooks.compilation.tap( + PLUGIN_NAME, + (compilation, { normalModuleFactory }) => { + const envPerRoute = new Map() + + compilation.hooks.finishModules.tap(PLUGIN_NAME, () => { + const { moduleGraph } = compilation as any + envPerRoute.clear() + + for (const [name, info] of compilation.entries) { + if (name.match(MIDDLEWARE_ROUTE)) { + const middlewareEntries = new Set() + const env = new Set() + + const addEntriesFromDependency = (dep: any) => { + const module = moduleGraph.getModule(dep) + if (module) { + middlewareEntries.add(module) + } + } + + info.dependencies.forEach(addEntriesFromDependency) + info.includeDependencies.forEach(addEntriesFromDependency) + + const queue = new Set(middlewareEntries) + for (const module of queue) { + const { buildInfo } = module as any + if (buildInfo?.usingIndirectEval) { + // @ts-ignore TODO: Remove ignore when webpack 5 is stable + const error = new webpack.WebpackError( + `\`eval\` not allowed in Middleware ${name}` + ) + error.module = module + compilation.warnings.push(error) + } + + if (buildInfo?.nextUsedEnvVars !== undefined) { + for (const envName of buildInfo.nextUsedEnvVars) { + env.add(envName) + } + } + + const connections = moduleGraph.getOutgoingConnections(module) + for (const connection of connections) { + if (connection.module) { + queue.add(connection.module) + } + } + } + + envPerRoute.set(name, Array.from(env)) + } + } + }) + + const handler = (parser: any) => { + const flagModule = () => { + parser.state.module.buildInfo.usingIndirectEval = true + } + + parser.hooks.expression.for('eval').tap(PLUGIN_NAME, flagModule) + parser.hooks.expression.for('Function').tap(PLUGIN_NAME, flagModule) + parser.hooks.expression + .for('global.eval') + .tap(PLUGIN_NAME, flagModule) + parser.hooks.expression + .for('global.Function') + .tap(PLUGIN_NAME, flagModule) + + const memberChainHandler = (_expr: any, members: string[]) => { + if ( + !parser.state.module || + parser.state.module.layer !== 'middleware' + ) { + return + } + + if (members.length >= 2 && members[0] === 'env') { + const envName = members[1] + const { buildInfo } = parser.state.module + if (buildInfo.nextUsedEnvVars === undefined) { + buildInfo.nextUsedEnvVars = new Set() + } + + buildInfo.nextUsedEnvVars.add(envName) + return true + } + } + + parser.hooks.callMemberChain + .for('process') + .tap(PLUGIN_NAME, memberChainHandler) + + parser.hooks.expressionMemberChain + .for('process') + .tap(PLUGIN_NAME, memberChainHandler) + } + + normalModuleFactory.hooks.parser + .for('javascript/auto') + .tap(PLUGIN_NAME, handler) + + normalModuleFactory.hooks.parser + .for('javascript/dynamic') + .tap(PLUGIN_NAME, handler) + + normalModuleFactory.hooks.parser + .for('javascript/esm') + .tap(PLUGIN_NAME, handler) + + // @ts-ignore TODO: Remove ignore when webpack 5 is stable + compilation.hooks.processAssets.tap( + { + name: 'NextJsMiddlewareManifest', + // @ts-ignore TODO: Remove ignore when webpack 5 is stable + stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS, + }, + (assets: any) => { + this.createAssets(compilation, assets, envPerRoute) + } + ) + } + ) + } +} diff --git a/packages/next/build/webpack/plugins/nextjs-require-cache-hot-reloader.ts b/packages/next/build/webpack/plugins/nextjs-require-cache-hot-reloader.ts index 4c4ae8343dd88..8f13385b68a2b 100644 --- a/packages/next/build/webpack/plugins/nextjs-require-cache-hot-reloader.ts +++ b/packages/next/build/webpack/plugins/nextjs-require-cache-hot-reloader.ts @@ -1,4 +1,5 @@ -import { webpack } from 'next/dist/compiled/webpack/webpack' +import type { Compiler, WebpackPluginInstance } from 'webpack5' +import { clearSandboxCache } from '../../../server/web/sandbox' import { realpathSync } from 'fs' import path from 'path' import isError from '../../../lib/is-error' @@ -37,25 +38,25 @@ function deleteCache(filePath: string) { const PLUGIN_NAME = 'NextJsRequireCacheHotReloader' // This plugin flushes require.cache after emitting the files. Providing 'hot reloading' of server files. -export class NextJsRequireCacheHotReloader implements webpack.Plugin { +export class NextJsRequireCacheHotReloader implements WebpackPluginInstance { prevAssets: any = null previousOutputPathsWebpack5: Set = new Set() currentOutputPathsWebpack5: Set = new Set() - apply(compiler: webpack.Compiler) { - // @ts-ignored Webpack has this hooks + apply(compiler: Compiler) { compiler.hooks.assetEmitted.tap( PLUGIN_NAME, - (_file: any, { targetPath }: any) => { + (_file, { targetPath, content }) => { this.currentOutputPathsWebpack5.add(targetPath) deleteCache(targetPath) + clearSandboxCache(targetPath, content.toString('utf-8')) } ) compiler.hooks.afterEmit.tap(PLUGIN_NAME, (compilation) => { RUNTIME_NAMES.forEach((name) => { const runtimeChunkPath = path.join( - compilation.outputOptions.path, + compilation.outputOptions.path!, `${name}.js` ) deleteCache(runtimeChunkPath) @@ -70,7 +71,7 @@ export class NextJsRequireCacheHotReloader implements webpack.Plugin { entries.forEach((page) => { const outputPath = path.join( - compilation.outputOptions.path, + compilation.outputOptions.path!, page + '.js' ) deleteCache(outputPath) diff --git a/packages/next/client/index.tsx b/packages/next/client/index.tsx index 6ad8ef37634cc..cf068ef80b7bd 100644 --- a/packages/next/client/index.tsx +++ b/packages/next/client/index.tsx @@ -358,6 +358,12 @@ export async function initNext(opts: { webpackHMR?: any } = {}) { 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 ('middleware' in hydrateErr) { + throw error + } + const node = getNodeError(error) throw node }) diff --git a/packages/next/client/next-dev.js b/packages/next/client/next-dev.js index 52933e52a5286..20b08adb37f2a 100644 --- a/packages/next/client/next-dev.js +++ b/packages/next/client/next-dev.js @@ -52,6 +52,8 @@ initNext({ webpackHMR }) .catch((err) => { console.log(`Failed to fetch devPagesManifest`, err) }) + } else if (event.data.indexOf('middlewareChanges') !== -1) { + return window.location.reload() } else if (event.data.indexOf('serverOnlyChanges') !== -1) { const { pages } = JSON.parse(event.data) diff --git a/packages/next/client/page-loader.ts b/packages/next/client/page-loader.ts index 3fd86b6e2c7aa..c83db54764df7 100644 --- a/packages/next/client/page-loader.ts +++ b/packages/next/client/page-loader.ts @@ -12,6 +12,7 @@ import { removePathTrailingSlash } from './normalize-trailing-slash' import { createRouteLoader, getClientBuildManifest, + getMiddlewareManifest, RouteLoader, } from './route-loader' @@ -37,6 +38,7 @@ export default class PageLoader { private promisedSsgManifest?: Promise private promisedDevPagesManifest?: Promise + private promisedMiddlewareManifest?: Promise public routeLoader: RouteLoader constructor(buildId: string, assetPrefix: string) { @@ -82,6 +84,31 @@ export default class PageLoader { } } + getMiddlewareList(): Promise { + if (process.env.NODE_ENV === 'production') { + return getMiddlewareManifest() + } else { + if ((window as any).__DEV_MIDDLEWARE_MANIFEST) { + return (window as any).__DEV_MIDDLEWARE_MANIFEST + } else { + if (!this.promisedMiddlewareManifest) { + this.promisedMiddlewareManifest = fetch( + `${this.assetPrefix}/_next/static/${this.buildId}/_devMiddlewareManifest.json` + ) + .then((res) => res.json()) + .then((manifest) => { + ;(window as any).__DEV_MIDDLEWARE_MANIFEST = manifest + return manifest + }) + .catch((err) => { + console.log(`Failed to fetch _devMiddlewareManifest`, err) + }) + } + return this.promisedMiddlewareManifest + } + } + } + /** * @param {string} href the route href (file-system path) * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes diff --git a/packages/next/client/route-loader.ts b/packages/next/client/route-loader.ts index 177faec600b1a..2c6b6047d7bca 100644 --- a/packages/next/client/route-loader.ts +++ b/packages/next/client/route-loader.ts @@ -13,6 +13,8 @@ declare global { interface Window { __BUILD_MANIFEST?: ClientBuildManifest __BUILD_MANIFEST_CB?: Function + __MIDDLEWARE_MANIFEST?: any + __MIDDLEWARE_MANIFEST_CB?: Function } } @@ -231,6 +233,26 @@ export function getClientBuildManifest(): Promise { ) } +export function getMiddlewareManifest(): Promise { + if (self.__MIDDLEWARE_MANIFEST) { + return Promise.resolve(self.__MIDDLEWARE_MANIFEST) + } + + const onMiddlewareManifest: Promise = new Promise((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: string[] css: string[] diff --git a/packages/next/compiled/@peculiar/webcrypto/package.json b/packages/next/compiled/@peculiar/webcrypto/package.json new file mode 100644 index 0000000000000..f2e4fc36bec51 --- /dev/null +++ b/packages/next/compiled/@peculiar/webcrypto/package.json @@ -0,0 +1 @@ +{"name":"@peculiar/webcrypto","main":"webcrypto.js","author":"PeculiarVentures","license":"MIT"} diff --git a/packages/next/compiled/@peculiar/webcrypto/webcrypto.js b/packages/next/compiled/@peculiar/webcrypto/webcrypto.js new file mode 100644 index 0000000000000..f6a187bbec742 --- /dev/null +++ b/packages/next/compiled/@peculiar/webcrypto/webcrypto.js @@ -0,0 +1 @@ +module.exports=(()=>{var r={64:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnConvert=void 0;const n=t(528);const s=t(317);const o=t(594);const i=t(558);class AsnConvert{static serialize(r){return i.AsnSerializer.serialize(r)}static parse(r,e){return o.AsnParser.parse(r,e)}static toString(r){const e=s.BufferSourceConverter.isBufferSource(r)?s.BufferSourceConverter.toArrayBuffer(r):AsnConvert.serialize(r);const t=n.fromBER(e);if(t.offset===-1){throw new Error(`Cannot decode ASN.1 data. ${t.result.error}`)}return t.result.toString()}}e.AsnConvert=AsnConvert},98:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.defaultConverter=e.AsnNullConverter=e.AsnGeneralizedTimeConverter=e.AsnUTCTimeConverter=e.AsnCharacterStringConverter=e.AsnGeneralStringConverter=e.AsnVisibleStringConverter=e.AsnGraphicStringConverter=e.AsnIA5StringConverter=e.AsnVideotexStringConverter=e.AsnTeletexStringConverter=e.AsnPrintableStringConverter=e.AsnNumericStringConverter=e.AsnUniversalStringConverter=e.AsnBmpStringConverter=e.AsnUtf8StringConverter=e.AsnOctetStringConverter=e.AsnBooleanConverter=e.AsnObjectIdentifierConverter=e.AsnBitStringConverter=e.AsnIntegerArrayBufferConverter=e.AsnEnumeratedConverter=e.AsnIntegerConverter=e.AsnAnyConverter=void 0;const n=t(528);const s=t(139);e.AsnAnyConverter={fromASN:r=>r instanceof n.Null?null:r.valueBeforeDecode,toASN:r=>{if(r===null){return new n.Null}const e=n.fromBER(r);if(e.result.error){throw new Error(e.result.error)}return e.result}};e.AsnIntegerConverter={fromASN:r=>r.valueBlock.valueHex.byteLength>4?r.valueBlock.toString():r.valueBlock.valueDec,toASN:r=>new n.Integer({value:r})};e.AsnEnumeratedConverter={fromASN:r=>r.valueBlock.valueDec,toASN:r=>new n.Enumerated({value:r})};e.AsnIntegerArrayBufferConverter={fromASN:r=>r.valueBlock.valueHex,toASN:r=>new n.Integer({valueHex:r})};e.AsnBitStringConverter={fromASN:r=>r.valueBlock.valueHex,toASN:r=>new n.BitString({valueHex:r})};e.AsnObjectIdentifierConverter={fromASN:r=>r.valueBlock.toString(),toASN:r=>new n.ObjectIdentifier({value:r})};e.AsnBooleanConverter={fromASN:r=>r.valueBlock.value,toASN:r=>new n.Boolean({value:r})};e.AsnOctetStringConverter={fromASN:r=>r.valueBlock.valueHex,toASN:r=>new n.OctetString({valueHex:r})};function createStringConverter(r){return{fromASN:r=>r.valueBlock.value,toASN:e=>new r({value:e})}}e.AsnUtf8StringConverter=createStringConverter(n.Utf8String);e.AsnBmpStringConverter=createStringConverter(n.BmpString);e.AsnUniversalStringConverter=createStringConverter(n.UniversalString);e.AsnNumericStringConverter=createStringConverter(n.NumericString);e.AsnPrintableStringConverter=createStringConverter(n.PrintableString);e.AsnTeletexStringConverter=createStringConverter(n.TeletexString);e.AsnVideotexStringConverter=createStringConverter(n.VideotexString);e.AsnIA5StringConverter=createStringConverter(n.IA5String);e.AsnGraphicStringConverter=createStringConverter(n.GraphicString);e.AsnVisibleStringConverter=createStringConverter(n.VisibleString);e.AsnGeneralStringConverter=createStringConverter(n.GeneralString);e.AsnCharacterStringConverter=createStringConverter(n.CharacterString);e.AsnUTCTimeConverter={fromASN:r=>r.toDate(),toASN:r=>new n.UTCTime({valueDate:r})};e.AsnGeneralizedTimeConverter={fromASN:r=>r.toDate(),toASN:r=>new n.GeneralizedTime({valueDate:r})};e.AsnNullConverter={fromASN:r=>null,toASN:r=>{return new n.Null}};function defaultConverter(r){switch(r){case s.AsnPropTypes.Any:return e.AsnAnyConverter;case s.AsnPropTypes.BitString:return e.AsnBitStringConverter;case s.AsnPropTypes.BmpString:return e.AsnBmpStringConverter;case s.AsnPropTypes.Boolean:return e.AsnBooleanConverter;case s.AsnPropTypes.CharacterString:return e.AsnCharacterStringConverter;case s.AsnPropTypes.Enumerated:return e.AsnEnumeratedConverter;case s.AsnPropTypes.GeneralString:return e.AsnGeneralStringConverter;case s.AsnPropTypes.GeneralizedTime:return e.AsnGeneralizedTimeConverter;case s.AsnPropTypes.GraphicString:return e.AsnGraphicStringConverter;case s.AsnPropTypes.IA5String:return e.AsnIA5StringConverter;case s.AsnPropTypes.Integer:return e.AsnIntegerConverter;case s.AsnPropTypes.Null:return e.AsnNullConverter;case s.AsnPropTypes.NumericString:return e.AsnNumericStringConverter;case s.AsnPropTypes.ObjectIdentifier:return e.AsnObjectIdentifierConverter;case s.AsnPropTypes.OctetString:return e.AsnOctetStringConverter;case s.AsnPropTypes.PrintableString:return e.AsnPrintableStringConverter;case s.AsnPropTypes.TeletexString:return e.AsnTeletexStringConverter;case s.AsnPropTypes.UTCTime:return e.AsnUTCTimeConverter;case s.AsnPropTypes.UniversalString:return e.AsnUniversalStringConverter;case s.AsnPropTypes.Utf8String:return e.AsnUtf8StringConverter;case s.AsnPropTypes.VideotexString:return e.AsnVideotexStringConverter;case s.AsnPropTypes.VisibleString:return e.AsnVisibleStringConverter;default:return null}}e.defaultConverter=defaultConverter},667:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnProp=e.AsnType=void 0;const n=t(98);const s=t(173);const o=r=>e=>{let t;if(!s.schemaStorage.has(e)){t=s.schemaStorage.createDefault(e);s.schemaStorage.set(e,t)}else{t=s.schemaStorage.get(e)}Object.assign(t,r)};e.AsnType=o;const i=r=>(e,t)=>{let o;if(!s.schemaStorage.has(e.constructor)){o=s.schemaStorage.createDefault(e.constructor);s.schemaStorage.set(e.constructor,o)}else{o=s.schemaStorage.get(e.constructor)}const i=Object.assign({},r);if(typeof i.type==="number"&&!i.converter){const s=n.defaultConverter(r.type);if(!s){throw new Error(`Cannot get default converter for property '${t}' of ${e.constructor.name}`)}i.converter=s}o.items[t]=i};e.AsnProp=i},139:(r,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnPropTypes=e.AsnTypeTypes=void 0;var t;(function(r){r[r["Sequence"]=0]="Sequence";r[r["Set"]=1]="Set";r[r["Choice"]=2]="Choice"})(t=e.AsnTypeTypes||(e.AsnTypeTypes={}));var n;(function(r){r[r["Any"]=1]="Any";r[r["Boolean"]=2]="Boolean";r[r["OctetString"]=3]="OctetString";r[r["BitString"]=4]="BitString";r[r["Integer"]=5]="Integer";r[r["Enumerated"]=6]="Enumerated";r[r["ObjectIdentifier"]=7]="ObjectIdentifier";r[r["Utf8String"]=8]="Utf8String";r[r["BmpString"]=9]="BmpString";r[r["UniversalString"]=10]="UniversalString";r[r["NumericString"]=11]="NumericString";r[r["PrintableString"]=12]="PrintableString";r[r["TeletexString"]=13]="TeletexString";r[r["VideotexString"]=14]="VideotexString";r[r["IA5String"]=15]="IA5String";r[r["GraphicString"]=16]="GraphicString";r[r["VisibleString"]=17]="VisibleString";r[r["GeneralString"]=18]="GeneralString";r[r["CharacterString"]=19]="CharacterString";r[r["UTCTime"]=20]="UTCTime";r[r["GeneralizedTime"]=21]="GeneralizedTime";r[r["DATE"]=22]="DATE";r[r["TimeOfDay"]=23]="TimeOfDay";r[r["DateTime"]=24]="DateTime";r[r["Duration"]=25]="Duration";r[r["TIME"]=26]="TIME";r[r["Null"]=27]="Null"})(n=e.AsnPropTypes||(e.AsnPropTypes={}))},473:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});const n=t(160);n.__exportStar(t(134),e)},134:(r,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnSchemaValidationError=void 0;class AsnSchemaValidationError extends Error{constructor(){super(...arguments);this.schemas=[]}}e.AsnSchemaValidationError=AsnSchemaValidationError},142:(r,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.isArrayEqual=e.isTypeOfArray=e.isConvertible=void 0;function isConvertible(r){if(r&&r.prototype){if(r.prototype.toASN&&r.prototype.fromASN){return true}else{return isConvertible(r.prototype)}}else{return!!(r&&r.toASN&&r.fromASN)}}e.isConvertible=isConvertible;function isTypeOfArray(r){var e;if(r){const t=Object.getPrototypeOf(r);if(((e=t===null||t===void 0?void 0:t.prototype)===null||e===void 0?void 0:e.constructor)===Array){return true}return isTypeOfArray(t)}return false}e.isTypeOfArray=isTypeOfArray;function isArrayEqual(r,e){if(!(r&&e)){return false}if(r.byteLength!==e.byteLength){return false}const t=new Uint8Array(r);const n=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnSerializer=e.AsnParser=e.AsnPropTypes=e.AsnTypeTypes=e.AsnType=e.AsnProp=void 0;const n=t(160);n.__exportStar(t(98),e);n.__exportStar(t(466),e);var s=t(667);Object.defineProperty(e,"AsnProp",{enumerable:true,get:function(){return s.AsnProp}});Object.defineProperty(e,"AsnType",{enumerable:true,get:function(){return s.AsnType}});var o=t(139);Object.defineProperty(e,"AsnTypeTypes",{enumerable:true,get:function(){return o.AsnTypeTypes}});Object.defineProperty(e,"AsnPropTypes",{enumerable:true,get:function(){return o.AsnPropTypes}});var i=t(594);Object.defineProperty(e,"AsnParser",{enumerable:true,get:function(){return i.AsnParser}});var a=t(558);Object.defineProperty(e,"AsnSerializer",{enumerable:true,get:function(){return a.AsnSerializer}});n.__exportStar(t(473),e);n.__exportStar(t(995),e);n.__exportStar(t(64),e)},995:(r,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnArray=void 0;class AsnArray extends Array{constructor(r=[]){if(typeof r==="number"){super(r)}else{super();for(const e of r){this.push(e)}}}}e.AsnArray=AsnArray},594:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnParser=void 0;const n=t(528);const s=t(139);const o=t(98);const i=t(473);const a=t(142);const c=t(173);class AsnParser{static parse(r,e){let t;if(r instanceof ArrayBuffer){t=r}else if(typeof Buffer!=="undefined"&&Buffer.isBuffer(r)){t=new Uint8Array(r).buffer}else if(ArrayBuffer.isView(r)||r.buffer instanceof ArrayBuffer){t=r.buffer}else{throw new TypeError("Wrong type of 'data' argument")}const s=n.fromBER(t);if(s.result.error){throw new Error(s.result.error)}const o=this.fromASN(s.result,e);return o}static fromASN(r,e){var t;try{if(a.isConvertible(e)){const t=new e;return t.fromASN(r)}const u=c.schemaStorage.get(e);c.schemaStorage.cache(e);let f=u.schema;if(r.constructor===n.Constructed&&u.type!==s.AsnTypeTypes.Choice){f=new n.Constructed({idBlock:{tagClass:3,tagNumber:r.idBlock.tagNumber},value:u.schema.valueBlock.value});for(const e in u.items){delete r[e]}}const l=n.compareSchema(r,r,f);if(!l.verified){throw new i.AsnSchemaValidationError(`Data does not match to ${e.name} ASN1 schema. ${l.result.error}`)}const h=new e;if(a.isTypeOfArray(e)){if(typeof u.itemType==="number"){const t=o.defaultConverter(u.itemType);if(!t){throw new Error(`Cannot get default converter for array item of ${e.name} ASN1 schema`)}return e.from(r.valueBlock.value,r=>t.fromASN(r))}else{return e.from(r.valueBlock.value,r=>this.fromASN(r,u.itemType))}}for(const e in u.items){if(!r[e]){continue}const o=u.items[e];if(typeof o.type==="number"||a.isConvertible(o.type)){const i=(t=o.converter)!==null&&t!==void 0?t:a.isConvertible(o.type)?new o.type:null;if(!i){throw new Error("Converter is empty")}if(o.repeated){if(o.implicit){const t=o.repeated==="sequence"?n.Sequence:n.Set;const s=new t;s.valueBlock=r[e].valueBlock;const a=n.fromBER(s.toBER(false)).result.valueBlock.value;h[e]=Array.from(a,r=>i.fromASN(r))}else{h[e]=Array.from(r[e],r=>i.fromASN(r))}}else{let t=r[e];if(o.implicit){let r;if(a.isConvertible(o.type)){r=(new o.type).toSchema("")}else{const e=s.AsnPropTypes[o.type];const t=n[e];if(!t){throw new Error(`Cannot get '${e}' class from asn1js module`)}r=new t}r.valueBlock=t.valueBlock;t=n.fromBER(r.toBER(false)).result}h[e]=i.fromASN(t)}}else{if(o.repeated){h[e]=Array.from(r[e],r=>this.fromASN(r,o.type))}else{h[e]=this.fromASN(r[e],o.type)}}}return h}catch(r){if(r instanceof i.AsnSchemaValidationError){r.schemas.push(e.name)}throw r}}}e.AsnParser=AsnParser},397:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnSchemaStorage=void 0;const n=t(528);const s=t(139);const o=t(142);class AsnSchemaStorage{constructor(){this.items=new WeakMap}has(r){return this.items.has(r)}get(r){var e,t,n,s;const o=this.items.get(r);if(!o){throw new Error(`Cannot get schema for '${(s=(n=(t=(e=r)===null||e===void 0?void 0:e.prototype)===null||t===void 0?void 0:t.constructor)===null||n===void 0?void 0:n.name)!==null&&s!==void 0?s:r}' target`)}return o}cache(r){const e=this.get(r);if(!e.schema){e.schema=this.create(r,true)}}createDefault(r){const e={type:s.AsnTypeTypes.Sequence,items:{}};const t=this.findParentSchema(r);if(t){Object.assign(e,t);e.items=Object.assign({},e.items,t.items)}return e}create(r,e){const t=this.items.get(r)||this.createDefault(r);const i=[];for(const r in t.items){const a=t.items[r];const c=e?r:"";let u;if(typeof a.type==="number"){const r=s.AsnPropTypes[a.type];const e=n[r];if(!e){throw new Error(`Cannot get ASN1 class by name '${r}'`)}u=new e({name:c})}else if(o.isConvertible(a.type)){const r=new a.type;u=r.toSchema(c)}else if(a.optional){const r=this.get(a.type);if(r.type===s.AsnTypeTypes.Choice){u=new n.Any({name:c})}else{u=this.create(a.type,false);u.name=c}}else{u=new n.Any({name:c})}const f=!!a.optional||a.defaultValue!==undefined;if(a.repeated){u.name="";const r=a.repeated==="set"?n.Set:n.Sequence;u=new r({name:"",value:[new n.Repeated({name:c,value:u})]})}if(a.context!==null&&a.context!==undefined){if(a.implicit){if(typeof a.type==="number"||o.isConvertible(a.type)){const r=a.repeated?n.Constructed:n.Primitive;i.push(new r({name:c,optional:f,idBlock:{tagClass:3,tagNumber:a.context}}))}else{this.cache(a.type);const r=!!a.repeated;let e=!r?this.get(a.type).schema:u;e=e.valueBlock?e.valueBlock.value:e.value;i.push(new n.Constructed({name:!r?c:"",optional:f,idBlock:{tagClass:3,tagNumber:a.context},value:e}))}}else{i.push(new n.Constructed({optional:f,idBlock:{tagClass:3,tagNumber:a.context},value:[u]}))}}else{u.optional=f;i.push(u)}}switch(t.type){case s.AsnTypeTypes.Sequence:return new n.Sequence({value:i,name:""});case s.AsnTypeTypes.Set:return new n.Set({value:i,name:""});case s.AsnTypeTypes.Choice:return new n.Choice({value:i,name:""});default:throw new Error(`Unsupported ASN1 type in use`)}}set(r,e){this.items.set(r,e);return this}findParentSchema(r){const e=r.__proto__;if(e){const r=this.items.get(e);return r||this.findParentSchema(e)}return null}}e.AsnSchemaStorage=AsnSchemaStorage},558:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.AsnSerializer=void 0;const n=t(528);const s=t(98);const o=t(139);const i=t(142);const a=t(173);class AsnSerializer{static serialize(r){if(r instanceof n.BaseBlock){return r.toBER(false)}return this.toASN(r).toBER(false)}static toASN(r){if(r&&i.isConvertible(r.constructor)){return r.toASN()}const e=r.constructor;const t=a.schemaStorage.get(e);a.schemaStorage.cache(e);let c=[];if(t.itemType){if(typeof t.itemType==="number"){const n=s.defaultConverter(t.itemType);if(!n){throw new Error(`Cannot get default converter for array item of ${e.name} ASN1 schema`)}c=r.map(r=>n.toASN(r))}else{c=r.map(r=>this.toAsnItem({type:t.itemType},"[]",e,r))}}else{for(const s in t.items){const o=t.items[s];const a=r[s];if(a===undefined||o.defaultValue===a||typeof o.defaultValue==="object"&&typeof a==="object"&&i.isArrayEqual(this.serialize(o.defaultValue),this.serialize(a))){continue}let u=AsnSerializer.toAsnItem(o,s,e,a);if(typeof o.context==="number"){if(o.implicit){if(!o.repeated&&(typeof o.type==="number"||i.isConvertible(o.type))){const r={};r.valueHex=u instanceof n.Null?u.valueBeforeDecode:u.valueBlock.toBER();c.push(new n.Primitive(Object.assign({optional:o.optional,idBlock:{tagClass:3,tagNumber:o.context}},r)))}else{c.push(new n.Constructed({optional:o.optional,idBlock:{tagClass:3,tagNumber:o.context},value:u.valueBlock.value}))}}else{c.push(new n.Constructed({optional:o.optional,idBlock:{tagClass:3,tagNumber:o.context},value:[u]}))}}else if(o.repeated){c=c.concat(u)}else{c.push(u)}}}let u;switch(t.type){case o.AsnTypeTypes.Sequence:u=new n.Sequence({value:c});break;case o.AsnTypeTypes.Set:u=new n.Set({value:c});break;case o.AsnTypeTypes.Choice:if(!c[0]){throw new Error(`Schema '${e.name}' has wrong data. Choice cannot be empty.`)}u=c[0];break}return u}static toAsnItem(r,e,t,s){let i;if(typeof r.type==="number"){const a=r.converter;if(!a){throw new Error(`Property '${e}' doesn't have converter for type ${o.AsnPropTypes[r.type]} in schema '${t.name}'`)}if(r.repeated){const e=Array.from(s,r=>a.toASN(r));const t=r.repeated==="sequence"?n.Sequence:n.Set;i=new t({value:e})}else{i=a.toASN(s)}}else{if(r.repeated){const e=Array.from(s,r=>this.toASN(r));const t=r.repeated==="sequence"?n.Sequence:n.Set;i=new t({value:e})}else{i=this.toASN(s)}}return i}}e.AsnSerializer=AsnSerializer},173:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.schemaStorage=void 0;const n=t(397);e.schemaStorage=new n.AsnSchemaStorage},799:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.BitString=void 0;const n=t(528);const s=t(317);class BitString{constructor(r,e=0){this.unusedBits=0;this.value=new ArrayBuffer(0);if(r){if(typeof r==="number"){this.fromNumber(r)}else if(s.BufferSourceConverter.isBufferSource(r)){this.unusedBits=e;this.value=s.BufferSourceConverter.toArrayBuffer(r)}else{throw TypeError("Unsupported type of 'params' argument for BitString")}}}fromASN(r){if(!(r instanceof n.BitString)){throw new TypeError("Argument 'asn' is not instance of ASN.1 BitString")}this.unusedBits=r.valueBlock.unusedBits;this.value=r.valueBlock.valueHex;return this}toASN(){return new n.BitString({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(r){return new n.BitString({name:r})}toNumber(){let r="";const e=new Uint8Array(this.value);for(const t of e){r+=t.toString(2).padStart(8,"0")}r=r.split("").reverse().join("");if(this.unusedBits){r=r.slice(this.unusedBits).padStart(this.unusedBits,"0")}return parseInt(r,2)}fromNumber(r){let e=r.toString(2);const t=e.length+7>>3;this.unusedBits=(t<<3)-e.length;const n=new Uint8Array(t);e=e.padStart(t<<3,"0").split("").reverse().join("");let s=0;while(s{"use strict";Object.defineProperty(e,"__esModule",{value:true});const n=t(160);n.__exportStar(t(799),e);n.__exportStar(t(189),e)},189:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.OctetString=void 0;const n=t(528);const s=t(317);class OctetString{constructor(r){if(typeof r==="number"){this.buffer=new ArrayBuffer(r)}else{if(s.BufferSourceConverter.isBufferSource(r)){this.buffer=s.BufferSourceConverter.toArrayBuffer(r)}else if(Array.isArray(r)){this.buffer=new Uint8Array(r)}else{this.buffer=new ArrayBuffer(0)}}}get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}fromASN(r){if(!(r instanceof n.OctetString)){throw new TypeError("Argument 'asn' is not instance of ASN.1 OctetString")}this.buffer=r.valueBlock.valueHex;return this}toASN(){return new n.OctetString({valueHex:this.buffer})}toSchema(r){return new n.OctetString({name:r})}}e.OctetString=OctetString},160:(r,e,t)=>{"use strict";t.r(e);t.d(e,{__extends:()=>__extends,__assign:()=>s,__rest:()=>__rest,__decorate:()=>__decorate,__param:()=>__param,__metadata:()=>__metadata,__awaiter:()=>__awaiter,__generator:()=>__generator,__createBinding:()=>o,__exportStar:()=>__exportStar,__values:()=>__values,__read:()=>__read,__spread:()=>__spread,__spreadArrays:()=>__spreadArrays,__spreadArray:()=>__spreadArray,__await:()=>__await,__asyncGenerator:()=>__asyncGenerator,__asyncDelegator:()=>__asyncDelegator,__asyncValues:()=>__asyncValues,__makeTemplateObject:()=>__makeTemplateObject,__importStar:()=>__importStar,__importDefault:()=>__importDefault,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldSet:()=>__classPrivateFieldSet});var n=function(r,e){n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))r[t]=e[t]};return n(r,e)};function __extends(r,e){if(typeof e!=="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");n(r,e);function __(){this.constructor=r}r.prototype=e===null?Object.create(e):(__.prototype=e.prototype,new __)}var s=function(){s=Object.assign||function __assign(r){for(var e,t=1,n=arguments.length;t=0;a--)if(i=r[a])o=(s<3?i(o):s>3?i(e,t,o):i(e,t))||o;return s>3&&o&&Object.defineProperty(e,t,o),o}function __param(r,e){return function(t,n){e(t,n,r)}}function __metadata(r,e){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(r,e)}function __awaiter(r,e,t,n){function adopt(r){return r instanceof t?r:new t(function(e){e(r)})}return new(t||(t=Promise))(function(t,s){function fulfilled(r){try{step(n.next(r))}catch(r){s(r)}}function rejected(r){try{step(n["throw"](r))}catch(r){s(r)}}function step(r){r.done?t(r.value):adopt(r.value).then(fulfilled,rejected)}step((n=n.apply(r,e||[])).next())})}function __generator(r,e){var t={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,s,o,i;return i={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function verb(r){return function(e){return step([r,e])}}function step(i){if(n)throw new TypeError("Generator is already executing.");while(t)try{if(n=1,s&&(o=i[0]&2?s["return"]:i[0]?s["throw"]||((o=s["return"])&&o.call(s),0):s.next)&&!(o=o.call(s,i[1])).done)return o;if(s=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:t.label++;return{value:i[1],done:false};case 5:t.label++;s=i[1];i=[0];continue;case 7:i=t.ops.pop();t.trys.pop();continue;default:if(!(o=t.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){t=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]=r.length)r=void 0;return{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(r,e){var t=typeof Symbol==="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),s,o=[],i;try{while((e===void 0||e-- >0)&&!(s=n.next()).done)o.push(s.value)}catch(r){i={error:r}}finally{try{if(s&&!s.done&&(t=n["return"]))t.call(n)}finally{if(i)throw i.error}}return o}function __spread(){for(var r=[],e=0;e1||resume(r,e)})}}function resume(r,e){try{step(n[r](e))}catch(r){settle(o[0][3],r)}}function step(r){r.value instanceof __await?Promise.resolve(r.value.v).then(fulfill,reject):settle(o[0][2],r)}function fulfill(r){resume("next",r)}function reject(r){resume("throw",r)}function settle(r,e){if(r(e),o.shift(),o.length)resume(o[0][0],o[0][1])}}function __asyncDelegator(r){var e,t;return e={},verb("next"),verb("throw",function(r){throw r}),verb("return"),e[Symbol.iterator]=function(){return this},e;function verb(n,s){e[n]=r[n]?function(e){return(t=!t)?{value:__await(r[n](e)),done:n==="return"}:s?s(e):e}:s}}function __asyncValues(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof __values==="function"?__values(r):r[Symbol.iterator](),t={},verb("next"),verb("throw"),verb("return"),t[Symbol.asyncIterator]=function(){return this},t);function verb(e){t[e]=r[e]&&function(t){return new Promise(function(n,s){t=r[e](t),settle(n,s,t.done,t.value)})}}function settle(r,e,t,n){Promise.resolve(n).then(function(e){r({value:e,done:t})},e)}}function __makeTemplateObject(r,e){if(Object.defineProperty){Object.defineProperty(r,"raw",{value:e})}else{r.raw=e}return r}var i=Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:true,value:e})}:function(r,e){r["default"]=e};function __importStar(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)if(t!=="default"&&Object.prototype.hasOwnProperty.call(r,t))o(e,r,t);i(e,r);return e}function __importDefault(r){return r&&r.__esModule?r:{default:r}}function __classPrivateFieldGet(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e==="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}function __classPrivateFieldSet(r,e,t,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e==="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(r,t):s?s.value=t:e.set(r,t),t}},895:(r,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});class JsonError extends Error{constructor(r,e){super(e?`${r}. See the inner exception for more details.`:r);this.message=r;this.innerError=e}}class TransformError extends JsonError{constructor(r,e,t){super(e,t);this.schema=r}}class ParserError extends TransformError{constructor(r,e,t){super(r,`JSON doesn't match to '${r.target.name}' schema. ${e}`,t)}}class ValidationError extends JsonError{}class SerializerError extends JsonError{constructor(r,e,t){super(`Cannot serialize by '${r}' schema. ${e}`,t);this.schemaName=r}}class KeyError extends ParserError{constructor(r,e,t={}){super(r,"Some keys doesn't match to schema");this.keys=e;this.errors=t}}(function(r){r[r["Any"]=0]="Any";r[r["Boolean"]=1]="Boolean";r[r["Number"]=2]="Number";r[r["String"]=3]="String"})(e.JsonPropTypes||(e.JsonPropTypes={}));function checkType(r,t){switch(t){case e.JsonPropTypes.Boolean:return typeof r==="boolean";case e.JsonPropTypes.Number:return typeof r==="number";case e.JsonPropTypes.String:return typeof r==="string"}return true}function throwIfTypeIsWrong(r,t){if(!checkType(r,t)){throw new TypeError(`Value must be ${e.JsonPropTypes[t]}`)}}function isConvertible(r){if(r&&r.prototype){if(r.prototype.toJSON&&r.prototype.fromJSON){return true}else{return isConvertible(r.prototype)}}else{return!!(r&&r.toJSON&&r.fromJSON)}}class JsonSchemaStorage{constructor(){this.items=new Map}has(r){return this.items.has(r)||!!this.findParentSchema(r)}get(r){const e=this.items.get(r)||this.findParentSchema(r);if(!e){throw new Error("Cannot get schema for current target")}return e}create(r){const e={names:{}};const t=this.findParentSchema(r);if(t){Object.assign(e,t);e.names={};for(const r in t.names){e.names[r]=Object.assign({},t.names[r])}}e.target=r;return e}set(r,e){this.items.set(r,e);return this}findParentSchema(r){const e=r.__proto__;if(e){const r=this.items.get(e);return r||this.findParentSchema(e)}return null}}const t="default";const n=new JsonSchemaStorage;class PatternValidation{constructor(r){this.pattern=new RegExp(r)}validate(r){const e=new RegExp(this.pattern.source,this.pattern.flags);if(typeof r!=="string"){throw new ValidationError("Incoming value must be string")}if(!e.exec(r)){throw new ValidationError(`Value doesn't match to pattern '${e.toString()}'`)}}}class InclusiveValidation{constructor(r=Number.MIN_VALUE,e=Number.MAX_VALUE){this.min=r;this.max=e}validate(r){throwIfTypeIsWrong(r,e.JsonPropTypes.Number);if(!(this.min<=r&&r<=this.max)){const r=this.min===Number.MIN_VALUE?"MIN":this.min;const e=this.max===Number.MAX_VALUE?"MAX":this.max;throw new ValidationError(`Value doesn't match to diapason [${r},${e}]`)}}}class ExclusiveValidation{constructor(r=Number.MIN_VALUE,e=Number.MAX_VALUE){this.min=r;this.max=e}validate(r){throwIfTypeIsWrong(r,e.JsonPropTypes.Number);if(!(this.minthis.maxLength){throw new ValidationError(`Value length must be less than ${this.maxLength}.`)}}}}class EnumerationValidation{constructor(r){this.enumeration=r}validate(r){throwIfTypeIsWrong(r,e.JsonPropTypes.String);if(!this.enumeration.includes(r)){throw new ValidationError(`Value must be one of ${this.enumeration.map(r=>`'${r}'`).join(", ")}`)}}}class JsonTransform{static checkValues(r,e){const t=Array.isArray(r)?r:[r];for(const n of t){for(const t of e.validations){if(t instanceof LengthValidation&&e.repeated){t.validate(r)}else{t.validate(n)}}}}static checkTypes(r,e){if(e.repeated&&!Array.isArray(r)){throw new TypeError("Value must be Array")}if(typeof e.type==="number"){const t=Array.isArray(r)?r:[r];for(const r of t){throwIfTypeIsWrong(r,e.type)}}}static getSchemaByName(r,e=t){return{...r.names[t],...r.names[e]}}}class JsonSerializer extends JsonTransform{static serialize(r,e,t,n){const s=this.toJSON(r,e);return JSON.stringify(s,t,n)}static toJSON(r,e={}){let s;let o=e.targetSchema;const i=e.schemaName||t;if(isConvertible(r)){return r.toJSON()}if(Array.isArray(r)){s=[];for(const t of r){s.push(this.toJSON(t,e))}}else if(typeof r==="object"){if(o&&!n.has(o)){throw new JsonError("Cannot get schema for `targetSchema` param")}o=o||r.constructor;if(n.has(o)){const e=n.get(o);s={};const t=this.getSchemaByName(e,i);for(const n in t){try{const a=t[n];const c=r[n];let u;if(a.optional&&c===undefined||a.defaultValue!==undefined&&c===a.defaultValue){continue}if(!a.optional&&c===undefined){throw new SerializerError(o.name,`Property '${n}' is required.`)}if(typeof a.type==="number"){if(a.converter){if(a.repeated){u=c.map(e=>a.converter.toJSON(e,r))}else{u=a.converter.toJSON(c,r)}}else{u=c}}else{if(a.repeated){u=c.map(r=>this.toJSON(r,{schemaName:i}))}else{u=this.toJSON(c,{schemaName:i})}}this.checkTypes(u,a);this.checkValues(u,a);s[a.name||n]=u}catch(r){if(r instanceof SerializerError){throw r}else{throw new SerializerError(e.target.name,`Property '${n}' is wrong. ${r.message}`,r)}}}}else{s={};for(const e in r){s[e]=this.toJSON(r[e],{schemaName:i})}}}else{s=r}return s}}class JsonParser extends JsonTransform{static parse(r,e){const t=JSON.parse(r);return this.fromJSON(t,e)}static fromJSON(r,e){const s=e.targetSchema;const o=e.schemaName||t;const i=new s;if(isConvertible(i)){return i.fromJSON(r)}const a=n.get(s);const c=this.getSchemaByName(a,o);const u={};if(e.strictProperty&&!Array.isArray(r)){JsonParser.checkStrictProperty(r,c,a)}for(const t in c){try{const n=c[t];const s=n.name||t;const f=r[s];if(f===undefined&&(n.optional||n.defaultValue!==undefined)){continue}if(!n.optional&&f===undefined){throw new ParserError(a,`Property '${s}' is required.`)}this.checkTypes(f,n);this.checkValues(f,n);if(typeof n.type==="number"){if(n.converter){if(n.repeated){i[t]=f.map(r=>n.converter.fromJSON(r,i))}else{i[t]=n.converter.fromJSON(f,i)}}else{i[t]=f}}else{const r={...e,targetSchema:n.type,schemaName:o};if(n.repeated){i[t]=f.map(e=>this.fromJSON(e,r))}else{i[t]=this.fromJSON(f,r)}}}catch(r){if(!(r instanceof ParserError)){r=new ParserError(a,`Property '${t}' is wrong. ${r.message}`,r)}if(e.strictAllKeys){u[t]=r}else{throw r}}}const f=Object.keys(u);if(f.length){throw new KeyError(a,f,u)}return i}static checkStrictProperty(r,e,t){const n=Object.keys(r);const s=Object.keys(e);const o=[];for(const r of n){if(s.indexOf(r)===-1){o.push(r)}}if(o.length){throw new KeyError(t,o)}}}function getValidations(r){const t=[];if(r.pattern){t.push(new PatternValidation(r.pattern))}if(r.type===e.JsonPropTypes.Number||r.type===e.JsonPropTypes.Any){if(r.minInclusive!==undefined||r.maxInclusive!==undefined){t.push(new InclusiveValidation(r.minInclusive,r.maxInclusive))}if(r.minExclusive!==undefined||r.maxExclusive!==undefined){t.push(new ExclusiveValidation(r.minExclusive,r.maxExclusive))}if(r.enumeration!==undefined){t.push(new EnumerationValidation(r.enumeration))}}if(r.type===e.JsonPropTypes.String||r.repeated||r.type===e.JsonPropTypes.Any){if(r.length!==undefined||r.minLength!==undefined||r.maxLength!==undefined){t.push(new LengthValidation(r.length,r.minLength,r.maxLength))}}return t}const s=(r={})=>(s,o)=>{const i=`Cannot set type for ${o} property of ${s.constructor.name} schema`;let a;if(!n.has(s.constructor)){a=n.create(s.constructor);n.set(s.constructor,a)}else{a=n.get(s.constructor);if(a.target!==s.constructor){a=n.create(s.constructor);n.set(s.constructor,a)}}const c={type:e.JsonPropTypes.Any,validations:[]};const u=Object.assign(c,r);u.validations=getValidations(u);if(typeof u.type!=="number"){if(!n.has(u.type)&&!isConvertible(u.type)){throw new Error(`${i}. Assigning type doesn't have schema.`)}}let f;if(Array.isArray(r.schema)){f=r.schema}else{f=[r.schema||t]}for(const r of f){if(!a.names[r]){a.names[r]={}}const e=a.names[r];e[o]=u}};e.JsonError=JsonError;e.JsonParser=JsonParser;e.JsonProp=s;e.JsonSerializer=JsonSerializer;e.KeyError=KeyError;e.ParserError=ParserError;e.SerializerError=SerializerError;e.TransformError=TransformError;e.ValidationError=ValidationError},25:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});var n=t(389);var s=t(417);var o=t(765);var i=t(950);var a=t(895);var c=t(317);var u=t(870);function _interopDefaultLegacy(r){return r&&typeof r==="object"&&"default"in r?r:{default:r}}function _interopNamespace(r){if(r&&r.__esModule)return r;var e=Object.create(null);if(r){Object.keys(r).forEach(function(t){if(t!=="default"){var n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:true,get:function(){return r[t]}})}})}e["default"]=r;return Object.freeze(e)}var f=_interopNamespace(n);var l=_interopDefaultLegacy(s);var h=_interopNamespace(s);var y=_interopNamespace(o);const p={fromJSON:r=>Buffer.from(c.Convert.FromBase64Url(r)),toJSON:r=>c.Convert.ToBase64Url(r)};class CryptoKey extends f.CryptoKey{constructor(){super(...arguments);this.data=Buffer.alloc(0);this.algorithm={name:""};this.extractable=false;this.type="secret";this.usages=[];this.kty="oct";this.alg=""}}i.__decorate([a.JsonProp({name:"ext",type:a.JsonPropTypes.Boolean,optional:true})],CryptoKey.prototype,"extractable",void 0);i.__decorate([a.JsonProp({name:"key_ops",type:a.JsonPropTypes.String,repeated:true,optional:true})],CryptoKey.prototype,"usages",void 0);i.__decorate([a.JsonProp({type:a.JsonPropTypes.String})],CryptoKey.prototype,"kty",void 0);i.__decorate([a.JsonProp({type:a.JsonPropTypes.String})],CryptoKey.prototype,"alg",void 0);class SymmetricKey extends CryptoKey{constructor(){super(...arguments);this.kty="oct";this.type="secret"}}class AsymmetricKey extends CryptoKey{}class AesCryptoKey extends SymmetricKey{get alg(){switch(this.algorithm.name.toUpperCase()){case"AES-CBC":return`A${this.algorithm.length}CBC`;case"AES-CTR":return`A${this.algorithm.length}CTR`;case"AES-GCM":return`A${this.algorithm.length}GCM`;case"AES-KW":return`A${this.algorithm.length}KW`;case"AES-CMAC":return`A${this.algorithm.length}CMAC`;case"AES-ECB":return`A${this.algorithm.length}ECB`;default:throw new f.AlgorithmError("Unsupported algorithm name")}}set alg(r){}}i.__decorate([a.JsonProp({name:"k",converter:p})],AesCryptoKey.prototype,"data",void 0);const d=new WeakMap;function getCryptoKey(r){const e=d.get(r);if(!e){throw new f.OperationError("Cannot get CryptoKey from secure storage")}return e}function setCryptoKey(r){const e=f.CryptoKey.create(r.algorithm,r.type,r.extractable,r.usages);Object.freeze(e);d.set(e,r);return e}class AesCrypto{static async generateKey(r,e,t){const n=new AesCryptoKey;n.algorithm=r;n.extractable=e;n.usages=t;n.data=l["default"].randomBytes(r.length>>3);return n}static async exportKey(r,e){if(!(e instanceof AesCryptoKey)){throw new Error("key: Is not AesCryptoKey")}switch(r.toLowerCase()){case"jwk":return a.JsonSerializer.toJSON(e);case"raw":return new Uint8Array(e.data).buffer;default:throw new f.OperationError("format: Must be 'jwk' or 'raw'")}}static async importKey(r,e,t,n,s){let o;switch(r.toLowerCase()){case"jwk":o=a.JsonParser.fromJSON(e,{targetSchema:AesCryptoKey});break;case"raw":o=new AesCryptoKey;o.data=Buffer.from(e);break;default:throw new f.OperationError("format: Must be 'jwk' or 'raw'")}o.algorithm=t;o.algorithm.length=o.data.length<<3;o.extractable=n;o.usages=s;switch(o.algorithm.length){case 128:case 192:case 256:break;default:throw new f.OperationError("keyData: Is wrong key length")}return o}static async encrypt(r,e,t){switch(r.name.toUpperCase()){case"AES-CBC":return this.encryptAesCBC(r,e,Buffer.from(t));case"AES-CTR":return this.encryptAesCTR(r,e,Buffer.from(t));case"AES-GCM":return this.encryptAesGCM(r,e,Buffer.from(t));case"AES-KW":return this.encryptAesKW(r,e,Buffer.from(t));case"AES-ECB":return this.encryptAesECB(r,e,Buffer.from(t));default:throw new f.OperationError("algorithm: Is not recognized")}}static async decrypt(r,e,t){if(!(e instanceof AesCryptoKey)){throw new Error("key: Is not AesCryptoKey")}switch(r.name.toUpperCase()){case"AES-CBC":return this.decryptAesCBC(r,e,Buffer.from(t));case"AES-CTR":return this.decryptAesCTR(r,e,Buffer.from(t));case"AES-GCM":return this.decryptAesGCM(r,e,Buffer.from(t));case"AES-KW":return this.decryptAesKW(r,e,Buffer.from(t));case"AES-ECB":return this.decryptAesECB(r,e,Buffer.from(t));default:throw new f.OperationError("algorithm: Is not recognized")}}static async encryptAesCBC(r,e,t){const n=l["default"].createCipheriv(`aes-${e.algorithm.length}-cbc`,e.data,new Uint8Array(r.iv));let s=n.update(t);s=Buffer.concat([s,n.final()]);const o=new Uint8Array(s).buffer;return o}static async decryptAesCBC(r,e,t){const n=l["default"].createDecipheriv(`aes-${e.algorithm.length}-cbc`,e.data,new Uint8Array(r.iv));let s=n.update(t);s=Buffer.concat([s,n.final()]);return new Uint8Array(s).buffer}static async encryptAesCTR(r,e,t){const n=l["default"].createCipheriv(`aes-${e.algorithm.length}-ctr`,e.data,Buffer.from(r.counter));let s=n.update(t);s=Buffer.concat([s,n.final()]);const o=new Uint8Array(s).buffer;return o}static async decryptAesCTR(r,e,t){const n=l["default"].createDecipheriv(`aes-${e.algorithm.length}-ctr`,e.data,new Uint8Array(r.counter));let s=n.update(t);s=Buffer.concat([s,n.final()]);return new Uint8Array(s).buffer}static async encryptAesGCM(r,e,t){const n=l["default"].createCipheriv(`aes-${e.algorithm.length}-gcm`,e.data,Buffer.from(r.iv),{authTagLength:(r.tagLength||128)>>3});if(r.additionalData){n.setAAD(Buffer.from(r.additionalData))}let s=n.update(t);s=Buffer.concat([s,n.final(),n.getAuthTag()]);const o=new Uint8Array(s).buffer;return o}static async decryptAesGCM(r,e,t){const n=l["default"].createDecipheriv(`aes-${e.algorithm.length}-gcm`,e.data,new Uint8Array(r.iv));const s=(r.tagLength||128)>>3;const o=t.slice(0,t.length-s);const i=t.slice(t.length-s);if(r.additionalData){n.setAAD(Buffer.from(r.additionalData))}n.setAuthTag(i);let a=n.update(o);a=Buffer.concat([a,n.final()]);return new Uint8Array(a).buffer}static async encryptAesKW(r,e,t){const n=l["default"].createCipheriv(`id-aes${e.algorithm.length}-wrap`,e.data,this.AES_KW_IV);let s=n.update(t);s=Buffer.concat([s,n.final()]);return new Uint8Array(s).buffer}static async decryptAesKW(r,e,t){const n=l["default"].createDecipheriv(`id-aes${e.algorithm.length}-wrap`,e.data,this.AES_KW_IV);let s=n.update(t);s=Buffer.concat([s,n.final()]);return new Uint8Array(s).buffer}static async encryptAesECB(r,e,t){const n=l["default"].createCipheriv(`aes-${e.algorithm.length}-ecb`,e.data,new Uint8Array(0));let s=n.update(t);s=Buffer.concat([s,n.final()]);const o=new Uint8Array(s).buffer;return o}static async decryptAesECB(r,e,t){const n=l["default"].createDecipheriv(`aes-${e.algorithm.length}-ecb`,e.data,new Uint8Array(0));let s=n.update(t);s=Buffer.concat([s,n.final()]);return new Uint8Array(s).buffer}}AesCrypto.AES_KW_IV=Buffer.from("A6A6A6A6A6A6A6A6","hex");class AesCbcProvider extends f.AesCbcProvider{async onGenerateKey(r,e,t){const n=await AesCrypto.generateKey({name:this.name,length:r.length},e,t);return setCryptoKey(n)}async onEncrypt(r,e,t){return AesCrypto.encrypt(r,getCryptoKey(e),new Uint8Array(t))}async onDecrypt(r,e,t){return AesCrypto.decrypt(r,getCryptoKey(e),new Uint8Array(t))}async onExportKey(r,e){return AesCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await AesCrypto.importKey(r,e,{name:t.name},n,s);return setCryptoKey(o)}checkCryptoKey(r,e){super.checkCryptoKey(r,e);if(!(getCryptoKey(r)instanceof AesCryptoKey)){throw new TypeError("key: Is not a AesCryptoKey")}}}const g=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);const A=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135]);const w=16;function bitShiftLeft(r){const e=Buffer.alloc(r.length);const t=r.length-1;for(let n=0;n>3);return n}static async exportKey(r,e){switch(r.toLowerCase()){case"jwk":return a.JsonSerializer.toJSON(e);case"raw":return new Uint8Array(e.data).buffer;default:throw new f.OperationError("format: Must be 'jwk' or 'raw'")}}static async importKey(r,e,t,n,s){let o;switch(r.toLowerCase()){case"jwk":o=a.JsonParser.fromJSON(e,{targetSchema:DesCryptoKey});break;case"raw":o=new DesCryptoKey;o.data=Buffer.from(e);break;default:throw new f.OperationError("format: Must be 'jwk' or 'raw'")}o.algorithm=t;o.extractable=n;o.usages=s;return o}static async encrypt(r,e,t){switch(r.name.toUpperCase()){case"DES-CBC":return this.encryptDesCBC(r,e,Buffer.from(t));case"DES-EDE3-CBC":return this.encryptDesEDE3CBC(r,e,Buffer.from(t));default:throw new f.OperationError("algorithm: Is not recognized")}}static async decrypt(r,e,t){if(!(e instanceof DesCryptoKey)){throw new Error("key: Is not DesCryptoKey")}switch(r.name.toUpperCase()){case"DES-CBC":return this.decryptDesCBC(r,e,Buffer.from(t));case"DES-EDE3-CBC":return this.decryptDesEDE3CBC(r,e,Buffer.from(t));default:throw new f.OperationError("algorithm: Is not recognized")}}static async encryptDesCBC(r,e,t){const n=l["default"].createCipheriv(`des-cbc`,e.data,new Uint8Array(r.iv));let s=n.update(t);s=Buffer.concat([s,n.final()]);const o=new Uint8Array(s).buffer;return o}static async decryptDesCBC(r,e,t){const n=l["default"].createDecipheriv(`des-cbc`,e.data,new Uint8Array(r.iv));let s=n.update(t);s=Buffer.concat([s,n.final()]);return new Uint8Array(s).buffer}static async encryptDesEDE3CBC(r,e,t){const n=l["default"].createCipheriv(`des-ede3-cbc`,e.data,Buffer.from(r.iv));let s=n.update(t);s=Buffer.concat([s,n.final()]);const o=new Uint8Array(s).buffer;return o}static async decryptDesEDE3CBC(r,e,t){const n=l["default"].createDecipheriv(`des-ede3-cbc`,e.data,new Uint8Array(r.iv));let s=n.update(t);s=Buffer.concat([s,n.final()]);return new Uint8Array(s).buffer}}class DesCbcProvider extends f.DesProvider{constructor(){super(...arguments);this.keySizeBits=64;this.ivSize=8;this.name="DES-CBC"}async onGenerateKey(r,e,t){const n=await DesCrypto.generateKey({name:this.name,length:this.keySizeBits},e,t);return setCryptoKey(n)}async onEncrypt(r,e,t){return DesCrypto.encrypt(r,getCryptoKey(e),new Uint8Array(t))}async onDecrypt(r,e,t){return DesCrypto.decrypt(r,getCryptoKey(e),new Uint8Array(t))}async onExportKey(r,e){return DesCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await DesCrypto.importKey(r,e,{name:this.name,length:this.keySizeBits},n,s);if(o.data.length!==this.keySizeBits>>3){throw new f.OperationError("keyData: Wrong key size")}return setCryptoKey(o)}checkCryptoKey(r,e){super.checkCryptoKey(r,e);if(!(getCryptoKey(r)instanceof DesCryptoKey)){throw new TypeError("key: Is not a DesCryptoKey")}}}class DesEde3CbcProvider extends f.DesProvider{constructor(){super(...arguments);this.keySizeBits=192;this.ivSize=8;this.name="DES-EDE3-CBC"}async onGenerateKey(r,e,t){const n=await DesCrypto.generateKey({name:this.name,length:this.keySizeBits},e,t);return setCryptoKey(n)}async onEncrypt(r,e,t){return DesCrypto.encrypt(r,getCryptoKey(e),new Uint8Array(t))}async onDecrypt(r,e,t){return DesCrypto.decrypt(r,getCryptoKey(e),new Uint8Array(t))}async onExportKey(r,e){return DesCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await DesCrypto.importKey(r,e,{name:this.name,length:this.keySizeBits},n,s);if(o.data.length!==this.keySizeBits>>3){throw new f.OperationError("keyData: Wrong key size")}return setCryptoKey(o)}checkCryptoKey(r,e){super.checkCryptoKey(r,e);if(!(getCryptoKey(r)instanceof DesCryptoKey)){throw new TypeError("key: Is not a DesCryptoKey")}}}function getJwkAlgorithm(r){switch(r.name.toUpperCase()){case"RSA-OAEP":{const e=/(\d+)$/.exec(r.hash.name)[1];return`RSA-OAEP${e!=="1"?`-${e}`:""}`}case"RSASSA-PKCS1-V1_5":return`RS${/(\d+)$/.exec(r.hash.name)[1]}`;case"RSA-PSS":return`PS${/(\d+)$/.exec(r.hash.name)[1]}`;case"RSA-PKCS1":return`RS1`;default:throw new f.OperationError("algorithm: Is not recognized")}}class RsaPrivateKey extends AsymmetricKey{constructor(){super(...arguments);this.type="private"}getKey(){const r=u.AsnParser.parse(this.data,f.asn1.PrivateKeyInfo);return u.AsnParser.parse(r.privateKey,f.asn1.RsaPrivateKey)}toJSON(){const r=this.getKey();const e={kty:"RSA",alg:getJwkAlgorithm(this.algorithm),key_ops:this.usages,ext:this.extractable};return Object.assign(e,a.JsonSerializer.toJSON(r))}fromJSON(r){const e=a.JsonParser.fromJSON(r,{targetSchema:f.asn1.RsaPrivateKey});const t=new f.asn1.PrivateKeyInfo;t.privateKeyAlgorithm.algorithm="1.2.840.113549.1.1.1";t.privateKeyAlgorithm.parameters=null;t.privateKey=u.AsnSerializer.serialize(e);this.data=Buffer.from(u.AsnSerializer.serialize(t))}}class RsaPublicKey extends AsymmetricKey{constructor(){super(...arguments);this.type="public"}getKey(){const r=u.AsnParser.parse(this.data,f.asn1.PublicKeyInfo);return u.AsnParser.parse(r.publicKey,f.asn1.RsaPublicKey)}toJSON(){const r=this.getKey();const e={kty:"RSA",alg:getJwkAlgorithm(this.algorithm),key_ops:this.usages,ext:this.extractable};return Object.assign(e,a.JsonSerializer.toJSON(r))}fromJSON(r){const e=a.JsonParser.fromJSON(r,{targetSchema:f.asn1.RsaPublicKey});const t=new f.asn1.PublicKeyInfo;t.publicKeyAlgorithm.algorithm="1.2.840.113549.1.1.1";t.publicKeyAlgorithm.parameters=null;t.publicKey=u.AsnSerializer.serialize(e);this.data=Buffer.from(u.AsnSerializer.serialize(t))}}class RsaCrypto{static async generateKey(r,e,t){const n=new RsaPrivateKey;n.algorithm=r;n.extractable=e;n.usages=t.filter(r=>this.privateKeyUsages.indexOf(r)!==-1);const s=new RsaPublicKey;s.algorithm=r;s.extractable=true;s.usages=t.filter(r=>this.publicKeyUsages.indexOf(r)!==-1);const o=Buffer.concat([Buffer.alloc(4-r.publicExponent.byteLength,0),Buffer.from(r.publicExponent)]).readInt32BE(0);const i=l["default"].generateKeyPairSync("rsa",{modulusLength:r.modulusLength,publicExponent:o,publicKeyEncoding:{format:"der",type:"spki"},privateKeyEncoding:{format:"der",type:"pkcs8"}});n.data=i.privateKey;s.data=i.publicKey;const a={privateKey:n,publicKey:s};return a}static async exportKey(r,e){switch(r.toLowerCase()){case"jwk":return a.JsonSerializer.toJSON(e);case"pkcs8":case"spki":return new Uint8Array(e.data).buffer;default:throw new f.OperationError("format: Must be 'jwk', 'pkcs8' or 'spki'")}}static async importKey(r,e,t,n,s){switch(r.toLowerCase()){case"jwk":{const r=e;if(r.d){const r=a.JsonParser.fromJSON(e,{targetSchema:f.asn1.RsaPrivateKey});return this.importPrivateKey(r,t,n,s)}else{const r=a.JsonParser.fromJSON(e,{targetSchema:f.asn1.RsaPublicKey});return this.importPublicKey(r,t,n,s)}}case"spki":{const r=u.AsnParser.parse(new Uint8Array(e),f.asn1.PublicKeyInfo);const o=u.AsnParser.parse(r.publicKey,f.asn1.RsaPublicKey);return this.importPublicKey(o,t,n,s)}case"pkcs8":{const r=u.AsnParser.parse(new Uint8Array(e),f.asn1.PrivateKeyInfo);const o=u.AsnParser.parse(r.privateKey,f.asn1.RsaPrivateKey);return this.importPrivateKey(o,t,n,s)}default:throw new f.OperationError("format: Must be 'jwk', 'pkcs8' or 'spki'")}}static async sign(r,e,t){switch(r.name.toUpperCase()){case"RSA-PSS":case"RSASSA-PKCS1-V1_5":return this.signRsa(r,e,t);default:throw new f.OperationError("algorithm: Is not recognized")}}static async verify(r,e,t,n){switch(r.name.toUpperCase()){case"RSA-PSS":case"RSASSA-PKCS1-V1_5":return this.verifySSA(r,e,n,t);default:throw new f.OperationError("algorithm: Is not recognized")}}static async encrypt(r,e,t){switch(r.name.toUpperCase()){case"RSA-OAEP":return this.encryptOAEP(r,e,t);default:throw new f.OperationError("algorithm: Is not recognized")}}static async decrypt(r,e,t){switch(r.name.toUpperCase()){case"RSA-OAEP":return this.decryptOAEP(r,e,t);default:throw new f.OperationError("algorithm: Is not recognized")}}static importPrivateKey(r,e,t,n){const s=new f.asn1.PrivateKeyInfo;s.privateKeyAlgorithm.algorithm="1.2.840.113549.1.1.1";s.privateKeyAlgorithm.parameters=null;s.privateKey=u.AsnSerializer.serialize(r);const o=new RsaPrivateKey;o.data=Buffer.from(u.AsnSerializer.serialize(s));o.algorithm=Object.assign({},e);o.algorithm.publicExponent=new Uint8Array(r.publicExponent);o.algorithm.modulusLength=r.modulus.byteLength<<3;o.extractable=t;o.usages=n;return o}static importPublicKey(r,e,t,n){const s=new f.asn1.PublicKeyInfo;s.publicKeyAlgorithm.algorithm="1.2.840.113549.1.1.1";s.publicKeyAlgorithm.parameters=null;s.publicKey=u.AsnSerializer.serialize(r);const o=new RsaPublicKey;o.data=Buffer.from(u.AsnSerializer.serialize(s));o.algorithm=Object.assign({},e);o.algorithm.publicExponent=new Uint8Array(r.publicExponent);o.algorithm.modulusLength=r.modulus.byteLength<<3;o.extractable=t;o.usages=n;return o}static getCryptoAlgorithm(r){switch(r.hash.name.toUpperCase()){case"SHA-1":return"RSA-SHA1";case"SHA-256":return"RSA-SHA256";case"SHA-384":return"RSA-SHA384";case"SHA-512":return"RSA-SHA512";default:throw new f.OperationError("algorithm.hash: Is not recognized")}}static signRsa(r,e,t){const n=this.getCryptoAlgorithm(e.algorithm);const s=l["default"].createSign(n);s.update(Buffer.from(t));if(!e.pem){e.pem=`-----BEGIN PRIVATE KEY-----\n${e.data.toString("base64")}\n-----END PRIVATE KEY-----`}const o={key:e.pem};if(r.name.toUpperCase()==="RSA-PSS"){o.padding=l["default"].constants.RSA_PKCS1_PSS_PADDING;o.saltLength=r.saltLength}const i=s.sign(o);return new Uint8Array(i).buffer}static verifySSA(r,e,t,n){const s=this.getCryptoAlgorithm(e.algorithm);const o=l["default"].createVerify(s);o.update(Buffer.from(t));if(!e.pem){e.pem=`-----BEGIN PUBLIC KEY-----\n${e.data.toString("base64")}\n-----END PUBLIC KEY-----`}const i={key:e.pem};if(r.name.toUpperCase()==="RSA-PSS"){i.padding=l["default"].constants.RSA_PKCS1_PSS_PADDING;i.saltLength=r.saltLength}const a=o.verify(i,n);return a}static encryptOAEP(r,e,t){const n={key:`-----BEGIN PUBLIC KEY-----\n${e.data.toString("base64")}\n-----END PUBLIC KEY-----`,padding:l["default"].constants.RSA_PKCS1_OAEP_PADDING};if(r.label);return new Uint8Array(l["default"].publicEncrypt(n,t)).buffer}static decryptOAEP(r,e,t){const n={key:`-----BEGIN PRIVATE KEY-----\n${e.data.toString("base64")}\n-----END PRIVATE KEY-----`,padding:l["default"].constants.RSA_PKCS1_OAEP_PADDING};if(r.label);return new Uint8Array(l["default"].privateDecrypt(n,t)).buffer}}RsaCrypto.publicKeyUsages=["verify","encrypt","wrapKey"];RsaCrypto.privateKeyUsages=["sign","decrypt","unwrapKey"];class RsaSsaProvider extends f.RsaSsaProvider{async onGenerateKey(r,e,t){const n=await RsaCrypto.generateKey({...r,name:this.name},e,t);return{privateKey:setCryptoKey(n.privateKey),publicKey:setCryptoKey(n.publicKey)}}async onSign(r,e,t){return RsaCrypto.sign(r,getCryptoKey(e),new Uint8Array(t))}async onVerify(r,e,t,n){return RsaCrypto.verify(r,getCryptoKey(e),new Uint8Array(t),new Uint8Array(n))}async onExportKey(r,e){return RsaCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await RsaCrypto.importKey(r,e,{...t,name:this.name},n,s);return setCryptoKey(o)}checkCryptoKey(r,e){super.checkCryptoKey(r,e);const t=getCryptoKey(r);if(!(t instanceof RsaPrivateKey||t instanceof RsaPublicKey)){throw new TypeError("key: Is not RSA CryptoKey")}}}class RsaPssProvider extends f.RsaPssProvider{async onGenerateKey(r,e,t){const n=await RsaCrypto.generateKey({...r,name:this.name},e,t);return{privateKey:setCryptoKey(n.privateKey),publicKey:setCryptoKey(n.publicKey)}}async onSign(r,e,t){return RsaCrypto.sign(r,getCryptoKey(e),new Uint8Array(t))}async onVerify(r,e,t,n){return RsaCrypto.verify(r,getCryptoKey(e),new Uint8Array(t),new Uint8Array(n))}async onExportKey(r,e){return RsaCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await RsaCrypto.importKey(r,e,{...t,name:this.name},n,s);return setCryptoKey(o)}checkCryptoKey(r,e){super.checkCryptoKey(r,e);const t=getCryptoKey(r);if(!(t instanceof RsaPrivateKey||t instanceof RsaPublicKey)){throw new TypeError("key: Is not RSA CryptoKey")}}}class ShaCrypto{static size(r){switch(r.name.toUpperCase()){case"SHA-1":return 160;case"SHA-256":return 256;case"SHA-384":return 384;case"SHA-512":return 512;default:throw new Error("Unrecognized name")}}static digest(r,e){const t=l["default"].createHash(r.name.replace("-","")).update(Buffer.from(e)).digest();return new Uint8Array(t).buffer}}class RsaOaepProvider extends f.RsaOaepProvider{async onGenerateKey(r,e,t){const n=await RsaCrypto.generateKey({...r,name:this.name},e,t);return{privateKey:setCryptoKey(n.privateKey),publicKey:setCryptoKey(n.publicKey)}}async onEncrypt(r,e,t){const n=getCryptoKey(e);const s=new Uint8Array(t);const o=Math.ceil(n.algorithm.modulusLength>>3);const i=ShaCrypto.size(n.algorithm.hash)>>3;const a=s.byteLength;const c=o-a-2*i-2;if(a>o-2*i-2){throw new Error("Data too large")}const u=new Uint8Array(o);const h=u.subarray(1,i+1);const y=u.subarray(i+1);y.set(s,i+c+1);const p=l["default"].createHash(n.algorithm.hash.name.replace("-","")).update(f.BufferSourceConverter.toUint8Array(r.label||new Uint8Array(0))).digest();y.set(p,0);y[i+c]=1;l["default"].randomFillSync(h);const d=this.mgf1(n.algorithm.hash,h,y.length);for(let r=0;r>3);const o=ShaCrypto.size(n.algorithm.hash)>>3;const i=t.byteLength;if(i!==s){throw new Error("Bad data")}if(!n.pem){n.pem=`-----BEGIN PRIVATE KEY-----\n${n.data.toString("base64")}\n-----END PRIVATE KEY-----`}let a=l["default"].privateDecrypt({key:n.pem,padding:l["default"].constants.RSA_NO_PADDING},Buffer.from(t));const c=a[0];const u=a.subarray(1,o+1);const h=a.subarray(o+1);if(c!==0){throw new Error("Decryption failed")}const y=this.mgf1(n.algorithm.hash,h,u.length);for(let r=0;r>3;const s=new Uint8Array(t);const o=new Uint8Array(4);const i=Math.ceil(t/n);for(let t=0;t>>24;o[1]=t>>>16&255;o[2]=t>>>8&255;o[3]=t&255;const i=s.subarray(t*n);let a=l["default"].createHash(r.name.replace("-","")).update(e).update(o).digest();if(a.length>i.length){a=a.subarray(0,i.length)}i.set(a)}return s}}class RsaEsProvider extends f.ProviderCrypto{constructor(){super(...arguments);this.name="RSAES-PKCS1-v1_5";this.usages={publicKey:["encrypt","wrapKey"],privateKey:["decrypt","unwrapKey"]}}async onGenerateKey(r,e,t){const n=await RsaCrypto.generateKey({...r,name:this.name},e,t);return{privateKey:setCryptoKey(n.privateKey),publicKey:setCryptoKey(n.publicKey)}}checkGenerateKeyParams(r){this.checkRequiredProperty(r,"publicExponent");if(!(r.publicExponent&&r.publicExponent instanceof Uint8Array)){throw new TypeError("publicExponent: Missing or not a Uint8Array")}const e=c.Convert.ToBase64(r.publicExponent);if(!(e==="Aw=="||e==="AQAB")){throw new TypeError("publicExponent: Must be [3] or [1,0,1]")}this.checkRequiredProperty(r,"modulusLength");switch(r.modulusLength){case 1024:case 2048:case 4096:break;default:throw new TypeError("modulusLength: Must be 1024, 2048, or 4096")}}async onEncrypt(r,e,t){const n=this.toCryptoOptions(e);const s=h.publicEncrypt(n,new Uint8Array(t));return new Uint8Array(s).buffer}async onDecrypt(r,e,t){const n=this.toCryptoOptions(e);const s=h.privateDecrypt(n,new Uint8Array(t));return new Uint8Array(s).buffer}async onExportKey(r,e){return RsaCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await RsaCrypto.importKey(r,e,{...t,name:this.name},n,s);return setCryptoKey(o)}checkCryptoKey(r,e){super.checkCryptoKey(r,e);const t=getCryptoKey(r);if(!(t instanceof RsaPrivateKey||t instanceof RsaPublicKey)){throw new TypeError("key: Is not RSA CryptoKey")}}toCryptoOptions(r){const e=r.type.toUpperCase();return{key:`-----BEGIN ${e} KEY-----\n${getCryptoKey(r).data.toString("base64")}\n-----END ${e} KEY-----`,padding:h.constants.RSA_PKCS1_PADDING}}}const B={"1.2.840.10045.3.1.7":"P-256","P-256":"1.2.840.10045.3.1.7","1.3.132.0.34":"P-384","P-384":"1.3.132.0.34","1.3.132.0.35":"P-521","P-521":"1.3.132.0.35","1.3.132.0.10":"K-256","K-256":"1.3.132.0.10"};function getOidByNamedCurve$1(r){const e=B[r];if(!e){throw new f.OperationError(`Cannot convert WebCrypto named curve '${r}' to OID`)}return e}class EcPrivateKey extends AsymmetricKey{constructor(){super(...arguments);this.type="private"}getKey(){const r=u.AsnParser.parse(this.data,f.asn1.PrivateKeyInfo);return u.AsnParser.parse(r.privateKey,f.asn1.EcPrivateKey)}toJSON(){const r=this.getKey();const e={kty:"EC",crv:this.algorithm.namedCurve,key_ops:this.usages,ext:this.extractable};return Object.assign(e,a.JsonSerializer.toJSON(r))}fromJSON(r){if(!r.crv){throw new f.OperationError(`Cannot get named curve from JWK. Property 'crv' is required`)}const e=new f.asn1.PrivateKeyInfo;e.privateKeyAlgorithm.algorithm="1.2.840.10045.2.1";e.privateKeyAlgorithm.parameters=u.AsnSerializer.serialize(new f.asn1.ObjectIdentifier(getOidByNamedCurve$1(r.crv)));const t=a.JsonParser.fromJSON(r,{targetSchema:f.asn1.EcPrivateKey});e.privateKey=u.AsnSerializer.serialize(t);this.data=Buffer.from(u.AsnSerializer.serialize(e));return this}}class EcPublicKey extends AsymmetricKey{constructor(){super(...arguments);this.type="public"}getKey(){const r=u.AsnParser.parse(this.data,f.asn1.PublicKeyInfo);return new f.asn1.EcPublicKey(r.publicKey)}toJSON(){const r=this.getKey();const e={kty:"EC",crv:this.algorithm.namedCurve,key_ops:this.usages,ext:this.extractable};return Object.assign(e,a.JsonSerializer.toJSON(r))}fromJSON(r){if(!r.crv){throw new f.OperationError(`Cannot get named curve from JWK. Property 'crv' is required`)}const e=a.JsonParser.fromJSON(r,{targetSchema:f.asn1.EcPublicKey});const t=new f.asn1.PublicKeyInfo;t.publicKeyAlgorithm.algorithm="1.2.840.10045.2.1";t.publicKeyAlgorithm.parameters=u.AsnSerializer.serialize(new f.asn1.ObjectIdentifier(getOidByNamedCurve$1(r.crv)));t.publicKey=u.AsnSerializer.toASN(e).valueHex;this.data=Buffer.from(u.AsnSerializer.serialize(t));return this}}class EcCrypto{static async generateKey(r,e,t){const n=new EcPrivateKey;n.algorithm=r;n.extractable=e;n.usages=t.filter(r=>this.privateKeyUsages.indexOf(r)!==-1);const s=new EcPublicKey;s.algorithm=r;s.extractable=true;s.usages=t.filter(r=>this.publicKeyUsages.indexOf(r)!==-1);const o=l["default"].generateKeyPairSync("ec",{namedCurve:this.getOpenSSLNamedCurve(r.namedCurve),publicKeyEncoding:{format:"der",type:"spki"},privateKeyEncoding:{format:"der",type:"pkcs8"}});n.data=o.privateKey;s.data=o.publicKey;const i={privateKey:n,publicKey:s};return i}static async sign(r,e,t){const n=r.hash.name.replace("-","");const s=l["default"].createSign(n);s.update(Buffer.from(t));if(!e.pem){e.pem=`-----BEGIN PRIVATE KEY-----\n${e.data.toString("base64")}\n-----END PRIVATE KEY-----`}const o={key:e.pem};const i=s.sign(o);const a=u.AsnParser.parse(i,f.asn1.EcDsaSignature);const c=this.getPointSize(e.algorithm.namedCurve);const h=this.addPadding(c,Buffer.from(a.r));const y=this.addPadding(c,Buffer.from(a.s));const p=new Uint8Array(Buffer.concat([h,y])).buffer;return p}static async verify(r,e,t,n){const s=r.hash.name.replace("-","");const o=l["default"].createVerify(s);o.update(Buffer.from(n));if(!e.pem){e.pem=`-----BEGIN PUBLIC KEY-----\n${e.data.toString("base64")}\n-----END PUBLIC KEY-----`}const i={key:e.pem};const a=new f.asn1.EcDsaSignature;const c=this.getPointSize(e.algorithm.namedCurve);a.r=this.removePadding(t.slice(0,c));a.s=this.removePadding(t.slice(c,c+c));const h=Buffer.from(u.AsnSerializer.serialize(a));const y=o.verify(i,h);return y}static async deriveBits(r,e,t){const n=this.getOpenSSLNamedCurve(e.algorithm.namedCurve);const s=l["default"].createECDH(n);const o=u.AsnParser.parse(e.data,f.asn1.PrivateKeyInfo);const i=u.AsnParser.parse(o.privateKey,f.asn1.EcPrivateKey);s.setPrivateKey(Buffer.from(i.privateKey));const a=u.AsnParser.parse(r.public.data,f.asn1.PublicKeyInfo);const c=s.computeSecret(Buffer.from(a.publicKey));return new Uint8Array(c).buffer.slice(0,t>>3)}static async exportKey(r,e){switch(r.toLowerCase()){case"jwk":return a.JsonSerializer.toJSON(e);case"pkcs8":case"spki":return new Uint8Array(e.data).buffer;case"raw":{const r=u.AsnParser.parse(e.data,f.asn1.PublicKeyInfo);return r.publicKey}default:throw new f.OperationError("format: Must be 'jwk', 'raw', pkcs8' or 'spki'")}}static async importKey(r,e,t,n,s){switch(r.toLowerCase()){case"jwk":{const r=e;if(r.d){const r=a.JsonParser.fromJSON(e,{targetSchema:f.asn1.EcPrivateKey});return this.importPrivateKey(r,t,n,s)}else{const r=a.JsonParser.fromJSON(e,{targetSchema:f.asn1.EcPublicKey});return this.importPublicKey(r,t,n,s)}}case"raw":{const r=new f.asn1.EcPublicKey(e);return this.importPublicKey(r,t,n,s)}case"spki":{const r=u.AsnParser.parse(new Uint8Array(e),f.asn1.PublicKeyInfo);const o=new f.asn1.EcPublicKey(r.publicKey);this.assertKeyParameters(r.publicKeyAlgorithm.parameters,t.namedCurve);return this.importPublicKey(o,t,n,s)}case"pkcs8":{const r=u.AsnParser.parse(new Uint8Array(e),f.asn1.PrivateKeyInfo);const o=u.AsnParser.parse(r.privateKey,f.asn1.EcPrivateKey);this.assertKeyParameters(r.privateKeyAlgorithm.parameters,t.namedCurve);return this.importPrivateKey(o,t,n,s)}default:throw new f.OperationError("format: Must be 'jwk', 'raw', 'pkcs8' or 'spki'")}}static assertKeyParameters(r,e){if(!r){throw new f.CryptoError("Key info doesn't have required parameters")}let t="";try{t=u.AsnParser.parse(r,f.asn1.ObjectIdentifier).value}catch(r){throw new f.CryptoError("Cannot read key info parameters")}if(getOidByNamedCurve$1(e)!==t){throw new f.CryptoError("Key info parameter doesn't match to named curve")}}static async importPrivateKey(r,e,t,n){const s=new f.asn1.PrivateKeyInfo;s.privateKeyAlgorithm.algorithm="1.2.840.10045.2.1";s.privateKeyAlgorithm.parameters=u.AsnSerializer.serialize(new f.asn1.ObjectIdentifier(getOidByNamedCurve$1(e.namedCurve)));s.privateKey=u.AsnSerializer.serialize(r);const o=new EcPrivateKey;o.data=Buffer.from(u.AsnSerializer.serialize(s));o.algorithm=Object.assign({},e);o.extractable=t;o.usages=n;return o}static async importPublicKey(r,e,t,n){const s=new f.asn1.PublicKeyInfo;s.publicKeyAlgorithm.algorithm="1.2.840.10045.2.1";const o=getOidByNamedCurve$1(e.namedCurve);s.publicKeyAlgorithm.parameters=u.AsnSerializer.serialize(new f.asn1.ObjectIdentifier(o));s.publicKey=r.value;const i=new EcPublicKey;i.data=Buffer.from(u.AsnSerializer.serialize(s));i.algorithm=Object.assign({},e);i.extractable=t;i.usages=n;return i}static getOpenSSLNamedCurve(r){switch(r.toUpperCase()){case"P-256":return"prime256v1";case"K-256":return"secp256k1";case"P-384":return"secp384r1";case"P-521":return"secp521r1";default:throw new f.OperationError(`Cannot convert WebCrypto named curve to NodeJs. Unknown name '${r}'`)}}static getPointSize(r){switch(r){case"P-256":case"K-256":return 32;case"P-384":return 48;case"P-521":return 66;default:throw new Error(`Cannot get size for the named curve '${r}'`)}}static addPadding(r,e){const t=Buffer.alloc(r);t.set(Buffer.from(e),r-e.length);return t}static removePadding(r){for(let e=0;ethis.privateKeyUsages.indexOf(r)!==-1);const s=new EdPublicKey;s.algorithm=r;s.extractable=true;s.usages=t.filter(r=>this.publicKeyUsages.indexOf(r)!==-1);const o=r.namedCurve.toLowerCase();const i=l["default"].generateKeyPairSync(o,{publicKeyEncoding:{format:"der",type:"spki"},privateKeyEncoding:{format:"der",type:"pkcs8"}});n.data=i.privateKey;s.data=i.publicKey;const a={privateKey:n,publicKey:s};return a}static async sign(r,e,t){if(!e.pem){e.pem=`-----BEGIN PRIVATE KEY-----\n${e.data.toString("base64")}\n-----END PRIVATE KEY-----`}const n={key:e.pem};const s=l["default"].sign(null,Buffer.from(t),n);return f.BufferSourceConverter.toArrayBuffer(s)}static async verify(r,e,t,n){if(!e.pem){e.pem=`-----BEGIN PUBLIC KEY-----\n${e.data.toString("base64")}\n-----END PUBLIC KEY-----`}const s={key:e.pem};const o=l["default"].verify(null,Buffer.from(n),s,Buffer.from(t));return o}static async deriveBits(r,e,t){const n=l["default"].createPublicKey({key:r.public.data,format:"der",type:"spki"});const s=l["default"].createPrivateKey({key:e.data,format:"der",type:"pkcs8"});const o=l["default"].diffieHellman({publicKey:n,privateKey:s});return new Uint8Array(o).buffer.slice(0,t>>3)}static async exportKey(r,e){switch(r.toLowerCase()){case"jwk":return a.JsonSerializer.toJSON(e);case"pkcs8":case"spki":return new Uint8Array(e.data).buffer;case"raw":{const r=u.AsnParser.parse(e.data,f.asn1.PublicKeyInfo);return r.publicKey}default:throw new f.OperationError("format: Must be 'jwk', 'raw', pkcs8' or 'spki'")}}static async importKey(r,e,t,n,s){switch(r.toLowerCase()){case"jwk":{const r=e;if(r.d){const r=a.JsonParser.fromJSON(e,{targetSchema:f.asn1.CurvePrivateKey});return this.importPrivateKey(r,t,n,s)}else{if(!r.x){throw new TypeError("keyData: Cannot get required 'x' filed")}return this.importPublicKey(c.Convert.FromBase64Url(r.x),t,n,s)}}case"raw":{return this.importPublicKey(e,t,n,s)}case"spki":{const r=u.AsnParser.parse(new Uint8Array(e),f.asn1.PublicKeyInfo);return this.importPublicKey(r.publicKey,t,n,s)}case"pkcs8":{const r=u.AsnParser.parse(new Uint8Array(e),f.asn1.PrivateKeyInfo);const o=u.AsnParser.parse(r.privateKey,f.asn1.CurvePrivateKey);return this.importPrivateKey(o,t,n,s)}default:throw new f.OperationError("format: Must be 'jwk', 'raw', 'pkcs8' or 'spki'")}}static importPrivateKey(r,e,t,n){const s=new EdPrivateKey;s.fromJSON({crv:e.namedCurve,d:c.Convert.ToBase64Url(r.d)});s.algorithm=Object.assign({},e);s.extractable=t;s.usages=n;return s}static async importPublicKey(r,e,t,n){const s=new EdPublicKey;s.fromJSON({crv:e.namedCurve,x:c.Convert.ToBase64Url(r)});s.algorithm=Object.assign({},e);s.extractable=t;s.usages=n;return s}}EdCrypto.publicKeyUsages=["verify"];EdCrypto.privateKeyUsages=["sign","deriveKey","deriveBits"];class EdDsaProvider extends f.EdDsaProvider{async onGenerateKey(r,e,t){const n=await EdCrypto.generateKey({name:this.name,namedCurve:r.namedCurve.replace(/^ed/i,"Ed")},e,t);return{privateKey:setCryptoKey(n.privateKey),publicKey:setCryptoKey(n.publicKey)}}async onSign(r,e,t){return EdCrypto.sign(r,getCryptoKey(e),new Uint8Array(t))}async onVerify(r,e,t,n){return EdCrypto.verify(r,getCryptoKey(e),new Uint8Array(t),new Uint8Array(n))}async onExportKey(r,e){return EdCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await EdCrypto.importKey(r,e,{...t,name:this.name},n,s);return setCryptoKey(o)}}class EcdhEsProvider extends f.EcdhEsProvider{async onGenerateKey(r,e,t){const n=await EdCrypto.generateKey({name:this.name,namedCurve:r.namedCurve.toUpperCase()},e,t);return{privateKey:setCryptoKey(n.privateKey),publicKey:setCryptoKey(n.publicKey)}}async onDeriveBits(r,e,t){const n=await EdCrypto.deriveBits({...r,public:getCryptoKey(r.public)},getCryptoKey(e),t);return n}async onExportKey(r,e){return EdCrypto.exportKey(r,getCryptoKey(e))}async onImportKey(r,e,t,n,s){const o=await EdCrypto.importKey(r,e,{...t,name:this.name},n,s);return setCryptoKey(o)}}class Sha1Provider extends f.ProviderCrypto{constructor(){super(...arguments);this.name="SHA-1";this.usages=[]}async onDigest(r,e){return ShaCrypto.digest(r,e)}}class Sha256Provider extends f.ProviderCrypto{constructor(){super(...arguments);this.name="SHA-256";this.usages=[]}async onDigest(r,e){return ShaCrypto.digest(r,e)}}class Sha384Provider extends f.ProviderCrypto{constructor(){super(...arguments);this.name="SHA-384";this.usages=[]}async onDigest(r,e){return ShaCrypto.digest(r,e)}}class Sha512Provider extends f.ProviderCrypto{constructor(){super(...arguments);this.name="SHA-512";this.usages=[]}async onDigest(r,e){return ShaCrypto.digest(r,e)}}class PbkdfCryptoKey extends CryptoKey{}class Pbkdf2Provider extends f.Pbkdf2Provider{async onDeriveBits(r,e,t){return new Promise((n,s)=>{const o=f.BufferSourceConverter.toArrayBuffer(r.salt);const i=r.hash.name.replace("-","");l["default"].pbkdf2(getCryptoKey(e).data,Buffer.from(o),r.iterations,t>>3,i,(r,e)=>{if(r){s(r)}else{n(new Uint8Array(e).buffer)}})})}async onImportKey(r,e,t,n,s){if(r==="raw"){const r=new PbkdfCryptoKey;r.data=Buffer.from(e);r.algorithm={name:this.name};r.extractable=false;r.usages=s;return setCryptoKey(r)}throw new f.OperationError("format: Must be 'raw'")}checkCryptoKey(r,e){super.checkCryptoKey(r,e);if(!(getCryptoKey(r)instanceof PbkdfCryptoKey)){throw new TypeError("key: Is not PBKDF CryptoKey")}}}class HmacCryptoKey extends CryptoKey{get alg(){const r=this.algorithm.hash.name.toUpperCase();return`HS${r.replace("SHA-","")}`}set alg(r){}}i.__decorate([a.JsonProp({name:"k",converter:p})],HmacCryptoKey.prototype,"data",void 0);class HmacProvider extends f.HmacProvider{async onGenerateKey(r,e,t){const n=(r.length||this.getDefaultLength(r.hash.name))>>3<<3;const s=new HmacCryptoKey;s.algorithm={...r,length:n,name:this.name};s.extractable=e;s.usages=t;s.data=l["default"].randomBytes(n>>3);return setCryptoKey(s)}async onSign(r,e,t){const n=e.algorithm.hash.name.replace("-","");const s=l["default"].createHmac(n,getCryptoKey(e).data).update(Buffer.from(t)).digest();return new Uint8Array(s).buffer}async onVerify(r,e,t,n){const s=e.algorithm.hash.name.replace("-","");const o=l["default"].createHmac(s,getCryptoKey(e).data).update(Buffer.from(n)).digest();return o.compare(Buffer.from(t))===0}async onImportKey(r,e,t,n,s){let o;switch(r.toLowerCase()){case"jwk":o=a.JsonParser.fromJSON(e,{targetSchema:HmacCryptoKey});break;case"raw":o=new HmacCryptoKey;o.data=Buffer.from(e);break;default:throw new f.OperationError("format: Must be 'jwk' or 'raw'")}o.algorithm={hash:{name:t.hash.name},name:this.name,length:o.data.length<<3};o.extractable=n;o.usages=s;return setCryptoKey(o)}async onExportKey(r,e){switch(r.toLowerCase()){case"jwk":return a.JsonSerializer.toJSON(getCryptoKey(e));case"raw":return new Uint8Array(getCryptoKey(e).data).buffer;default:throw new f.OperationError("format: Must be 'jwk' or 'raw'")}}checkCryptoKey(r,e){super.checkCryptoKey(r,e);if(!(getCryptoKey(r)instanceof HmacCryptoKey)){throw new TypeError("key: Is not HMAC CryptoKey")}}}class HkdfCryptoKey extends CryptoKey{}class HkdfProvider extends f.HkdfProvider{async onImportKey(r,e,t,n,s){if(r.toLowerCase()!=="raw"){throw new f.OperationError("Operation not supported")}const o=new HkdfCryptoKey;o.data=Buffer.from(e);o.algorithm={name:this.name};o.extractable=n;o.usages=s;return setCryptoKey(o)}async onDeriveBits(r,e,t){const s=r.hash.name.replace("-","");const o=l["default"].createHash(s).digest().length;const i=t/8;const a=n.BufferSourceConverter.toUint8Array(r.info);const c=l["default"].createHmac(s,n.BufferSourceConverter.toUint8Array(r.salt)).update(n.BufferSourceConverter.toUint8Array(getCryptoKey(e).data)).digest();const u=[Buffer.alloc(0)];const f=Math.ceil(i/o)+1;for(let r=1;r=14){this.providers.set(new EdDsaProvider);this.providers.set(new EcdhEsProvider)}}}class Crypto extends f.Crypto{constructor(){super(...arguments);this.subtle=new SubtleCrypto}getRandomValues(r){const e=Buffer.from(r.buffer);l["default"].randomFillSync(e);return r}}Object.defineProperty(e,"CryptoKey",{enumerable:true,get:function(){return n.CryptoKey}});e.Crypto=Crypto},950:(r,e,t)=>{"use strict";t.r(e);t.d(e,{__extends:()=>__extends,__assign:()=>s,__rest:()=>__rest,__decorate:()=>__decorate,__param:()=>__param,__metadata:()=>__metadata,__awaiter:()=>__awaiter,__generator:()=>__generator,__createBinding:()=>o,__exportStar:()=>__exportStar,__values:()=>__values,__read:()=>__read,__spread:()=>__spread,__spreadArrays:()=>__spreadArrays,__spreadArray:()=>__spreadArray,__await:()=>__await,__asyncGenerator:()=>__asyncGenerator,__asyncDelegator:()=>__asyncDelegator,__asyncValues:()=>__asyncValues,__makeTemplateObject:()=>__makeTemplateObject,__importStar:()=>__importStar,__importDefault:()=>__importDefault,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldSet:()=>__classPrivateFieldSet});var n=function(r,e){n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))r[t]=e[t]};return n(r,e)};function __extends(r,e){if(typeof e!=="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");n(r,e);function __(){this.constructor=r}r.prototype=e===null?Object.create(e):(__.prototype=e.prototype,new __)}var s=function(){s=Object.assign||function __assign(r){for(var e,t=1,n=arguments.length;t=0;a--)if(i=r[a])o=(s<3?i(o):s>3?i(e,t,o):i(e,t))||o;return s>3&&o&&Object.defineProperty(e,t,o),o}function __param(r,e){return function(t,n){e(t,n,r)}}function __metadata(r,e){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(r,e)}function __awaiter(r,e,t,n){function adopt(r){return r instanceof t?r:new t(function(e){e(r)})}return new(t||(t=Promise))(function(t,s){function fulfilled(r){try{step(n.next(r))}catch(r){s(r)}}function rejected(r){try{step(n["throw"](r))}catch(r){s(r)}}function step(r){r.done?t(r.value):adopt(r.value).then(fulfilled,rejected)}step((n=n.apply(r,e||[])).next())})}function __generator(r,e){var t={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,s,o,i;return i={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function verb(r){return function(e){return step([r,e])}}function step(i){if(n)throw new TypeError("Generator is already executing.");while(t)try{if(n=1,s&&(o=i[0]&2?s["return"]:i[0]?s["throw"]||((o=s["return"])&&o.call(s),0):s.next)&&!(o=o.call(s,i[1])).done)return o;if(s=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:t.label++;return{value:i[1],done:false};case 5:t.label++;s=i[1];i=[0];continue;case 7:i=t.ops.pop();t.trys.pop();continue;default:if(!(o=t.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){t=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]=r.length)r=void 0;return{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(r,e){var t=typeof Symbol==="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),s,o=[],i;try{while((e===void 0||e-- >0)&&!(s=n.next()).done)o.push(s.value)}catch(r){i={error:r}}finally{try{if(s&&!s.done&&(t=n["return"]))t.call(n)}finally{if(i)throw i.error}}return o}function __spread(){for(var r=[],e=0;e1||resume(r,e)})}}function resume(r,e){try{step(n[r](e))}catch(r){settle(o[0][3],r)}}function step(r){r.value instanceof __await?Promise.resolve(r.value.v).then(fulfill,reject):settle(o[0][2],r)}function fulfill(r){resume("next",r)}function reject(r){resume("throw",r)}function settle(r,e){if(r(e),o.shift(),o.length)resume(o[0][0],o[0][1])}}function __asyncDelegator(r){var e,t;return e={},verb("next"),verb("throw",function(r){throw r}),verb("return"),e[Symbol.iterator]=function(){return this},e;function verb(n,s){e[n]=r[n]?function(e){return(t=!t)?{value:__await(r[n](e)),done:n==="return"}:s?s(e):e}:s}}function __asyncValues(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof __values==="function"?__values(r):r[Symbol.iterator](),t={},verb("next"),verb("throw"),verb("return"),t[Symbol.asyncIterator]=function(){return this},t);function verb(e){t[e]=r[e]&&function(t){return new Promise(function(n,s){t=r[e](t),settle(n,s,t.done,t.value)})}}function settle(r,e,t,n){Promise.resolve(n).then(function(e){r({value:e,done:t})},e)}}function __makeTemplateObject(r,e){if(Object.defineProperty){Object.defineProperty(r,"raw",{value:e})}else{r.raw=e}return r}var i=Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:true,value:e})}:function(r,e){r["default"]=e};function __importStar(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)if(t!=="default"&&Object.prototype.hasOwnProperty.call(r,t))o(e,r,t);i(e,r);return e}function __importDefault(r){return r&&r.__esModule?r:{default:r}}function __classPrivateFieldGet(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e==="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}function __classPrivateFieldSet(r,e,t,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e==="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(r,t):s?s.value=t:e.set(r,t),t}},528:(r,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.fromBER=fromBER;e.compareSchema=compareSchema;e.verifySchema=verifySchema;e.fromJSON=fromJSON;e.RawData=e.Repeated=e.Any=e.Choice=e.TIME=e.Duration=e.DateTime=e.TimeOfDay=e.DATE=e.GeneralizedTime=e.UTCTime=e.CharacterString=e.GeneralString=e.VisibleString=e.GraphicString=e.IA5String=e.VideotexString=e.TeletexString=e.PrintableString=e.NumericString=e.UniversalString=e.BmpString=e.RelativeObjectIdentifier=e.Utf8String=e.ObjectIdentifier=e.Enumerated=e.Integer=e.BitString=e.OctetString=e.Null=e.Set=e.Sequence=e.Boolean=e.EndOfContent=e.Constructed=e.Primitive=e.BaseBlock=e.ValueBlock=e.HexBlock=void 0;var n=t(209);function _createForOfIteratorHelper(r,t){var o;if(typeof Symbol==="undefined"||r[Symbol.iterator]==null){if(Array.isArray(r)||(o=_unsupportedIterableToArray(r))||t&&r&&typeof r.length==="number"){if(o)r=o;var i=0;var a=function F(){};return{s:a,n:function n(){if(i>=r.length)return{done:true};return{done:false,value:r[i++]}},e:function e(r){throw r},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c=true,u=false,l;return{s:function s(){o=r[Symbol.iterator]()},n:function n(){var r=o.next();c=r.done;return r},e:function e(r){u=true;l=r},f:function f(){try{if(!c&&o.return!=null)o.return()}finally{if(u)throw l}}}}function _unsupportedIterableToArray(r,e){if(!r)return;if(typeof r==="string")return _arrayLikeToArray(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor)t=r.constructor.name;if(t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return _arrayLikeToArray(r,e)}function _arrayLikeToArray(r,e){if(e==null||e>r.length)e=r.length;for(var t=0,n=new Array(e);t(class LocalHexBlockMixin extends r{constructor(r={}){super(r);this.isHexOnly=(0,n.getParametersValue)(r,"isHexOnly",false);if("valueHex"in r)this.valueHex=r.valueHex.slice(0);else this.valueHex=new ArrayBuffer(0)}static blockName(){return"hexBlock"}fromBER(r,e,t){if((0,n.checkBufferParams)(this,r,e,t)===false)return-1;const s=new Uint8Array(r,e,t);if(s.length===0){this.warnings.push("Zero buffer length");return e}this.valueHex=r.slice(e,e+t);this.blockLength=t;return e+t}toBER(r=false){if(this.isHexOnly!==true){this.error='Flag "isHexOnly" is not set, abort';return new ArrayBuffer(0)}if(r===true)return new ArrayBuffer(this.valueHex.byteLength);return this.valueHex.slice(0)}toJSON(){let r={};try{r=super.toJSON()}catch(r){}r.blockName=this.constructor.blockName();r.isHexOnly=this.isHexOnly;r.valueHex=(0,n.bufferToHexCodes)(this.valueHex,0,this.valueHex.byteLength);return r}});e.HexBlock=i;class LocalIdentificationBlock extends(i(LocalBaseBlock)){constructor(r={}){super();if("idBlock"in r){this.isHexOnly=(0,n.getParametersValue)(r.idBlock,"isHexOnly",false);this.valueHex=(0,n.getParametersValue)(r.idBlock,"valueHex",new ArrayBuffer(0));this.tagClass=(0,n.getParametersValue)(r.idBlock,"tagClass",-1);this.tagNumber=(0,n.getParametersValue)(r.idBlock,"tagNumber",-1);this.isConstructed=(0,n.getParametersValue)(r.idBlock,"isConstructed",false)}else{this.tagClass=-1;this.tagNumber=-1;this.isConstructed=false}}static blockName(){return"identificationBlock"}toBER(r=false){let e=0;let t;let s;switch(this.tagClass){case 1:e|=0;break;case 2:e|=64;break;case 3:e|=128;break;case 4:e|=192;break;default:this.error="Unknown tag class";return new ArrayBuffer(0)}if(this.isConstructed)e|=32;if(this.tagNumber<31&&!this.isHexOnly){t=new ArrayBuffer(1);s=new Uint8Array(t);if(!r){let r=this.tagNumber;r&=31;e|=r;s[0]=e}return t}if(this.isHexOnly===false){const o=(0,n.utilToBase)(this.tagNumber,7);const i=new Uint8Array(o);const a=o.byteLength;t=new ArrayBuffer(a+1);s=new Uint8Array(t);s[0]=e|31;if(!r){for(let r=0;r=s.length){this.error="End of input reached before message was fully decoded";return-1}if(r===e){e+=255;const r=new ArrayBuffer(e);const n=new Uint8Array(r);for(let r=0;r8){this.error="Too big integer";return-1}if(o+1>s.length){this.error="End of input reached before message was fully decoded";return-1}const i=new Uint8Array(o);for(let r=0;r127)this.longFormUsed=true;if(this.isIndefiniteForm){e=new ArrayBuffer(1);if(r===false){t=new Uint8Array(e);t[0]=128}return e}if(this.longFormUsed===true){const s=(0,n.utilToBase)(this.length,8);if(s.byteLength>127){this.error="Too big length";return new ArrayBuffer(0)}e=new ArrayBuffer(s.byteLength+1);if(r===true)return e;const o=new Uint8Array(s);t=new Uint8Array(e);t[0]=s.byteLength|128;for(let r=0;r0){const e=LocalFromBER(r,a,t);if(e.offset===-1){this.error=e.result.error;this.warnings.concat(e.result.warnings);return-1}a=e.offset;this.blockLength+=e.result.blockLength;t-=e.result.blockLength;this.value.push(e.result);if(this.isIndefiniteForm===true&&e.result.constructor.blockName()===EndOfContent.blockName())break}if(this.isIndefiniteForm===true){if(this.value[this.value.length-1].constructor.blockName()===EndOfContent.blockName())this.value.pop();else this.warnings.push("No EndOfContent block encoded")}this.valueBeforeDecode=r.slice(s,s+o);return a}toBER(r=false){let e=new ArrayBuffer(0);for(let t=0;t` ${r}`).join("\n"))}}catch(r){e.e(r)}finally{e.f()}const n=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.blockName();return r.length?`${n} :\n${r.join("\n")}`:`${n} :`}}e.Constructed=Constructed;class LocalEndOfContentValueBlock extends ValueBlock{constructor(r={}){super(r)}fromBER(r,e,t){return e}toBER(r=false){return new ArrayBuffer(0)}static blockName(){return"EndOfContentValueBlock"}}class EndOfContent extends BaseBlock{constructor(r={}){super(r,LocalEndOfContentValueBlock);this.idBlock.tagClass=1;this.idBlock.tagNumber=0}static blockName(){return"EndOfContent"}}e.EndOfContent=EndOfContent;class LocalBooleanValueBlock extends ValueBlock{constructor(r={}){super(r);this.value=(0,n.getParametersValue)(r,"value",false);this.isHexOnly=(0,n.getParametersValue)(r,"isHexOnly",false);if("valueHex"in r)this.valueHex=r.valueHex.slice(0);else{this.valueHex=new ArrayBuffer(1);if(this.value===true){const r=new Uint8Array(this.valueHex);r[0]=255}}}fromBER(r,e,t){if((0,n.checkBufferParams)(this,r,e,t)===false)return-1;const s=new Uint8Array(r,e,t);if(t>1)this.warnings.push("Boolean value encoded in more then 1 octet");this.isHexOnly=true;this.valueHex=new ArrayBuffer(s.length);const o=new Uint8Array(this.valueHex);for(let r=0;r0)this.warnings.push("Non-zero length of value block for Null type");if(this.idBlock.error.length===0)this.blockLength+=this.idBlock.blockLength;if(this.lenBlock.error.length===0)this.blockLength+=this.lenBlock.blockLength;this.blockLength+=t;if(e+t>r.byteLength){this.error="End of input reached before message was fully decoded (inconsistent offset and length values)";return-1}return e+t}toBER(r=false){const e=new ArrayBuffer(2);if(r===true)return e;const t=new Uint8Array(e);t[0]=5;t[1]=0;return e}toString(){return`${this.constructor.blockName()}`}}e.Null=Null;class LocalOctetStringValueBlock extends(i(LocalConstructedValueBlock)){constructor(r={}){super(r);this.isConstructed=(0,n.getParametersValue)(r,"isConstructed",false)}fromBER(r,e,t){let n=0;if(this.isConstructed===true){this.isHexOnly=false;n=LocalConstructedValueBlock.prototype.fromBER.call(this,r,e,t);if(n===-1)return n;for(let r=0;r0&&this.value[r].valueBlock.unusedBits>0){this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only';return-1}this.unusedBits=this.value[r].valueBlock.unusedBits;if(this.unusedBits>7){this.error="Unused bits for BitString must be in range 0-7";return-1}}return s}if((0,n.checkBufferParams)(this,r,e,t)===false)return-1;const o=new Uint8Array(r,e,t);this.unusedBits=o[0];if(this.unusedBits>7){this.error="Unused bits for BitString must be in range 0-7";return-1}if(!this.unusedBits){const n=r.slice(e+1,e+t);try{const r=fromBER(n);if(r.offset!==-1&&r.offset===t-1){this.value=[r.result]}}catch(r){}}this.valueHex=new ArrayBuffer(o.length-1);const i=new Uint8Array(this.valueHex);for(let r=0;r=4){this.warnings.push("Too big Integer for decoding, hex only");this.isHexOnly=true;this._valueDec=0}else{this.isHexOnly=false;if(r.byteLength>0)this._valueDec=n.utilDecodeTC.call(this)}}get valueHex(){return this._valueHex}set valueDec(r){this._valueDec=r;this.isHexOnly=false;this._valueHex=(0,n.utilEncodeTC)(r)}get valueDec(){return this._valueDec}fromDER(r,e,t,n=0){const s=this.fromBER(r,e,t);if(s===-1)return s;const o=new Uint8Array(this._valueHex);if(o[0]===0&&(o[1]&128)!==0){const r=new ArrayBuffer(this._valueHex.byteLength-1);const e=new Uint8Array(r);e.set(new Uint8Array(this._valueHex,1,this._valueHex.byteLength-1));this._valueHex=r.slice(0)}else{if(n!==0){if(this._valueHex.byteLength1)n=this._valueHex.byteLength+1;const r=new ArrayBuffer(n);const e=new Uint8Array(r);e.set(o,n-this._valueHex.byteLength);this._valueHex=r.slice(0)}}}return s}toDER(r=false){const e=new Uint8Array(this._valueHex);switch(true){case(e[0]&128)!==0:{const r=new ArrayBuffer(this._valueHex.byteLength+1);const t=new Uint8Array(r);t[0]=0;t.set(e,1);this._valueHex=r.slice(0)}break;case e[0]===0&&(e[1]&128)===0:{const r=new ArrayBuffer(this._valueHex.byteLength-1);const e=new Uint8Array(r);e.set(new Uint8Array(this._valueHex,1,this._valueHex.byteLength-1));this._valueHex=r.slice(0)}break;default:}return this.toBER(r)}fromBER(r,e,t){const n=super.fromBER(r,e,t);if(n===-1)return n;this.blockLength=t;return e+t}toBER(r=false){return this.valueHex.slice(0)}static blockName(){return"IntegerValueBlock"}toJSON(){let r={};try{r=super.toJSON()}catch(r){}r.valueDec=this.valueDec;return r}toString(){function viewAdd(r,e){const t=new Uint8Array([0]);let s=new Uint8Array(r);let o=new Uint8Array(e);let i=s.slice(0);const a=i.length-1;let c=o.slice(0);const u=c.length-1;let f=0;const l=u=0;r--,h++){switch(true){case h=i.length:i=(0,n.utilConcatView)(new Uint8Array([f%10]),i);break;default:i[a-h]=f%10}}if(t[0]>0)i=(0,n.utilConcatView)(t,i);return i.slice(0)}function power2(r){if(r>=s.length){for(let e=s.length;e<=r;e++){const r=new Uint8Array([0]);let t=s[e-1].slice(0);for(let e=t.length-1;e>=0;e--){const n=new Uint8Array([(t[e]<<1)+r[0]]);r[0]=n[0]/10;t[e]=n[0]%10}if(r[0]>0)t=(0,n.utilConcatView)(r,t);s.push(t)}}return s[r]}function viewSub(r,e){let t=0;let n=new Uint8Array(r);let s=new Uint8Array(e);let o=n.slice(0);const i=o.length-1;let a=s.slice(0);const c=a.length-1;let u;let f=0;for(let r=c;r>=0;r--,f++){u=o[i-f]-a[c-f]-t;switch(true){case u<0:t=1;o[i-f]=u+10;break;default:t=0;o[i-f]=u}}if(t>0){for(let r=i-c+1;r>=0;r--,f++){u=o[i-f]-t;if(u<0){t=1;o[i-f]=u+10}else{t=0;o[i-f]=u;break}}}return o.slice()}const r=this._valueHex.byteLength*8-1;let e=new Uint8Array(this._valueHex.byteLength*8/3);let t=0;let i;const a=new Uint8Array(this._valueHex);let c="";let u=false;for(let n=this._valueHex.byteLength-1;n>=0;n--){i=a[n];for(let n=0;n<8;n++){if((i&1)===1){switch(t){case r:e=viewSub(power2(t),e);c="-";break;default:e=viewAdd(e,power2(t))}}t++;i>>=1}}for(let r=0;r0){const e=new LocalSidValueBlock;n=e.fromBER(r,n,t);if(n===-1){this.blockLength=0;this.error=e.error;return n}if(this.value.length===0)e.isFirstSid=true;this.blockLength+=e.blockLength;t-=e.blockLength;this.value.push(e)}return n}toBER(r=false){let e=new ArrayBuffer(0);for(let t=0;t0){const e=new LocalRelativeSidValueBlock;n=e.fromBER(r,n,t);if(n===-1){this.blockLength=0;this.error=e.error;return n}this.blockLength+=e.blockLength;t-=e.blockLength;this.value.push(e)}return n}toBER(r=false){let e=new ArrayBuffer(0);for(let t=0;t2)continue;const i=2-o.length;for(let r=o.length-1;r>=0;r--)t[s*2+r+i]=o[r]}this.valueBlock.value=r}toString(){return`${this.constructor.blockName()} : ${this.valueBlock.value}`}}e.BmpString=BmpString;class LocalUniversalStringValueBlock extends(i(LocalBaseBlock)){constructor(r={}){super(r);this.isHexOnly=true;this.value=""}static blockName(){return"UniversalStringValueBlock"}toJSON(){let r={};try{r=super.toJSON()}catch(r){}r.value=this.value;return r}}class UniversalString extends BaseBlock{constructor(r={}){super(r,LocalUniversalStringValueBlock);if("value"in r)this.fromString(r.value);this.idBlock.tagClass=1;this.idBlock.tagNumber=28}static blockName(){return"UniversalString"}fromBER(r,e,t){const n=this.valueBlock.fromBER(r,e,this.lenBlock.isIndefiniteForm===true?t:this.lenBlock.length);if(n===-1){this.error=this.valueBlock.error;return n}this.fromBuffer(this.valueBlock.valueHex);if(this.idBlock.error.length===0)this.blockLength+=this.idBlock.blockLength;if(this.lenBlock.error.length===0)this.blockLength+=this.lenBlock.blockLength;if(this.valueBlock.error.length===0)this.blockLength+=this.valueBlock.blockLength;return n}fromBuffer(r){const e=r.slice(0);const t=new Uint8Array(e);for(let r=0;r4)continue;const i=4-o.length;for(let r=o.length-1;r>=0;r--)t[s*4+r+i]=o[r]}this.valueBlock.value=r}toString(){return`${this.constructor.blockName()} : ${this.valueBlock.value}`}}e.UniversalString=UniversalString;class LocalSimpleStringValueBlock extends(i(LocalBaseBlock)){constructor(r={}){super(r);this.value="";this.isHexOnly=true}static blockName(){return"SimpleStringValueBlock"}toJSON(){let r={};try{r=super.toJSON()}catch(r){}r.value=this.value;return r}}class LocalSimpleStringBlock extends BaseBlock{constructor(r={}){super(r,LocalSimpleStringValueBlock);if("value"in r)this.fromString(r.value)}static blockName(){return"SIMPLESTRING"}fromBER(r,e,t){const n=this.valueBlock.fromBER(r,e,this.lenBlock.isIndefiniteForm===true?t:this.lenBlock.length);if(n===-1){this.error=this.valueBlock.error;return n}this.fromBuffer(this.valueBlock.valueHex);if(this.idBlock.error.length===0)this.blockLength+=this.idBlock.blockLength;if(this.lenBlock.error.length===0)this.blockLength+=this.lenBlock.blockLength;if(this.valueBlock.error.length===0)this.blockLength+=this.valueBlock.blockLength;return n}fromBuffer(r){this.valueBlock.value=String.fromCharCode.apply(null,new Uint8Array(r))}fromString(r){const e=r.length;this.valueBlock.valueHex=new ArrayBuffer(e);const t=new Uint8Array(this.valueBlock.valueHex);for(let n=0;n=50)this.year=1900+n;else this.year=2e3+n;this.month=parseInt(t[2],10);this.day=parseInt(t[3],10);this.hour=parseInt(t[4],10);this.minute=parseInt(t[5],10);this.second=parseInt(t[6],10)}toString(){const r=new Array(7);r[0]=(0,n.padNumber)(this.year<2e3?this.year-1900:this.year-2e3,2);r[1]=(0,n.padNumber)(this.month,2);r[2]=(0,n.padNumber)(this.day,2);r[3]=(0,n.padNumber)(this.hour,2);r[4]=(0,n.padNumber)(this.minute,2);r[5]=(0,n.padNumber)(this.second,2);r[6]="Z";return r.join("")}static blockName(){return"UTCTime"}toJSON(){let r={};try{r=super.toJSON()}catch(r){}r.year=this.year;r.month=this.month;r.day=this.day;r.hour=this.hour;r.minute=this.minute;r.second=this.second;return r}}e.UTCTime=UTCTime;class GeneralizedTime extends VisibleString{constructor(r={}){super(r);this.year=0;this.month=0;this.day=0;this.hour=0;this.minute=0;this.second=0;this.millisecond=0;if("value"in r){this.fromString(r.value);this.valueBlock.valueHex=new ArrayBuffer(r.value.length);const e=new Uint8Array(this.valueBlock.valueHex);for(let t=0;t=37&&o.idBlock.isHexOnly===false){o.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard";return{offset:-1,result:o}}switch(o.idBlock.tagNumber){case 0:if(o.idBlock.isConstructed===true&&o.lenBlock.length>0){o.error="Type [UNIVERSAL 0] is reserved";return{offset:-1,result:o}}u=EndOfContent;break;case 1:u=Boolean;break;case 2:u=Integer;break;case 3:u=BitString;break;case 4:u=OctetString;break;case 5:u=Null;break;case 6:u=ObjectIdentifier;break;case 10:u=Enumerated;break;case 12:u=Utf8String;break;case 13:u=RelativeObjectIdentifier;break;case 14:u=TIME;break;case 15:o.error="[UNIVERSAL 15] is reserved by ASN.1 standard";return{offset:-1,result:o};case 16:u=Sequence;break;case 17:u=Set;break;case 18:u=NumericString;break;case 19:u=PrintableString;break;case 20:u=TeletexString;break;case 21:u=VideotexString;break;case 22:u=IA5String;break;case 23:u=UTCTime;break;case 24:u=GeneralizedTime;break;case 25:u=GraphicString;break;case 26:u=VisibleString;break;case 27:u=GeneralString;break;case 28:u=UniversalString;break;case 29:u=CharacterString;break;case 30:u=BmpString;break;case 31:u=DATE;break;case 32:u=TimeOfDay;break;case 33:u=DateTime;break;case 34:u=Duration;break;default:{let r;if(o.idBlock.isConstructed===true)r=new Constructed;else r=new Primitive;r.idBlock=o.idBlock;r.lenBlock=o.lenBlock;r.warnings=o.warnings;o=r}}break;case 2:case 3:case 4:default:{if(o.idBlock.isConstructed===true)u=Constructed;else u=Primitive}}o=localChangeType(o,u);c=o.fromBER(r,e,o.lenBlock.isIndefiniteForm===true?t:o.lenBlock.length);o.valueBeforeDecode=r.slice(s,s+o.blockLength);return{offset:c,result:o}}function fromBER(r){if(r.byteLength===0){const r=new BaseBlock({},Object);r.error="Input buffer has zero length";return{offset:-1,result:r}}return LocalFromBER(r,0,r.byteLength)}function compareSchema(r,e,t){if(t instanceof Choice){const n=false;for(let n=0;n0){if(t.valueBlock.value[0]instanceof Repeated)o=e.valueBlock.value.length}if(o===0){return{verified:true,result:r}}if(e.valueBlock.value.length===0&&t.valueBlock.value.length!==0){let e=true;for(let r=0;r=e.valueBlock.value.length){if(t.valueBlock.value[i].optional===false){const e={verified:false,result:r};r.error="Inconsistent length between ASN.1 data and schema";if(t.hasOwnProperty("name")){t.name=t.name.replace(/^\s+|\s+$/g,"");if(t.name!==""){delete r[t.name];e.name=t.name}}return e}}else{if(t.valueBlock.value[0]instanceof Repeated){s=compareSchema(r,e.valueBlock.value[i],t.valueBlock.value[0].value);if(s.verified===false){if(t.valueBlock.value[0].optional===true)n++;else{if(t.hasOwnProperty("name")){t.name=t.name.replace(/^\s+|\s+$/g,"");if(t.name!=="")delete r[t.name]}return s}}if("name"in t.valueBlock.value[0]&&t.valueBlock.value[0].name.length>0){let n={};if("local"in t.valueBlock.value[0]&&t.valueBlock.value[0].local===true)n=e;else n=r;if(typeof n[t.valueBlock.value[0].name]==="undefined")n[t.valueBlock.value[0].name]=[];n[t.valueBlock.value[0].name].push(e.valueBlock.value[i])}}else{s=compareSchema(r,e.valueBlock.value[i-n],t.valueBlock.value[i]);if(s.verified===false){if(t.valueBlock.value[i].optional===true)n++;else{if(t.hasOwnProperty("name")){t.name=t.name.replace(/^\s+|\s+$/g,"");if(t.name!=="")delete r[t.name]}return s}}}}}if(s.verified===false){const e={verified:false,result:r};if(t.hasOwnProperty("name")){t.name=t.name.replace(/^\s+|\s+$/g,"");if(t.name!==""){delete r[t.name];e.name=t.name}}return e}return{verified:true,result:r}}if("primitiveSchema"in t&&"valueHex"in e.valueBlock){const n=fromBER(e.valueBlock.valueHex);if(n.offset===-1){const e={verified:false,result:n.result};if(t.hasOwnProperty("name")){t.name=t.name.replace(/^\s+|\s+$/g,"");if(t.name!==""){delete r[t.name];e.name=t.name}}return e}return compareSchema(r,n.result,t.primitiveSchema)}return{verified:true,result:r}}function verifySchema(r,e){if(e instanceof Object===false){return{verified:false,result:{error:"Wrong ASN.1 schema type"}}}const t=fromBER(r);if(t.offset===-1){return{verified:false,result:t.result}}return compareSchema(t.result,t.result,e)}function fromJSON(r){}},317:function(r,e){(function(r,t){true?t(e):0})(this,function(r){"use strict";class BufferSourceConverter{static isArrayBuffer(r){return Object.prototype.toString.call(r)==="[object ArrayBuffer]"}static toArrayBuffer(r){const e=this.toUint8Array(r);if(e.byteOffset||e.length){return e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}return e.buffer}static toUint8Array(r){return this.toView(r,Uint8Array)}static toView(r,e){if(typeof Buffer!=="undefined"&&Buffer.isBuffer(r)){return new e(r.buffer,r.byteOffset,r.byteLength)}if(this.isArrayBuffer(r)){return new e(r)}if(this.isArrayBufferView(r)){return new e(r.buffer,r.byteOffset,r.byteLength)}throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(r){return this.isArrayBufferView(r)||this.isArrayBuffer(r)}static isArrayBufferView(r){return ArrayBuffer.isView(r)||r&&this.isArrayBuffer(r.buffer)}}class Utf8Converter{static fromString(r){const e=unescape(encodeURIComponent(r));const t=new Uint8Array(e.length);for(let r=0;rr.byteLength).reduce((r,e)=>r+e);const t=new Uint8Array(e);let n=0;r.map(r=>new Uint8Array(r)).forEach(r=>{for(const e of r){t[n++]=e}});return t.buffer}function isEqual(r,e){if(!(r&&e)){return false}if(r.byteLength!==e.byteLength){return false}const t=new Uint8Array(r);const n=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.getUTCDate=getUTCDate;e.getParametersValue=getParametersValue;e.bufferToHexCodes=bufferToHexCodes;e.checkBufferParams=checkBufferParams;e.utilFromBase=utilFromBase;e.utilToBase=utilToBase;e.utilConcatBuf=utilConcatBuf;e.utilConcatView=utilConcatView;e.utilDecodeTC=utilDecodeTC;e.utilEncodeTC=utilEncodeTC;e.isEqualBuffer=isEqualBuffer;e.padNumber=padNumber;e.toBase64=toBase64;e.fromBase64=fromBase64;e.arrayBufferToString=arrayBufferToString;e.stringToArrayBuffer=stringToArrayBuffer;e.nearestPowerOf2=nearestPowerOf2;e.clearProps=clearProps;function getUTCDate(r){return new Date(r.getTime()+r.getTimezoneOffset()*6e4)}function getParametersValue(r,e,t){if(r instanceof Object===false)return t;if(e in r)return r[e];return t}function bufferToHexCodes(r,e=0,t=r.byteLength-e,n=false){let s="";var o=true;var i=false;var a=undefined;try{for(var c=new Uint8Array(r,e,t)[Symbol.iterator](),u;!(o=(u=c.next()).done);o=true){const r=u.value;const e=r.toString(16).toUpperCase();if(e.length===1)s+="0";s+=e;if(n)s+=" "}}catch(r){i=true;a=r}finally{try{if(!o&&c.return){c.return()}}finally{if(i){throw a}}}return s.trim()}function checkBufferParams(r,e,t,n){if(e instanceof ArrayBuffer===false){r.error='Wrong parameter: inputBuffer must be "ArrayBuffer"';return false}if(e.byteLength===0){r.error="Wrong parameter: inputBuffer has zero length";return false}if(t<0){r.error="Wrong parameter: inputOffset less than zero";return false}if(n<0){r.error="Wrong parameter: inputLength less than zero";return false}if(e.byteLength-t-n<0){r.error="End of input reached before message was fully decoded (inconsistent offset and length values)";return false}return true}function utilFromBase(r,e){let t=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)t+=r[r.length-1-n]*Math.pow(2,e*n);return t}function utilToBase(r,e,t=-1){const n=t;let s=r;let o=0;let i=Math.pow(2,e);for(let t=1;t<8;t++){if(r=0;r--){const t=Math.pow(2,r*e);i[o-r-1]=Math.floor(s/t);s-=i[o-r-1]*t}return r}i*=Math.pow(2,e)}return new ArrayBuffer(0)}function utilConcatBuf(...r){let e=0;let t=0;var n=true;var s=false;var o=undefined;try{for(var i=r[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){const r=a.value;e+=r.byteLength}}catch(r){s=true;o=r}finally{try{if(!n&&i.return){i.return()}}finally{if(s){throw o}}}const c=new ArrayBuffer(e);const u=new Uint8Array(c);var f=true;var l=false;var h=undefined;try{for(var y=r[Symbol.iterator](),p;!(f=(p=y.next()).done);f=true){const r=p.value;u.set(new Uint8Array(r),t);t+=r.byteLength}}catch(r){l=true;h=r}finally{try{if(!f&&y.return){y.return()}}finally{if(l){throw h}}}return c}function utilConcatView(...r){let e=0;let t=0;var n=true;var s=false;var o=undefined;try{for(var i=r[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){const r=a.value;e+=r.length}}catch(r){s=true;o=r}finally{try{if(!n&&i.return){i.return()}}finally{if(s){throw o}}}const c=new ArrayBuffer(e);const u=new Uint8Array(c);var f=true;var l=false;var h=undefined;try{for(var y=r[Symbol.iterator](),p;!(f=(p=y.next()).done);f=true){const r=p.value;u.set(r,t);t+=r.length}}catch(r){l=true;h=r}finally{try{if(!f&&y.return){y.return()}}finally{if(l){throw h}}}return u}function utilDecodeTC(){const r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){const e=r[0]===255&&r[1]&128;const t=r[0]===0&&(r[1]&128)===0;if(e||t)this.warnings.push("Needlessly long format")}const e=new ArrayBuffer(this.valueHex.byteLength);const t=new Uint8Array(e);for(let r=0;r=r.length)a=1;const t=r.charCodeAt(i++);if(i>=r.length)c=1;const n=r.charCodeAt(i++);const o=e>>2;const l=(e&3)<<4|t>>4;let h=(t&15)<<2|n>>6;let y=n&63;if(a===1){h=y=64}else{if(c===1){y=64}}if(s){if(h===64)u+=`${f.charAt(o)}${f.charAt(l)}`;else{if(y===64)u+=`${f.charAt(o)}${f.charAt(l)}${f.charAt(h)}`;else u+=`${f.charAt(o)}${f.charAt(l)}${f.charAt(h)}${f.charAt(y)}`}}else u+=`${f.charAt(o)}${f.charAt(l)}${f.charAt(h)}${f.charAt(y)}`}return u}function fromBase64(r,e=false,s=false){const o=e?n:t;function indexof(r){for(let e=0;e<64;e++){if(o.charAt(e)===r)return e}return 64}function test(r){return r===64?0:r}let i=0;let a="";while(i=r.length?0:indexof(r.charAt(i++));const n=i>=r.length?0:indexof(r.charAt(i++));const s=i>=r.length?0:indexof(r.charAt(i++));const o=test(e)<<2|test(t)>>4;const c=(test(t)&15)<<4|test(n)>>2;const u=(test(n)&3)<<6|test(s);a+=String.fromCharCode(o);if(n!==64)a+=String.fromCharCode(c);if(s!==64)a+=String.fromCharCode(u)}if(s){const r=a.length;let e=-1;for(let t=r-1;t>=0;t--){if(a.charCodeAt(t)!==0){e=t;break}}if(e!==-1)a=a.slice(0,e+1);else a=""}return a}function arrayBufferToString(r){let e="";const t=new Uint8Array(r);var n=true;var s=false;var o=undefined;try{for(var i=t[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){const r=a.value;e+=String.fromCharCode(r)}}catch(r){s=true;o=r}finally{try{if(!n&&i.return){i.return()}}finally{if(s){throw o}}}return e}function stringToArrayBuffer(r){const e=r.length;const t=new ArrayBuffer(e);const n=new Uint8Array(t);for(let t=0;t{"use strict";Object.defineProperty(e,"__esModule",{value:true});var n=t(317);var s=t(610);var o=t(870);var i=t(895);var a=t(528);function _interopNamespace(r){if(r&&r.__esModule)return r;var e=Object.create(null);if(r){Object.keys(r).forEach(function(t){if(t!=="default"){var n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:true,get:function(){return r[t]}})}})}e["default"]=r;return Object.freeze(e)}var c=_interopNamespace(a);class CryptoError extends Error{}class AlgorithmError extends CryptoError{}class UnsupportedOperationError extends CryptoError{constructor(r){super(`Unsupported operation: ${r?`${r}`:""}`)}}class OperationError extends CryptoError{}class RequiredPropertyError extends CryptoError{constructor(r){super(`${r}: Missing required property`)}}class PemConverter{static toArrayBuffer(r){const e=r.replace(/-{5}(BEGIN|END) .*-{5}/g,"").replace("\r","").replace("\n","");return n.Convert.FromBase64(e)}static toUint8Array(r){const e=this.toArrayBuffer(r);return new Uint8Array(e)}static fromBufferSource(r,e){const t=n.Convert.ToBase64(r);let s;let o=0;const i=[];while(true){s=t.slice(o,o=o+64);if(s.length){i.push(s);if(s.length<64){break}}else{break}}const a=e.toUpperCase();return`-----BEGIN ${a}-----\n${i.join("\n")}\n-----END ${a}-----`}static isPEM(r){return/-----BEGIN .+-----[A-Za-z0-9+\/\+\=\s\n]+-----END .+-----/i.test(r)}static getTagName(r){if(!this.isPEM(r)){throw new Error("Bad parameter. Incoming data is not right PEM")}const e=/-----BEGIN (.+)-----/.exec(r);if(!e){throw new Error("Cannot get tag from PEM")}return e[1]}static hasTagName(r,e){const t=this.getTagName(r);return e.toLowerCase()===t.toLowerCase()}static isCertificate(r){return this.hasTagName(r,"certificate")}static isCertificateRequest(r){return this.hasTagName(r,"certificate request")}static isCRL(r){return this.hasTagName(r,"x509 crl")}static isPublicKey(r){return this.hasTagName(r,"public key")}}function isJWK(r){return typeof r==="object"&&"kty"in r}class ProviderCrypto{async digest(...r){this.checkDigest.apply(this,r);return this.onDigest.apply(this,r)}checkDigest(r,e){this.checkAlgorithmName(r)}async onDigest(r,e){throw new UnsupportedOperationError("digest")}async generateKey(...r){this.checkGenerateKey.apply(this,r);return this.onGenerateKey.apply(this,r)}checkGenerateKey(r,e,t,...n){this.checkAlgorithmName(r);this.checkGenerateKeyParams(r);if(!(t&&t.length)){throw new TypeError(`Usages cannot be empty when creating a key.`)}let s;if(Array.isArray(this.usages)){s=this.usages}else{s=this.usages.privateKey.concat(this.usages.publicKey)}this.checkKeyUsages(t,s)}checkGenerateKeyParams(r){}async onGenerateKey(r,e,t,...n){throw new UnsupportedOperationError("generateKey")}async sign(...r){this.checkSign.apply(this,r);return this.onSign.apply(this,r)}checkSign(r,e,t,...n){this.checkAlgorithmName(r);this.checkAlgorithmParams(r);this.checkCryptoKey(e,"sign")}async onSign(r,e,t,...n){throw new UnsupportedOperationError("sign")}async verify(...r){this.checkVerify.apply(this,r);return this.onVerify.apply(this,r)}checkVerify(r,e,t,n,...s){this.checkAlgorithmName(r);this.checkAlgorithmParams(r);this.checkCryptoKey(e,"verify")}async onVerify(r,e,t,n,...s){throw new UnsupportedOperationError("verify")}async encrypt(...r){this.checkEncrypt.apply(this,r);return this.onEncrypt.apply(this,r)}checkEncrypt(r,e,t,n={},...s){this.checkAlgorithmName(r);this.checkAlgorithmParams(r);this.checkCryptoKey(e,n.keyUsage?"encrypt":void 0)}async onEncrypt(r,e,t,...n){throw new UnsupportedOperationError("encrypt")}async decrypt(...r){this.checkDecrypt.apply(this,r);return this.onDecrypt.apply(this,r)}checkDecrypt(r,e,t,n={},...s){this.checkAlgorithmName(r);this.checkAlgorithmParams(r);this.checkCryptoKey(e,n.keyUsage?"decrypt":void 0)}async onDecrypt(r,e,t,...n){throw new UnsupportedOperationError("decrypt")}async deriveBits(...r){this.checkDeriveBits.apply(this,r);return this.onDeriveBits.apply(this,r)}checkDeriveBits(r,e,t,n={},...s){this.checkAlgorithmName(r);this.checkAlgorithmParams(r);this.checkCryptoKey(e,n.keyUsage?"deriveBits":void 0);if(t%8!==0){throw new OperationError("length: Is not multiple of 8")}}async onDeriveBits(r,e,t,...n){throw new UnsupportedOperationError("deriveBits")}async exportKey(...r){this.checkExportKey.apply(this,r);return this.onExportKey.apply(this,r)}checkExportKey(r,e,...t){this.checkKeyFormat(r);this.checkCryptoKey(e);if(!e.extractable){throw new CryptoError("key: Is not extractable")}}async onExportKey(r,e,...t){throw new UnsupportedOperationError("exportKey")}async importKey(...r){this.checkImportKey.apply(this,r);return this.onImportKey.apply(this,r)}checkImportKey(r,e,t,n,s,...o){this.checkKeyFormat(r);this.checkKeyData(r,e);this.checkAlgorithmName(t);this.checkImportParams(t);if(Array.isArray(this.usages)){this.checkKeyUsages(s,this.usages)}}async onImportKey(r,e,t,n,s,...o){throw new UnsupportedOperationError("importKey")}checkAlgorithmName(r){if(r.name.toLowerCase()!==this.name.toLowerCase()){throw new AlgorithmError("Unrecognized name")}}checkAlgorithmParams(r){}checkDerivedKeyParams(r){}checkKeyUsages(r,e){for(const t of r){if(e.indexOf(t)===-1){throw new TypeError("Cannot create a key using the specified key usages")}}}checkCryptoKey(r,e){this.checkAlgorithmName(r.algorithm);if(e&&r.usages.indexOf(e)===-1){throw new CryptoError(`key does not match that of operation`)}}checkRequiredProperty(r,e){if(!(e in r)){throw new RequiredPropertyError(e)}}checkHashAlgorithm(r,e){for(const t of e){if(t.toLowerCase()===r.name.toLowerCase()){return}}throw new OperationError(`hash: Must be one of ${e.join(", ")}`)}checkImportParams(r){}checkKeyFormat(r){switch(r){case"raw":case"pkcs8":case"spki":case"jwk":break;default:throw new TypeError("format: Is invalid value. Must be 'jwk', 'raw', 'spki', or 'pkcs8'")}}checkKeyData(r,e){if(!e){throw new TypeError("keyData: Cannot be empty on empty on key importing")}if(r==="jwk"){if(!isJWK(e)){throw new TypeError("keyData: Is not JsonWebToken")}}else if(!n.BufferSourceConverter.isBufferSource(e)){throw new TypeError("keyData: Is not ArrayBufferView or ArrayBuffer")}}prepareData(r){return n.BufferSourceConverter.toArrayBuffer(r)}}class AesProvider extends ProviderCrypto{checkGenerateKeyParams(r){this.checkRequiredProperty(r,"length");if(typeof r.length!=="number"){throw new TypeError("length: Is not of type Number")}switch(r.length){case 128:case 192:case 256:break;default:throw new TypeError("length: Must be 128, 192, or 256")}}checkDerivedKeyParams(r){this.checkGenerateKeyParams(r)}}class AesCbcProvider extends AesProvider{constructor(){super(...arguments);this.name="AES-CBC";this.usages=["encrypt","decrypt","wrapKey","unwrapKey"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"iv");if(!(r.iv instanceof ArrayBuffer||ArrayBuffer.isView(r.iv))){throw new TypeError("iv: Is not of type '(ArrayBuffer or ArrayBufferView)'")}if(r.iv.byteLength!==16){throw new TypeError("iv: Must have length 16 bytes")}}}class AesCmacProvider extends AesProvider{constructor(){super(...arguments);this.name="AES-CMAC";this.usages=["sign","verify"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"length");if(typeof r.length!=="number"){throw new TypeError("length: Is not a Number")}if(r.length<1){throw new OperationError("length: Must be more than 0")}}}class AesCtrProvider extends AesProvider{constructor(){super(...arguments);this.name="AES-CTR";this.usages=["encrypt","decrypt","wrapKey","unwrapKey"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"counter");if(!(r.counter instanceof ArrayBuffer||ArrayBuffer.isView(r.counter))){throw new TypeError("counter: Is not of type '(ArrayBuffer or ArrayBufferView)'")}if(r.counter.byteLength!==16){throw new TypeError("iv: Must have length 16 bytes")}this.checkRequiredProperty(r,"length");if(typeof r.length!=="number"){throw new TypeError("length: Is not a Number")}if(r.length<1){throw new OperationError("length: Must be more than 0")}}}class AesEcbProvider extends AesProvider{constructor(){super(...arguments);this.name="AES-ECB";this.usages=["encrypt","decrypt","wrapKey","unwrapKey"]}}class AesGcmProvider extends AesProvider{constructor(){super(...arguments);this.name="AES-GCM";this.usages=["encrypt","decrypt","wrapKey","unwrapKey"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"iv");if(!(r.iv instanceof ArrayBuffer||ArrayBuffer.isView(r.iv))){throw new TypeError("iv: Is not of type '(ArrayBuffer or ArrayBufferView)'")}if(r.iv.byteLength<1){throw new OperationError("iv: Must have length more than 0 and less than 2^64 - 1")}if(!("tagLength"in r)){r.tagLength=128}switch(r.tagLength){case 32:case 64:case 96:case 104:case 112:case 120:case 128:break;default:throw new OperationError("tagLength: Must be one of 32, 64, 96, 104, 112, 120 or 128")}}}class AesKwProvider extends AesProvider{constructor(){super(...arguments);this.name="AES-KW";this.usages=["wrapKey","unwrapKey"]}}class DesProvider extends ProviderCrypto{constructor(){super(...arguments);this.usages=["encrypt","decrypt","wrapKey","unwrapKey"]}checkAlgorithmParams(r){if(this.ivSize){this.checkRequiredProperty(r,"iv");if(!(r.iv instanceof ArrayBuffer||ArrayBuffer.isView(r.iv))){throw new TypeError("iv: Is not of type '(ArrayBuffer or ArrayBufferView)'")}if(r.iv.byteLength!==this.ivSize){throw new TypeError(`iv: Must have length ${this.ivSize} bytes`)}}}checkGenerateKeyParams(r){this.checkRequiredProperty(r,"length");if(typeof r.length!=="number"){throw new TypeError("length: Is not of type Number")}if(r.length!==this.keySizeBits){throw new OperationError(`algorith.length: Must be ${this.keySizeBits}`)}}checkDerivedKeyParams(r){this.checkGenerateKeyParams(r)}}class RsaProvider extends ProviderCrypto{constructor(){super(...arguments);this.hashAlgorithms=["SHA-1","SHA-256","SHA-384","SHA-512"]}checkGenerateKeyParams(r){this.checkRequiredProperty(r,"hash");this.checkHashAlgorithm(r.hash,this.hashAlgorithms);this.checkRequiredProperty(r,"publicExponent");if(!(r.publicExponent&&r.publicExponent instanceof Uint8Array)){throw new TypeError("publicExponent: Missing or not a Uint8Array")}const e=n.Convert.ToBase64(r.publicExponent);if(!(e==="Aw=="||e==="AQAB")){throw new TypeError("publicExponent: Must be [3] or [1,0,1]")}this.checkRequiredProperty(r,"modulusLength");switch(r.modulusLength){case 1024:case 2048:case 4096:break;default:throw new TypeError("modulusLength: Must be 1024, 2048, or 4096")}}checkImportParams(r){this.checkRequiredProperty(r,"hash");this.checkHashAlgorithm(r.hash,this.hashAlgorithms)}}class RsaSsaProvider extends RsaProvider{constructor(){super(...arguments);this.name="RSASSA-PKCS1-v1_5";this.usages={privateKey:["sign"],publicKey:["verify"]}}}class RsaPssProvider extends RsaProvider{constructor(){super(...arguments);this.name="RSA-PSS";this.usages={privateKey:["sign"],publicKey:["verify"]}}checkAlgorithmParams(r){this.checkRequiredProperty(r,"saltLength");if(typeof r.saltLength!=="number"){throw new TypeError("saltLength: Is not a Number")}if(r.saltLength<0){throw new RangeError("saltLength: Must be positive number")}}}class RsaOaepProvider extends RsaProvider{constructor(){super(...arguments);this.name="RSA-OAEP";this.usages={privateKey:["decrypt","unwrapKey"],publicKey:["encrypt","wrapKey"]}}checkAlgorithmParams(r){if(r.label&&!(r.label instanceof ArrayBuffer||ArrayBuffer.isView(r.label))){throw new TypeError("label: Is not of type '(ArrayBuffer or ArrayBufferView)'")}}}class EllipticProvider extends ProviderCrypto{checkGenerateKeyParams(r){this.checkRequiredProperty(r,"namedCurve");this.checkNamedCurve(r.namedCurve)}checkNamedCurve(r){for(const e of this.namedCurves){if(e.toLowerCase()===r.toLowerCase()){return}}throw new OperationError(`namedCurve: Must be one of ${this.namedCurves.join(", ")}`)}}class EcdsaProvider extends EllipticProvider{constructor(){super(...arguments);this.name="ECDSA";this.hashAlgorithms=["SHA-1","SHA-256","SHA-384","SHA-512"];this.usages={privateKey:["sign"],publicKey:["verify"]};this.namedCurves=["P-256","P-384","P-521","K-256"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"hash");this.checkHashAlgorithm(r.hash,this.hashAlgorithms)}}const u=["secret","private","public"];class CryptoKey{static create(r,e,t,n){const s=new this;s.algorithm=r;s.type=e;s.extractable=t;s.usages=n;return s}static isKeyType(r){return u.indexOf(r)!==-1}get[Symbol.toStringTag](){return"CryptoKey"}}class EcdhProvider extends EllipticProvider{constructor(){super(...arguments);this.name="ECDH";this.usages={privateKey:["deriveBits","deriveKey"],publicKey:[]};this.namedCurves=["P-256","P-384","P-521","K-256"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"public");if(!(r.public instanceof CryptoKey)){throw new TypeError("public: Is not a CryptoKey")}if(r.public.type!=="public"){throw new OperationError("public: Is not a public key")}if(r.public.algorithm.name!==this.name){throw new OperationError(`public: Is not ${this.name} key`)}}}class EcdhEsProvider extends EcdhProvider{constructor(){super(...arguments);this.name="ECDH-ES";this.namedCurves=["X25519","X448"]}}class EdDsaProvider extends EllipticProvider{constructor(){super(...arguments);this.name="EdDSA";this.usages={privateKey:["sign"],publicKey:["verify"]};this.namedCurves=["Ed25519","Ed448"]}}class HmacProvider extends ProviderCrypto{constructor(){super(...arguments);this.name="HMAC";this.hashAlgorithms=["SHA-1","SHA-256","SHA-384","SHA-512"];this.usages=["sign","verify"]}getDefaultLength(r){switch(r.toUpperCase()){case"SHA-1":case"SHA-256":case"SHA-384":case"SHA-512":return 512;default:throw new Error(`Unknown algorithm name '${r}'`)}}checkGenerateKeyParams(r){this.checkRequiredProperty(r,"hash");this.checkHashAlgorithm(r.hash,this.hashAlgorithms);if("length"in r){if(typeof r.length!=="number"){throw new TypeError("length: Is not a Number")}if(r.length<1){throw new RangeError("length: Number is out of range")}}}checkImportParams(r){this.checkRequiredProperty(r,"hash");this.checkHashAlgorithm(r.hash,this.hashAlgorithms)}}class Pbkdf2Provider extends ProviderCrypto{constructor(){super(...arguments);this.name="PBKDF2";this.hashAlgorithms=["SHA-1","SHA-256","SHA-384","SHA-512"];this.usages=["deriveBits","deriveKey"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"hash");this.checkHashAlgorithm(r.hash,this.hashAlgorithms);this.checkRequiredProperty(r,"salt");if(!(r.salt instanceof ArrayBuffer||ArrayBuffer.isView(r.salt))){throw new TypeError("salt: Is not of type '(ArrayBuffer or ArrayBufferView)'")}this.checkRequiredProperty(r,"iterations");if(typeof r.iterations!=="number"){throw new TypeError("iterations: Is not a Number")}if(r.iterations<1){throw new TypeError("iterations: Is less than 1")}}checkImportKey(r,e,t,n,s,...o){super.checkImportKey(r,e,t,n,s);if(n){throw new SyntaxError("extractable: Must be 'false'")}}}class HkdfProvider extends ProviderCrypto{constructor(){super(...arguments);this.name="HKDF";this.hashAlgorithms=["SHA-1","SHA-256","SHA-384","SHA-512"];this.usages=["deriveKey","deriveBits"]}checkAlgorithmParams(r){this.checkRequiredProperty(r,"hash");this.checkHashAlgorithm(r.hash,this.hashAlgorithms);this.checkRequiredProperty(r,"salt");if(!n.BufferSourceConverter.isBufferSource(r.salt)){throw new TypeError("salt: Is not of type '(ArrayBuffer or ArrayBufferView)'")}this.checkRequiredProperty(r,"info");if(!n.BufferSourceConverter.isBufferSource(r.info)){throw new TypeError("salt: Is not of type '(ArrayBuffer or ArrayBufferView)'")}}checkImportKey(r,e,t,n,s,...o){super.checkImportKey(r,e,t,n,s);if(n){throw new SyntaxError("extractable: Must be 'false'")}}}class Crypto{get[Symbol.toStringTag](){return"Crypto"}}class ProviderStorage{constructor(){this.items={}}get(r){return this.items[r.toLowerCase()]||null}set(r){this.items[r.name.toLowerCase()]=r}removeAt(r){const e=this.get(r.toLowerCase());if(e){delete this.items[r]}return e}has(r){return!!this.get(r)}get length(){return Object.keys(this.items).length}get algorithms(){const r=[];for(const e in this.items){const t=this.items[e];r.push(t.name)}return r.sort()}}class SubtleCrypto{constructor(){this.providers=new ProviderStorage}static isHashedAlgorithm(r){return r&&typeof r==="object"&&"name"in r&&"hash"in r?true:false}get[Symbol.toStringTag](){return"SubtleCrypto"}async digest(...r){this.checkRequiredArguments(r,2,"digest");const[e,t,...s]=r;const o=this.prepareAlgorithm(e);const i=n.BufferSourceConverter.toArrayBuffer(t);const a=this.getProvider(o.name);const c=await a.digest(o,i,...s);return c}async generateKey(...r){this.checkRequiredArguments(r,3,"generateKey");const[e,t,n,...s]=r;const o=this.prepareAlgorithm(e);const i=this.getProvider(o.name);const a=await i.generateKey({...o,name:i.name},t,n,...s);return a}async sign(...r){this.checkRequiredArguments(r,3,"sign");const[e,t,s,...o]=r;this.checkCryptoKey(t);const i=this.prepareAlgorithm(e);const a=n.BufferSourceConverter.toArrayBuffer(s);const c=this.getProvider(i.name);const u=await c.sign({...i,name:c.name},t,a,...o);return u}async verify(...r){this.checkRequiredArguments(r,4,"verify");const[e,t,s,o,...i]=r;this.checkCryptoKey(t);const a=this.prepareAlgorithm(e);const c=n.BufferSourceConverter.toArrayBuffer(o);const u=n.BufferSourceConverter.toArrayBuffer(s);const f=this.getProvider(a.name);const l=await f.verify({...a,name:f.name},t,u,c,...i);return l}async encrypt(...r){this.checkRequiredArguments(r,3,"encrypt");const[e,t,s,...o]=r;this.checkCryptoKey(t);const i=this.prepareAlgorithm(e);const a=n.BufferSourceConverter.toArrayBuffer(s);const c=this.getProvider(i.name);const u=await c.encrypt({...i,name:c.name},t,a,{keyUsage:true},...o);return u}async decrypt(...r){this.checkRequiredArguments(r,3,"decrypt");const[e,t,s,...o]=r;this.checkCryptoKey(t);const i=this.prepareAlgorithm(e);const a=n.BufferSourceConverter.toArrayBuffer(s);const c=this.getProvider(i.name);const u=await c.decrypt({...i,name:c.name},t,a,{keyUsage:true},...o);return u}async deriveBits(...r){this.checkRequiredArguments(r,3,"deriveBits");const[e,t,n,...s]=r;this.checkCryptoKey(t);const o=this.prepareAlgorithm(e);const i=this.getProvider(o.name);const a=await i.deriveBits({...o,name:i.name},t,n,{keyUsage:true},...s);return a}async deriveKey(...r){this.checkRequiredArguments(r,5,"deriveKey");const[e,t,n,s,o,...i]=r;const a=this.prepareAlgorithm(n);const c=this.getProvider(a.name);c.checkDerivedKeyParams(a);const u=this.prepareAlgorithm(e);const f=this.getProvider(u.name);f.checkCryptoKey(t,"deriveKey");const l=await f.deriveBits({...u,name:f.name},t,n.length||512,{keyUsage:false},...i);return this.importKey("raw",l,n,s,o,...i)}async exportKey(...r){this.checkRequiredArguments(r,2,"exportKey");const[e,t,...n]=r;this.checkCryptoKey(t);const s=this.getProvider(t.algorithm.name);const o=await s.exportKey(e,t,...n);return o}async importKey(...r){this.checkRequiredArguments(r,5,"importKey");const[e,t,s,o,i,...a]=r;const c=this.prepareAlgorithm(s);const u=this.getProvider(c.name);if(["pkcs8","spki","raw"].indexOf(e)!==-1){const r=n.BufferSourceConverter.toArrayBuffer(t);return u.importKey(e,r,{...c,name:u.name},o,i,...a)}else{if(!t.kty){throw new TypeError("keyData: Is not JSON")}}return u.importKey(e,t,{...c,name:u.name},o,i,...a)}async wrapKey(r,e,t,s,...o){let i=await this.exportKey(r,e,...o);if(r==="jwk"){const r=JSON.stringify(i);i=n.Convert.FromUtf8String(r)}const a=this.prepareAlgorithm(s);const c=n.BufferSourceConverter.toArrayBuffer(i);const u=this.getProvider(a.name);return u.encrypt({...a,name:u.name},t,c,{keyUsage:false},...o)}async unwrapKey(r,e,t,s,o,i,a,...c){const u=this.prepareAlgorithm(s);const f=n.BufferSourceConverter.toArrayBuffer(e);const l=this.getProvider(u.name);let h=await l.decrypt({...u,name:l.name},t,f,{keyUsage:false},...c);if(r==="jwk"){try{h=JSON.parse(n.Convert.ToUtf8String(h))}catch(r){const e=new TypeError("wrappedKey: Is not a JSON");e.internal=r;throw e}}return this.importKey(r,h,o,i,a,...c)}checkRequiredArguments(r,e,t){if(r.lengthn.Convert.FromBase64Url(r),toJSON:r=>n.Convert.ToBase64Url(new Uint8Array(r))};const h={fromASN:r=>{const e=r.valueBlock.valueHex;return!new Uint8Array(e)[0]?r.valueBlock.valueHex.slice(1):r.valueBlock.valueHex},toASN:r=>{const e=new Uint8Array(r)[0]>127?Buffer.concat([Buffer.from([0]),Buffer.from(r)]):Buffer.from(r);return new c.Integer({valueHex:new Uint8Array(e).buffer})}};var y=Object.freeze({__proto__:null,JsonBase64UrlArrayBufferConverter:l,AsnIntegerArrayBufferConverter:h});class RsaPrivateKey{constructor(){this.version=0;this.modulus=new ArrayBuffer(0);this.publicExponent=new ArrayBuffer(0);this.privateExponent=new ArrayBuffer(0);this.prime1=new ArrayBuffer(0);this.prime2=new ArrayBuffer(0);this.exponent1=new ArrayBuffer(0);this.exponent2=new ArrayBuffer(0);this.coefficient=new ArrayBuffer(0)}}s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:o.AsnIntegerConverter})],RsaPrivateKey.prototype,"version",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"n",converter:l})],RsaPrivateKey.prototype,"modulus",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"e",converter:l})],RsaPrivateKey.prototype,"publicExponent",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"d",converter:l})],RsaPrivateKey.prototype,"privateExponent",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"p",converter:l})],RsaPrivateKey.prototype,"prime1",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"q",converter:l})],RsaPrivateKey.prototype,"prime2",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"dp",converter:l})],RsaPrivateKey.prototype,"exponent1",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"dq",converter:l})],RsaPrivateKey.prototype,"exponent2",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"qi",converter:l})],RsaPrivateKey.prototype,"coefficient",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Any,optional:true})],RsaPrivateKey.prototype,"otherPrimeInfos",void 0);class RsaPublicKey{constructor(){this.modulus=new ArrayBuffer(0);this.publicExponent=new ArrayBuffer(0)}}s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"n",converter:l})],RsaPublicKey.prototype,"modulus",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:h}),i.JsonProp({name:"e",converter:l})],RsaPublicKey.prototype,"publicExponent",void 0);let p=class EcPublicKey{constructor(r){this.value=new ArrayBuffer(0);if(r){this.value=r}}toJSON(){let r=new Uint8Array(this.value);if(r[0]!==4){throw new CryptoError("Wrong ECPoint. Current version supports only Uncompressed (0x04) point")}r=new Uint8Array(this.value.slice(1));const e=r.length/2;const t=0;const s={x:n.Convert.ToBase64Url(r.buffer.slice(t,t+e)),y:n.Convert.ToBase64Url(r.buffer.slice(t+e,t+e+e))};return s}fromJSON(r){if(!("x"in r)){throw new Error("x: Missing required property")}if(!("y"in r)){throw new Error("y: Missing required property")}const e=n.Convert.FromBase64Url(r.x);const t=n.Convert.FromBase64Url(r.y);const s=Buffer.concat([new Uint8Array([4]),new Uint8Array(e),new Uint8Array(t)]);this.value=new Uint8Array(s).buffer;return this}};s.__decorate([o.AsnProp({type:o.AsnPropTypes.OctetString})],p.prototype,"value",void 0);p=s.__decorate([o.AsnType({type:o.AsnTypeTypes.Choice})],p);class EcPrivateKey{constructor(){this.version=1;this.privateKey=new ArrayBuffer(0)}fromJSON(r){if(!("d"in r)){throw new Error("d: Missing required property")}this.privateKey=n.Convert.FromBase64Url(r.d);if("x"in r){const e=new p;e.fromJSON(r);this.publicKey=o.AsnSerializer.toASN(e).valueBlock.valueHex}return this}toJSON(){const r={};r.d=n.Convert.ToBase64Url(this.privateKey);if(this.publicKey){Object.assign(r,new p(this.publicKey).toJSON())}return r}}s.__decorate([o.AsnProp({type:o.AsnPropTypes.Integer,converter:o.AsnIntegerConverter})],EcPrivateKey.prototype,"version",void 0);s.__decorate([o.AsnProp({type:o.AsnPropTypes.OctetString})],EcPrivateKey.prototype,"privateKey",void 0);s.__decorate([o.AsnProp({context:0,type:o.AsnPropTypes.Any,optional:true})],EcPrivateKey.prototype,"parameters",void 0);s.__decorate([o.AsnProp({context:1,type:o.AsnPropTypes.BitString,optional:true})],EcPrivateKey.prototype,"publicKey",void 0);const d={fromASN:r=>{const e=new Uint8Array(r.valueBlock.valueHex);return e[0]===0?e.buffer.slice(1):e.buffer},toASN:r=>{const e=new Uint8Array(r);if(e[0]>127){const r=new Uint8Array(e.length+1);r.set(e,1);return new c.Integer({valueHex:r.buffer})}return new c.Integer({valueHex:r})}};var g=Object.freeze({__proto__:null,AsnIntegerWithoutPaddingConverter:d});class EcDsaSignature{constructor(){this.r=new ArrayBuffer(0);this.s=new ArrayBuffer(0)}static fromWebCryptoSignature(r){const e=n.BufferSourceConverter.toUint8Array(r);const t=e.byteLength/2;const s=new this;s.r=s.removePadding(e.slice(0,t));s.s=s.removePadding(e.slice(t,t*2));return s}toWebCryptoSignature(r){r=this.getPointSize();const e=this.addPadding(r,n.BufferSourceConverter.toUint8Array(this.r));const t=this.addPadding(r,n.BufferSourceConverter.toUint8Array(this.s));const s=new Uint8Array(e.byteLength+t.byteLength);s.set(e,0);s.set(t,e.length);return s.buffer}getPointSize(){const r=Math.max(this.r.byteLength,this.s.byteLength);switch(r){case 31:case 32:return 32;case 47:case 48:return 48;case 65:case 66:return 66}throw new Error("Unsupported EC point size")}addPadding(r,e){const t=new Uint8Array(r);const s=n.BufferSourceConverter.toUint8Array(e);t.set(s,r-s.length);return t}removePadding(r){const e=n.BufferSourceConverter.toUint8Array(r);for(let r=0;r{"use strict";t.r(e);t.d(e,{__extends:()=>__extends,__assign:()=>s,__rest:()=>__rest,__decorate:()=>__decorate,__param:()=>__param,__metadata:()=>__metadata,__awaiter:()=>__awaiter,__generator:()=>__generator,__createBinding:()=>o,__exportStar:()=>__exportStar,__values:()=>__values,__read:()=>__read,__spread:()=>__spread,__spreadArrays:()=>__spreadArrays,__spreadArray:()=>__spreadArray,__await:()=>__await,__asyncGenerator:()=>__asyncGenerator,__asyncDelegator:()=>__asyncDelegator,__asyncValues:()=>__asyncValues,__makeTemplateObject:()=>__makeTemplateObject,__importStar:()=>__importStar,__importDefault:()=>__importDefault,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldSet:()=>__classPrivateFieldSet});var n=function(r,e){n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))r[t]=e[t]};return n(r,e)};function __extends(r,e){if(typeof e!=="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");n(r,e);function __(){this.constructor=r}r.prototype=e===null?Object.create(e):(__.prototype=e.prototype,new __)}var s=function(){s=Object.assign||function __assign(r){for(var e,t=1,n=arguments.length;t=0;a--)if(i=r[a])o=(s<3?i(o):s>3?i(e,t,o):i(e,t))||o;return s>3&&o&&Object.defineProperty(e,t,o),o}function __param(r,e){return function(t,n){e(t,n,r)}}function __metadata(r,e){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(r,e)}function __awaiter(r,e,t,n){function adopt(r){return r instanceof t?r:new t(function(e){e(r)})}return new(t||(t=Promise))(function(t,s){function fulfilled(r){try{step(n.next(r))}catch(r){s(r)}}function rejected(r){try{step(n["throw"](r))}catch(r){s(r)}}function step(r){r.done?t(r.value):adopt(r.value).then(fulfilled,rejected)}step((n=n.apply(r,e||[])).next())})}function __generator(r,e){var t={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,s,o,i;return i={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function verb(r){return function(e){return step([r,e])}}function step(i){if(n)throw new TypeError("Generator is already executing.");while(t)try{if(n=1,s&&(o=i[0]&2?s["return"]:i[0]?s["throw"]||((o=s["return"])&&o.call(s),0):s.next)&&!(o=o.call(s,i[1])).done)return o;if(s=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:t.label++;return{value:i[1],done:false};case 5:t.label++;s=i[1];i=[0];continue;case 7:i=t.ops.pop();t.trys.pop();continue;default:if(!(o=t.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){t=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]=r.length)r=void 0;return{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(r,e){var t=typeof Symbol==="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),s,o=[],i;try{while((e===void 0||e-- >0)&&!(s=n.next()).done)o.push(s.value)}catch(r){i={error:r}}finally{try{if(s&&!s.done&&(t=n["return"]))t.call(n)}finally{if(i)throw i.error}}return o}function __spread(){for(var r=[],e=0;e1||resume(r,e)})}}function resume(r,e){try{step(n[r](e))}catch(r){settle(o[0][3],r)}}function step(r){r.value instanceof __await?Promise.resolve(r.value.v).then(fulfill,reject):settle(o[0][2],r)}function fulfill(r){resume("next",r)}function reject(r){resume("throw",r)}function settle(r,e){if(r(e),o.shift(),o.length)resume(o[0][0],o[0][1])}}function __asyncDelegator(r){var e,t;return e={},verb("next"),verb("throw",function(r){throw r}),verb("return"),e[Symbol.iterator]=function(){return this},e;function verb(n,s){e[n]=r[n]?function(e){return(t=!t)?{value:__await(r[n](e)),done:n==="return"}:s?s(e):e}:s}}function __asyncValues(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof __values==="function"?__values(r):r[Symbol.iterator](),t={},verb("next"),verb("throw"),verb("return"),t[Symbol.asyncIterator]=function(){return this},t);function verb(e){t[e]=r[e]&&function(t){return new Promise(function(n,s){t=r[e](t),settle(n,s,t.done,t.value)})}}function settle(r,e,t,n){Promise.resolve(n).then(function(e){r({value:e,done:t})},e)}}function __makeTemplateObject(r,e){if(Object.defineProperty){Object.defineProperty(r,"raw",{value:e})}else{r.raw=e}return r}var i=Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:true,value:e})}:function(r,e){r["default"]=e};function __importStar(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)if(t!=="default"&&Object.prototype.hasOwnProperty.call(r,t))o(e,r,t);i(e,r);return e}function __importDefault(r){return r&&r.__esModule?r:{default:r}}function __classPrivateFieldGet(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e==="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}function __classPrivateFieldSet(r,e,t,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e==="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(r,t):s?s.value=t:e.set(r,t),t}},417:r=>{"use strict";r.exports=require("crypto")},765:r=>{"use strict";r.exports=require("process")}};var e={};function __nccwpck_require__(t){if(e[t]){return e[t].exports}var n=e[t]={exports:{}};var s=true;try{r[t].call(n.exports,n,n.exports,__nccwpck_require__);s=false}finally{if(s)delete e[t]}return n.exports}(()=>{__nccwpck_require__.d=((r,e)=>{for(var t in e){if(__nccwpck_require__.o(e,t)&&!__nccwpck_require__.o(r,t)){Object.defineProperty(r,t,{enumerable:true,get:e[t]})}}})})();(()=>{__nccwpck_require__.o=((r,e)=>Object.prototype.hasOwnProperty.call(r,e))})();(()=>{__nccwpck_require__.r=(r=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(r,"__esModule",{value:true})})})();__nccwpck_require__.ab=__dirname+"/";return __nccwpck_require__(25)})(); \ No newline at end of file diff --git a/packages/next/compiled/formdata-node/LICENSE b/packages/next/compiled/formdata-node/LICENSE new file mode 100644 index 0000000000000..e4e317838a444 --- /dev/null +++ b/packages/next/compiled/formdata-node/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017-present Nick K. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/next/compiled/formdata-node/index.js b/packages/next/compiled/formdata-node/index.js new file mode 100644 index 0000000000000..a0f273795ffd3 --- /dev/null +++ b/packages/next/compiled/formdata-node/index.js @@ -0,0 +1 @@ +module.exports=(()=>{"use strict";var e={727:function(e,t,r){var n=this&&this.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)};var o=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(e,r):o?o.value=r:t.set(e,r),r};var i,s,a;Object.defineProperty(t,"__esModule",{value:true});t.Blob=void 0;const c=r(398);const l=r(4);const u=r(441);class Blob{constructor(e=[],t={}){i.set(this,[]);s.set(this,"");a.set(this,0);t!==null&&t!==void 0?t:t={};if(typeof e!=="object"||e===null){throw new TypeError("Failed to construct 'Blob': "+"The provided value cannot be converted to a sequence.")}if(!(0,l.isFunction)(e[Symbol.iterator])){throw new TypeError("Failed to construct 'Blob': "+"The object must have a callable @@iterator property.")}if(typeof t!=="object"&&!(0,l.isFunction)(t)){throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.")}const r=new TextEncoder;for(const t of e){let e;if(ArrayBuffer.isView(t)){e=new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}else if(t instanceof ArrayBuffer){e=new Uint8Array(t.slice(0))}else if(t instanceof Blob){e=t}else{e=r.encode(String(t))}o(this,a,n(this,a,"f")+(ArrayBuffer.isView(e)?e.byteLength:e.size),"f");n(this,i,"f").push(e)}const c=t.type===undefined?"":String(t.type);o(this,s,/^[\x20-\x7E]*$/.test(c)?c:"","f")}static[(i=new WeakMap,s=new WeakMap,a=new WeakMap,Symbol.hasInstance)](e){return Boolean(e&&typeof e==="object"&&(0,l.isFunction)(e.constructor)&&((0,l.isFunction)(e.stream)||(0,l.isFunction)(e.arrayBuffer))&&/^(Blob|File)$/.test(e[Symbol.toStringTag]))}get type(){return n(this,s,"f")}get size(){return n(this,a,"f")}slice(e,t,r){return new Blob((0,u.sliceBlob)(n(this,i,"f"),this.size,e,t),{type:r})}async text(){const e=new TextDecoder;let t="";for await(const r of(0,u.consumeBlobParts)(n(this,i,"f"))){t+=e.decode(r,{stream:true})}t+=e.decode();return t}async arrayBuffer(){const e=new Uint8Array(this.size);let t=0;for await(const r of(0,u.consumeBlobParts)(n(this,i,"f"))){e.set(r,t);t+=r.length}return e.buffer}stream(){const e=(0,u.consumeBlobParts)(n(this,i,"f"),true);return new c.ReadableStream({async pull(t){const{value:r,done:n}=await e.next();if(n){return queueMicrotask(()=>t.close())}t.enqueue(r)},async cancel(){await e.return()}})}get[Symbol.toStringTag](){return"Blob"}}t.Blob=Blob;Object.defineProperties(Blob.prototype,{type:{enumerable:true},size:{enumerable:true},slice:{enumerable:true},stream:{enumerable:true},text:{enumerable:true},arrayBuffer:{enumerable:true}})},372:function(e,t,r){var n=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(e,r):o?o.value=r:t.set(e,r),r};var o=this&&this.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)};var i,s;Object.defineProperty(t,"__esModule",{value:true});t.File=void 0;const a=r(727);class File extends a.Blob{constructor(e,t,r={}){super(e,r);i.set(this,void 0);s.set(this,0);if(arguments.length<2){throw new TypeError("Failed to construct 'File': 2 arguments required, "+`but only ${arguments.length} present.`)}n(this,i,String(t),"f");const o=r.lastModified===undefined?Date.now():Number(r.lastModified);if(!Number.isNaN(o)){n(this,s,o,"f")}}get name(){return o(this,i,"f")}get lastModified(){return o(this,s,"f")}get[(i=new WeakMap,s=new WeakMap,Symbol.toStringTag)](){return"File"}}t.File=File},923:function(e,t,r){var n=this&&this.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)};var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var i,s,a;Object.defineProperty(t,"__esModule",{value:true});t.FormData=void 0;const c=r(669);const l=r(372);const u=r(188);const f=r(4);const d=r(383);const h=o(r(617));class FormData{constructor(e){i.add(this);s.set(this,new Map);if(e){(0,d.deprecateConstructorEntries)();e.forEach(({name:e,value:t,fileName:r})=>this.append(e,t,r))}}static[(s=new WeakMap,i=new WeakSet,Symbol.hasInstance)](e){return Boolean(e&&(0,f.isFunction)(e.constructor)&&e[Symbol.toStringTag]==="FormData"&&(0,f.isFunction)(e.append)&&(0,f.isFunction)(e.set)&&(0,f.isFunction)(e.get)&&(0,f.isFunction)(e.getAll)&&(0,f.isFunction)(e.has)&&(0,f.isFunction)(e.delete)&&(0,f.isFunction)(e.entries)&&(0,f.isFunction)(e.values)&&(0,f.isFunction)(e.keys)&&(0,f.isFunction)(e[Symbol.iterator])&&(0,f.isFunction)(e.forEach))}append(e,t,r){return n(this,i,"m",a).call(this,{name:e,value:t,fileName:r,append:true,argsLength:arguments.length})}set(e,t,r){return n(this,i,"m",a).call(this,{name:e,value:t,fileName:r,append:false,argsLength:arguments.length})}get(e){const t=n(this,s,"f").get(String(e));if(!t){return null}return t[0]}getAll(e){const t=n(this,s,"f").get(String(e));if(!t){return[]}return t.slice()}has(e){return n(this,s,"f").has(String(e))}delete(e){return void n(this,s,"f").delete(String(e))}*keys(){for(const e of n(this,s,"f").keys()){yield e}}*entries(){for(const e of this.keys()){const t=this.getAll(e);for(const r of t){yield[e,r]}}}*values(){for(const[,e]of this){yield e}}[(a=function _FormData_setEntry({name:e,value:t,append:r,fileName:o,argsLength:i}){const a=r?"append":"set";e=String(e);if(i<2){throw new TypeError(`Failed to execute '${a}' on 'FormData': `+`2 arguments required, but only ${i} present.`)}let c;if((0,u.isFile)(t)){o=(0,h.default)(o===undefined?t.name:o);c=new l.File([t],o,{type:t.type,lastModified:t.lastModified})}else if(o){throw new TypeError(`Failed to execute '${a}' on 'FormData': `+"parameter 2 is not of type 'Blob'.")}else{c=String(t)}const f=n(this,s,"f").get(e);if(!f){return void n(this,s,"f").set(e,[c])}if(!r){return void n(this,s,"f").set(e,[c])}f.push(c)},Symbol.iterator)](){return this.entries()}forEach(e,t){for(const[r,n]of this){e.call(t,n,r,this)}}get[Symbol.toStringTag](){return"FormData"}[c.inspect.custom](){return this[Symbol.toStringTag]}}t.FormData=FormData},441:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.sliceBlob=t.consumeBlobParts=void 0;const n=r(4);const o=65536;async function*clonePart(e){const t=e.byteOffset+e.byteLength;let r=e.byteOffset;while(r!==t){const n=Math.min(t-r,o);const i=e.buffer.slice(r,r+n);r+=i.byteLength;yield new Uint8Array(i)}}async function*consumeNodeBlob(e){let t=0;while(t!==e.size){const r=e.slice(t,Math.min(e.size,t+o));const n=await r.arrayBuffer();t+=n.byteLength;yield new Uint8Array(n)}}async function*consumeBlobParts(e,t=false){for(const r of e){if(ArrayBuffer.isView(r)){if(t){yield*clonePart(r)}else{yield r}}else if((0,n.isFunction)(r.stream)){yield*r.stream()}else{yield*consumeNodeBlob(r)}}}t.consumeBlobParts=consumeBlobParts;function*sliceBlob(e,t,r=0,n){n!==null&&n!==void 0?n:n=t;let o=r<0?Math.max(t+r,0):Math.min(r,t);let i=n<0?Math.max(t+n,0):Math.min(n,t);const s=Math.max(i-o,0);let a=0;for(const t of e){if(a>=s){break}const e=ArrayBuffer.isView(t)?t.byteLength:t.size;if(o&&e<=o){o-=e;i-=e}else{let r;if(ArrayBuffer.isView(t)){r=t.subarray(o,Math.min(e,i));a+=r.byteLength}else{r=t.slice(o,Math.min(e,i));a+=r.size}i-=e;o=0;yield r}}}t.sliceBlob=sliceBlob},383:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.deprecateConstructorEntries=void 0;const n=r(669);t.deprecateConstructorEntries=(0,n.deprecate)(()=>{},'Constructor "entries" argument is not spec-compliant '+"and will be removed in next major release.")},786:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var o=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});o(r(923),t);o(r(727),t);o(r(372),t)},188:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.isFile=void 0;const n=r(372);const o=e=>e instanceof n.File;t.isFile=o},4:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isFunction=void 0;const r=e=>typeof e==="function";t.isFunction=r},617:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});const r=(e="blob")=>String(e);t.default=r},398:e=>{e.exports=require("next/dist/compiled/web-streams-polyfill")},669:e=>{e.exports=require("util")}};var t={};function __nccwpck_require__(r){if(t[r]){return t[r].exports}var n=t[r]={exports:{}};var o=true;try{e[r].call(n.exports,n,n.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return n.exports}__nccwpck_require__.ab=__dirname+"/";return __nccwpck_require__(786)})(); \ No newline at end of file diff --git a/packages/next/compiled/formdata-node/package.json b/packages/next/compiled/formdata-node/package.json new file mode 100644 index 0000000000000..bf39298d63f2d --- /dev/null +++ b/packages/next/compiled/formdata-node/package.json @@ -0,0 +1 @@ +{"name":"formdata-node","main":"index.js","author":"Nick K. ","license":"MIT"} diff --git a/packages/next/compiled/ua-parser-js/package.json b/packages/next/compiled/ua-parser-js/package.json new file mode 100644 index 0000000000000..f3504d8e69eb9 --- /dev/null +++ b/packages/next/compiled/ua-parser-js/package.json @@ -0,0 +1 @@ +{"name":"ua-parser-js","main":"ua-parser.js","author":"Faisal Salman (http://faisalman.com)","license":"MIT"} diff --git a/packages/next/compiled/ua-parser-js/ua-parser.js b/packages/next/compiled/ua-parser-js/ua-parser.js new file mode 100644 index 0000000000000..d9a06af018629 --- /dev/null +++ b/packages/next/compiled/ua-parser-js/ua-parser.js @@ -0,0 +1 @@ +module.exports=(()=>{var i={578:function(i,s){(function(e,o){"use strict";var r="0.7.28",a="",l="?",w="function",n="undefined",t="object",b="string",d="major",u="model",p="name",v="type",f="vendor",g="version",c="architecture",x="console",k="mobile",m="tablet",y="smarttv",S="wearable",_="embedded",h=255;var A={extend:function(i,s){var e={};for(var o in i){if(s[o]&&s[o].length%2===0){e[o]=s[o].concat(i[o])}else{e[o]=i[o]}}return e},has:function(i,s){return typeof i===b?s.toLowerCase().indexOf(i.toLowerCase())!==-1:false},lowerize:function(i){return i.toLowerCase()},major:function(i){return typeof i===b?i.replace(/[^\d\.]/g,"").split(".")[0]:o},trim:function(i,s){i=i.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");return typeof s===n?i:i.substring(0,h)}};var z={rgx:function(i,s){var e=0,r,a,l,n,b,d;while(e0){if(n.length==2){if(typeof n[1]==w){this[n[0]]=n[1].call(this,d)}else{this[n[0]]=n[1]}}else if(n.length==3){if(typeof n[1]===w&&!(n[1].exec&&n[1].test)){this[n[0]]=d?n[1].call(this,d,n[2]):o}else{this[n[0]]=d?d.replace(n[1],n[2]):o}}else if(n.length==4){this[n[0]]=d?n[3].call(this,d.replace(n[1],n[2])):o}}else{this[n]=d?d:o}}}}e+=2}},str:function(i,s){for(var e in s){if(typeof s[e]===t&&s[e].length>0){for(var r=0;rh?A.trim(i,h):i;return this};this.setUA(r);return this};M.VERSION=r;M.BROWSER={NAME:p,MAJOR:d,VERSION:g};M.CPU={ARCHITECTURE:c};M.DEVICE={MODEL:u,VENDOR:f,TYPE:v,CONSOLE:x,MOBILE:k,SMARTTV:y,TABLET:m,WEARABLE:S,EMBEDDED:_};M.ENGINE={NAME:p,VERSION:g};M.OS={NAME:p,VERSION:g};if(typeof s!==n){if("object"!==n&&i.exports){s=i.exports=M}s.UAParser=M}else{if(typeof define==="function"&&define.amd){define(function(){return M})}else if(typeof e!=="undefined"){e.UAParser=M}}var R=typeof e!=="undefined"&&(e.jQuery||e.Zepto);if(R&&!R.ua){var E=new M;R.ua=E.getResult();R.ua.get=function(){return E.getUA()};R.ua.set=function(i){E.setUA(i);var s=E.getResult();for(var e in s){R.ua[e]=s[e]}}}})(typeof window==="object"?window:this)}};var s={};function __nccwpck_require__(e){if(s[e]){return s[e].exports}var o=s[e]={exports:{}};var r=true;try{i[e].call(o.exports,o,o.exports,__nccwpck_require__);r=false}finally{if(r)delete s[e]}return o.exports}__nccwpck_require__.ab=__dirname+"/";return __nccwpck_require__(578)})(); \ No newline at end of file diff --git a/packages/next/compiled/uuid/index.js b/packages/next/compiled/uuid/index.js new file mode 100644 index 0000000000000..c0dd6039186cc --- /dev/null +++ b/packages/next/compiled/uuid/index.js @@ -0,0 +1 @@ +module.exports=(()=>{"use strict";var e={840:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return u.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return f.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return d.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return _.default}});var u=_interopRequireDefault(r(628));var n=_interopRequireDefault(r(409));var a=_interopRequireDefault(r(122));var i=_interopRequireDefault(r(120));var f=_interopRequireDefault(r(332));var l=_interopRequireDefault(r(595));var o=_interopRequireDefault(r(900));var d=_interopRequireDefault(r(950));var _=_interopRequireDefault(r(746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},569:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(417));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return u.default.createHash("md5").update(e).digest()}var n=md5;t.default=n},332:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var r="00000000-0000-0000-0000-000000000000";t.default=r},746:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,u.default)(e)){throw TypeError("Invalid UUID")}let t;const r=new Uint8Array(16);r[0]=(t=parseInt(e.slice(0,8),16))>>>24;r[1]=t>>>16&255;r[2]=t>>>8&255;r[3]=t&255;r[4]=(t=parseInt(e.slice(9,13),16))>>>8;r[5]=t&255;r[6]=(t=parseInt(e.slice(14,18),16))>>>8;r[7]=t&255;r[8]=(t=parseInt(e.slice(19,23),16))>>>8;r[9]=t&255;r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;r[11]=t/4294967296&255;r[12]=t>>>24&255;r[13]=t>>>16&255;r[14]=t>>>8&255;r[15]=t&255;return r}var n=parse;t.default=n},814:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t.default=r},807:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=rng;var u=_interopRequireDefault(r(417));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=new Uint8Array(256);let a=n.length;function rng(){if(a>n.length-16){u.default.randomFillSync(n);a=0}return n.slice(a,a+=16)}},274:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(417));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return u.default.createHash("sha1").update(e).digest()}var n=sha1;t.default=n},950:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=[];for(let e=0;e<256;++e){n.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const r=(n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]).toLowerCase();if(!(0,u.default)(r)){throw TypeError("Stringified UUID is invalid")}return r}var a=stringify;t.default=a},628:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(807));var n=_interopRequireDefault(r(950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let a;let i;let f=0;let l=0;function v1(e,t,r){let o=t&&r||0;const d=t||new Array(16);e=e||{};let _=e.node||a;let s=e.clockseq!==undefined?e.clockseq:i;if(_==null||s==null){const t=e.random||(e.rng||u.default)();if(_==null){_=a=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(s==null){s=i=(t[6]<<8|t[7])&16383}}let c=e.msecs!==undefined?e.msecs:Date.now();let p=e.nsecs!==undefined?e.nsecs:l+1;const v=c-f+(p-l)/1e4;if(v<0&&e.clockseq===undefined){s=s+1&16383}if((v<0||c>f)&&e.nsecs===undefined){p=0}if(p>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}f=c;l=p;i=s;c+=122192928e5;const D=((c&268435455)*1e4+p)%4294967296;d[o++]=D>>>24&255;d[o++]=D>>>16&255;d[o++]=D>>>8&255;d[o++]=D&255;const q=c/4294967296*1e4&268435455;d[o++]=q>>>8&255;d[o++]=q&255;d[o++]=q>>>24&15|16;d[o++]=q>>>16&255;d[o++]=s>>>8|128;d[o++]=s&255;for(let e=0;e<6;++e){d[o+e]=_[e]}return t||(0,n.default)(d)}var o=v1;t.default=o},409:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(998));var n=_interopRequireDefault(r(569));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const a=(0,u.default)("v3",48,n.default);var i=a;t.default=i},998:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=_default;t.URL=t.DNS=void 0;var u=_interopRequireDefault(r(950));var n=_interopRequireDefault(r(746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(807));var n=_interopRequireDefault(r(950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,r){e=e||{};const a=e.random||(e.rng||u.default)();a[6]=a[6]&15|64;a[8]=a[8]&63|128;if(t){r=r||0;for(let e=0;e<16;++e){t[r+e]=a[e]}return t}return(0,n.default)(a)}var a=v4;t.default=a},120:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(998));var n=_interopRequireDefault(r(274));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const a=(0,u.default)("v5",80,n.default);var i=a;t.default=i},900:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(814));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&u.default.test(e)}var n=validate;t.default=n},595:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var u=_interopRequireDefault(r(900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,u.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var n=version;t.default=n},417:e=>{e.exports=require("crypto")}};var t={};function __nccwpck_require__(r){if(t[r]){return t[r].exports}var u=t[r]={exports:{}};var n=true;try{e[r](u,u.exports,__nccwpck_require__);n=false}finally{if(n)delete t[r]}return u.exports}__nccwpck_require__.ab=__dirname+"/";return __nccwpck_require__(840)})(); \ No newline at end of file diff --git a/packages/next/compiled/uuid/package.json b/packages/next/compiled/uuid/package.json new file mode 100644 index 0000000000000..ebe3828da8203 --- /dev/null +++ b/packages/next/compiled/uuid/package.json @@ -0,0 +1 @@ +{"name":"uuid","main":"index.js","license":"MIT"} diff --git a/packages/next/compiled/web-streams-polyfill/LICENSE b/packages/next/compiled/web-streams-polyfill/LICENSE new file mode 100644 index 0000000000000..4ca5166d16af3 --- /dev/null +++ b/packages/next/compiled/web-streams-polyfill/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2020 Mattias Buelens +Copyright (c) 2016 Diwank Singh Tomer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/next/compiled/web-streams-polyfill/package.json b/packages/next/compiled/web-streams-polyfill/package.json new file mode 100644 index 0000000000000..0f60b127556f1 --- /dev/null +++ b/packages/next/compiled/web-streams-polyfill/package.json @@ -0,0 +1 @@ +{"name":"web-streams-polyfill","main":"ponyfill.js","author":"Mattias Buelens ","license":"MIT"} diff --git a/packages/next/compiled/web-streams-polyfill/ponyfill.js b/packages/next/compiled/web-streams-polyfill/ponyfill.js new file mode 100644 index 0000000000000..9e8a6e8240f36 --- /dev/null +++ b/packages/next/compiled/web-streams-polyfill/ponyfill.js @@ -0,0 +1 @@ +module.exports=(()=>{var e={650:function(e,r){(function(e,t){true?t(r):0})(this,function(e){"use strict";var r=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?Symbol:function(e){return"Symbol("+e+")"};function noop(){return undefined}function getGlobals(){if(typeof self!=="undefined"){return self}else if(typeof window!=="undefined"){return window}else if(typeof global!=="undefined"){return global}return undefined}var t=getGlobals();function typeIsObject(e){return typeof e==="object"&&e!==null||typeof e==="function"}var a=noop;var n=Promise;var o=Promise.prototype.then;var i=Promise.resolve.bind(n);var l=Promise.reject.bind(n);function newPromise(e){return new n(e)}function promiseResolvedWith(e){return i(e)}function promiseRejectedWith(e){return l(e)}function PerformPromiseThen(e,r,t){return o.call(e,r,t)}function uponPromise(e,r,t){PerformPromiseThen(PerformPromiseThen(e,r,t),undefined,a)}function uponFulfillment(e,r){uponPromise(e,r)}function uponRejection(e,r){uponPromise(e,undefined,r)}function transformPromiseWith(e,r,t){return PerformPromiseThen(e,r,t)}function setPromiseIsHandledToTrue(e){PerformPromiseThen(e,undefined,a)}var u=function(){var e=t&&t.queueMicrotask;if(typeof e==="function"){return e}var r=promiseResolvedWith(undefined);return function(e){return PerformPromiseThen(r,e)}}();function reflectCall(e,r,t){if(typeof e!=="function"){throw new TypeError("Argument is not a function")}return Function.prototype.apply.call(e,r,t)}function promiseCall(e,r,t){try{return promiseResolvedWith(reflectCall(e,r,t))}catch(e){return promiseRejectedWith(e)}}var s=16384;var d=function(){function SimpleQueue(){this._cursor=0;this._size=0;this._front={_elements:[],_next:undefined};this._back=this._front;this._cursor=0;this._size=0}Object.defineProperty(SimpleQueue.prototype,"length",{get:function(){return this._size},enumerable:false,configurable:true});SimpleQueue.prototype.push=function(e){var r=this._back;var t=r;if(r._elements.length===s-1){t={_elements:[],_next:undefined}}r._elements.push(e);if(t!==r){this._back=t;r._next=t}++this._size};SimpleQueue.prototype.shift=function(){var e=this._front;var r=e;var t=this._cursor;var a=t+1;var n=e._elements;var o=n[t];if(a===s){r=e._next;a=0}--this._size;this._cursor=a;if(e!==r){this._front=r}n[t]=undefined;return o};SimpleQueue.prototype.forEach=function(e){var r=this._cursor;var t=this._front;var a=t._elements;while(r!==a.length||t._next!==undefined){if(r===a.length){t=t._next;a=t._elements;r=0;if(a.length===0){break}}e(a[r]);++r}};SimpleQueue.prototype.peek=function(){var e=this._front;var r=this._cursor;return e._elements[r]};return SimpleQueue}();function ReadableStreamReaderGenericInitialize(e,r){e._ownerReadableStream=r;r._reader=e;if(r._state==="readable"){defaultReaderClosedPromiseInitialize(e)}else if(r._state==="closed"){defaultReaderClosedPromiseInitializeAsResolved(e)}else{defaultReaderClosedPromiseInitializeAsRejected(e,r._storedError)}}function ReadableStreamReaderGenericCancel(e,r){var t=e._ownerReadableStream;return ReadableStreamCancel(t,r)}function ReadableStreamReaderGenericRelease(e){if(e._ownerReadableStream._state==="readable"){defaultReaderClosedPromiseReject(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness"))}else{defaultReaderClosedPromiseResetToRejected(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness"))}e._ownerReadableStream._reader=undefined;e._ownerReadableStream=undefined}function readerLockException(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function defaultReaderClosedPromiseInitialize(e){e._closedPromise=newPromise(function(r,t){e._closedPromise_resolve=r;e._closedPromise_reject=t})}function defaultReaderClosedPromiseInitializeAsRejected(e,r){defaultReaderClosedPromiseInitialize(e);defaultReaderClosedPromiseReject(e,r)}function defaultReaderClosedPromiseInitializeAsResolved(e){defaultReaderClosedPromiseInitialize(e);defaultReaderClosedPromiseResolve(e)}function defaultReaderClosedPromiseReject(e,r){if(e._closedPromise_reject===undefined){return}setPromiseIsHandledToTrue(e._closedPromise);e._closedPromise_reject(r);e._closedPromise_resolve=undefined;e._closedPromise_reject=undefined}function defaultReaderClosedPromiseResetToRejected(e,r){defaultReaderClosedPromiseInitializeAsRejected(e,r)}function defaultReaderClosedPromiseResolve(e){if(e._closedPromise_resolve===undefined){return}e._closedPromise_resolve(undefined);e._closedPromise_resolve=undefined;e._closedPromise_reject=undefined}var f=r("[[AbortSteps]]");var c=r("[[ErrorSteps]]");var m=r("[[CancelSteps]]");var b=r("[[PullSteps]]");var p=Number.isFinite||function(e){return typeof e==="number"&&isFinite(e)};var S=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function isDictionary(e){return typeof e==="object"||typeof e==="function"}function assertDictionary(e,r){if(e!==undefined&&!isDictionary(e)){throw new TypeError(r+" is not an object.")}}function assertFunction(e,r){if(typeof e!=="function"){throw new TypeError(r+" is not a function.")}}function isObject(e){return typeof e==="object"&&e!==null||typeof e==="function"}function assertObject(e,r){if(!isObject(e)){throw new TypeError(r+" is not an object.")}}function assertRequiredArgument(e,r,t){if(e===undefined){throw new TypeError("Parameter "+r+" is required in '"+t+"'.")}}function assertRequiredField(e,r,t){if(e===undefined){throw new TypeError(r+" is required in '"+t+"'.")}}function convertUnrestrictedDouble(e){return Number(e)}function censorNegativeZero(e){return e===0?0:e}function integerPart(e){return censorNegativeZero(S(e))}function convertUnsignedLongLongWithEnforceRange(e,r){var t=0;var a=Number.MAX_SAFE_INTEGER;var n=Number(e);n=censorNegativeZero(n);if(!p(n)){throw new TypeError(r+" is not a finite number")}n=integerPart(n);if(na){throw new TypeError(r+" is outside the accepted range of "+t+" to "+a+", inclusive")}if(!p(n)||n===0){return 0}return n}function assertReadableStream(e,r){if(!IsReadableStream(e)){throw new TypeError(r+" is not a ReadableStream.")}}function AcquireReadableStreamDefaultReader(e){return new h(e)}function ReadableStreamAddReadRequest(e,r){e._reader._readRequests.push(r)}function ReadableStreamFulfillReadRequest(e,r,t){var a=e._reader;var n=a._readRequests.shift();if(t){n._closeSteps()}else{n._chunkSteps(r)}}function ReadableStreamGetNumReadRequests(e){return e._reader._readRequests.length}function ReadableStreamHasDefaultReader(e){var r=e._reader;if(r===undefined){return false}if(!IsReadableStreamDefaultReader(r)){return false}return true}var h=function(){function ReadableStreamDefaultReader(e){assertRequiredArgument(e,1,"ReadableStreamDefaultReader");assertReadableStream(e,"First parameter");if(IsReadableStreamLocked(e)){throw new TypeError("This stream has already been locked for exclusive reading by another reader")}ReadableStreamReaderGenericInitialize(this,e);this._readRequests=new d}Object.defineProperty(ReadableStreamDefaultReader.prototype,"closed",{get:function(){if(!IsReadableStreamDefaultReader(this)){return promiseRejectedWith(defaultReaderBrandCheckException("closed"))}return this._closedPromise},enumerable:false,configurable:true});ReadableStreamDefaultReader.prototype.cancel=function(e){if(e===void 0){e=undefined}if(!IsReadableStreamDefaultReader(this)){return promiseRejectedWith(defaultReaderBrandCheckException("cancel"))}if(this._ownerReadableStream===undefined){return promiseRejectedWith(readerLockException("cancel"))}return ReadableStreamReaderGenericCancel(this,e)};ReadableStreamDefaultReader.prototype.read=function(){if(!IsReadableStreamDefaultReader(this)){return promiseRejectedWith(defaultReaderBrandCheckException("read"))}if(this._ownerReadableStream===undefined){return promiseRejectedWith(readerLockException("read from"))}var e;var r;var t=newPromise(function(t,a){e=t;r=a});var a={_chunkSteps:function(r){return e({value:r,done:false})},_closeSteps:function(){return e({value:undefined,done:true})},_errorSteps:function(e){return r(e)}};ReadableStreamDefaultReaderRead(this,a);return t};ReadableStreamDefaultReader.prototype.releaseLock=function(){if(!IsReadableStreamDefaultReader(this)){throw defaultReaderBrandCheckException("releaseLock")}if(this._ownerReadableStream===undefined){return}if(this._readRequests.length>0){throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled")}ReadableStreamReaderGenericRelease(this)};return ReadableStreamDefaultReader}();Object.defineProperties(h.prototype,{cancel:{enumerable:true},read:{enumerable:true},releaseLock:{enumerable:true},closed:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(h.prototype,r.toStringTag,{value:"ReadableStreamDefaultReader",configurable:true})}function IsReadableStreamDefaultReader(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_readRequests")){return false}return true}function ReadableStreamDefaultReaderRead(e,r){var t=e._ownerReadableStream;t._disturbed=true;if(t._state==="closed"){r._closeSteps()}else if(t._state==="errored"){r._errorSteps(t._storedError)}else{t._readableStreamController[b](r)}}function defaultReaderBrandCheckException(e){return new TypeError("ReadableStreamDefaultReader.prototype."+e+" can only be used on a ReadableStreamDefaultReader")}var R;var y;if(typeof r.asyncIterator==="symbol"){y=(R={},R[r.asyncIterator]=function(){return this},R);Object.defineProperty(y,r.asyncIterator,{enumerable:false})}var _=function(){function ReadableStreamAsyncIteratorImpl(e,r){this._ongoingPromise=undefined;this._isFinished=false;this._reader=e;this._preventCancel=r}ReadableStreamAsyncIteratorImpl.prototype.next=function(){var e=this;var r=function(){return e._nextSteps()};this._ongoingPromise=this._ongoingPromise?transformPromiseWith(this._ongoingPromise,r,r):r();return this._ongoingPromise};ReadableStreamAsyncIteratorImpl.prototype.return=function(e){var r=this;var t=function(){return r._returnSteps(e)};return this._ongoingPromise?transformPromiseWith(this._ongoingPromise,t,t):t()};ReadableStreamAsyncIteratorImpl.prototype._nextSteps=function(){var e=this;if(this._isFinished){return Promise.resolve({value:undefined,done:true})}var r=this._reader;if(r._ownerReadableStream===undefined){return promiseRejectedWith(readerLockException("iterate"))}var t;var a;var n=newPromise(function(e,r){t=e;a=r});var o={_chunkSteps:function(r){e._ongoingPromise=undefined;u(function(){return t({value:r,done:false})})},_closeSteps:function(){e._ongoingPromise=undefined;e._isFinished=true;ReadableStreamReaderGenericRelease(r);t({value:undefined,done:true})},_errorSteps:function(t){e._ongoingPromise=undefined;e._isFinished=true;ReadableStreamReaderGenericRelease(r);a(t)}};ReadableStreamDefaultReaderRead(r,o);return n};ReadableStreamAsyncIteratorImpl.prototype._returnSteps=function(e){if(this._isFinished){return Promise.resolve({value:e,done:true})}this._isFinished=true;var r=this._reader;if(r._ownerReadableStream===undefined){return promiseRejectedWith(readerLockException("finish iterating"))}if(!this._preventCancel){var t=ReadableStreamReaderGenericCancel(r,e);ReadableStreamReaderGenericRelease(r);return transformPromiseWith(t,function(){return{value:e,done:true}})}ReadableStreamReaderGenericRelease(r);return promiseResolvedWith({value:e,done:true})};return ReadableStreamAsyncIteratorImpl}();var v={next:function(){if(!IsReadableStreamAsyncIterator(this)){return promiseRejectedWith(streamAsyncIteratorBrandCheckException("next"))}return this._asyncIteratorImpl.next()},return:function(e){if(!IsReadableStreamAsyncIterator(this)){return promiseRejectedWith(streamAsyncIteratorBrandCheckException("return"))}return this._asyncIteratorImpl.return(e)}};if(y!==undefined){Object.setPrototypeOf(v,y)}function AcquireReadableStreamAsyncIterator(e,r){var t=AcquireReadableStreamDefaultReader(e);var a=new _(t,r);var n=Object.create(v);n._asyncIteratorImpl=a;return n}function IsReadableStreamAsyncIterator(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_asyncIteratorImpl")){return false}return true}function streamAsyncIteratorBrandCheckException(e){return new TypeError("ReadableStreamAsyncIterator."+e+" can only be used on a ReadableSteamAsyncIterator")}var C=Number.isNaN||function(e){return e!==e};function IsFiniteNonNegativeNumber(e){if(!IsNonNegativeNumber(e)){return false}if(e===Infinity){return false}return true}function IsNonNegativeNumber(e){if(typeof e!=="number"){return false}if(C(e)){return false}if(e<0){return false}return true}function DequeueValue(e){var r=e._queue.shift();e._queueTotalSize-=r.size;if(e._queueTotalSize<0){e._queueTotalSize=0}return r.value}function EnqueueValueWithSize(e,r,t){t=Number(t);if(!IsFiniteNonNegativeNumber(t)){throw new RangeError("Size must be a finite, non-NaN, non-negative number.")}e._queue.push({value:r,size:t});e._queueTotalSize+=t}function PeekQueueValue(e){var r=e._queue.peek();return r.value}function ResetQueue(e){e._queue=new d;e._queueTotalSize=0}function CreateArrayFromList(e){return e.slice()}function CopyDataBlockBytes(e,r,t,a,n){new Uint8Array(e).set(new Uint8Array(t,a,n),r)}function TransferArrayBuffer(e){return e}function IsDetachedBuffer(e){return false}var g=function(){function ReadableStreamBYOBRequest(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamBYOBRequest.prototype,"view",{get:function(){if(!IsReadableStreamBYOBRequest(this)){throw byobRequestBrandCheckException("view")}return this._view},enumerable:false,configurable:true});ReadableStreamBYOBRequest.prototype.respond=function(e){if(!IsReadableStreamBYOBRequest(this)){throw byobRequestBrandCheckException("respond")}assertRequiredArgument(e,1,"respond");e=convertUnsignedLongLongWithEnforceRange(e,"First parameter");if(this._associatedReadableByteStreamController===undefined){throw new TypeError("This BYOB request has been invalidated")}if(IsDetachedBuffer(this._view.buffer));ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController,e)};ReadableStreamBYOBRequest.prototype.respondWithNewView=function(e){if(!IsReadableStreamBYOBRequest(this)){throw byobRequestBrandCheckException("respondWithNewView")}assertRequiredArgument(e,1,"respondWithNewView");if(!ArrayBuffer.isView(e)){throw new TypeError("You can only respond with array buffer views")}if(e.byteLength===0){throw new TypeError("chunk must have non-zero byteLength")}if(e.buffer.byteLength===0){throw new TypeError("chunk's buffer must have non-zero byteLength")}if(this._associatedReadableByteStreamController===undefined){throw new TypeError("This BYOB request has been invalidated")}ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController,e)};return ReadableStreamBYOBRequest}();Object.defineProperties(g.prototype,{respond:{enumerable:true},respondWithNewView:{enumerable:true},view:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(g.prototype,r.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:true})}var W=function(){function ReadableByteStreamController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableByteStreamController.prototype,"byobRequest",{get:function(){if(!IsReadableByteStreamController(this)){throw byteStreamControllerBrandCheckException("byobRequest")}if(this._byobRequest===null&&this._pendingPullIntos.length>0){var e=this._pendingPullIntos.peek();var r=new Uint8Array(e.buffer,e.byteOffset+e.bytesFilled,e.byteLength-e.bytesFilled);var t=Object.create(g.prototype);SetUpReadableStreamBYOBRequest(t,this,r);this._byobRequest=t}return this._byobRequest},enumerable:false,configurable:true});Object.defineProperty(ReadableByteStreamController.prototype,"desiredSize",{get:function(){if(!IsReadableByteStreamController(this)){throw byteStreamControllerBrandCheckException("desiredSize")}return ReadableByteStreamControllerGetDesiredSize(this)},enumerable:false,configurable:true});ReadableByteStreamController.prototype.close=function(){if(!IsReadableByteStreamController(this)){throw byteStreamControllerBrandCheckException("close")}if(this._closeRequested){throw new TypeError("The stream has already been closed; do not close it again!")}var e=this._controlledReadableByteStream._state;if(e!=="readable"){throw new TypeError("The stream (in "+e+" state) is not in the readable state and cannot be closed")}ReadableByteStreamControllerClose(this)};ReadableByteStreamController.prototype.enqueue=function(e){if(!IsReadableByteStreamController(this)){throw byteStreamControllerBrandCheckException("enqueue")}assertRequiredArgument(e,1,"enqueue");if(!ArrayBuffer.isView(e)){throw new TypeError("chunk must be an array buffer view")}if(e.byteLength===0){throw new TypeError("chunk must have non-zero byteLength")}if(e.buffer.byteLength===0){throw new TypeError("chunk's buffer must have non-zero byteLength")}if(this._closeRequested){throw new TypeError("stream is closed or draining")}var r=this._controlledReadableByteStream._state;if(r!=="readable"){throw new TypeError("The stream (in "+r+" state) is not in the readable state and cannot be enqueued to")}ReadableByteStreamControllerEnqueue(this,e)};ReadableByteStreamController.prototype.error=function(e){if(e===void 0){e=undefined}if(!IsReadableByteStreamController(this)){throw byteStreamControllerBrandCheckException("error")}ReadableByteStreamControllerError(this,e)};ReadableByteStreamController.prototype[m]=function(e){if(this._pendingPullIntos.length>0){var r=this._pendingPullIntos.peek();r.bytesFilled=0}ResetQueue(this);var t=this._cancelAlgorithm(e);ReadableByteStreamControllerClearAlgorithms(this);return t};ReadableByteStreamController.prototype[b]=function(e){var r=this._controlledReadableByteStream;if(this._queueTotalSize>0){var t=this._queue.shift();this._queueTotalSize-=t.byteLength;ReadableByteStreamControllerHandleQueueDrain(this);var a=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);e._chunkSteps(a);return}var n=this._autoAllocateChunkSize;if(n!==undefined){var o=void 0;try{o=new ArrayBuffer(n)}catch(r){e._errorSteps(r);return}var i={buffer:o,byteOffset:0,byteLength:n,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(i)}ReadableStreamAddReadRequest(r,e);ReadableByteStreamControllerCallPullIfNeeded(this)};return ReadableByteStreamController}();Object.defineProperties(W.prototype,{close:{enumerable:true},enqueue:{enumerable:true},error:{enumerable:true},byobRequest:{enumerable:true},desiredSize:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(W.prototype,r.toStringTag,{value:"ReadableByteStreamController",configurable:true})}function IsReadableByteStreamController(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")){return false}return true}function IsReadableStreamBYOBRequest(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")){return false}return true}function ReadableByteStreamControllerCallPullIfNeeded(e){var r=ReadableByteStreamControllerShouldCallPull(e);if(!r){return}if(e._pulling){e._pullAgain=true;return}e._pulling=true;var t=e._pullAlgorithm();uponPromise(t,function(){e._pulling=false;if(e._pullAgain){e._pullAgain=false;ReadableByteStreamControllerCallPullIfNeeded(e)}},function(r){ReadableByteStreamControllerError(e,r)})}function ReadableByteStreamControllerClearPendingPullIntos(e){ReadableByteStreamControllerInvalidateBYOBRequest(e);e._pendingPullIntos=new d}function ReadableByteStreamControllerCommitPullIntoDescriptor(e,r){var t=false;if(e._state==="closed"){t=true}var a=ReadableByteStreamControllerConvertPullIntoDescriptor(r);if(r.readerType==="default"){ReadableStreamFulfillReadRequest(e,a,t)}else{ReadableStreamFulfillReadIntoRequest(e,a,t)}}function ReadableByteStreamControllerConvertPullIntoDescriptor(e){var r=e.bytesFilled;var t=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,r/t)}function ReadableByteStreamControllerEnqueueChunkToQueue(e,r,t,a){e._queue.push({buffer:r,byteOffset:t,byteLength:a});e._queueTotalSize+=a}function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(e,r){var t=r.elementSize;var a=r.bytesFilled-r.bytesFilled%t;var n=Math.min(e._queueTotalSize,r.byteLength-r.bytesFilled);var o=r.bytesFilled+n;var i=o-o%t;var l=n;var u=false;if(i>a){l=i-r.bytesFilled;u=true}var s=e._queue;while(l>0){var d=s.peek();var f=Math.min(l,d.byteLength);var c=r.byteOffset+r.bytesFilled;CopyDataBlockBytes(r.buffer,c,d.buffer,d.byteOffset,f);if(d.byteLength===f){s.shift()}else{d.byteOffset+=f;d.byteLength-=f}e._queueTotalSize-=f;ReadableByteStreamControllerFillHeadPullIntoDescriptor(e,f,r);l-=f}return u}function ReadableByteStreamControllerFillHeadPullIntoDescriptor(e,r,t){ReadableByteStreamControllerInvalidateBYOBRequest(e);t.bytesFilled+=r}function ReadableByteStreamControllerHandleQueueDrain(e){if(e._queueTotalSize===0&&e._closeRequested){ReadableByteStreamControllerClearAlgorithms(e);ReadableStreamClose(e._controlledReadableByteStream)}else{ReadableByteStreamControllerCallPullIfNeeded(e)}}function ReadableByteStreamControllerInvalidateBYOBRequest(e){if(e._byobRequest===null){return}e._byobRequest._associatedReadableByteStreamController=undefined;e._byobRequest._view=null;e._byobRequest=null}function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e){while(e._pendingPullIntos.length>0){if(e._queueTotalSize===0){return}var r=e._pendingPullIntos.peek();if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(e,r)){ReadableByteStreamControllerShiftPendingPullInto(e);ReadableByteStreamControllerCommitPullIntoDescriptor(e._controlledReadableByteStream,r)}}}function ReadableByteStreamControllerPullInto(e,r,t){var a=e._controlledReadableByteStream;var n=1;if(r.constructor!==DataView){n=r.constructor.BYTES_PER_ELEMENT}var o=r.constructor;var i=TransferArrayBuffer(r.buffer);var l={buffer:i,byteOffset:r.byteOffset,byteLength:r.byteLength,bytesFilled:0,elementSize:n,viewConstructor:o,readerType:"byob"};if(e._pendingPullIntos.length>0){e._pendingPullIntos.push(l);ReadableStreamAddReadIntoRequest(a,t);return}if(a._state==="closed"){var u=new o(l.buffer,l.byteOffset,0);t._closeSteps(u);return}if(e._queueTotalSize>0){if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(e,l)){var s=ReadableByteStreamControllerConvertPullIntoDescriptor(l);ReadableByteStreamControllerHandleQueueDrain(e);t._chunkSteps(s);return}if(e._closeRequested){var d=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(e,d);t._errorSteps(d);return}}e._pendingPullIntos.push(l);ReadableStreamAddReadIntoRequest(a,t);ReadableByteStreamControllerCallPullIfNeeded(e)}function ReadableByteStreamControllerRespondInClosedState(e,r){r.buffer=TransferArrayBuffer(r.buffer);var t=e._controlledReadableByteStream;if(ReadableStreamHasBYOBReader(t)){while(ReadableStreamGetNumReadIntoRequests(t)>0){var a=ReadableByteStreamControllerShiftPendingPullInto(e);ReadableByteStreamControllerCommitPullIntoDescriptor(t,a)}}}function ReadableByteStreamControllerRespondInReadableState(e,r,t){if(t.bytesFilled+r>t.byteLength){throw new RangeError("bytesWritten out of range")}ReadableByteStreamControllerFillHeadPullIntoDescriptor(e,r,t);if(t.bytesFilled0){var n=t.byteOffset+t.bytesFilled;var o=t.buffer.slice(n-a,n);ReadableByteStreamControllerEnqueueChunkToQueue(e,o,0,o.byteLength)}t.buffer=TransferArrayBuffer(t.buffer);t.bytesFilled-=a;ReadableByteStreamControllerCommitPullIntoDescriptor(e._controlledReadableByteStream,t);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e)}function ReadableByteStreamControllerRespondInternal(e,r){var t=e._pendingPullIntos.peek();var a=e._controlledReadableByteStream._state;if(a==="closed"){if(r!==0){throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}ReadableByteStreamControllerRespondInClosedState(e,t)}else{ReadableByteStreamControllerRespondInReadableState(e,r,t)}ReadableByteStreamControllerCallPullIfNeeded(e)}function ReadableByteStreamControllerShiftPendingPullInto(e){var r=e._pendingPullIntos.shift();ReadableByteStreamControllerInvalidateBYOBRequest(e);return r}function ReadableByteStreamControllerShouldCallPull(e){var r=e._controlledReadableByteStream;if(r._state!=="readable"){return false}if(e._closeRequested){return false}if(!e._started){return false}if(ReadableStreamHasDefaultReader(r)&&ReadableStreamGetNumReadRequests(r)>0){return true}if(ReadableStreamHasBYOBReader(r)&&ReadableStreamGetNumReadIntoRequests(r)>0){return true}var t=ReadableByteStreamControllerGetDesiredSize(e);if(t>0){return true}return false}function ReadableByteStreamControllerClearAlgorithms(e){e._pullAlgorithm=undefined;e._cancelAlgorithm=undefined}function ReadableByteStreamControllerClose(e){var r=e._controlledReadableByteStream;if(e._closeRequested||r._state!=="readable"){return}if(e._queueTotalSize>0){e._closeRequested=true;return}if(e._pendingPullIntos.length>0){var t=e._pendingPullIntos.peek();if(t.bytesFilled>0){var a=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(e,a);throw a}}ReadableByteStreamControllerClearAlgorithms(e);ReadableStreamClose(r)}function ReadableByteStreamControllerEnqueue(e,r){var t=e._controlledReadableByteStream;if(e._closeRequested||t._state!=="readable"){return}var a=r.buffer;var n=r.byteOffset;var o=r.byteLength;var i=TransferArrayBuffer(a);if(ReadableStreamHasDefaultReader(t)){if(ReadableStreamGetNumReadRequests(t)===0){ReadableByteStreamControllerEnqueueChunkToQueue(e,i,n,o)}else{var l=new Uint8Array(i,n,o);ReadableStreamFulfillReadRequest(t,l,false)}}else if(ReadableStreamHasBYOBReader(t)){ReadableByteStreamControllerEnqueueChunkToQueue(e,i,n,o);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(e)}else{ReadableByteStreamControllerEnqueueChunkToQueue(e,i,n,o)}ReadableByteStreamControllerCallPullIfNeeded(e)}function ReadableByteStreamControllerError(e,r){var t=e._controlledReadableByteStream;if(t._state!=="readable"){return}ReadableByteStreamControllerClearPendingPullIntos(e);ResetQueue(e);ReadableByteStreamControllerClearAlgorithms(e);ReadableStreamError(t,r)}function ReadableByteStreamControllerGetDesiredSize(e){var r=e._controlledReadableByteStream._state;if(r==="errored"){return null}if(r==="closed"){return 0}return e._strategyHWM-e._queueTotalSize}function ReadableByteStreamControllerRespond(e,r){r=Number(r);if(!IsFiniteNonNegativeNumber(r)){throw new RangeError("bytesWritten must be a finite")}ReadableByteStreamControllerRespondInternal(e,r)}function ReadableByteStreamControllerRespondWithNewView(e,r){var t=e._pendingPullIntos.peek();if(t.byteOffset+t.bytesFilled!==r.byteOffset){throw new RangeError("The region specified by view does not match byobRequest")}if(t.byteLength!==r.byteLength){throw new RangeError("The buffer of view has different capacity than byobRequest")}t.buffer=r.buffer;ReadableByteStreamControllerRespondInternal(e,r.byteLength)}function SetUpReadableByteStreamController(e,r,t,a,n,o,i){r._controlledReadableByteStream=e;r._pullAgain=false;r._pulling=false;r._byobRequest=null;r._queue=r._queueTotalSize=undefined;ResetQueue(r);r._closeRequested=false;r._started=false;r._strategyHWM=o;r._pullAlgorithm=a;r._cancelAlgorithm=n;r._autoAllocateChunkSize=i;r._pendingPullIntos=new d;e._readableStreamController=r;var l=t();uponPromise(promiseResolvedWith(l),function(){r._started=true;ReadableByteStreamControllerCallPullIfNeeded(r)},function(e){ReadableByteStreamControllerError(r,e)})}function SetUpReadableByteStreamControllerFromUnderlyingSource(e,r,t){var a=Object.create(W.prototype);var n=function(){return undefined};var o=function(){return promiseResolvedWith(undefined)};var i=function(){return promiseResolvedWith(undefined)};if(r.start!==undefined){n=function(){return r.start(a)}}if(r.pull!==undefined){o=function(){return r.pull(a)}}if(r.cancel!==undefined){i=function(e){return r.cancel(e)}}var l=r.autoAllocateChunkSize;if(l===0){throw new TypeError("autoAllocateChunkSize must be greater than 0")}SetUpReadableByteStreamController(e,a,n,o,i,t,l)}function SetUpReadableStreamBYOBRequest(e,r,t){e._associatedReadableByteStreamController=r;e._view=t}function byobRequestBrandCheckException(e){return new TypeError("ReadableStreamBYOBRequest.prototype."+e+" can only be used on a ReadableStreamBYOBRequest")}function byteStreamControllerBrandCheckException(e){return new TypeError("ReadableByteStreamController.prototype."+e+" can only be used on a ReadableByteStreamController")}function AcquireReadableStreamBYOBReader(e){return new w(e)}function ReadableStreamAddReadIntoRequest(e,r){e._reader._readIntoRequests.push(r)}function ReadableStreamFulfillReadIntoRequest(e,r,t){var a=e._reader;var n=a._readIntoRequests.shift();if(t){n._closeSteps(r)}else{n._chunkSteps(r)}}function ReadableStreamGetNumReadIntoRequests(e){return e._reader._readIntoRequests.length}function ReadableStreamHasBYOBReader(e){var r=e._reader;if(r===undefined){return false}if(!IsReadableStreamBYOBReader(r)){return false}return true}var w=function(){function ReadableStreamBYOBReader(e){assertRequiredArgument(e,1,"ReadableStreamBYOBReader");assertReadableStream(e,"First parameter");if(IsReadableStreamLocked(e)){throw new TypeError("This stream has already been locked for exclusive reading by another reader")}if(!IsReadableByteStreamController(e._readableStreamController)){throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte "+"source")}ReadableStreamReaderGenericInitialize(this,e);this._readIntoRequests=new d}Object.defineProperty(ReadableStreamBYOBReader.prototype,"closed",{get:function(){if(!IsReadableStreamBYOBReader(this)){return promiseRejectedWith(byobReaderBrandCheckException("closed"))}return this._closedPromise},enumerable:false,configurable:true});ReadableStreamBYOBReader.prototype.cancel=function(e){if(e===void 0){e=undefined}if(!IsReadableStreamBYOBReader(this)){return promiseRejectedWith(byobReaderBrandCheckException("cancel"))}if(this._ownerReadableStream===undefined){return promiseRejectedWith(readerLockException("cancel"))}return ReadableStreamReaderGenericCancel(this,e)};ReadableStreamBYOBReader.prototype.read=function(e){if(!IsReadableStreamBYOBReader(this)){return promiseRejectedWith(byobReaderBrandCheckException("read"))}if(!ArrayBuffer.isView(e)){return promiseRejectedWith(new TypeError("view must be an array buffer view"))}if(e.byteLength===0){return promiseRejectedWith(new TypeError("view must have non-zero byteLength"))}if(e.buffer.byteLength===0){return promiseRejectedWith(new TypeError("view's buffer must have non-zero byteLength"))}if(this._ownerReadableStream===undefined){return promiseRejectedWith(readerLockException("read from"))}var r;var t;var a=newPromise(function(e,a){r=e;t=a});var n={_chunkSteps:function(e){return r({value:e,done:false})},_closeSteps:function(e){return r({value:e,done:true})},_errorSteps:function(e){return t(e)}};ReadableStreamBYOBReaderRead(this,e,n);return a};ReadableStreamBYOBReader.prototype.releaseLock=function(){if(!IsReadableStreamBYOBReader(this)){throw byobReaderBrandCheckException("releaseLock")}if(this._ownerReadableStream===undefined){return}if(this._readIntoRequests.length>0){throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled")}ReadableStreamReaderGenericRelease(this)};return ReadableStreamBYOBReader}();Object.defineProperties(w.prototype,{cancel:{enumerable:true},read:{enumerable:true},releaseLock:{enumerable:true},closed:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(w.prototype,r.toStringTag,{value:"ReadableStreamBYOBReader",configurable:true})}function IsReadableStreamBYOBReader(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")){return false}return true}function ReadableStreamBYOBReaderRead(e,r,t){var a=e._ownerReadableStream;a._disturbed=true;if(a._state==="errored"){t._errorSteps(a._storedError)}else{ReadableByteStreamControllerPullInto(a._readableStreamController,r,t)}}function byobReaderBrandCheckException(e){return new TypeError("ReadableStreamBYOBReader.prototype."+e+" can only be used on a ReadableStreamBYOBReader")}function ExtractHighWaterMark(e,r){var t=e.highWaterMark;if(t===undefined){return r}if(C(t)||t<0){throw new RangeError("Invalid highWaterMark")}return t}function ExtractSizeAlgorithm(e){var r=e.size;if(!r){return function(){return 1}}return r}function convertQueuingStrategy(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.highWaterMark;var a=e===null||e===void 0?void 0:e.size;return{highWaterMark:t===undefined?undefined:convertUnrestrictedDouble(t),size:a===undefined?undefined:convertQueuingStrategySize(a,r+" has member 'size' that")}}function convertQueuingStrategySize(e,r){assertFunction(e,r);return function(r){return convertUnrestrictedDouble(e(r))}}function convertUnderlyingSink(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.abort;var a=e===null||e===void 0?void 0:e.close;var n=e===null||e===void 0?void 0:e.start;var o=e===null||e===void 0?void 0:e.type;var i=e===null||e===void 0?void 0:e.write;return{abort:t===undefined?undefined:convertUnderlyingSinkAbortCallback(t,e,r+" has member 'abort' that"),close:a===undefined?undefined:convertUnderlyingSinkCloseCallback(a,e,r+" has member 'close' that"),start:n===undefined?undefined:convertUnderlyingSinkStartCallback(n,e,r+" has member 'start' that"),write:i===undefined?undefined:convertUnderlyingSinkWriteCallback(i,e,r+" has member 'write' that"),type:o}}function convertUnderlyingSinkAbortCallback(e,r,t){assertFunction(e,t);return function(t){return promiseCall(e,r,[t])}}function convertUnderlyingSinkCloseCallback(e,r,t){assertFunction(e,t);return function(){return promiseCall(e,r,[])}}function convertUnderlyingSinkStartCallback(e,r,t){assertFunction(e,t);return function(t){return reflectCall(e,r,[t])}}function convertUnderlyingSinkWriteCallback(e,r,t){assertFunction(e,t);return function(t,a){return promiseCall(e,r,[t,a])}}function assertWritableStream(e,r){if(!IsWritableStream(e)){throw new TypeError(r+" is not a WritableStream.")}}var P=function(){function WritableStream(e,r){if(e===void 0){e={}}if(r===void 0){r={}}if(e===undefined){e=null}else{assertObject(e,"First parameter")}var t=convertQueuingStrategy(r,"Second parameter");var a=convertUnderlyingSink(e,"First parameter");InitializeWritableStream(this);var n=a.type;if(n!==undefined){throw new RangeError("Invalid type is specified")}var o=ExtractSizeAlgorithm(t);var i=ExtractHighWaterMark(t,1);SetUpWritableStreamDefaultControllerFromUnderlyingSink(this,a,i,o)}Object.defineProperty(WritableStream.prototype,"locked",{get:function(){if(!IsWritableStream(this)){throw streamBrandCheckException$2("locked")}return IsWritableStreamLocked(this)},enumerable:false,configurable:true});WritableStream.prototype.abort=function(e){if(e===void 0){e=undefined}if(!IsWritableStream(this)){return promiseRejectedWith(streamBrandCheckException$2("abort"))}if(IsWritableStreamLocked(this)){return promiseRejectedWith(new TypeError("Cannot abort a stream that already has a writer"))}return WritableStreamAbort(this,e)};WritableStream.prototype.close=function(){if(!IsWritableStream(this)){return promiseRejectedWith(streamBrandCheckException$2("close"))}if(IsWritableStreamLocked(this)){return promiseRejectedWith(new TypeError("Cannot close a stream that already has a writer"))}if(WritableStreamCloseQueuedOrInFlight(this)){return promiseRejectedWith(new TypeError("Cannot close an already-closing stream"))}return WritableStreamClose(this)};WritableStream.prototype.getWriter=function(){if(!IsWritableStream(this)){throw streamBrandCheckException$2("getWriter")}return AcquireWritableStreamDefaultWriter(this)};return WritableStream}();Object.defineProperties(P.prototype,{abort:{enumerable:true},close:{enumerable:true},getWriter:{enumerable:true},locked:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(P.prototype,r.toStringTag,{value:"WritableStream",configurable:true})}function AcquireWritableStreamDefaultWriter(e){return new I(e)}function CreateWritableStream(e,r,t,a,n,o){if(n===void 0){n=1}if(o===void 0){o=function(){return 1}}var i=Object.create(P.prototype);InitializeWritableStream(i);var l=Object.create(T.prototype);SetUpWritableStreamDefaultController(i,l,e,r,t,a,n,o);return i}function InitializeWritableStream(e){e._state="writable";e._storedError=undefined;e._writer=undefined;e._writableStreamController=undefined;e._writeRequests=new d;e._inFlightWriteRequest=undefined;e._closeRequest=undefined;e._inFlightCloseRequest=undefined;e._pendingAbortRequest=undefined;e._backpressure=false}function IsWritableStream(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")){return false}return true}function IsWritableStreamLocked(e){if(e._writer===undefined){return false}return true}function WritableStreamAbort(e,r){var t=e._state;if(t==="closed"||t==="errored"){return promiseResolvedWith(undefined)}if(e._pendingAbortRequest!==undefined){return e._pendingAbortRequest._promise}var a=false;if(t==="erroring"){a=true;r=undefined}var n=newPromise(function(t,n){e._pendingAbortRequest={_promise:undefined,_resolve:t,_reject:n,_reason:r,_wasAlreadyErroring:a}});e._pendingAbortRequest._promise=n;if(!a){WritableStreamStartErroring(e,r)}return n}function WritableStreamClose(e){var r=e._state;if(r==="closed"||r==="errored"){return promiseRejectedWith(new TypeError("The stream (in "+r+" state) is not in the writable state and cannot be closed"))}var t=newPromise(function(r,t){var a={_resolve:r,_reject:t};e._closeRequest=a});var a=e._writer;if(a!==undefined&&e._backpressure&&r==="writable"){defaultWriterReadyPromiseResolve(a)}WritableStreamDefaultControllerClose(e._writableStreamController);return t}function WritableStreamAddWriteRequest(e){var r=newPromise(function(r,t){var a={_resolve:r,_reject:t};e._writeRequests.push(a)});return r}function WritableStreamDealWithRejection(e,r){var t=e._state;if(t==="writable"){WritableStreamStartErroring(e,r);return}WritableStreamFinishErroring(e)}function WritableStreamStartErroring(e,r){var t=e._writableStreamController;e._state="erroring";e._storedError=r;var a=e._writer;if(a!==undefined){WritableStreamDefaultWriterEnsureReadyPromiseRejected(a,r)}if(!WritableStreamHasOperationMarkedInFlight(e)&&t._started){WritableStreamFinishErroring(e)}}function WritableStreamFinishErroring(e){e._state="errored";e._writableStreamController[c]();var r=e._storedError;e._writeRequests.forEach(function(e){e._reject(r)});e._writeRequests=new d;if(e._pendingAbortRequest===undefined){WritableStreamRejectCloseAndClosedPromiseIfNeeded(e);return}var t=e._pendingAbortRequest;e._pendingAbortRequest=undefined;if(t._wasAlreadyErroring){t._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(e);return}var a=e._writableStreamController[f](t._reason);uponPromise(a,function(){t._resolve();WritableStreamRejectCloseAndClosedPromiseIfNeeded(e)},function(r){t._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(e)})}function WritableStreamFinishInFlightWrite(e){e._inFlightWriteRequest._resolve(undefined);e._inFlightWriteRequest=undefined}function WritableStreamFinishInFlightWriteWithError(e,r){e._inFlightWriteRequest._reject(r);e._inFlightWriteRequest=undefined;WritableStreamDealWithRejection(e,r)}function WritableStreamFinishInFlightClose(e){e._inFlightCloseRequest._resolve(undefined);e._inFlightCloseRequest=undefined;var r=e._state;if(r==="erroring"){e._storedError=undefined;if(e._pendingAbortRequest!==undefined){e._pendingAbortRequest._resolve();e._pendingAbortRequest=undefined}}e._state="closed";var t=e._writer;if(t!==undefined){defaultWriterClosedPromiseResolve(t)}}function WritableStreamFinishInFlightCloseWithError(e,r){e._inFlightCloseRequest._reject(r);e._inFlightCloseRequest=undefined;if(e._pendingAbortRequest!==undefined){e._pendingAbortRequest._reject(r);e._pendingAbortRequest=undefined}WritableStreamDealWithRejection(e,r)}function WritableStreamCloseQueuedOrInFlight(e){if(e._closeRequest===undefined&&e._inFlightCloseRequest===undefined){return false}return true}function WritableStreamHasOperationMarkedInFlight(e){if(e._inFlightWriteRequest===undefined&&e._inFlightCloseRequest===undefined){return false}return true}function WritableStreamMarkCloseRequestInFlight(e){e._inFlightCloseRequest=e._closeRequest;e._closeRequest=undefined}function WritableStreamMarkFirstWriteRequestInFlight(e){e._inFlightWriteRequest=e._writeRequests.shift()}function WritableStreamRejectCloseAndClosedPromiseIfNeeded(e){if(e._closeRequest!==undefined){e._closeRequest._reject(e._storedError);e._closeRequest=undefined}var r=e._writer;if(r!==undefined){defaultWriterClosedPromiseReject(r,e._storedError)}}function WritableStreamUpdateBackpressure(e,r){var t=e._writer;if(t!==undefined&&r!==e._backpressure){if(r){defaultWriterReadyPromiseReset(t)}else{defaultWriterReadyPromiseResolve(t)}}e._backpressure=r}var I=function(){function WritableStreamDefaultWriter(e){assertRequiredArgument(e,1,"WritableStreamDefaultWriter");assertWritableStream(e,"First parameter");if(IsWritableStreamLocked(e)){throw new TypeError("This stream has already been locked for exclusive writing by another writer")}this._ownerWritableStream=e;e._writer=this;var r=e._state;if(r==="writable"){if(!WritableStreamCloseQueuedOrInFlight(e)&&e._backpressure){defaultWriterReadyPromiseInitialize(this)}else{defaultWriterReadyPromiseInitializeAsResolved(this)}defaultWriterClosedPromiseInitialize(this)}else if(r==="erroring"){defaultWriterReadyPromiseInitializeAsRejected(this,e._storedError);defaultWriterClosedPromiseInitialize(this)}else if(r==="closed"){defaultWriterReadyPromiseInitializeAsResolved(this);defaultWriterClosedPromiseInitializeAsResolved(this)}else{var t=e._storedError;defaultWriterReadyPromiseInitializeAsRejected(this,t);defaultWriterClosedPromiseInitializeAsRejected(this,t)}}Object.defineProperty(WritableStreamDefaultWriter.prototype,"closed",{get:function(){if(!IsWritableStreamDefaultWriter(this)){return promiseRejectedWith(defaultWriterBrandCheckException("closed"))}return this._closedPromise},enumerable:false,configurable:true});Object.defineProperty(WritableStreamDefaultWriter.prototype,"desiredSize",{get:function(){if(!IsWritableStreamDefaultWriter(this)){throw defaultWriterBrandCheckException("desiredSize")}if(this._ownerWritableStream===undefined){throw defaultWriterLockException("desiredSize")}return WritableStreamDefaultWriterGetDesiredSize(this)},enumerable:false,configurable:true});Object.defineProperty(WritableStreamDefaultWriter.prototype,"ready",{get:function(){if(!IsWritableStreamDefaultWriter(this)){return promiseRejectedWith(defaultWriterBrandCheckException("ready"))}return this._readyPromise},enumerable:false,configurable:true});WritableStreamDefaultWriter.prototype.abort=function(e){if(e===void 0){e=undefined}if(!IsWritableStreamDefaultWriter(this)){return promiseRejectedWith(defaultWriterBrandCheckException("abort"))}if(this._ownerWritableStream===undefined){return promiseRejectedWith(defaultWriterLockException("abort"))}return WritableStreamDefaultWriterAbort(this,e)};WritableStreamDefaultWriter.prototype.close=function(){if(!IsWritableStreamDefaultWriter(this)){return promiseRejectedWith(defaultWriterBrandCheckException("close"))}var e=this._ownerWritableStream;if(e===undefined){return promiseRejectedWith(defaultWriterLockException("close"))}if(WritableStreamCloseQueuedOrInFlight(e)){return promiseRejectedWith(new TypeError("Cannot close an already-closing stream"))}return WritableStreamDefaultWriterClose(this)};WritableStreamDefaultWriter.prototype.releaseLock=function(){if(!IsWritableStreamDefaultWriter(this)){throw defaultWriterBrandCheckException("releaseLock")}var e=this._ownerWritableStream;if(e===undefined){return}WritableStreamDefaultWriterRelease(this)};WritableStreamDefaultWriter.prototype.write=function(e){if(e===void 0){e=undefined}if(!IsWritableStreamDefaultWriter(this)){return promiseRejectedWith(defaultWriterBrandCheckException("write"))}if(this._ownerWritableStream===undefined){return promiseRejectedWith(defaultWriterLockException("write to"))}return WritableStreamDefaultWriterWrite(this,e)};return WritableStreamDefaultWriter}();Object.defineProperties(I.prototype,{abort:{enumerable:true},close:{enumerable:true},releaseLock:{enumerable:true},write:{enumerable:true},closed:{enumerable:true},desiredSize:{enumerable:true},ready:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(I.prototype,r.toStringTag,{value:"WritableStreamDefaultWriter",configurable:true})}function IsWritableStreamDefaultWriter(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")){return false}return true}function WritableStreamDefaultWriterAbort(e,r){var t=e._ownerWritableStream;return WritableStreamAbort(t,r)}function WritableStreamDefaultWriterClose(e){var r=e._ownerWritableStream;return WritableStreamClose(r)}function WritableStreamDefaultWriterCloseWithErrorPropagation(e){var r=e._ownerWritableStream;var t=r._state;if(WritableStreamCloseQueuedOrInFlight(r)||t==="closed"){return promiseResolvedWith(undefined)}if(t==="errored"){return promiseRejectedWith(r._storedError)}return WritableStreamDefaultWriterClose(e)}function WritableStreamDefaultWriterEnsureClosedPromiseRejected(e,r){if(e._closedPromiseState==="pending"){defaultWriterClosedPromiseReject(e,r)}else{defaultWriterClosedPromiseResetToRejected(e,r)}}function WritableStreamDefaultWriterEnsureReadyPromiseRejected(e,r){if(e._readyPromiseState==="pending"){defaultWriterReadyPromiseReject(e,r)}else{defaultWriterReadyPromiseResetToRejected(e,r)}}function WritableStreamDefaultWriterGetDesiredSize(e){var r=e._ownerWritableStream;var t=r._state;if(t==="errored"||t==="erroring"){return null}if(t==="closed"){return 0}return WritableStreamDefaultControllerGetDesiredSize(r._writableStreamController)}function WritableStreamDefaultWriterRelease(e){var r=e._ownerWritableStream;var t=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");WritableStreamDefaultWriterEnsureReadyPromiseRejected(e,t);WritableStreamDefaultWriterEnsureClosedPromiseRejected(e,t);r._writer=undefined;e._ownerWritableStream=undefined}function WritableStreamDefaultWriterWrite(e,r){var t=e._ownerWritableStream;var a=t._writableStreamController;var n=WritableStreamDefaultControllerGetChunkSize(a,r);if(t!==e._ownerWritableStream){return promiseRejectedWith(defaultWriterLockException("write to"))}var o=t._state;if(o==="errored"){return promiseRejectedWith(t._storedError)}if(WritableStreamCloseQueuedOrInFlight(t)||o==="closed"){return promiseRejectedWith(new TypeError("The stream is closing or closed and cannot be written to"))}if(o==="erroring"){return promiseRejectedWith(t._storedError)}var i=WritableStreamAddWriteRequest(t);WritableStreamDefaultControllerWrite(a,r,n);return i}var B={};var T=function(){function WritableStreamDefaultController(){throw new TypeError("Illegal constructor")}WritableStreamDefaultController.prototype.error=function(e){if(e===void 0){e=undefined}if(!IsWritableStreamDefaultController(this)){throw new TypeError("WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController")}var r=this._controlledWritableStream._state;if(r!=="writable"){return}WritableStreamDefaultControllerError(this,e)};WritableStreamDefaultController.prototype[f]=function(e){var r=this._abortAlgorithm(e);WritableStreamDefaultControllerClearAlgorithms(this);return r};WritableStreamDefaultController.prototype[c]=function(){ResetQueue(this)};return WritableStreamDefaultController}();Object.defineProperties(T.prototype,{error:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(T.prototype,r.toStringTag,{value:"WritableStreamDefaultController",configurable:true})}function IsWritableStreamDefaultController(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")){return false}return true}function SetUpWritableStreamDefaultController(e,r,t,a,n,o,i,l){r._controlledWritableStream=e;e._writableStreamController=r;r._queue=undefined;r._queueTotalSize=undefined;ResetQueue(r);r._started=false;r._strategySizeAlgorithm=l;r._strategyHWM=i;r._writeAlgorithm=a;r._closeAlgorithm=n;r._abortAlgorithm=o;var u=WritableStreamDefaultControllerGetBackpressure(r);WritableStreamUpdateBackpressure(e,u);var s=t();var d=promiseResolvedWith(s);uponPromise(d,function(){r._started=true;WritableStreamDefaultControllerAdvanceQueueIfNeeded(r)},function(t){r._started=true;WritableStreamDealWithRejection(e,t)})}function SetUpWritableStreamDefaultControllerFromUnderlyingSink(e,r,t,a){var n=Object.create(T.prototype);var o=function(){return undefined};var i=function(){return promiseResolvedWith(undefined)};var l=function(){return promiseResolvedWith(undefined)};var u=function(){return promiseResolvedWith(undefined)};if(r.start!==undefined){o=function(){return r.start(n)}}if(r.write!==undefined){i=function(e){return r.write(e,n)}}if(r.close!==undefined){l=function(){return r.close()}}if(r.abort!==undefined){u=function(e){return r.abort(e)}}SetUpWritableStreamDefaultController(e,n,o,i,l,u,t,a)}function WritableStreamDefaultControllerClearAlgorithms(e){e._writeAlgorithm=undefined;e._closeAlgorithm=undefined;e._abortAlgorithm=undefined;e._strategySizeAlgorithm=undefined}function WritableStreamDefaultControllerClose(e){EnqueueValueWithSize(e,B,0);WritableStreamDefaultControllerAdvanceQueueIfNeeded(e)}function WritableStreamDefaultControllerGetChunkSize(e,r){try{return e._strategySizeAlgorithm(r)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(e,r);return 1}}function WritableStreamDefaultControllerGetDesiredSize(e){return e._strategyHWM-e._queueTotalSize}function WritableStreamDefaultControllerWrite(e,r,t){try{EnqueueValueWithSize(e,r,t)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(e,r);return}var a=e._controlledWritableStream;if(!WritableStreamCloseQueuedOrInFlight(a)&&a._state==="writable"){var n=WritableStreamDefaultControllerGetBackpressure(e);WritableStreamUpdateBackpressure(a,n)}WritableStreamDefaultControllerAdvanceQueueIfNeeded(e)}function WritableStreamDefaultControllerAdvanceQueueIfNeeded(e){var r=e._controlledWritableStream;if(!e._started){return}if(r._inFlightWriteRequest!==undefined){return}var t=r._state;if(t==="erroring"){WritableStreamFinishErroring(r);return}if(e._queue.length===0){return}var a=PeekQueueValue(e);if(a===B){WritableStreamDefaultControllerProcessClose(e)}else{WritableStreamDefaultControllerProcessWrite(e,a)}}function WritableStreamDefaultControllerErrorIfNeeded(e,r){if(e._controlledWritableStream._state==="writable"){WritableStreamDefaultControllerError(e,r)}}function WritableStreamDefaultControllerProcessClose(e){var r=e._controlledWritableStream;WritableStreamMarkCloseRequestInFlight(r);DequeueValue(e);var t=e._closeAlgorithm();WritableStreamDefaultControllerClearAlgorithms(e);uponPromise(t,function(){WritableStreamFinishInFlightClose(r)},function(e){WritableStreamFinishInFlightCloseWithError(r,e)})}function WritableStreamDefaultControllerProcessWrite(e,r){var t=e._controlledWritableStream;WritableStreamMarkFirstWriteRequestInFlight(t);var a=e._writeAlgorithm(r);uponPromise(a,function(){WritableStreamFinishInFlightWrite(t);var r=t._state;DequeueValue(e);if(!WritableStreamCloseQueuedOrInFlight(t)&&r==="writable"){var a=WritableStreamDefaultControllerGetBackpressure(e);WritableStreamUpdateBackpressure(t,a)}WritableStreamDefaultControllerAdvanceQueueIfNeeded(e)},function(r){if(t._state==="writable"){WritableStreamDefaultControllerClearAlgorithms(e)}WritableStreamFinishInFlightWriteWithError(t,r)})}function WritableStreamDefaultControllerGetBackpressure(e){var r=WritableStreamDefaultControllerGetDesiredSize(e);return r<=0}function WritableStreamDefaultControllerError(e,r){var t=e._controlledWritableStream;WritableStreamDefaultControllerClearAlgorithms(e);WritableStreamStartErroring(t,r)}function streamBrandCheckException$2(e){return new TypeError("WritableStream.prototype."+e+" can only be used on a WritableStream")}function defaultWriterBrandCheckException(e){return new TypeError("WritableStreamDefaultWriter.prototype."+e+" can only be used on a WritableStreamDefaultWriter")}function defaultWriterLockException(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function defaultWriterClosedPromiseInitialize(e){e._closedPromise=newPromise(function(r,t){e._closedPromise_resolve=r;e._closedPromise_reject=t;e._closedPromiseState="pending"})}function defaultWriterClosedPromiseInitializeAsRejected(e,r){defaultWriterClosedPromiseInitialize(e);defaultWriterClosedPromiseReject(e,r)}function defaultWriterClosedPromiseInitializeAsResolved(e){defaultWriterClosedPromiseInitialize(e);defaultWriterClosedPromiseResolve(e)}function defaultWriterClosedPromiseReject(e,r){if(e._closedPromise_reject===undefined){return}setPromiseIsHandledToTrue(e._closedPromise);e._closedPromise_reject(r);e._closedPromise_resolve=undefined;e._closedPromise_reject=undefined;e._closedPromiseState="rejected"}function defaultWriterClosedPromiseResetToRejected(e,r){defaultWriterClosedPromiseInitializeAsRejected(e,r)}function defaultWriterClosedPromiseResolve(e){if(e._closedPromise_resolve===undefined){return}e._closedPromise_resolve(undefined);e._closedPromise_resolve=undefined;e._closedPromise_reject=undefined;e._closedPromiseState="resolved"}function defaultWriterReadyPromiseInitialize(e){e._readyPromise=newPromise(function(r,t){e._readyPromise_resolve=r;e._readyPromise_reject=t});e._readyPromiseState="pending"}function defaultWriterReadyPromiseInitializeAsRejected(e,r){defaultWriterReadyPromiseInitialize(e);defaultWriterReadyPromiseReject(e,r)}function defaultWriterReadyPromiseInitializeAsResolved(e){defaultWriterReadyPromiseInitialize(e);defaultWriterReadyPromiseResolve(e)}function defaultWriterReadyPromiseReject(e,r){if(e._readyPromise_reject===undefined){return}setPromiseIsHandledToTrue(e._readyPromise);e._readyPromise_reject(r);e._readyPromise_resolve=undefined;e._readyPromise_reject=undefined;e._readyPromiseState="rejected"}function defaultWriterReadyPromiseReset(e){defaultWriterReadyPromiseInitialize(e)}function defaultWriterReadyPromiseResetToRejected(e,r){defaultWriterReadyPromiseInitializeAsRejected(e,r)}function defaultWriterReadyPromiseResolve(e){if(e._readyPromise_resolve===undefined){return}e._readyPromise_resolve(undefined);e._readyPromise_resolve=undefined;e._readyPromise_reject=undefined;e._readyPromiseState="fulfilled"}function isAbortSignal(e){if(typeof e!=="object"||e===null){return false}try{return typeof e.aborted==="boolean"}catch(e){return false}}var E=typeof DOMException!=="undefined"?DOMException:undefined;function isDOMExceptionConstructor(e){if(!(typeof e==="function"||typeof e==="object")){return false}try{new e;return true}catch(e){return false}}function createDOMExceptionPolyfill(){var e=function DOMException(e,r){this.message=e||"";this.name=r||"Error";if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}};e.prototype=Object.create(Error.prototype);Object.defineProperty(e.prototype,"constructor",{value:e,writable:true,configurable:true});return e}var D=isDOMExceptionConstructor(E)?E:createDOMExceptionPolyfill();function ReadableStreamPipeTo(e,r,t,a,n,o){var i=AcquireReadableStreamDefaultReader(e);var l=AcquireWritableStreamDefaultWriter(r);e._disturbed=true;var u=false;var s=promiseResolvedWith(undefined);return newPromise(function(d,f){var c;if(o!==undefined){c=function(){var t=new D("Aborted","AbortError");var o=[];if(!a){o.push(function(){if(r._state==="writable"){return WritableStreamAbort(r,t)}return promiseResolvedWith(undefined)})}if(!n){o.push(function(){if(e._state==="readable"){return ReadableStreamCancel(e,t)}return promiseResolvedWith(undefined)})}shutdownWithAction(function(){return Promise.all(o.map(function(e){return e()}))},true,t)};if(o.aborted){c();return}o.addEventListener("abort",c)}function pipeLoop(){return newPromise(function(e,r){function next(t){if(t){e()}else{PerformPromiseThen(pipeStep(),next,r)}}next(false)})}function pipeStep(){if(u){return promiseResolvedWith(true)}return PerformPromiseThen(l._readyPromise,function(){return newPromise(function(e,r){ReadableStreamDefaultReaderRead(i,{_chunkSteps:function(r){s=PerformPromiseThen(WritableStreamDefaultWriterWrite(l,r),undefined,noop);e(false)},_closeSteps:function(){return e(true)},_errorSteps:r})})})}isOrBecomesErrored(e,i._closedPromise,function(e){if(!a){shutdownWithAction(function(){return WritableStreamAbort(r,e)},true,e)}else{shutdown(true,e)}});isOrBecomesErrored(r,l._closedPromise,function(r){if(!n){shutdownWithAction(function(){return ReadableStreamCancel(e,r)},true,r)}else{shutdown(true,r)}});isOrBecomesClosed(e,i._closedPromise,function(){if(!t){shutdownWithAction(function(){return WritableStreamDefaultWriterCloseWithErrorPropagation(l)})}else{shutdown()}});if(WritableStreamCloseQueuedOrInFlight(r)||r._state==="closed"){var m=new TypeError("the destination writable stream closed before all data could be piped to it");if(!n){shutdownWithAction(function(){return ReadableStreamCancel(e,m)},true,m)}else{shutdown(true,m)}}setPromiseIsHandledToTrue(pipeLoop());function waitForWritesToFinish(){var e=s;return PerformPromiseThen(s,function(){return e!==s?waitForWritesToFinish():undefined})}function isOrBecomesErrored(e,r,t){if(e._state==="errored"){t(e._storedError)}else{uponRejection(r,t)}}function isOrBecomesClosed(e,r,t){if(e._state==="closed"){t()}else{uponFulfillment(r,t)}}function shutdownWithAction(e,t,a){if(u){return}u=true;if(r._state==="writable"&&!WritableStreamCloseQueuedOrInFlight(r)){uponFulfillment(waitForWritesToFinish(),doTheRest)}else{doTheRest()}function doTheRest(){uponPromise(e(),function(){return finalize(t,a)},function(e){return finalize(true,e)})}}function shutdown(e,t){if(u){return}u=true;if(r._state==="writable"&&!WritableStreamCloseQueuedOrInFlight(r)){uponFulfillment(waitForWritesToFinish(),function(){return finalize(e,t)})}else{finalize(e,t)}}function finalize(e,r){WritableStreamDefaultWriterRelease(l);ReadableStreamReaderGenericRelease(i);if(o!==undefined){o.removeEventListener("abort",c)}if(e){f(r)}else{d(undefined)}}})}var k=function(){function ReadableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsReadableStreamDefaultController(this)){throw defaultControllerBrandCheckException$1("desiredSize")}return ReadableStreamDefaultControllerGetDesiredSize(this)},enumerable:false,configurable:true});ReadableStreamDefaultController.prototype.close=function(){if(!IsReadableStreamDefaultController(this)){throw defaultControllerBrandCheckException$1("close")}if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)){throw new TypeError("The stream is not in a state that permits close")}ReadableStreamDefaultControllerClose(this)};ReadableStreamDefaultController.prototype.enqueue=function(e){if(e===void 0){e=undefined}if(!IsReadableStreamDefaultController(this)){throw defaultControllerBrandCheckException$1("enqueue")}if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)){throw new TypeError("The stream is not in a state that permits enqueue")}return ReadableStreamDefaultControllerEnqueue(this,e)};ReadableStreamDefaultController.prototype.error=function(e){if(e===void 0){e=undefined}if(!IsReadableStreamDefaultController(this)){throw defaultControllerBrandCheckException$1("error")}ReadableStreamDefaultControllerError(this,e)};ReadableStreamDefaultController.prototype[m]=function(e){ResetQueue(this);var r=this._cancelAlgorithm(e);ReadableStreamDefaultControllerClearAlgorithms(this);return r};ReadableStreamDefaultController.prototype[b]=function(e){var r=this._controlledReadableStream;if(this._queue.length>0){var t=DequeueValue(this);if(this._closeRequested&&this._queue.length===0){ReadableStreamDefaultControllerClearAlgorithms(this);ReadableStreamClose(r)}else{ReadableStreamDefaultControllerCallPullIfNeeded(this)}e._chunkSteps(t)}else{ReadableStreamAddReadRequest(r,e);ReadableStreamDefaultControllerCallPullIfNeeded(this)}};return ReadableStreamDefaultController}();Object.defineProperties(k.prototype,{close:{enumerable:true},enqueue:{enumerable:true},error:{enumerable:true},desiredSize:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(k.prototype,r.toStringTag,{value:"ReadableStreamDefaultController",configurable:true})}function IsReadableStreamDefaultController(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")){return false}return true}function ReadableStreamDefaultControllerCallPullIfNeeded(e){var r=ReadableStreamDefaultControllerShouldCallPull(e);if(!r){return}if(e._pulling){e._pullAgain=true;return}e._pulling=true;var t=e._pullAlgorithm();uponPromise(t,function(){e._pulling=false;if(e._pullAgain){e._pullAgain=false;ReadableStreamDefaultControllerCallPullIfNeeded(e)}},function(r){ReadableStreamDefaultControllerError(e,r)})}function ReadableStreamDefaultControllerShouldCallPull(e){var r=e._controlledReadableStream;if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(e)){return false}if(!e._started){return false}if(IsReadableStreamLocked(r)&&ReadableStreamGetNumReadRequests(r)>0){return true}var t=ReadableStreamDefaultControllerGetDesiredSize(e);if(t>0){return true}return false}function ReadableStreamDefaultControllerClearAlgorithms(e){e._pullAlgorithm=undefined;e._cancelAlgorithm=undefined;e._strategySizeAlgorithm=undefined}function ReadableStreamDefaultControllerClose(e){if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(e)){return}var r=e._controlledReadableStream;e._closeRequested=true;if(e._queue.length===0){ReadableStreamDefaultControllerClearAlgorithms(e);ReadableStreamClose(r)}}function ReadableStreamDefaultControllerEnqueue(e,r){if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(e)){return}var t=e._controlledReadableStream;if(IsReadableStreamLocked(t)&&ReadableStreamGetNumReadRequests(t)>0){ReadableStreamFulfillReadRequest(t,r,false)}else{var a=void 0;try{a=e._strategySizeAlgorithm(r)}catch(r){ReadableStreamDefaultControllerError(e,r);throw r}try{EnqueueValueWithSize(e,r,a)}catch(r){ReadableStreamDefaultControllerError(e,r);throw r}}ReadableStreamDefaultControllerCallPullIfNeeded(e)}function ReadableStreamDefaultControllerError(e,r){var t=e._controlledReadableStream;if(t._state!=="readable"){return}ResetQueue(e);ReadableStreamDefaultControllerClearAlgorithms(e);ReadableStreamError(t,r)}function ReadableStreamDefaultControllerGetDesiredSize(e){var r=e._controlledReadableStream._state;if(r==="errored"){return null}if(r==="closed"){return 0}return e._strategyHWM-e._queueTotalSize}function ReadableStreamDefaultControllerHasBackpressure(e){if(ReadableStreamDefaultControllerShouldCallPull(e)){return false}return true}function ReadableStreamDefaultControllerCanCloseOrEnqueue(e){var r=e._controlledReadableStream._state;if(!e._closeRequested&&r==="readable"){return true}return false}function SetUpReadableStreamDefaultController(e,r,t,a,n,o,i){r._controlledReadableStream=e;r._queue=undefined;r._queueTotalSize=undefined;ResetQueue(r);r._started=false;r._closeRequested=false;r._pullAgain=false;r._pulling=false;r._strategySizeAlgorithm=i;r._strategyHWM=o;r._pullAlgorithm=a;r._cancelAlgorithm=n;e._readableStreamController=r;var l=t();uponPromise(promiseResolvedWith(l),function(){r._started=true;ReadableStreamDefaultControllerCallPullIfNeeded(r)},function(e){ReadableStreamDefaultControllerError(r,e)})}function SetUpReadableStreamDefaultControllerFromUnderlyingSource(e,r,t,a){var n=Object.create(k.prototype);var o=function(){return undefined};var i=function(){return promiseResolvedWith(undefined)};var l=function(){return promiseResolvedWith(undefined)};if(r.start!==undefined){o=function(){return r.start(n)}}if(r.pull!==undefined){i=function(){return r.pull(n)}}if(r.cancel!==undefined){l=function(e){return r.cancel(e)}}SetUpReadableStreamDefaultController(e,n,o,i,l,t,a)}function defaultControllerBrandCheckException$1(e){return new TypeError("ReadableStreamDefaultController.prototype."+e+" can only be used on a ReadableStreamDefaultController")}function ReadableStreamTee(e,r){var t=AcquireReadableStreamDefaultReader(e);var a=false;var n=false;var o=false;var i;var l;var s;var d;var f;var c=newPromise(function(e){f=e});function pullAlgorithm(){if(a){return promiseResolvedWith(undefined)}a=true;var e={_chunkSteps:function(e){u(function(){a=false;var r=e;var t=e;if(!n){ReadableStreamDefaultControllerEnqueue(s._readableStreamController,r)}if(!o){ReadableStreamDefaultControllerEnqueue(d._readableStreamController,t)}})},_closeSteps:function(){a=false;if(!n){ReadableStreamDefaultControllerClose(s._readableStreamController)}if(!o){ReadableStreamDefaultControllerClose(d._readableStreamController)}if(!n||!o){f(undefined)}},_errorSteps:function(){a=false}};ReadableStreamDefaultReaderRead(t,e);return promiseResolvedWith(undefined)}function cancel1Algorithm(r){n=true;i=r;if(o){var t=CreateArrayFromList([i,l]);var a=ReadableStreamCancel(e,t);f(a)}return c}function cancel2Algorithm(r){o=true;l=r;if(n){var t=CreateArrayFromList([i,l]);var a=ReadableStreamCancel(e,t);f(a)}return c}function startAlgorithm(){}s=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel1Algorithm);d=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel2Algorithm);uponRejection(t._closedPromise,function(e){ReadableStreamDefaultControllerError(s._readableStreamController,e);ReadableStreamDefaultControllerError(d._readableStreamController,e);if(!n||!o){f(undefined)}});return[s,d]}function convertUnderlyingDefaultOrByteSource(e,r){assertDictionary(e,r);var t=e;var a=t===null||t===void 0?void 0:t.autoAllocateChunkSize;var n=t===null||t===void 0?void 0:t.cancel;var o=t===null||t===void 0?void 0:t.pull;var i=t===null||t===void 0?void 0:t.start;var l=t===null||t===void 0?void 0:t.type;return{autoAllocateChunkSize:a===undefined?undefined:convertUnsignedLongLongWithEnforceRange(a,r+" has member 'autoAllocateChunkSize' that"),cancel:n===undefined?undefined:convertUnderlyingSourceCancelCallback(n,t,r+" has member 'cancel' that"),pull:o===undefined?undefined:convertUnderlyingSourcePullCallback(o,t,r+" has member 'pull' that"),start:i===undefined?undefined:convertUnderlyingSourceStartCallback(i,t,r+" has member 'start' that"),type:l===undefined?undefined:convertReadableStreamType(l,r+" has member 'type' that")}}function convertUnderlyingSourceCancelCallback(e,r,t){assertFunction(e,t);return function(t){return promiseCall(e,r,[t])}}function convertUnderlyingSourcePullCallback(e,r,t){assertFunction(e,t);return function(t){return promiseCall(e,r,[t])}}function convertUnderlyingSourceStartCallback(e,r,t){assertFunction(e,t);return function(t){return reflectCall(e,r,[t])}}function convertReadableStreamType(e,r){e=""+e;if(e!=="bytes"){throw new TypeError(r+" '"+e+"' is not a valid enumeration value for ReadableStreamType")}return e}function convertReaderOptions(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.mode;return{mode:t===undefined?undefined:convertReadableStreamReaderMode(t,r+" has member 'mode' that")}}function convertReadableStreamReaderMode(e,r){e=""+e;if(e!=="byob"){throw new TypeError(r+" '"+e+"' is not a valid enumeration value for ReadableStreamReaderMode")}return e}function convertIteratorOptions(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.preventCancel;return{preventCancel:Boolean(t)}}function convertPipeOptions(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.preventAbort;var a=e===null||e===void 0?void 0:e.preventCancel;var n=e===null||e===void 0?void 0:e.preventClose;var o=e===null||e===void 0?void 0:e.signal;if(o!==undefined){assertAbortSignal(o,r+" has member 'signal' that")}return{preventAbort:Boolean(t),preventCancel:Boolean(a),preventClose:Boolean(n),signal:o}}function assertAbortSignal(e,r){if(!isAbortSignal(e)){throw new TypeError(r+" is not an AbortSignal.")}}function convertReadableWritablePair(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.readable;assertRequiredField(t,"readable","ReadableWritablePair");assertReadableStream(t,r+" has member 'readable' that");var a=e===null||e===void 0?void 0:e.writable;assertRequiredField(a,"writable","ReadableWritablePair");assertWritableStream(a,r+" has member 'writable' that");return{readable:t,writable:a}}var A=function(){function ReadableStream(e,r){if(e===void 0){e={}}if(r===void 0){r={}}if(e===undefined){e=null}else{assertObject(e,"First parameter")}var t=convertQueuingStrategy(r,"Second parameter");var a=convertUnderlyingDefaultOrByteSource(e,"First parameter");InitializeReadableStream(this);if(a.type==="bytes"){if(t.size!==undefined){throw new RangeError("The strategy for a byte stream cannot have a size function")}var n=ExtractHighWaterMark(t,0);SetUpReadableByteStreamControllerFromUnderlyingSource(this,a,n)}else{var o=ExtractSizeAlgorithm(t);var n=ExtractHighWaterMark(t,1);SetUpReadableStreamDefaultControllerFromUnderlyingSource(this,a,n,o)}}Object.defineProperty(ReadableStream.prototype,"locked",{get:function(){if(!IsReadableStream(this)){throw streamBrandCheckException$1("locked")}return IsReadableStreamLocked(this)},enumerable:false,configurable:true});ReadableStream.prototype.cancel=function(e){if(e===void 0){e=undefined}if(!IsReadableStream(this)){return promiseRejectedWith(streamBrandCheckException$1("cancel"))}if(IsReadableStreamLocked(this)){return promiseRejectedWith(new TypeError("Cannot cancel a stream that already has a reader"))}return ReadableStreamCancel(this,e)};ReadableStream.prototype.getReader=function(e){if(e===void 0){e=undefined}if(!IsReadableStream(this)){throw streamBrandCheckException$1("getReader")}var r=convertReaderOptions(e,"First parameter");if(r.mode===undefined){return AcquireReadableStreamDefaultReader(this)}return AcquireReadableStreamBYOBReader(this)};ReadableStream.prototype.pipeThrough=function(e,r){if(r===void 0){r={}}if(!IsReadableStream(this)){throw streamBrandCheckException$1("pipeThrough")}assertRequiredArgument(e,1,"pipeThrough");var t=convertReadableWritablePair(e,"First parameter");var a=convertPipeOptions(r,"Second parameter");if(IsReadableStreamLocked(this)){throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream")}if(IsWritableStreamLocked(t.writable)){throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream")}var n=ReadableStreamPipeTo(this,t.writable,a.preventClose,a.preventAbort,a.preventCancel,a.signal);setPromiseIsHandledToTrue(n);return t.readable};ReadableStream.prototype.pipeTo=function(e,r){if(r===void 0){r={}}if(!IsReadableStream(this)){return promiseRejectedWith(streamBrandCheckException$1("pipeTo"))}if(e===undefined){return promiseRejectedWith("Parameter 1 is required in 'pipeTo'.")}if(!IsWritableStream(e)){return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"))}var t;try{t=convertPipeOptions(r,"Second parameter")}catch(e){return promiseRejectedWith(e)}if(IsReadableStreamLocked(this)){return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream"))}if(IsWritableStreamLocked(e)){return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream"))}return ReadableStreamPipeTo(this,e,t.preventClose,t.preventAbort,t.preventCancel,t.signal)};ReadableStream.prototype.tee=function(){if(!IsReadableStream(this)){throw streamBrandCheckException$1("tee")}var e=ReadableStreamTee(this);return CreateArrayFromList(e)};ReadableStream.prototype.values=function(e){if(e===void 0){e=undefined}if(!IsReadableStream(this)){throw streamBrandCheckException$1("values")}var r=convertIteratorOptions(e,"First parameter");return AcquireReadableStreamAsyncIterator(this,r.preventCancel)};return ReadableStream}();Object.defineProperties(A.prototype,{cancel:{enumerable:true},getReader:{enumerable:true},pipeThrough:{enumerable:true},pipeTo:{enumerable:true},tee:{enumerable:true},values:{enumerable:true},locked:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(A.prototype,r.toStringTag,{value:"ReadableStream",configurable:true})}if(typeof r.asyncIterator==="symbol"){Object.defineProperty(A.prototype,r.asyncIterator,{value:A.prototype.values,writable:true,configurable:true})}function CreateReadableStream(e,r,t,a,n){if(a===void 0){a=1}if(n===void 0){n=function(){return 1}}var o=Object.create(A.prototype);InitializeReadableStream(o);var i=Object.create(k.prototype);SetUpReadableStreamDefaultController(o,i,e,r,t,a,n);return o}function InitializeReadableStream(e){e._state="readable";e._reader=undefined;e._storedError=undefined;e._disturbed=false}function IsReadableStream(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")){return false}return true}function IsReadableStreamLocked(e){if(e._reader===undefined){return false}return true}function ReadableStreamCancel(e,r){e._disturbed=true;if(e._state==="closed"){return promiseResolvedWith(undefined)}if(e._state==="errored"){return promiseRejectedWith(e._storedError)}ReadableStreamClose(e);var t=e._readableStreamController[m](r);return transformPromiseWith(t,noop)}function ReadableStreamClose(e){e._state="closed";var r=e._reader;if(r===undefined){return}defaultReaderClosedPromiseResolve(r);if(IsReadableStreamDefaultReader(r)){r._readRequests.forEach(function(e){e._closeSteps()});r._readRequests=new d}}function ReadableStreamError(e,r){e._state="errored";e._storedError=r;var t=e._reader;if(t===undefined){return}defaultReaderClosedPromiseReject(t,r);if(IsReadableStreamDefaultReader(t)){t._readRequests.forEach(function(e){e._errorSteps(r)});t._readRequests=new d}else{t._readIntoRequests.forEach(function(e){e._errorSteps(r)});t._readIntoRequests=new d}}function streamBrandCheckException$1(e){return new TypeError("ReadableStream.prototype."+e+" can only be used on a ReadableStream")}function convertQueuingStrategyInit(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.highWaterMark;assertRequiredField(t,"highWaterMark","QueuingStrategyInit");return{highWaterMark:convertUnrestrictedDouble(t)}}var q=function size(e){return e.byteLength};var j=function(){function ByteLengthQueuingStrategy(e){assertRequiredArgument(e,1,"ByteLengthQueuingStrategy");e=convertQueuingStrategyInit(e,"First parameter");this._byteLengthQueuingStrategyHighWaterMark=e.highWaterMark}Object.defineProperty(ByteLengthQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsByteLengthQueuingStrategy(this)){throw byteLengthBrandCheckException("highWaterMark")}return this._byteLengthQueuingStrategyHighWaterMark},enumerable:false,configurable:true});Object.defineProperty(ByteLengthQueuingStrategy.prototype,"size",{get:function(){if(!IsByteLengthQueuingStrategy(this)){throw byteLengthBrandCheckException("size")}return q},enumerable:false,configurable:true});return ByteLengthQueuingStrategy}();Object.defineProperties(j.prototype,{highWaterMark:{enumerable:true},size:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(j.prototype,r.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:true})}function byteLengthBrandCheckException(e){return new TypeError("ByteLengthQueuingStrategy.prototype."+e+" can only be used on a ByteLengthQueuingStrategy")}function IsByteLengthQueuingStrategy(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_byteLengthQueuingStrategyHighWaterMark")){return false}return true}var O=function size(){return 1};var F=function(){function CountQueuingStrategy(e){assertRequiredArgument(e,1,"CountQueuingStrategy");e=convertQueuingStrategyInit(e,"First parameter");this._countQueuingStrategyHighWaterMark=e.highWaterMark}Object.defineProperty(CountQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsCountQueuingStrategy(this)){throw countBrandCheckException("highWaterMark")}return this._countQueuingStrategyHighWaterMark},enumerable:false,configurable:true});Object.defineProperty(CountQueuingStrategy.prototype,"size",{get:function(){if(!IsCountQueuingStrategy(this)){throw countBrandCheckException("size")}return O},enumerable:false,configurable:true});return CountQueuingStrategy}();Object.defineProperties(F.prototype,{highWaterMark:{enumerable:true},size:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(F.prototype,r.toStringTag,{value:"CountQueuingStrategy",configurable:true})}function countBrandCheckException(e){return new TypeError("CountQueuingStrategy.prototype."+e+" can only be used on a CountQueuingStrategy")}function IsCountQueuingStrategy(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_countQueuingStrategyHighWaterMark")){return false}return true}function convertTransformer(e,r){assertDictionary(e,r);var t=e===null||e===void 0?void 0:e.flush;var a=e===null||e===void 0?void 0:e.readableType;var n=e===null||e===void 0?void 0:e.start;var o=e===null||e===void 0?void 0:e.transform;var i=e===null||e===void 0?void 0:e.writableType;return{flush:t===undefined?undefined:convertTransformerFlushCallback(t,e,r+" has member 'flush' that"),readableType:a,start:n===undefined?undefined:convertTransformerStartCallback(n,e,r+" has member 'start' that"),transform:o===undefined?undefined:convertTransformerTransformCallback(o,e,r+" has member 'transform' that"),writableType:i}}function convertTransformerFlushCallback(e,r,t){assertFunction(e,t);return function(t){return promiseCall(e,r,[t])}}function convertTransformerStartCallback(e,r,t){assertFunction(e,t);return function(t){return reflectCall(e,r,[t])}}function convertTransformerTransformCallback(e,r,t){assertFunction(e,t);return function(t,a){return promiseCall(e,r,[t,a])}}var z=function(){function TransformStream(e,r,t){if(e===void 0){e={}}if(r===void 0){r={}}if(t===void 0){t={}}if(e===undefined){e=null}var a=convertQueuingStrategy(r,"Second parameter");var n=convertQueuingStrategy(t,"Third parameter");var o=convertTransformer(e,"First parameter");if(o.readableType!==undefined){throw new RangeError("Invalid readableType specified")}if(o.writableType!==undefined){throw new RangeError("Invalid writableType specified")}var i=ExtractHighWaterMark(n,0);var l=ExtractSizeAlgorithm(n);var u=ExtractHighWaterMark(a,1);var s=ExtractSizeAlgorithm(a);var d;var f=newPromise(function(e){d=e});InitializeTransformStream(this,f,u,s,i,l);SetUpTransformStreamDefaultControllerFromTransformer(this,o);if(o.start!==undefined){d(o.start(this._transformStreamController))}else{d(undefined)}}Object.defineProperty(TransformStream.prototype,"readable",{get:function(){if(!IsTransformStream(this)){throw streamBrandCheckException("readable")}return this._readable},enumerable:false,configurable:true});Object.defineProperty(TransformStream.prototype,"writable",{get:function(){if(!IsTransformStream(this)){throw streamBrandCheckException("writable")}return this._writable},enumerable:false,configurable:true});return TransformStream}();Object.defineProperties(z.prototype,{readable:{enumerable:true},writable:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(z.prototype,r.toStringTag,{value:"TransformStream",configurable:true})}function InitializeTransformStream(e,r,t,a,n,o){function startAlgorithm(){return r}function writeAlgorithm(r){return TransformStreamDefaultSinkWriteAlgorithm(e,r)}function abortAlgorithm(r){return TransformStreamDefaultSinkAbortAlgorithm(e,r)}function closeAlgorithm(){return TransformStreamDefaultSinkCloseAlgorithm(e)}e._writable=CreateWritableStream(startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,t,a);function pullAlgorithm(){return TransformStreamDefaultSourcePullAlgorithm(e)}function cancelAlgorithm(r){TransformStreamErrorWritableAndUnblockWrite(e,r);return promiseResolvedWith(undefined)}e._readable=CreateReadableStream(startAlgorithm,pullAlgorithm,cancelAlgorithm,n,o);e._backpressure=undefined;e._backpressureChangePromise=undefined;e._backpressureChangePromise_resolve=undefined;TransformStreamSetBackpressure(e,true);e._transformStreamController=undefined}function IsTransformStream(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")){return false}return true}function TransformStreamError(e,r){ReadableStreamDefaultControllerError(e._readable._readableStreamController,r);TransformStreamErrorWritableAndUnblockWrite(e,r)}function TransformStreamErrorWritableAndUnblockWrite(e,r){TransformStreamDefaultControllerClearAlgorithms(e._transformStreamController);WritableStreamDefaultControllerErrorIfNeeded(e._writable._writableStreamController,r);if(e._backpressure){TransformStreamSetBackpressure(e,false)}}function TransformStreamSetBackpressure(e,r){if(e._backpressureChangePromise!==undefined){e._backpressureChangePromise_resolve()}e._backpressureChangePromise=newPromise(function(r){e._backpressureChangePromise_resolve=r});e._backpressure=r}var x=function(){function TransformStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(TransformStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsTransformStreamDefaultController(this)){throw defaultControllerBrandCheckException("desiredSize")}var e=this._controlledTransformStream._readable._readableStreamController;return ReadableStreamDefaultControllerGetDesiredSize(e)},enumerable:false,configurable:true});TransformStreamDefaultController.prototype.enqueue=function(e){if(e===void 0){e=undefined}if(!IsTransformStreamDefaultController(this)){throw defaultControllerBrandCheckException("enqueue")}TransformStreamDefaultControllerEnqueue(this,e)};TransformStreamDefaultController.prototype.error=function(e){if(e===void 0){e=undefined}if(!IsTransformStreamDefaultController(this)){throw defaultControllerBrandCheckException("error")}TransformStreamDefaultControllerError(this,e)};TransformStreamDefaultController.prototype.terminate=function(){if(!IsTransformStreamDefaultController(this)){throw defaultControllerBrandCheckException("terminate")}TransformStreamDefaultControllerTerminate(this)};return TransformStreamDefaultController}();Object.defineProperties(x.prototype,{enqueue:{enumerable:true},error:{enumerable:true},terminate:{enumerable:true},desiredSize:{enumerable:true}});if(typeof r.toStringTag==="symbol"){Object.defineProperty(x.prototype,r.toStringTag,{value:"TransformStreamDefaultController",configurable:true})}function IsTransformStreamDefaultController(e){if(!typeIsObject(e)){return false}if(!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")){return false}return true}function SetUpTransformStreamDefaultController(e,r,t,a){r._controlledTransformStream=e;e._transformStreamController=r;r._transformAlgorithm=t;r._flushAlgorithm=a}function SetUpTransformStreamDefaultControllerFromTransformer(e,r){var t=Object.create(x.prototype);var a=function(e){try{TransformStreamDefaultControllerEnqueue(t,e);return promiseResolvedWith(undefined)}catch(e){return promiseRejectedWith(e)}};var n=function(){return promiseResolvedWith(undefined)};if(r.transform!==undefined){a=function(e){return r.transform(e,t)}}if(r.flush!==undefined){n=function(){return r.flush(t)}}SetUpTransformStreamDefaultController(e,t,a,n)}function TransformStreamDefaultControllerClearAlgorithms(e){e._transformAlgorithm=undefined;e._flushAlgorithm=undefined}function TransformStreamDefaultControllerEnqueue(e,r){var t=e._controlledTransformStream;var a=t._readable._readableStreamController;if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(a)){throw new TypeError("Readable side is not in a state that permits enqueue")}try{ReadableStreamDefaultControllerEnqueue(a,r)}catch(e){TransformStreamErrorWritableAndUnblockWrite(t,e);throw t._readable._storedError}var n=ReadableStreamDefaultControllerHasBackpressure(a);if(n!==t._backpressure){TransformStreamSetBackpressure(t,true)}}function TransformStreamDefaultControllerError(e,r){TransformStreamError(e._controlledTransformStream,r)}function TransformStreamDefaultControllerPerformTransform(e,r){var t=e._transformAlgorithm(r);return transformPromiseWith(t,undefined,function(r){TransformStreamError(e._controlledTransformStream,r);throw r})}function TransformStreamDefaultControllerTerminate(e){var r=e._controlledTransformStream;var t=r._readable._readableStreamController;ReadableStreamDefaultControllerClose(t);var a=new TypeError("TransformStream terminated");TransformStreamErrorWritableAndUnblockWrite(r,a)}function TransformStreamDefaultSinkWriteAlgorithm(e,r){var t=e._transformStreamController;if(e._backpressure){var a=e._backpressureChangePromise;return transformPromiseWith(a,function(){var a=e._writable;var n=a._state;if(n==="erroring"){throw a._storedError}return TransformStreamDefaultControllerPerformTransform(t,r)})}return TransformStreamDefaultControllerPerformTransform(t,r)}function TransformStreamDefaultSinkAbortAlgorithm(e,r){TransformStreamError(e,r);return promiseResolvedWith(undefined)}function TransformStreamDefaultSinkCloseAlgorithm(e){var r=e._readable;var t=e._transformStreamController;var a=t._flushAlgorithm();TransformStreamDefaultControllerClearAlgorithms(t);return transformPromiseWith(a,function(){if(r._state==="errored"){throw r._storedError}ReadableStreamDefaultControllerClose(r._readableStreamController)},function(t){TransformStreamError(e,t);throw r._storedError})}function TransformStreamDefaultSourcePullAlgorithm(e){TransformStreamSetBackpressure(e,false);return e._backpressureChangePromise}function defaultControllerBrandCheckException(e){return new TypeError("TransformStreamDefaultController.prototype."+e+" can only be used on a TransformStreamDefaultController")}function streamBrandCheckException(e){return new TypeError("TransformStream.prototype."+e+" can only be used on a TransformStream")}e.ByteLengthQueuingStrategy=j;e.CountQueuingStrategy=F;e.ReadableByteStreamController=W;e.ReadableStream=A;e.ReadableStreamBYOBReader=w;e.ReadableStreamBYOBRequest=g;e.ReadableStreamDefaultController=k;e.ReadableStreamDefaultReader=h;e.TransformStream=z;e.TransformStreamDefaultController=x;e.WritableStream=P;e.WritableStreamDefaultController=T;e.WritableStreamDefaultWriter=I;Object.defineProperty(e,"__esModule",{value:true})})}};var r={};function __nccwpck_require__(t){if(r[t]){return r[t].exports}var a=r[t]={exports:{}};var n=true;try{e[t].call(a.exports,a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete r[t]}return a.exports}__nccwpck_require__.ab=__dirname+"/";return __nccwpck_require__(650)})(); \ No newline at end of file diff --git a/packages/next/lib/constants.ts b/packages/next/lib/constants.ts index 96b0df3fd4f8d..77b438810519c 100644 --- a/packages/next/lib/constants.ts +++ b/packages/next/lib/constants.ts @@ -17,6 +17,9 @@ export const NEXT_PROJECT_ROOT_DIST_SERVER = join( // Regex for API routes export const API_ROUTE = /^\/api(?:\/|$)/ +// Regex for middleware +export const MIDDLEWARE_ROUTE = /_middleware$/ + // 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 export const PAGES_DIR_ALIAS = 'private-next-pages' diff --git a/packages/next/package.json b/packages/next/package.json index 4c21552d1ce2b..bd706e9e98039 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -30,6 +30,8 @@ "error.d.ts", "script.js", "script.d.ts", + "server.js", + "server.d.ts", "head.js", "head.d.ts", "image.js", @@ -151,6 +153,7 @@ "@babel/types": "7.15.0", "@napi-rs/cli": "1.1.0", "@next/polyfill-nomodule": "11.1.3-canary.87", + "@peculiar/webcrypto": "1.1.7", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", "@taskr/watch": "1.1.0", @@ -180,6 +183,8 @@ "@types/send": "0.14.4", "@types/styled-jsx": "2.2.8", "@types/text-table": "0.2.1", + "@types/ua-parser-js": "0.7.36", + "@types/uuid": "8.3.1", "@types/webpack-sources1": "npm:@types/webpack-sources@0.1.5", "@types/ws": "8.2.0", "@vercel/ncc": "0.27.0", @@ -204,6 +209,7 @@ "file-loader": "6.0.0", "find-cache-dir": "3.3.1", "find-up": "4.1.0", + "formdata-node": "4.3.0", "fresh": "0.5.2", "glob": "7.1.7", "gzip-size": "5.1.1", @@ -245,7 +251,10 @@ "taskr": "1.1.0", "terser": "5.7.1", "text-table": "0.2.0", + "ua-parser-js": "0.7.28", "unistore": "3.4.1", + "uuid": "8.3.2", + "web-streams-polyfill": "3.0.3", "web-vitals": "2.1.0", "webpack-sources1": "npm:webpack-sources@1.4.3", "webpack-sources3": "npm:webpack-sources@3.2.0", diff --git a/packages/next/server.d.ts b/packages/next/server.d.ts new file mode 100644 index 0000000000000..ede20d97d501b --- /dev/null +++ b/packages/next/server.d.ts @@ -0,0 +1,3 @@ +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' diff --git a/packages/next/server.js b/packages/next/server.js new file mode 100644 index 0000000000000..0aff92876d2c4 --- /dev/null +++ b/packages/next/server.js @@ -0,0 +1,2 @@ +export { NextRequest } from 'next/dist/server/web/spec-extension/request' +export { NextResponse } from 'next/dist/server/web/spec-extension/response' diff --git a/packages/next/server/accept-header.ts b/packages/next/server/accept-header.ts new file mode 100644 index 0000000000000..638db99b73208 --- /dev/null +++ b/packages/next/server/accept-header.ts @@ -0,0 +1,137 @@ +export function acceptLanguage(header = '', preferences?: string[]) { + return ( + parse(header, preferences, { + type: 'accept-language', + prefixMatch: true, + })[0] || '' + ) +} + +interface Selection { + pos: number + pref?: number + q: number + token: string +} + +interface Options { + prefixMatch?: boolean + type: 'accept-language' +} + +function parse( + raw: string, + preferences: string[] | undefined, + options: Options +) { + const lowers = new Map() + const header = raw.replace(/[ \t]/g, '') + + if (preferences) { + let pos = 0 + for (const preference of preferences) { + const lower = preference.toLowerCase() + lowers.set(lower, { orig: preference, pos: pos++ }) + if (options.prefixMatch) { + const parts = lower.split('-') + while ((parts.pop(), parts.length > 0)) { + const joined = parts.join('-') + if (!lowers.has(joined)) { + lowers.set(joined, { orig: preference, pos: pos++ }) + } + } + } + } + } + + const parts = header.split(',') + const selections: Selection[] = [] + const map = new Set() + + for (let i = 0; i < parts.length; ++i) { + const part = parts[i] + if (!part) { + continue + } + + const params = part.split(';') + if (params.length > 2) { + throw new Error(`Invalid ${options.type} header`) + } + + let token = params[0].toLowerCase() + if (!token) { + throw new Error(`Invalid ${options.type} header`) + } + + const selection: Selection = { token, pos: i, q: 1 } + if (preferences && lowers.has(token)) { + selection.pref = lowers.get(token)!.pos + } + + map.add(selection.token) + + if (params.length === 2) { + const q = params[1] + const [key, value] = q.split('=') + + if (!value || (key !== 'q' && key !== 'Q')) { + throw new Error(`Invalid ${options.type} header`) + } + + const score = parseFloat(value) + if (score === 0) { + continue + } + + if (Number.isFinite(score) && score <= 1 && score >= 0.001) { + selection.q = score + } + } + + selections.push(selection) + } + + selections.sort((a, b) => { + if (b.q !== a.q) { + return b.q - a.q + } + + if (b.pref !== a.pref) { + if (a.pref === undefined) { + return 1 + } + + if (b.pref === undefined) { + return -1 + } + + return a.pref - b.pref + } + + return a.pos - b.pos + }) + + const values = selections.map((selection) => selection.token) + if (!preferences || !preferences.length) { + return values + } + + const preferred: string[] = [] + for (const selection of values) { + if (selection === '*') { + for (const [preference, value] of lowers) { + if (!map.has(preference)) { + preferred.push(value.orig) + } + } + } else { + const lower = selection.toLowerCase() + if (lowers.has(lower)) { + preferred.push(lowers.get(lower)!.orig) + } + } + } + + return preferred +} diff --git a/packages/next/server/dev/hot-reloader.ts b/packages/next/server/dev/hot-reloader.ts index 6be430d9514ee..d79c0fe83f4ca 100644 --- a/packages/next/server/dev/hot-reloader.ts +++ b/packages/next/server/dev/hot-reloader.ts @@ -11,7 +11,7 @@ import { } from '../../build/entries' import { watchCompilers } from '../../build/output' import getBaseWebpackConfig from '../../build/webpack-config' -import { API_ROUTE } from '../../lib/constants' +import { API_ROUTE, MIDDLEWARE_ROUTE } from '../../lib/constants' import { recursiveDelete } from '../../lib/recursive-delete' import { BLOCKED_PAGES } from '../../shared/lib/constants' import { __ApiPreviewProps } from '../api-utils' @@ -140,7 +140,7 @@ export default class HotReloader { private pagesDir: string private webpackHotMiddleware?: WebpackHotMiddleware private config: NextConfigComplete - private stats: webpack.Stats | null + public clientStats: webpack.Stats | null public serverStats: webpack.Stats | null private clientError: Error | null = null private serverError: Error | null = null @@ -173,7 +173,7 @@ export default class HotReloader { this.dir = dir this.middlewares = [] this.pagesDir = pagesDir - this.stats = null + this.clientStats = null this.serverStats = null this.serverPrevDocumentHash = null @@ -414,9 +414,15 @@ export default class HotReloader { const page = pageKey.slice( isClientKey ? 'client'.length : 'server'.length ) - if (isClientCompilation && page.match(API_ROUTE)) { + const isMiddleware = page.match(MIDDLEWARE_ROUTE) + if (isClientCompilation && page.match(API_ROUTE) && !isMiddleware) { return } + + if (!isClientCompilation && isMiddleware) { + return + } + const { bundlePath, absolutePagePath, dispose } = entries[pageKey] const pageExists = !dispose && (await isWriteable(absolutePagePath)) if (!pageExists) { @@ -431,21 +437,29 @@ export default class HotReloader { absolutePagePath, } - if (isClientCompilation) { - entrypoints[bundlePath] = finalizeEntrypoint( - bundlePath, - `next-client-pages-loader?${stringify(pageLoaderOpts)}!`, - false - ) + if (isClientCompilation && isMiddleware) { + entrypoints[bundlePath] = finalizeEntrypoint({ + name: bundlePath, + value: `next-middleware-loader?${stringify(pageLoaderOpts)}!`, + isServer: false, + }) + } else if (isClientCompilation) { + entrypoints[bundlePath] = finalizeEntrypoint({ + name: bundlePath, + value: `next-client-pages-loader?${stringify(pageLoaderOpts)}!`, + isServer: false, + }) } else { let request = relative(config.context!, absolutePagePath) - if (!isAbsolute(request) && !request.startsWith('../')) + if (!isAbsolute(request) && !request.startsWith('../')) { request = `./${request}` - entrypoints[bundlePath] = finalizeEntrypoint( - bundlePath, - request, - true - ) + } + + entrypoints[bundlePath] = finalizeEntrypoint({ + name: bundlePath, + value: request, + isServer: true, + }) } }) ) @@ -474,6 +488,7 @@ export default class HotReloader { (stats: webpack.compilation.Compilation) => { stats.entrypoints.forEach((entry, key) => { if (key.startsWith('pages/')) { + // TODO this doesn't handle on demand loaded chunks entry.chunks.forEach((chunk: any) => { if (chunk.id === key) { const prevHash = pageHashMap.get(key) @@ -543,9 +558,17 @@ export default class HotReloader { changedServerPages, changedClientPages ) + const middlewareChanges = Array.from(changedClientPages).filter((name) => + name.match(MIDDLEWARE_ROUTE) + ) changedClientPages.clear() changedServerPages.clear() + if (middlewareChanges.length > 0) { + this.send({ + event: 'middlewareChanges', + }) + } if (serverOnlyChanges.length > 0) { this.send({ event: 'serverOnlyChanges', @@ -560,14 +583,14 @@ export default class HotReloader { 'NextjsHotReloaderForClient', (err: Error) => { this.clientError = err - this.stats = null + this.clientStats = null } ) multiCompiler.compilers[0].hooks.done.tap( 'NextjsHotReloaderForClient', (stats) => { this.clientError = null - this.stats = stats + this.clientStats = stats const { compilation } = stats const chunkNames = new Set( @@ -633,7 +656,7 @@ export default class HotReloader { this.middlewares = [ getOverlayMiddleware({ rootDirectory: this.dir, - stats: () => this.stats, + stats: () => this.clientStats, serverStats: () => this.serverStats, }), ] @@ -658,8 +681,8 @@ export default class HotReloader { if (this.clientError || this.serverError) { return [this.clientError || this.serverError] - } else if (this.stats?.hasErrors()) { - const { compilation } = this.stats + } else if (this.clientStats?.hasErrors()) { + const { compilation } = this.clientStats const failedPages = erroredPages(compilation) // If there is an error related to the requesting page we display it instead of the first error @@ -671,7 +694,7 @@ export default class HotReloader { } // If none were found we still have to show the other errors - return this.stats.compilation.errors + return this.clientStats.compilation.errors } else if (this.serverStats?.hasErrors()) { const { compilation } = this.serverStats const failedPages = erroredPages(compilation) diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index dd69e844d51e3..45d513f080732 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -19,6 +19,7 @@ import { PHASE_DEVELOPMENT_SERVER, CLIENT_STATIC_FILES_PATH, DEV_CLIENT_PAGES_MANIFEST, + DEV_MIDDLEWARE_MANIFEST, } from '../../shared/lib/constants' import { getRouteMatcher, @@ -55,6 +56,9 @@ import { } from '@next/react-dev-overlay/lib/middleware' import * as Log from '../../build/output/log' import isError from '../../lib/is-error' +import { getMiddlewareRegex } from '../../shared/lib/router/utils/get-middleware-regex' +import type { FetchEventResult } from '../web/types' +import type { ParsedNextUrl } from '../../shared/lib/router/utils/parse-next-url' // Load ReactDevOverlay only when needed let ReactDevOverlayImpl: React.FunctionComponent @@ -207,6 +211,10 @@ export default class DevServer extends Server { return } + const regexMiddleware = new RegExp( + `/(_middleware.(?:${this.nextConfig.pageExtensions.join('|')}))$` + ) + const regexPageExtension = new RegExp( `\\.+(?:${this.nextConfig.pageExtensions.join('|')})$` ) @@ -231,6 +239,7 @@ export default class DevServer extends Server { wp.watch([], [pagesDir!], 0) wp.on('aggregated', () => { + const routedMiddleware = [] const routedPages = [] const knownFiles = wp.getTimeInfoEntries() for (const [fileName, { accuracy }] of knownFiles) { @@ -238,6 +247,16 @@ export default class DevServer extends Server { continue } + if (regexMiddleware.test(fileName)) { + routedMiddleware.push( + `/${relative(pagesDir!, fileName)}` + .replace(/\\+/g, '') + .replace(/^\/+/g, '/') + .replace(regexMiddleware, '/') + ) + continue + } + let pageName = '/' + relative(pagesDir!, fileName).replace(/\\+/g, '/') pageName = pageName.replace(regexPageExtension, '') @@ -246,6 +265,11 @@ export default class DevServer extends Server { routedPages.push(pageName) } + this.middleware = getSortedRoutes(routedMiddleware).map((page) => ({ + match: getRouteMatcher(getMiddlewareRegex(page)), + page, + })) + try { // we serve a separate manifest with all pages for the client in // dev mode so that we can match a page after a rewrite on the client @@ -444,6 +468,31 @@ export default class DevServer extends Server { } } + async runMiddleware(params: { + request: IncomingMessage + response: ServerResponse + parsedUrl: ParsedNextUrl + parsed: UrlWithParsedQuery + }): Promise { + try { + const result = await super.runMiddleware(params) + result?.promise.catch((error) => + this.logErrorWithOriginalStack(error, 'unhandledRejection', 'client') + ) + result?.waitUntil.catch((error) => + this.logErrorWithOriginalStack(error, 'unhandledRejection', 'client') + ) + return result + } catch (error) { + this.logErrorWithOriginalStack(error, undefined, 'client') + const err = isError(error) ? error : new Error(error + '') + ;(err as any).middleware = true + const { request, response, parsedUrl } = params + this.renderError(err, request, response, parsedUrl.pathname) + return null + } + } + async run( req: IncomingMessage, res: ServerResponse, @@ -504,7 +553,8 @@ export default class DevServer extends Server { private async logErrorWithOriginalStack( err?: unknown, - type?: 'unhandledRejection' | 'uncaughtException' + type?: 'unhandledRejection' | 'uncaughtException', + stats: 'server' | 'client' = 'server' ) { let usedOriginalStack = false @@ -514,7 +564,11 @@ export default class DevServer extends Server { const frame = frames[0] if (frame.lineNumber && frame?.file) { - const compilation = this.hotReloader?.serverStats?.compilation + const compilation = + stats === 'client' + ? this.hotReloader?.clientStats?.compilation + : this.hotReloader?.serverStats?.compilation + const moduleId = frame.file!.replace( /^(webpack-internal:\/\/\/|file:\/\/)/, '' @@ -587,6 +641,18 @@ export default class DevServer extends Server { }) } + protected getMiddleware(): never[] { + return [] + } + + protected async hasMiddleware(pathname: string): Promise { + return this.hasPage(getMiddlewareFilepath(pathname)) + } + + protected async ensureMiddleware(pathname: string) { + return this.hotReloader!.ensurePage(getMiddlewareFilepath(pathname)) + } + generateRoutes() { const { fsRoutes, ...otherRoutes } = super.generateRoutes() @@ -625,6 +691,26 @@ export default class DevServer extends Server { }, }) + fsRoutes.unshift({ + match: route( + `/_next/${CLIENT_STATIC_FILES_PATH}/${this.buildId}/${DEV_MIDDLEWARE_MANIFEST}` + ), + type: 'route', + name: `_next/${CLIENT_STATIC_FILES_PATH}/${this.buildId}/${DEV_MIDDLEWARE_MANIFEST}`, + fn: async (_req, res) => { + res.statusCode = 200 + res.setHeader('Content-Type', 'application/json; charset=utf-8') + res.end( + JSON.stringify( + this.middleware?.map((middleware) => middleware.page) || [] + ) + ) + return { + finished: true, + } + }, + }) + fsRoutes.push({ match: route('/:path*'), type: 'route', @@ -831,3 +917,9 @@ export default class DevServer extends Server { return false } } + +function getMiddlewareFilepath(pathname: string) { + return pathname.endsWith('/') + ? `${pathname}_middleware` + : `${pathname}/_middleware` +} diff --git a/packages/next/server/dev/on-demand-entry-handler.ts b/packages/next/server/dev/on-demand-entry-handler.ts index 2af0d7a25b197..d33e0acf47856 100644 --- a/packages/next/server/dev/on-demand-entry-handler.ts +++ b/packages/next/server/dev/on-demand-entry-handler.ts @@ -5,7 +5,7 @@ import { normalizePagePath, normalizePathSep } from '../normalize-page-path' import { pageNotFoundError } from '../require' import { findPageFile } from '../lib/find-page-file' import getRouteFromEntrypoint from '../get-route-from-entrypoint' -import { API_ROUTE } from '../../lib/constants' +import { API_ROUTE, MIDDLEWARE_ROUTE } from '../../lib/constants' import { reportTrigger } from '../../build/output' import type ws from 'ws' @@ -187,7 +187,8 @@ export default function onDemandEntryHandler( page = posix.normalize(pageUrl) const normalizedPage = normalizePathSep(page) - const isApiRoute = normalizedPage.match(API_ROUTE) + const isMiddleware = normalizedPage.match(MIDDLEWARE_ROUTE) + const isApiRoute = normalizedPage.match(API_ROUTE) && !isMiddleware let entriesChanged = false const addPageEntry = (type: 'client' | 'server') => { @@ -228,13 +229,13 @@ export default function onDemandEntryHandler( const promise = isApiRoute ? addPageEntry('server') - : clientOnly + : clientOnly || isMiddleware ? addPageEntry('client') : Promise.all([addPageEntry('client'), addPageEntry('server')]) if (entriesChanged) { reportTrigger( - isApiRoute + isApiRoute || isMiddleware ? `${normalizedPage} (server only)` : clientOnly ? `${normalizedPage} (client only)` diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 14413b335688b..20a979edd4411 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -33,12 +33,14 @@ import { SERVER_DIRECTORY, STATIC_STATUS_PAGES, TEMPORARY_REDIRECT_STATUS, + MIDDLEWARE_MANIFEST, } from '../shared/lib/constants' import { getRouteMatcher, getRouteRegex, getSortedRoutes, isDynamicRoute, + getMiddlewareRegex, } from '../shared/lib/router/utils' import * as envConfig from '../shared/lib/runtime-config' import { @@ -98,10 +100,18 @@ import ResponseCache, { import { NextConfigComplete } from './config-shared' import { parseNextUrl } from '../shared/lib/router/utils/parse-next-url' import isError from '../lib/is-error' +import { getMiddlewareInfo } from './require' +import { parseUrl as simpleParseUrl } from '../shared/lib/router/utils/parse-url' +import { MIDDLEWARE_ROUTE } from '../lib/constants' +import { run } from './web/sandbox' +import type { FetchEventResult } from './web/types' +import type { MiddlewareManifest } from '../build/webpack/plugins/middleware-plugin' +import type { ParsedNextUrl } from '../shared/lib/router/utils/parse-next-url' +import type { ParsedUrl } from '../shared/lib/router/utils/parse-url' const getCustomRouteMatcher = pathMatch(true) -type Middleware = ( +type ExpressMiddleware = ( req: IncomingMessage, res: ServerResponse, next: (err?: Error) => void @@ -112,7 +122,7 @@ export type FindComponentsResult = { query: ParsedUrlQuery } -type DynamicRouteItem = { +interface RoutingItem { page: string match: ReturnType } @@ -179,12 +189,14 @@ export default class Server { distDir: string concurrentFeatures?: boolean } - private compression?: Middleware + private compression?: ExpressMiddleware private incrementalCache: IncrementalCache private responseCache: ResponseCache protected router: Router protected dynamicRoutes?: DynamicRoutes protected customRoutes: CustomRoutes + protected middlewareManifest?: MiddlewareManifest + protected middleware?: RoutingItem[] public constructor({ dir = '.', @@ -248,7 +260,7 @@ export default class Server { } if (compress && this.nextConfig.target === 'server') { - this.compression = compression() as Middleware + this.compression = compression() as ExpressMiddleware } // Initialize next/config with the environment configuration @@ -262,9 +274,16 @@ export default class Server { this._isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY ) const pagesManifestPath = join(this.serverBuildDir, PAGES_MANIFEST) + const middlewareManifestPath = join( + join(this.distDir, SERVER_DIRECTORY), + MIDDLEWARE_MANIFEST + ) if (!dev) { this.pagesManifest = require(pagesManifestPath) + if (!this.minimalMode) { + this.middlewareManifest = require(middlewareManifestPath) + } } this.customRoutes = this.getCustomRoutes() @@ -337,6 +356,8 @@ export default class Server { if (typeof parsedUrl.query === 'string') { parsedUrl.query = parseQs(parsedUrl.query) } + + ;(req as any).__NEXT_INIT_URL = req.url ;(req as any).__NEXT_INIT_QUERY = Object.assign({}, parsedUrl.query) const url = parseNextUrl({ @@ -547,6 +568,109 @@ export default class Server { return this.getPrerenderManifest().preview } + protected getMiddleware() { + return Object.keys(this.middlewareManifest?.middleware || {}).map( + (page) => ({ + match: getRouteMatcher(getMiddlewareRegex(page)), + page, + }) + ) + } + + protected async hasMiddleware(pathname: string): Promise { + try { + return ( + getMiddlewareInfo({ + dev: this.renderOpts.dev, + distDir: this.distDir, + page: pathname, + serverless: this._isLikeServerless, + }).paths.length > 0 + ) + } catch (_) {} + + return false + } + + protected async ensureMiddleware(_pathname: string) {} + + protected async runMiddleware(params: { + request: IncomingMessage + response: ServerResponse + parsedUrl: ParsedNextUrl + parsed: UrlWithParsedQuery + }): Promise { + const page: { name?: string; params?: { [key: string]: string } } = {} + if (await this.hasPage(params.parsedUrl.pathname)) { + page.name = params.parsedUrl.pathname + } else if (this.dynamicRoutes) { + for (const dynamicRoute of this.dynamicRoutes) { + const matchParams = dynamicRoute.match(params.parsedUrl.pathname) + if (matchParams) { + page.name = dynamicRoute.page + page.params = matchParams + break + } + } + } + + let result: FetchEventResult | null = null + + for (const middleware of this.middleware || []) { + if (middleware.match(params.parsedUrl.pathname)) { + if (!(await this.hasMiddleware(middleware.page))) { + console.warn(`The Edge Function for ${middleware.page} was not found`) + continue + } + + await this.ensureMiddleware(middleware.page) + + const middlewareInfo = getMiddlewareInfo({ + dev: this.renderOpts.dev, + distDir: this.distDir, + page: middleware.page, + serverless: this._isLikeServerless, + }) + + result = await run({ + name: middlewareInfo.name, + paths: middlewareInfo.paths, + request: { + headers: params.request.headers, + method: params.request.method || 'GET', + nextConfig: { + basePath: this.nextConfig.basePath, + i18n: this.nextConfig.i18n, + trailingSlash: this.nextConfig.trailingSlash, + }, + url: (params.request as any).__NEXT_INIT_URL, + page: page, + }, + }) + + if (!this.renderOpts.dev) { + result.promise.catch((error) => { + console.error(`Uncaught: middleware error after responding`, error) + }) + + result.waitUntil.catch((error) => { + console.error(`Uncaught: middleware waitUntil errored`, error) + }) + } + + if (!result.response.headers.has('x-middleware-next')) { + break + } + } + } + + if (!result) { + this.render404(params.request, params.response, params.parsed) + } + + return result + } + protected generateRoutes(): { basePath: string headers: Route[] @@ -558,6 +682,7 @@ export default class Server { fsRoutes: Route[] redirects: Route[] catchAllRoute: Route + catchAllMiddleware?: Route pageChecker: PageChecker useFileSystemPublicRoutes: boolean dynamicRoutes: DynamicRoutes | undefined @@ -810,6 +935,49 @@ export default class Server { }) } + const proxyRequest = async ( + req: IncomingMessage, + res: ServerResponse, + parsedUrl: ParsedUrl + ) => { + const { query } = parsedUrl + delete (parsedUrl as any).query + parsedUrl.search = stringifyQuery(req, query) + + const target = formatUrl(parsedUrl) + const proxy = new Proxy({ + target, + changeOrigin: true, + ignorePath: true, + xfwd: true, + proxyTimeout: 30_000, // limit proxying to 30 seconds + }) + + await new Promise((proxyResolve, proxyReject) => { + let finished = false + + proxy.on('proxyReq', (proxyReq) => { + proxyReq.on('close', () => { + if (!finished) { + finished = true + proxyResolve(true) + } + }) + }) + proxy.on('error', (err) => { + if (!finished) { + finished = true + proxyReject(err) + } + }) + proxy.web(req, res) + }) + + return { + finished: true, + } + } + const redirects = this.minimalMode ? [] : this.customRoutes.redirects.map((redirect) => { @@ -876,43 +1044,9 @@ export default class Server { // external rewrite, proxy it if (parsedDestination.protocol) { - const { query } = parsedDestination - delete (parsedDestination as any).query - parsedDestination.search = stringifyQuery(req, query) - - const target = formatUrl(parsedDestination) - const proxy = new Proxy({ - target, - changeOrigin: true, - ignorePath: true, - xfwd: true, - proxyTimeout: 30_000, // limit proxying to 30 seconds - }) - - await new Promise((proxyResolve, proxyReject) => { - let finished = false - - proxy.on('proxyReq', (proxyReq) => { - proxyReq.on('close', () => { - if (!finished) { - finished = true - proxyResolve(true) - } - }) - }) - proxy.on('error', (err) => { - if (!finished) { - finished = true - proxyReject(err) - } - }) - proxy.web(req, res) - }) - - return { - finished: true, - } + return proxyRequest(req, res, parsedDestination) } + ;(req as any)._nextRewroteUrl = newUrl ;(req as any)._nextDidRewrite = (req as any)._nextRewroteUrl !== req.url @@ -946,6 +1080,137 @@ export default class Server { } } + let catchAllMiddleware: Route | undefined + + if (!this.minimalMode) { + catchAllMiddleware = { + match: route('/:path*'), + type: 'route', + name: 'middleware catchall', + fn: async (req, res, _params, parsed) => { + const fullUrl = (req as any).__NEXT_INIT_URL + const parsedUrl = parseNextUrl({ + url: fullUrl, + headers: req.headers, + nextConfig: { + basePath: this.nextConfig.basePath, + i18n: this.nextConfig.i18n, + trailingSlash: this.nextConfig.trailingSlash, + }, + }) + + if (!this.middleware?.some((m) => m.match(parsedUrl.pathname))) { + return { finished: false } + } + + let result: FetchEventResult | null = null + + try { + result = await this.runMiddleware({ + request: req, + response: res, + parsedUrl: parsedUrl, + parsed: parsed, + }) + } catch (err) { + if (isError(err) && err.code === 'ENOENT') { + await this.render404(req, res, parsed) + return { finished: true } + } + + const error = isError(err) ? err : new Error(err + '') + console.error(error) + res.statusCode = 500 + this.renderError(error, req, res, parsed.pathname || '') + return { finished: true } + } + + if (result === null) { + return { finished: true } + } + + if ( + !result.response.headers.has('x-middleware-rewrite') && + !result.response.headers.has('x-middleware-next') && + !result.response.headers.has('Location') + ) { + result.response.headers.set('x-middleware-refresh', '1') + } + + result.response.headers.delete('x-middleware-next') + + for (const [key, value] of result.response.headers.entries()) { + if (key !== 'content-encoding') { + res.setHeader(key, value) + } + } + + const preflight = + req.method === 'HEAD' && req.headers['x-middleware-preflight'] + + if (preflight) { + res.writeHead(200) + res.end() + return { + finished: true, + } + } + + res.statusCode = result.response.status + res.statusMessage = result.response.statusText + + const location = result.response.headers.get('Location') + if (location) { + res.statusCode = result.response.status + if (res.statusCode === 308) { + res.setHeader('Refresh', `0;url=${location}`) + } + + res.end() + return { + finished: true, + } + } + + if (result.response.headers.has('x-middleware-rewrite')) { + const rewrite = result.response.headers.get('x-middleware-rewrite')! + const rewriteParsed = simpleParseUrl(rewrite) + if (rewriteParsed.protocol) { + return proxyRequest(req, res, rewriteParsed) + } + + ;(req as any)._nextRewroteUrl = rewrite + ;(req as any)._nextDidRewrite = + (req as any)._nextRewroteUrl !== req.url + + return { + finished: false, + pathname: rewriteParsed.pathname, + query: { + ...parsedUrl.query, + ...rewriteParsed.query, + }, + } + } + + if (result.response.headers.has('x-middleware-refresh')) { + res.writeHead(result.response.status) + for await (const chunk of result.response.body || []) { + res.write(chunk) + } + res.end() + return { + finished: true, + } + } + + return { + finished: false, + } + }, + } + } + const catchAllRoute: Route = { match: route('/:path*'), type: 'route', @@ -972,6 +1237,13 @@ export default class Server { } const bubbleNoFallback = !!query._nextBubbleNoFallback + if (pathname.match(MIDDLEWARE_ROUTE)) { + await this.render404(req, res, parsedUrl) + return { + finished: true, + } + } + if (pathname === '/api' || pathname.startsWith('/api/')) { delete query._nextBubbleNoFallback @@ -1007,6 +1279,9 @@ export default class Server { if (useFileSystemPublicRoutes) { this.dynamicRoutes = this.getDynamicRoutes() + if (!this.minimalMode) { + this.middleware = this.getMiddleware() + } } return { @@ -1019,6 +1294,7 @@ export default class Server { }, redirects, catchAllRoute, + catchAllMiddleware, useFileSystemPublicRoutes, dynamicRoutes: this.dynamicRoutes, basePath: this.nextConfig.basePath, @@ -1195,7 +1471,7 @@ export default class Server { ] } - protected getDynamicRoutes(): Array { + protected getDynamicRoutes(): Array { const addedPages = new Set() return getSortedRoutes( @@ -1212,7 +1488,7 @@ export default class Server { match: getRouteMatcher(getRouteRegex(page)), } }) - .filter((item): item is DynamicRouteItem => Boolean(item)) + .filter((item): item is RoutingItem => Boolean(item)) } private handleCompression(req: IncomingMessage, res: ServerResponse): void { diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index 4560770d818a6..74907e1a173c7 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -1197,9 +1197,13 @@ export async function renderToHTML( return new RenderResult(chainPipers(pipers)) } -function errorToJSON(err: Error): Error { - const { name, message, stack } = err - return { name, message, stack } +function errorToJSON(err: Error) { + return { + name: err.name, + message: err.message, + stack: err.stack, + middleware: (err as any).middleware, + } } function serializeError( diff --git a/packages/next/server/require.ts b/packages/next/server/require.ts index 7e3fcd06179e1..d31f4d3d80cb5 100644 --- a/packages/next/server/require.ts +++ b/packages/next/server/require.ts @@ -1,14 +1,16 @@ import { promises } from 'fs' import { join } from 'path' import { + FONT_MANIFEST, + MIDDLEWARE_MANIFEST, PAGES_MANIFEST, SERVER_DIRECTORY, SERVERLESS_DIRECTORY, - FONT_MANIFEST, } from '../shared/lib/constants' import { normalizePagePath, denormalizePagePath } from './normalize-page-path' -import { PagesManifest } from '../build/webpack/plugins/pages-manifest-plugin' import { normalizeLocalePath } from '../shared/lib/i18n/normalize-locale-path' +import type { PagesManifest } from '../build/webpack/plugins/pages-manifest-plugin' +import type { MiddlewareManifest } from '../build/webpack/plugins/middleware-plugin' export function pageNotFoundError(page: string): Error { const err: any = new Error(`Cannot find module for page: ${page}`) @@ -76,3 +78,38 @@ export function requireFontManifest(distDir: string, serverless: boolean) { const fontManifest = require(join(serverBuildPath, FONT_MANIFEST)) return fontManifest } + +export function getMiddlewareInfo(params: { + dev?: boolean + distDir: string + page: string + serverless: boolean +}): { name: string; paths: string[] } { + const serverBuildPath = join( + params.distDir, + params.serverless && !params.dev ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY + ) + + const middlewareManifest: MiddlewareManifest = require(join( + serverBuildPath, + MIDDLEWARE_MANIFEST + )) + + let page: string + + try { + page = denormalizePagePath(normalizePagePath(params.page)) + } catch (err) { + throw pageNotFoundError(params.page) + } + + let pageInfo = middlewareManifest.middleware[page] + if (!pageInfo) { + throw pageNotFoundError(page) + } + + return { + name: pageInfo.name, + paths: pageInfo.files.map((file) => join(params.distDir, file)), + } +} diff --git a/packages/next/server/router.ts b/packages/next/server/router.ts index d9306e953488f..f889ad0b0e18e 100644 --- a/packages/next/server/router.ts +++ b/packages/next/server/router.ts @@ -1,5 +1,6 @@ -import { IncomingMessage, ServerResponse } from 'http' -import { UrlWithParsedQuery } from 'url' +import type { IncomingMessage, ServerResponse } from 'http' +import type { ParsedUrlQuery } from 'querystring' +import type { UrlWithParsedQuery } from 'url' import pathMatch from '../shared/lib/router/utils/path-match' import { removePathTrailingSlash } from '../client/normalize-trailing-slash' @@ -16,7 +17,7 @@ export type RouteMatch = (pathname: string | null | undefined) => false | Params type RouteResult = { finished: boolean pathname?: string - query?: { [k: string]: string } + query?: ParsedUrlQuery } export type Route = { @@ -58,6 +59,7 @@ export default class Router { fallback: Route[] } catchAllRoute: Route + catchAllMiddleware?: Route pageChecker: PageChecker dynamicRoutes: DynamicRoutes useFileSystemPublicRoutes: boolean @@ -74,6 +76,7 @@ export default class Router { }, redirects = [], catchAllRoute, + catchAllMiddleware, dynamicRoutes = [], pageChecker, useFileSystemPublicRoutes, @@ -89,6 +92,7 @@ export default class Router { } redirects: Route[] catchAllRoute: Route + catchAllMiddleware?: Route dynamicRoutes: DynamicRoutes | undefined pageChecker: PageChecker useFileSystemPublicRoutes: boolean @@ -101,6 +105,7 @@ export default class Router { this.redirects = redirects this.pageChecker = pageChecker this.catchAllRoute = catchAllRoute + this.catchAllMiddleware = catchAllMiddleware this.dynamicRoutes = dynamicRoutes this.useFileSystemPublicRoutes = useFileSystemPublicRoutes this.locales = locales @@ -197,6 +202,9 @@ export default class Router { ...this.headers, ...this.redirects, ...this.rewrites.beforeFiles, + ...(this.useFileSystemPublicRoutes && this.catchAllMiddleware + ? [this.catchAllMiddleware] + : []), ...this.fsRoutes, // We only check the catch-all route if public page routes hasn't been // disabled @@ -268,7 +276,9 @@ export default class Router { const requireBasePath = testRoute.requireBasePath !== false const isCustomRoute = customRouteTypes.has(testRoute.type) const isPublicFolderCatchall = testRoute.name === 'public folder catchall' - const keepBasePath = isCustomRoute || isPublicFolderCatchall + const isMiddlewareCatchall = testRoute.name === 'middleware catchall' + const keepBasePath = + isCustomRoute || isPublicFolderCatchall || isMiddlewareCatchall const keepLocale = isCustomRoute const currentPathnameNoBasePath = replaceBasePath( diff --git a/packages/next/server/web/adapter.ts b/packages/next/server/web/adapter.ts new file mode 100644 index 0000000000000..e723b7eca50fe --- /dev/null +++ b/packages/next/server/web/adapter.ts @@ -0,0 +1,36 @@ +import type { RequestData, FetchEventResult } from './types' + +import { fromNodeHeaders } from './utils' +import { NextFetchEvent } from './spec-extension/fetch-event' +import { NextRequest } from './spec-extension/request' +import { NextResponse } from './spec-extension/response' +import { waitUntilSymbol, responseSymbol } from './spec-compliant/fetch-event' + +export async function adapter(params: { + handler: (event: NextFetchEvent) => void | Promise + request: RequestData +}): Promise { + const url = params.request.url.startsWith('/') + ? `https://${params.request.headers.host}${params.request.url}` + : params.request.url + + const event = new NextFetchEvent( + new NextRequest(url, { + geo: params.request.geo, + headers: fromNodeHeaders(params.request.headers), + ip: params.request.ip, + method: params.request.method, + nextConfig: params.request.nextConfig, + page: params.request.page, + }) + ) + + const handled = params.handler(event) + const original = await event[responseSymbol] + + return { + promise: Promise.resolve(handled), + response: original || NextResponse.next(), + waitUntil: Promise.all(event[waitUntilSymbol]), + } +} diff --git a/packages/next/server/web/form-data.ts b/packages/next/server/web/form-data.ts new file mode 100644 index 0000000000000..da3288b1a129f --- /dev/null +++ b/packages/next/server/web/form-data.ts @@ -0,0 +1,73 @@ +import { isBlob } from './is' +import { streamToIterator } from './utils' + +const carriage = '\r\n' +const dashes = '--' +const carriageLength = 2 + +function escape(str: string) { + return str.replace(/"/g, '\\"') +} + +function getFooter(boundary: string) { + return `${dashes}${boundary}${dashes}${carriage.repeat(2)}` +} + +function getHeader(boundary: string, name: string, field: FormDataEntryValue) { + let header = '' + header += `${dashes}${boundary}${carriage}` + header += `Content-Disposition: form-data; name="${escape(name)}"` + + if (isBlob(field)) { + header += `; filename="${escape(field.name)}"${carriage}` + header += `Content-Type: ${field.type || 'application/octet-stream'}` + } + + return `${header}${carriage.repeat(2)}` +} + +export function getBoundary() { + const array = new Uint8Array(32) + crypto.getRandomValues(array) + + let str = '' + for (var i = 0; i < array.length; i++) { + str += array[i].toString(16).padStart(2, '0') + } + + return str +} + +export async function* formDataIterator( + form: FormData, + boundary: string +): AsyncIterableIterator { + const encoder = new TextEncoder() + for (const [name, value] of form) { + yield encoder.encode(getHeader(boundary, name, value)) + + if (isBlob(value)) { + const stream: ReadableStream = value.stream() + yield* streamToIterator(stream) + } else { + yield encoder.encode(value) + } + + yield encoder.encode(carriage) + } + + yield encoder.encode(getFooter(boundary)) +} + +export function getFormDataLength(form: FormData, boundary: string) { + let length = 0 + + for (const [name, value] of form) { + length += Buffer.byteLength(getHeader(boundary, name, value)) + length += isBlob(value) ? value.size : Buffer.byteLength(String(value)) + length += carriageLength + } + + length += Buffer.byteLength(getFooter(boundary)) + return length +} diff --git a/packages/next/server/web/is.ts b/packages/next/server/web/is.ts new file mode 100644 index 0000000000000..004b55aa07eaa --- /dev/null +++ b/packages/next/server/web/is.ts @@ -0,0 +1,80 @@ +/** + * The ArrayBuffer object is used to represent a generic, fixed-length raw + * binary data buffer. It is an array of bytes, often referred to in other + * languages as a "byte array". You cannot directly manipulate the contents of + * an ArrayBuffer; instead, you create one of the typed array objects or a + * DataView object which represents the buffer in a specific format, and use + * that to read and write the contents of the buffer. + */ +export function isArrayBuffer(value: any): value is ArrayBuffer { + return ArrayBuffer.prototype.isPrototypeOf(value) +} + +/** + * ArrayBufferView is a helper type representing any of the following JS + * TypedArray types which correspond to the list below. It is checked by duck + * typing the provided object. + */ +export function isArrayBufferView(value: any): value is ArrayBufferView { + return ArrayBuffer.isView(value) +} + +/** + * The DataView view provides a low-level interface for reading and writing + * multiple number types in a binary ArrayBuffer, without having to care about + * the platform's endianness. + */ +export function isDataView(value: any): value is DataView { + return DataView.prototype.isPrototypeOf(value) +} + +/** + * The URLSearchParams interface defines utility methods to work with the + * query string of a URL. + */ +export function isURLSearchParams(value: any): value is URLSearchParams { + return URLSearchParams.prototype.isPrototypeOf(value) +} + +/** + * The Blob object represents a blob, which is a file-like object of immutable, + * raw data; they can be read as text or binary data. Blobs can represent data + * that isn't necessarily in a JavaScript-native format. + */ +export function isBlob(value: any): value is Blob { + return Blob.prototype.isPrototypeOf(value) +} + +/** + * The FormData interface provides a way to easily construct a set of key/value + * pairs representing form fields and their values, which can then be easily + * sent using the XMLHttpRequest.send() method. It uses the same format a + * form would use if the encoding type were set to "multipart/form-data". + */ +export function isFormData(value: any): value is FormData { + return FormData.prototype.isPrototypeOf(value) +} + +/** + * The ReadableStream interface of the Streams API represents a readable stream + * of byte data. Because we want to allow alternative implementations we also + * duck type here. + */ +export function isReadableStream(value: any): value is ReadableStream { + return ( + value && + (ReadableStream.prototype.isPrototypeOf(value) || + (value.constructor.name === 'ReadableStream' && 'getReader' in value)) + ) +} + +/** + * Checks in an object implements an Iterable interface + */ +export function isIterable(object: any): object is Iterable { + return ( + object && + Symbol.iterator in object && + typeof object[Symbol.iterator] === 'function' + ) +} diff --git a/packages/next/server/web/next-url.ts b/packages/next/server/web/next-url.ts new file mode 100644 index 0000000000000..4f30e80ed05bb --- /dev/null +++ b/packages/next/server/web/next-url.ts @@ -0,0 +1,234 @@ +import type { PathLocale } from '../../shared/lib/i18n/normalize-locale-path' +import type { DomainLocale, I18NConfig } from '../config-shared' +import { getLocaleMetadata } from '../../shared/lib/i18n/get-locale-metadata' +import cookie from 'next/dist/compiled/cookie' + +/** + * TODO + * + * - Add comments to the URLNext API. + * - Move internals to be using symbols for its shape. + * - Make sure logging does not show any implementation details. + * - Include in the event payload the nextJS configuration + */ + +interface Options { + basePath?: string + headers?: { [key: string]: string | string[] | undefined } + i18n?: I18NConfig | null + trailingSlash?: boolean +} + +export class NextURL extends URL { + private _basePath: string + private _locale?: { + defaultLocale: string + domain?: DomainLocale + locale: string + path: PathLocale + redirect?: string + trailingSlash?: boolean + } + private _options: Options + private _url: URL + + constructor(url: string, options: Options = {}) { + super(formatRelative(url)) + this._options = options + this._basePath = '' + this._url = formatRelative(url) + this.analyzeUrl() + } + + get absolute() { + return this._url.hostname !== 'localhost' + } + + analyzeUrl() { + const { headers = {}, basePath, i18n } = this._options + + if (basePath && this._url.pathname.startsWith(basePath)) { + this._url.pathname = this._url.pathname.replace(basePath, '') || '/' + this._basePath = basePath + } else { + this._basePath = '' + } + + if (i18n) { + this._locale = getLocaleMetadata({ + cookies: () => { + const value = headers['cookie'] + return value + ? cookie.parse(Array.isArray(value) ? value.join(';') : value) + : {} + }, + headers: headers, + nextConfig: { + basePath: basePath, + i18n: i18n, + }, + url: { + hostname: this._url.hostname || null, + pathname: this._url.pathname, + }, + }) + + if (this._locale?.path.detectedLocale) { + this._url.pathname = this._locale.path.pathname + } + } + } + + formatPathname() { + const { i18n } = this._options + let pathname = this._url.pathname + + if (this._locale?.locale && i18n?.defaultLocale !== this._locale?.locale) { + pathname = `/${this._locale?.locale}${pathname}` + } + + if (this._basePath) { + pathname = `${this._basePath}${pathname}` + } + + return pathname + } + + get locale() { + if (!this._locale) { + throw new TypeError(`The URL is not configured with i18n`) + } + + return this._locale.locale + } + + set locale(locale: string) { + if (!this._locale) { + throw new TypeError(`The URL is not configured with i18n`) + } + + this._locale.locale = locale + } + + get defaultLocale() { + return this._locale?.defaultLocale + } + + get domainLocale() { + return this._locale?.domain + } + + get searchParams() { + return this._url.searchParams + } + + get host() { + return this.absolute ? this._url.host : '' + } + + set host(value: string) { + this._url.host = value + } + + get hostname() { + return this.absolute ? this._url.hostname : '' + } + + set hostname(value: string) { + this._url.hostname = value || 'localhost' + } + + get port() { + return this.absolute ? this._url.port : '' + } + + set port(value: string) { + this._url.port = value + } + + get protocol() { + return this.absolute ? this._url.protocol : '' + } + + set protocol(value: string) { + this._url.protocol = value + } + + get href() { + const pathname = this.formatPathname() + return this.absolute + ? `${this.protocol}//${this.host}${pathname}${this._url.search}` + : `${pathname}${this._url.search}` + } + + set href(url: string) { + this._url = formatRelative(url) + this.analyzeUrl() + } + + get origin() { + return this.absolute ? this._url.origin : '' + } + + get pathname() { + return this._url.pathname + } + + set pathname(value: string) { + this._url.pathname = value + } + + get hash() { + return this._url.hash + } + + set hash(value: string) { + this._url.hash = value + } + + get search() { + return this._url.search + } + + set search(value: string) { + this._url.search = value + } + + get password() { + return this._url.password + } + + set password(value: string) { + this._url.password = value + } + + get username() { + return this._url.username + } + + set username(value: string) { + this._url.username = value + } + + get basePath() { + return this._basePath + } + + set basePath(value: string) { + this._basePath = value.startsWith('/') ? value : `/${value}` + } + + toString() { + return this.href + } + + toJSON() { + return this.href + } +} + +function formatRelative(url: string) { + return url.startsWith('/') + ? new URL(url.replace(/^\/+/, '/'), new URL('https://localhost')) + : new URL(url) +} diff --git a/packages/next/server/web/sandbox/index.ts b/packages/next/server/web/sandbox/index.ts new file mode 100644 index 0000000000000..b3849f7c301f9 --- /dev/null +++ b/packages/next/server/web/sandbox/index.ts @@ -0,0 +1 @@ +export * from './sandbox' diff --git a/packages/next/server/web/sandbox/polyfills.ts b/packages/next/server/web/sandbox/polyfills.ts new file mode 100644 index 0000000000000..2cb92fc626cdc --- /dev/null +++ b/packages/next/server/web/sandbox/polyfills.ts @@ -0,0 +1,120 @@ +import { Crypto as WebCrypto } from 'next/dist/compiled/@peculiar/webcrypto' +import { TransformStream } from 'next/dist/compiled/web-streams-polyfill' +import { v4 as uuid } from 'next/dist/compiled/uuid' +import crypto from 'crypto' + +export function atob(b64Encoded: string) { + return Buffer.from(b64Encoded, 'base64').toString('binary') +} + +export function btoa(str: string) { + return Buffer.from(str, 'binary').toString('base64') +} + +class TextEncoderRuntime { + encoder: TextEncoder + + constructor() { + this.encoder = new TextEncoder() + } + + get encoding() { + return this.encoder.encoding + } + + public encode(input: string) { + return this.encoder.encode(input) + } +} + +class TextDecoderRuntime { + decoder: TextDecoder + + constructor() { + this.decoder = new TextDecoder() + } + + get encoding() { + return this.decoder.encoding + } + + get fatal() { + return this.decoder.fatal + } + + get ignoreBOM() { + return this.decoder.ignoreBOM + } + + public decode(input: BufferSource, options?: TextDecodeOptions) { + return this.decoder.decode(input, options) + } +} + +export { TextDecoderRuntime as TextDecoder } +export { TextEncoderRuntime as TextEncoder } + +export class Crypto extends WebCrypto { + // @ts-ignore Remove once types are updated and we deprecate node 12 + randomUUID = crypto.randomUUID || uuid +} + +export class ReadableStream { + constructor(opts: UnderlyingSource = {}) { + let closed = false + let pullPromise: any + + let transformController: TransformStreamDefaultController + const { readable, writable } = new TransformStream({ + start: (controller: TransformStreamDefaultController) => { + transformController = controller + }, + }) + + const writer = writable.getWriter() + const controller: ReadableStreamController = { + get desiredSize() { + return writer.desiredSize + }, + close: () => { + if (!closed) { + closed = true + writer.close() + } + }, + enqueue: (chunk: T) => { + writer.write(chunk) + pull() + }, + error: (reason: any) => { + transformController.error(reason) + }, + } + + const pull = () => { + if (opts.pull) { + if (!pullPromise) { + pullPromise = Promise.resolve().then(() => { + pullPromise = 0 + opts.pull!(controller) + }) + } + } + } + + if (opts.start) { + opts.start(controller) + } + + if (opts.cancel) { + readable.cancel = (reason: any) => { + opts.cancel!(reason) + return readable.cancel(reason) + } + } + + pull() + + return readable + } +} diff --git a/packages/next/server/web/sandbox/sandbox.ts b/packages/next/server/web/sandbox/sandbox.ts new file mode 100644 index 0000000000000..51b95cb80c409 --- /dev/null +++ b/packages/next/server/web/sandbox/sandbox.ts @@ -0,0 +1,170 @@ +import type { RequestData, FetchEventResult } from '../types' +import { Blob, File, FormData } from 'next/dist/compiled/formdata-node' +import { dirname } from 'path' +import { ReadableStream } from 'next/dist/compiled/web-streams-polyfill' +import { readFileSync } from 'fs' +import { TransformStream } from 'next/dist/compiled/web-streams-polyfill' +import * as polyfills from './polyfills' +import cookie from 'next/dist/compiled/cookie' +import vm from 'vm' + +let cache: + | { + context: { [key: string]: any } + paths: Map + require: Map + sandbox: vm.Context + } + | undefined + +const WEBPACK_HASH_REGEX = + /__webpack_require__\.h = function\(\) \{ return "[0-9a-f]+"; \}/g + +/** + * The cache is cleared when a path is cached and the content has changed. The + * hack ignores changes than only change the compilation hash. Instead it is + * probably better to disable HMR for middleware entries. + */ +export function clearSandboxCache(path: string, content: Buffer | string) { + const prev = cache?.paths.get(path)?.replace(WEBPACK_HASH_REGEX, '') + if (prev === undefined) return + if (prev === content.toString().replace(WEBPACK_HASH_REGEX, '')) return + cache = undefined +} + +export async function run(params: { + name: string + paths: string[] + request: RequestData +}): Promise { + if (cache === undefined) { + const context: { [key: string]: any } = { + _ENTRIES: {}, + atob: polyfills.atob, + Blob, + btoa: polyfills.btoa, + clearInterval, + clearTimeout, + console: { + assert: console.assert.bind(console), + error: console.error.bind(console), + info: console.info.bind(console), + log: console.log.bind(console), + time: console.time.bind(console), + timeEnd: console.timeEnd.bind(console), + timeLog: console.timeLog.bind(console), + warn: console.warn.bind(console), + }, + Crypto: polyfills.Crypto, + crypto: new polyfills.Crypto(), + fetch, + File, + FormData, + process: { env: { ...process.env } }, + ReadableStream, + setInterval, + setTimeout, + TextDecoder: polyfills.TextDecoder, + TextEncoder: polyfills.TextEncoder, + TransformStream, + URL, + URLSearchParams, + } + + context.self = context + + cache = { + context, + require: new Map([ + [require.resolve('next/dist/compiled/cookie'), { exports: cookie }], + ]), + paths: new Map(), + sandbox: vm.createContext(context), + } + + loadDependencies(cache.sandbox, [ + { + path: require.resolve('../spec-compliant/headers'), + map: { Headers: 'Headers' }, + }, + { + path: require.resolve('../spec-compliant/response'), + map: { Response: 'Response' }, + }, + { + path: require.resolve('../spec-compliant/request'), + map: { Request: 'Request' }, + }, + ]) + } + + for (const paramPath of params.paths) { + if (!cache.paths.has(paramPath)) { + const content = readFileSync(paramPath, 'utf-8') + try { + vm.runInNewContext(content, cache.sandbox, { + filename: paramPath, + }) + cache.paths.set(paramPath, content) + } catch (error) { + cache = undefined + throw error + } + } + } + + const entryPoint = cache.context._ENTRIES[`middleware_${params.name}`] + return entryPoint.default({ request: params.request }) +} + +function loadDependencies( + ctx: vm.Context, + dependencies: { path: string; map: { [key: string]: string } }[] +) { + for (const { path, map } of dependencies) { + const mod = sandboxRequire(path, path) + for (const mapKey of Object.keys(map)) { + ctx[map[mapKey]] = mod[mapKey] + } + } +} + +function sandboxRequire(referrer: string, specifier: string) { + const resolved = require.resolve(specifier, { + paths: [dirname(referrer)], + }) + + const cached = cache?.require.get(resolved) + if (cached !== undefined) { + return cached.exports + } + + const module = { + exports: {}, + loaded: false, + id: resolved, + } + + cache?.require.set(resolved, module) + const fn = vm.runInContext( + `(function(module,exports,require,__dirname,__filename) {${readFileSync( + resolved, + 'utf-8' + )}\n})`, + cache!.sandbox + ) + + try { + fn( + module, + module.exports, + sandboxRequire.bind(null, resolved), + dirname(resolved), + resolved + ) + } finally { + cache?.require.delete(resolved) + } + module.loaded = true + return module.exports +} diff --git a/packages/next/server/web/spec-compliant/body.ts b/packages/next/server/web/spec-compliant/body.ts new file mode 100644 index 0000000000000..c8dd2b44e62d2 --- /dev/null +++ b/packages/next/server/web/spec-compliant/body.ts @@ -0,0 +1,235 @@ +import { formDataIterator, getBoundary } from '../form-data' +import { streamToIterator } from '../utils' +import * as util from '../is' + +const INTERNALS = Symbol('internal body') + +abstract class BaseBody implements Body { + abstract headers: Headers + + [INTERNALS]: { + bodyInit?: BodyInit + boundary?: string + disturbed: boolean + stream?: ReadableStream | null + } + + constructor(bodyInit?: BodyInit) { + this[INTERNALS] = { + bodyInit: bodyInit, + disturbed: false, + } + + if (util.isFormData(bodyInit)) { + this[INTERNALS].boundary = getBoundary() + } + } + + get body(): ReadableStream | null { + const body = this[INTERNALS].bodyInit + if (!body) { + return null + } + + const that = this + if (!this[INTERNALS].stream) { + const readable = new ReadableStream({ + async start(controller) { + if (typeof body === 'string') { + const encoder = new TextEncoder() + controller.enqueue(encoder.encode(body)) + } else if (util.isBlob(body)) { + const buffer = await body.arrayBuffer() + controller.enqueue(new Uint8Array(buffer)) + } else if (util.isDataView(body)) { + controller.enqueue(body) + } else if (util.isArrayBuffer(body)) { + controller.enqueue(body) + } else if (util.isArrayBufferView(body)) { + controller.enqueue(body) + } else if (util.isURLSearchParams(body)) { + const encoder = new TextEncoder() + controller.enqueue(encoder.encode(body.toString())) + } else if (util.isFormData(body)) { + for await (const chunk of formDataIterator( + body, + that[INTERNALS].boundary! + )) { + controller.enqueue(chunk) + } + } else if (util.isReadableStream(body)) { + for await (const chunk of streamToIterator(body)) { + if (chunk.length) { + controller.enqueue(chunk) + } + } + } else { + const text = Object.prototype.toString.call(body) + const encoder = new TextEncoder() + controller.enqueue(encoder.encode(text)) + } + + controller.close() + }, + }) + + // Spy on reading chunks to set the stream as disturbed + const getReader = readable.getReader.bind(readable) + readable.getReader = () => { + const reader = getReader() + const read = reader.read.bind(reader) + reader.read = () => { + this[INTERNALS].disturbed = true + return read() + } + return reader + } + + this[INTERNALS].stream = readable + } + + return this[INTERNALS].stream! + } + + get bodyUsed(): boolean { + return this[INTERNALS].disturbed + } + + _consume() { + if (this[INTERNALS].disturbed) { + return Promise.reject( + new TypeError( + `Body has already been used. It can only be used once. Use tee() first if you need to read it twice.` + ) + ) + } + + this[INTERNALS].disturbed = true + const body = this.body + return new Promise((resolve, reject) => { + let buffer = new Uint8Array(0) + if (!body) { + return resolve(buffer) + } + + const reader = body.getReader() + ;(function pump() { + reader.read().then(({ value, done }) => { + if (done) { + return resolve(buffer) + } else if (value) { + const merge = new Uint8Array(buffer.length + value.length) + merge.set(buffer) + merge.set(value, buffer.length) + buffer = merge + } + + pump() + }, reject) + })() + }) + } + + async arrayBuffer() { + const buffer = await this._consume() + const arrayBuffer = new ArrayBuffer(buffer.length) + const view = new Uint8Array(arrayBuffer) + + for (let i = 0; i < buffer.length; ++i) { + view[i] = buffer[i] + } + + return arrayBuffer + } + + async blob() { + const buffer = await this._consume() + return new Blob([buffer]) + } + + async formData() { + const bodyInit = this[INTERNALS].bodyInit + if (util.isURLSearchParams(bodyInit)) { + const form = new FormData() + for (const [key, value] of bodyInit) { + form.append(key, value) + } + return form + } else if (util.isFormData(bodyInit)) { + return bodyInit + } else { + throw new TypeError( + `Unrecognized Content-Type header value. FormData can only parse the following MIME types: multipart/form-data, application/x-www-form-urlencoded.` + ) + } + } + + async text() { + const decoder = new TextDecoder() + const buffer = await this._consume() + return decoder.decode(buffer) + } + + async json() { + const text = await this.text() + + try { + return JSON.parse(text) + } catch (err: any) { + throw new TypeError(`invalid json body reason: ${err.message}`) + } + } +} + +export { BaseBody as Body } + +export type BodyInit = + | null + | string + | Blob + | BufferSource + | FormData + | URLSearchParams + | ReadableStream + +export function extractContentType(instance: BaseBody) { + const body = instance[INTERNALS].bodyInit + if (typeof body === 'string') { + return 'text/plain;charset=UTF-8' + } else if (util.isBlob(body)) { + return body.type + } else if (util.isDataView(body)) { + return null + } else if (util.isArrayBuffer(body)) { + return null + } else if (util.isArrayBufferView(body)) { + return null + } else if (util.isURLSearchParams(body)) { + return 'application/x-www-form-urlencoded;charset=UTF-8' + } else if (util.isFormData(body)) { + return `multipart/form-data;boundary=${instance[INTERNALS].boundary}` + } else if (util.isReadableStream(body)) { + return null + } else { + return 'text/plain;charset=UTF-8' + } +} + +export function cloneBody(instance: BaseBody) { + if (instance.bodyUsed) { + throw new Error('cannot clone body after it is used') + } + + const body = instance[INTERNALS].bodyInit + if (util.isReadableStream(body)) { + const [r1, r2] = body.tee() + instance[INTERNALS].bodyInit = r1 + return r2 + } + + return body || null +} + +export function getInstanceBody(instance: BaseBody) { + return instance[INTERNALS].bodyInit +} diff --git a/packages/next/server/web/spec-compliant/fetch-event.ts b/packages/next/server/web/spec-compliant/fetch-event.ts new file mode 100644 index 0000000000000..c410d39736e9f --- /dev/null +++ b/packages/next/server/web/spec-compliant/fetch-event.ts @@ -0,0 +1,28 @@ +export const responseSymbol = Symbol('response') +export const passThroughSymbol = Symbol('passThrough') +export const waitUntilSymbol = Symbol('waitUntil') + +export class FetchEvent { + readonly request: Request; + readonly [waitUntilSymbol]: Promise[] = []; + [responseSymbol]?: Promise; + [passThroughSymbol] = false + + constructor(request: Request) { + this.request = request + } + + respondWith(response: Response | Promise): void { + if (!this[responseSymbol]) { + this[responseSymbol] = Promise.resolve(response) + } + } + + passThroughOnException(): void { + this[passThroughSymbol] = true + } + + waitUntil(promise: Promise): void { + this[waitUntilSymbol].push(promise) + } +} diff --git a/packages/next/server/web/spec-compliant/headers.ts b/packages/next/server/web/spec-compliant/headers.ts new file mode 100644 index 0000000000000..c685c1bab2f54 --- /dev/null +++ b/packages/next/server/web/spec-compliant/headers.ts @@ -0,0 +1,239 @@ +import { isIterable } from '../is' + +export type HeadersInit = Headers | string[][] | { [key: string]: string } + +const MAP = Symbol('map') +const INTERNAL = Symbol('internal') +const INVALID_TOKEN_REGEX = /[^^_`a-zA-Z\-0-9!#$%&'*+.|~]/ +const INVALID_HEADER_CHAR_REGEX = /[^\t\x20-\x7e\x80-\xff]/ + +class BaseHeaders implements Headers { + [MAP]: { [k: string]: string[] } = {} + + constructor(init?: HeadersInit) { + if (init instanceof BaseHeaders) { + const rawHeaders = init.raw() + for (const headerName of Object.keys(rawHeaders)) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value) + } + } + } else if (isIterable(init)) { + const pairs = [] + for (const pair of init) { + if (!isIterable(pair)) { + throw new TypeError('Each header pair must be iterable') + } + pairs.push(Array.from(pair)) + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple') + } + this.append(pair[0], pair[1]) + } + } else if (typeof init === 'object') { + for (const key of Object.keys(init)) { + this.append(key, init[key]) + } + } else if (init) { + throw new TypeError('Provided initializer must be an object') + } + } + + get(name: string) { + const _name = `${name}` + validateName(_name) + const key = find(this[MAP], _name) + if (key === undefined) { + return null + } + + return this[MAP][key].join(', ') + } + + forEach( + callback: (value: string, name: string, parent: BaseHeaders) => void, + thisArg: any = undefined + ): void { + let pairs = getHeaders(this) + let i = 0 + while (i < pairs.length) { + const [name, value] = pairs[i] + callback.call(thisArg, value, name, this) + pairs = getHeaders(this) + i++ + } + } + + set(name: string, value: string) { + name = `${name}` + value = `${value}` + validateName(name) + validateValue(value) + const key = find(this[MAP], name) + this[MAP][key !== undefined ? key : name] = [value] + } + + append(name: string, value: string) { + name = `${name}` + value = `${value}` + validateName(name) + validateValue(value) + const key = find(this[MAP], name) + if (key !== undefined) { + this[MAP][key].push(value) + } else { + this[MAP][name] = [value] + } + } + + has(name: string) { + name = `${name}` + validateName(name) + return find(this[MAP], name) !== undefined + } + + delete(name: string) { + name = `${name}` + validateName(name) + const key = find(this[MAP], name) + if (key !== undefined) { + delete this[MAP][key] + } + } + + raw() { + return this[MAP] + } + + keys() { + return createHeadersIterator(this, 'key') + } + + values() { + return createHeadersIterator(this, 'value') + } + + entries() { + return createHeadersIterator(this, 'key+value') + } + + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value') + } +} + +function createHeadersIterator( + target: BaseHeaders, + kind: 'key' | 'value' | 'key+value' +) { + const iterator = Object.create(HeadersIteratorPrototype) + iterator[INTERNAL] = { + target, + kind, + index: 0, + } + return iterator +} + +function validateName(name: string) { + name = `${name}` + if (INVALID_TOKEN_REGEX.test(name)) { + throw new TypeError(`${name} is not a legal HTTP header name`) + } +} + +function validateValue(value: string) { + value = `${value}` + if (INVALID_HEADER_CHAR_REGEX.test(value)) { + throw new TypeError(`${value} is not a legal HTTP header value`) + } +} + +function find( + map: { [k: string]: string[] }, + name: string +): string | undefined { + name = name.toLowerCase() + for (const key in map) { + if (key.toLowerCase() === name) { + return key + } + } + return undefined +} + +Object.defineProperty(BaseHeaders.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true, +}) + +Object.defineProperties(BaseHeaders.prototype, { + append: { enumerable: true }, + delete: { enumerable: true }, + entries: { enumerable: true }, + forEach: { enumerable: true }, + get: { enumerable: true }, + has: { enumerable: true }, + keys: { enumerable: true }, + raw: { enumerable: false }, + set: { enumerable: true }, + values: { enumerable: true }, +}) + +function getHeaders( + headers: BaseHeaders, + kind: 'key' | 'value' | 'key+value' = 'key+value' +) { + const fn = + kind === 'key' + ? (key: string) => key.toLowerCase() + : kind === 'value' + ? (key: string) => headers[MAP][key].join(', ') + : (key: string) => [key.toLowerCase(), headers[MAP][key].join(', ')] + + return Object.keys(headers[MAP]) + .sort() + .map((key) => fn(key)) +} + +const HeadersIteratorPrototype = Object.setPrototypeOf( + { + next() { + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator') + } + + const { target, kind, index } = this[INTERNAL] + const values = getHeaders(target, kind) + const len = values.length + if (index >= len) { + return { + value: undefined, + done: true, + } + } + + this[INTERNAL].index = index + 1 + + return { + value: values[index], + done: false, + } + }, + }, + Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())) +) + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true, +}) + +export { BaseHeaders as Headers } diff --git a/packages/next/server/web/spec-compliant/request.ts b/packages/next/server/web/spec-compliant/request.ts new file mode 100644 index 0000000000000..a06b5c0f3b8b7 --- /dev/null +++ b/packages/next/server/web/spec-compliant/request.ts @@ -0,0 +1,124 @@ +import { Body, cloneBody, extractContentType, getInstanceBody } from './body' +import { Headers as BaseHeaders } from './headers' +import { NextURL } from '../next-url' +import { notImplemented } from '../utils' + +export const INTERNALS = Symbol('internal request') + +class BaseRequest extends Body implements Request { + [INTERNALS]: { + credentials: RequestCredentials + headers: Headers + method: string + redirect: RequestRedirect + url: NextURL + } + + constructor(input: BaseRequest | string, init: RequestInit = {}) { + const method = init.method?.toUpperCase() ?? 'GET' + + if ( + (method === 'GET' || method === 'HEAD') && + (init.body || (input instanceof BaseRequest && getInstanceBody(input))) + ) { + throw new TypeError('Request with GET/HEAD method cannot have body') + } + + let inputBody: BodyInit | null = null + if (init.body) { + inputBody = init.body + } else if (input instanceof BaseRequest && getInstanceBody(input)) { + inputBody = cloneBody(input) + } + + super(inputBody) + + const headers = new BaseHeaders( + init.headers || getProp(input, 'headers') || {} + ) + if (inputBody !== null) { + const contentType = extractContentType(this) + if (contentType !== null && !headers.has('Content-Type')) { + headers.append('Content-Type', contentType) + } + } + + this[INTERNALS] = { + credentials: + init.credentials || getProp(input, 'credentials') || 'same-origin', + headers, + method, + redirect: init.redirect || getProp(input, 'redirect') || 'follow', + url: new NextURL(typeof input === 'string' ? input : input.url), + } + } + + get url() { + return this[INTERNALS].url.toString() + } + + get credentials() { + return this[INTERNALS].credentials + } + + get method() { + return this[INTERNALS].method + } + + get headers() { + return this[INTERNALS].headers + } + + get redirect() { + return this[INTERNALS].redirect + } + + public clone() { + return new BaseRequest(this) + } + + get cache() { + return notImplemented('Request', 'cache') + } + + get integrity() { + return notImplemented('Request', 'integrity') + } + + get keepalive() { + return notImplemented('Request', 'keepalive') + } + + get mode() { + return notImplemented('Request', 'mode') + } + + get destination() { + return notImplemented('Request', 'destination') + } + + get referrer() { + return notImplemented('Request', 'referrer') + } + + get referrerPolicy() { + return notImplemented('Request', 'referrerPolicy') + } + + get signal() { + return notImplemented('Request', 'signal') + } + + get [Symbol.toStringTag]() { + return 'Request' + } +} + +export { BaseRequest as Request } + +function getProp( + input: BaseRequest | string, + key: K +): BaseRequest[K] | undefined { + return input instanceof BaseRequest ? input[key] : undefined +} diff --git a/packages/next/server/web/spec-compliant/response.ts b/packages/next/server/web/spec-compliant/response.ts new file mode 100644 index 0000000000000..23be2f7318675 --- /dev/null +++ b/packages/next/server/web/spec-compliant/response.ts @@ -0,0 +1,113 @@ +import { Body, BodyInit, cloneBody, extractContentType } from './body' +import { NextURL } from '../next-url' + +const INTERNALS = Symbol('internal response') +const REDIRECTS = new Set([301, 302, 303, 307, 308]) + +class BaseResponse extends Body implements Response { + [INTERNALS]: { + headers: Headers + status: number + statusText: string + type: 'default' | 'error' + url?: NextURL + } + + constructor(body?: BodyInit | null, init?: ResponseInit) { + super(body) + + this[INTERNALS] = { + headers: new Headers(init?.headers), + status: init?.status || 200, + statusText: init?.statusText || '', + type: 'default', + url: init?.url ? new NextURL(init.url) : undefined, + } + + if (this[INTERNALS].status < 200 || this[INTERNALS].status > 599) { + throw new RangeError( + `Responses may only be constructed with status codes in the range 200 to 599, inclusive.` + ) + } + + if (body !== null && !this[INTERNALS].headers.has('Content-Type')) { + const contentType = extractContentType(this) + if (contentType) { + this[INTERNALS].headers.append('Content-Type', contentType) + } + } + } + + static redirect(url: string, status = 302) { + if (!REDIRECTS.has(status)) { + throw new RangeError( + 'Failed to execute "redirect" on "response": Invalid status code' + ) + } + + return new Response(null, { + headers: { Location: url }, + status, + }) + } + + static error() { + const response = new BaseResponse(null, { status: 0, statusText: '' }) + response[INTERNALS].type = 'error' + return response + } + + get url() { + return this[INTERNALS].url?.toString() || '' + } + + get ok() { + return this[INTERNALS].status >= 200 && this[INTERNALS].status < 300 + } + + get status() { + return this[INTERNALS].status + } + + get statusText() { + return this[INTERNALS].statusText + } + + get headers() { + return this[INTERNALS].headers + } + + get redirected() { + return ( + this[INTERNALS].status > 299 && + this[INTERNALS].status < 400 && + this[INTERNALS].headers.has('Location') + ) + } + + get type() { + return this[INTERNALS].type + } + + clone() { + return new BaseResponse(cloneBody(this), { + headers: this.headers, + status: this.status, + statusText: this.statusText, + url: this.url, + }) + } + + get [Symbol.toStringTag]() { + return 'Response' + } +} + +export interface ResponseInit { + headers?: HeadersInit + status?: number + statusText?: string + url?: string +} + +export { BaseResponse as Response } diff --git a/packages/next/server/web/spec-extension/fetch-event.ts b/packages/next/server/web/spec-extension/fetch-event.ts new file mode 100644 index 0000000000000..09613d33da539 --- /dev/null +++ b/packages/next/server/web/spec-extension/fetch-event.ts @@ -0,0 +1,10 @@ +import { FetchEvent } from '../spec-compliant/fetch-event' +import { NextRequest } from './request' + +export class NextFetchEvent extends FetchEvent { + readonly request: NextRequest + constructor(request: NextRequest) { + super(request) + this.request = request + } +} diff --git a/packages/next/server/web/spec-extension/request.ts b/packages/next/server/web/spec-extension/request.ts new file mode 100644 index 0000000000000..2a8e80f1b06f7 --- /dev/null +++ b/packages/next/server/web/spec-extension/request.ts @@ -0,0 +1,114 @@ +import type { I18NConfig } from '../../config-shared' +import type { IResult } from 'next/dist/compiled/ua-parser-js' +import { NextURL } from '../next-url' +import { isBot } from '../../utils' +import { toNodeHeaders } from '../utils' +import cookie from 'next/dist/compiled/cookie' +import parseua from 'next/dist/compiled/ua-parser-js' + +export const INTERNALS = Symbol('internal request') + +export class NextRequest extends Request { + [INTERNALS]: { + cookieParser(): { [key: string]: string } + geo: { city?: string; country?: string; region?: string } + ip?: string + page?: { name?: string; params?: { [key: string]: string } } + ua?: UserAgent | null + url: NextURL + } + + constructor(input: Request | string, init: RequestInit = {}) { + super(input, init) + + const cookieParser = () => { + const value = this.headers.get('cookie') + return value ? cookie.parse(value) : {} + } + + this[INTERNALS] = { + cookieParser, + geo: init.geo || {}, + ip: init.ip, + page: init.page, + url: new NextURL(typeof input === 'string' ? input : input.url, { + basePath: init.nextConfig?.basePath, + headers: toNodeHeaders(this.headers), + i18n: init.nextConfig?.i18n, + trailingSlash: init.nextConfig?.trailingSlash, + }), + } + } + + public get cookies() { + return this[INTERNALS].cookieParser() + } + + public get geo() { + return this[INTERNALS].geo + } + + public get ip() { + return this[INTERNALS].ip + } + + public get preflight() { + return this.headers.get('x-middleware-preflight') + } + + public get nextUrl() { + return this[INTERNALS].url + } + + public get page() { + return { + name: this[INTERNALS].page?.name, + params: this[INTERNALS].page?.params, + } + } + + 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 + } + + public get url() { + return this[INTERNALS].url.toString() + } +} + +interface RequestInit extends globalThis.RequestInit { + geo?: { + city?: string + country?: string + region?: string + } + ip?: string + nextConfig?: { + basePath?: string + i18n?: I18NConfig | null + trailingSlash?: boolean + } + page?: { + name?: string + params?: { [key: string]: string } + } +} + +interface UserAgent extends IResult { + isBot: boolean +} diff --git a/packages/next/server/web/spec-extension/response.ts b/packages/next/server/web/spec-extension/response.ts new file mode 100644 index 0000000000000..dabf3827d4ef2 --- /dev/null +++ b/packages/next/server/web/spec-extension/response.ts @@ -0,0 +1,106 @@ +import type { I18NConfig } from '../../config-shared' +import type { CookieSerializeOptions } from 'next/dist/compiled/cookie' +import { NextURL } from '../next-url' +import { toNodeHeaders } from '../utils' +import cookie from 'next/dist/compiled/cookie' + +const INTERNALS = Symbol('internal response') +const REDIRECTS = new Set([301, 302, 303, 307, 308]) + +export class NextResponse extends Response { + [INTERNALS]: { + cookieParser(): { [key: string]: string } + url?: NextURL + } + + constructor(body?: BodyInit | null, init: ResponseInit = {}) { + super(body, init) + + const cookieParser = () => { + const value = this.headers.get('cookie') + return value ? cookie.parse(value) : {} + } + + this[INTERNALS] = { + cookieParser, + url: init.url + ? new NextURL(init.url, { + basePath: init.nextConfig?.basePath, + i18n: init.nextConfig?.i18n, + trailingSlash: init.nextConfig?.trailingSlash, + headers: toNodeHeaders(this.headers), + }) + : undefined, + } + } + + public get cookies() { + return this[INTERNALS].cookieParser() + } + + public cookie( + name: string, + value: { [key: string]: any } | string, + opts: CookieSerializeOptions = {} + ) { + const val = + typeof value === 'object' ? 'j:' + JSON.stringify(value) : String(value) + + if (opts.maxAge) { + opts.expires = new Date(Date.now() + opts.maxAge) + opts.maxAge /= 1000 + } + + if (opts.path == null) { + opts.path = '/' + } + + this.headers.append('Set-Cookie', cookie.serialize(name, String(val), opts)) + return this + } + + public clearCookie(name: string, opts: CookieSerializeOptions = {}) { + return this.cookie(name, '', { expires: new Date(1), path: '/', ...opts }) + } + + static redirect(url: string | NextURL, status = 302) { + if (!REDIRECTS.has(status)) { + throw new RangeError( + 'Failed to execute "redirect" on "response": Invalid status code' + ) + } + + return new NextResponse(null, { + headers: { Location: typeof url === 'string' ? url : url.toString() }, + status, + }) + } + + static rewrite(destination: string | NextURL) { + return new NextResponse(null, { + headers: { + 'x-middleware-rewrite': + typeof destination === 'string' + ? destination + : destination.toString(), + }, + }) + } + + static next() { + return new NextResponse(null, { + headers: { + 'x-middleware-next': '1', + }, + }) + } +} + +interface ResponseInit extends globalThis.ResponseInit { + nextConfig?: { + basePath?: string + i18n?: I18NConfig + trailingSlash?: boolean + } + url?: string +} diff --git a/packages/next/server/web/types.ts b/packages/next/server/web/types.ts new file mode 100644 index 0000000000000..b6f04fe5d4f7e --- /dev/null +++ b/packages/next/server/web/types.ts @@ -0,0 +1,32 @@ +import type { I18NConfig } from '../config-shared' + +export interface NodeHeaders { + [header: string]: string | string[] | undefined +} + +export interface RequestData { + geo?: { + city?: string + country?: string + region?: string + } + headers: NodeHeaders + ip?: string + method: string + nextConfig?: { + basePath?: string + i18n?: I18NConfig | null + trailingSlash?: boolean + } + page?: { + name?: string + params?: { [key: string]: string } + } + url: string +} + +export interface FetchEventResult { + promise: Promise + response: Response + waitUntil: Promise +} diff --git a/packages/next/server/web/utils.ts b/packages/next/server/web/utils.ts new file mode 100644 index 0000000000000..3f2b8cb989403 --- /dev/null +++ b/packages/next/server/web/utils.ts @@ -0,0 +1,44 @@ +import type { NodeHeaders } from './types' + +export async function* streamToIterator( + readable: ReadableStream +): AsyncIterableIterator { + const reader = readable.getReader() + while (true) { + const { value, done } = await reader.read() + if (done) break + if (value) { + yield value + } + } + reader.releaseLock() +} + +export function notImplemented(name: string, method: string): any { + throw new Error( + `Failed to get the '${method}' property on '${name}': the property is not implemented` + ) +} + +export function fromNodeHeaders(object: NodeHeaders) { + const headers: { [k: string]: string } = {} + for (let headerKey in object) { + const headerValue = object[headerKey] + if (Array.isArray(headerValue)) { + headers[headerKey] = headerValue.join('; ') + } else if (headerValue) { + headers[headerKey] = String(headerValue) + } + } + return headers +} + +export function toNodeHeaders(headers?: Headers): NodeHeaders { + const object: NodeHeaders = {} + if (headers) { + for (const [key, value] of headers.entries()) { + object[key] = value.includes(';') ? value.split(';') : value + } + } + return object +} diff --git a/packages/next/shared/lib/constants.ts b/packages/next/shared/lib/constants.ts index 6a1cad60f7aad..281ce7539fa6a 100644 --- a/packages/next/shared/lib/constants.ts +++ b/packages/next/shared/lib/constants.ts @@ -11,6 +11,8 @@ export const ROUTES_MANIFEST = 'routes-manifest.json' export const IMAGES_MANIFEST = 'images-manifest.json' export const SERVER_FILES_MANIFEST = 'required-server-files.json' export const DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json' +export const MIDDLEWARE_MANIFEST = 'middleware-manifest.json' +export const DEV_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json' export const REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json' export const FONT_MANIFEST = 'font-manifest.json' export const SERVER_DIRECTORY = 'server' diff --git a/packages/next/shared/lib/i18n/get-locale-metadata.ts b/packages/next/shared/lib/i18n/get-locale-metadata.ts index bf9caa43307c8..c2f1e3d99d53d 100644 --- a/packages/next/shared/lib/i18n/get-locale-metadata.ts +++ b/packages/next/shared/lib/i18n/get-locale-metadata.ts @@ -1,4 +1,4 @@ -import accept from '@hapi/accept' +import { acceptLanguage } from '../../../server/accept-header' import { denormalizePagePath } from '../../../server/denormalize-page-path' import { detectDomainLocale } from './detect-domain-locale' import { formatUrl } from '../router/utils/format-url' @@ -63,7 +63,7 @@ function getAcceptPreferredLocale( const value = headers?.['accept-language'] if (i18n.localeDetection !== false && value && !Array.isArray(value)) { try { - return accept.language(value, i18n.locales) + return acceptLanguage(value, i18n.locales) } catch (err) {} } } diff --git a/packages/next/shared/lib/router/router.ts b/packages/next/shared/lib/router/router.ts index b45328ff617b5..10251f1b54258 100644 --- a/packages/next/shared/lib/router/router.ts +++ b/packages/next/shared/lib/router/router.ts @@ -35,6 +35,7 @@ import { searchParamsToUrlQuery } from './utils/querystring' import resolveRewrites from './utils/resolve-rewrites' import { getRouteMatcher } from './utils/route-matcher' import { getRouteRegex } from './utils/route-regex' +import { getMiddlewareRegex } from './utils/get-middleware-regex' declare global { interface Window { @@ -59,6 +60,35 @@ interface NextHistoryState { options: TransitionOptions } +interface PreflightData { + redirect?: string | null + refresh?: boolean + rewrite?: string | null +} + +type PreflightEffect = + | { + asPath: string + matchedPage?: boolean + parsedAs: ReturnType + resolvedHref: string + type: 'rewrite' + } + | { + destination?: undefined + newAs: string + newUrl: string + type: 'redirect' + } + | { + destination: string + newAs?: undefined + newUrl?: undefined + type: 'redirect' + } + | { type: 'refresh' } + | { type: 'next' } + type HistoryState = | null | { __N: false } @@ -541,6 +571,8 @@ export default class Router implements BaseRouter { sdc: { [asPath: string]: object } = {} // In-flight Server Data Requests, for deduping sdr: { [asPath: string]: Promise } = {} + // In-flight middleware preflight requests + sde: { [asPath: string]: object } = {} sub: Subscription clc: ComponentLoadCancel @@ -984,8 +1016,11 @@ export default class Router implements BaseRouter { // when rewritten to let pages: any, rewrites: any try { - pages = await this.pageLoader.getPageList() - ;({ __rewrites: rewrites } = await getClientBuildManifest()) + ;[pages, { __rewrites: rewrites }] = await Promise.all([ + this.pageLoader.getPageList(), + getClientBuildManifest(), + this.pageLoader.getMiddlewareList(), + ]) } catch (err) { // If we fail to resolve the page list or client-build manifest, we must // do a server-side transition: @@ -1045,8 +1080,6 @@ export default class Router implements BaseRouter { } } - const route = removePathTrailingSlash(pathname) - if (!isLocalURL(as)) { if (process.env.NODE_ENV !== 'production') { throw new Error( @@ -1061,6 +1094,32 @@ export default class Router implements BaseRouter { resolvedAs = delLocale(delBasePath(resolvedAs), this.locale) + const effect = await this._preflightRequest({ + as, + cache: process.env.NODE_ENV === 'production', + pages, + pathname, + query, + }) + + if (effect.type === 'rewrite') { + query = { ...query, ...effect.parsedAs.query } + resolvedAs = effect.asPath + pathname = effect.resolvedHref + parsed.pathname = effect.resolvedHref + url = formatWithValidation(parsed) + } else if (effect.type === 'redirect' && effect.newAs) { + return this.change(method, effect.newUrl, effect.newAs, options) + } else if (effect.type === 'redirect' && effect.destination) { + window.location.href = effect.destination + return new Promise(() => {}) + } else if (effect.type === 'refresh') { + window.location.href = as + return new Promise(() => {}) + } + + const route = removePathTrailingSlash(pathname) + if (isDynamicRoute(route)) { const parsedAs = parseRelativeUrl(resolvedAs) const asPathname = parsedAs.pathname @@ -1526,7 +1585,7 @@ export default class Router implements BaseRouter { ): Promise { let parsed = parseRelativeUrl(url) - let { pathname } = parsed + let { pathname, query } = parsed if (process.env.__NEXT_I18N_SUPPORT) { if (options.locale === false) { @@ -1578,13 +1637,30 @@ export default class Router implements BaseRouter { url = formatWithValidation(parsed) } } - const route = removePathTrailingSlash(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries if (process.env.NODE_ENV !== 'production') { return } + const effects = await this._preflightRequest({ + as: asPath, + cache: true, + pages, + pathname, + query, + }) + + if (effects.type === 'rewrite') { + parsed.pathname = effects.resolvedHref + pathname = effects.resolvedHref + query = { ...query, ...effects.parsedAs.query } + resolvedAs = effects.asPath + url = formatWithValidation(parsed) + } + + const route = removePathTrailingSlash(pathname) + await Promise.all([ this.pageLoader._isSsg(route).then((isSsg: boolean) => { return isSsg @@ -1658,6 +1734,156 @@ export default class Router implements BaseRouter { }) } + async _preflightRequest(options: { + as: string + cache?: boolean + pages: string[] + pathname: string + query: ParsedUrlQuery + }): Promise { + const cleanedAs = delLocale( + hasBasePath(options.as) ? delBasePath(options.as) : options.as, + this.locale + ) + + const fns: string[] = await this.pageLoader.getMiddlewareList() + const requiresPreflight = fns.some((middleware) => { + return getRouteMatcher(getMiddlewareRegex(middleware))(cleanedAs) + }) + + if (!requiresPreflight) { + return { type: 'next' } + } + + const preflight = await this._getPreflightData({ + preflightHref: options.as, + shouldCache: options.cache, + }) + + if (preflight.rewrite?.startsWith('/')) { + const parsed = parseRelativeUrl( + normalizeLocalePath( + hasBasePath(preflight.rewrite) + ? delBasePath(preflight.rewrite) + : preflight.rewrite, + this.locales + ).pathname + ) + + const fsPathname = removePathTrailingSlash(parsed.pathname) + + let matchedPage + let resolvedHref + + if (options.pages.includes(fsPathname)) { + matchedPage = true + resolvedHref = fsPathname + } else { + resolvedHref = resolveDynamicRoute(fsPathname, options.pages) + + if ( + resolvedHref !== parsed.pathname && + options.pages.includes(resolvedHref) + ) { + matchedPage = true + } + } + + return { + type: 'rewrite', + asPath: parsed.pathname, + parsedAs: parsed, + matchedPage, + resolvedHref, + } + } + + if (preflight.redirect) { + if (preflight.redirect.startsWith('/')) { + const cleanRedirect = removePathTrailingSlash( + normalizeLocalePath( + hasBasePath(preflight.redirect) + ? delBasePath(preflight.redirect) + : preflight.redirect, + this.locales + ).pathname + ) + + const { url: newUrl, as: newAs } = prepareUrlAs( + this, + cleanRedirect, + cleanRedirect + ) + + return { + type: 'redirect', + newUrl, + newAs, + } + } + + return { + type: 'redirect', + destination: preflight.redirect, + } + } + + if (preflight.refresh) { + return { + type: 'refresh', + } + } + + return { + type: 'next', + } + } + + _getPreflightData(params: { + preflightHref: string + shouldCache?: boolean + }): Promise { + const { preflightHref, shouldCache = false } = params + const { href: cacheKey } = new URL(preflightHref, window.location.href) + + if ( + process.env.NODE_ENV === 'production' && + !this.isPreview && + shouldCache && + this.sde[cacheKey] + ) { + return Promise.resolve(this.sde[cacheKey]) + } + + return fetch(preflightHref, { + method: 'HEAD', + credentials: 'same-origin', + headers: { 'x-middleware-preflight': '1' }, + }) + .then((res) => { + if (!res.ok) { + throw new Error(`Failed to preflight request`) + } + + return { + redirect: res.headers.get('Location'), + refresh: res.headers.has('x-middleware-refresh'), + rewrite: res.headers.get('x-middleware-rewrite'), + } + }) + .then((data) => { + if (shouldCache) { + this.sde[cacheKey] = data + } + + return data + }) + .catch((err) => { + delete this.sde[cacheKey] + throw err + }) + } + _getStaticData(dataHref: string): Promise { const { href: cacheKey } = new URL(dataHref, window.location.href) if ( diff --git a/packages/next/shared/lib/router/utils/get-middleware-regex.ts b/packages/next/shared/lib/router/utils/get-middleware-regex.ts new file mode 100644 index 0000000000000..d41dfa6eff8af --- /dev/null +++ b/packages/next/shared/lib/router/utils/get-middleware-regex.ts @@ -0,0 +1,34 @@ +import { getParametrizedRoute, RouteRegex } from './route-regex' + +export function getMiddlewareRegex(normalizedRoute: string): RouteRegex { + const result = getParametrizedRoute(normalizedRoute) + if ('routeKeys' in result) { + if (result.parameterizedRoute === '/') { + return { + groups: {}, + namedRegex: `^/(?!_next).*$`, + re: new RegExp('^/(?!_next).*$'), + routeKeys: {}, + } + } + + return { + groups: result.groups, + namedRegex: `^${result.namedParameterizedRoute}(?:(/.*)?)$`, + re: new RegExp(`^${result.parameterizedRoute}(?:(/.*)?)$`), + routeKeys: result.routeKeys, + } + } + + if (result.parameterizedRoute === '/') { + return { + groups: {}, + re: new RegExp('^/.*$'), + } + } + + return { + groups: {}, + re: new RegExp(`^${result.parameterizedRoute}(?:(/.*)?)$`), + } +} diff --git a/packages/next/shared/lib/router/utils/index.ts b/packages/next/shared/lib/router/utils/index.ts index 561c279631632..aa4bce09122f3 100644 --- a/packages/next/shared/lib/router/utils/index.ts +++ b/packages/next/shared/lib/router/utils/index.ts @@ -1,3 +1,4 @@ +export { getMiddlewareRegex } from './get-middleware-regex' export { getRouteMatcher } from './route-matcher' export { getRouteRegex } from './route-regex' export { getSortedRoutes } from './sorted-routes' diff --git a/packages/next/taskfile.js b/packages/next/taskfile.js index 8dd7fe357c8f1..44eca1c6e5899 100644 --- a/packages/next/taskfile.js +++ b/packages/next/taskfile.js @@ -759,6 +759,51 @@ export async function ncc_mini_css_extract_plugin(task, opts) { }) .target('compiled/mini-css-extract-plugin') } +// eslint-disable-next-line camelcase +externals['web-streams-polyfill'] = 'next/dist/compiled/web-streams-polyfill' +export async function ncc_web_streams_polyfill(task, opts) { + await task + .source( + opts.src || + relative(__dirname, require.resolve('web-streams-polyfill/ponyfill')) + ) + .ncc({ packageName: 'web-streams-polyfill', externals }) + .target('compiled/web-streams-polyfill') +} +// eslint-disable-next-line camelcase +externals['formdata-node'] = 'next/dist/compiled/formdata-node' +export async function ncc_formdata_node(task, opts) { + await task + .source(opts.src || relative(__dirname, require.resolve('formdata-node'))) + .ncc({ packageName: 'formdata-node', externals }) + .target('compiled/formdata-node') +} +// eslint-disable-next-line camelcase +externals['ua-parser-js'] = 'next/dist/compiled/ua-parser-js' +export async function ncc_ua_parser_js(task, opts) { + await task + .source(opts.src || relative(__dirname, require.resolve('ua-parser-js'))) + .ncc({ packageName: 'ua-parser-js', externals }) + .target('compiled/ua-parser-js') +} +// eslint-disable-next-line camelcase +externals['@peculiar/webcrypto'] = 'next/dist/compiled/@peculiar/webcrypto' +export async function ncc_webcrypto(task, opts) { + await task + .source( + opts.src || relative(__dirname, require.resolve('@peculiar/webcrypto')) + ) + .ncc({ packageName: '@peculiar/webcrypto', externals }) + .target('compiled/@peculiar/webcrypto') +} +// eslint-disable-next-line camelcase +externals['uuid'] = 'next/dist/compiled/uuid' +export async function ncc_uuid(task, opts) { + await task + .source(opts.src || relative(__dirname, require.resolve('uuid'))) + .ncc({ packageName: 'uuid', externals }) + .target('compiled/uuid') +} // eslint-disable-next-line camelcase export async function ncc_webpack_bundle5(task, opts) { @@ -901,6 +946,11 @@ export async function ncc(task, opts) { 'ncc_webpack_sources1', 'ncc_webpack_sources3', 'ncc_ws', + 'ncc_ua_parser_js', + 'ncc_webcrypto', + 'ncc_uuid', + 'ncc_formdata_node', + 'ncc_web_streams_polyfill', 'ncc_mini_css_extract_plugin', ], opts diff --git a/packages/next/types/index.d.ts b/packages/next/types/index.d.ts index c21d4ce21a2c9..3cfdee20b9f15 100644 --- a/packages/next/types/index.d.ts +++ b/packages/next/types/index.d.ts @@ -183,4 +183,27 @@ export type InferGetServerSidePropsType = T extends GetServerSideProps< ? P : never +declare global { + interface Crypto { + readonly subtle: SubtleCrypto + getRandomValues< + T extends + | Int8Array + | Int16Array + | Int32Array + | Uint8Array + | Uint16Array + | Uint32Array + | Uint8ClampedArray + | Float32Array + | Float64Array + | DataView + | null + >( + array: T + ): T + randomUUID?(): string + } +} + export default next diff --git a/packages/next/types/misc.d.ts b/packages/next/types/misc.d.ts index 245c041a95d53..b47f79fe7a5bd 100644 --- a/packages/next/types/misc.d.ts +++ b/packages/next/types/misc.d.ts @@ -178,6 +178,26 @@ declare module 'next/dist/compiled/string-hash' { import m from 'string-hash' export = m } +declare module 'next/dist/compiled/web-streams-polyfill' { + import m from 'web-streams-polyfill/ponyfill' + export = m +} +declare module 'next/dist/compiled/ua-parser-js' { + import m from 'ua-parser-js' + export = m +} +declare module 'next/dist/compiled/formdata-node' { + import m from 'formdata-node' + export = m +} +declare module 'next/dist/compiled/@peculiar/webcrypto' { + import m from '@peculiar/webcrypto' + export = m +} +declare module 'next/dist/compiled/uuid' { + import m from 'uuid' + export = m +} declare module 'next/dist/compiled/strip-ansi' { import m from 'strip-ansi' export = m diff --git a/packages/next/types/webpack.d.ts b/packages/next/types/webpack.d.ts index 10a75a8c2accd..8f72e0db924dc 100644 --- a/packages/next/types/webpack.d.ts +++ b/packages/next/types/webpack.d.ts @@ -277,6 +277,8 @@ declare module 'webpack4' { futureEmitAssets?: boolean /** The filename of WebAssembly modules as relative path inside the `output.path` directory. */ webassemblyModuleFilename?: string + /** Library types enabled */ + enabledLibraryTypes?: string[] } type LibraryTarget = 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 91552e1b29d72..67f774d44c525 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 @@ -14,7 +14,7 @@ export default class SelfReload extends Component { handleAClick = () => { Router.push( '/nav/hash-changes-with-state', - '/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, @@ -25,7 +25,7 @@ export default class SelfReload extends Component { handleAShallowClick = () => { Router.push( '/nav/hash-changes-with-state#', - '/nav/hash-changes-with-state#', + '/nav/hash-changes-with-state#hello' + Math.random(), { shallow: true, historyCount: window.history.state.options.historyCount, diff --git a/test/integration/client-navigation/test/index.test.js b/test/integration/client-navigation/test/index.test.js index 404e13072be73..353ad5c667bf8 100644 --- a/test/integration/client-navigation/test/index.test.js +++ b/test/integration/client-navigation/test/index.test.js @@ -733,7 +733,8 @@ describe('Client Navigation', () => { const counter = await browser.elementByCss('p').text() - expect(counter).toBe('COUNT: 2') + // getInitialProps should not be called with only hash changes + expect(counter).toBe('COUNT: 0') await browser.close() }) diff --git a/test/integration/custom-routes/test/index.test.js b/test/integration/custom-routes/test/index.test.js index e05fa7aa219ef..d02c8cfb78eba 100644 --- a/test/integration/custom-routes/test/index.test.js +++ b/test/integration/custom-routes/test/index.test.js @@ -1968,6 +1968,56 @@ const runTests = (isDev = false) => { }, }, ], + staticRoutes: [ + { + namedRegex: '^/auto\\-export/another(?:/)?$', + page: '/auto-export/another', + regex: '^/auto\\-export/another(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/docs/v2/more/now\\-for\\-github(?:/)?$', + page: '/docs/v2/more/now-for-github', + regex: '^/docs/v2/more/now\\-for\\-github(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/hello(?:/)?$', + page: '/hello', + regex: '^/hello(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/hello\\-again(?:/)?$', + page: '/hello-again', + regex: '^/hello\\-again(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/multi\\-rewrites(?:/)?$', + page: '/multi-rewrites', + regex: '^/multi\\-rewrites(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/nav(?:/)?$', + page: '/nav', + regex: '^/nav(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/redirect\\-override(?:/)?$', + page: '/redirect-override', + regex: '^/redirect\\-override(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/with\\-params(?:/)?$', + page: '/with-params', + regex: '^/with\\-params(?:/)?$', + routeKeys: {}, + }, + ], }) }) diff --git a/test/integration/dynamic-routing/test/index.test.js b/test/integration/dynamic-routing/test/index.test.js index 118ae4166c100..79a25b7181759 100644 --- a/test/integration/dynamic-routing/test/index.test.js +++ b/test/integration/dynamic-routing/test/index.test.js @@ -1087,6 +1087,20 @@ function runTests(dev) { basePath: '', headers: [], rewrites: [], + staticRoutes: [ + { + namedRegex: '^/(?:/)?$', + page: '/', + regex: '^/(?:/)?$', + routeKeys: {}, + }, + { + namedRegex: '^/another(?:/)?$', + page: '/another', + regex: '^/another(?:/)?$', + routeKeys: {}, + }, + ], redirects: expect.arrayContaining([]), dataRoutes: [ { diff --git a/test/integration/middleware-base-path/next.config.js b/test/integration/middleware-base-path/next.config.js new file mode 100644 index 0000000000000..959fceae7487a --- /dev/null +++ b/test/integration/middleware-base-path/next.config.js @@ -0,0 +1,3 @@ +module.exports = { + basePath: '/root', +} diff --git a/test/integration/middleware-base-path/pages/_middleware.js b/test/integration/middleware-base-path/pages/_middleware.js new file mode 100644 index 0000000000000..3b229fa441eb0 --- /dev/null +++ b/test/integration/middleware-base-path/pages/_middleware.js @@ -0,0 +1,14 @@ +import { NextResponse } from 'next/server' + +export function middleware(event) { + const url = event.request.nextUrl + if (url.pathname === '/redirect-with-basepath' && !url.basePath) { + url.basePath = '/root' + event.respondWith(NextResponse.redirect(url)) + } + + if (url.pathname === '/redirect-with-basepath') { + url.pathname = '/about' + event.respondWith(NextResponse.rewrite(url)) + } +} diff --git a/test/integration/middleware-base-path/pages/about.js b/test/integration/middleware-base-path/pages/about.js new file mode 100644 index 0000000000000..9924acf0375b7 --- /dev/null +++ b/test/integration/middleware-base-path/pages/about.js @@ -0,0 +1,7 @@ +export default function About() { + return ( +
+

About Page

+
+ ) +} diff --git a/test/integration/middleware-base-path/pages/index.js b/test/integration/middleware-base-path/pages/index.js new file mode 100644 index 0000000000000..9d255950aa94f --- /dev/null +++ b/test/integration/middleware-base-path/pages/index.js @@ -0,0 +1,32 @@ +import Link from 'next/link' + +export default function Main({ message }) { + return ( +
+

Hello {message}

+ +
+ ) +} + +export const getServerSideProps = ({ query }) => ({ + props: { message: query.message || 'World' }, +}) diff --git a/test/integration/middleware-base-path/test/index.test.js b/test/integration/middleware-base-path/test/index.test.js new file mode 100644 index 0000000000000..f76bf60a7421a --- /dev/null +++ b/test/integration/middleware-base-path/test/index.test.js @@ -0,0 +1,41 @@ +/* eslint-env jest */ + +jest.setTimeout(1000 * 60 * 2) + +import { fetchViaHTTP, findPort, killApp, launchApp } 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', () => { + beforeAll(async () => { + context.appPort = await findPort() + context.app = await launchApp(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-core/next.config.js b/test/integration/middleware-core/next.config.js new file mode 100644 index 0000000000000..f548199a3b10a --- /dev/null +++ b/test/integration/middleware-core/next.config.js @@ -0,0 +1,6 @@ +module.exports = { + i18n: { + locales: ['en', 'fr', 'nl'], + defaultLocale: 'en', + }, +} diff --git a/test/integration/middleware-core/pages/interface/[id]/index.js b/test/integration/middleware-core/pages/interface/[id]/index.js new file mode 100644 index 0000000000000..11f4614a671e7 --- /dev/null +++ b/test/integration/middleware-core/pages/interface/[id]/index.js @@ -0,0 +1,3 @@ +export default function Index() { + return

Dynamic route

+} diff --git a/test/integration/middleware-core/pages/interface/_middleware.js b/test/integration/middleware-core/pages/interface/_middleware.js new file mode 100644 index 0000000000000..428f94281052a --- /dev/null +++ b/test/integration/middleware-core/pages/interface/_middleware.js @@ -0,0 +1,14 @@ +export function middleware(event) { + event.respondWith( + new Response(null, { + headers: { + 'req-url-basepath': event.request.nextUrl.basePath, + 'req-url-pathname': event.request.nextUrl.pathname, + 'req-url-params': JSON.stringify(event.request.page.params), + 'req-url-page': event.request.page.name, + 'req-url-query': event.request.nextUrl.searchParams.get('foo'), + 'req-url-locale': event.request.nextUrl.locale, + }, + }) + ) +} diff --git a/test/integration/middleware-core/pages/interface/static.js b/test/integration/middleware-core/pages/interface/static.js new file mode 100644 index 0000000000000..d683fec42acc0 --- /dev/null +++ b/test/integration/middleware-core/pages/interface/static.js @@ -0,0 +1,3 @@ +export default function Index() { + return

Static route

+} diff --git a/test/integration/middleware-core/pages/redirects/_middleware.js b/test/integration/middleware-core/pages/redirects/_middleware.js new file mode 100644 index 0000000000000..92dd9cf397093 --- /dev/null +++ b/test/integration/middleware-core/pages/redirects/_middleware.js @@ -0,0 +1,65 @@ +export function middleware(event) { + event.respondWith(handleRequest(event)) +} + +async function handleRequest(event) { + const url = event.request.nextUrl + + if (url.searchParams.get('foo') === 'bar') { + url.pathname = '/redirects/new-home' + url.searchParams.delete('foo') + return Response.redirect(url) + } + + if (url.pathname === '/redirects/old-home') { + url.pathname = '/redirects/new-home' + return Response.redirect(url) + } + + // Chained redirects + if (url.pathname === '/redirects/redirect-me-alot') { + url.pathname = '/redirects/redirect-me-alot-2' + return Response.redirect(url) + } + + if (url.pathname === '/redirects/redirect-me-alot-2') { + url.pathname = '/redirects/redirect-me-alot-3' + return Response.redirect(url) + } + + if (url.pathname === '/redirects/redirect-me-alot-3') { + url.pathname = '/redirects/redirect-me-alot-4' + return Response.redirect(url) + } + + if (url.pathname === '/redirects/redirect-me-alot-4') { + url.pathname = '/redirects/redirect-me-alot-5' + return Response.redirect(url) + } + + if (url.pathname === '/redirects/redirect-me-alot-5') { + url.pathname = '/redirects/redirect-me-alot-6' + return Response.redirect(url) + } + + if (url.pathname === '/redirects/redirect-me-alot-6') { + url.pathname = '/redirects/redirect-me-alot-7' + return Response.redirect(url) + } + + if (url.pathname === '/redirects/redirect-me-alot-7') { + url.pathname = '/redirects/new-home' + return Response.redirect(url) + } + + // Infinite loop + if (url.pathname === '/redirects/infinite-loop') { + url.pathname = '/redirects/infinite-loop-1' + return Response.redirect(url) + } + + if (url.pathname === '/redirects/infinite-loop-1') { + url.pathname = '/redirects/infinite-loop' + return Response.redirect(url.pathname) + } +} diff --git a/test/integration/middleware-core/pages/redirects/header.js b/test/integration/middleware-core/pages/redirects/header.js new file mode 100644 index 0000000000000..1f3d53eca6084 --- /dev/null +++ b/test/integration/middleware-core/pages/redirects/header.js @@ -0,0 +1,3 @@ +export default function Account() { + return

Welcome to a header page

+} diff --git a/test/integration/middleware-core/pages/redirects/index.js b/test/integration/middleware-core/pages/redirects/index.js new file mode 100644 index 0000000000000..735e73d232bc3 --- /dev/null +++ b/test/integration/middleware-core/pages/redirects/index.js @@ -0,0 +1,33 @@ +import Link from 'next/link' + +export default function Home() { + return ( +
+

Home Page

+ + Redirect me to a new version of a page + +
+ + Redirect me with URL params intact + +
+ + Redirect me to Google (with no body response) + +
+ + Redirect me to Google (with no stream response) + +
+ + Redirect me alot (chained requests) + +
+ + Redirect me alot (infinite loop) + +
+
+ ) +} diff --git a/test/integration/middleware-core/pages/redirects/new-home.js b/test/integration/middleware-core/pages/redirects/new-home.js new file mode 100644 index 0000000000000..6442464c92e2e --- /dev/null +++ b/test/integration/middleware-core/pages/redirects/new-home.js @@ -0,0 +1,3 @@ +export default function Account() { + return

Welcome to a new page

+} diff --git a/test/integration/middleware-core/pages/redirects/old-home.js b/test/integration/middleware-core/pages/redirects/old-home.js new file mode 100644 index 0000000000000..7b2079db1b3de --- /dev/null +++ b/test/integration/middleware-core/pages/redirects/old-home.js @@ -0,0 +1,3 @@ +export default function Account() { + return

Welcome to a old page

+} diff --git a/test/integration/middleware-core/pages/responses/_middleware.js b/test/integration/middleware-core/pages/responses/_middleware.js new file mode 100644 index 0000000000000..1c7535bf6cb85 --- /dev/null +++ b/test/integration/middleware-core/pages/responses/_middleware.js @@ -0,0 +1,100 @@ +import { createElement } from 'react' +import { renderToString } from 'react-dom/server.browser' +import { NextResponse } from 'next/server' + +export async function middleware(event) { + // eslint-disable-next-line no-undef + const { readable, writable } = new TransformStream() + const url = event.request.nextUrl + const writer = writable.getWriter() + const encoder = new TextEncoder() + const next = NextResponse.next() + + // Sends a header + if (url.pathname === '/responses/header') { + next.headers.set('x-first-header', 'valid') + event.respondWith(next) + } + + // Header based on query param + if (url.searchParams.get('nested-header') === 'true') { + next.headers.set('x-nested-header', 'valid') + event.respondWith(next) + } + + // Streams a basic response + if (url.pathname === '/responses/stream-a-response') { + event.respondWith(new Response(readable)) + writer.write(encoder.encode('this is a streamed ')) + writer.write(encoder.encode('response')) + writer.close() + return + } + + if (url.pathname === '/responses/bad-status') { + event.respondWith( + new Response('Auth required', { + headers: { 'WWW-Authenticate': 'Basic realm="Secure Area"' }, + status: 401, + }) + ) + } + + if (url.pathname === '/responses/stream-long') { + event.respondWith(new Response(readable)) + writer.write(encoder.encode('this is a streamed '.repeat(10))) + await sleep(2000) + writer.write(encoder.encode('after 2 seconds '.repeat(10))) + await sleep(2000) + writer.write(encoder.encode('after 4 seconds '.repeat(10))) + await sleep(2000) + writer.close() + return + } + + // Sends response + if (url.pathname === '/responses/send-response') { + return event.respondWith(new Response(JSON.stringify({ message: 'hi!' }))) + } + + // Render React component + if (url.pathname === '/responses/react') { + return event.respondWith( + new Response( + renderToString( + createElement( + 'h1', + {}, + 'SSR with React! Hello, ' + url.searchParams.get('name') + ) + ) + ) + ) + } + + // Stream React component + if (url.pathname === '/responses/react-stream') { + event.respondWith(new Response(readable)) + writer.write( + encoder.encode(renderToString(createElement('h1', {}, 'I am a stream'))) + ) + await sleep(500) + writer.write( + encoder.encode( + renderToString(createElement('p', {}, 'I am another stream')) + ) + ) + writer.close() + return + } + + event.respondWith(next) +} + +function sleep(time) { + return new Promise((resolve) => { + setTimeout(() => { + resolve() + }, time) + }) +} diff --git a/test/integration/middleware-core/pages/responses/index.js b/test/integration/middleware-core/pages/responses/index.js new file mode 100644 index 0000000000000..416ee0b5568c9 --- /dev/null +++ b/test/integration/middleware-core/pages/responses/index.js @@ -0,0 +1,68 @@ +import Link from 'next/link' + +export default function Home({ message }) { + return ( +
+

Hello {message}

+ + Stream a response + +
+ + Stream a long response + + + Test streaming after response ends + +
+ + Attempt to add a header after stream ends + +
+ + Redirect to Google and attempt to stream after + +
+ + Respond with a header + +
+ + Respond with 2 headers (nested middleware effect) + +
+ + Respond with body, end, set a header + +
+ + Respond with body, end, send another body + +
+ + Respond with body + +
+ + Redirect and then send a body + +
+ + Send React component as a body + +
+ + Stream React component + +
+ + 404 + +
+
+ ) +} + +export const getServerSideProps = ({ query }) => ({ + props: { message: query.message || 'World' }, +}) diff --git a/test/integration/middleware-core/pages/rewrites/_middleware.js b/test/integration/middleware-core/pages/rewrites/_middleware.js new file mode 100644 index 0000000000000..4c1b04285f82f --- /dev/null +++ b/test/integration/middleware-core/pages/rewrites/_middleware.js @@ -0,0 +1,31 @@ +import { NextResponse } from 'next/server' + +export function middleware(event) { + const url = event.request.nextUrl + + if (url.pathname === '/rewrites/rewrite-to-ab-test') { + let bucket = event.request.cookies.bucket + if (!bucket) { + bucket = Math.random() >= 0.5 ? 'a' : 'b' + const response = NextResponse.rewrite(`/rewrites/${bucket}`) + response.cookie('bucket', bucket) + return event.respondWith(response) + } + + return event.respondWith(NextResponse.rewrite(`/rewrites/${bucket}`)) + } + + if (url.pathname === '/rewrites/rewrite-me-to-about') { + return event.respondWith(NextResponse.rewrite('/rewrites/about')) + } + + if (url.pathname === '/rewrites/rewrite-me-to-vercel') { + return event.respondWith(NextResponse.rewrite('https://vercel.com')) + } + + if (url.pathname === '/rewrites/rewrite-me-without-hard-navigation') { + url.pathname = '/rewrites/about' + url.searchParams.set('middleware', 'foo') + event.respondWith(NextResponse.rewrite(url)) + } +} diff --git a/test/integration/middleware-core/pages/rewrites/a.js b/test/integration/middleware-core/pages/rewrites/a.js new file mode 100644 index 0000000000000..4ea5eaf19e4fc --- /dev/null +++ b/test/integration/middleware-core/pages/rewrites/a.js @@ -0,0 +1,3 @@ +export default function Home() { + return

Welcome Page A

+} diff --git a/test/integration/middleware-core/pages/rewrites/about.js b/test/integration/middleware-core/pages/rewrites/about.js new file mode 100644 index 0000000000000..4eff796b31d59 --- /dev/null +++ b/test/integration/middleware-core/pages/rewrites/about.js @@ -0,0 +1,16 @@ +export default function Main({ message, middleware }) { + return ( +
+

About Page

+

{message}

+

{middleware}

+
+ ) +} + +export const getServerSideProps = ({ query }) => ({ + props: { + middleware: query.middleware || '', + message: query.message || '', + }, +}) diff --git a/test/integration/middleware-core/pages/rewrites/b.js b/test/integration/middleware-core/pages/rewrites/b.js new file mode 100644 index 0000000000000..32505e9eaea1d --- /dev/null +++ b/test/integration/middleware-core/pages/rewrites/b.js @@ -0,0 +1,3 @@ +export default function Home() { + return

Welcome Page B

+} diff --git a/test/integration/middleware-core/pages/rewrites/index.js b/test/integration/middleware-core/pages/rewrites/index.js new file mode 100644 index 0000000000000..0f347114ed0ed --- /dev/null +++ b/test/integration/middleware-core/pages/rewrites/index.js @@ -0,0 +1,29 @@ +import Link from 'next/link' + +export default function Home() { + return ( +
+

Home Page

+
+ + A/B test homepage + +
+ + Rewrite me to about + +
+ + Rewrite me to Vercel + +
+ + Redirect me to Vercel (but with double reroutes) + + + ) +} diff --git a/test/integration/middleware-core/test/index.test.js b/test/integration/middleware-core/test/index.test.js new file mode 100644 index 0000000000000..142200934b656 --- /dev/null +++ b/test/integration/middleware-core/test/index.test.js @@ -0,0 +1,344 @@ +/* eslint-env jest */ + +import { join } from 'path' +import cheerio from 'cheerio' +import webdriver from 'next-webdriver' +import { + fetchViaHTTP, + findPort, + killApp, + launchApp, + nextBuild, + nextStart, +} from 'next-test-utils' + +jest.setTimeout(1000 * 60 * 2) +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)) + rewriteTests() + rewriteTests('/fr') + redirectTests() + redirectTests('/fr') + responseTests() + responseTests('/fr') + interfaceTests() + interfaceTests('/fr') + }) + 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)) + rewriteTests() + rewriteTests('/fr') + redirectTests() + redirectTests('/fr') + responseTests() + responseTests('/fr') + interfaceTests() + interfaceTests('/fr') + }) +}) + +function rewriteTests(locale = '') { + it(`${locale} should add a cookie and rewrite to a/b test`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/rewrites/rewrite-to-ab-test` + ) + const html = await res.text() + const $ = cheerio.load(html) + const bucket = getCookieFromResponse(res, 'bucket') + const expectedText = bucket === 'a' ? 'Welcome Page A' : 'Welcome Page B' + const browser = await webdriver( + context.appPort, + `${locale}/rewrites/rewrite-to-ab-test` + ) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/rewrites/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(`${locale} should rewrite to about page`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/rewrites/rewrite-me-to-about` + ) + const html = await res.text() + const $ = cheerio.load(html) + const browser = await webdriver( + context.appPort, + `${locale}/rewrites/rewrite-me-to-about` + ) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/rewrites/rewrite-me-to-about` + ) + } finally { + await browser.close() + } + expect($('.title').text()).toBe('About Page') + }) + + it(`${locale} should rewrite to Vercel`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/rewrites/rewrite-me-to-vercel` + ) + const html = await res.text() + const $ = cheerio.load(html) + // const browser = await webdriver(context.appPort, '/rewrite-me-to-vercel') + // TODO: running this to chech the window.location.pathname hangs for some reason; + expect($('head > title').text()).toBe( + 'Develop. Preview. Ship. For the best frontend teams – Vercel' + ) + }) + + it(`${locale} should rewrite without hard navigation`, async () => { + const browser = await webdriver(context.appPort, '/rewrites/') + 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') + }) +} + +function redirectTests(locale = '') { + it(`${locale} should redirect`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/redirects/old-home` + ) + const html = await res.text() + const $ = cheerio.load(html) + const browser = await webdriver( + context.appPort, + `${locale}/redirects/old-home` + ) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/redirects/new-home` + ) + } finally { + await browser.close() + } + expect($('.title').text()).toBe('Welcome to a new page') + }) + + it(`${locale} should redirect cleanly with the original url param`, async () => { + const browser = await webdriver( + context.appPort, + `${locale}/redirects/blank-page?foo=bar` + ) + try { + expect( + await browser.eval( + `window.location.href.replace(window.location.origin, '')` + ) + ).toBe(`${locale}/redirects/new-home`) + } finally { + await browser.close() + } + }) + + it(`${locale} should redirect multiple times`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/redirects/redirect-me-alot` + ) + const browser = await webdriver( + context.appPort, + `${locale}/redirects/redirect-me-alot` + ) + try { + expect(await browser.eval(`window.location.pathname`)).toBe( + `${locale}/redirects/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(`${locale} should redirect (infinite-loop)`, async () => { + await expect( + fetchViaHTTP(context.appPort, `${locale}/redirects/infinite-loop`) + ).rejects.toThrow() + }) +} + +function responseTests(locale = '') { + it(`${locale} should stream a response`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/responses/stream-a-response` + ) + const html = await res.text() + expect(html).toBe('this is a streamed response') + }) + + it(`${locale} should respond with a body`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/responses/send-response` + ) + const html = await res.text() + expect(html).toBe('{"message":"hi!"}') + }) + + it(`${locale} should respond with a 401 status code`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/responses/bad-status` + ) + const html = await res.text() + expect(res.status).toBe(401) + expect(html).toBe('Auth required') + }) + + it(`${locale} should render a React component`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/responses/react?name=jack` + ) + const html = await res.text() + expect(html).toBe('

SSR with React! Hello, jack

') + }) + + it(`${locale} should stream a React component`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/responses/react-stream` + ) + const html = await res.text() + expect(html).toBe( + '

I am a stream

I am another stream

' + ) + }) + + it(`${locale} should stream a long response`, async () => { + const res = await fetchViaHTTP(context.appPort, '/responses/stream-long') + const html = await res.text() + expect(html).toBe( + 'this is a streamed this is a streamed this is a streamed this is a streamed this is a streamed this is a streamed this is a streamed this is a streamed this is a streamed this is a streamed after 2 seconds after 2 seconds after 2 seconds after 2 seconds after 2 seconds after 2 seconds after 2 seconds after 2 seconds after 2 seconds after 2 seconds after 4 seconds after 4 seconds after 4 seconds after 4 seconds after 4 seconds after 4 seconds after 4 seconds after 4 seconds after 4 seconds after 4 seconds ' + ) + }) + + it(`${locale} should render the right content via SSR`, async () => { + const res = await fetchViaHTTP(context.appPort, '/responses/') + const html = await res.text() + const $ = cheerio.load(html) + expect($('.title').text()).toBe('Hello World') + }) + + it(`${locale} should respond with a header`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/responses/header` + ) + expect(res.headers.get('x-first-header')).toBe('valid') + }) + + it(`${locale} should respond with 2 nested headers`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/responses/header?nested-header=true` + ) + expect(res.headers.get('x-first-header')).toBe('valid') + expect(res.headers.get('x-nested-header')).toBe('valid') + }) +} + +function interfaceTests(locale = '') { + it(`${locale} should validate request url parameters from a static route`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/interface/static` + ) + //expect(res.headers.get('req-url-basepath')).toBe('') + expect(res.headers.get('req-url-pathname')).toBe('/interface/static') + expect(res.headers.get('req-url-params')).not.toBe('{}') + expect(res.headers.get('req-url-query')).not.toBe('bar') + if (locale !== '') { + expect(res.headers.get('req-url-locale')).toBe(locale.slice(1)) + } + }) + + it(`${locale} should validate request url parameters from a dynamic route with param 1`, async () => { + const res = await fetchViaHTTP(context.appPort, `${locale}/interface/1`) + //expect(res.headers.get('req-url-basepath')).toBe('') + expect(res.headers.get('req-url-pathname')).toBe('/interface/1') + expect(res.headers.get('req-url-params')).toBe('{"id":"1"}') + expect(res.headers.get('req-url-page')).toBe('/interface/[id]') + expect(res.headers.get('req-url-query')).not.toBe('bar') + + if (locale !== '') { + expect(res.headers.get('req-url-locale')).toBe(locale.slice(1)) + } + }) + + it(`${locale} should validate request url parameters from a dynamic route with param abc123`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/interface/abc123` + ) + //expect(res.headers.get('req-url-basepath')).toBe('') + expect(res.headers.get('req-url-pathname')).toBe('/interface/abc123') + expect(res.headers.get('req-url-params')).toBe('{"id":"abc123"}') + expect(res.headers.get('req-url-page')).toBe('/interface/[id]') + expect(res.headers.get('req-url-query')).not.toBe('bar') + + if (locale !== '') { + expect(res.headers.get('req-url-locale')).toBe(locale.slice(1)) + } + }) + + it(`${locale} should validate request url parameters from a dynamic route with param abc123 and query foo = bar`, async () => { + const res = await fetchViaHTTP( + context.appPort, + `${locale}/interface/abc123?foo=bar` + ) + //expect(res.headers.get('req-url-basepath')).toBe('') + expect(res.headers.get('req-url-pathname')).toBe('/interface/abc123') + expect(res.headers.get('req-url-params')).toBe('{"id":"abc123"}') + expect(res.headers.get('req-url-page')).toBe('/interface/[id]') + expect(res.headers.get('req-url-query')).toBe('bar') + if (locale !== '') { + expect(res.headers.get('req-url-locale')).toBe(locale.slice(1)) + } + }) +} + +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/unit/accept-headers.test.ts b/test/unit/accept-headers.test.ts new file mode 100644 index 0000000000000..4b95f3de48e05 --- /dev/null +++ b/test/unit/accept-headers.test.ts @@ -0,0 +1,77 @@ +import { acceptLanguage } from 'next/dist/server/accept-header' + +describe('acceptLanguage', () => { + it('parses the header', () => { + const language = acceptLanguage('da, en-GB, en') + expect(language).toEqual('da') + }) + + it('respects weights', () => { + const language = acceptLanguage('en;q=0.6, en-GB;q=0.8') + expect(language).toEqual('en-gb') + }) + + it('returns empty string with header is empty', () => { + const language = acceptLanguage('') + expect(language).toEqual('') + }) + + it('returns empty string if header is missing', () => { + const language = acceptLanguage() + expect(language).toEqual('') + }) + + it('ignores an empty preferences array', () => { + const language = acceptLanguage('da, en-GB, en', []) + expect(language).toEqual('da') + }) + + it('returns empty string if none of the preferences match', () => { + const language = acceptLanguage('da, en-GB, en', ['es']) + expect(language).toEqual('') + }) + + it('returns first preference if header has * and is unmatched', () => { + const language = acceptLanguage('da, en-GB, *', ['en-US']) + expect(language).toEqual('en-US') + }) + + it('returns first found preference that header includes', () => { + const language = acceptLanguage('da, en-GB, en', ['en-US', 'en-GB']) + expect(language).toEqual('en-US') + }) + + it('returns preference with highest order when equal weigths', () => { + expect(acceptLanguage('da, en, en-GB', ['en', 'en-GB'])).toEqual('en') + expect(acceptLanguage('da, en, en-GB', ['en-GB', 'en'])).toEqual('en-GB') + expect(acceptLanguage('en, en-GB, en-US')).toEqual('en') + }) + + it('return language with heighest weight', () => { + const language = acceptLanguage('da;q=0.5, en;q=1', ['da', 'en']) + expect(language).toEqual('en') + }) + + it('ignores preference case when matching', () => { + const language = acceptLanguage('da, en-GB, en-us', ['en-gb', 'en-us']) // en-GB vs en-gb + expect(language).toEqual('en-gb') + }) + + it('returns language using range match', () => { + expect(acceptLanguage('da', ['da-DK'])).toEqual('da-DK') + expect(acceptLanguage('en-US, en', ['en-GB', 'en-US'])).toEqual('en-GB') + expect(acceptLanguage('da, en', ['da-DK', 'en-GB'])).toEqual('da-DK') + expect(acceptLanguage('en, da', ['da-DK', 'en-GB'])).toEqual('da-DK') + expect(acceptLanguage('en, da', ['en', 'en-GB'])).toEqual('en') + expect(acceptLanguage('da, en-GB', ['da-DK', 'en-GB'])).toEqual('da-DK') + expect(acceptLanguage('en, en-GB', ['en-US', 'en-GB', 'da-DK'])).toEqual( + 'en-US' + ) + }) + + it('explicit preference overrides range match', () => { + expect(acceptLanguage('da, en-GB', ['da-DK', 'en-GB', 'da'])).toEqual( + 'en-GB' + ) + }) +}) diff --git a/test/unit/web-runtime/body.test.ts b/test/unit/web-runtime/body.test.ts new file mode 100644 index 0000000000000..fad6e2c9bd4d0 --- /dev/null +++ b/test/unit/web-runtime/body.test.ts @@ -0,0 +1,212 @@ +/* eslint-env jest */ + +import { Blob, File, FormData } from 'next/dist/compiled/formdata-node' +import { Body } from 'next/dist/server/web/spec-compliant/body' +import { Crypto } from 'next/dist/server/web/sandbox/polyfills' +import { Headers } from 'next/dist/server/web/spec-compliant/headers' +import { streamToIterator } from 'next/dist/server/web/utils' +import * as streams from 'web-streams-polyfill/ponyfill' + +class Implementation extends Body { + headers: Headers + constructor(init: BodyInit) { + super(init) + this.headers = new Headers() + } +} + +beforeAll(() => { + global['Blob'] = Blob + global['crypto'] = new Crypto() + global['File'] = File + global['FormData'] = FormData + global['Headers'] = Headers + global['ReadableStream'] = streams.ReadableStream + global['TransformStream'] = streams.TransformStream +}) + +afterAll(() => { + delete global['Blob'] + delete global['crypto'] + delete global['File'] + delete global['Headers'] + delete global['FormData'] + delete global['ReadableStream'] + delete global['TransformStream'] +}) + +it('flags the body as used after reading it', async () => { + const { readable, writable } = new TransformStream() + const encoder = new TextEncoder() + const writer = writable.getWriter() + writer.write(encoder.encode('')) + writer.close() + + const body = new Implementation(readable) + expect(body.bodyUsed).toEqual(false) + + const reader = body.body.getReader() + expect(body.bodyUsed).toEqual(false) + + while (true) { + const { done } = await reader.read() + if (done) break + } + + reader.releaseLock() + expect(body.bodyUsed).toEqual(true) +}) + +it('throws when the body was directly consumed', async () => { + global['crypto'].getRandomValues = (array: number[]) => array + const object = { hello: 'world' } + const blob = new Blob([JSON.stringify(object, null, 2)], { + type: 'application/json', + }) + + const formData = new FormData() + formData.append('name', 'John') + formData.append('lastname', 'Doe') + formData.append('metadata', blob) + + const body = new Implementation(formData) + + // Read the body through the stream + for await (const item of streamToIterator(body.body)) { + expect(item).toBeTruthy() + } + + // It allows to access again the already read stream + const reader = body.body.getReader() + const { done } = await reader.read() + expect(done).toBeTruthy() + + const error = await body.text().catch((err) => err) + expect(error).toBeInstanceOf(TypeError) + expect(error.message).toEqual( + 'Body has already been used. It can only be used once. Use tee() first if you need to read it twice.' + ) +}) + +it('throws when the body was indirectly consumed', async () => { + global['crypto'].getRandomValues = (array: number[]) => array + const object = { hello: 'world' } + const blob = new Blob([JSON.stringify(object, null, 2)], { + type: 'application/json', + }) + + const formData = new FormData() + formData.append('name', 'John') + formData.append('lastname', 'Doe') + formData.append('metadata', blob) + + const body = new Implementation(formData) + const text = await body.text() + expect(text).toBeTruthy() + + const error = await body.text().catch((err) => err) + expect(error).toBeInstanceOf(TypeError) + expect(error.message).toEqual( + 'Body has already been used. It can only be used once. Use tee() first if you need to read it twice.' + ) +}) + +it('allows to read a FormData body as text', async () => { + global['crypto'].getRandomValues = (array: number[]) => array + const object = { hello: 'world' } + const blob = new Blob([JSON.stringify(object, null, 2)], { + type: 'application/json', + }) + + const formData = new FormData() + formData.append('name', 'John') + formData.append('lastname', 'Doe') + formData.append('metadata', blob) + + const body = new Implementation(formData) + const text = await body.text() + expect(text).toMatchInlineSnapshot(` +"--0000000000000000000000000000000000000000000000000000000000000000 +Content-Disposition: form-data; name=\\"name\\" + +John +--0000000000000000000000000000000000000000000000000000000000000000 +Content-Disposition: form-data; name=\\"lastname\\" + +Doe +--0000000000000000000000000000000000000000000000000000000000000000 +Content-Disposition: form-data; name=\\"metadata\\"; filename=\\"blob\\" +Content-Type: application/json + +{ + \\"hello\\": \\"world\\" +} +--0000000000000000000000000000000000000000000000000000000000000000-- + +" +`) +}) + +it('allows to read a null body as ArrayBuffer', async () => { + const body = new Implementation(null) + const value = await body.arrayBuffer() + expect(new Uint8Array(value)).toHaveLength(0) +}) + +it('allows to read a text body as ArrayBuffer', async () => { + const body = new Implementation('Hello world') + const enc = new TextEncoder() + const dec = new TextDecoder() + + const value = await body.arrayBuffer() + const decoded = dec.decode(value) + expect(decoded).toEqual('Hello world') + expect(value).toEqual(enc.encode('Hello world').buffer) +}) + +it('allows to read a chunked body as ArrayBuffer', async () => { + const { readable, writable } = new TransformStream() + const encoder = new TextEncoder() + const writer = writable.getWriter() + writer.write(encoder.encode('Hello ')) + writer.write(encoder.encode('world!')) + writer.close() + + const body = new Implementation(readable) + const value = await body.arrayBuffer() + const decoder = new TextDecoder() + const decoded = decoder.decode(value) + expect(decoded).toEqual('Hello world!') + expect(value).toEqual(encoder.encode('Hello world!').buffer) +}) + +it('allows to read a URLSearchParams body as FormData', async () => { + const params = new URLSearchParams('q=URLUtils.searchParams&topic=api') + const body = new Implementation(params) + const formData = await body.formData() + expect(formData.get('topic')).toEqual('api') +}) + +it('allows to read a Blob body as Blob', async () => { + const object = { hello: 'world' } + const str = JSON.stringify(object, null, 2) + const body = new Implementation(new Blob([str])) + const blob = await body.blob() + const txt = await blob.text() + expect(txt).toEqual(str) +}) + +it('allows to read a text body as JSON', async () => { + const body = new Implementation(JSON.stringify({ message: 'hi', value: 10 })) + const value = await body.json() + expect(value).toEqual({ message: 'hi', value: 10 }) +}) + +it('throws when reading a text body as JSON but it is invalid', async () => { + const body = new Implementation('{ hi: "there", ') + const error = await body.json().catch((err) => err) + expect(error).toBeInstanceOf(TypeError) + expect(error.message).toEqual( + 'invalid json body reason: Unexpected token h in JSON at position 2' + ) +}) diff --git a/test/unit/web-runtime/request.test.ts b/test/unit/web-runtime/request.test.ts new file mode 100644 index 0000000000000..5b549ce573c2c --- /dev/null +++ b/test/unit/web-runtime/request.test.ts @@ -0,0 +1,37 @@ +/* eslint-env jest */ + +import { Blob, File, FormData } from 'next/dist/compiled/formdata-node' +import { Crypto } from 'next/dist/server/web/sandbox/polyfills' +import { Headers } from 'next/dist/server/web/spec-compliant/headers' +import { Request } from 'next/dist/server/web/spec-compliant/request' +import * as streams from 'web-streams-polyfill/ponyfill' + +beforeAll(() => { + global['Blob'] = Blob + global['crypto'] = new Crypto() + global['File'] = File + global['FormData'] = FormData + global['Headers'] = Headers + global['ReadableStream'] = streams.ReadableStream + global['TransformStream'] = streams.TransformStream +}) + +afterAll(() => { + delete global['Blob'] + delete global['crypto'] + delete global['File'] + delete global['Headers'] + delete global['FormData'] + delete global['ReadableStream'] + delete global['TransformStream'] +}) + +it('parses and reconstructs the URL alone', async () => { + const url = 'https://vercel.com/foo/bar?one=value' + const req = new Request(url) + expect(req.url).toEqual(url) +}) + +it('throws when the URL is malformed', async () => { + expect(() => new Request('meeeh')).toThrowError('Invalid URL') +}) diff --git a/test/unit/web-runtime/response.test.ts b/test/unit/web-runtime/response.test.ts new file mode 100644 index 0000000000000..797c6fb1b3075 --- /dev/null +++ b/test/unit/web-runtime/response.test.ts @@ -0,0 +1,42 @@ +/* eslint-env jest */ + +import { Blob, File, FormData } from 'next/dist/compiled/formdata-node' +import { Response } from 'next/dist/server/web/spec-compliant/response' +import { Crypto } from 'next/dist/server/web/sandbox/polyfills' +import { Headers } from 'next/dist/server/web/spec-compliant/headers' +import * as streams from 'web-streams-polyfill/ponyfill' + +beforeAll(() => { + global['Blob'] = Blob + global['crypto'] = new Crypto() + global['File'] = File + global['FormData'] = FormData + global['Headers'] = Headers + global['ReadableStream'] = streams.ReadableStream + global['TransformStream'] = streams.TransformStream +}) + +afterAll(() => { + delete global['Blob'] + delete global['crypto'] + delete global['File'] + delete global['Headers'] + delete global['FormData'] + delete global['ReadableStream'] + delete global['TransformStream'] +}) + +it('clones responses', async () => { + const { readable, writable } = new TransformStream() + const encoder = new TextEncoder() + const writer = writable.getWriter() + writer.write(encoder.encode('Hello ')) + writer.write(encoder.encode('world!')) + writer.close() + + const res1 = new Response(readable) + const res2 = res1.clone() + + expect(await res1.text()).toEqual('Hello world!') + expect(await res2.text()).toEqual('Hello world!') +}) diff --git a/test/unit/web-runtime/utils.test.ts b/test/unit/web-runtime/utils.test.ts new file mode 100644 index 0000000000000..fce8f5483c000 --- /dev/null +++ b/test/unit/web-runtime/utils.test.ts @@ -0,0 +1,121 @@ +/* eslint-env jest */ +import { NextURL } from 'next/dist/server/web/next-url' + +it('has the right shape', () => { + const parsed = new NextURL('/about?param1=value1') + expect(parsed).toBeInstanceOf(URL) +}) + +it('allows to format relative urls', async () => { + const parsed = new NextURL('/about?param1=value1') + expect(parsed.basePath).toEqual('') + expect(parsed.hostname).toEqual('') + expect(parsed.host).toEqual('') + expect(parsed.href).toEqual('/about?param1=value1') + + parsed.pathname = '/hihi' + expect(parsed.href).toEqual('/hihi?param1=value1') +}) + +it('allows to change the host of a relative url', () => { + const parsed = new NextURL('/about?param1=value1') + expect(parsed.hostname).toEqual('') + expect(parsed.host).toEqual('') + expect(parsed.href).toEqual('/about?param1=value1') + + parsed.hostname = 'foo.com' + expect(parsed.hostname).toEqual('foo.com') + expect(parsed.host).toEqual('foo.com') + expect(parsed.href).toEqual('https://foo.com/about?param1=value1') + expect(parsed.toString()).toEqual('https://foo.com/about?param1=value1') +}) + +it('allows to change the hostname of a relative url', () => { + const url = new NextURL('/example') + url.hostname = 'foo.com' + expect(url.toString()).toEqual('https://foo.com/example') +}) + +it('allows to remove the hostname of an absolute url', () => { + const url = new NextURL('https://foo.com/example') + url.hostname = '' + expect(url.toString()).toEqual('/example') +}) + +it('allows to change the whole href of an absolute url', () => { + const url = new NextURL('https://localhost.com/foo') + expect(url.hostname).toEqual('localhost.com') + expect(url.protocol).toEqual('https:') + expect(url.host).toEqual('localhost.com') + + url.href = '/foo' + expect(url.hostname).toEqual('') + expect(url.protocol).toEqual('') + expect(url.host).toEqual('') +}) + +it('allows to update search params', () => { + const url = new NextURL('/example') + url.searchParams.set('foo', 'bar') + expect(url.search).toEqual('?foo=bar') + expect(url.toString()).toEqual('/example?foo=bar') +}) + +it('parses and formats the basePath', () => { + const url = new NextURL('/root/example', { + basePath: '/root', + }) + + expect(url.basePath).toEqual('/root') + expect(url.pathname).toEqual('/example') + expect(url.toString()).toEqual('/root/example') + + const url2 = new NextURL('https://foo.com/root/bar', { + basePath: '/root', + }) + + expect(url2.basePath).toEqual('/root') + expect(url2.pathname).toEqual('/bar') + expect(url2.toString()).toEqual('https://foo.com/root/bar') + + url2.basePath = '/test' + expect(url2.basePath).toEqual('/test') + expect(url2.pathname).toEqual('/bar') + expect(url2.toString()).toEqual('https://foo.com/test/bar') + + const url3 = new NextURL('https://foo.com/example', { + basePath: '/root', + }) + + expect(url3.basePath).toEqual('') + + url3.href = '/root/example' + expect(url.basePath).toEqual('/root') + expect(url.pathname).toEqual('/example') + expect(url.toString()).toEqual('/root/example') +}) + +it('parses and formats the default locale', () => { + const url = new NextURL('/es/bar', { + basePath: '/root', + i18n: { + defaultLocale: 'en', + locales: ['en', 'es', 'fr'], + }, + }) + + expect(url.locale).toEqual('es') + expect(url.toString()).toEqual('/es/bar') + + url.basePath = '/root' + expect(url.locale).toEqual('es') + expect(url.toString()).toEqual('/root/es/bar') + + url.locale = 'en' + expect(url.locale).toEqual('en') + expect(url.toString()).toEqual('/root/bar') + + url.locale = 'fr' + expect(url.locale).toEqual('fr') + expect(url.toString()).toEqual('/root/fr/bar') +}) diff --git a/yarn.lock b/yarn.lock index f2be64e0a0488..51c1d51f8a470 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3899,6 +3899,34 @@ dependencies: "@octokit/openapi-types" "^8.2.1" +"@peculiar/asn1-schema@^2.0.32", "@peculiar/asn1-schema@^2.0.38": + version "2.0.38" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.0.38.tgz#98b6f12daad275ecd6774dfe31fb62f362900412" + integrity sha512-zZ64UpCTm9me15nuCpPgJghSdbEm8atcDQPCyK+bKXjZAQ1735NCZXCSCfbckbQ4MH36Rm9403n/qMq77LFDzQ== + dependencies: + "@types/asn1js" "^2.0.2" + asn1js "^2.1.1" + pvtsutils "^1.2.0" + tslib "^2.3.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz#ff02008612e67ab7cc2a92fce04a7f0e2a04b71c" + integrity sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ== + dependencies: + "@peculiar/asn1-schema" "^2.0.32" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.1.6" + tslib "^2.2.0" + webcrypto-core "^1.2.0" + "@polka/url@^1.0.0-next.9": version "1.0.0-next.11" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71" @@ -4299,6 +4327,11 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.1.tgz#78b5433344e2f92e8b306c06a5622c50c245bf6b" integrity sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg== +"@types/asn1js@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/asn1js/-/asn1js-2.0.2.tgz#bb1992291381b5f06e22a829f2ae009267cdf8c5" + integrity sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA== + "@types/async-retry@1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@types/async-retry/-/async-retry-1.2.1.tgz#fa9ac165907a8ee78f4924f4e393b656c65b5bb4" @@ -4828,10 +4861,20 @@ version "0.2.1" resolved "https://registry.yarnpkg.com/@types/text-table/-/text-table-0.2.1.tgz#39c4d4a058a82f677392dfd09976e83d9b4c9264" +"@types/ua-parser-js@0.7.36": + version "0.7.36" + resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz#9bd0b47f26b5a3151be21ba4ce9f5fa457c5f190" + integrity sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ== + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" +"@types/uuid@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.1.tgz#1a32969cf8f0364b3d8c8af9cc3555b7805df14f" + integrity sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg== + "@types/validate-npm-package-name@3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#0bc835adc7d6f41cf96a59b591fe8699468f6fab" @@ -5870,6 +5913,13 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" +asn1js@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-2.1.1.tgz#bb3896191ebb5fb1caeda73436a6c6e20a2eedff" + integrity sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g== + dependencies: + pvutils latest + assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" @@ -9674,6 +9724,14 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= +formdata-node@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.3.0.tgz#77be2add9092cbd1e1f4d35bc3293a89be117a04" + integrity sha512-TwqhWUZd2jB5l0kUhhcy1XYNsXq46NH6k60zmiu7xsxMztul+cCMuPSAQrSDV62zznhBKJdA9O+zeWj5i5Pbfg== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.1" + formidable@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" @@ -13855,6 +13913,11 @@ node-dir@^0.1.17: dependencies: minimatch "^3.0.2" +node-domexception@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-emoji@^1.8.1: version "1.10.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" @@ -16154,6 +16217,18 @@ putasset@^5.0.3: try-to-catch "^3.0.0" yargs-parser "^18.1.1" +pvtsutils@^1.1.6, pvtsutils@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.2.0.tgz#619e4767093d23cd600482600c16f4c36d3025bb" + integrity sha512-IDefMJEQl7HX0FP2hIKJFnAR11klP1js2ixCrOaMhe3kXFK6RQ2ABUCuwWaaD4ib0hSbh2fGTICvWJJhDfNecA== + dependencies: + tslib "^2.2.0" + +pvutils@latest: + version "1.0.17" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.0.17.tgz#ade3c74dfe7178944fe44806626bd2e249d996bf" + integrity sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ== + q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -18818,6 +18893,11 @@ tslib@2.0.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ== +tslib@^2.0.0, tslib@^2.3.0, tslib@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tslib@^2.0.1, tslib@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" @@ -18949,6 +19029,11 @@ typescript@^4.1.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== +ua-parser-js@0.7.28: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + uglify-js@^3.1.4: version "3.7.3" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a" @@ -19428,6 +19513,11 @@ utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" +uuid@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + uuid@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" @@ -19637,11 +19727,32 @@ web-streams-polyfill@2.1.1: resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-2.1.1.tgz#2c82b6193849ccb9efaa267772c28260ef68d6d2" integrity sha512-dlNpL2aab3g8CKfGz6rl8FNmGaRWLLn2g/DtSc9IjB30mEdE6XxzPfPSig5BwGSzI+oLxHyETrQGKjrVVhbLCg== +web-streams-polyfill@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.0.3.tgz#f49e487eedeca47a207c1aee41ee5578f884b42f" + integrity sha512-d2H/t0eqRNM4w2WvmTdoeIvzAUSpK7JmATB8Nr2lb7nQ9BTIJVjbQ/TRFVEh2gUH1HwclPdoPtfMoFfetXaZnA== + +web-streams-polyfill@4.0.0-beta.1: + version "4.0.0-beta.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz#3b19b9817374b7cee06d374ba7eeb3aeb80e8c95" + integrity sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ== + web-vitals@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.0.tgz#ebf5428875ab5bfc1056c2e80cd177001287de7b" integrity sha512-npEyJP8jHf3J71t1tRTEtz9FeKp8H2udWJUUq5ykfPhhstr//TUxiYhIEzLNwk4zv2ybAilMn7v7N6Mxmuitmg== +webcrypto-core@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.2.1.tgz#33f451a4c4faf159e74589436c80ca33998abad6" + integrity sha512-5+h1/e/A4eegCRTg+oQ9ehTJRTMwFhZazJ2RH1FP0VC3q1/0xl7x6SzzTwPxd/VTGc7kjuSEJGnfNgoLe5jNRQ== + dependencies: + "@peculiar/asn1-schema" "^2.0.38" + "@peculiar/json-schema" "^1.1.12" + asn1js "^2.1.1" + pvtsutils "^1.2.0" + tslib "^2.3.1" + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" From 7db5c9841e0086537c3afd8f1cd9c74bac4cad72 Mon Sep 17 00:00:00 2001 From: "jj@jjsweb.site" Date: Wed, 20 Oct 2021 13:03:26 -0500 Subject: [PATCH 2/8] v11.1.3-canary.88 --- 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/package.json | 12 ++++++------ packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- 14 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lerna.json b/lerna.json index 0f701a205a2c1..a85359be8363f 100644 --- a/lerna.json +++ b/lerna.json @@ -17,5 +17,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "11.1.3-canary.87" + "version": "11.1.3-canary.88" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index 4b645e6182bbe..b6c7b44364a7e 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 62d369568416a..1468654cfbe85 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "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": "11.1.3-canary.87", + "@next/eslint-plugin-next": "11.1.3-canary.88", "@rushstack/eslint-patch": "^1.0.6", "@typescript-eslint/parser": "^4.20.0", "eslint-import-resolver-node": "^0.3.4", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 6d438f05b88dd..3d11a7ac1d89c 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": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "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 988a61be0c7e6..8a20fb1841b20 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index c99a002653bbf..52cbad0cadc92 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index 94b94a0b0cd76..6ebbff0fd1a2f 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 48b9a63500ef6..3e6060d9458b7 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 33c6bed3bdc9a..25b03c0807db2 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "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 5bde38356d4b7..867b723a51327 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "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 bd0db7d2e7b94..a91befabccb36 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next/package.json b/packages/next/package.json index bd706e9e98039..bbf2b265556d1 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -68,10 +68,10 @@ "dependencies": { "@babel/runtime": "7.15.4", "@hapi/accept": "5.0.2", - "@next/env": "11.1.3-canary.87", - "@next/polyfill-module": "11.1.3-canary.87", - "@next/react-dev-overlay": "11.1.3-canary.87", - "@next/react-refresh-utils": "11.1.3-canary.87", + "@next/env": "11.1.3-canary.88", + "@next/polyfill-module": "11.1.3-canary.88", + "@next/react-dev-overlay": "11.1.3-canary.88", + "@next/react-refresh-utils": "11.1.3-canary.88", "@node-rs/helper": "1.2.1", "assert": "2.0.0", "browserify-zlib": "0.2.0", @@ -152,7 +152,7 @@ "@babel/traverse": "7.15.0", "@babel/types": "7.15.0", "@napi-rs/cli": "1.1.0", - "@next/polyfill-nomodule": "11.1.3-canary.87", + "@next/polyfill-nomodule": "11.1.3-canary.88", "@peculiar/webcrypto": "1.1.7", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index dbaff350967da..532d40905deba 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": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "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 49299b5d22751..7790514138cf2 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": "11.1.3-canary.87", + "version": "11.1.3-canary.88", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js", From 8fa5f3418696ddf691b4713b4c0b6fb42c32b254 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Wed, 20 Oct 2021 11:21:12 -0700 Subject: [PATCH 3/8] [examples] Fix deploy button URL in `with-sentry` example (#30112) This updates the URL behind the "Deploy to Vercel" button in the readme of the `with-sentry` example. Changes which have been made: - Addition of a required integration - Removal of the required env var, as it's set by the integration - [x] Make sure the linting passes --- examples/with-sentry/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/with-sentry/README.md b/examples/with-sentry/README.md index c44e07980c44e..fbc56472effef 100644 --- a/examples/with-sentry/README.md +++ b/examples/with-sentry/README.md @@ -21,7 +21,7 @@ It only takes a few steps to create and deploy your own version of this example You can deploy a copy of this project directly to [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example). -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-sentry&project-name=nextjs-sentry-example&repository-name=nextjs-sentry-example&env=NEXT_PUBLIC_SENTRY_DSN&envDescription=DSN%20Key%20required%20by%20Sentry&envLink=https://github.com/vercel/next.js/tree/canary/examples/with-sentry%23step-1-enable-error-tracking) +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-sentry&project-name=nextjs-sentry-example&repository-name=nextjs-sentry-example&integration-ids=oac_5lUsiANun1DEzgLg0NZx5Es3) This will clone this example to your GitHub org, create a linked project in Vercel, and prompt you to install the Vercel Sentry Integration. (You can read more about the integration [on Vercel](https://vercel.com/integrations/sentry) and in [the Sentry docs](https://docs.sentry.io/product/integrations/deployment/vercel/).) From dda14e7f4bf1b25254752cefe130b03580067974 Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 20 Oct 2021 15:05:54 -0400 Subject: [PATCH 4/8] Add image example with background color using blurDataURL (#30111) Demo: https://nextjs-examples-image-component-igy6n5cs1.vercel.sh/ --- docs/api-reference/next/image.md | 2 ++ examples/image-component/pages/color.js | 42 ++++++++++++++++++++++++ examples/image-component/pages/index.js | 7 +++- examples/image-component/public/cat.jpg | Bin 0 -> 516849 bytes examples/image-component/public/dog.jpg | Bin 0 -> 378459 bytes 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 examples/image-component/pages/color.js create mode 100644 examples/image-component/public/cat.jpg create mode 100644 examples/image-component/public/dog.jpg diff --git a/docs/api-reference/next/image.md b/docs/api-reference/next/image.md index 5fffe1b5213c4..04f14125aab9f 100644 --- a/docs/api-reference/next/image.md +++ b/docs/api-reference/next/image.md @@ -152,6 +152,7 @@ Try it out: - [Demo the `blur` placeholder](https://image-component.nextjs.gallery/placeholder) - [Demo the shimmer effect with `blurDataURL` prop](https://image-component.nextjs.gallery/shimmer) +- [Demo the color effect with `blurDataURL` prop](https://image-component.nextjs.gallery/color) ## Advanced Props @@ -208,6 +209,7 @@ Try it out: - [Demo the default `blurDataURL` prop](https://image-component.nextjs.gallery/placeholder) - [Demo the shimmer effect with `blurDataURL` prop](https://image-component.nextjs.gallery/shimmer) +- [Demo the color effect with `blurDataURL` prop](https://image-component.nextjs.gallery/color) You can also [generate a solid color Data URL](https://png-pixel.com) to match the image. diff --git a/examples/image-component/pages/color.js b/examples/image-component/pages/color.js new file mode 100644 index 0000000000000..dca5d6d3b9722 --- /dev/null +++ b/examples/image-component/pages/color.js @@ -0,0 +1,42 @@ +import Image from 'next/image' +import ViewSource from '../components/view-source' + +// Pixel GIF code adapted from https://stackoverflow.com/a/33919020/266535 +const keyStr = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + +const triplet = (e1, e2, e3) => + keyStr.charAt(e1 >> 2) + + keyStr.charAt(((e1 & 3) << 4) | (e2 >> 4)) + + keyStr.charAt(((e2 & 15) << 2) | (e3 >> 6)) + + keyStr.charAt(e3 & 63) + +const rgbDataURL = (r, g, b) => + `data:image/gif;base64,R0lGODlhAQABAPAA${ + triplet(0, r, g) + triplet(b, 255, 255) + }/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==` + +const Color = () => ( +
+ +

Image Component With Color Data URL

+ Dog + Cat +
+) + +export default Color diff --git a/examples/image-component/pages/index.js b/examples/image-component/pages/index.js index df3f3d466a084..a676dc8666021 100644 --- a/examples/image-component/pages/index.js +++ b/examples/image-component/pages/index.js @@ -84,7 +84,12 @@ const Index = () => (
  • - placeholder="blur" with custom blurDataURL + placeholder="blur" with animated shimmer blurDataURL + +
  • +
  • + + placeholder="blur" with solid color blurDataURL
  • diff --git a/examples/image-component/public/cat.jpg b/examples/image-component/public/cat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32a673af2f5bc830e94b2205a71658c47d4245a8 GIT binary patch literal 516849 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�oGltD6XV%Li( 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 ID{(LFL7=Sj%H&sG&pGyZ*Eb)U3%?o4 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 LqY#+SMf4V#ga(lK73*X2U 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
    1. +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 NVW?Twt0?n-|Jm-sk=6hJ literal 0 HcmV?d00001 diff --git a/examples/image-component/public/dog.jpg b/examples/image-component/public/dog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..42093847732a8495b658b2b64831ed83fdcc9c53 GIT binary patch literal 378459 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 z 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%0D8U%Xt?C<%P1_ri`@(FjtTFT$ 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 literal 0 HcmV?d00001 From f068319d4deb9d83210407e96aff81e9e1b4a979 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Wed, 20 Oct 2021 14:06:43 -0500 Subject: [PATCH 5/8] Enable shared worker pool by default (#30110) --- errors/static-page-generation-timeout.md | 2 +- packages/next/build/index.ts | 2 +- packages/next/export/index.ts | 2 +- packages/next/server/config-shared.ts | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/errors/static-page-generation-timeout.md b/errors/static-page-generation-timeout.md index 6cef054dc5ddd..419731812b4dd 100644 --- a/errors/static-page-generation-timeout.md +++ b/errors/static-page-generation-timeout.md @@ -11,7 +11,7 @@ When restarted it will retry all uncompleted jobs, but if a job was unsuccessful - Make sure that there is no infinite loop during execution. - Make sure all Promises in `getStaticPaths`/`getStaticProps` `resolve` or `reject` correctly. - Avoid very long timeouts for network requests. -- Increase the timeout by changing the `experimental.staticPageGenerationTimeout` configuration option (default `60` in seconds). +- Increase the timeout by changing the `staticPageGenerationTimeout` configuration option (default `60` in seconds). ### Useful Links diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index 86cb451f12911..4655e6c2d539a 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -691,7 +691,7 @@ export default async function build( await promises.readFile(buildManifestPath, 'utf8') ) as BuildManifest - const timeout = config.experimental.staticPageGenerationTimeout || 0 + const timeout = config.staticPageGenerationTimeout || 0 const sharedPool = config.experimental.sharedPool || false const staticWorker = sharedPool ? require.resolve('./worker') diff --git a/packages/next/export/index.ts b/packages/next/export/index.ts index 41156234595fd..531662fcc2d5b 100644 --- a/packages/next/export/index.ts +++ b/packages/next/export/index.ts @@ -520,7 +520,7 @@ export default async function exportApp( ) } - const timeout = configuration?.experimental.staticPageGenerationTimeout || 0 + const timeout = configuration?.staticPageGenerationTimeout || 0 let infoPrinted = false let exportPage: typeof import('./worker').default let endWorker: () => Promise diff --git a/packages/next/server/config-shared.ts b/packages/next/server/config-shared.ts index 1a7346b3f1452..094dd67ecd2f0 100644 --- a/packages/next/server/config-shared.ts +++ b/packages/next/server/config-shared.ts @@ -114,6 +114,7 @@ export type NextConfig = { [key: string]: any } & { webpack5?: false strictPostcssConfiguration?: boolean } + staticPageGenerationTimeout?: number crossOrigin?: false | 'anonymous' | 'use-credentials' experimental?: { swcMinify?: boolean @@ -141,7 +142,6 @@ export type NextConfig = { [key: string]: any } & { gzipSize?: boolean craCompat?: boolean esmExternals?: boolean | 'loose' - staticPageGenerationTimeout?: number isrMemoryCacheSize?: number outputFileTracing?: boolean concurrentFeatures?: boolean @@ -198,6 +198,7 @@ export const defaultConfig: NextConfig = { httpAgentOptions: { keepAlive: true, }, + staticPageGenerationTimeout: 60, experimental: { swcLoader: false, swcMinify: false, @@ -206,7 +207,7 @@ export const defaultConfig: NextConfig = { (Number(process.env.CIRCLE_NODE_TOTAL) || (os.cpus() || { length: 1 }).length) - 1 ), - sharedPool: false, + sharedPool: true, plugins: false, profiling: false, isrFlushToDisk: true, @@ -221,7 +222,6 @@ export const defaultConfig: NextConfig = { gzipSize: true, craCompat: false, esmExternals: true, - staticPageGenerationTimeout: 60, // default to 50MB limit isrMemoryCacheSize: 50 * 1024 * 1024, outputFileTracing: false, From 3b34626fc879364312a625e642f423c673ace82c Mon Sep 17 00:00:00 2001 From: Thibaut SABOT <9283289+thibautsabot@users.noreply.github.com> Date: Wed, 20 Oct 2021 21:35:32 +0200 Subject: [PATCH 6/8] docs: remove mention of experimental pageDataCollectionTimeout (#30107) Removing the mention of `experimental.pageDataCollectionTimeout` in the docs as it doesn't exist anymore. Related discussion: https://github.com/vercel/next.js/discussions/29992 --- errors/page-data-collection-timeout.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/errors/page-data-collection-timeout.md b/errors/page-data-collection-timeout.md index 12332bfb430be..431b61e4588df 100644 --- a/errors/page-data-collection-timeout.md +++ b/errors/page-data-collection-timeout.md @@ -11,7 +11,7 @@ When restarted it will retry all uncompleted jobs, but if a job was unsuccessful - Make sure that there is no infinite loop during execution. - Make sure all Promises in `getStaticPaths` `resolve` or `reject` correctly. - Avoid very long timeouts for network requests. -- Increase the timeout by changing the `experimental.pageDataCollectionTimeout` configuration option (default `60` in seconds). +- Increase the timeout by changing the `config.staticPageGenerationTimeout` configuration option (default `60` in seconds). ### Useful Links From 610d2b37c86adb10dc15e8644c096fecd15f733b Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Wed, 20 Oct 2021 23:39:55 +0200 Subject: [PATCH 7/8] use xxhash64 by default (#30095) Node.js 17 stopped supporting md4 as hash function and we wanted to use a faster hash function anyway. Fixes: https://github.com/vercel/next.js/issues/30078 --- packages/next/build/webpack-config.ts | 2 ++ .../build-output/test/index.test.js | 35 +++++++------------ 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index eb184df4a5d51..edd9cb480781d 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -1012,6 +1012,8 @@ export default async function getBaseWebpackConfig( strictModuleExceptionHandling: true, crossOriginLoading: crossOrigin, webassemblyModuleFilename: 'static/wasm/[modulehash].wasm', + hashFunction: 'xxhash64', + hashDigestLength: 16, }, performance: false, resolve: resolveConfig, diff --git a/test/integration/build-output/test/index.test.js b/test/integration/build-output/test/index.test.js index b4a23cffe96cc..527f96e36ab7a 100644 --- a/test/integration/build-output/test/index.test.js +++ b/test/integration/build-output/test/index.test.js @@ -11,16 +11,7 @@ const fixturesDir = join(__dirname, '..', 'fixtures') const nextConfig = new File(join(fixturesDir, 'basic-app/next.config.js')) describe('Build Output', () => { - const configs = [{}] - for (const gzipSize of [true, false]) { - configs.push(...configs.map((c) => ({ ...c, gzipSize }))) - } - for (const sharedPool of [true]) { - configs.push(...configs.map((c) => ({ ...c, sharedPool }))) - } - for (const workerThreads of [true]) { - configs.push(...configs.map((c) => ({ ...c, workerThreads }))) - } + const configs = [{}, { gzipSize: false }] for (const experimental of configs) { describe(`Basic Application Output (experimental: ${JSON.stringify( @@ -55,9 +46,9 @@ describe('Build Output', () => { expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) expect(stdout).toMatch(/\+ First Load JS shared by all [ 0-9.]* kB/) - expect(stdout).toMatch(/ chunks\/main\.[0-9a-z]{6}\.js [ 0-9.]* kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js [ 0-9.]* kB/) expect(stdout).toMatch( - / chunks\/framework\.[0-9a-z]{6}\.js [ 0-9. ]* kB/ + / chunks\/framework-[0-9a-z]{16}\.js [ 0-9. ]* kB/ ) expect(stdout).not.toContain(' /_document') @@ -106,10 +97,10 @@ describe('Build Output', () => { const err404FirstLoad = parsePageFirstLoad('/404') const sharedByAll = parseSharedSize('shared by all') - const _appSize = parseSharedSize('_app\\..*?\\.js') - const webpackSize = parseSharedSize('webpack\\..*?\\.js') - const mainSize = parseSharedSize('main\\..*?\\.js') - const frameworkSize = parseSharedSize('framework\\..*?\\.js') + const _appSize = parseSharedSize('_app-.*?\\.js') + const webpackSize = parseSharedSize('webpack-.*?\\.js') + const mainSize = parseSharedSize('main-.*?\\.js') + const frameworkSize = parseSharedSize('framework-.*?\\.js') for (const size of [ indexSize, @@ -215,9 +206,9 @@ describe('Build Output', () => { expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) expect(stdout).toMatch(/\/_app (.* )?\d{1,} B/) expect(stdout).toMatch(/\+ First Load JS shared by all \s*[0-9.]+ kB/) - expect(stdout).toMatch(/ chunks\/main\.[0-9a-z]{6}\.js \s*[0-9.]+ kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js \s*[0-9.]+ kB/) expect(stdout).toMatch( - / chunks\/framework\.[0-9a-z]{6}\.js \s*[0-9.]+ kB/ + / chunks\/framework-[0-9a-z]{16}\.js \s*[0-9.]+ kB/ ) expect(stdout).not.toContain(' /_document') @@ -245,9 +236,9 @@ describe('Build Output', () => { expect(stdout).toMatch(/\/amp (.* )?AMP/) expect(stdout).toMatch(/\/hybrid (.* )?[0-9.]+ B/) expect(stdout).toMatch(/\+ First Load JS shared by all \s*[0-9.]+ kB/) - expect(stdout).toMatch(/ chunks\/main\.[0-9a-z]{6}\.js \s*[0-9.]+ kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js \s*[0-9.]+ kB/) expect(stdout).toMatch( - / chunks\/framework\.[0-9a-z]{6}\.js \s*[0-9.]+ kB/ + / chunks\/framework-[0-9a-z]{16}\.js \s*[0-9.]+ kB/ ) expect(stdout).not.toContain(' /_document') @@ -273,8 +264,8 @@ describe('Build Output', () => { expect(stdout).toMatch(/\/ (.* )?\d{1,} B/) expect(stdout).toMatch(/λ \/404 (.* )?\d{1,} B/) expect(stdout).toMatch(/\+ First Load JS shared by all [ 0-9.]* kB/) - expect(stdout).toMatch(/ chunks\/main\.[0-9a-z]{6}\.js [ 0-9.]* kB/) - expect(stdout).toMatch(/ chunks\/framework\.[0-9a-z]{6}\.js [ 0-9. ]* kB/) + expect(stdout).toMatch(/ chunks\/main-[0-9a-z]{16}\.js [ 0-9.]* kB/) + expect(stdout).toMatch(/ chunks\/framework-[0-9a-z]{16}\.js [ 0-9. ]* kB/) expect(stdout).not.toContain(' /_document') expect(stdout).not.toContain(' /_app') From 62895a8b29374430c7c35d1648c6c657b7159342 Mon Sep 17 00:00:00 2001 From: "jj@jjsweb.site" Date: Wed, 20 Oct 2021 16:42:42 -0500 Subject: [PATCH 8/8] v11.1.3-canary.89 --- 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/package.json | 12 ++++++------ packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- 14 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lerna.json b/lerna.json index a85359be8363f..66c6e0872e0bd 100644 --- a/lerna.json +++ b/lerna.json @@ -17,5 +17,5 @@ "registry": "https://registry.npmjs.org/" } }, - "version": "11.1.3-canary.88" + "version": "11.1.3-canary.89" } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index b6c7b44364a7e..089777f1889d0 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -1,6 +1,6 @@ { "name": "create-next-app", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "keywords": [ "react", "next", diff --git a/packages/eslint-config-next/package.json b/packages/eslint-config-next/package.json index 1468654cfbe85..26b031f751986 100644 --- a/packages/eslint-config-next/package.json +++ b/packages/eslint-config-next/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-next", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "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": "11.1.3-canary.88", + "@next/eslint-plugin-next": "11.1.3-canary.89", "@rushstack/eslint-patch": "^1.0.6", "@typescript-eslint/parser": "^4.20.0", "eslint-import-resolver-node": "^0.3.4", diff --git a/packages/eslint-plugin-next/package.json b/packages/eslint-plugin-next/package.json index 3d11a7ac1d89c..202ca9862d99c 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": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "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 8a20fb1841b20..81109f9f89bb3 100644 --- a/packages/next-bundle-analyzer/package.json +++ b/packages/next-bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@next/bundle-analyzer", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-codemod/package.json b/packages/next-codemod/package.json index 52cbad0cadc92..894a7972f44f9 100644 --- a/packages/next-codemod/package.json +++ b/packages/next-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@next/codemod", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "license": "MIT", "dependencies": { "chalk": "4.1.0", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index 6ebbff0fd1a2f..0ac81432195d3 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -1,6 +1,6 @@ { "name": "@next/env", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "keywords": [ "react", "next", diff --git a/packages/next-mdx/package.json b/packages/next-mdx/package.json index 3e6060d9458b7..d5edbe17b1112 100644 --- a/packages/next-mdx/package.json +++ b/packages/next-mdx/package.json @@ -1,6 +1,6 @@ { "name": "@next/mdx", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "main": "index.js", "license": "MIT", "repository": { diff --git a/packages/next-plugin-storybook/package.json b/packages/next-plugin-storybook/package.json index 25b03c0807db2..25c29a2f9fd65 100644 --- a/packages/next-plugin-storybook/package.json +++ b/packages/next-plugin-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@next/plugin-storybook", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "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 867b723a51327..01e544941855d 100644 --- a/packages/next-polyfill-module/package.json +++ b/packages/next-polyfill-module/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-module", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "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 a91befabccb36..864e467a36160 100644 --- a/packages/next-polyfill-nomodule/package.json +++ b/packages/next-polyfill-nomodule/package.json @@ -1,6 +1,6 @@ { "name": "@next/polyfill-nomodule", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "description": "A polyfill for non-dead, nomodule browsers.", "main": "dist/polyfill-nomodule.js", "license": "MIT", diff --git a/packages/next/package.json b/packages/next/package.json index bbf2b265556d1..d740d19a43df8 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "next", - "version": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "description": "The React Framework", "main": "./dist/server/next.js", "license": "MIT", @@ -68,10 +68,10 @@ "dependencies": { "@babel/runtime": "7.15.4", "@hapi/accept": "5.0.2", - "@next/env": "11.1.3-canary.88", - "@next/polyfill-module": "11.1.3-canary.88", - "@next/react-dev-overlay": "11.1.3-canary.88", - "@next/react-refresh-utils": "11.1.3-canary.88", + "@next/env": "11.1.3-canary.89", + "@next/polyfill-module": "11.1.3-canary.89", + "@next/react-dev-overlay": "11.1.3-canary.89", + "@next/react-refresh-utils": "11.1.3-canary.89", "@node-rs/helper": "1.2.1", "assert": "2.0.0", "browserify-zlib": "0.2.0", @@ -152,7 +152,7 @@ "@babel/traverse": "7.15.0", "@babel/types": "7.15.0", "@napi-rs/cli": "1.1.0", - "@next/polyfill-nomodule": "11.1.3-canary.88", + "@next/polyfill-nomodule": "11.1.3-canary.89", "@peculiar/webcrypto": "1.1.7", "@taskr/clear": "1.1.0", "@taskr/esnext": "1.1.0", diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 532d40905deba..d8358fec3b9a1 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": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "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 7790514138cf2..db321443d1442 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": "11.1.3-canary.88", + "version": "11.1.3-canary.89", "description": "An experimental package providing utilities for React Refresh.", "repository": { "url": "vercel/next.js",