Created
July 14, 2021 09:28
-
-
Save bordeo/8fd4e87eff72ad9c0395a2dda9c35f88 to your computer and use it in GitHub Desktop.
Patches
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js b/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js | |
index afa2025..ec325f7 100644 | |
--- a/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js | |
+++ b/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js | |
@@ -22,7 +22,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR | |
// Modified to put `webpack` and `modules` under `loadableGenerated` to be backwards compatible with next/dynamic which has a `modules` key | |
// Modified to support `dynamic(import('something'))` and `dynamic(import('something'), options) | |
function _default({types:t}){return{visitor:{ImportDeclaration(path,state){let source=path.node.source.value;if(source!=='next/dynamic')return;let defaultSpecifier=path.get('specifiers').find(specifier=>{return specifier.isImportDefaultSpecifier();});if(!defaultSpecifier)return;const bindingName=defaultSpecifier.node.local.name;const binding=path.scope.getBinding(bindingName);if(!binding){return;}binding.referencePaths.forEach(refPath=>{let callExpression=refPath.parentPath;if(callExpression.isMemberExpression()&&callExpression.node.computed===false){const property=callExpression.get('property');if(!Array.isArray(property)&&property.isIdentifier({name:'Map'})){callExpression=callExpression.parentPath;}}if(!callExpression.isCallExpression())return;const callExpression_=callExpression;let args=callExpression_.get('arguments');if(args.length>2){throw callExpression_.buildCodeFrameError('next/dynamic only accepts 2 arguments');}if(!args[0]){return;}let loader;let options;if(args[0].isObjectExpression()){options=args[0];}else{if(!args[1]){callExpression_.node.arguments.push(t.objectExpression([]));}// This is needed as the code is modified above | |
-args=callExpression_.get('arguments');loader=args[0];options=args[1];}if(!options.isObjectExpression())return;const options_=options;let properties=options_.get('properties');let propertiesMap={};properties.forEach(property=>{const key=property.get('key');propertiesMap[key.node.name]=property;});if(propertiesMap.loadableGenerated){return;}if(propertiesMap.loader){loader=propertiesMap.loader.get('value');}if(propertiesMap.modules){loader=propertiesMap.modules.get('value');}if(!loader||Array.isArray(loader)){return;}const dynamicImports=[];const dynamicKeys=[];loader.traverse({Import(importPath){var _state$file$opts$call;const importArguments=importPath.parentPath.get('arguments');if(!Array.isArray(importArguments))return;const node=importArguments[0].node;dynamicImports.push(node);dynamicKeys.push(t.binaryExpression('+',t.stringLiteral(((_state$file$opts$call=state.file.opts.caller)!=null&&_state$file$opts$call.pagesDir?(0,_path.relative)(state.file.opts.caller.pagesDir,state.file.opts.filename):state.file.opts.filename)+' -> '),node));}});if(!dynamicImports.length)return;options.node.properties.push(t.objectProperty(t.identifier('loadableGenerated'),t.objectExpression([t.objectProperty(t.identifier('webpack'),t.arrowFunctionExpression([],t.arrayExpression(dynamicImports.map(dynamicImport=>{return t.callExpression(t.memberExpression(t.identifier('require'),t.identifier('resolveWeak')),[dynamicImport]);})))),t.objectProperty(t.identifier('modules'),t.arrayExpression(dynamicKeys))])));// Turns `dynamic(import('something'))` into `dynamic(() => import('something'))` for backwards compat. | |
+args=callExpression_.get('arguments');loader=args[0];options=args[1];}if(!options.isObjectExpression())return;const options_=options;let properties=options_.get('properties');let propertiesMap={};properties.forEach(property=>{const key=property.get('key');propertiesMap[key.node.name]=property;});if(propertiesMap.loadableGenerated){return;}if(propertiesMap.loader){loader=propertiesMap.loader.get('value');}if(propertiesMap.modules){loader=propertiesMap.modules.get('value');}if(!loader||Array.isArray(loader)){return;}const dynamicImports=[];const dynamicKeys=[];loader.traverse({Import(importPath){var _state$file$opts$call;const importArguments=importPath.parentPath.get('arguments');if(!Array.isArray(importArguments))return;const node=importArguments[0].node;dynamicImports.push(node);dynamicKeys.push(t.binaryExpression('+',t.stringLiteral(((_state$file$opts$call=state.file.opts.caller)!=null&&_state$file$opts$call.pagesDirs[0]?(0,_path.relative)(state.file.opts.caller.pagesDirs[0],state.file.opts.filename):state.file.opts.filename)+' -> '),node));}});if(!dynamicImports.length)return;options.node.properties.push(t.objectProperty(t.identifier('loadableGenerated'),t.objectExpression([t.objectProperty(t.identifier('webpack'),t.arrowFunctionExpression([],t.arrayExpression(dynamicImports.map(dynamicImport=>{return t.callExpression(t.memberExpression(t.identifier('require'),t.identifier('resolveWeak')),[dynamicImport]);})))),t.objectProperty(t.identifier('modules'),t.arrayExpression(dynamicKeys))])));// Turns `dynamic(import('something'))` into `dynamic(() => import('something'))` for backwards compat. | |
// This is the replicate the behavior in versions below Next.js 7 where we magically handled not executing the `import()` too. | |
// We'll deprecate this behavior and provide a codemod for it in 7.1. | |
if(loader.isCallExpression()){const arrowFunction=t.arrowFunctionExpression([],loader.node);loader.replaceWith(arrowFunction);}});}}};} | |
diff --git a/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js.map b/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js.map | |
index f8c9adc..1122e90 100644 | |
--- a/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js.map | |
+++ b/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"sources":["../../../../build/babel/plugins/react-loadable-plugin.ts"],"names":["types","t","visitor","ImportDeclaration","path","state","source","node","value","defaultSpecifier","get","find","specifier","isImportDefaultSpecifier","bindingName","local","name","binding","scope","getBinding","referencePaths","forEach","refPath","callExpression","parentPath","isMemberExpression","computed","property","Array","isArray","isIdentifier","isCallExpression","callExpression_","args","length","buildCodeFrameError","loader","options","isObjectExpression","arguments","push","objectExpression","options_","properties","propertiesMap","key","loadableGenerated","modules","dynamicImports","dynamicKeys","traverse","Import","importPath","importArguments","binaryExpression","stringLiteral","file","opts","caller","pagesDir","filename","objectProperty","identifier","arrowFunctionExpression","arrayExpression","map","dynamicImport","memberExpression","arrowFunction","replaceWith"],"mappings":"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","sourcesContent":["/**\nCOPYRIGHT (c) 2017-present James Kyle <[email protected]>\n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR\n*/\n// This file is https://github.com/jamiebuilds/react-loadable/blob/master/src/babel.js\n// Modified to also look for `next/dynamic`\n// Modified to put `webpack` and `modules` under `loadableGenerated` to be backwards compatible with next/dynamic which has a `modules` key\n// Modified to support `dynamic(import('something'))` and `dynamic(import('something'), options)\n\nimport {\n NodePath,\n PluginObj,\n types as BabelTypes,\n} from 'next/dist/compiled/babel/core'\n\nimport { relative as relativePath } from 'path'\n\nexport default function ({\n types: t,\n}: {\n types: typeof BabelTypes\n}): PluginObj {\n return {\n visitor: {\n ImportDeclaration(\n path: NodePath<BabelTypes.ImportDeclaration>,\n state: any\n ) {\n let source = path.node.source.value\n if (source !== 'next/dynamic') return\n\n let defaultSpecifier = path.get('specifiers').find((specifier) => {\n return specifier.isImportDefaultSpecifier()\n })\n\n if (!defaultSpecifier) return\n\n const bindingName = defaultSpecifier.node.local.name\n const binding = path.scope.getBinding(bindingName)\n\n if (!binding) {\n return\n }\n\n binding.referencePaths.forEach((refPath) => {\n let callExpression = refPath.parentPath\n\n if (\n callExpression.isMemberExpression() &&\n callExpression.node.computed === false\n ) {\n const property = callExpression.get('property')\n if (\n !Array.isArray(property) &&\n property.isIdentifier({ name: 'Map' })\n ) {\n callExpression = callExpression.parentPath\n }\n }\n\n if (!callExpression.isCallExpression()) return\n\n const callExpression_ = callExpression as NodePath<\n BabelTypes.CallExpression\n >\n\n let args = callExpression_.get('arguments')\n if (args.length > 2) {\n throw callExpression_.buildCodeFrameError(\n 'next/dynamic only accepts 2 arguments'\n )\n }\n\n if (!args[0]) {\n return\n }\n\n let loader\n let options\n\n if (args[0].isObjectExpression()) {\n options = args[0]\n } else {\n if (!args[1]) {\n callExpression_.node.arguments.push(t.objectExpression([]))\n }\n // This is needed as the code is modified above\n args = callExpression_.get('arguments')\n loader = args[0]\n options = args[1]\n }\n\n if (!options.isObjectExpression()) return\n const options_ = options as NodePath<BabelTypes.ObjectExpression>\n\n let properties = options_.get('properties')\n let propertiesMap: {\n [key: string]: NodePath<\n | BabelTypes.ObjectProperty\n | BabelTypes.ObjectMethod\n | BabelTypes.SpreadElement\n >\n } = {}\n\n properties.forEach((property) => {\n const key: any = property.get('key')\n propertiesMap[key.node.name] = property\n })\n\n if (propertiesMap.loadableGenerated) {\n return\n }\n\n if (propertiesMap.loader) {\n loader = propertiesMap.loader.get('value')\n }\n\n if (propertiesMap.modules) {\n loader = propertiesMap.modules.get('value')\n }\n\n if (!loader || Array.isArray(loader)) {\n return\n }\n const dynamicImports: BabelTypes.Expression[] = []\n const dynamicKeys: BabelTypes.Expression[] = []\n\n loader.traverse({\n Import(importPath) {\n const importArguments = importPath.parentPath.get('arguments')\n if (!Array.isArray(importArguments)) return\n const node: any = importArguments[0].node\n dynamicImports.push(node)\n dynamicKeys.push(\n t.binaryExpression(\n '+',\n t.stringLiteral(\n (state.file.opts.caller?.pagesDir\n ? relativePath(\n state.file.opts.caller.pagesDir,\n state.file.opts.filename\n )\n : state.file.opts.filename) + ' -> '\n ),\n node\n )\n )\n },\n })\n\n if (!dynamicImports.length) return\n\n options.node.properties.push(\n t.objectProperty(\n t.identifier('loadableGenerated'),\n t.objectExpression([\n t.objectProperty(\n t.identifier('webpack'),\n t.arrowFunctionExpression(\n [],\n t.arrayExpression(\n dynamicImports.map((dynamicImport) => {\n return t.callExpression(\n t.memberExpression(\n t.identifier('require'),\n t.identifier('resolveWeak')\n ),\n [dynamicImport]\n )\n })\n )\n )\n ),\n t.objectProperty(\n t.identifier('modules'),\n t.arrayExpression(dynamicKeys)\n ),\n ])\n )\n )\n\n // Turns `dynamic(import('something'))` into `dynamic(() => import('something'))` for backwards compat.\n // This is the replicate the behavior in versions below Next.js 7 where we magically handled not executing the `import()` too.\n // We'll deprecate this behavior and provide a codemod for it in 7.1.\n if (loader.isCallExpression()) {\n const arrowFunction = t.arrowFunctionExpression([], loader.node)\n loader.replaceWith(arrowFunction)\n }\n })\n },\n },\n }\n}\n"]} | |
\ No newline at end of file | |
+{"version":3,"sources":["../../../../build/babel/plugins/react-loadable-plugin.ts"],"names":["types","t","visitor","ImportDeclaration","path","state","source","node","value","defaultSpecifier","get","find","specifier","isImportDefaultSpecifier","bindingName","local","name","binding","scope","getBinding","referencePaths","forEach","refPath","callExpression","parentPath","isMemberExpression","computed","property","Array","isArray","isIdentifier","isCallExpression","callExpression_","args","length","buildCodeFrameError","loader","options","isObjectExpression","arguments","push","objectExpression","options_","properties","propertiesMap","key","loadableGenerated","modules","dynamicImports","dynamicKeys","traverse","Import","importPath","importArguments","binaryExpression","stringLiteral","file","opts","caller","pagesDirs","filename","objectProperty","identifier","arrowFunctionExpression","arrayExpression","map","dynamicImport","memberExpression","arrowFunction","replaceWith"],"mappings":"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","sourcesContent":["/**\nCOPYRIGHT (c) 2017-present James Kyle <[email protected]>\n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR\n*/\n// This file is https://github.com/jamiebuilds/react-loadable/blob/master/src/babel.js\n// Modified to also look for `next/dynamic`\n// Modified to put `webpack` and `modules` under `loadableGenerated` to be backwards compatible with next/dynamic which has a `modules` key\n// Modified to support `dynamic(import('something'))` and `dynamic(import('something'), options)\n\nimport {\n NodePath,\n PluginObj,\n types as BabelTypes,\n} from 'next/dist/compiled/babel/core'\n\nimport { relative as relativePath } from 'path'\n\nexport default function ({\n types: t,\n}: {\n types: typeof BabelTypes\n}): PluginObj {\n return {\n visitor: {\n ImportDeclaration(\n path: NodePath<BabelTypes.ImportDeclaration>,\n state: any\n ) {\n let source = path.node.source.value\n if (source !== 'next/dynamic') return\n\n let defaultSpecifier = path.get('specifiers').find((specifier) => {\n return specifier.isImportDefaultSpecifier()\n })\n\n if (!defaultSpecifier) return\n\n const bindingName = defaultSpecifier.node.local.name\n const binding = path.scope.getBinding(bindingName)\n\n if (!binding) {\n return\n }\n\n binding.referencePaths.forEach((refPath) => {\n let callExpression = refPath.parentPath\n\n if (\n callExpression.isMemberExpression() &&\n callExpression.node.computed === false\n ) {\n const property = callExpression.get('property')\n if (\n !Array.isArray(property) &&\n property.isIdentifier({ name: 'Map' })\n ) {\n callExpression = callExpression.parentPath\n }\n }\n\n if (!callExpression.isCallExpression()) return\n\n const callExpression_ = callExpression as NodePath<\n BabelTypes.CallExpression\n >\n\n let args = callExpression_.get('arguments')\n if (args.length > 2) {\n throw callExpression_.buildCodeFrameError(\n 'next/dynamic only accepts 2 arguments'\n )\n }\n\n if (!args[0]) {\n return\n }\n\n let loader\n let options\n\n if (args[0].isObjectExpression()) {\n options = args[0]\n } else {\n if (!args[1]) {\n callExpression_.node.arguments.push(t.objectExpression([]))\n }\n // This is needed as the code is modified above\n args = callExpression_.get('arguments')\n loader = args[0]\n options = args[1]\n }\n\n if (!options.isObjectExpression()) return\n const options_ = options as NodePath<BabelTypes.ObjectExpression>\n\n let properties = options_.get('properties')\n let propertiesMap: {\n [key: string]: NodePath<\n | BabelTypes.ObjectProperty\n | BabelTypes.ObjectMethod\n | BabelTypes.SpreadElement\n >\n } = {}\n\n properties.forEach((property) => {\n const key: any = property.get('key')\n propertiesMap[key.node.name] = property\n })\n\n if (propertiesMap.loadableGenerated) {\n return\n }\n\n if (propertiesMap.loader) {\n loader = propertiesMap.loader.get('value')\n }\n\n if (propertiesMap.modules) {\n loader = propertiesMap.modules.get('value')\n }\n\n if (!loader || Array.isArray(loader)) {\n return\n }\n const dynamicImports: BabelTypes.Expression[] = []\n const dynamicKeys: BabelTypes.Expression[] = []\n\n loader.traverse({\n Import(importPath) {\n const importArguments = importPath.parentPath.get('arguments')\n if (!Array.isArray(importArguments)) return\n const node: any = importArguments[0].node\n dynamicImports.push(node)\n dynamicKeys.push(\n t.binaryExpression(\n '+',\n t.stringLiteral(\n (state.file.opts.caller?.pagesDirs[0]\n ? relativePath(\n state.file.opts.caller.pagesDirs[0],\n state.file.opts.filename\n )\n : state.file.opts.filename) + ' -> '\n ),\n node\n )\n )\n },\n })\n\n if (!dynamicImports.length) return\n\n options.node.properties.push(\n t.objectProperty(\n t.identifier('loadableGenerated'),\n t.objectExpression([\n t.objectProperty(\n t.identifier('webpack'),\n t.arrowFunctionExpression(\n [],\n t.arrayExpression(\n dynamicImports.map((dynamicImport) => {\n return t.callExpression(\n t.memberExpression(\n t.identifier('require'),\n t.identifier('resolveWeak')\n ),\n [dynamicImport]\n )\n })\n )\n )\n ),\n t.objectProperty(\n t.identifier('modules'),\n t.arrayExpression(dynamicKeys)\n ),\n ])\n )\n )\n\n // Turns `dynamic(import('something'))` into `dynamic(() => import('something'))` for backwards compat.\n // This is the replicate the behavior in versions below Next.js 7 where we magically handled not executing the `import()` too.\n // We'll deprecate this behavior and provide a codemod for it in 7.1.\n if (loader.isCallExpression()) {\n const arrowFunction = t.arrowFunctionExpression([], loader.node)\n loader.replaceWith(arrowFunction)\n }\n })\n },\n },\n }\n}\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/build/index.js b/node_modules/next/dist/build/index.js | |
index 1c87904..b9b2f84 100644 | |
--- a/node_modules/next/dist/build/index.js | |
+++ b/node_modules/next/dist/build/index.js | |
@@ -1,14 +1,14 @@ | |
"use strict";exports.__esModule=true;exports.default=build;var _env=require("@next/env");var _chalk=_interopRequireDefault(require("chalk"));var _crypto=_interopRequireDefault(require("crypto"));var _fs=require("fs");var _jestWorker=require("jest-worker");var _devalue=_interopRequireDefault(require("next/dist/compiled/devalue"));var _escapeStringRegexp=_interopRequireDefault(require("next/dist/compiled/escape-string-regexp"));var _findUp=_interopRequireDefault(require("next/dist/compiled/find-up"));var _index=require("next/dist/compiled/nanoid/index.cjs");var _pathToRegexp=require("next/dist/compiled/path-to-regexp");var _path=_interopRequireDefault(require("path"));var _formatWebpackMessages=_interopRequireDefault(require("../client/dev/error-overlay/format-webpack-messages"));var _constants=require("../lib/constants");var _fileExists=require("../lib/file-exists");var _findPagesDir=require("../lib/find-pages-dir");var _loadCustomRoutes=_interopRequireWildcard(require("../lib/load-custom-routes"));var _nonNullable=require("../lib/non-nullable");var _recursiveDelete=require("../lib/recursive-delete");var _verifyAndLint=require("../lib/verifyAndLint");var _verifyTypeScriptSetup=require("../lib/verifyTypeScriptSetup");var _constants2=require("../next-server/lib/constants");var _utils=require("../next-server/lib/router/utils");var _config=_interopRequireWildcard(require("../next-server/server/config"));require("../next-server/server/node-polyfill-fetch");var _normalizePagePath=require("../next-server/server/normalize-page-path");var _require=require("../next-server/server/require");var ciEnvironment=_interopRequireWildcard(require("../telemetry/ci-info"));var _events=require("../telemetry/events");var _storage=require("../telemetry/storage");var _compiler=require("./compiler");var _entries=require("./entries");var _generateBuildId=require("./generate-build-id");var _isWriteable=require("./is-writeable");var Log=_interopRequireWildcard(require("./output/log"));var _spinner=_interopRequireDefault(require("./spinner"));var _trace=require("../telemetry/trace");var _utils2=require("./utils");var _webpackConfig=_interopRequireDefault(require("./webpack-config"));var _writeBuildId=require("./write-build-id");var _normalizeLocalePath=require("../next-server/lib/i18n/normalize-locale-path");var _webpack=require("next/dist/compiled/webpack/webpack");function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap();_getRequireWildcardCache=function(){return cache;};return cache;}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _wrapRegExp(re,groups){_wrapRegExp=function(re,groups){return new BabelRegExp(re,undefined,groups);};var _RegExp=_wrapNativeSuper(RegExp);var _super=RegExp.prototype;var _groups=new WeakMap();function BabelRegExp(re,flags,groups){var _this=_RegExp.call(this,re,flags);_groups.set(_this,groups||_groups.get(re));return _this;}_inherits(BabelRegExp,_RegExp);BabelRegExp.prototype.exec=function(str){var result=_super.exec.call(this,str);if(result)result.groups=buildGroups(result,this);return result;};BabelRegExp.prototype[Symbol.replace]=function(str,substitution){if(typeof substitution==="string"){var groups=_groups.get(this);return _super[Symbol.replace].call(this,str,substitution.replace(/\$<([^>]+)>/g,function(_,name){return"$"+groups[name];}));}else if(typeof substitution==="function"){var _this=this;return _super[Symbol.replace].call(this,str,function(){var args=[];args.push.apply(args,arguments);if(typeof args[args.length-1]!=="object"){args.push(buildGroups(args,_this));}return substitution.apply(this,args);});}else{return _super[Symbol.replace].call(this,str,substitution);}};function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce(function(groups,name){groups[name]=result[g[name]];return groups;},Object.create(null));}return _wrapRegExp.apply(this,arguments);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _possibleConstructorReturn(self,call){if(call&&(typeof call==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map():undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function");}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper);}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor);}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class);};return _wrapNativeSuper(Class);}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct;}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor();if(Class)_setPrototypeOf(instance,Class.prototype);return instance;};}return _construct.apply(null,arguments);}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Date.prototype.toString.call(Reflect.construct(Date,[],function(){}));return true;}catch(e){return false;}}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1;}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}const staticCheckWorker=require.resolve('./utils');async function build(dir,conf=null,reactProductionProfiling=false,debugOutput=false,runLint=true){const nextBuildSpan=(0,_trace.trace)('next-build');return nextBuildSpan.traceAsyncFn(async()=>{var _config$typescript,_config$eslint,_config$eslint2,_namedExports$include;// attempt to load global env values so they are available in next.config.js | |
const{loadedEnvFiles}=nextBuildSpan.traceChild('load-dotenv').traceFn(()=>(0,_env.loadEnvConfig)(dir,false,Log));const config=await nextBuildSpan.traceChild('load-next-config').traceAsyncFn(()=>(0,_config.default)(_constants2.PHASE_PRODUCTION_BUILD,dir,conf));const{target}=config;const buildId=await nextBuildSpan.traceChild('generate-buildid').traceAsyncFn(()=>(0,_generateBuildId.generateBuildId)(config.generateBuildId,_index.nanoid));const distDir=_path.default.join(dir,config.distDir);const customRoutes=await nextBuildSpan.traceChild('load-custom-routes').traceAsyncFn(()=>(0,_loadCustomRoutes.default)(config));const{headers,rewrites,redirects}=customRoutes;const cacheDir=_path.default.join(distDir,'cache');if(ciEnvironment.isCI&&!ciEnvironment.hasNextSupport){const hasCache=await(0,_fileExists.fileExists)(cacheDir);if(!hasCache){// Intentionally not piping to stderr in case people fail in CI when | |
// stderr is detected. | |
-console.log(`${Log.prefixes.warn} No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache`);}}const telemetry=new _storage.Telemetry({distDir});(0,_trace.setGlobal)('telemetry',telemetry);const publicDir=_path.default.join(dir,'public');const pagesDir=(0,_findPagesDir.findPagesDir)(dir);const hasPublicDir=await(0,_fileExists.fileExists)(publicDir);telemetry.record((0,_events.eventCliSession)(_constants2.PHASE_PRODUCTION_BUILD,dir,{webpackVersion:_webpack.isWebpack5?5:4,cliCommand:'build',isSrcDir:_path.default.relative(dir,pagesDir).startsWith('src'),hasNowJson:!!(await(0,_findUp.default)('now.json',{cwd:dir})),isCustomServer:null}));(0,_events.eventNextPlugins)(_path.default.resolve(dir)).then(events=>telemetry.record(events));const ignoreTypeScriptErrors=Boolean((_config$typescript=config.typescript)==null?void 0:_config$typescript.ignoreBuildErrors);const typeCheckStart=process.hrtime();const typeCheckingSpinner=(0,_spinner.default)({prefixText:`${Log.prefixes.info} ${ignoreTypeScriptErrors?'Skipping validation of types':'Checking validity of types'}`});const verifyResult=await nextBuildSpan.traceChild('verify-typescript-setup').traceAsyncFn(()=>(0,_verifyTypeScriptSetup.verifyTypeScriptSetup)(dir,pagesDir,!ignoreTypeScriptErrors,!config.images.disableStaticImages,cacheDir));const typeCheckEnd=process.hrtime(typeCheckStart);if(!ignoreTypeScriptErrors){var _verifyResult$result,_verifyResult$result2,_verifyResult$result3;telemetry.record((0,_events.eventTypeCheckCompleted)({durationInSeconds:typeCheckEnd[0],typescriptVersion:verifyResult.version,inputFilesCount:(_verifyResult$result=verifyResult.result)==null?void 0:_verifyResult$result.inputFilesCount,totalFilesCount:(_verifyResult$result2=verifyResult.result)==null?void 0:_verifyResult$result2.totalFilesCount,incremental:(_verifyResult$result3=verifyResult.result)==null?void 0:_verifyResult$result3.incremental}));}if(typeCheckingSpinner){typeCheckingSpinner.stopAndPersist();}const ignoreESLint=Boolean((_config$eslint=config.eslint)==null?void 0:_config$eslint.ignoreDuringBuilds);const lintDirs=(_config$eslint2=config.eslint)==null?void 0:_config$eslint2.dirs;if(!ignoreESLint&&runLint){await nextBuildSpan.traceChild('verify-and-lint').traceAsyncFn(async()=>{await(0,_verifyAndLint.verifyAndLint)(dir,lintDirs,config.experimental.cpus,config.experimental.workerThreads,telemetry);});}const buildSpinner=(0,_spinner.default)({prefixText:`${Log.prefixes.info} Creating an optimized production build`});const isLikeServerless=(0,_config.isTargetLikeServerless)(target);const pagePaths=await nextBuildSpan.traceChild('collect-pages').traceAsyncFn(()=>(0,_utils2.collectPages)(pagesDir,config.pageExtensions));// needed for static exporting since we want to replace with HTML | |
+console.log(`${Log.prefixes.warn} No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache`);}}const telemetry=new _storage.Telemetry({distDir});(0,_trace.setGlobal)('telemetry',telemetry);const publicDir=_path.default.join(dir,'public');const pagesDirs=(0,_findPagesDir.findPagesDir)(dir,config.pagesPaths);const hasPublicDir=await(0,_fileExists.fileExists)(publicDir);telemetry.record((0,_events.eventCliSession)(_constants2.PHASE_PRODUCTION_BUILD,dir,{webpackVersion:_webpack.isWebpack5?5:4,cliCommand:'build',isSrcDir:pagesDirs.length===1&&_path.default.relative(dir,pagesDirs[0]).startsWith('src'),hasNowJson:!!(await(0,_findUp.default)('now.json',{cwd:dir})),isCustomServer:null}));(0,_events.eventNextPlugins)(_path.default.resolve(dir)).then(events=>telemetry.record(events));const ignoreTypeScriptErrors=Boolean((_config$typescript=config.typescript)==null?void 0:_config$typescript.ignoreBuildErrors);const typeCheckStart=process.hrtime();const typeCheckingSpinner=(0,_spinner.default)({prefixText:`${Log.prefixes.info} ${ignoreTypeScriptErrors?'Skipping validation of types':'Checking validity of types'}`});const verifyResult=await nextBuildSpan.traceChild('verify-typescript-setup').traceAsyncFn(()=>(0,_verifyTypeScriptSetup.verifyTypeScriptSetup)(dir,pagesDirs,!ignoreTypeScriptErrors,!config.images.disableStaticImages,cacheDir));const typeCheckEnd=process.hrtime(typeCheckStart);if(!ignoreTypeScriptErrors){var _verifyResult$result,_verifyResult$result2,_verifyResult$result3;telemetry.record((0,_events.eventTypeCheckCompleted)({durationInSeconds:typeCheckEnd[0],typescriptVersion:verifyResult.version,inputFilesCount:(_verifyResult$result=verifyResult.result)==null?void 0:_verifyResult$result.inputFilesCount,totalFilesCount:(_verifyResult$result2=verifyResult.result)==null?void 0:_verifyResult$result2.totalFilesCount,incremental:(_verifyResult$result3=verifyResult.result)==null?void 0:_verifyResult$result3.incremental}));}if(typeCheckingSpinner){typeCheckingSpinner.stopAndPersist();}const ignoreESLint=Boolean((_config$eslint=config.eslint)==null?void 0:_config$eslint.ignoreDuringBuilds);const lintDirs=(_config$eslint2=config.eslint)==null?void 0:_config$eslint2.dirs;if(!ignoreESLint&&runLint){await nextBuildSpan.traceChild('verify-and-lint').traceAsyncFn(async()=>{await(0,_verifyAndLint.verifyAndLint)(dir,lintDirs,config.experimental.cpus,config.experimental.workerThreads,telemetry);});}const buildSpinner=(0,_spinner.default)({prefixText:`${Log.prefixes.info} Creating an optimized production build`});const isLikeServerless=(0,_config.isTargetLikeServerless)(target);const pagePaths=await nextBuildSpan.traceChild('collect-pages').traceAsyncFn(()=>(0,_utils2.collectPages)(pagesDirs,config.pageExtensions));// needed for static exporting since we want to replace with HTML | |
// files | |
const allStaticPages=new Set();let allPageInfos=new Map();const previewProps={previewModeId:_crypto.default.randomBytes(16).toString('hex'),previewModeSigningKey:_crypto.default.randomBytes(32).toString('hex'),previewModeEncryptionKey:_crypto.default.randomBytes(32).toString('hex')};const mappedPages=nextBuildSpan.traceChild('create-pages-mapping').traceFn(()=>(0,_entries.createPagesMapping)(pagePaths,config.pageExtensions));const entrypoints=nextBuildSpan.traceChild('create-entrypoints').traceFn(()=>(0,_entries.createEntrypoints)(mappedPages,target,buildId,previewProps,config,loadedEnvFiles));const pageKeys=Object.keys(mappedPages);const conflictingPublicFiles=[];const hasCustomErrorPage=mappedPages['/_error'].startsWith('private-next-pages');const hasPages404=Boolean(mappedPages['/404']&&mappedPages['/404'].startsWith('private-next-pages'));if(hasPublicDir){const hasPublicUnderScoreNextDir=await(0,_fileExists.fileExists)(_path.default.join(publicDir,'_next'));if(hasPublicUnderScoreNextDir){throw new Error(_constants.PUBLIC_DIR_MIDDLEWARE_CONFLICT);}}await nextBuildSpan.traceChild('public-dir-conflict-check').traceAsyncFn(async()=>{// Check if pages conflict with files in `public` | |
// Only a page of public file can be served, not both. | |
for(const page in mappedPages){const hasPublicPageFile=await(0,_fileExists.fileExists)(_path.default.join(publicDir,page==='/'?'/index':page),'file');if(hasPublicPageFile){conflictingPublicFiles.push(page);}}const numConflicting=conflictingPublicFiles.length;if(numConflicting){throw new Error(`Conflicting public and page file${numConflicting===1?' was':'s were'} found. https://nextjs.org/docs/messages/conflicting-public-file-page\n${conflictingPublicFiles.join('\n')}`);}});const nestedReservedPages=pageKeys.filter(page=>{return page.match(/\/(_app|_document|_error)$/)&&_path.default.dirname(page)!=='/';});if(nestedReservedPages.length){Log.warn(`The following reserved Next.js pages were detected not directly under the pages directory:\n`+nestedReservedPages.join('\n')+`\nSee more info here: https://nextjs.org/docs/messages/nested-reserved-page\n`);}const buildCustomRoute=(r,type)=>{const keys=[];const routeRegex=(0,_pathToRegexp.pathToRegexp)(r.source,keys,{strict:true,sensitive:false,delimiter:'/'// default is `/#?`, but Next does not pass query info | |
});return{...r,...(type==='redirect'?{statusCode:(0,_loadCustomRoutes.getRedirectStatus)(r),permanent:undefined}:{}),regex:(0,_loadCustomRoutes.normalizeRouteRegex)(routeRegex.source)};};const routesManifestPath=_path.default.join(distDir,_constants2.ROUTES_MANIFEST);const routesManifest=nextBuildSpan.traceChild('generate-routes-manifest').traceFn(()=>({version:3,pages404:true,basePath:config.basePath,redirects:redirects.map(r=>buildCustomRoute(r,'redirect')),headers:headers.map(r=>buildCustomRoute(r,'header')),dynamicRoutes:(0,_utils.getSortedRoutes)(pageKeys).filter(_utils.isDynamicRoute).map(page=>{const routeRegex=(0,_utils.getRouteRegex)(page);return{page,regex:(0,_loadCustomRoutes.normalizeRouteRegex)(routeRegex.re.source),routeKeys:routeRegex.routeKeys,namedRegex:routeRegex.namedRegex};}),dataRoutes:[],i18n:config.i18n||undefined}));if(rewrites.beforeFiles.length===0&&rewrites.fallback.length===0){routesManifest.rewrites=rewrites.afterFiles.map(r=>buildCustomRoute(r,'rewrite'));}else{routesManifest.rewrites={beforeFiles:rewrites.beforeFiles.map(r=>buildCustomRoute(r,'rewrite')),afterFiles:rewrites.afterFiles.map(r=>buildCustomRoute(r,'rewrite')),fallback:rewrites.fallback.map(r=>buildCustomRoute(r,'rewrite'))};}const combinedRewrites=[...rewrites.beforeFiles,...rewrites.afterFiles,...rewrites.fallback];const distDirCreated=await nextBuildSpan.traceChild('create-dist-dir').traceAsyncFn(async()=>{try{await _fs.promises.mkdir(distDir,{recursive:true});return true;}catch(err){if(err.code==='EPERM'){return false;}throw err;}});if(!distDirCreated||!(await(0,_isWriteable.isWriteable)(distDir))){throw new Error('> Build directory is not writeable. https://nextjs.org/docs/messages/build-dir-not-writeable');}if(config.cleanDistDir){await(0,_recursiveDelete.recursiveDelete)(distDir,/^cache/);}// We need to write the manifest with rewrites before build | |
// so serverless can import the manifest | |
-await nextBuildSpan.traceChild('write-routes-manifest').traceAsyncFn(()=>_fs.promises.writeFile(routesManifestPath,JSON.stringify(routesManifest),'utf8'));const manifestPath=_path.default.join(distDir,isLikeServerless?_constants2.SERVERLESS_DIRECTORY:_constants2.SERVER_DIRECTORY,_constants2.PAGES_MANIFEST);const requiredServerFiles=nextBuildSpan.traceChild('generate-required-server-files').traceFn(()=>({version:1,config:{...config,compress:false,configFile:undefined},appDir:dir,files:[_constants2.ROUTES_MANIFEST,_path.default.relative(distDir,manifestPath),_constants2.BUILD_MANIFEST,_constants2.PRERENDER_MANIFEST,_constants2.REACT_LOADABLE_MANIFEST,config.optimizeFonts?_path.default.join(isLikeServerless?_constants2.SERVERLESS_DIRECTORY:_constants2.SERVER_DIRECTORY,_constants2.FONT_MANIFEST):null,_constants2.BUILD_ID_FILE].filter(_nonNullable.nonNullable).map(file=>_path.default.join(config.distDir,file)),ignore:[]}));const configs=await nextBuildSpan.traceChild('generate-webpack-config').traceAsyncFn(()=>Promise.all([(0,_webpackConfig.default)(dir,{buildId,reactProductionProfiling,isServer:false,config,target,pagesDir,entrypoints:entrypoints.client,rewrites}),(0,_webpackConfig.default)(dir,{buildId,reactProductionProfiling,isServer:true,config,target,pagesDir,entrypoints:entrypoints.server,rewrites})]));const clientConfig=configs[0];if(clientConfig.optimization&&(clientConfig.optimization.minimize!==true||clientConfig.optimization.minimizer&&clientConfig.optimization.minimizer.length===0)){Log.warn(`Production code optimization has been disabled in your project. Read more: https://nextjs.org/docs/messages/minification-disabled`);}const webpackBuildStart=process.hrtime();let result={warnings:[],errors:[]};// We run client and server compilation separately to optimize for memory usage | |
+await nextBuildSpan.traceChild('write-routes-manifest').traceAsyncFn(()=>_fs.promises.writeFile(routesManifestPath,JSON.stringify(routesManifest),'utf8'));const manifestPath=_path.default.join(distDir,isLikeServerless?_constants2.SERVERLESS_DIRECTORY:_constants2.SERVER_DIRECTORY,_constants2.PAGES_MANIFEST);const requiredServerFiles=nextBuildSpan.traceChild('generate-required-server-files').traceFn(()=>({version:1,config:{...config,compress:false,configFile:undefined},appDir:dir,files:[_constants2.ROUTES_MANIFEST,_path.default.relative(distDir,manifestPath),_constants2.BUILD_MANIFEST,_constants2.PRERENDER_MANIFEST,_constants2.REACT_LOADABLE_MANIFEST,config.optimizeFonts?_path.default.join(isLikeServerless?_constants2.SERVERLESS_DIRECTORY:_constants2.SERVER_DIRECTORY,_constants2.FONT_MANIFEST):null,_constants2.BUILD_ID_FILE].filter(_nonNullable.nonNullable).map(file=>_path.default.join(config.distDir,file)),ignore:[]}));const configs=await nextBuildSpan.traceChild('generate-webpack-config').traceAsyncFn(()=>Promise.all([(0,_webpackConfig.default)(dir,{buildId,reactProductionProfiling,isServer:false,config,target,pagesDirs,entrypoints:entrypoints.client,rewrites}),(0,_webpackConfig.default)(dir,{buildId,reactProductionProfiling,isServer:true,config,target,pagesDirs,entrypoints:entrypoints.server,rewrites})]));const clientConfig=configs[0];if(clientConfig.optimization&&(clientConfig.optimization.minimize!==true||clientConfig.optimization.minimizer&&clientConfig.optimization.minimizer.length===0)){Log.warn(`Production code optimization has been disabled in your project. Read more: https://nextjs.org/docs/messages/minification-disabled`);}const webpackBuildStart=process.hrtime();let result={warnings:[],errors:[]};// We run client and server compilation separately to optimize for memory usage | |
await nextBuildSpan.traceChild('run-webpack-compiler').traceAsyncFn(async()=>{const clientResult=await(0,_compiler.runCompiler)(clientConfig);// Fail build if clientResult contains errors | |
if(clientResult.errors.length>0){result={warnings:[...clientResult.warnings],errors:[...clientResult.errors]};}else{const serverResult=await(0,_compiler.runCompiler)(configs[1]);result={warnings:[...clientResult.warnings,...serverResult.warnings],errors:[...clientResult.errors,...serverResult.errors]};}});const webpackBuildEnd=process.hrtime(webpackBuildStart);if(buildSpinner){buildSpinner.stopAndPersist();}result=nextBuildSpan.traceChild('format-webpack-messages').traceFn(()=>(0,_formatWebpackMessages.default)(result));if(result.errors.length>0){// Only keep the first error. Others are often indicative | |
// of the same problem, but confuse the reader with noise. | |
@@ -67,6 +67,6 @@ const pageInfo=pageInfos.get(page);if(pageInfo){pageInfo.initialRevalidateSecond | |
const extraRoutes=additionalSsgPaths.get(page)||[];for(const route of extraRoutes){const pageFile=(0,_normalizePagePath.normalizePagePath)(route);await moveExportedPage(page,route,pageFile,isSsg,'html',true);await moveExportedPage(page,route,pageFile,isSsg,'json',true);if(hasAmp){const ampPage=`${pageFile}.amp`;await moveExportedPage(page,ampPage,ampPage,isSsg,'html',true);await moveExportedPage(page,ampPage,ampPage,isSsg,'json',true);}finalPrerenderRoutes[route]={initialRevalidateSeconds:exportConfig.initialPageRevalidationMap[route],srcRoute:page,dataRoute:_path.default.posix.join('/_next/data',buildId,`${(0,_normalizePagePath.normalizePagePath)(route)}.json`)};// Set route Revalidation Interval | |
const pageInfo=pageInfos.get(route);if(pageInfo){pageInfo.initialRevalidateSeconds=exportConfig.initialPageRevalidationMap[route];pageInfos.set(route,pageInfo);}}}}}// remove temporary export folder | |
await(0,_recursiveDelete.recursiveDelete)(exportOptions.outdir);await _fs.promises.rmdir(exportOptions.outdir);await _fs.promises.writeFile(manifestPath,JSON.stringify(pagesManifest,null,2),'utf8');if(postBuildSpinner)postBuildSpinner.stopAndPersist();console.log();});}const analysisEnd=process.hrtime(analysisBegin);telemetry.record((0,_events.eventBuildOptimize)(pagePaths,{durationInSeconds:analysisEnd[0],staticPageCount:staticPages.size,staticPropsPageCount:ssgPages.size,serverPropsPageCount:serverPropsPages.size,ssrPageCount:pagePaths.length-(staticPages.size+ssgPages.size+serverPropsPages.size),hasStatic404:useStatic404,hasReportWebVitals:(_namedExports$include=namedExports==null?void 0:namedExports.includes('reportWebVitals'))!=null?_namedExports$include:false,rewritesCount:combinedRewrites.length,headersCount:headers.length,redirectsCount:redirects.length-1,// reduce one for trailing slash | |
-headersWithHasCount:headers.filter(r=>!!r.has).length,rewritesWithHasCount:combinedRewrites.filter(r=>!!r.has).length,redirectsWithHasCount:redirects.filter(r=>!!r.has).length}));if(ssgPages.size>0){var _config$i18n5;const finalDynamicRoutes={};tbdPrerenderRoutes.forEach(tbdRoute=>{const normalizedRoute=(0,_normalizePagePath.normalizePagePath)(tbdRoute);const dataRoute=_path.default.posix.join('/_next/data',buildId,`${normalizedRoute}.json`);finalDynamicRoutes[tbdRoute]={routeRegex:(0,_loadCustomRoutes.normalizeRouteRegex)((0,_utils.getRouteRegex)(tbdRoute).re.source),dataRoute,fallback:ssgBlockingFallbackPages.has(tbdRoute)?null:ssgStaticFallbackPages.has(tbdRoute)?`${normalizedRoute}.html`:false,dataRouteRegex:(0,_loadCustomRoutes.normalizeRouteRegex)((0,_utils.getRouteRegex)(dataRoute.replace(/\.json$/,'')).re.source.replace(/\(\?:\\\/\)\?\$$/,'\\.json$'))};});const prerenderManifest={version:3,routes:finalPrerenderRoutes,dynamicRoutes:finalDynamicRoutes,notFoundRoutes:ssgNotFoundPaths,preview:previewProps};await _fs.promises.writeFile(_path.default.join(distDir,_constants2.PRERENDER_MANIFEST),JSON.stringify(prerenderManifest),'utf8');await generateClientSsgManifest(prerenderManifest,{distDir,buildId,locales:((_config$i18n5=config.i18n)==null?void 0:_config$i18n5.locales)||[]});}else{const prerenderManifest={version:3,routes:{},dynamicRoutes:{},preview:previewProps,notFoundRoutes:[]};await _fs.promises.writeFile(_path.default.join(distDir,_constants2.PRERENDER_MANIFEST),JSON.stringify(prerenderManifest),'utf8');}const images={...config.images};const{deviceSizes,imageSizes}=images;images.sizes=[...deviceSizes,...imageSizes];await _fs.promises.writeFile(_path.default.join(distDir,_constants2.IMAGES_MANIFEST),JSON.stringify({version:1,images}),'utf8');await _fs.promises.writeFile(_path.default.join(distDir,_constants2.EXPORT_MARKER),JSON.stringify({version:1,hasExportPathMap:typeof config.exportPathMap==='function',exportTrailingSlash:config.trailingSlash===true,isNextImageImported:isNextImageImported===true}),'utf8');await _fs.promises.unlink(_path.default.join(distDir,_constants2.EXPORT_DETAIL)).catch(err=>{if(err.code==='ENOENT'){return Promise.resolve();}return Promise.reject(err);});staticPages.forEach(pg=>allStaticPages.add(pg));pageInfos.forEach((info,key)=>{allPageInfos.set(key,info);});await nextBuildSpan.traceChild('print-tree-view').traceAsyncFn(()=>(0,_utils2.printTreeView)(Object.keys(mappedPages),allPageInfos,isLikeServerless,{distPath:distDir,buildId:buildId,pagesDir,useStatic404,pageExtensions:config.pageExtensions,buildManifest,gzipSize:config.experimental.gzipSize}));if(debugOutput){nextBuildSpan.traceChild('print-custom-routes').traceFn(()=>(0,_utils2.printCustomRoutes)({redirects,rewrites,headers}));}if(config.analyticsId){console.log(_chalk.default.bold.green('Next.js Analytics')+' is enabled for this production build. '+"You'll receive a Real Experience Score computed by all of your visitors.");console.log('');}await nextBuildSpan.traceChild('telemetry-flush').traceAsyncFn(()=>telemetry.flush());});}function generateClientSsgManifest(prerenderManifest,{buildId,distDir,locales}){const ssgPages=new Set([...Object.entries(prerenderManifest.routes)// Filter out dynamic routes | |
+headersWithHasCount:headers.filter(r=>!!r.has).length,rewritesWithHasCount:combinedRewrites.filter(r=>!!r.has).length,redirectsWithHasCount:redirects.filter(r=>!!r.has).length}));if(ssgPages.size>0){var _config$i18n5;const finalDynamicRoutes={};tbdPrerenderRoutes.forEach(tbdRoute=>{const normalizedRoute=(0,_normalizePagePath.normalizePagePath)(tbdRoute);const dataRoute=_path.default.posix.join('/_next/data',buildId,`${normalizedRoute}.json`);finalDynamicRoutes[tbdRoute]={routeRegex:(0,_loadCustomRoutes.normalizeRouteRegex)((0,_utils.getRouteRegex)(tbdRoute).re.source),dataRoute,fallback:ssgBlockingFallbackPages.has(tbdRoute)?null:ssgStaticFallbackPages.has(tbdRoute)?`${normalizedRoute}.html`:false,dataRouteRegex:(0,_loadCustomRoutes.normalizeRouteRegex)((0,_utils.getRouteRegex)(dataRoute.replace(/\.json$/,'')).re.source.replace(/\(\?:\\\/\)\?\$$/,'\\.json$'))};});const prerenderManifest={version:3,routes:finalPrerenderRoutes,dynamicRoutes:finalDynamicRoutes,notFoundRoutes:ssgNotFoundPaths,preview:previewProps};await _fs.promises.writeFile(_path.default.join(distDir,_constants2.PRERENDER_MANIFEST),JSON.stringify(prerenderManifest),'utf8');await generateClientSsgManifest(prerenderManifest,{distDir,buildId,locales:((_config$i18n5=config.i18n)==null?void 0:_config$i18n5.locales)||[]});}else{const prerenderManifest={version:3,routes:{},dynamicRoutes:{},preview:previewProps,notFoundRoutes:[]};await _fs.promises.writeFile(_path.default.join(distDir,_constants2.PRERENDER_MANIFEST),JSON.stringify(prerenderManifest),'utf8');}const images={...config.images};const{deviceSizes,imageSizes}=images;images.sizes=[...deviceSizes,...imageSizes];await _fs.promises.writeFile(_path.default.join(distDir,_constants2.IMAGES_MANIFEST),JSON.stringify({version:1,images}),'utf8');await _fs.promises.writeFile(_path.default.join(distDir,_constants2.EXPORT_MARKER),JSON.stringify({version:1,hasExportPathMap:typeof config.exportPathMap==='function',exportTrailingSlash:config.trailingSlash===true,isNextImageImported:isNextImageImported===true}),'utf8');await _fs.promises.unlink(_path.default.join(distDir,_constants2.EXPORT_DETAIL)).catch(err=>{if(err.code==='ENOENT'){return Promise.resolve();}return Promise.reject(err);});staticPages.forEach(pg=>allStaticPages.add(pg));pageInfos.forEach((info,key)=>{allPageInfos.set(key,info);});await nextBuildSpan.traceChild('print-tree-view').traceAsyncFn(()=>(0,_utils2.printTreeView)(Object.keys(mappedPages),allPageInfos,isLikeServerless,{distPath:distDir,buildId:buildId,pagesDirs,useStatic404,pageExtensions:config.pageExtensions,buildManifest,gzipSize:config.experimental.gzipSize}));if(debugOutput){nextBuildSpan.traceChild('print-custom-routes').traceFn(()=>(0,_utils2.printCustomRoutes)({redirects,rewrites,headers}));}if(config.analyticsId){console.log(_chalk.default.bold.green('Next.js Analytics')+' is enabled for this production build. '+"You'll receive a Real Experience Score computed by all of your visitors.");console.log('');}await nextBuildSpan.traceChild('telemetry-flush').traceAsyncFn(()=>telemetry.flush());});}function generateClientSsgManifest(prerenderManifest,{buildId,distDir,locales}){const ssgPages=new Set([...Object.entries(prerenderManifest.routes)// Filter out dynamic routes | |
.filter(([,{srcRoute}])=>srcRoute==null).map(([route])=>(0,_normalizeLocalePath.normalizeLocalePath)(route,locales).pathname),...Object.keys(prerenderManifest.dynamicRoutes)]);const clientSsgManifestContent=`self.__SSG_MANIFEST=${(0,_devalue.default)(ssgPages)};self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()`;(0,_fs.writeFileSync)(_path.default.join(distDir,_constants2.CLIENT_STATIC_FILES_PATH,buildId,'_ssgManifest.js'),clientSsgManifestContent);} | |
//# sourceMappingURL=index.js.map | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/build/index.js.map b/node_modules/next/dist/build/index.js.map | |
index bd97b35..54ca26a 100644 | |
--- a/node_modules/next/dist/build/index.js.map | |
+++ b/node_modules/next/dist/build/index.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"sources":["../../build/index.ts"],"names":["staticCheckWorker","require","resolve","build","dir","conf","reactProductionProfiling","debugOutput","runLint","nextBuildSpan","traceAsyncFn","loadedEnvFiles","traceChild","traceFn","Log","config","PHASE_PRODUCTION_BUILD","target","buildId","generateBuildId","nanoid","distDir","path","join","customRoutes","headers","rewrites","redirects","cacheDir","ciEnvironment","isCI","hasNextSupport","hasCache","console","log","prefixes","warn","telemetry","Telemetry","publicDir","pagesDir","hasPublicDir","record","webpackVersion","isWebpack5","cliCommand","isSrcDir","relative","startsWith","hasNowJson","cwd","isCustomServer","then","events","ignoreTypeScriptErrors","Boolean","typescript","ignoreBuildErrors","typeCheckStart","process","hrtime","typeCheckingSpinner","prefixText","info","verifyResult","images","disableStaticImages","typeCheckEnd","durationInSeconds","typescriptVersion","version","inputFilesCount","result","totalFilesCount","incremental","stopAndPersist","ignoreESLint","eslint","ignoreDuringBuilds","lintDirs","dirs","experimental","cpus","workerThreads","buildSpinner","isLikeServerless","pagePaths","pageExtensions","allStaticPages","Set","allPageInfos","Map","previewProps","previewModeId","crypto","randomBytes","toString","previewModeSigningKey","previewModeEncryptionKey","mappedPages","entrypoints","pageKeys","Object","keys","conflictingPublicFiles","hasCustomErrorPage","hasPages404","hasPublicUnderScoreNextDir","Error","PUBLIC_DIR_MIDDLEWARE_CONFLICT","page","hasPublicPageFile","push","numConflicting","length","nestedReservedPages","filter","match","dirname","buildCustomRoute","r","type","routeRegex","source","strict","sensitive","delimiter","statusCode","permanent","undefined","regex","routesManifestPath","ROUTES_MANIFEST","routesManifest","pages404","basePath","map","dynamicRoutes","isDynamicRoute","re","routeKeys","namedRegex","dataRoutes","i18n","beforeFiles","fallback","afterFiles","combinedRewrites","distDirCreated","promises","mkdir","recursive","err","code","cleanDistDir","writeFile","JSON","stringify","manifestPath","SERVERLESS_DIRECTORY","SERVER_DIRECTORY","PAGES_MANIFEST","requiredServerFiles","compress","configFile","appDir","files","BUILD_MANIFEST","PRERENDER_MANIFEST","REACT_LOADABLE_MANIFEST","optimizeFonts","FONT_MANIFEST","BUILD_ID_FILE","nonNullable","file","ignore","configs","Promise","all","isServer","client","server","clientConfig","optimization","minimize","minimizer","webpackBuildStart","warnings","errors","clientResult","serverResult","webpackBuildEnd","error","chalk","red","indexOf","page_name_regex","parsed","exec","page_name","groups","postCompileSpinner","buildManifestPath","ssgPages","ssgStaticFallbackPages","ssgBlockingFallbackPages","staticPages","invalidPages","hybridAmpPages","serverPropsPages","additionalSsgPaths","additionalSsgPathsEncoded","pageInfos","pagesManifest","parse","readFile","buildManifest","analysisBegin","staticCheckSpan","customAppGetInitialProps","namedExports","isNextImageImported","hasSsrAmpPages","hasNonStaticErrorPage","env","NEXT_PHASE","staticCheckWorkers","Worker","numWorkers","enableWorkerThreads","getStdout","pipe","stdout","getStderr","stderr","runtimeEnvConfig","publicRuntimeConfig","serverRuntimeConfig","nonStaticErrorPageSpan","errorPageHasCustomGetInitialProps","hasCustomGetInitialProps","errorPageStaticResult","isPageStatic","locales","defaultLocale","appPageToCheck","customAppGetInitialPropsPromise","namedExportsPromise","getNamedExports","computedManifestData","gzipSize","checkPageSpan","actualPage","selfSize","allSize","isSsg","isStatic","isHybridAmp","ssgPageRoutes","nonReservedPage","isPageStaticSpan","workerResult","id","isAmpOnly","add","hasStaticProps","prerenderRoutes","encodedPrerenderRoutes","set","prerenderFallback","hasServerProps","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","delete","STATIC_STATUS_PAGES","includes","message","size","totalSize","static","initialRevalidateSeconds","errorPageResult","nonStaticErrorPage","returnValue","end","bold","yellow","pagePath","dataRoute","posix","dataRouteRegex","namedDataRouteRegex","replace","RegExp","useStatic404","pg","optimizeCss","cssFilePaths","filePath","SERVER_FILES_MANIFEST","finalPrerenderRoutes","tbdPrerenderRoutes","ssgNotFoundPaths","usedStaticStatusPages","forEach","has","hasPages500","useDefaultStatic500","combinedPages","staticGenerationSpan","exportApp","default","exportOptions","silent","buildExport","threads","pages","outdir","statusMessage","exportConfig","initialPageRevalidationMap","exportPathMap","defaultMap","query","__nextFallback","routes","encodedRoutes","get","route","routeIdx","__nextSsgPath","isDynamic","isFallback","locale","outputPath","__nextLocale","postBuildSpinner","serverBundle","unlink","serverOutputDir","moveExportedPage","originPage","ext","additionalSsgFile","orig","relativeDest","substr","split","dest","isNotFound","rename","curPath","localeExt","extname","relativeDestNoPages","updatedRelativeDest","updatedOrig","updatedDest","isStaticSsgFallback","hasAmp","hasHtmlOutput","ampPage","localePage","srcRoute","pageInfo","extraRoutes","pageFile","rmdir","analysisEnd","staticPageCount","staticPropsPageCount","serverPropsPageCount","ssrPageCount","hasStatic404","hasReportWebVitals","rewritesCount","headersCount","redirectsCount","headersWithHasCount","rewritesWithHasCount","redirectsWithHasCount","finalDynamicRoutes","tbdRoute","normalizedRoute","prerenderManifest","notFoundRoutes","preview","generateClientSsgManifest","deviceSizes","imageSizes","sizes","IMAGES_MANIFEST","EXPORT_MARKER","hasExportPathMap","exportTrailingSlash","trailingSlash","EXPORT_DETAIL","catch","reject","key","distPath","analyticsId","green","flush","entries","pathname","clientSsgManifestContent","CLIENT_STATIC_FILES_PATH"],"mappings":"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","sourcesContent":["import { loadEnvConfig } from '@next/env'\nimport chalk from 'chalk'\nimport crypto from 'crypto'\nimport { promises, writeFileSync } from 'fs'\nimport { Worker } from 'jest-worker'\nimport devalue from 'next/dist/compiled/devalue'\nimport escapeStringRegexp from 'next/dist/compiled/escape-string-regexp'\nimport findUp from 'next/dist/compiled/find-up'\nimport { nanoid } from 'next/dist/compiled/nanoid/index.cjs'\nimport { pathToRegexp } from 'next/dist/compiled/path-to-regexp'\nimport path from 'path'\nimport formatWebpackMessages from '../client/dev/error-overlay/format-webpack-messages'\nimport {\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR,\n PUBLIC_DIR_MIDDLEWARE_CONFLICT,\n} from '../lib/constants'\nimport { fileExists } from '../lib/file-exists'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport loadCustomRoutes, {\n CustomRoutes,\n getRedirectStatus,\n normalizeRouteRegex,\n Redirect,\n Rewrite,\n RouteType,\n} from '../lib/load-custom-routes'\nimport { nonNullable } from '../lib/non-nullable'\nimport { recursiveDelete } from '../lib/recursive-delete'\nimport { verifyAndLint } from '../lib/verifyAndLint'\nimport { verifyTypeScriptSetup } from '../lib/verifyTypeScriptSetup'\nimport {\n BUILD_ID_FILE,\n BUILD_MANIFEST,\n CLIENT_STATIC_FILES_PATH,\n EXPORT_DETAIL,\n EXPORT_MARKER,\n FONT_MANIFEST,\n IMAGES_MANIFEST,\n PAGES_MANIFEST,\n PHASE_PRODUCTION_BUILD,\n PRERENDER_MANIFEST,\n REACT_LOADABLE_MANIFEST,\n ROUTES_MANIFEST,\n SERVERLESS_DIRECTORY,\n SERVER_DIRECTORY,\n SERVER_FILES_MANIFEST,\n STATIC_STATUS_PAGES,\n} from '../next-server/lib/constants'\nimport {\n getRouteRegex,\n getSortedRoutes,\n isDynamicRoute,\n} from '../next-server/lib/router/utils'\nimport { __ApiPreviewProps } from '../next-server/server/api-utils'\nimport loadConfig, {\n isTargetLikeServerless,\n NextConfig,\n} from '../next-server/server/config'\nimport { BuildManifest } from '../next-server/server/get-page-files'\nimport '../next-server/server/node-polyfill-fetch'\nimport { normalizePagePath } from '../next-server/server/normalize-page-path'\nimport { getPagePath } from '../next-server/server/require'\nimport * as ciEnvironment from '../telemetry/ci-info'\nimport {\n eventBuildCompleted,\n eventBuildOptimize,\n eventCliSession,\n eventNextPlugins,\n eventTypeCheckCompleted,\n} from '../telemetry/events'\nimport { Telemetry } from '../telemetry/storage'\nimport { CompilerResult, runCompiler } from './compiler'\nimport { createEntrypoints, createPagesMapping } from './entries'\nimport { generateBuildId } from './generate-build-id'\nimport { isWriteable } from './is-writeable'\nimport * as Log from './output/log'\nimport createSpinner from './spinner'\nimport { trace, setGlobal } from '../telemetry/trace'\nimport {\n collectPages,\n detectConflictingPaths,\n computeFromManifest,\n getJsPageSizeInKb,\n PageInfo,\n printCustomRoutes,\n printTreeView,\n getCssFilePaths,\n} from './utils'\nimport getBaseWebpackConfig from './webpack-config'\nimport { PagesManifest } from './webpack/plugins/pages-manifest-plugin'\nimport { writeBuildId } from './write-build-id'\nimport { normalizeLocalePath } from '../next-server/lib/i18n/normalize-locale-path'\nimport { isWebpack5 } from 'next/dist/compiled/webpack/webpack'\n\nconst staticCheckWorker = require.resolve('./utils')\n\nexport type SsgRoute = {\n initialRevalidateSeconds: number | false\n srcRoute: string | null\n dataRoute: string\n}\n\nexport type DynamicSsgRoute = {\n routeRegex: string\n fallback: string | null | false\n dataRoute: string\n dataRouteRegex: string\n}\n\nexport type PrerenderManifest = {\n version: 3\n routes: { [route: string]: SsgRoute }\n dynamicRoutes: { [route: string]: DynamicSsgRoute }\n notFoundRoutes: string[]\n preview: __ApiPreviewProps\n}\n\nexport default async function build(\n dir: string,\n conf = null,\n reactProductionProfiling = false,\n debugOutput = false,\n runLint = true\n): Promise<void> {\n const nextBuildSpan = trace('next-build')\n\n return nextBuildSpan.traceAsyncFn(async () => {\n // attempt to load global env values so they are available in next.config.js\n const { loadedEnvFiles } = nextBuildSpan\n .traceChild('load-dotenv')\n .traceFn(() => loadEnvConfig(dir, false, Log))\n\n const config: NextConfig = await nextBuildSpan\n .traceChild('load-next-config')\n .traceAsyncFn(() => loadConfig(PHASE_PRODUCTION_BUILD, dir, conf))\n const { target } = config\n const buildId: string = await nextBuildSpan\n .traceChild('generate-buildid')\n .traceAsyncFn(() => generateBuildId(config.generateBuildId, nanoid))\n const distDir = path.join(dir, config.distDir)\n\n const customRoutes: CustomRoutes = await nextBuildSpan\n .traceChild('load-custom-routes')\n .traceAsyncFn(() => loadCustomRoutes(config))\n\n const { headers, rewrites, redirects } = customRoutes\n\n const cacheDir = path.join(distDir, 'cache')\n if (ciEnvironment.isCI && !ciEnvironment.hasNextSupport) {\n const hasCache = await fileExists(cacheDir)\n\n if (!hasCache) {\n // Intentionally not piping to stderr in case people fail in CI when\n // stderr is detected.\n console.log(\n `${Log.prefixes.warn} No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache`\n )\n }\n }\n\n const telemetry = new Telemetry({ distDir })\n setGlobal('telemetry', telemetry)\n\n const publicDir = path.join(dir, 'public')\n const pagesDir = findPagesDir(dir)\n const hasPublicDir = await fileExists(publicDir)\n\n telemetry.record(\n eventCliSession(PHASE_PRODUCTION_BUILD, dir, {\n webpackVersion: isWebpack5 ? 5 : 4,\n cliCommand: 'build',\n isSrcDir: path.relative(dir, pagesDir!).startsWith('src'),\n hasNowJson: !!(await findUp('now.json', { cwd: dir })),\n isCustomServer: null,\n })\n )\n\n eventNextPlugins(path.resolve(dir)).then((events) =>\n telemetry.record(events)\n )\n\n const ignoreTypeScriptErrors = Boolean(config.typescript?.ignoreBuildErrors)\n const typeCheckStart = process.hrtime()\n const typeCheckingSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} ${\n ignoreTypeScriptErrors\n ? 'Skipping validation of types'\n : 'Checking validity of types'\n }`,\n })\n\n const verifyResult = await nextBuildSpan\n .traceChild('verify-typescript-setup')\n .traceAsyncFn(() =>\n verifyTypeScriptSetup(\n dir,\n pagesDir,\n !ignoreTypeScriptErrors,\n !config.images.disableStaticImages,\n cacheDir\n )\n )\n\n const typeCheckEnd = process.hrtime(typeCheckStart)\n\n if (!ignoreTypeScriptErrors) {\n telemetry.record(\n eventTypeCheckCompleted({\n durationInSeconds: typeCheckEnd[0],\n typescriptVersion: verifyResult.version,\n inputFilesCount: verifyResult.result?.inputFilesCount,\n totalFilesCount: verifyResult.result?.totalFilesCount,\n incremental: verifyResult.result?.incremental,\n })\n )\n }\n\n if (typeCheckingSpinner) {\n typeCheckingSpinner.stopAndPersist()\n }\n\n const ignoreESLint = Boolean(config.eslint?.ignoreDuringBuilds)\n const lintDirs = config.eslint?.dirs\n if (!ignoreESLint && runLint) {\n await nextBuildSpan\n .traceChild('verify-and-lint')\n .traceAsyncFn(async () => {\n await verifyAndLint(\n dir,\n lintDirs,\n config.experimental.cpus,\n config.experimental.workerThreads,\n telemetry\n )\n })\n }\n\n const buildSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} Creating an optimized production build`,\n })\n\n const isLikeServerless = isTargetLikeServerless(target)\n\n const pagePaths: string[] = await nextBuildSpan\n .traceChild('collect-pages')\n .traceAsyncFn(() => collectPages(pagesDir, config.pageExtensions))\n\n // needed for static exporting since we want to replace with HTML\n // files\n const allStaticPages = new Set<string>()\n let allPageInfos = new Map<string, PageInfo>()\n\n const previewProps: __ApiPreviewProps = {\n previewModeId: crypto.randomBytes(16).toString('hex'),\n previewModeSigningKey: crypto.randomBytes(32).toString('hex'),\n previewModeEncryptionKey: crypto.randomBytes(32).toString('hex'),\n }\n\n const mappedPages = nextBuildSpan\n .traceChild('create-pages-mapping')\n .traceFn(() => createPagesMapping(pagePaths, config.pageExtensions))\n const entrypoints = nextBuildSpan\n .traceChild('create-entrypoints')\n .traceFn(() =>\n createEntrypoints(\n mappedPages,\n target,\n buildId,\n previewProps,\n config,\n loadedEnvFiles\n )\n )\n const pageKeys = Object.keys(mappedPages)\n const conflictingPublicFiles: string[] = []\n const hasCustomErrorPage: boolean = mappedPages['/_error'].startsWith(\n 'private-next-pages'\n )\n const hasPages404 = Boolean(\n mappedPages['/404'] &&\n mappedPages['/404'].startsWith('private-next-pages')\n )\n\n if (hasPublicDir) {\n const hasPublicUnderScoreNextDir = await fileExists(\n path.join(publicDir, '_next')\n )\n if (hasPublicUnderScoreNextDir) {\n throw new Error(PUBLIC_DIR_MIDDLEWARE_CONFLICT)\n }\n }\n\n await nextBuildSpan\n .traceChild('public-dir-conflict-check')\n .traceAsyncFn(async () => {\n // Check if pages conflict with files in `public`\n // Only a page of public file can be served, not both.\n for (const page in mappedPages) {\n const hasPublicPageFile = await fileExists(\n path.join(publicDir, page === '/' ? '/index' : page),\n 'file'\n )\n if (hasPublicPageFile) {\n conflictingPublicFiles.push(page)\n }\n }\n\n const numConflicting = conflictingPublicFiles.length\n\n if (numConflicting) {\n throw new Error(\n `Conflicting public and page file${\n numConflicting === 1 ? ' was' : 's were'\n } found. https://nextjs.org/docs/messages/conflicting-public-file-page\\n${conflictingPublicFiles.join(\n '\\n'\n )}`\n )\n }\n })\n\n const nestedReservedPages = pageKeys.filter((page) => {\n return (\n page.match(/\\/(_app|_document|_error)$/) && path.dirname(page) !== '/'\n )\n })\n\n if (nestedReservedPages.length) {\n Log.warn(\n `The following reserved Next.js pages were detected not directly under the pages directory:\\n` +\n nestedReservedPages.join('\\n') +\n `\\nSee more info here: https://nextjs.org/docs/messages/nested-reserved-page\\n`\n )\n }\n\n const buildCustomRoute = (\n r: {\n source: string\n locale?: false\n basePath?: false\n statusCode?: number\n destination?: string\n },\n type: RouteType\n ) => {\n const keys: any[] = []\n\n const routeRegex = pathToRegexp(r.source, keys, {\n strict: true,\n sensitive: false,\n delimiter: '/', // default is `/#?`, but Next does not pass query info\n })\n\n return {\n ...r,\n ...(type === 'redirect'\n ? {\n statusCode: getRedirectStatus(r as Redirect),\n permanent: undefined,\n }\n : {}),\n regex: normalizeRouteRegex(routeRegex.source),\n }\n }\n\n const routesManifestPath = path.join(distDir, ROUTES_MANIFEST)\n const routesManifest: {\n version: number\n pages404: boolean\n basePath: string\n redirects: Array<ReturnType<typeof buildCustomRoute>>\n rewrites:\n | Array<ReturnType<typeof buildCustomRoute>>\n | {\n beforeFiles: Array<ReturnType<typeof buildCustomRoute>>\n afterFiles: Array<ReturnType<typeof buildCustomRoute>>\n fallback: Array<ReturnType<typeof buildCustomRoute>>\n }\n headers: Array<ReturnType<typeof buildCustomRoute>>\n dynamicRoutes: Array<{\n page: string\n regex: string\n namedRegex?: string\n routeKeys?: { [key: string]: string }\n }>\n dataRoutes: Array<{\n page: string\n routeKeys?: { [key: string]: string }\n dataRouteRegex: string\n namedDataRouteRegex?: string\n }>\n i18n?: {\n domains?: Array<{\n http?: true\n domain: string\n locales?: string[]\n defaultLocale: string\n }>\n locales: string[]\n defaultLocale: string\n localeDetection?: false\n }\n } = nextBuildSpan.traceChild('generate-routes-manifest').traceFn(() => ({\n version: 3,\n pages404: true,\n basePath: config.basePath,\n redirects: redirects.map((r: any) => buildCustomRoute(r, 'redirect')),\n headers: headers.map((r: any) => buildCustomRoute(r, 'header')),\n dynamicRoutes: getSortedRoutes(pageKeys)\n .filter(isDynamicRoute)\n .map((page) => {\n const routeRegex = getRouteRegex(page)\n return {\n page,\n regex: normalizeRouteRegex(routeRegex.re.source),\n routeKeys: routeRegex.routeKeys,\n namedRegex: routeRegex.namedRegex,\n }\n }),\n dataRoutes: [],\n i18n: config.i18n || undefined,\n }))\n\n if (rewrites.beforeFiles.length === 0 && rewrites.fallback.length === 0) {\n routesManifest.rewrites = rewrites.afterFiles.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n )\n } else {\n routesManifest.rewrites = {\n beforeFiles: rewrites.beforeFiles.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n ),\n afterFiles: rewrites.afterFiles.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n ),\n fallback: rewrites.fallback.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n ),\n }\n }\n const combinedRewrites: Rewrite[] = [\n ...rewrites.beforeFiles,\n ...rewrites.afterFiles,\n ...rewrites.fallback,\n ]\n\n const distDirCreated = await nextBuildSpan\n .traceChild('create-dist-dir')\n .traceAsyncFn(async () => {\n try {\n await promises.mkdir(distDir, { recursive: true })\n return true\n } catch (err) {\n if (err.code === 'EPERM') {\n return false\n }\n throw err\n }\n })\n\n if (!distDirCreated || !(await isWriteable(distDir))) {\n throw new Error(\n '> Build directory is not writeable. https://nextjs.org/docs/messages/build-dir-not-writeable'\n )\n }\n\n if (config.cleanDistDir) {\n await recursiveDelete(distDir, /^cache/)\n }\n\n // We need to write the manifest with rewrites before build\n // so serverless can import the manifest\n await nextBuildSpan\n .traceChild('write-routes-manifest')\n .traceAsyncFn(() =>\n promises.writeFile(\n routesManifestPath,\n JSON.stringify(routesManifest),\n 'utf8'\n )\n )\n\n const manifestPath = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n PAGES_MANIFEST\n )\n\n const requiredServerFiles = nextBuildSpan\n .traceChild('generate-required-server-files')\n .traceFn(() => ({\n version: 1,\n config: {\n ...config,\n compress: false,\n configFile: undefined,\n },\n appDir: dir,\n files: [\n ROUTES_MANIFEST,\n path.relative(distDir, manifestPath),\n BUILD_MANIFEST,\n PRERENDER_MANIFEST,\n REACT_LOADABLE_MANIFEST,\n config.optimizeFonts\n ? path.join(\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n FONT_MANIFEST\n )\n : null,\n BUILD_ID_FILE,\n ]\n .filter(nonNullable)\n .map((file) => path.join(config.distDir, file)),\n ignore: [] as string[],\n }))\n\n const configs = await nextBuildSpan\n .traceChild('generate-webpack-config')\n .traceAsyncFn(() =>\n Promise.all([\n getBaseWebpackConfig(dir, {\n buildId,\n reactProductionProfiling,\n isServer: false,\n config,\n target,\n pagesDir,\n entrypoints: entrypoints.client,\n rewrites,\n }),\n getBaseWebpackConfig(dir, {\n buildId,\n reactProductionProfiling,\n isServer: true,\n config,\n target,\n pagesDir,\n entrypoints: entrypoints.server,\n rewrites,\n }),\n ])\n )\n\n const clientConfig = configs[0]\n\n if (\n clientConfig.optimization &&\n (clientConfig.optimization.minimize !== true ||\n (clientConfig.optimization.minimizer &&\n clientConfig.optimization.minimizer.length === 0))\n ) {\n Log.warn(\n `Production code optimization has been disabled in your project. Read more: https://nextjs.org/docs/messages/minification-disabled`\n )\n }\n\n const webpackBuildStart = process.hrtime()\n\n let result: CompilerResult = { warnings: [], errors: [] }\n // We run client and server compilation separately to optimize for memory usage\n await nextBuildSpan\n .traceChild('run-webpack-compiler')\n .traceAsyncFn(async () => {\n const clientResult = await runCompiler(clientConfig)\n // Fail build if clientResult contains errors\n if (clientResult.errors.length > 0) {\n result = {\n warnings: [...clientResult.warnings],\n errors: [...clientResult.errors],\n }\n } else {\n const serverResult = await runCompiler(configs[1])\n result = {\n warnings: [...clientResult.warnings, ...serverResult.warnings],\n errors: [...clientResult.errors, ...serverResult.errors],\n }\n }\n })\n\n const webpackBuildEnd = process.hrtime(webpackBuildStart)\n if (buildSpinner) {\n buildSpinner.stopAndPersist()\n }\n\n result = nextBuildSpan\n .traceChild('format-webpack-messages')\n .traceFn(() => formatWebpackMessages(result))\n\n if (result.errors.length > 0) {\n // Only keep the first error. Others are often indicative\n // of the same problem, but confuse the reader with noise.\n if (result.errors.length > 1) {\n result.errors.length = 1\n }\n const error = result.errors.join('\\n\\n')\n\n console.error(chalk.red('Failed to compile.\\n'))\n\n if (\n error.indexOf('private-next-pages') > -1 &&\n error.indexOf('does not contain a default export') > -1\n ) {\n const page_name_regex = /'private-next-pages\\/(?<page_name>[^']*)'/\n const parsed = page_name_regex.exec(error)\n const page_name = parsed && parsed.groups && parsed.groups.page_name\n throw new Error(\n `webpack build failed: found page without a React Component as default export in pages/${page_name}\\n\\nSee https://nextjs.org/docs/messages/page-without-valid-component for more info.`\n )\n }\n\n console.error(error)\n console.error()\n\n if (\n error.indexOf('private-next-pages') > -1 ||\n error.indexOf('__next_polyfill__') > -1\n ) {\n throw new Error(\n '> webpack config.resolve.alias was incorrectly overridden. https://nextjs.org/docs/messages/invalid-resolve-alias'\n )\n }\n throw new Error('> Build failed because of webpack errors')\n } else {\n telemetry.record(\n eventBuildCompleted(pagePaths, {\n durationInSeconds: webpackBuildEnd[0],\n })\n )\n\n if (result.warnings.length > 0) {\n Log.warn('Compiled with warnings\\n')\n console.warn(result.warnings.join('\\n\\n'))\n console.warn()\n } else {\n Log.info('Compiled successfully')\n }\n }\n\n const postCompileSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} Collecting page data`,\n })\n\n const buildManifestPath = path.join(distDir, BUILD_MANIFEST)\n\n const ssgPages = new Set<string>()\n const ssgStaticFallbackPages = new Set<string>()\n const ssgBlockingFallbackPages = new Set<string>()\n const staticPages = new Set<string>()\n const invalidPages = new Set<string>()\n const hybridAmpPages = new Set<string>()\n const serverPropsPages = new Set<string>()\n const additionalSsgPaths = new Map<string, Array<string>>()\n const additionalSsgPathsEncoded = new Map<string, Array<string>>()\n const pageInfos = new Map<string, PageInfo>()\n const pagesManifest = JSON.parse(\n await promises.readFile(manifestPath, 'utf8')\n ) as PagesManifest\n const buildManifest = JSON.parse(\n await promises.readFile(buildManifestPath, 'utf8')\n ) as BuildManifest\n\n const analysisBegin = process.hrtime()\n\n const staticCheckSpan = nextBuildSpan.traceChild('static-check')\n const {\n customAppGetInitialProps,\n namedExports,\n isNextImageImported,\n hasSsrAmpPages,\n hasNonStaticErrorPage,\n } = await staticCheckSpan.traceAsyncFn(async () => {\n process.env.NEXT_PHASE = PHASE_PRODUCTION_BUILD\n\n const staticCheckWorkers = new Worker(staticCheckWorker, {\n numWorkers: config.experimental.cpus,\n enableWorkerThreads: config.experimental.workerThreads,\n }) as Worker & typeof import('./utils')\n\n staticCheckWorkers.getStdout().pipe(process.stdout)\n staticCheckWorkers.getStderr().pipe(process.stderr)\n\n const runtimeEnvConfig = {\n publicRuntimeConfig: config.publicRuntimeConfig,\n serverRuntimeConfig: config.serverRuntimeConfig,\n }\n\n const nonStaticErrorPageSpan = staticCheckSpan.traceChild(\n 'check-static-error-page'\n )\n const errorPageHasCustomGetInitialProps = nonStaticErrorPageSpan.traceAsyncFn(\n async () =>\n hasCustomErrorPage &&\n (await staticCheckWorkers.hasCustomGetInitialProps(\n '/_error',\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n false\n ))\n )\n\n const errorPageStaticResult = nonStaticErrorPageSpan.traceAsyncFn(\n async () =>\n hasCustomErrorPage &&\n staticCheckWorkers.isPageStatic(\n '/_error',\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n config.i18n?.locales,\n config.i18n?.defaultLocale\n )\n )\n\n // we don't output _app in serverless mode so use _app export\n // from _error instead\n const appPageToCheck = isLikeServerless ? '/_error' : '/_app'\n\n const customAppGetInitialPropsPromise = staticCheckWorkers.hasCustomGetInitialProps(\n appPageToCheck,\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n true\n )\n\n const namedExportsPromise = staticCheckWorkers.getNamedExports(\n appPageToCheck,\n distDir,\n isLikeServerless,\n runtimeEnvConfig\n )\n\n // eslint-disable-next-line no-shadow\n let isNextImageImported: boolean | undefined\n // eslint-disable-next-line no-shadow\n let hasSsrAmpPages = false\n\n const computedManifestData = await computeFromManifest(\n buildManifest,\n distDir,\n config.experimental.gzipSize\n )\n await Promise.all(\n pageKeys.map(async (page) => {\n const checkPageSpan = staticCheckSpan.traceChild('check-page', {\n page,\n })\n return checkPageSpan.traceAsyncFn(async () => {\n const actualPage = normalizePagePath(page)\n const [selfSize, allSize] = await getJsPageSizeInKb(\n actualPage,\n distDir,\n buildManifest,\n config.experimental.gzipSize,\n computedManifestData\n )\n\n let isSsg = false\n let isStatic = false\n let isHybridAmp = false\n let ssgPageRoutes: string[] | null = null\n\n const nonReservedPage = !page.match(\n /^\\/(_app|_error|_document|api(\\/|$))/\n )\n\n if (nonReservedPage) {\n try {\n let isPageStaticSpan = checkPageSpan.traceChild(\n 'is-page-static'\n )\n let workerResult = await isPageStaticSpan.traceAsyncFn(() => {\n return staticCheckWorkers.isPageStatic(\n page,\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n config.i18n?.locales,\n config.i18n?.defaultLocale,\n isPageStaticSpan.id\n )\n })\n\n if (\n workerResult.isStatic === false &&\n (workerResult.isHybridAmp || workerResult.isAmpOnly)\n ) {\n hasSsrAmpPages = true\n }\n\n if (workerResult.isHybridAmp) {\n isHybridAmp = true\n hybridAmpPages.add(page)\n }\n\n if (workerResult.isNextImageImported) {\n isNextImageImported = true\n }\n\n if (workerResult.hasStaticProps) {\n ssgPages.add(page)\n isSsg = true\n\n if (\n workerResult.prerenderRoutes &&\n workerResult.encodedPrerenderRoutes\n ) {\n additionalSsgPaths.set(page, workerResult.prerenderRoutes)\n additionalSsgPathsEncoded.set(\n page,\n workerResult.encodedPrerenderRoutes\n )\n ssgPageRoutes = workerResult.prerenderRoutes\n }\n\n if (workerResult.prerenderFallback === 'blocking') {\n ssgBlockingFallbackPages.add(page)\n } else if (workerResult.prerenderFallback === true) {\n ssgStaticFallbackPages.add(page)\n }\n } else if (workerResult.hasServerProps) {\n serverPropsPages.add(page)\n } else if (\n workerResult.isStatic &&\n (await customAppGetInitialPropsPromise) === false\n ) {\n staticPages.add(page)\n isStatic = true\n }\n\n if (hasPages404 && page === '/404') {\n if (!workerResult.isStatic && !workerResult.hasStaticProps) {\n throw new Error(\n `\\`pages/404\\` ${STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR}`\n )\n }\n // we need to ensure the 404 lambda is present since we use\n // it when _app has getInitialProps\n if (\n (await customAppGetInitialPropsPromise) &&\n !workerResult.hasStaticProps\n ) {\n staticPages.delete(page)\n }\n }\n\n if (\n STATIC_STATUS_PAGES.includes(page) &&\n !workerResult.isStatic &&\n !workerResult.hasStaticProps\n ) {\n throw new Error(\n `\\`pages${page}\\` ${STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR}`\n )\n }\n } catch (err) {\n if (err.message !== 'INVALID_DEFAULT_EXPORT') throw err\n invalidPages.add(page)\n }\n }\n\n pageInfos.set(page, {\n size: selfSize,\n totalSize: allSize,\n static: isStatic,\n isSsg,\n isHybridAmp,\n ssgPageRoutes,\n initialRevalidateSeconds: false,\n })\n })\n })\n )\n\n const errorPageResult = await errorPageStaticResult\n const nonStaticErrorPage =\n (await errorPageHasCustomGetInitialProps) ||\n (errorPageResult && errorPageResult.hasServerProps)\n\n const returnValue = {\n customAppGetInitialProps: await customAppGetInitialPropsPromise,\n namedExports: await namedExportsPromise,\n isNextImageImported,\n hasSsrAmpPages,\n hasNonStaticErrorPage: nonStaticErrorPage,\n }\n\n staticCheckWorkers.end()\n return returnValue\n })\n\n if (customAppGetInitialProps) {\n console.warn(\n chalk.bold.yellow(`Warning: `) +\n chalk.yellow(\n `You have opted-out of Automatic Static Optimization due to \\`getInitialProps\\` in \\`pages/_app\\`. This does not opt-out pages with \\`getStaticProps\\``\n )\n )\n console.warn(\n 'Read more: https://nextjs.org/docs/messages/opt-out-auto-static-optimization\\n'\n )\n }\n\n if (!hasSsrAmpPages) {\n requiredServerFiles.ignore.push(\n path.relative(\n dir,\n path.join(\n path.dirname(\n require.resolve(\n 'next/dist/compiled/@ampproject/toolbox-optimizer'\n )\n ),\n '**/*'\n )\n )\n )\n }\n\n if (serverPropsPages.size > 0 || ssgPages.size > 0) {\n // We update the routes manifest after the build with the\n // data routes since we can't determine these until after build\n routesManifest.dataRoutes = getSortedRoutes([\n ...serverPropsPages,\n ...ssgPages,\n ]).map((page) => {\n const pagePath = normalizePagePath(page)\n const dataRoute = path.posix.join(\n '/_next/data',\n buildId,\n `${pagePath}.json`\n )\n\n let dataRouteRegex: string\n let namedDataRouteRegex: string | undefined\n let routeKeys: { [named: string]: string } | undefined\n\n if (isDynamicRoute(page)) {\n const routeRegex = getRouteRegex(dataRoute.replace(/\\.json$/, ''))\n\n dataRouteRegex = normalizeRouteRegex(\n routeRegex.re.source.replace(/\\(\\?:\\\\\\/\\)\\?\\$$/, '\\\\.json$')\n )\n namedDataRouteRegex = routeRegex.namedRegex!.replace(\n /\\(\\?:\\/\\)\\?\\$$/,\n '\\\\.json$'\n )\n routeKeys = routeRegex.routeKeys\n } else {\n dataRouteRegex = normalizeRouteRegex(\n new RegExp(\n `^${path.posix.join(\n '/_next/data',\n escapeStringRegexp(buildId),\n `${pagePath}.json`\n )}$`\n ).source\n )\n }\n\n return {\n page,\n routeKeys,\n dataRouteRegex,\n namedDataRouteRegex,\n }\n })\n\n await promises.writeFile(\n routesManifestPath,\n JSON.stringify(routesManifest),\n 'utf8'\n )\n }\n\n // Since custom _app.js can wrap the 404 page we have to opt-out of static optimization if it has getInitialProps\n // Only export the static 404 when there is no /_error present\n const useStatic404 =\n !customAppGetInitialProps && (!hasNonStaticErrorPage || hasPages404)\n\n if (invalidPages.size > 0) {\n throw new Error(\n `Build optimization failed: found page${\n invalidPages.size === 1 ? '' : 's'\n } without a React Component as default export in \\n${[...invalidPages]\n .map((pg) => `pages${pg}`)\n .join(\n '\\n'\n )}\\n\\nSee https://nextjs.org/docs/messages/page-without-valid-component for more info.\\n`\n )\n }\n\n await writeBuildId(distDir, buildId)\n\n if (config.experimental.optimizeCss) {\n const cssFilePaths = getCssFilePaths(buildManifest)\n\n requiredServerFiles.files.push(\n ...cssFilePaths.map((filePath) => path.join(config.distDir, filePath))\n )\n }\n\n await promises.writeFile(\n path.join(distDir, SERVER_FILES_MANIFEST),\n JSON.stringify(requiredServerFiles),\n 'utf8'\n )\n\n const finalPrerenderRoutes: { [route: string]: SsgRoute } = {}\n const tbdPrerenderRoutes: string[] = []\n let ssgNotFoundPaths: string[] = []\n\n if (postCompileSpinner) postCompileSpinner.stopAndPersist()\n\n const { i18n } = config\n\n const usedStaticStatusPages = STATIC_STATUS_PAGES.filter(\n (page) =>\n mappedPages[page] && mappedPages[page].startsWith('private-next-pages')\n )\n usedStaticStatusPages.forEach((page) => {\n if (!ssgPages.has(page) && !customAppGetInitialProps) {\n staticPages.add(page)\n }\n })\n\n const hasPages500 = usedStaticStatusPages.includes('/500')\n const useDefaultStatic500 =\n !hasPages500 && !hasNonStaticErrorPage && !customAppGetInitialProps\n\n const combinedPages = [...staticPages, ...ssgPages]\n\n if (combinedPages.length > 0 || useStatic404 || useDefaultStatic500) {\n const staticGenerationSpan = nextBuildSpan.traceChild('static-generation')\n await staticGenerationSpan.traceAsyncFn(async () => {\n detectConflictingPaths(\n [\n ...combinedPages,\n ...pageKeys.filter((page) => !combinedPages.includes(page)),\n ],\n ssgPages,\n additionalSsgPaths\n )\n const exportApp = require('../export').default\n const exportOptions = {\n silent: false,\n buildExport: true,\n threads: config.experimental.cpus,\n pages: combinedPages,\n outdir: path.join(distDir, 'export'),\n statusMessage: 'Generating static pages',\n }\n const exportConfig: any = {\n ...config,\n initialPageRevalidationMap: {},\n ssgNotFoundPaths: [] as string[],\n // Default map will be the collection of automatic statically exported\n // pages and incremental pages.\n // n.b. we cannot handle this above in combinedPages because the dynamic\n // page must be in the `pages` array, but not in the mapping.\n exportPathMap: (defaultMap: any) => {\n // Dynamically routed pages should be prerendered to be used as\n // a client-side skeleton (fallback) while data is being fetched.\n // This ensures the end-user never sees a 500 or slow response from the\n // server.\n //\n // Note: prerendering disables automatic static optimization.\n ssgPages.forEach((page) => {\n if (isDynamicRoute(page)) {\n tbdPrerenderRoutes.push(page)\n\n if (ssgStaticFallbackPages.has(page)) {\n // Override the rendering for the dynamic page to be treated as a\n // fallback render.\n if (i18n) {\n defaultMap[`/${i18n.defaultLocale}${page}`] = {\n page,\n query: { __nextFallback: true },\n }\n } else {\n defaultMap[page] = { page, query: { __nextFallback: true } }\n }\n } else {\n // Remove dynamically routed pages from the default path map when\n // fallback behavior is disabled.\n delete defaultMap[page]\n }\n }\n })\n // Append the \"well-known\" routes we should prerender for, e.g. blog\n // post slugs.\n additionalSsgPaths.forEach((routes, page) => {\n const encodedRoutes = additionalSsgPathsEncoded.get(page)\n\n routes.forEach((route, routeIdx) => {\n defaultMap[route] = {\n page,\n query: { __nextSsgPath: encodedRoutes?.[routeIdx] },\n }\n })\n })\n\n if (useStatic404) {\n defaultMap['/404'] = {\n page: hasPages404 ? '/404' : '/_error',\n }\n }\n\n if (useDefaultStatic500) {\n defaultMap['/500'] = {\n page: '/_error',\n }\n }\n\n if (i18n) {\n for (const page of [\n ...staticPages,\n ...ssgPages,\n ...(useStatic404 ? ['/404'] : []),\n ...(useDefaultStatic500 ? ['/500'] : []),\n ]) {\n const isSsg = ssgPages.has(page)\n const isDynamic = isDynamicRoute(page)\n const isFallback = isSsg && ssgStaticFallbackPages.has(page)\n\n for (const locale of i18n.locales) {\n // skip fallback generation for SSG pages without fallback mode\n if (isSsg && isDynamic && !isFallback) continue\n const outputPath = `/${locale}${page === '/' ? '' : page}`\n\n defaultMap[outputPath] = {\n page: defaultMap[page]?.page || page,\n query: { __nextLocale: locale },\n }\n\n if (isFallback) {\n defaultMap[outputPath].query.__nextFallback = true\n }\n }\n\n if (isSsg) {\n // remove non-locale prefixed variant from defaultMap\n delete defaultMap[page]\n }\n }\n }\n return defaultMap\n },\n }\n\n await exportApp(dir, exportOptions, exportConfig)\n\n const postBuildSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} Finalizing page optimization`,\n })\n ssgNotFoundPaths = exportConfig.ssgNotFoundPaths\n\n // remove server bundles that were exported\n for (const page of staticPages) {\n const serverBundle = getPagePath(page, distDir, isLikeServerless)\n await promises.unlink(serverBundle)\n }\n const serverOutputDir = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY\n )\n\n const moveExportedPage = async (\n originPage: string,\n page: string,\n file: string,\n isSsg: boolean,\n ext: 'html' | 'json',\n additionalSsgFile = false\n ) => {\n return staticGenerationSpan\n .traceChild('move-exported-page')\n .traceAsyncFn(async () => {\n file = `${file}.${ext}`\n const orig = path.join(exportOptions.outdir, file)\n const pagePath = getPagePath(\n originPage,\n distDir,\n isLikeServerless\n )\n\n const relativeDest = path\n .relative(\n serverOutputDir,\n path.join(\n path.join(\n pagePath,\n // strip leading / and then recurse number of nested dirs\n // to place from base folder\n originPage\n .substr(1)\n .split('/')\n .map(() => '..')\n .join('/')\n ),\n file\n )\n )\n .replace(/\\\\/g, '/')\n\n const dest = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n relativeDest\n )\n\n if (\n !isSsg &&\n !(\n // don't add static status page to manifest if it's\n // the default generated version e.g. no pages/500\n (\n STATIC_STATUS_PAGES.includes(page) &&\n !usedStaticStatusPages.includes(page)\n )\n )\n ) {\n pagesManifest[page] = relativeDest\n }\n\n const isNotFound = ssgNotFoundPaths.includes(page)\n\n // for SSG files with i18n the non-prerendered variants are\n // output with the locale prefixed so don't attempt moving\n // without the prefix\n if ((!i18n || additionalSsgFile) && !isNotFound) {\n await promises.mkdir(path.dirname(dest), { recursive: true })\n await promises.rename(orig, dest)\n } else if (i18n && !isSsg) {\n // this will be updated with the locale prefixed variant\n // since all files are output with the locale prefix\n delete pagesManifest[page]\n }\n\n if (i18n) {\n if (additionalSsgFile) return\n\n for (const locale of i18n.locales) {\n const curPath = `/${locale}${page === '/' ? '' : page}`\n const localeExt = page === '/' ? path.extname(file) : ''\n const relativeDestNoPages = relativeDest.substr(\n 'pages/'.length\n )\n\n if (isSsg && ssgNotFoundPaths.includes(curPath)) {\n continue\n }\n\n const updatedRelativeDest = path\n .join(\n 'pages',\n locale + localeExt,\n // if it's the top-most index page we want it to be locale.EXT\n // instead of locale/index.html\n page === '/' ? '' : relativeDestNoPages\n )\n .replace(/\\\\/g, '/')\n\n const updatedOrig = path.join(\n exportOptions.outdir,\n locale + localeExt,\n page === '/' ? '' : file\n )\n const updatedDest = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n updatedRelativeDest\n )\n\n if (!isSsg) {\n pagesManifest[curPath] = updatedRelativeDest\n }\n await promises.mkdir(path.dirname(updatedDest), {\n recursive: true,\n })\n await promises.rename(updatedOrig, updatedDest)\n }\n }\n })\n }\n\n // Only move /404 to /404 when there is no custom 404 as in that case we don't know about the 404 page\n if (!hasPages404 && useStatic404) {\n await moveExportedPage('/_error', '/404', '/404', false, 'html')\n }\n\n if (useDefaultStatic500) {\n await moveExportedPage('/_error', '/500', '/500', false, 'html')\n }\n\n for (const page of combinedPages) {\n const isSsg = ssgPages.has(page)\n const isStaticSsgFallback = ssgStaticFallbackPages.has(page)\n const isDynamic = isDynamicRoute(page)\n const hasAmp = hybridAmpPages.has(page)\n const file = normalizePagePath(page)\n\n // The dynamic version of SSG pages are only prerendered if the\n // fallback is enabled. Below, we handle the specific prerenders\n // of these.\n const hasHtmlOutput = !(isSsg && isDynamic && !isStaticSsgFallback)\n\n if (hasHtmlOutput) {\n await moveExportedPage(page, page, file, isSsg, 'html')\n }\n\n if (hasAmp && (!isSsg || (isSsg && !isDynamic))) {\n const ampPage = `${file}.amp`\n await moveExportedPage(page, ampPage, ampPage, isSsg, 'html')\n\n if (isSsg) {\n await moveExportedPage(page, ampPage, ampPage, isSsg, 'json')\n }\n }\n\n if (isSsg) {\n // For a non-dynamic SSG page, we must copy its data file\n // from export, we already moved the HTML file above\n if (!isDynamic) {\n await moveExportedPage(page, page, file, isSsg, 'json')\n\n if (i18n) {\n // TODO: do we want to show all locale variants in build output\n for (const locale of i18n.locales) {\n const localePage = `/${locale}${page === '/' ? '' : page}`\n\n if (!ssgNotFoundPaths.includes(localePage)) {\n finalPrerenderRoutes[localePage] = {\n initialRevalidateSeconds:\n exportConfig.initialPageRevalidationMap[localePage],\n srcRoute: null,\n dataRoute: path.posix.join(\n '/_next/data',\n buildId,\n `${file}.json`\n ),\n }\n }\n }\n } else {\n finalPrerenderRoutes[page] = {\n initialRevalidateSeconds:\n exportConfig.initialPageRevalidationMap[page],\n srcRoute: null,\n dataRoute: path.posix.join(\n '/_next/data',\n buildId,\n `${file}.json`\n ),\n }\n }\n // Set Page Revalidation Interval\n const pageInfo = pageInfos.get(page)\n if (pageInfo) {\n pageInfo.initialRevalidateSeconds =\n exportConfig.initialPageRevalidationMap[page]\n pageInfos.set(page, pageInfo)\n }\n } else {\n // For a dynamic SSG page, we did not copy its data exports and only\n // copy the fallback HTML file (if present).\n // We must also copy specific versions of this page as defined by\n // `getStaticPaths` (additionalSsgPaths).\n const extraRoutes = additionalSsgPaths.get(page) || []\n for (const route of extraRoutes) {\n const pageFile = normalizePagePath(route)\n await moveExportedPage(\n page,\n route,\n pageFile,\n isSsg,\n 'html',\n true\n )\n await moveExportedPage(\n page,\n route,\n pageFile,\n isSsg,\n 'json',\n true\n )\n\n if (hasAmp) {\n const ampPage = `${pageFile}.amp`\n await moveExportedPage(\n page,\n ampPage,\n ampPage,\n isSsg,\n 'html',\n true\n )\n await moveExportedPage(\n page,\n ampPage,\n ampPage,\n isSsg,\n 'json',\n true\n )\n }\n\n finalPrerenderRoutes[route] = {\n initialRevalidateSeconds:\n exportConfig.initialPageRevalidationMap[route],\n srcRoute: page,\n dataRoute: path.posix.join(\n '/_next/data',\n buildId,\n `${normalizePagePath(route)}.json`\n ),\n }\n\n // Set route Revalidation Interval\n const pageInfo = pageInfos.get(route)\n if (pageInfo) {\n pageInfo.initialRevalidateSeconds =\n exportConfig.initialPageRevalidationMap[route]\n pageInfos.set(route, pageInfo)\n }\n }\n }\n }\n }\n\n // remove temporary export folder\n await recursiveDelete(exportOptions.outdir)\n await promises.rmdir(exportOptions.outdir)\n await promises.writeFile(\n manifestPath,\n JSON.stringify(pagesManifest, null, 2),\n 'utf8'\n )\n\n if (postBuildSpinner) postBuildSpinner.stopAndPersist()\n console.log()\n })\n }\n\n const analysisEnd = process.hrtime(analysisBegin)\n telemetry.record(\n eventBuildOptimize(pagePaths, {\n durationInSeconds: analysisEnd[0],\n staticPageCount: staticPages.size,\n staticPropsPageCount: ssgPages.size,\n serverPropsPageCount: serverPropsPages.size,\n ssrPageCount:\n pagePaths.length -\n (staticPages.size + ssgPages.size + serverPropsPages.size),\n hasStatic404: useStatic404,\n hasReportWebVitals: namedExports?.includes('reportWebVitals') ?? false,\n rewritesCount: combinedRewrites.length,\n headersCount: headers.length,\n redirectsCount: redirects.length - 1, // reduce one for trailing slash\n headersWithHasCount: headers.filter((r: any) => !!r.has).length,\n rewritesWithHasCount: combinedRewrites.filter((r: any) => !!r.has)\n .length,\n redirectsWithHasCount: redirects.filter((r: any) => !!r.has).length,\n })\n )\n\n if (ssgPages.size > 0) {\n const finalDynamicRoutes: PrerenderManifest['dynamicRoutes'] = {}\n tbdPrerenderRoutes.forEach((tbdRoute) => {\n const normalizedRoute = normalizePagePath(tbdRoute)\n const dataRoute = path.posix.join(\n '/_next/data',\n buildId,\n `${normalizedRoute}.json`\n )\n\n finalDynamicRoutes[tbdRoute] = {\n routeRegex: normalizeRouteRegex(getRouteRegex(tbdRoute).re.source),\n dataRoute,\n fallback: ssgBlockingFallbackPages.has(tbdRoute)\n ? null\n : ssgStaticFallbackPages.has(tbdRoute)\n ? `${normalizedRoute}.html`\n : false,\n dataRouteRegex: normalizeRouteRegex(\n getRouteRegex(dataRoute.replace(/\\.json$/, '')).re.source.replace(\n /\\(\\?:\\\\\\/\\)\\?\\$$/,\n '\\\\.json$'\n )\n ),\n }\n })\n const prerenderManifest: PrerenderManifest = {\n version: 3,\n routes: finalPrerenderRoutes,\n dynamicRoutes: finalDynamicRoutes,\n notFoundRoutes: ssgNotFoundPaths,\n preview: previewProps,\n }\n\n await promises.writeFile(\n path.join(distDir, PRERENDER_MANIFEST),\n JSON.stringify(prerenderManifest),\n 'utf8'\n )\n await generateClientSsgManifest(prerenderManifest, {\n distDir,\n buildId,\n locales: config.i18n?.locales || [],\n })\n } else {\n const prerenderManifest: PrerenderManifest = {\n version: 3,\n routes: {},\n dynamicRoutes: {},\n preview: previewProps,\n notFoundRoutes: [],\n }\n await promises.writeFile(\n path.join(distDir, PRERENDER_MANIFEST),\n JSON.stringify(prerenderManifest),\n 'utf8'\n )\n }\n\n const images = { ...config.images }\n const { deviceSizes, imageSizes } = images\n images.sizes = [...deviceSizes, ...imageSizes]\n\n await promises.writeFile(\n path.join(distDir, IMAGES_MANIFEST),\n JSON.stringify({\n version: 1,\n images,\n }),\n 'utf8'\n )\n await promises.writeFile(\n path.join(distDir, EXPORT_MARKER),\n JSON.stringify({\n version: 1,\n hasExportPathMap: typeof config.exportPathMap === 'function',\n exportTrailingSlash: config.trailingSlash === true,\n isNextImageImported: isNextImageImported === true,\n }),\n 'utf8'\n )\n await promises.unlink(path.join(distDir, EXPORT_DETAIL)).catch((err) => {\n if (err.code === 'ENOENT') {\n return Promise.resolve()\n }\n return Promise.reject(err)\n })\n\n staticPages.forEach((pg) => allStaticPages.add(pg))\n pageInfos.forEach((info: PageInfo, key: string) => {\n allPageInfos.set(key, info)\n })\n\n await nextBuildSpan.traceChild('print-tree-view').traceAsyncFn(() =>\n printTreeView(Object.keys(mappedPages), allPageInfos, isLikeServerless, {\n distPath: distDir,\n buildId: buildId,\n pagesDir,\n useStatic404,\n pageExtensions: config.pageExtensions,\n buildManifest,\n gzipSize: config.experimental.gzipSize,\n })\n )\n\n if (debugOutput) {\n nextBuildSpan\n .traceChild('print-custom-routes')\n .traceFn(() => printCustomRoutes({ redirects, rewrites, headers }))\n }\n\n if (config.analyticsId) {\n console.log(\n chalk.bold.green('Next.js Analytics') +\n ' is enabled for this production build. ' +\n \"You'll receive a Real Experience Score computed by all of your visitors.\"\n )\n console.log('')\n }\n\n await nextBuildSpan\n .traceChild('telemetry-flush')\n .traceAsyncFn(() => telemetry.flush())\n })\n}\n\nexport type ClientSsgManifest = Set<string>\n\nfunction generateClientSsgManifest(\n prerenderManifest: PrerenderManifest,\n {\n buildId,\n distDir,\n locales,\n }: { buildId: string; distDir: string; locales: string[] }\n) {\n const ssgPages: ClientSsgManifest = new Set<string>([\n ...Object.entries(prerenderManifest.routes)\n // Filter out dynamic routes\n .filter(([, { srcRoute }]) => srcRoute == null)\n .map(([route]) => normalizeLocalePath(route, locales).pathname),\n ...Object.keys(prerenderManifest.dynamicRoutes),\n ])\n\n const clientSsgManifestContent = `self.__SSG_MANIFEST=${devalue(\n ssgPages\n )};self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()`\n\n writeFileSync(\n path.join(distDir, CLIENT_STATIC_FILES_PATH, buildId, '_ssgManifest.js'),\n clientSsgManifestContent\n )\n}\n"]} | |
\ No newline at end of file | |
+{"version":3,"sources":["../../build/index.ts"],"names":["staticCheckWorker","require","resolve","build","dir","conf","reactProductionProfiling","debugOutput","runLint","nextBuildSpan","traceAsyncFn","loadedEnvFiles","traceChild","traceFn","Log","config","PHASE_PRODUCTION_BUILD","target","buildId","generateBuildId","nanoid","distDir","path","join","customRoutes","headers","rewrites","redirects","cacheDir","ciEnvironment","isCI","hasNextSupport","hasCache","console","log","prefixes","warn","telemetry","Telemetry","publicDir","pagesDirs","pagesPaths","hasPublicDir","record","webpackVersion","isWebpack5","cliCommand","isSrcDir","length","relative","startsWith","hasNowJson","cwd","isCustomServer","then","events","ignoreTypeScriptErrors","Boolean","typescript","ignoreBuildErrors","typeCheckStart","process","hrtime","typeCheckingSpinner","prefixText","info","verifyResult","images","disableStaticImages","typeCheckEnd","durationInSeconds","typescriptVersion","version","inputFilesCount","result","totalFilesCount","incremental","stopAndPersist","ignoreESLint","eslint","ignoreDuringBuilds","lintDirs","dirs","experimental","cpus","workerThreads","buildSpinner","isLikeServerless","pagePaths","pageExtensions","allStaticPages","Set","allPageInfos","Map","previewProps","previewModeId","crypto","randomBytes","toString","previewModeSigningKey","previewModeEncryptionKey","mappedPages","entrypoints","pageKeys","Object","keys","conflictingPublicFiles","hasCustomErrorPage","hasPages404","hasPublicUnderScoreNextDir","Error","PUBLIC_DIR_MIDDLEWARE_CONFLICT","page","hasPublicPageFile","push","numConflicting","nestedReservedPages","filter","match","dirname","buildCustomRoute","r","type","routeRegex","source","strict","sensitive","delimiter","statusCode","permanent","undefined","regex","routesManifestPath","ROUTES_MANIFEST","routesManifest","pages404","basePath","map","dynamicRoutes","isDynamicRoute","re","routeKeys","namedRegex","dataRoutes","i18n","beforeFiles","fallback","afterFiles","combinedRewrites","distDirCreated","promises","mkdir","recursive","err","code","cleanDistDir","writeFile","JSON","stringify","manifestPath","SERVERLESS_DIRECTORY","SERVER_DIRECTORY","PAGES_MANIFEST","requiredServerFiles","compress","configFile","appDir","files","BUILD_MANIFEST","PRERENDER_MANIFEST","REACT_LOADABLE_MANIFEST","optimizeFonts","FONT_MANIFEST","BUILD_ID_FILE","nonNullable","file","ignore","configs","Promise","all","isServer","client","server","clientConfig","optimization","minimize","minimizer","webpackBuildStart","warnings","errors","clientResult","serverResult","webpackBuildEnd","error","chalk","red","indexOf","page_name_regex","parsed","exec","page_name","groups","postCompileSpinner","buildManifestPath","ssgPages","ssgStaticFallbackPages","ssgBlockingFallbackPages","staticPages","invalidPages","hybridAmpPages","serverPropsPages","additionalSsgPaths","additionalSsgPathsEncoded","pageInfos","pagesManifest","parse","readFile","buildManifest","analysisBegin","staticCheckSpan","customAppGetInitialProps","namedExports","isNextImageImported","hasSsrAmpPages","hasNonStaticErrorPage","env","NEXT_PHASE","staticCheckWorkers","Worker","numWorkers","enableWorkerThreads","getStdout","pipe","stdout","getStderr","stderr","runtimeEnvConfig","publicRuntimeConfig","serverRuntimeConfig","nonStaticErrorPageSpan","errorPageHasCustomGetInitialProps","hasCustomGetInitialProps","errorPageStaticResult","isPageStatic","locales","defaultLocale","appPageToCheck","customAppGetInitialPropsPromise","namedExportsPromise","getNamedExports","computedManifestData","gzipSize","checkPageSpan","actualPage","selfSize","allSize","isSsg","isStatic","isHybridAmp","ssgPageRoutes","nonReservedPage","isPageStaticSpan","workerResult","id","isAmpOnly","add","hasStaticProps","prerenderRoutes","encodedPrerenderRoutes","set","prerenderFallback","hasServerProps","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","delete","STATIC_STATUS_PAGES","includes","message","size","totalSize","static","initialRevalidateSeconds","errorPageResult","nonStaticErrorPage","returnValue","end","bold","yellow","pagePath","dataRoute","posix","dataRouteRegex","namedDataRouteRegex","replace","RegExp","useStatic404","pg","optimizeCss","cssFilePaths","filePath","SERVER_FILES_MANIFEST","finalPrerenderRoutes","tbdPrerenderRoutes","ssgNotFoundPaths","usedStaticStatusPages","forEach","has","hasPages500","useDefaultStatic500","combinedPages","staticGenerationSpan","exportApp","default","exportOptions","silent","buildExport","threads","pages","outdir","statusMessage","exportConfig","initialPageRevalidationMap","exportPathMap","defaultMap","query","__nextFallback","routes","encodedRoutes","get","route","routeIdx","__nextSsgPath","isDynamic","isFallback","locale","outputPath","__nextLocale","postBuildSpinner","serverBundle","unlink","serverOutputDir","moveExportedPage","originPage","ext","additionalSsgFile","orig","relativeDest","substr","split","dest","isNotFound","rename","curPath","localeExt","extname","relativeDestNoPages","updatedRelativeDest","updatedOrig","updatedDest","isStaticSsgFallback","hasAmp","hasHtmlOutput","ampPage","localePage","srcRoute","pageInfo","extraRoutes","pageFile","rmdir","analysisEnd","staticPageCount","staticPropsPageCount","serverPropsPageCount","ssrPageCount","hasStatic404","hasReportWebVitals","rewritesCount","headersCount","redirectsCount","headersWithHasCount","rewritesWithHasCount","redirectsWithHasCount","finalDynamicRoutes","tbdRoute","normalizedRoute","prerenderManifest","notFoundRoutes","preview","generateClientSsgManifest","deviceSizes","imageSizes","sizes","IMAGES_MANIFEST","EXPORT_MARKER","hasExportPathMap","exportTrailingSlash","trailingSlash","EXPORT_DETAIL","catch","reject","key","distPath","analyticsId","green","flush","entries","pathname","clientSsgManifestContent","CLIENT_STATIC_FILES_PATH"],"mappings":"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","sourcesContent":["import { loadEnvConfig } from '@next/env'\nimport chalk from 'chalk'\nimport crypto from 'crypto'\nimport { promises, writeFileSync } from 'fs'\nimport { Worker } from 'jest-worker'\nimport devalue from 'next/dist/compiled/devalue'\nimport escapeStringRegexp from 'next/dist/compiled/escape-string-regexp'\nimport findUp from 'next/dist/compiled/find-up'\nimport { nanoid } from 'next/dist/compiled/nanoid/index.cjs'\nimport { pathToRegexp } from 'next/dist/compiled/path-to-regexp'\nimport path from 'path'\nimport formatWebpackMessages from '../client/dev/error-overlay/format-webpack-messages'\nimport {\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR,\n PUBLIC_DIR_MIDDLEWARE_CONFLICT,\n} from '../lib/constants'\nimport { fileExists } from '../lib/file-exists'\nimport { findPagesDir } from '../lib/find-pages-dir'\nimport loadCustomRoutes, {\n CustomRoutes,\n getRedirectStatus,\n normalizeRouteRegex,\n Redirect,\n Rewrite,\n RouteType,\n} from '../lib/load-custom-routes'\nimport { nonNullable } from '../lib/non-nullable'\nimport { recursiveDelete } from '../lib/recursive-delete'\nimport { verifyAndLint } from '../lib/verifyAndLint'\nimport { verifyTypeScriptSetup } from '../lib/verifyTypeScriptSetup'\nimport {\n BUILD_ID_FILE,\n BUILD_MANIFEST,\n CLIENT_STATIC_FILES_PATH,\n EXPORT_DETAIL,\n EXPORT_MARKER,\n FONT_MANIFEST,\n IMAGES_MANIFEST,\n PAGES_MANIFEST,\n PHASE_PRODUCTION_BUILD,\n PRERENDER_MANIFEST,\n REACT_LOADABLE_MANIFEST,\n ROUTES_MANIFEST,\n SERVERLESS_DIRECTORY,\n SERVER_DIRECTORY,\n SERVER_FILES_MANIFEST,\n STATIC_STATUS_PAGES,\n} from '../next-server/lib/constants'\nimport {\n getRouteRegex,\n getSortedRoutes,\n isDynamicRoute,\n} from '../next-server/lib/router/utils'\nimport { __ApiPreviewProps } from '../next-server/server/api-utils'\nimport loadConfig, {\n isTargetLikeServerless,\n NextConfig,\n} from '../next-server/server/config'\nimport { BuildManifest } from '../next-server/server/get-page-files'\nimport '../next-server/server/node-polyfill-fetch'\nimport { normalizePagePath } from '../next-server/server/normalize-page-path'\nimport { getPagePath } from '../next-server/server/require'\nimport * as ciEnvironment from '../telemetry/ci-info'\nimport {\n eventBuildCompleted,\n eventBuildOptimize,\n eventCliSession,\n eventNextPlugins,\n eventTypeCheckCompleted,\n} from '../telemetry/events'\nimport { Telemetry } from '../telemetry/storage'\nimport { CompilerResult, runCompiler } from './compiler'\nimport { createEntrypoints, createPagesMapping } from './entries'\nimport { generateBuildId } from './generate-build-id'\nimport { isWriteable } from './is-writeable'\nimport * as Log from './output/log'\nimport createSpinner from './spinner'\nimport { trace, setGlobal } from '../telemetry/trace'\nimport {\n collectPages,\n detectConflictingPaths,\n computeFromManifest,\n getJsPageSizeInKb,\n PageInfo,\n printCustomRoutes,\n printTreeView,\n getCssFilePaths,\n} from './utils'\nimport getBaseWebpackConfig from './webpack-config'\nimport { PagesManifest } from './webpack/plugins/pages-manifest-plugin'\nimport { writeBuildId } from './write-build-id'\nimport { normalizeLocalePath } from '../next-server/lib/i18n/normalize-locale-path'\nimport { isWebpack5 } from 'next/dist/compiled/webpack/webpack'\n\nconst staticCheckWorker = require.resolve('./utils')\n\nexport type SsgRoute = {\n initialRevalidateSeconds: number | false\n srcRoute: string | null\n dataRoute: string\n}\n\nexport type DynamicSsgRoute = {\n routeRegex: string\n fallback: string | null | false\n dataRoute: string\n dataRouteRegex: string\n}\n\nexport type PrerenderManifest = {\n version: 3\n routes: { [route: string]: SsgRoute }\n dynamicRoutes: { [route: string]: DynamicSsgRoute }\n notFoundRoutes: string[]\n preview: __ApiPreviewProps\n}\n\nexport default async function build(\n dir: string,\n conf = null,\n reactProductionProfiling = false,\n debugOutput = false,\n runLint = true\n): Promise<void> {\n const nextBuildSpan = trace('next-build')\n\n return nextBuildSpan.traceAsyncFn(async () => {\n // attempt to load global env values so they are available in next.config.js\n const { loadedEnvFiles } = nextBuildSpan\n .traceChild('load-dotenv')\n .traceFn(() => loadEnvConfig(dir, false, Log))\n\n const config: NextConfig = await nextBuildSpan\n .traceChild('load-next-config')\n .traceAsyncFn(() => loadConfig(PHASE_PRODUCTION_BUILD, dir, conf))\n const { target } = config\n const buildId: string = await nextBuildSpan\n .traceChild('generate-buildid')\n .traceAsyncFn(() => generateBuildId(config.generateBuildId, nanoid))\n const distDir = path.join(dir, config.distDir)\n\n const customRoutes: CustomRoutes = await nextBuildSpan\n .traceChild('load-custom-routes')\n .traceAsyncFn(() => loadCustomRoutes(config))\n\n const { headers, rewrites, redirects } = customRoutes\n\n const cacheDir = path.join(distDir, 'cache')\n if (ciEnvironment.isCI && !ciEnvironment.hasNextSupport) {\n const hasCache = await fileExists(cacheDir)\n\n if (!hasCache) {\n // Intentionally not piping to stderr in case people fail in CI when\n // stderr is detected.\n console.log(\n `${Log.prefixes.warn} No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache`\n )\n }\n }\n\n const telemetry = new Telemetry({ distDir })\n setGlobal('telemetry', telemetry)\n\n const publicDir = path.join(dir, 'public')\n const pagesDirs = findPagesDir(dir, config.pagesPaths)\n const hasPublicDir = await fileExists(publicDir)\n\n telemetry.record(\n eventCliSession(PHASE_PRODUCTION_BUILD, dir, {\n webpackVersion: isWebpack5 ? 5 : 4,\n cliCommand: 'build',\n isSrcDir:\n pagesDirs.length === 1 &&\n path.relative(dir, pagesDirs[0]!).startsWith('src'),\n hasNowJson: !!(await findUp('now.json', { cwd: dir })),\n isCustomServer: null,\n })\n )\n\n eventNextPlugins(path.resolve(dir)).then((events) =>\n telemetry.record(events)\n )\n\n const ignoreTypeScriptErrors = Boolean(config.typescript?.ignoreBuildErrors)\n const typeCheckStart = process.hrtime()\n const typeCheckingSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} ${\n ignoreTypeScriptErrors\n ? 'Skipping validation of types'\n : 'Checking validity of types'\n }`,\n })\n\n const verifyResult = await nextBuildSpan\n .traceChild('verify-typescript-setup')\n .traceAsyncFn(() =>\n verifyTypeScriptSetup(\n dir,\n pagesDirs,\n !ignoreTypeScriptErrors,\n !config.images.disableStaticImages,\n cacheDir\n )\n )\n\n const typeCheckEnd = process.hrtime(typeCheckStart)\n\n if (!ignoreTypeScriptErrors) {\n telemetry.record(\n eventTypeCheckCompleted({\n durationInSeconds: typeCheckEnd[0],\n typescriptVersion: verifyResult.version,\n inputFilesCount: verifyResult.result?.inputFilesCount,\n totalFilesCount: verifyResult.result?.totalFilesCount,\n incremental: verifyResult.result?.incremental,\n })\n )\n }\n\n if (typeCheckingSpinner) {\n typeCheckingSpinner.stopAndPersist()\n }\n\n const ignoreESLint = Boolean(config.eslint?.ignoreDuringBuilds)\n const lintDirs = config.eslint?.dirs\n if (!ignoreESLint && runLint) {\n await nextBuildSpan\n .traceChild('verify-and-lint')\n .traceAsyncFn(async () => {\n await verifyAndLint(\n dir,\n lintDirs,\n config.experimental.cpus,\n config.experimental.workerThreads,\n telemetry\n )\n })\n }\n\n const buildSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} Creating an optimized production build`,\n })\n\n const isLikeServerless = isTargetLikeServerless(target)\n\n const pagePaths: string[] = await nextBuildSpan\n .traceChild('collect-pages')\n .traceAsyncFn(() => collectPages(pagesDirs, config.pageExtensions))\n\n // needed for static exporting since we want to replace with HTML\n // files\n const allStaticPages = new Set<string>()\n let allPageInfos = new Map<string, PageInfo>()\n\n const previewProps: __ApiPreviewProps = {\n previewModeId: crypto.randomBytes(16).toString('hex'),\n previewModeSigningKey: crypto.randomBytes(32).toString('hex'),\n previewModeEncryptionKey: crypto.randomBytes(32).toString('hex'),\n }\n\n const mappedPages = nextBuildSpan\n .traceChild('create-pages-mapping')\n .traceFn(() => createPagesMapping(pagePaths, config.pageExtensions))\n const entrypoints = nextBuildSpan\n .traceChild('create-entrypoints')\n .traceFn(() =>\n createEntrypoints(\n mappedPages,\n target,\n buildId,\n previewProps,\n config,\n loadedEnvFiles\n )\n )\n const pageKeys = Object.keys(mappedPages)\n const conflictingPublicFiles: string[] = []\n const hasCustomErrorPage: boolean = mappedPages['/_error'].startsWith(\n 'private-next-pages'\n )\n const hasPages404 = Boolean(\n mappedPages['/404'] &&\n mappedPages['/404'].startsWith('private-next-pages')\n )\n\n if (hasPublicDir) {\n const hasPublicUnderScoreNextDir = await fileExists(\n path.join(publicDir, '_next')\n )\n if (hasPublicUnderScoreNextDir) {\n throw new Error(PUBLIC_DIR_MIDDLEWARE_CONFLICT)\n }\n }\n\n await nextBuildSpan\n .traceChild('public-dir-conflict-check')\n .traceAsyncFn(async () => {\n // Check if pages conflict with files in `public`\n // Only a page of public file can be served, not both.\n for (const page in mappedPages) {\n const hasPublicPageFile = await fileExists(\n path.join(publicDir, page === '/' ? '/index' : page),\n 'file'\n )\n if (hasPublicPageFile) {\n conflictingPublicFiles.push(page)\n }\n }\n\n const numConflicting = conflictingPublicFiles.length\n\n if (numConflicting) {\n throw new Error(\n `Conflicting public and page file${\n numConflicting === 1 ? ' was' : 's were'\n } found. https://nextjs.org/docs/messages/conflicting-public-file-page\\n${conflictingPublicFiles.join(\n '\\n'\n )}`\n )\n }\n })\n\n const nestedReservedPages = pageKeys.filter((page) => {\n return (\n page.match(/\\/(_app|_document|_error)$/) && path.dirname(page) !== '/'\n )\n })\n\n if (nestedReservedPages.length) {\n Log.warn(\n `The following reserved Next.js pages were detected not directly under the pages directory:\\n` +\n nestedReservedPages.join('\\n') +\n `\\nSee more info here: https://nextjs.org/docs/messages/nested-reserved-page\\n`\n )\n }\n\n const buildCustomRoute = (\n r: {\n source: string\n locale?: false\n basePath?: false\n statusCode?: number\n destination?: string\n },\n type: RouteType\n ) => {\n const keys: any[] = []\n\n const routeRegex = pathToRegexp(r.source, keys, {\n strict: true,\n sensitive: false,\n delimiter: '/', // default is `/#?`, but Next does not pass query info\n })\n\n return {\n ...r,\n ...(type === 'redirect'\n ? {\n statusCode: getRedirectStatus(r as Redirect),\n permanent: undefined,\n }\n : {}),\n regex: normalizeRouteRegex(routeRegex.source),\n }\n }\n\n const routesManifestPath = path.join(distDir, ROUTES_MANIFEST)\n const routesManifest: {\n version: number\n pages404: boolean\n basePath: string\n redirects: Array<ReturnType<typeof buildCustomRoute>>\n rewrites:\n | Array<ReturnType<typeof buildCustomRoute>>\n | {\n beforeFiles: Array<ReturnType<typeof buildCustomRoute>>\n afterFiles: Array<ReturnType<typeof buildCustomRoute>>\n fallback: Array<ReturnType<typeof buildCustomRoute>>\n }\n headers: Array<ReturnType<typeof buildCustomRoute>>\n dynamicRoutes: Array<{\n page: string\n regex: string\n namedRegex?: string\n routeKeys?: { [key: string]: string }\n }>\n dataRoutes: Array<{\n page: string\n routeKeys?: { [key: string]: string }\n dataRouteRegex: string\n namedDataRouteRegex?: string\n }>\n i18n?: {\n domains?: Array<{\n http?: true\n domain: string\n locales?: string[]\n defaultLocale: string\n }>\n locales: string[]\n defaultLocale: string\n localeDetection?: false\n }\n } = nextBuildSpan.traceChild('generate-routes-manifest').traceFn(() => ({\n version: 3,\n pages404: true,\n basePath: config.basePath,\n redirects: redirects.map((r: any) => buildCustomRoute(r, 'redirect')),\n headers: headers.map((r: any) => buildCustomRoute(r, 'header')),\n dynamicRoutes: getSortedRoutes(pageKeys)\n .filter(isDynamicRoute)\n .map((page) => {\n const routeRegex = getRouteRegex(page)\n return {\n page,\n regex: normalizeRouteRegex(routeRegex.re.source),\n routeKeys: routeRegex.routeKeys,\n namedRegex: routeRegex.namedRegex,\n }\n }),\n dataRoutes: [],\n i18n: config.i18n || undefined,\n }))\n\n if (rewrites.beforeFiles.length === 0 && rewrites.fallback.length === 0) {\n routesManifest.rewrites = rewrites.afterFiles.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n )\n } else {\n routesManifest.rewrites = {\n beforeFiles: rewrites.beforeFiles.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n ),\n afterFiles: rewrites.afterFiles.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n ),\n fallback: rewrites.fallback.map((r: any) =>\n buildCustomRoute(r, 'rewrite')\n ),\n }\n }\n const combinedRewrites: Rewrite[] = [\n ...rewrites.beforeFiles,\n ...rewrites.afterFiles,\n ...rewrites.fallback,\n ]\n\n const distDirCreated = await nextBuildSpan\n .traceChild('create-dist-dir')\n .traceAsyncFn(async () => {\n try {\n await promises.mkdir(distDir, { recursive: true })\n return true\n } catch (err) {\n if (err.code === 'EPERM') {\n return false\n }\n throw err\n }\n })\n\n if (!distDirCreated || !(await isWriteable(distDir))) {\n throw new Error(\n '> Build directory is not writeable. https://nextjs.org/docs/messages/build-dir-not-writeable'\n )\n }\n\n if (config.cleanDistDir) {\n await recursiveDelete(distDir, /^cache/)\n }\n\n // We need to write the manifest with rewrites before build\n // so serverless can import the manifest\n await nextBuildSpan\n .traceChild('write-routes-manifest')\n .traceAsyncFn(() =>\n promises.writeFile(\n routesManifestPath,\n JSON.stringify(routesManifest),\n 'utf8'\n )\n )\n\n const manifestPath = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n PAGES_MANIFEST\n )\n\n const requiredServerFiles = nextBuildSpan\n .traceChild('generate-required-server-files')\n .traceFn(() => ({\n version: 1,\n config: {\n ...config,\n compress: false,\n configFile: undefined,\n },\n appDir: dir,\n files: [\n ROUTES_MANIFEST,\n path.relative(distDir, manifestPath),\n BUILD_MANIFEST,\n PRERENDER_MANIFEST,\n REACT_LOADABLE_MANIFEST,\n config.optimizeFonts\n ? path.join(\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n FONT_MANIFEST\n )\n : null,\n BUILD_ID_FILE,\n ]\n .filter(nonNullable)\n .map((file) => path.join(config.distDir, file)),\n ignore: [] as string[],\n }))\n\n const configs = await nextBuildSpan\n .traceChild('generate-webpack-config')\n .traceAsyncFn(() =>\n Promise.all([\n getBaseWebpackConfig(dir, {\n buildId,\n reactProductionProfiling,\n isServer: false,\n config,\n target,\n pagesDirs,\n entrypoints: entrypoints.client,\n rewrites,\n }),\n getBaseWebpackConfig(dir, {\n buildId,\n reactProductionProfiling,\n isServer: true,\n config,\n target,\n pagesDirs,\n entrypoints: entrypoints.server,\n rewrites,\n }),\n ])\n )\n\n const clientConfig = configs[0]\n\n if (\n clientConfig.optimization &&\n (clientConfig.optimization.minimize !== true ||\n (clientConfig.optimization.minimizer &&\n clientConfig.optimization.minimizer.length === 0))\n ) {\n Log.warn(\n `Production code optimization has been disabled in your project. Read more: https://nextjs.org/docs/messages/minification-disabled`\n )\n }\n\n const webpackBuildStart = process.hrtime()\n\n let result: CompilerResult = { warnings: [], errors: [] }\n // We run client and server compilation separately to optimize for memory usage\n await nextBuildSpan\n .traceChild('run-webpack-compiler')\n .traceAsyncFn(async () => {\n const clientResult = await runCompiler(clientConfig)\n // Fail build if clientResult contains errors\n if (clientResult.errors.length > 0) {\n result = {\n warnings: [...clientResult.warnings],\n errors: [...clientResult.errors],\n }\n } else {\n const serverResult = await runCompiler(configs[1])\n result = {\n warnings: [...clientResult.warnings, ...serverResult.warnings],\n errors: [...clientResult.errors, ...serverResult.errors],\n }\n }\n })\n\n const webpackBuildEnd = process.hrtime(webpackBuildStart)\n if (buildSpinner) {\n buildSpinner.stopAndPersist()\n }\n\n result = nextBuildSpan\n .traceChild('format-webpack-messages')\n .traceFn(() => formatWebpackMessages(result))\n\n if (result.errors.length > 0) {\n // Only keep the first error. Others are often indicative\n // of the same problem, but confuse the reader with noise.\n if (result.errors.length > 1) {\n result.errors.length = 1\n }\n const error = result.errors.join('\\n\\n')\n\n console.error(chalk.red('Failed to compile.\\n'))\n\n if (\n error.indexOf('private-next-pages') > -1 &&\n error.indexOf('does not contain a default export') > -1\n ) {\n const page_name_regex = /'private-next-pages\\/(?<page_name>[^']*)'/\n const parsed = page_name_regex.exec(error)\n const page_name = parsed && parsed.groups && parsed.groups.page_name\n throw new Error(\n `webpack build failed: found page without a React Component as default export in pages/${page_name}\\n\\nSee https://nextjs.org/docs/messages/page-without-valid-component for more info.`\n )\n }\n\n console.error(error)\n console.error()\n\n if (\n error.indexOf('private-next-pages') > -1 ||\n error.indexOf('__next_polyfill__') > -1\n ) {\n throw new Error(\n '> webpack config.resolve.alias was incorrectly overridden. https://nextjs.org/docs/messages/invalid-resolve-alias'\n )\n }\n throw new Error('> Build failed because of webpack errors')\n } else {\n telemetry.record(\n eventBuildCompleted(pagePaths, {\n durationInSeconds: webpackBuildEnd[0],\n })\n )\n\n if (result.warnings.length > 0) {\n Log.warn('Compiled with warnings\\n')\n console.warn(result.warnings.join('\\n\\n'))\n console.warn()\n } else {\n Log.info('Compiled successfully')\n }\n }\n\n const postCompileSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} Collecting page data`,\n })\n\n const buildManifestPath = path.join(distDir, BUILD_MANIFEST)\n\n const ssgPages = new Set<string>()\n const ssgStaticFallbackPages = new Set<string>()\n const ssgBlockingFallbackPages = new Set<string>()\n const staticPages = new Set<string>()\n const invalidPages = new Set<string>()\n const hybridAmpPages = new Set<string>()\n const serverPropsPages = new Set<string>()\n const additionalSsgPaths = new Map<string, Array<string>>()\n const additionalSsgPathsEncoded = new Map<string, Array<string>>()\n const pageInfos = new Map<string, PageInfo>()\n const pagesManifest = JSON.parse(\n await promises.readFile(manifestPath, 'utf8')\n ) as PagesManifest\n const buildManifest = JSON.parse(\n await promises.readFile(buildManifestPath, 'utf8')\n ) as BuildManifest\n\n const analysisBegin = process.hrtime()\n\n const staticCheckSpan = nextBuildSpan.traceChild('static-check')\n const {\n customAppGetInitialProps,\n namedExports,\n isNextImageImported,\n hasSsrAmpPages,\n hasNonStaticErrorPage,\n } = await staticCheckSpan.traceAsyncFn(async () => {\n process.env.NEXT_PHASE = PHASE_PRODUCTION_BUILD\n\n const staticCheckWorkers = new Worker(staticCheckWorker, {\n numWorkers: config.experimental.cpus,\n enableWorkerThreads: config.experimental.workerThreads,\n }) as Worker & typeof import('./utils')\n\n staticCheckWorkers.getStdout().pipe(process.stdout)\n staticCheckWorkers.getStderr().pipe(process.stderr)\n\n const runtimeEnvConfig = {\n publicRuntimeConfig: config.publicRuntimeConfig,\n serverRuntimeConfig: config.serverRuntimeConfig,\n }\n\n const nonStaticErrorPageSpan = staticCheckSpan.traceChild(\n 'check-static-error-page'\n )\n const errorPageHasCustomGetInitialProps = nonStaticErrorPageSpan.traceAsyncFn(\n async () =>\n hasCustomErrorPage &&\n (await staticCheckWorkers.hasCustomGetInitialProps(\n '/_error',\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n false\n ))\n )\n\n const errorPageStaticResult = nonStaticErrorPageSpan.traceAsyncFn(\n async () =>\n hasCustomErrorPage &&\n staticCheckWorkers.isPageStatic(\n '/_error',\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n config.i18n?.locales,\n config.i18n?.defaultLocale\n )\n )\n\n // we don't output _app in serverless mode so use _app export\n // from _error instead\n const appPageToCheck = isLikeServerless ? '/_error' : '/_app'\n\n const customAppGetInitialPropsPromise = staticCheckWorkers.hasCustomGetInitialProps(\n appPageToCheck,\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n true\n )\n\n const namedExportsPromise = staticCheckWorkers.getNamedExports(\n appPageToCheck,\n distDir,\n isLikeServerless,\n runtimeEnvConfig\n )\n\n // eslint-disable-next-line no-shadow\n let isNextImageImported: boolean | undefined\n // eslint-disable-next-line no-shadow\n let hasSsrAmpPages = false\n\n const computedManifestData = await computeFromManifest(\n buildManifest,\n distDir,\n config.experimental.gzipSize\n )\n await Promise.all(\n pageKeys.map(async (page) => {\n const checkPageSpan = staticCheckSpan.traceChild('check-page', {\n page,\n })\n return checkPageSpan.traceAsyncFn(async () => {\n const actualPage = normalizePagePath(page)\n const [selfSize, allSize] = await getJsPageSizeInKb(\n actualPage,\n distDir,\n buildManifest,\n config.experimental.gzipSize,\n computedManifestData\n )\n\n let isSsg = false\n let isStatic = false\n let isHybridAmp = false\n let ssgPageRoutes: string[] | null = null\n\n const nonReservedPage = !page.match(\n /^\\/(_app|_error|_document|api(\\/|$))/\n )\n\n if (nonReservedPage) {\n try {\n let isPageStaticSpan = checkPageSpan.traceChild(\n 'is-page-static'\n )\n let workerResult = await isPageStaticSpan.traceAsyncFn(() => {\n return staticCheckWorkers.isPageStatic(\n page,\n distDir,\n isLikeServerless,\n runtimeEnvConfig,\n config.i18n?.locales,\n config.i18n?.defaultLocale,\n isPageStaticSpan.id\n )\n })\n\n if (\n workerResult.isStatic === false &&\n (workerResult.isHybridAmp || workerResult.isAmpOnly)\n ) {\n hasSsrAmpPages = true\n }\n\n if (workerResult.isHybridAmp) {\n isHybridAmp = true\n hybridAmpPages.add(page)\n }\n\n if (workerResult.isNextImageImported) {\n isNextImageImported = true\n }\n\n if (workerResult.hasStaticProps) {\n ssgPages.add(page)\n isSsg = true\n\n if (\n workerResult.prerenderRoutes &&\n workerResult.encodedPrerenderRoutes\n ) {\n additionalSsgPaths.set(page, workerResult.prerenderRoutes)\n additionalSsgPathsEncoded.set(\n page,\n workerResult.encodedPrerenderRoutes\n )\n ssgPageRoutes = workerResult.prerenderRoutes\n }\n\n if (workerResult.prerenderFallback === 'blocking') {\n ssgBlockingFallbackPages.add(page)\n } else if (workerResult.prerenderFallback === true) {\n ssgStaticFallbackPages.add(page)\n }\n } else if (workerResult.hasServerProps) {\n serverPropsPages.add(page)\n } else if (\n workerResult.isStatic &&\n (await customAppGetInitialPropsPromise) === false\n ) {\n staticPages.add(page)\n isStatic = true\n }\n\n if (hasPages404 && page === '/404') {\n if (!workerResult.isStatic && !workerResult.hasStaticProps) {\n throw new Error(\n `\\`pages/404\\` ${STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR}`\n )\n }\n // we need to ensure the 404 lambda is present since we use\n // it when _app has getInitialProps\n if (\n (await customAppGetInitialPropsPromise) &&\n !workerResult.hasStaticProps\n ) {\n staticPages.delete(page)\n }\n }\n\n if (\n STATIC_STATUS_PAGES.includes(page) &&\n !workerResult.isStatic &&\n !workerResult.hasStaticProps\n ) {\n throw new Error(\n `\\`pages${page}\\` ${STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR}`\n )\n }\n } catch (err) {\n if (err.message !== 'INVALID_DEFAULT_EXPORT') throw err\n invalidPages.add(page)\n }\n }\n\n pageInfos.set(page, {\n size: selfSize,\n totalSize: allSize,\n static: isStatic,\n isSsg,\n isHybridAmp,\n ssgPageRoutes,\n initialRevalidateSeconds: false,\n })\n })\n })\n )\n\n const errorPageResult = await errorPageStaticResult\n const nonStaticErrorPage =\n (await errorPageHasCustomGetInitialProps) ||\n (errorPageResult && errorPageResult.hasServerProps)\n\n const returnValue = {\n customAppGetInitialProps: await customAppGetInitialPropsPromise,\n namedExports: await namedExportsPromise,\n isNextImageImported,\n hasSsrAmpPages,\n hasNonStaticErrorPage: nonStaticErrorPage,\n }\n\n staticCheckWorkers.end()\n return returnValue\n })\n\n if (customAppGetInitialProps) {\n console.warn(\n chalk.bold.yellow(`Warning: `) +\n chalk.yellow(\n `You have opted-out of Automatic Static Optimization due to \\`getInitialProps\\` in \\`pages/_app\\`. This does not opt-out pages with \\`getStaticProps\\``\n )\n )\n console.warn(\n 'Read more: https://nextjs.org/docs/messages/opt-out-auto-static-optimization\\n'\n )\n }\n\n if (!hasSsrAmpPages) {\n requiredServerFiles.ignore.push(\n path.relative(\n dir,\n path.join(\n path.dirname(\n require.resolve(\n 'next/dist/compiled/@ampproject/toolbox-optimizer'\n )\n ),\n '**/*'\n )\n )\n )\n }\n\n if (serverPropsPages.size > 0 || ssgPages.size > 0) {\n // We update the routes manifest after the build with the\n // data routes since we can't determine these until after build\n routesManifest.dataRoutes = getSortedRoutes([\n ...serverPropsPages,\n ...ssgPages,\n ]).map((page) => {\n const pagePath = normalizePagePath(page)\n const dataRoute = path.posix.join(\n '/_next/data',\n buildId,\n `${pagePath}.json`\n )\n\n let dataRouteRegex: string\n let namedDataRouteRegex: string | undefined\n let routeKeys: { [named: string]: string } | undefined\n\n if (isDynamicRoute(page)) {\n const routeRegex = getRouteRegex(dataRoute.replace(/\\.json$/, ''))\n\n dataRouteRegex = normalizeRouteRegex(\n routeRegex.re.source.replace(/\\(\\?:\\\\\\/\\)\\?\\$$/, '\\\\.json$')\n )\n namedDataRouteRegex = routeRegex.namedRegex!.replace(\n /\\(\\?:\\/\\)\\?\\$$/,\n '\\\\.json$'\n )\n routeKeys = routeRegex.routeKeys\n } else {\n dataRouteRegex = normalizeRouteRegex(\n new RegExp(\n `^${path.posix.join(\n '/_next/data',\n escapeStringRegexp(buildId),\n `${pagePath}.json`\n )}$`\n ).source\n )\n }\n\n return {\n page,\n routeKeys,\n dataRouteRegex,\n namedDataRouteRegex,\n }\n })\n\n await promises.writeFile(\n routesManifestPath,\n JSON.stringify(routesManifest),\n 'utf8'\n )\n }\n\n // Since custom _app.js can wrap the 404 page we have to opt-out of static optimization if it has getInitialProps\n // Only export the static 404 when there is no /_error present\n const useStatic404 =\n !customAppGetInitialProps && (!hasNonStaticErrorPage || hasPages404)\n\n if (invalidPages.size > 0) {\n throw new Error(\n `Build optimization failed: found page${\n invalidPages.size === 1 ? '' : 's'\n } without a React Component as default export in \\n${[...invalidPages]\n .map((pg) => `pages${pg}`)\n .join(\n '\\n'\n )}\\n\\nSee https://nextjs.org/docs/messages/page-without-valid-component for more info.\\n`\n )\n }\n\n await writeBuildId(distDir, buildId)\n\n if (config.experimental.optimizeCss) {\n const cssFilePaths = getCssFilePaths(buildManifest)\n\n requiredServerFiles.files.push(\n ...cssFilePaths.map((filePath) => path.join(config.distDir, filePath))\n )\n }\n\n await promises.writeFile(\n path.join(distDir, SERVER_FILES_MANIFEST),\n JSON.stringify(requiredServerFiles),\n 'utf8'\n )\n\n const finalPrerenderRoutes: { [route: string]: SsgRoute } = {}\n const tbdPrerenderRoutes: string[] = []\n let ssgNotFoundPaths: string[] = []\n\n if (postCompileSpinner) postCompileSpinner.stopAndPersist()\n\n const { i18n } = config\n\n const usedStaticStatusPages = STATIC_STATUS_PAGES.filter(\n (page) =>\n mappedPages[page] && mappedPages[page].startsWith('private-next-pages')\n )\n usedStaticStatusPages.forEach((page) => {\n if (!ssgPages.has(page) && !customAppGetInitialProps) {\n staticPages.add(page)\n }\n })\n\n const hasPages500 = usedStaticStatusPages.includes('/500')\n const useDefaultStatic500 =\n !hasPages500 && !hasNonStaticErrorPage && !customAppGetInitialProps\n\n const combinedPages = [...staticPages, ...ssgPages]\n\n if (combinedPages.length > 0 || useStatic404 || useDefaultStatic500) {\n const staticGenerationSpan = nextBuildSpan.traceChild('static-generation')\n await staticGenerationSpan.traceAsyncFn(async () => {\n detectConflictingPaths(\n [\n ...combinedPages,\n ...pageKeys.filter((page) => !combinedPages.includes(page)),\n ],\n ssgPages,\n additionalSsgPaths\n )\n const exportApp = require('../export').default\n const exportOptions = {\n silent: false,\n buildExport: true,\n threads: config.experimental.cpus,\n pages: combinedPages,\n outdir: path.join(distDir, 'export'),\n statusMessage: 'Generating static pages',\n }\n const exportConfig: any = {\n ...config,\n initialPageRevalidationMap: {},\n ssgNotFoundPaths: [] as string[],\n // Default map will be the collection of automatic statically exported\n // pages and incremental pages.\n // n.b. we cannot handle this above in combinedPages because the dynamic\n // page must be in the `pages` array, but not in the mapping.\n exportPathMap: (defaultMap: any) => {\n // Dynamically routed pages should be prerendered to be used as\n // a client-side skeleton (fallback) while data is being fetched.\n // This ensures the end-user never sees a 500 or slow response from the\n // server.\n //\n // Note: prerendering disables automatic static optimization.\n ssgPages.forEach((page) => {\n if (isDynamicRoute(page)) {\n tbdPrerenderRoutes.push(page)\n\n if (ssgStaticFallbackPages.has(page)) {\n // Override the rendering for the dynamic page to be treated as a\n // fallback render.\n if (i18n) {\n defaultMap[`/${i18n.defaultLocale}${page}`] = {\n page,\n query: { __nextFallback: true },\n }\n } else {\n defaultMap[page] = { page, query: { __nextFallback: true } }\n }\n } else {\n // Remove dynamically routed pages from the default path map when\n // fallback behavior is disabled.\n delete defaultMap[page]\n }\n }\n })\n // Append the \"well-known\" routes we should prerender for, e.g. blog\n // post slugs.\n additionalSsgPaths.forEach((routes, page) => {\n const encodedRoutes = additionalSsgPathsEncoded.get(page)\n\n routes.forEach((route, routeIdx) => {\n defaultMap[route] = {\n page,\n query: { __nextSsgPath: encodedRoutes?.[routeIdx] },\n }\n })\n })\n\n if (useStatic404) {\n defaultMap['/404'] = {\n page: hasPages404 ? '/404' : '/_error',\n }\n }\n\n if (useDefaultStatic500) {\n defaultMap['/500'] = {\n page: '/_error',\n }\n }\n\n if (i18n) {\n for (const page of [\n ...staticPages,\n ...ssgPages,\n ...(useStatic404 ? ['/404'] : []),\n ...(useDefaultStatic500 ? ['/500'] : []),\n ]) {\n const isSsg = ssgPages.has(page)\n const isDynamic = isDynamicRoute(page)\n const isFallback = isSsg && ssgStaticFallbackPages.has(page)\n\n for (const locale of i18n.locales) {\n // skip fallback generation for SSG pages without fallback mode\n if (isSsg && isDynamic && !isFallback) continue\n const outputPath = `/${locale}${page === '/' ? '' : page}`\n\n defaultMap[outputPath] = {\n page: defaultMap[page]?.page || page,\n query: { __nextLocale: locale },\n }\n\n if (isFallback) {\n defaultMap[outputPath].query.__nextFallback = true\n }\n }\n\n if (isSsg) {\n // remove non-locale prefixed variant from defaultMap\n delete defaultMap[page]\n }\n }\n }\n return defaultMap\n },\n }\n\n await exportApp(dir, exportOptions, exportConfig)\n\n const postBuildSpinner = createSpinner({\n prefixText: `${Log.prefixes.info} Finalizing page optimization`,\n })\n ssgNotFoundPaths = exportConfig.ssgNotFoundPaths\n\n // remove server bundles that were exported\n for (const page of staticPages) {\n const serverBundle = getPagePath(page, distDir, isLikeServerless)\n await promises.unlink(serverBundle)\n }\n const serverOutputDir = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY\n )\n\n const moveExportedPage = async (\n originPage: string,\n page: string,\n file: string,\n isSsg: boolean,\n ext: 'html' | 'json',\n additionalSsgFile = false\n ) => {\n return staticGenerationSpan\n .traceChild('move-exported-page')\n .traceAsyncFn(async () => {\n file = `${file}.${ext}`\n const orig = path.join(exportOptions.outdir, file)\n const pagePath = getPagePath(\n originPage,\n distDir,\n isLikeServerless\n )\n\n const relativeDest = path\n .relative(\n serverOutputDir,\n path.join(\n path.join(\n pagePath,\n // strip leading / and then recurse number of nested dirs\n // to place from base folder\n originPage\n .substr(1)\n .split('/')\n .map(() => '..')\n .join('/')\n ),\n file\n )\n )\n .replace(/\\\\/g, '/')\n\n const dest = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n relativeDest\n )\n\n if (\n !isSsg &&\n !(\n // don't add static status page to manifest if it's\n // the default generated version e.g. no pages/500\n (\n STATIC_STATUS_PAGES.includes(page) &&\n !usedStaticStatusPages.includes(page)\n )\n )\n ) {\n pagesManifest[page] = relativeDest\n }\n\n const isNotFound = ssgNotFoundPaths.includes(page)\n\n // for SSG files with i18n the non-prerendered variants are\n // output with the locale prefixed so don't attempt moving\n // without the prefix\n if ((!i18n || additionalSsgFile) && !isNotFound) {\n await promises.mkdir(path.dirname(dest), { recursive: true })\n await promises.rename(orig, dest)\n } else if (i18n && !isSsg) {\n // this will be updated with the locale prefixed variant\n // since all files are output with the locale prefix\n delete pagesManifest[page]\n }\n\n if (i18n) {\n if (additionalSsgFile) return\n\n for (const locale of i18n.locales) {\n const curPath = `/${locale}${page === '/' ? '' : page}`\n const localeExt = page === '/' ? path.extname(file) : ''\n const relativeDestNoPages = relativeDest.substr(\n 'pages/'.length\n )\n\n if (isSsg && ssgNotFoundPaths.includes(curPath)) {\n continue\n }\n\n const updatedRelativeDest = path\n .join(\n 'pages',\n locale + localeExt,\n // if it's the top-most index page we want it to be locale.EXT\n // instead of locale/index.html\n page === '/' ? '' : relativeDestNoPages\n )\n .replace(/\\\\/g, '/')\n\n const updatedOrig = path.join(\n exportOptions.outdir,\n locale + localeExt,\n page === '/' ? '' : file\n )\n const updatedDest = path.join(\n distDir,\n isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY,\n updatedRelativeDest\n )\n\n if (!isSsg) {\n pagesManifest[curPath] = updatedRelativeDest\n }\n await promises.mkdir(path.dirname(updatedDest), {\n recursive: true,\n })\n await promises.rename(updatedOrig, updatedDest)\n }\n }\n })\n }\n\n // Only move /404 to /404 when there is no custom 404 as in that case we don't know about the 404 page\n if (!hasPages404 && useStatic404) {\n await moveExportedPage('/_error', '/404', '/404', false, 'html')\n }\n\n if (useDefaultStatic500) {\n await moveExportedPage('/_error', '/500', '/500', false, 'html')\n }\n\n for (const page of combinedPages) {\n const isSsg = ssgPages.has(page)\n const isStaticSsgFallback = ssgStaticFallbackPages.has(page)\n const isDynamic = isDynamicRoute(page)\n const hasAmp = hybridAmpPages.has(page)\n const file = normalizePagePath(page)\n\n // The dynamic version of SSG pages are only prerendered if the\n // fallback is enabled. Below, we handle the specific prerenders\n // of these.\n const hasHtmlOutput = !(isSsg && isDynamic && !isStaticSsgFallback)\n\n if (hasHtmlOutput) {\n await moveExportedPage(page, page, file, isSsg, 'html')\n }\n\n if (hasAmp && (!isSsg || (isSsg && !isDynamic))) {\n const ampPage = `${file}.amp`\n await moveExportedPage(page, ampPage, ampPage, isSsg, 'html')\n\n if (isSsg) {\n await moveExportedPage(page, ampPage, ampPage, isSsg, 'json')\n }\n }\n\n if (isSsg) {\n // For a non-dynamic SSG page, we must copy its data file\n // from export, we already moved the HTML file above\n if (!isDynamic) {\n await moveExportedPage(page, page, file, isSsg, 'json')\n\n if (i18n) {\n // TODO: do we want to show all locale variants in build output\n for (const locale of i18n.locales) {\n const localePage = `/${locale}${page === '/' ? '' : page}`\n\n if (!ssgNotFoundPaths.includes(localePage)) {\n finalPrerenderRoutes[localePage] = {\n initialRevalidateSeconds:\n exportConfig.initialPageRevalidationMap[localePage],\n srcRoute: null,\n dataRoute: path.posix.join(\n '/_next/data',\n buildId,\n `${file}.json`\n ),\n }\n }\n }\n } else {\n finalPrerenderRoutes[page] = {\n initialRevalidateSeconds:\n exportConfig.initialPageRevalidationMap[page],\n srcRoute: null,\n dataRoute: path.posix.join(\n '/_next/data',\n buildId,\n `${file}.json`\n ),\n }\n }\n // Set Page Revalidation Interval\n const pageInfo = pageInfos.get(page)\n if (pageInfo) {\n pageInfo.initialRevalidateSeconds =\n exportConfig.initialPageRevalidationMap[page]\n pageInfos.set(page, pageInfo)\n }\n } else {\n // For a dynamic SSG page, we did not copy its data exports and only\n // copy the fallback HTML file (if present).\n // We must also copy specific versions of this page as defined by\n // `getStaticPaths` (additionalSsgPaths).\n const extraRoutes = additionalSsgPaths.get(page) || []\n for (const route of extraRoutes) {\n const pageFile = normalizePagePath(route)\n await moveExportedPage(\n page,\n route,\n pageFile,\n isSsg,\n 'html',\n true\n )\n await moveExportedPage(\n page,\n route,\n pageFile,\n isSsg,\n 'json',\n true\n )\n\n if (hasAmp) {\n const ampPage = `${pageFile}.amp`\n await moveExportedPage(\n page,\n ampPage,\n ampPage,\n isSsg,\n 'html',\n true\n )\n await moveExportedPage(\n page,\n ampPage,\n ampPage,\n isSsg,\n 'json',\n true\n )\n }\n\n finalPrerenderRoutes[route] = {\n initialRevalidateSeconds:\n exportConfig.initialPageRevalidationMap[route],\n srcRoute: page,\n dataRoute: path.posix.join(\n '/_next/data',\n buildId,\n `${normalizePagePath(route)}.json`\n ),\n }\n\n // Set route Revalidation Interval\n const pageInfo = pageInfos.get(route)\n if (pageInfo) {\n pageInfo.initialRevalidateSeconds =\n exportConfig.initialPageRevalidationMap[route]\n pageInfos.set(route, pageInfo)\n }\n }\n }\n }\n }\n\n // remove temporary export folder\n await recursiveDelete(exportOptions.outdir)\n await promises.rmdir(exportOptions.outdir)\n await promises.writeFile(\n manifestPath,\n JSON.stringify(pagesManifest, null, 2),\n 'utf8'\n )\n\n if (postBuildSpinner) postBuildSpinner.stopAndPersist()\n console.log()\n })\n }\n\n const analysisEnd = process.hrtime(analysisBegin)\n telemetry.record(\n eventBuildOptimize(pagePaths, {\n durationInSeconds: analysisEnd[0],\n staticPageCount: staticPages.size,\n staticPropsPageCount: ssgPages.size,\n serverPropsPageCount: serverPropsPages.size,\n ssrPageCount:\n pagePaths.length -\n (staticPages.size + ssgPages.size + serverPropsPages.size),\n hasStatic404: useStatic404,\n hasReportWebVitals: namedExports?.includes('reportWebVitals') ?? false,\n rewritesCount: combinedRewrites.length,\n headersCount: headers.length,\n redirectsCount: redirects.length - 1, // reduce one for trailing slash\n headersWithHasCount: headers.filter((r: any) => !!r.has).length,\n rewritesWithHasCount: combinedRewrites.filter((r: any) => !!r.has)\n .length,\n redirectsWithHasCount: redirects.filter((r: any) => !!r.has).length,\n })\n )\n\n if (ssgPages.size > 0) {\n const finalDynamicRoutes: PrerenderManifest['dynamicRoutes'] = {}\n tbdPrerenderRoutes.forEach((tbdRoute) => {\n const normalizedRoute = normalizePagePath(tbdRoute)\n const dataRoute = path.posix.join(\n '/_next/data',\n buildId,\n `${normalizedRoute}.json`\n )\n\n finalDynamicRoutes[tbdRoute] = {\n routeRegex: normalizeRouteRegex(getRouteRegex(tbdRoute).re.source),\n dataRoute,\n fallback: ssgBlockingFallbackPages.has(tbdRoute)\n ? null\n : ssgStaticFallbackPages.has(tbdRoute)\n ? `${normalizedRoute}.html`\n : false,\n dataRouteRegex: normalizeRouteRegex(\n getRouteRegex(dataRoute.replace(/\\.json$/, '')).re.source.replace(\n /\\(\\?:\\\\\\/\\)\\?\\$$/,\n '\\\\.json$'\n )\n ),\n }\n })\n const prerenderManifest: PrerenderManifest = {\n version: 3,\n routes: finalPrerenderRoutes,\n dynamicRoutes: finalDynamicRoutes,\n notFoundRoutes: ssgNotFoundPaths,\n preview: previewProps,\n }\n\n await promises.writeFile(\n path.join(distDir, PRERENDER_MANIFEST),\n JSON.stringify(prerenderManifest),\n 'utf8'\n )\n await generateClientSsgManifest(prerenderManifest, {\n distDir,\n buildId,\n locales: config.i18n?.locales || [],\n })\n } else {\n const prerenderManifest: PrerenderManifest = {\n version: 3,\n routes: {},\n dynamicRoutes: {},\n preview: previewProps,\n notFoundRoutes: [],\n }\n await promises.writeFile(\n path.join(distDir, PRERENDER_MANIFEST),\n JSON.stringify(prerenderManifest),\n 'utf8'\n )\n }\n\n const images = { ...config.images }\n const { deviceSizes, imageSizes } = images\n images.sizes = [...deviceSizes, ...imageSizes]\n\n await promises.writeFile(\n path.join(distDir, IMAGES_MANIFEST),\n JSON.stringify({\n version: 1,\n images,\n }),\n 'utf8'\n )\n await promises.writeFile(\n path.join(distDir, EXPORT_MARKER),\n JSON.stringify({\n version: 1,\n hasExportPathMap: typeof config.exportPathMap === 'function',\n exportTrailingSlash: config.trailingSlash === true,\n isNextImageImported: isNextImageImported === true,\n }),\n 'utf8'\n )\n await promises.unlink(path.join(distDir, EXPORT_DETAIL)).catch((err) => {\n if (err.code === 'ENOENT') {\n return Promise.resolve()\n }\n return Promise.reject(err)\n })\n\n staticPages.forEach((pg) => allStaticPages.add(pg))\n pageInfos.forEach((info: PageInfo, key: string) => {\n allPageInfos.set(key, info)\n })\n\n await nextBuildSpan.traceChild('print-tree-view').traceAsyncFn(() =>\n printTreeView(Object.keys(mappedPages), allPageInfos, isLikeServerless, {\n distPath: distDir,\n buildId: buildId,\n pagesDirs,\n useStatic404,\n pageExtensions: config.pageExtensions,\n buildManifest,\n gzipSize: config.experimental.gzipSize,\n })\n )\n\n if (debugOutput) {\n nextBuildSpan\n .traceChild('print-custom-routes')\n .traceFn(() => printCustomRoutes({ redirects, rewrites, headers }))\n }\n\n if (config.analyticsId) {\n console.log(\n chalk.bold.green('Next.js Analytics') +\n ' is enabled for this production build. ' +\n \"You'll receive a Real Experience Score computed by all of your visitors.\"\n )\n console.log('')\n }\n\n await nextBuildSpan\n .traceChild('telemetry-flush')\n .traceAsyncFn(() => telemetry.flush())\n })\n}\n\nexport type ClientSsgManifest = Set<string>\n\nfunction generateClientSsgManifest(\n prerenderManifest: PrerenderManifest,\n {\n buildId,\n distDir,\n locales,\n }: { buildId: string; distDir: string; locales: string[] }\n) {\n const ssgPages: ClientSsgManifest = new Set<string>([\n ...Object.entries(prerenderManifest.routes)\n // Filter out dynamic routes\n .filter(([, { srcRoute }]) => srcRoute == null)\n .map(([route]) => normalizeLocalePath(route, locales).pathname),\n ...Object.keys(prerenderManifest.dynamicRoutes),\n ])\n\n const clientSsgManifestContent = `self.__SSG_MANIFEST=${devalue(\n ssgPages\n )};self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()`\n\n writeFileSync(\n path.join(distDir, CLIENT_STATIC_FILES_PATH, buildId, '_ssgManifest.js'),\n clientSsgManifestContent\n )\n}\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/build/utils.d.ts b/node_modules/next/dist/build/utils.d.ts | |
index 49ce653..9cc7855 100644 | |
--- a/node_modules/next/dist/build/utils.d.ts | |
+++ b/node_modules/next/dist/build/utils.d.ts | |
@@ -3,7 +3,7 @@ import { CustomRoutes } from '../lib/load-custom-routes'; | |
import { GetStaticPaths } from 'next/types'; | |
import { BuildManifest } from '../next-server/server/get-page-files'; | |
import { UnwrapPromise } from '../lib/coalesced-function'; | |
-export declare function collectPages(directory: string, pageExtensions: string[]): Promise<string[]>; | |
+export declare function collectPages(directories: string[], pageExtensions: string[]): Promise<string[]>; | |
export interface PageInfo { | |
isHybridAmp?: boolean; | |
size: number; | |
@@ -13,10 +13,10 @@ export interface PageInfo { | |
ssgPageRoutes: string[] | null; | |
initialRevalidateSeconds: number | false; | |
} | |
-export declare function printTreeView(list: readonly string[], pageInfos: Map<string, PageInfo>, serverless: boolean, { distPath, buildId, pagesDir, pageExtensions, buildManifest, useStatic404, gzipSize, }: { | |
+export declare function printTreeView(list: readonly string[], pageInfos: Map<string, PageInfo>, serverless: boolean, { distPath, buildId, pagesDirs, pageExtensions, buildManifest, useStatic404, gzipSize, }: { | |
distPath: string; | |
buildId: string; | |
- pagesDir: string; | |
+ pagesDirs: string[]; | |
pageExtensions: string[]; | |
buildManifest: BuildManifest; | |
useStatic404: boolean; | |
diff --git a/node_modules/next/dist/build/utils.js b/node_modules/next/dist/build/utils.js | |
index 144bf06..0c31da2 100644 | |
--- a/node_modules/next/dist/build/utils.js | |
+++ b/node_modules/next/dist/build/utils.js | |
@@ -1,10 +1,10 @@ | |
-"use strict";exports.__esModule=true;exports.collectPages=collectPages;exports.printTreeView=printTreeView;exports.printCustomRoutes=printCustomRoutes;exports.computeFromManifest=computeFromManifest;exports.difference=difference;exports.getJsPageSizeInKb=getJsPageSizeInKb;exports.buildStaticPaths=buildStaticPaths;exports.isPageStatic=isPageStatic;exports.hasCustomGetInitialProps=hasCustomGetInitialProps;exports.getNamedExports=getNamedExports;exports.detectConflictingPaths=detectConflictingPaths;exports.getCssFilePaths=getCssFilePaths;require("../next-server/server/node-polyfill-fetch");var _chalk=_interopRequireDefault(require("chalk"));var _gzipSize=_interopRequireDefault(require("next/dist/compiled/gzip-size"));var _textTable=_interopRequireDefault(require("next/dist/compiled/text-table"));var _path=_interopRequireDefault(require("path"));var _fs=require("fs");var _reactIs=require("react-is");var _stripAnsi=_interopRequireDefault(require("next/dist/compiled/strip-ansi"));var _constants=require("../lib/constants");var _prettyBytes=_interopRequireDefault(require("../lib/pretty-bytes"));var _recursiveReaddir=require("../lib/recursive-readdir");var _utils=require("../next-server/lib/router/utils");var _isDynamic=require("../next-server/lib/router/utils/is-dynamic");var _escapePathDelimiters=_interopRequireDefault(require("../next-server/lib/router/utils/escape-path-delimiters"));var _findPageFile=require("../server/lib/find-page-file");var _normalizePagePath=require("../next-server/server/normalize-page-path");var _normalizeTrailingSlash=require("../client/normalize-trailing-slash");var _normalizeLocalePath=require("../next-server/lib/i18n/normalize-locale-path");var Log=_interopRequireWildcard(require("./output/log"));var _loadComponents=require("../next-server/server/load-components");var _trace=require("../telemetry/trace");function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap();_getRequireWildcardCache=function(){return cache;};return cache;}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}const fileGzipStats={};const fsStatGzip=file=>{const cached=fileGzipStats[file];if(cached)return cached;return fileGzipStats[file]=_gzipSize.default.file(file);};const fileSize=async file=>(await _fs.promises.stat(file)).size;const fileStats={};const fsStat=file=>{const cached=fileStats[file];if(cached)return cached;return fileStats[file]=fileSize(file);};function collectPages(directory,pageExtensions){return(0,_recursiveReaddir.recursiveReadDir)(directory,new RegExp(`\\.(?:${pageExtensions.join('|')})$`));}async function printTreeView(list,pageInfos,serverless,{distPath,buildId,pagesDir,pageExtensions,buildManifest,useStatic404,gzipSize=true}){const getPrettySize=_size=>{const size=(0,_prettyBytes.default)(_size);// green for 0-130kb | |
+"use strict";exports.__esModule=true;exports.collectPages=collectPages;exports.printTreeView=printTreeView;exports.printCustomRoutes=printCustomRoutes;exports.computeFromManifest=computeFromManifest;exports.difference=difference;exports.getJsPageSizeInKb=getJsPageSizeInKb;exports.buildStaticPaths=buildStaticPaths;exports.isPageStatic=isPageStatic;exports.hasCustomGetInitialProps=hasCustomGetInitialProps;exports.getNamedExports=getNamedExports;exports.detectConflictingPaths=detectConflictingPaths;exports.getCssFilePaths=getCssFilePaths;require("../next-server/server/node-polyfill-fetch");var _chalk=_interopRequireDefault(require("chalk"));var _gzipSize=_interopRequireDefault(require("next/dist/compiled/gzip-size"));var _textTable=_interopRequireDefault(require("next/dist/compiled/text-table"));var _path=_interopRequireDefault(require("path"));var _fs=require("fs");var _reactIs=require("react-is");var _stripAnsi=_interopRequireDefault(require("next/dist/compiled/strip-ansi"));var _constants=require("../lib/constants");var _prettyBytes=_interopRequireDefault(require("../lib/pretty-bytes"));var _recursiveReaddir=require("../lib/recursive-readdir");var _utils=require("../next-server/lib/router/utils");var _isDynamic=require("../next-server/lib/router/utils/is-dynamic");var _escapePathDelimiters=_interopRequireDefault(require("../next-server/lib/router/utils/escape-path-delimiters"));var _findPageFile=require("../server/lib/find-page-file");var _normalizePagePath=require("../next-server/server/normalize-page-path");var _normalizeTrailingSlash=require("../client/normalize-trailing-slash");var _normalizeLocalePath=require("../next-server/lib/i18n/normalize-locale-path");var Log=_interopRequireWildcard(require("./output/log"));var _loadComponents=require("../next-server/server/load-components");var _trace=require("../telemetry/trace");function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap();_getRequireWildcardCache=function(){return cache;};return cache;}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}const fileGzipStats={};const fsStatGzip=file=>{const cached=fileGzipStats[file];if(cached)return cached;return fileGzipStats[file]=_gzipSize.default.file(file);};const fileSize=async file=>(await _fs.promises.stat(file)).size;const fileStats={};const fsStat=file=>{const cached=fileStats[file];if(cached)return cached;return fileStats[file]=fileSize(file);};function collectPages(directories,pageExtensions){return(0,_recursiveReaddir.recursiveReadDirs)(directories,new RegExp(`\\.(?:${pageExtensions.join('|')})$`));}async function printTreeView(list,pageInfos,serverless,{distPath,buildId,pagesDirs,pageExtensions,buildManifest,useStatic404,gzipSize=true}){const getPrettySize=_size=>{const size=(0,_prettyBytes.default)(_size);// green for 0-130kb | |
if(_size<130*1000)return _chalk.default.green(size);// yellow for 130-170kb | |
if(_size<170*1000)return _chalk.default.yellow(size);// red for >= 170kb | |
return _chalk.default.red.bold(size);};const getCleanName=fileName=>fileName// Trim off `static/` | |
.replace(/^static\//,'')// Re-add `static/` for root files | |
.replace(/^<buildId>/,'static')// Remove file hash | |
-.replace(/(?:^|[.-])([0-9a-z]{6})[0-9a-z]{14}(?=\.)/,'.$1');const messages=[['Page','Size','First Load JS'].map(entry=>_chalk.default.underline(entry))];const hasCustomApp=await(0,_findPageFile.findPageFile)(pagesDir,'/_app',pageExtensions);pageInfos.set('/404',{...(pageInfos.get('/404')||pageInfos.get('/_error')),static:useStatic404});if(!list.includes('/404')){list=[...list,'/404'];}const sizeData=await computeFromManifest(buildManifest,distPath,gzipSize,pageInfos);const pageList=list.slice().filter(e=>!(e==='/_document'||e==='/_error'||!hasCustomApp&&e==='/_app')).sort((a,b)=>a.localeCompare(b));pageList.forEach((item,i,arr)=>{var _buildManifest$pages$,_pageInfo$ssgPageRout;const symbol=i===0?arr.length===1?'─':'┌':i===arr.length-1?'└':'├';const pageInfo=pageInfos.get(item);const ampFirst=buildManifest.ampFirstPages.includes(item);messages.push([`${symbol} ${item==='/_app'?' ':pageInfo!=null&&pageInfo.static?'○':pageInfo!=null&&pageInfo.isSsg?'●':'λ'} ${pageInfo!=null&&pageInfo.initialRevalidateSeconds?`${item} (ISR: ${pageInfo==null?void 0:pageInfo.initialRevalidateSeconds} Seconds)`:item}`,pageInfo?ampFirst?_chalk.default.cyan('AMP'):pageInfo.size>=0?(0,_prettyBytes.default)(pageInfo.size):'':'',pageInfo?ampFirst?_chalk.default.cyan('AMP'):pageInfo.size>=0?getPrettySize(pageInfo.totalSize):'':'']);const uniqueCssFiles=((_buildManifest$pages$=buildManifest.pages[item])==null?void 0:_buildManifest$pages$.filter(file=>file.endsWith('.css')&&sizeData.uniqueFiles.includes(file)))||[];if(uniqueCssFiles.length>0){const contSymbol=i===arr.length-1?' ':'├';uniqueCssFiles.forEach((file,index,{length})=>{const innerSymbol=index===length-1?'└':'├';messages.push([`${contSymbol} ${innerSymbol} ${getCleanName(file)}`,(0,_prettyBytes.default)(sizeData.sizeUniqueFiles[file]),'']);});}if(pageInfo!=null&&(_pageInfo$ssgPageRout=pageInfo.ssgPageRoutes)!=null&&_pageInfo$ssgPageRout.length){const totalRoutes=pageInfo.ssgPageRoutes.length;const previewPages=totalRoutes===4?4:3;const contSymbol=i===arr.length-1?' ':'├';const routes=pageInfo.ssgPageRoutes.slice(0,previewPages);if(totalRoutes>previewPages){const remaining=totalRoutes-previewPages;routes.push(`[+${remaining} more paths]`);}routes.forEach((slug,index,{length})=>{const innerSymbol=index===length-1?'└':'├';messages.push([`${contSymbol} ${innerSymbol} ${slug}`,'','']);});}});const sharedFilesSize=sizeData.sizeCommonFiles;const sharedFiles=sizeData.sizeCommonFile;messages.push(['+ First Load JS shared by all',getPrettySize(sharedFilesSize),'']);const sharedFileKeys=Object.keys(sharedFiles);const sharedCssFiles=[];[...sharedFileKeys.filter(file=>{if(file.endsWith('.css')){sharedCssFiles.push(file);return false;}return true;}).map(e=>e.replace(buildId,'<buildId>')).sort(),...sharedCssFiles.map(e=>e.replace(buildId,'<buildId>')).sort()].forEach((fileName,index,{length})=>{const innerSymbol=index===length-1?'└':'├';const originalName=fileName.replace('<buildId>',buildId);const cleanName=getCleanName(fileName);messages.push([` ${innerSymbol} ${cleanName}`,(0,_prettyBytes.default)(sharedFiles[originalName]),'']);});console.log((0,_textTable.default)(messages,{align:['l','l','r'],stringLength:str=>(0,_stripAnsi.default)(str).length}));console.log();console.log((0,_textTable.default)([['λ',serverless?'(Lambda)':'(Server)',`server-side renders at runtime (uses ${_chalk.default.cyan('getInitialProps')} or ${_chalk.default.cyan('getServerSideProps')})`],['○','(Static)','automatically rendered as static HTML (uses no initial props)'],['●','(SSG)',`automatically generated as static HTML + JSON (uses ${_chalk.default.cyan('getStaticProps')})`],['','(ISR)',`incremental static regeneration (uses revalidate in ${_chalk.default.cyan('getStaticProps')})`]],{align:['l','l','l'],stringLength:str=>(0,_stripAnsi.default)(str).length}));console.log();}function printCustomRoutes({redirects,rewrites,headers}){const printRoutes=(routes,type)=>{const isRedirects=type==='Redirects';const isHeaders=type==='Headers';console.log(_chalk.default.underline(type));console.log();/* | |
+.replace(/(?:^|[.-])([0-9a-z]{6})[0-9a-z]{14}(?=\.)/,'.$1');const messages=[['Page','Size','First Load JS'].map(entry=>_chalk.default.underline(entry))];const hasCustomApp=await(0,_findPageFile.findPageFile)(pagesDirs,'/_app',pageExtensions);pageInfos.set('/404',{...(pageInfos.get('/404')||pageInfos.get('/_error')),static:useStatic404});if(!list.includes('/404')){list=[...list,'/404'];}const sizeData=await computeFromManifest(buildManifest,distPath,gzipSize,pageInfos);const pageList=list.slice().filter(e=>!(e==='/_document'||e==='/_error'||!hasCustomApp&&e==='/_app')).sort((a,b)=>a.localeCompare(b));pageList.forEach((item,i,arr)=>{var _buildManifest$pages$,_pageInfo$ssgPageRout;const symbol=i===0?arr.length===1?'─':'┌':i===arr.length-1?'└':'├';const pageInfo=pageInfos.get(item);const ampFirst=buildManifest.ampFirstPages.includes(item);messages.push([`${symbol} ${item==='/_app'?' ':pageInfo!=null&&pageInfo.static?'○':pageInfo!=null&&pageInfo.isSsg?'●':'λ'} ${pageInfo!=null&&pageInfo.initialRevalidateSeconds?`${item} (ISR: ${pageInfo==null?void 0:pageInfo.initialRevalidateSeconds} Seconds)`:item}`,pageInfo?ampFirst?_chalk.default.cyan('AMP'):pageInfo.size>=0?(0,_prettyBytes.default)(pageInfo.size):'':'',pageInfo?ampFirst?_chalk.default.cyan('AMP'):pageInfo.size>=0?getPrettySize(pageInfo.totalSize):'':'']);const uniqueCssFiles=((_buildManifest$pages$=buildManifest.pages[item])==null?void 0:_buildManifest$pages$.filter(file=>file.endsWith('.css')&&sizeData.uniqueFiles.includes(file)))||[];if(uniqueCssFiles.length>0){const contSymbol=i===arr.length-1?' ':'├';uniqueCssFiles.forEach((file,index,{length})=>{const innerSymbol=index===length-1?'└':'├';messages.push([`${contSymbol} ${innerSymbol} ${getCleanName(file)}`,(0,_prettyBytes.default)(sizeData.sizeUniqueFiles[file]),'']);});}if(pageInfo!=null&&(_pageInfo$ssgPageRout=pageInfo.ssgPageRoutes)!=null&&_pageInfo$ssgPageRout.length){const totalRoutes=pageInfo.ssgPageRoutes.length;const previewPages=totalRoutes===4?4:3;const contSymbol=i===arr.length-1?' ':'├';const routes=pageInfo.ssgPageRoutes.slice(0,previewPages);if(totalRoutes>previewPages){const remaining=totalRoutes-previewPages;routes.push(`[+${remaining} more paths]`);}routes.forEach((slug,index,{length})=>{const innerSymbol=index===length-1?'└':'├';messages.push([`${contSymbol} ${innerSymbol} ${slug}`,'','']);});}});const sharedFilesSize=sizeData.sizeCommonFiles;const sharedFiles=sizeData.sizeCommonFile;messages.push(['+ First Load JS shared by all',getPrettySize(sharedFilesSize),'']);const sharedFileKeys=Object.keys(sharedFiles);const sharedCssFiles=[];[...sharedFileKeys.filter(file=>{if(file.endsWith('.css')){sharedCssFiles.push(file);return false;}return true;}).map(e=>e.replace(buildId,'<buildId>')).sort(),...sharedCssFiles.map(e=>e.replace(buildId,'<buildId>')).sort()].forEach((fileName,index,{length})=>{const innerSymbol=index===length-1?'└':'├';const originalName=fileName.replace('<buildId>',buildId);const cleanName=getCleanName(fileName);messages.push([` ${innerSymbol} ${cleanName}`,(0,_prettyBytes.default)(sharedFiles[originalName]),'']);});console.log((0,_textTable.default)(messages,{align:['l','l','r'],stringLength:str=>(0,_stripAnsi.default)(str).length}));console.log();console.log((0,_textTable.default)([['λ',serverless?'(Lambda)':'(Server)',`server-side renders at runtime (uses ${_chalk.default.cyan('getInitialProps')} or ${_chalk.default.cyan('getServerSideProps')})`],['○','(Static)','automatically rendered as static HTML (uses no initial props)'],['●','(SSG)',`automatically generated as static HTML + JSON (uses ${_chalk.default.cyan('getStaticProps')})`],['','(ISR)',`incremental static regeneration (uses revalidate in ${_chalk.default.cyan('getStaticProps')})`]],{align:['l','l','l'],stringLength:str=>(0,_stripAnsi.default)(str).length}));console.log();}function printCustomRoutes({redirects,rewrites,headers}){const printRoutes=(routes,type)=>{const isRedirects=type==='Redirects';const isHeaders=type==='Headers';console.log(_chalk.default.underline(type));console.log();/* | |
┌ source | |
├ permanent/statusCode | |
└ destination | |
diff --git a/node_modules/next/dist/build/utils.js.map b/node_modules/next/dist/build/utils.js.map | |
index ce3e798..a850da4 100644 | |
--- a/node_modules/next/dist/build/utils.js.map | |
+++ b/node_modules/next/dist/build/utils.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"sources":["../../build/utils.ts"],"names":["fileGzipStats","fsStatGzip","file","cached","getGzipSize","fileSize","fs","stat","size","fileStats","fsStat","collectPages","directory","pageExtensions","RegExp","join","printTreeView","list","pageInfos","serverless","distPath","buildId","pagesDir","buildManifest","useStatic404","gzipSize","getPrettySize","_size","chalk","green","yellow","red","bold","getCleanName","fileName","replace","messages","map","entry","underline","hasCustomApp","set","get","static","includes","sizeData","computeFromManifest","pageList","slice","filter","e","sort","a","b","localeCompare","forEach","item","i","arr","symbol","length","pageInfo","ampFirst","ampFirstPages","push","isSsg","initialRevalidateSeconds","cyan","totalSize","uniqueCssFiles","pages","endsWith","uniqueFiles","contSymbol","index","innerSymbol","sizeUniqueFiles","ssgPageRoutes","totalRoutes","previewPages","routes","remaining","slug","sharedFilesSize","sizeCommonFiles","sharedFiles","sizeCommonFile","sharedFileKeys","Object","keys","sharedCssFiles","originalName","cleanName","console","log","align","stringLength","str","printCustomRoutes","redirects","rewrites","headers","printRoutes","type","isRedirects","isHeaders","routesStr","route","routeStr","source","r","destination","statusCode","permanent","header","last","key","value","combinedRewrites","beforeFiles","afterFiles","fallback","cachedBuildManifest","lastCompute","lastComputePageInfo","manifest","is","expected","files","Map","isHybridAmp","Infinity","has","getSize","commonFiles","entries","len","f","stats","Promise","all","path","_","uniqueStats","reduce","obj","n","assign","difference","main","sub","Set","x","intersect","sum","getJsPageSizeInKb","page","computedManifestData","data","fnFilterJs","pageFiles","appFiles","fnMapRealPath","dep","allFilesReal","selfFilesReal","allFilesSize","selfFilesSize","buildStaticPaths","getStaticPaths","locales","defaultLocale","prerenderPaths","encodedPrerenderPaths","_routeRegex","_routeMatcher","_validParamKeys","staticPathsResult","expectedReturnVal","Array","isArray","Error","invalidStaticPathKeys","toPrerender","paths","localePathResult","cleanedEntry","detectedLocale","substr","result","add","split","segment","decodeURIComponent","invalidKeys","k","params","builtPage","encodedBuiltPage","validParamKey","repeat","optional","groups","paramValue","hasOwnProperty","undefined","replaced","encodeURIComponent","locale","curLocale","encodedPaths","isPageStatic","distDir","runtimeEnvConfig","parentId","isPageStaticSpan","traceAsyncFn","require","setConfig","components","mod","ComponentMod","Comp","default","hasGetInitialProps","getInitialProps","hasStaticProps","getStaticProps","hasStaticPaths","hasServerProps","getServerSideProps","hasLegacyServerProps","unstable_getServerProps","hasLegacyStaticProps","unstable_getStaticProps","hasLegacyStaticPaths","unstable_getStaticPaths","hasLegacyStaticParams","unstable_getStaticParams","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","pageIsDynamic","prerenderRoutes","encodedPrerenderRoutes","prerenderFallback","isNextImageImported","global","__NEXT_IMAGE_IMPORTED","config","isStatic","amp","isAmpOnly","err","code","hasCustomGetInitialProps","isLikeServerless","checkingApp","_app","origGetInitialProps","getNamedExports","detectConflictingPaths","combinedPages","ssgPages","additionalSsgPaths","conflictingPaths","dynamicSsgPages","pathsPage","curPath","lowerPath","toLowerCase","conflictingPage","find","conflictingPath","compPath","conflictingPathsOutput","pathItems","pathItem","idx","isDynamic","Log","error","process","exit","getCssFilePaths","cssFiles","values"],"mappings":"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","sourcesContent":["import '../next-server/server/node-polyfill-fetch'\nimport chalk from 'chalk'\nimport getGzipSize from 'next/dist/compiled/gzip-size'\nimport textTable from 'next/dist/compiled/text-table'\nimport path from 'path'\nimport { promises as fs } from 'fs'\nimport { isValidElementType } from 'react-is'\nimport stripAnsi from 'next/dist/compiled/strip-ansi'\nimport {\n Redirect,\n Rewrite,\n Header,\n CustomRoutes,\n} from '../lib/load-custom-routes'\nimport {\n SSG_GET_INITIAL_PROPS_CONFLICT,\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT,\n SERVER_PROPS_SSG_CONFLICT,\n} from '../lib/constants'\nimport prettyBytes from '../lib/pretty-bytes'\nimport { recursiveReadDir } from '../lib/recursive-readdir'\nimport { getRouteMatcher, getRouteRegex } from '../next-server/lib/router/utils'\nimport { isDynamicRoute } from '../next-server/lib/router/utils/is-dynamic'\nimport escapePathDelimiters from '../next-server/lib/router/utils/escape-path-delimiters'\nimport { findPageFile } from '../server/lib/find-page-file'\nimport { GetStaticPaths } from 'next/types'\nimport { denormalizePagePath } from '../next-server/server/normalize-page-path'\nimport { BuildManifest } from '../next-server/server/get-page-files'\nimport { removePathTrailingSlash } from '../client/normalize-trailing-slash'\nimport { UnwrapPromise } from '../lib/coalesced-function'\nimport { normalizeLocalePath } from '../next-server/lib/i18n/normalize-locale-path'\nimport * as Log from './output/log'\nimport { loadComponents } from '../next-server/server/load-components'\nimport { trace } from '../telemetry/trace'\n\nconst fileGzipStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStatGzip = (file: string) => {\n const cached = fileGzipStats[file]\n if (cached) return cached\n return (fileGzipStats[file] = getGzipSize.file(file))\n}\n\nconst fileSize = async (file: string) => (await fs.stat(file)).size\n\nconst fileStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStat = (file: string) => {\n const cached = fileStats[file]\n if (cached) return cached\n return (fileStats[file] = fileSize(file))\n}\n\nexport function collectPages(\n directory: string,\n pageExtensions: string[]\n): Promise<string[]> {\n return recursiveReadDir(\n directory,\n new RegExp(`\\\\.(?:${pageExtensions.join('|')})$`)\n )\n}\n\nexport interface PageInfo {\n isHybridAmp?: boolean\n size: number\n totalSize: number\n static: boolean\n isSsg: boolean\n ssgPageRoutes: string[] | null\n initialRevalidateSeconds: number | false\n}\n\nexport async function printTreeView(\n list: readonly string[],\n pageInfos: Map<string, PageInfo>,\n serverless: boolean,\n {\n distPath,\n buildId,\n pagesDir,\n pageExtensions,\n buildManifest,\n useStatic404,\n gzipSize = true,\n }: {\n distPath: string\n buildId: string\n pagesDir: string\n pageExtensions: string[]\n buildManifest: BuildManifest\n useStatic404: boolean\n gzipSize?: boolean\n }\n) {\n const getPrettySize = (_size: number): string => {\n const size = prettyBytes(_size)\n // green for 0-130kb\n if (_size < 130 * 1000) return chalk.green(size)\n // yellow for 130-170kb\n if (_size < 170 * 1000) return chalk.yellow(size)\n // red for >= 170kb\n return chalk.red.bold(size)\n }\n\n const getCleanName = (fileName: string) =>\n fileName\n // Trim off `static/`\n .replace(/^static\\//, '')\n // Re-add `static/` for root files\n .replace(/^<buildId>/, 'static')\n // Remove file hash\n .replace(/(?:^|[.-])([0-9a-z]{6})[0-9a-z]{14}(?=\\.)/, '.$1')\n\n const messages: [string, string, string][] = [\n ['Page', 'Size', 'First Load JS'].map((entry) =>\n chalk.underline(entry)\n ) as [string, string, string],\n ]\n\n const hasCustomApp = await findPageFile(pagesDir, '/_app', pageExtensions)\n\n pageInfos.set('/404', {\n ...(pageInfos.get('/404') || pageInfos.get('/_error')),\n static: useStatic404,\n } as any)\n\n if (!list.includes('/404')) {\n list = [...list, '/404']\n }\n\n const sizeData = await computeFromManifest(\n buildManifest,\n distPath,\n gzipSize,\n pageInfos\n )\n\n const pageList = list\n .slice()\n .filter(\n (e) =>\n !(\n e === '/_document' ||\n e === '/_error' ||\n (!hasCustomApp && e === '/_app')\n )\n )\n .sort((a, b) => a.localeCompare(b))\n\n pageList.forEach((item, i, arr) => {\n const symbol =\n i === 0\n ? arr.length === 1\n ? '─'\n : '┌'\n : i === arr.length - 1\n ? '└'\n : '├'\n\n const pageInfo = pageInfos.get(item)\n const ampFirst = buildManifest.ampFirstPages.includes(item)\n\n messages.push([\n `${symbol} ${\n item === '/_app'\n ? ' '\n : pageInfo?.static\n ? '○'\n : pageInfo?.isSsg\n ? '●'\n : 'λ'\n } ${\n pageInfo?.initialRevalidateSeconds\n ? `${item} (ISR: ${pageInfo?.initialRevalidateSeconds} Seconds)`\n : item\n }`,\n pageInfo\n ? ampFirst\n ? chalk.cyan('AMP')\n : pageInfo.size >= 0\n ? prettyBytes(pageInfo.size)\n : ''\n : '',\n pageInfo\n ? ampFirst\n ? chalk.cyan('AMP')\n : pageInfo.size >= 0\n ? getPrettySize(pageInfo.totalSize)\n : ''\n : '',\n ])\n\n const uniqueCssFiles =\n buildManifest.pages[item]?.filter(\n (file) => file.endsWith('.css') && sizeData.uniqueFiles.includes(file)\n ) || []\n\n if (uniqueCssFiles.length > 0) {\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n uniqueCssFiles.forEach((file, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n messages.push([\n `${contSymbol} ${innerSymbol} ${getCleanName(file)}`,\n prettyBytes(sizeData.sizeUniqueFiles[file]),\n '',\n ])\n })\n }\n\n if (pageInfo?.ssgPageRoutes?.length) {\n const totalRoutes = pageInfo.ssgPageRoutes.length\n const previewPages = totalRoutes === 4 ? 4 : 3\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n const routes = pageInfo.ssgPageRoutes.slice(0, previewPages)\n if (totalRoutes > previewPages) {\n const remaining = totalRoutes - previewPages\n routes.push(`[+${remaining} more paths]`)\n }\n\n routes.forEach((slug, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n messages.push([`${contSymbol} ${innerSymbol} ${slug}`, '', ''])\n })\n }\n })\n\n const sharedFilesSize = sizeData.sizeCommonFiles\n const sharedFiles = sizeData.sizeCommonFile\n\n messages.push([\n '+ First Load JS shared by all',\n getPrettySize(sharedFilesSize),\n '',\n ])\n const sharedFileKeys = Object.keys(sharedFiles)\n const sharedCssFiles: string[] = []\n ;[\n ...sharedFileKeys\n .filter((file) => {\n if (file.endsWith('.css')) {\n sharedCssFiles.push(file)\n return false\n }\n return true\n })\n .map((e) => e.replace(buildId, '<buildId>'))\n .sort(),\n ...sharedCssFiles.map((e) => e.replace(buildId, '<buildId>')).sort(),\n ].forEach((fileName, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n\n const originalName = fileName.replace('<buildId>', buildId)\n const cleanName = getCleanName(fileName)\n\n messages.push([\n ` ${innerSymbol} ${cleanName}`,\n prettyBytes(sharedFiles[originalName]),\n '',\n ])\n })\n\n console.log(\n textTable(messages, {\n align: ['l', 'l', 'r'],\n stringLength: (str) => stripAnsi(str).length,\n })\n )\n\n console.log()\n console.log(\n textTable(\n [\n [\n 'λ',\n serverless ? '(Lambda)' : '(Server)',\n `server-side renders at runtime (uses ${chalk.cyan(\n 'getInitialProps'\n )} or ${chalk.cyan('getServerSideProps')})`,\n ],\n [\n '○',\n '(Static)',\n 'automatically rendered as static HTML (uses no initial props)',\n ],\n [\n '●',\n '(SSG)',\n `automatically generated as static HTML + JSON (uses ${chalk.cyan(\n 'getStaticProps'\n )})`,\n ],\n [\n '',\n '(ISR)',\n `incremental static regeneration (uses revalidate in ${chalk.cyan(\n 'getStaticProps'\n )})`,\n ],\n ] as [string, string, string][],\n {\n align: ['l', 'l', 'l'],\n stringLength: (str) => stripAnsi(str).length,\n }\n )\n )\n\n console.log()\n}\n\nexport function printCustomRoutes({\n redirects,\n rewrites,\n headers,\n}: CustomRoutes) {\n const printRoutes = (\n routes: Redirect[] | Rewrite[] | Header[],\n type: 'Redirects' | 'Rewrites' | 'Headers'\n ) => {\n const isRedirects = type === 'Redirects'\n const isHeaders = type === 'Headers'\n console.log(chalk.underline(type))\n console.log()\n\n /*\n ┌ source\n ├ permanent/statusCode\n └ destination\n */\n const routesStr = (routes as any[])\n .map((route: { source: string }) => {\n let routeStr = `┌ source: ${route.source}\\n`\n\n if (!isHeaders) {\n const r = route as Rewrite\n routeStr += `${isRedirects ? '├' : '└'} destination: ${\n r.destination\n }\\n`\n }\n if (isRedirects) {\n const r = route as Redirect\n routeStr += `└ ${\n r.statusCode\n ? `status: ${r.statusCode}`\n : `permanent: ${r.permanent}`\n }\\n`\n }\n\n if (isHeaders) {\n const r = route as Header\n routeStr += `└ headers:\\n`\n\n for (let i = 0; i < r.headers.length; i++) {\n const header = r.headers[i]\n const last = i === headers.length - 1\n\n routeStr += ` ${last ? '└' : '├'} ${header.key}: ${header.value}\\n`\n }\n }\n\n return routeStr\n })\n .join('\\n')\n\n console.log(routesStr, '\\n')\n }\n\n if (redirects.length) {\n printRoutes(redirects, 'Redirects')\n }\n if (headers.length) {\n printRoutes(headers, 'Headers')\n }\n\n const combinedRewrites = [\n ...rewrites.beforeFiles,\n ...rewrites.afterFiles,\n ...rewrites.fallback,\n ]\n if (combinedRewrites.length) {\n printRoutes(combinedRewrites, 'Rewrites')\n }\n}\n\ntype ComputeManifestShape = {\n commonFiles: string[]\n uniqueFiles: string[]\n sizeUniqueFiles: { [file: string]: number }\n sizeCommonFile: { [file: string]: number }\n sizeCommonFiles: number\n}\n\nlet cachedBuildManifest: BuildManifest | undefined\n\nlet lastCompute: ComputeManifestShape | undefined\nlet lastComputePageInfo: boolean | undefined\n\nexport async function computeFromManifest(\n manifest: BuildManifest,\n distPath: string,\n gzipSize: boolean = true,\n pageInfos?: Map<string, PageInfo>\n): Promise<ComputeManifestShape> {\n if (\n Object.is(cachedBuildManifest, manifest) &&\n lastComputePageInfo === !!pageInfos\n ) {\n return lastCompute!\n }\n\n let expected = 0\n const files = new Map<string, number>()\n Object.keys(manifest.pages).forEach((key) => {\n if (pageInfos) {\n const pageInfo = pageInfos.get(key)\n // don't include AMP pages since they don't rely on shared bundles\n // AMP First pages are not under the pageInfos key\n if (pageInfo?.isHybridAmp) {\n return\n }\n }\n\n ++expected\n manifest.pages[key].forEach((file) => {\n if (key === '/_app') {\n files.set(file, Infinity)\n } else if (files.has(file)) {\n files.set(file, files.get(file)! + 1)\n } else {\n files.set(file, 1)\n }\n })\n })\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n\n const commonFiles = [...files.entries()]\n .filter(([, len]) => len === expected || len === Infinity)\n .map(([f]) => f)\n const uniqueFiles = [...files.entries()]\n .filter(([, len]) => len === 1)\n .map(([f]) => f)\n\n let stats: [string, number][]\n try {\n stats = await Promise.all(\n commonFiles.map(\n async (f) =>\n [f, await getSize(path.join(distPath, f))] as [string, number]\n )\n )\n } catch (_) {\n stats = []\n }\n\n let uniqueStats: [string, number][]\n try {\n uniqueStats = await Promise.all(\n uniqueFiles.map(\n async (f) =>\n [f, await getSize(path.join(distPath, f))] as [string, number]\n )\n )\n } catch (_) {\n uniqueStats = []\n }\n\n lastCompute = {\n commonFiles,\n uniqueFiles,\n sizeUniqueFiles: uniqueStats.reduce(\n (obj, n) => Object.assign(obj, { [n[0]]: n[1] }),\n {}\n ),\n sizeCommonFile: stats.reduce(\n (obj, n) => Object.assign(obj, { [n[0]]: n[1] }),\n {}\n ),\n sizeCommonFiles: stats.reduce((size, [f, stat]) => {\n if (f.endsWith('.css')) return size\n return size + stat\n }, 0),\n }\n\n cachedBuildManifest = manifest\n lastComputePageInfo = !!pageInfos\n return lastCompute!\n}\n\nexport function difference<T>(main: T[] | Set<T>, sub: T[] | Set<T>): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...a].filter((x) => !b.has(x))\n}\n\nfunction intersect<T>(main: T[], sub: T[]): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...new Set([...a].filter((x) => b.has(x)))]\n}\n\nfunction sum(a: number[]): number {\n return a.reduce((size, stat) => size + stat, 0)\n}\n\nexport async function getJsPageSizeInKb(\n page: string,\n distPath: string,\n buildManifest: BuildManifest,\n gzipSize: boolean = true,\n computedManifestData?: ComputeManifestShape\n): Promise<[number, number]> {\n const data =\n computedManifestData ||\n (await computeFromManifest(buildManifest, distPath, gzipSize))\n\n const fnFilterJs = (entry: string) => entry.endsWith('.js')\n\n const pageFiles = (\n buildManifest.pages[denormalizePagePath(page)] || []\n ).filter(fnFilterJs)\n const appFiles = (buildManifest.pages['/_app'] || []).filter(fnFilterJs)\n\n const fnMapRealPath = (dep: string) => `${distPath}/${dep}`\n\n const allFilesReal = [...new Set([...pageFiles, ...appFiles])].map(\n fnMapRealPath\n )\n const selfFilesReal = difference(\n intersect(pageFiles, data.uniqueFiles),\n data.commonFiles\n ).map(fnMapRealPath)\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n\n try {\n // Doesn't use `Promise.all`, as we'd double compute duplicate files. This\n // function is memoized, so the second one will instantly resolve.\n const allFilesSize = sum(await Promise.all(allFilesReal.map(getSize)))\n const selfFilesSize = sum(await Promise.all(selfFilesReal.map(getSize)))\n\n return [selfFilesSize, allFilesSize]\n } catch (_) {}\n return [-1, -1]\n}\n\nexport async function buildStaticPaths(\n page: string,\n getStaticPaths: GetStaticPaths,\n locales?: string[],\n defaultLocale?: string\n): Promise<\n Omit<UnwrapPromise<ReturnType<GetStaticPaths>>, 'paths'> & {\n paths: string[]\n encodedPaths: string[]\n }\n> {\n const prerenderPaths = new Set<string>()\n const encodedPrerenderPaths = new Set<string>()\n const _routeRegex = getRouteRegex(page)\n const _routeMatcher = getRouteMatcher(_routeRegex)\n\n // Get the default list of allowed params.\n const _validParamKeys = Object.keys(_routeMatcher(page))\n\n const staticPathsResult = await getStaticPaths({ locales, defaultLocale })\n\n const expectedReturnVal =\n `Expected: { paths: [], fallback: boolean }\\n` +\n `See here for more info: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`\n\n if (\n !staticPathsResult ||\n typeof staticPathsResult !== 'object' ||\n Array.isArray(staticPathsResult)\n ) {\n throw new Error(\n `Invalid value returned from getStaticPaths in ${page}. Received ${typeof staticPathsResult} ${expectedReturnVal}`\n )\n }\n\n const invalidStaticPathKeys = Object.keys(staticPathsResult).filter(\n (key) => !(key === 'paths' || key === 'fallback')\n )\n\n if (invalidStaticPathKeys.length > 0) {\n throw new Error(\n `Extra keys returned from getStaticPaths in ${page} (${invalidStaticPathKeys.join(\n ', '\n )}) ${expectedReturnVal}`\n )\n }\n\n if (\n !(\n typeof staticPathsResult.fallback === 'boolean' ||\n staticPathsResult.fallback === 'blocking'\n )\n ) {\n throw new Error(\n `The \\`fallback\\` key must be returned from getStaticPaths in ${page}.\\n` +\n expectedReturnVal\n )\n }\n\n const toPrerender = staticPathsResult.paths\n\n if (!Array.isArray(toPrerender)) {\n throw new Error(\n `Invalid \\`paths\\` value returned from getStaticPaths in ${page}.\\n` +\n `\\`paths\\` must be an array of strings or objects of shape { params: [key: string]: string }`\n )\n }\n\n toPrerender.forEach((entry) => {\n // For a string-provided path, we must make sure it matches the dynamic\n // route.\n if (typeof entry === 'string') {\n entry = removePathTrailingSlash(entry)\n\n const localePathResult = normalizeLocalePath(entry, locales)\n let cleanedEntry = entry\n\n if (localePathResult.detectedLocale) {\n cleanedEntry = entry.substr(localePathResult.detectedLocale.length + 1)\n } else if (defaultLocale) {\n entry = `/${defaultLocale}${entry}`\n }\n\n const result = _routeMatcher(cleanedEntry)\n if (!result) {\n throw new Error(\n `The provided path \\`${cleanedEntry}\\` does not match the page: \\`${page}\\`.`\n )\n }\n\n // If leveraging the string paths variant the entry should already be\n // encoded so we decode the segments ensuring we only escape path\n // delimiters\n prerenderPaths.add(\n entry\n .split('/')\n .map((segment) =>\n escapePathDelimiters(decodeURIComponent(segment), true)\n )\n .join('/')\n )\n encodedPrerenderPaths.add(entry)\n }\n // For the object-provided path, we must make sure it specifies all\n // required keys.\n else {\n const invalidKeys = Object.keys(entry).filter(\n (key) => key !== 'params' && key !== 'locale'\n )\n\n if (invalidKeys.length) {\n throw new Error(\n `Additional keys were returned from \\`getStaticPaths\\` in page \"${page}\". ` +\n `URL Parameters intended for this dynamic route must be nested under the \\`params\\` key, i.e.:` +\n `\\n\\n\\treturn { params: { ${_validParamKeys\n .map((k) => `${k}: ...`)\n .join(', ')} } }` +\n `\\n\\nKeys that need to be moved: ${invalidKeys.join(', ')}.\\n`\n )\n }\n\n const { params = {} } = entry\n let builtPage = page\n let encodedBuiltPage = page\n\n _validParamKeys.forEach((validParamKey) => {\n const { repeat, optional } = _routeRegex.groups[validParamKey]\n let paramValue = params[validParamKey]\n if (\n optional &&\n params.hasOwnProperty(validParamKey) &&\n (paramValue === null ||\n paramValue === undefined ||\n (paramValue as any) === false)\n ) {\n paramValue = []\n }\n if (\n (repeat && !Array.isArray(paramValue)) ||\n (!repeat && typeof paramValue !== 'string')\n ) {\n throw new Error(\n `A required parameter (${validParamKey}) was not provided as ${\n repeat ? 'an array' : 'a string'\n } in getStaticPaths for ${page}`\n )\n }\n let replaced = `[${repeat ? '...' : ''}${validParamKey}]`\n if (optional) {\n replaced = `[${replaced}]`\n }\n builtPage = builtPage\n .replace(\n replaced,\n repeat\n ? (paramValue as string[])\n .map((segment) => escapePathDelimiters(segment, true))\n .join('/')\n : escapePathDelimiters(paramValue as string, true)\n )\n .replace(/(?!^)\\/$/, '')\n\n encodedBuiltPage = encodedBuiltPage\n .replace(\n replaced,\n repeat\n ? (paramValue as string[]).map(encodeURIComponent).join('/')\n : encodeURIComponent(paramValue as string)\n )\n .replace(/(?!^)\\/$/, '')\n })\n\n if (entry.locale && !locales?.includes(entry.locale)) {\n throw new Error(\n `Invalid locale returned from getStaticPaths for ${page}, the locale ${entry.locale} is not specified in next.config.js`\n )\n }\n const curLocale = entry.locale || defaultLocale || ''\n\n prerenderPaths.add(\n `${curLocale ? `/${curLocale}` : ''}${\n curLocale && builtPage === '/' ? '' : builtPage\n }`\n )\n encodedPrerenderPaths.add(\n `${curLocale ? `/${curLocale}` : ''}${\n curLocale && encodedBuiltPage === '/' ? '' : encodedBuiltPage\n }`\n )\n }\n })\n\n return {\n paths: [...prerenderPaths],\n fallback: staticPathsResult.fallback,\n encodedPaths: [...encodedPrerenderPaths],\n }\n}\n\nexport async function isPageStatic(\n page: string,\n distDir: string,\n serverless: boolean,\n runtimeEnvConfig: any,\n locales?: string[],\n defaultLocale?: string,\n parentId?: any\n): Promise<{\n isStatic?: boolean\n isAmpOnly?: boolean\n isHybridAmp?: boolean\n hasServerProps?: boolean\n hasStaticProps?: boolean\n prerenderRoutes?: string[]\n encodedPrerenderRoutes?: string[]\n prerenderFallback?: boolean | 'blocking'\n isNextImageImported?: boolean\n}> {\n const isPageStaticSpan = trace('is-page-static-utils', parentId)\n return isPageStaticSpan.traceAsyncFn(async () => {\n try {\n require('../next-server/lib/runtime-config').setConfig(runtimeEnvConfig)\n const components = await loadComponents(distDir, page, serverless)\n const mod = components.ComponentMod\n const Comp = mod.default || mod\n\n if (!Comp || !isValidElementType(Comp) || typeof Comp === 'string') {\n throw new Error('INVALID_DEFAULT_EXPORT')\n }\n\n const hasGetInitialProps = !!(Comp as any).getInitialProps\n const hasStaticProps = !!(await mod.getStaticProps)\n const hasStaticPaths = !!(await mod.getStaticPaths)\n const hasServerProps = !!(await mod.getServerSideProps)\n const hasLegacyServerProps = !!(await mod.unstable_getServerProps)\n const hasLegacyStaticProps = !!(await mod.unstable_getStaticProps)\n const hasLegacyStaticPaths = !!(await mod.unstable_getStaticPaths)\n const hasLegacyStaticParams = !!(await mod.unstable_getStaticParams)\n\n if (hasLegacyStaticParams) {\n throw new Error(\n `unstable_getStaticParams was replaced with getStaticPaths. Please update your code.`\n )\n }\n\n if (hasLegacyStaticPaths) {\n throw new Error(\n `unstable_getStaticPaths was replaced with getStaticPaths. Please update your code.`\n )\n }\n\n if (hasLegacyStaticProps) {\n throw new Error(\n `unstable_getStaticProps was replaced with getStaticProps. Please update your code.`\n )\n }\n\n if (hasLegacyServerProps) {\n throw new Error(\n `unstable_getServerProps was replaced with getServerSideProps. Please update your code.`\n )\n }\n\n // A page cannot be prerendered _and_ define a data requirement. That's\n // contradictory!\n if (hasGetInitialProps && hasStaticProps) {\n throw new Error(SSG_GET_INITIAL_PROPS_CONFLICT)\n }\n\n if (hasGetInitialProps && hasServerProps) {\n throw new Error(SERVER_PROPS_GET_INIT_PROPS_CONFLICT)\n }\n\n if (hasStaticProps && hasServerProps) {\n throw new Error(SERVER_PROPS_SSG_CONFLICT)\n }\n\n const pageIsDynamic = isDynamicRoute(page)\n // A page cannot have static parameters if it is not a dynamic page.\n if (hasStaticProps && hasStaticPaths && !pageIsDynamic) {\n throw new Error(\n `getStaticPaths can only be used with dynamic pages, not '${page}'.` +\n `\\nLearn more: https://nextjs.org/docs/routing/dynamic-routes`\n )\n }\n\n if (hasStaticProps && pageIsDynamic && !hasStaticPaths) {\n throw new Error(\n `getStaticPaths is required for dynamic SSG pages and is missing for '${page}'.` +\n `\\nRead more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`\n )\n }\n\n let prerenderRoutes: Array<string> | undefined\n let encodedPrerenderRoutes: Array<string> | undefined\n let prerenderFallback: boolean | 'blocking' | undefined\n if (hasStaticProps && hasStaticPaths) {\n ;({\n paths: prerenderRoutes,\n fallback: prerenderFallback,\n encodedPaths: encodedPrerenderRoutes,\n } = await buildStaticPaths(\n page,\n mod.getStaticPaths,\n locales,\n defaultLocale\n ))\n }\n\n const isNextImageImported = (global as any).__NEXT_IMAGE_IMPORTED\n const config = mod.config || {}\n return {\n isStatic: !hasStaticProps && !hasGetInitialProps && !hasServerProps,\n isHybridAmp: config.amp === 'hybrid',\n isAmpOnly: config.amp === true,\n prerenderRoutes,\n prerenderFallback,\n encodedPrerenderRoutes,\n hasStaticProps,\n hasServerProps,\n isNextImageImported,\n }\n } catch (err) {\n if (err.code === 'MODULE_NOT_FOUND') return {}\n throw err\n }\n })\n}\n\nexport async function hasCustomGetInitialProps(\n page: string,\n distDir: string,\n isLikeServerless: boolean,\n runtimeEnvConfig: any,\n checkingApp: boolean\n): Promise<boolean> {\n require('../next-server/lib/runtime-config').setConfig(runtimeEnvConfig)\n\n const components = await loadComponents(distDir, page, isLikeServerless)\n let mod = components.ComponentMod\n\n if (checkingApp) {\n mod = (await mod._app) || mod.default || mod\n } else {\n mod = mod.default || mod\n }\n mod = await mod\n return mod.getInitialProps !== mod.origGetInitialProps\n}\n\nexport async function getNamedExports(\n page: string,\n distDir: string,\n isLikeServerless: boolean,\n runtimeEnvConfig: any\n): Promise<Array<string>> {\n require('../next-server/lib/runtime-config').setConfig(runtimeEnvConfig)\n const components = await loadComponents(distDir, page, isLikeServerless)\n let mod = components.ComponentMod\n\n return Object.keys(mod)\n}\n\nexport function detectConflictingPaths(\n combinedPages: string[],\n ssgPages: Set<string>,\n additionalSsgPaths: Map<string, string[]>\n) {\n const conflictingPaths = new Map<\n string,\n Array<{\n path: string\n page: string\n }>\n >()\n\n const dynamicSsgPages = [...ssgPages].filter((page) => isDynamicRoute(page))\n\n additionalSsgPaths.forEach((paths, pathsPage) => {\n paths.forEach((curPath) => {\n const lowerPath = curPath.toLowerCase()\n let conflictingPage = combinedPages.find(\n (page) => page.toLowerCase() === lowerPath\n )\n\n if (conflictingPage) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPage, page: conflictingPage },\n ])\n } else {\n let conflictingPath: string | undefined\n\n conflictingPage = dynamicSsgPages.find((page) => {\n if (page === pathsPage) return false\n\n conflictingPath = additionalSsgPaths\n .get(page)\n ?.find((compPath) => compPath.toLowerCase() === lowerPath)\n return conflictingPath\n })\n\n if (conflictingPage && conflictingPath) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPath, page: conflictingPage },\n ])\n }\n }\n })\n })\n\n if (conflictingPaths.size > 0) {\n let conflictingPathsOutput = ''\n\n conflictingPaths.forEach((pathItems) => {\n pathItems.forEach((pathItem, idx) => {\n const isDynamic = pathItem.page !== pathItem.path\n\n if (idx > 0) {\n conflictingPathsOutput += 'conflicts with '\n }\n\n conflictingPathsOutput += `path: \"${pathItem.path}\"${\n isDynamic ? ` from page: \"${pathItem.page}\" ` : ' '\n }`\n })\n conflictingPathsOutput += '\\n'\n })\n\n Log.error(\n 'Conflicting paths returned from getStaticPaths, paths must unique per page.\\n' +\n 'See more info here: https://nextjs.org/docs/messages/conflicting-ssg-paths\\n\\n' +\n conflictingPathsOutput\n )\n process.exit(1)\n }\n}\n\nexport function getCssFilePaths(buildManifest: BuildManifest): string[] {\n const cssFiles = new Set<string>()\n Object.values(buildManifest.pages).forEach((files) => {\n files.forEach((file) => {\n if (file.endsWith('.css')) {\n cssFiles.add(file)\n }\n })\n })\n\n return [...cssFiles]\n}\n"]} | |
\ No newline at end of file | |
+{"version":3,"sources":["../../build/utils.ts"],"names":["fileGzipStats","fsStatGzip","file","cached","getGzipSize","fileSize","fs","stat","size","fileStats","fsStat","collectPages","directories","pageExtensions","RegExp","join","printTreeView","list","pageInfos","serverless","distPath","buildId","pagesDirs","buildManifest","useStatic404","gzipSize","getPrettySize","_size","chalk","green","yellow","red","bold","getCleanName","fileName","replace","messages","map","entry","underline","hasCustomApp","set","get","static","includes","sizeData","computeFromManifest","pageList","slice","filter","e","sort","a","b","localeCompare","forEach","item","i","arr","symbol","length","pageInfo","ampFirst","ampFirstPages","push","isSsg","initialRevalidateSeconds","cyan","totalSize","uniqueCssFiles","pages","endsWith","uniqueFiles","contSymbol","index","innerSymbol","sizeUniqueFiles","ssgPageRoutes","totalRoutes","previewPages","routes","remaining","slug","sharedFilesSize","sizeCommonFiles","sharedFiles","sizeCommonFile","sharedFileKeys","Object","keys","sharedCssFiles","originalName","cleanName","console","log","align","stringLength","str","printCustomRoutes","redirects","rewrites","headers","printRoutes","type","isRedirects","isHeaders","routesStr","route","routeStr","source","r","destination","statusCode","permanent","header","last","key","value","combinedRewrites","beforeFiles","afterFiles","fallback","cachedBuildManifest","lastCompute","lastComputePageInfo","manifest","is","expected","files","Map","isHybridAmp","Infinity","has","getSize","commonFiles","entries","len","f","stats","Promise","all","path","_","uniqueStats","reduce","obj","n","assign","difference","main","sub","Set","x","intersect","sum","getJsPageSizeInKb","page","computedManifestData","data","fnFilterJs","pageFiles","appFiles","fnMapRealPath","dep","allFilesReal","selfFilesReal","allFilesSize","selfFilesSize","buildStaticPaths","getStaticPaths","locales","defaultLocale","prerenderPaths","encodedPrerenderPaths","_routeRegex","_routeMatcher","_validParamKeys","staticPathsResult","expectedReturnVal","Array","isArray","Error","invalidStaticPathKeys","toPrerender","paths","localePathResult","cleanedEntry","detectedLocale","substr","result","add","split","segment","decodeURIComponent","invalidKeys","k","params","builtPage","encodedBuiltPage","validParamKey","repeat","optional","groups","paramValue","hasOwnProperty","undefined","replaced","encodeURIComponent","locale","curLocale","encodedPaths","isPageStatic","distDir","runtimeEnvConfig","parentId","isPageStaticSpan","traceAsyncFn","require","setConfig","components","mod","ComponentMod","Comp","default","hasGetInitialProps","getInitialProps","hasStaticProps","getStaticProps","hasStaticPaths","hasServerProps","getServerSideProps","hasLegacyServerProps","unstable_getServerProps","hasLegacyStaticProps","unstable_getStaticProps","hasLegacyStaticPaths","unstable_getStaticPaths","hasLegacyStaticParams","unstable_getStaticParams","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","pageIsDynamic","prerenderRoutes","encodedPrerenderRoutes","prerenderFallback","isNextImageImported","global","__NEXT_IMAGE_IMPORTED","config","isStatic","amp","isAmpOnly","err","code","hasCustomGetInitialProps","isLikeServerless","checkingApp","_app","origGetInitialProps","getNamedExports","detectConflictingPaths","combinedPages","ssgPages","additionalSsgPaths","conflictingPaths","dynamicSsgPages","pathsPage","curPath","lowerPath","toLowerCase","conflictingPage","find","conflictingPath","compPath","conflictingPathsOutput","pathItems","pathItem","idx","isDynamic","Log","error","process","exit","getCssFilePaths","cssFiles","values"],"mappings":"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","sourcesContent":["import '../next-server/server/node-polyfill-fetch'\nimport chalk from 'chalk'\nimport getGzipSize from 'next/dist/compiled/gzip-size'\nimport textTable from 'next/dist/compiled/text-table'\nimport path from 'path'\nimport { promises as fs } from 'fs'\nimport { isValidElementType } from 'react-is'\nimport stripAnsi from 'next/dist/compiled/strip-ansi'\nimport {\n Redirect,\n Rewrite,\n Header,\n CustomRoutes,\n} from '../lib/load-custom-routes'\nimport {\n SSG_GET_INITIAL_PROPS_CONFLICT,\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT,\n SERVER_PROPS_SSG_CONFLICT,\n} from '../lib/constants'\nimport prettyBytes from '../lib/pretty-bytes'\nimport { recursiveReadDirs } from '../lib/recursive-readdir'\nimport { getRouteMatcher, getRouteRegex } from '../next-server/lib/router/utils'\nimport { isDynamicRoute } from '../next-server/lib/router/utils/is-dynamic'\nimport escapePathDelimiters from '../next-server/lib/router/utils/escape-path-delimiters'\nimport { findPageFile } from '../server/lib/find-page-file'\nimport { GetStaticPaths } from 'next/types'\nimport { denormalizePagePath } from '../next-server/server/normalize-page-path'\nimport { BuildManifest } from '../next-server/server/get-page-files'\nimport { removePathTrailingSlash } from '../client/normalize-trailing-slash'\nimport { UnwrapPromise } from '../lib/coalesced-function'\nimport { normalizeLocalePath } from '../next-server/lib/i18n/normalize-locale-path'\nimport * as Log from './output/log'\nimport { loadComponents } from '../next-server/server/load-components'\nimport { trace } from '../telemetry/trace'\n\nconst fileGzipStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStatGzip = (file: string) => {\n const cached = fileGzipStats[file]\n if (cached) return cached\n return (fileGzipStats[file] = getGzipSize.file(file))\n}\n\nconst fileSize = async (file: string) => (await fs.stat(file)).size\n\nconst fileStats: { [k: string]: Promise<number> | undefined } = {}\nconst fsStat = (file: string) => {\n const cached = fileStats[file]\n if (cached) return cached\n return (fileStats[file] = fileSize(file))\n}\n\nexport function collectPages(\n directories: string[],\n pageExtensions: string[]\n): Promise<string[]> {\n return recursiveReadDirs(\n directories,\n new RegExp(`\\\\.(?:${pageExtensions.join('|')})$`)\n )\n}\n\nexport interface PageInfo {\n isHybridAmp?: boolean\n size: number\n totalSize: number\n static: boolean\n isSsg: boolean\n ssgPageRoutes: string[] | null\n initialRevalidateSeconds: number | false\n}\n\nexport async function printTreeView(\n list: readonly string[],\n pageInfos: Map<string, PageInfo>,\n serverless: boolean,\n {\n distPath,\n buildId,\n pagesDirs,\n pageExtensions,\n buildManifest,\n useStatic404,\n gzipSize = true,\n }: {\n distPath: string\n buildId: string\n pagesDirs: string[]\n pageExtensions: string[]\n buildManifest: BuildManifest\n useStatic404: boolean\n gzipSize?: boolean\n }\n) {\n const getPrettySize = (_size: number): string => {\n const size = prettyBytes(_size)\n // green for 0-130kb\n if (_size < 130 * 1000) return chalk.green(size)\n // yellow for 130-170kb\n if (_size < 170 * 1000) return chalk.yellow(size)\n // red for >= 170kb\n return chalk.red.bold(size)\n }\n\n const getCleanName = (fileName: string) =>\n fileName\n // Trim off `static/`\n .replace(/^static\\//, '')\n // Re-add `static/` for root files\n .replace(/^<buildId>/, 'static')\n // Remove file hash\n .replace(/(?:^|[.-])([0-9a-z]{6})[0-9a-z]{14}(?=\\.)/, '.$1')\n\n const messages: [string, string, string][] = [\n ['Page', 'Size', 'First Load JS'].map((entry) =>\n chalk.underline(entry)\n ) as [string, string, string],\n ]\n\n const hasCustomApp = await findPageFile(pagesDirs, '/_app', pageExtensions)\n\n pageInfos.set('/404', {\n ...(pageInfos.get('/404') || pageInfos.get('/_error')),\n static: useStatic404,\n } as any)\n\n if (!list.includes('/404')) {\n list = [...list, '/404']\n }\n\n const sizeData = await computeFromManifest(\n buildManifest,\n distPath,\n gzipSize,\n pageInfos\n )\n\n const pageList = list\n .slice()\n .filter(\n (e) =>\n !(\n e === '/_document' ||\n e === '/_error' ||\n (!hasCustomApp && e === '/_app')\n )\n )\n .sort((a, b) => a.localeCompare(b))\n\n pageList.forEach((item, i, arr) => {\n const symbol =\n i === 0\n ? arr.length === 1\n ? '─'\n : '┌'\n : i === arr.length - 1\n ? '└'\n : '├'\n\n const pageInfo = pageInfos.get(item)\n const ampFirst = buildManifest.ampFirstPages.includes(item)\n\n messages.push([\n `${symbol} ${\n item === '/_app'\n ? ' '\n : pageInfo?.static\n ? '○'\n : pageInfo?.isSsg\n ? '●'\n : 'λ'\n } ${\n pageInfo?.initialRevalidateSeconds\n ? `${item} (ISR: ${pageInfo?.initialRevalidateSeconds} Seconds)`\n : item\n }`,\n pageInfo\n ? ampFirst\n ? chalk.cyan('AMP')\n : pageInfo.size >= 0\n ? prettyBytes(pageInfo.size)\n : ''\n : '',\n pageInfo\n ? ampFirst\n ? chalk.cyan('AMP')\n : pageInfo.size >= 0\n ? getPrettySize(pageInfo.totalSize)\n : ''\n : '',\n ])\n\n const uniqueCssFiles =\n buildManifest.pages[item]?.filter(\n (file) => file.endsWith('.css') && sizeData.uniqueFiles.includes(file)\n ) || []\n\n if (uniqueCssFiles.length > 0) {\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n uniqueCssFiles.forEach((file, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n messages.push([\n `${contSymbol} ${innerSymbol} ${getCleanName(file)}`,\n prettyBytes(sizeData.sizeUniqueFiles[file]),\n '',\n ])\n })\n }\n\n if (pageInfo?.ssgPageRoutes?.length) {\n const totalRoutes = pageInfo.ssgPageRoutes.length\n const previewPages = totalRoutes === 4 ? 4 : 3\n const contSymbol = i === arr.length - 1 ? ' ' : '├'\n\n const routes = pageInfo.ssgPageRoutes.slice(0, previewPages)\n if (totalRoutes > previewPages) {\n const remaining = totalRoutes - previewPages\n routes.push(`[+${remaining} more paths]`)\n }\n\n routes.forEach((slug, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n messages.push([`${contSymbol} ${innerSymbol} ${slug}`, '', ''])\n })\n }\n })\n\n const sharedFilesSize = sizeData.sizeCommonFiles\n const sharedFiles = sizeData.sizeCommonFile\n\n messages.push([\n '+ First Load JS shared by all',\n getPrettySize(sharedFilesSize),\n '',\n ])\n const sharedFileKeys = Object.keys(sharedFiles)\n const sharedCssFiles: string[] = []\n ;[\n ...sharedFileKeys\n .filter((file) => {\n if (file.endsWith('.css')) {\n sharedCssFiles.push(file)\n return false\n }\n return true\n })\n .map((e) => e.replace(buildId, '<buildId>'))\n .sort(),\n ...sharedCssFiles.map((e) => e.replace(buildId, '<buildId>')).sort(),\n ].forEach((fileName, index, { length }) => {\n const innerSymbol = index === length - 1 ? '└' : '├'\n\n const originalName = fileName.replace('<buildId>', buildId)\n const cleanName = getCleanName(fileName)\n\n messages.push([\n ` ${innerSymbol} ${cleanName}`,\n prettyBytes(sharedFiles[originalName]),\n '',\n ])\n })\n\n console.log(\n textTable(messages, {\n align: ['l', 'l', 'r'],\n stringLength: (str) => stripAnsi(str).length,\n })\n )\n\n console.log()\n console.log(\n textTable(\n [\n [\n 'λ',\n serverless ? '(Lambda)' : '(Server)',\n `server-side renders at runtime (uses ${chalk.cyan(\n 'getInitialProps'\n )} or ${chalk.cyan('getServerSideProps')})`,\n ],\n [\n '○',\n '(Static)',\n 'automatically rendered as static HTML (uses no initial props)',\n ],\n [\n '●',\n '(SSG)',\n `automatically generated as static HTML + JSON (uses ${chalk.cyan(\n 'getStaticProps'\n )})`,\n ],\n [\n '',\n '(ISR)',\n `incremental static regeneration (uses revalidate in ${chalk.cyan(\n 'getStaticProps'\n )})`,\n ],\n ] as [string, string, string][],\n {\n align: ['l', 'l', 'l'],\n stringLength: (str) => stripAnsi(str).length,\n }\n )\n )\n\n console.log()\n}\n\nexport function printCustomRoutes({\n redirects,\n rewrites,\n headers,\n}: CustomRoutes) {\n const printRoutes = (\n routes: Redirect[] | Rewrite[] | Header[],\n type: 'Redirects' | 'Rewrites' | 'Headers'\n ) => {\n const isRedirects = type === 'Redirects'\n const isHeaders = type === 'Headers'\n console.log(chalk.underline(type))\n console.log()\n\n /*\n ┌ source\n ├ permanent/statusCode\n └ destination\n */\n const routesStr = (routes as any[])\n .map((route: { source: string }) => {\n let routeStr = `┌ source: ${route.source}\\n`\n\n if (!isHeaders) {\n const r = route as Rewrite\n routeStr += `${isRedirects ? '├' : '└'} destination: ${\n r.destination\n }\\n`\n }\n if (isRedirects) {\n const r = route as Redirect\n routeStr += `└ ${\n r.statusCode\n ? `status: ${r.statusCode}`\n : `permanent: ${r.permanent}`\n }\\n`\n }\n\n if (isHeaders) {\n const r = route as Header\n routeStr += `└ headers:\\n`\n\n for (let i = 0; i < r.headers.length; i++) {\n const header = r.headers[i]\n const last = i === headers.length - 1\n\n routeStr += ` ${last ? '└' : '├'} ${header.key}: ${header.value}\\n`\n }\n }\n\n return routeStr\n })\n .join('\\n')\n\n console.log(routesStr, '\\n')\n }\n\n if (redirects.length) {\n printRoutes(redirects, 'Redirects')\n }\n if (headers.length) {\n printRoutes(headers, 'Headers')\n }\n\n const combinedRewrites = [\n ...rewrites.beforeFiles,\n ...rewrites.afterFiles,\n ...rewrites.fallback,\n ]\n if (combinedRewrites.length) {\n printRoutes(combinedRewrites, 'Rewrites')\n }\n}\n\ntype ComputeManifestShape = {\n commonFiles: string[]\n uniqueFiles: string[]\n sizeUniqueFiles: { [file: string]: number }\n sizeCommonFile: { [file: string]: number }\n sizeCommonFiles: number\n}\n\nlet cachedBuildManifest: BuildManifest | undefined\n\nlet lastCompute: ComputeManifestShape | undefined\nlet lastComputePageInfo: boolean | undefined\n\nexport async function computeFromManifest(\n manifest: BuildManifest,\n distPath: string,\n gzipSize: boolean = true,\n pageInfos?: Map<string, PageInfo>\n): Promise<ComputeManifestShape> {\n if (\n Object.is(cachedBuildManifest, manifest) &&\n lastComputePageInfo === !!pageInfos\n ) {\n return lastCompute!\n }\n\n let expected = 0\n const files = new Map<string, number>()\n Object.keys(manifest.pages).forEach((key) => {\n if (pageInfos) {\n const pageInfo = pageInfos.get(key)\n // don't include AMP pages since they don't rely on shared bundles\n // AMP First pages are not under the pageInfos key\n if (pageInfo?.isHybridAmp) {\n return\n }\n }\n\n ++expected\n manifest.pages[key].forEach((file) => {\n if (key === '/_app') {\n files.set(file, Infinity)\n } else if (files.has(file)) {\n files.set(file, files.get(file)! + 1)\n } else {\n files.set(file, 1)\n }\n })\n })\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n\n const commonFiles = [...files.entries()]\n .filter(([, len]) => len === expected || len === Infinity)\n .map(([f]) => f)\n const uniqueFiles = [...files.entries()]\n .filter(([, len]) => len === 1)\n .map(([f]) => f)\n\n let stats: [string, number][]\n try {\n stats = await Promise.all(\n commonFiles.map(\n async (f) =>\n [f, await getSize(path.join(distPath, f))] as [string, number]\n )\n )\n } catch (_) {\n stats = []\n }\n\n let uniqueStats: [string, number][]\n try {\n uniqueStats = await Promise.all(\n uniqueFiles.map(\n async (f) =>\n [f, await getSize(path.join(distPath, f))] as [string, number]\n )\n )\n } catch (_) {\n uniqueStats = []\n }\n\n lastCompute = {\n commonFiles,\n uniqueFiles,\n sizeUniqueFiles: uniqueStats.reduce(\n (obj, n) => Object.assign(obj, { [n[0]]: n[1] }),\n {}\n ),\n sizeCommonFile: stats.reduce(\n (obj, n) => Object.assign(obj, { [n[0]]: n[1] }),\n {}\n ),\n sizeCommonFiles: stats.reduce((size, [f, stat]) => {\n if (f.endsWith('.css')) return size\n return size + stat\n }, 0),\n }\n\n cachedBuildManifest = manifest\n lastComputePageInfo = !!pageInfos\n return lastCompute!\n}\n\nexport function difference<T>(main: T[] | Set<T>, sub: T[] | Set<T>): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...a].filter((x) => !b.has(x))\n}\n\nfunction intersect<T>(main: T[], sub: T[]): T[] {\n const a = new Set(main)\n const b = new Set(sub)\n return [...new Set([...a].filter((x) => b.has(x)))]\n}\n\nfunction sum(a: number[]): number {\n return a.reduce((size, stat) => size + stat, 0)\n}\n\nexport async function getJsPageSizeInKb(\n page: string,\n distPath: string,\n buildManifest: BuildManifest,\n gzipSize: boolean = true,\n computedManifestData?: ComputeManifestShape\n): Promise<[number, number]> {\n const data =\n computedManifestData ||\n (await computeFromManifest(buildManifest, distPath, gzipSize))\n\n const fnFilterJs = (entry: string) => entry.endsWith('.js')\n\n const pageFiles = (\n buildManifest.pages[denormalizePagePath(page)] || []\n ).filter(fnFilterJs)\n const appFiles = (buildManifest.pages['/_app'] || []).filter(fnFilterJs)\n\n const fnMapRealPath = (dep: string) => `${distPath}/${dep}`\n\n const allFilesReal = [...new Set([...pageFiles, ...appFiles])].map(\n fnMapRealPath\n )\n const selfFilesReal = difference(\n intersect(pageFiles, data.uniqueFiles),\n data.commonFiles\n ).map(fnMapRealPath)\n\n const getSize = gzipSize ? fsStatGzip : fsStat\n\n try {\n // Doesn't use `Promise.all`, as we'd double compute duplicate files. This\n // function is memoized, so the second one will instantly resolve.\n const allFilesSize = sum(await Promise.all(allFilesReal.map(getSize)))\n const selfFilesSize = sum(await Promise.all(selfFilesReal.map(getSize)))\n\n return [selfFilesSize, allFilesSize]\n } catch (_) {}\n return [-1, -1]\n}\n\nexport async function buildStaticPaths(\n page: string,\n getStaticPaths: GetStaticPaths,\n locales?: string[],\n defaultLocale?: string\n): Promise<\n Omit<UnwrapPromise<ReturnType<GetStaticPaths>>, 'paths'> & {\n paths: string[]\n encodedPaths: string[]\n }\n> {\n const prerenderPaths = new Set<string>()\n const encodedPrerenderPaths = new Set<string>()\n const _routeRegex = getRouteRegex(page)\n const _routeMatcher = getRouteMatcher(_routeRegex)\n\n // Get the default list of allowed params.\n const _validParamKeys = Object.keys(_routeMatcher(page))\n\n const staticPathsResult = await getStaticPaths({ locales, defaultLocale })\n\n const expectedReturnVal =\n `Expected: { paths: [], fallback: boolean }\\n` +\n `See here for more info: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`\n\n if (\n !staticPathsResult ||\n typeof staticPathsResult !== 'object' ||\n Array.isArray(staticPathsResult)\n ) {\n throw new Error(\n `Invalid value returned from getStaticPaths in ${page}. Received ${typeof staticPathsResult} ${expectedReturnVal}`\n )\n }\n\n const invalidStaticPathKeys = Object.keys(staticPathsResult).filter(\n (key) => !(key === 'paths' || key === 'fallback')\n )\n\n if (invalidStaticPathKeys.length > 0) {\n throw new Error(\n `Extra keys returned from getStaticPaths in ${page} (${invalidStaticPathKeys.join(\n ', '\n )}) ${expectedReturnVal}`\n )\n }\n\n if (\n !(\n typeof staticPathsResult.fallback === 'boolean' ||\n staticPathsResult.fallback === 'blocking'\n )\n ) {\n throw new Error(\n `The \\`fallback\\` key must be returned from getStaticPaths in ${page}.\\n` +\n expectedReturnVal\n )\n }\n\n const toPrerender = staticPathsResult.paths\n\n if (!Array.isArray(toPrerender)) {\n throw new Error(\n `Invalid \\`paths\\` value returned from getStaticPaths in ${page}.\\n` +\n `\\`paths\\` must be an array of strings or objects of shape { params: [key: string]: string }`\n )\n }\n\n toPrerender.forEach((entry) => {\n // For a string-provided path, we must make sure it matches the dynamic\n // route.\n if (typeof entry === 'string') {\n entry = removePathTrailingSlash(entry)\n\n const localePathResult = normalizeLocalePath(entry, locales)\n let cleanedEntry = entry\n\n if (localePathResult.detectedLocale) {\n cleanedEntry = entry.substr(localePathResult.detectedLocale.length + 1)\n } else if (defaultLocale) {\n entry = `/${defaultLocale}${entry}`\n }\n\n const result = _routeMatcher(cleanedEntry)\n if (!result) {\n throw new Error(\n `The provided path \\`${cleanedEntry}\\` does not match the page: \\`${page}\\`.`\n )\n }\n\n // If leveraging the string paths variant the entry should already be\n // encoded so we decode the segments ensuring we only escape path\n // delimiters\n prerenderPaths.add(\n entry\n .split('/')\n .map((segment) =>\n escapePathDelimiters(decodeURIComponent(segment), true)\n )\n .join('/')\n )\n encodedPrerenderPaths.add(entry)\n }\n // For the object-provided path, we must make sure it specifies all\n // required keys.\n else {\n const invalidKeys = Object.keys(entry).filter(\n (key) => key !== 'params' && key !== 'locale'\n )\n\n if (invalidKeys.length) {\n throw new Error(\n `Additional keys were returned from \\`getStaticPaths\\` in page \"${page}\". ` +\n `URL Parameters intended for this dynamic route must be nested under the \\`params\\` key, i.e.:` +\n `\\n\\n\\treturn { params: { ${_validParamKeys\n .map((k) => `${k}: ...`)\n .join(', ')} } }` +\n `\\n\\nKeys that need to be moved: ${invalidKeys.join(', ')}.\\n`\n )\n }\n\n const { params = {} } = entry\n let builtPage = page\n let encodedBuiltPage = page\n\n _validParamKeys.forEach((validParamKey) => {\n const { repeat, optional } = _routeRegex.groups[validParamKey]\n let paramValue = params[validParamKey]\n if (\n optional &&\n params.hasOwnProperty(validParamKey) &&\n (paramValue === null ||\n paramValue === undefined ||\n (paramValue as any) === false)\n ) {\n paramValue = []\n }\n if (\n (repeat && !Array.isArray(paramValue)) ||\n (!repeat && typeof paramValue !== 'string')\n ) {\n throw new Error(\n `A required parameter (${validParamKey}) was not provided as ${\n repeat ? 'an array' : 'a string'\n } in getStaticPaths for ${page}`\n )\n }\n let replaced = `[${repeat ? '...' : ''}${validParamKey}]`\n if (optional) {\n replaced = `[${replaced}]`\n }\n builtPage = builtPage\n .replace(\n replaced,\n repeat\n ? (paramValue as string[])\n .map((segment) => escapePathDelimiters(segment, true))\n .join('/')\n : escapePathDelimiters(paramValue as string, true)\n )\n .replace(/(?!^)\\/$/, '')\n\n encodedBuiltPage = encodedBuiltPage\n .replace(\n replaced,\n repeat\n ? (paramValue as string[]).map(encodeURIComponent).join('/')\n : encodeURIComponent(paramValue as string)\n )\n .replace(/(?!^)\\/$/, '')\n })\n\n if (entry.locale && !locales?.includes(entry.locale)) {\n throw new Error(\n `Invalid locale returned from getStaticPaths for ${page}, the locale ${entry.locale} is not specified in next.config.js`\n )\n }\n const curLocale = entry.locale || defaultLocale || ''\n\n prerenderPaths.add(\n `${curLocale ? `/${curLocale}` : ''}${\n curLocale && builtPage === '/' ? '' : builtPage\n }`\n )\n encodedPrerenderPaths.add(\n `${curLocale ? `/${curLocale}` : ''}${\n curLocale && encodedBuiltPage === '/' ? '' : encodedBuiltPage\n }`\n )\n }\n })\n\n return {\n paths: [...prerenderPaths],\n fallback: staticPathsResult.fallback,\n encodedPaths: [...encodedPrerenderPaths],\n }\n}\n\nexport async function isPageStatic(\n page: string,\n distDir: string,\n serverless: boolean,\n runtimeEnvConfig: any,\n locales?: string[],\n defaultLocale?: string,\n parentId?: any\n): Promise<{\n isStatic?: boolean\n isAmpOnly?: boolean\n isHybridAmp?: boolean\n hasServerProps?: boolean\n hasStaticProps?: boolean\n prerenderRoutes?: string[]\n encodedPrerenderRoutes?: string[]\n prerenderFallback?: boolean | 'blocking'\n isNextImageImported?: boolean\n}> {\n const isPageStaticSpan = trace('is-page-static-utils', parentId)\n return isPageStaticSpan.traceAsyncFn(async () => {\n try {\n require('../next-server/lib/runtime-config').setConfig(runtimeEnvConfig)\n const components = await loadComponents(distDir, page, serverless)\n const mod = components.ComponentMod\n const Comp = mod.default || mod\n\n if (!Comp || !isValidElementType(Comp) || typeof Comp === 'string') {\n throw new Error('INVALID_DEFAULT_EXPORT')\n }\n\n const hasGetInitialProps = !!(Comp as any).getInitialProps\n const hasStaticProps = !!(await mod.getStaticProps)\n const hasStaticPaths = !!(await mod.getStaticPaths)\n const hasServerProps = !!(await mod.getServerSideProps)\n const hasLegacyServerProps = !!(await mod.unstable_getServerProps)\n const hasLegacyStaticProps = !!(await mod.unstable_getStaticProps)\n const hasLegacyStaticPaths = !!(await mod.unstable_getStaticPaths)\n const hasLegacyStaticParams = !!(await mod.unstable_getStaticParams)\n\n if (hasLegacyStaticParams) {\n throw new Error(\n `unstable_getStaticParams was replaced with getStaticPaths. Please update your code.`\n )\n }\n\n if (hasLegacyStaticPaths) {\n throw new Error(\n `unstable_getStaticPaths was replaced with getStaticPaths. Please update your code.`\n )\n }\n\n if (hasLegacyStaticProps) {\n throw new Error(\n `unstable_getStaticProps was replaced with getStaticProps. Please update your code.`\n )\n }\n\n if (hasLegacyServerProps) {\n throw new Error(\n `unstable_getServerProps was replaced with getServerSideProps. Please update your code.`\n )\n }\n\n // A page cannot be prerendered _and_ define a data requirement. That's\n // contradictory!\n if (hasGetInitialProps && hasStaticProps) {\n throw new Error(SSG_GET_INITIAL_PROPS_CONFLICT)\n }\n\n if (hasGetInitialProps && hasServerProps) {\n throw new Error(SERVER_PROPS_GET_INIT_PROPS_CONFLICT)\n }\n\n if (hasStaticProps && hasServerProps) {\n throw new Error(SERVER_PROPS_SSG_CONFLICT)\n }\n\n const pageIsDynamic = isDynamicRoute(page)\n // A page cannot have static parameters if it is not a dynamic page.\n if (hasStaticProps && hasStaticPaths && !pageIsDynamic) {\n throw new Error(\n `getStaticPaths can only be used with dynamic pages, not '${page}'.` +\n `\\nLearn more: https://nextjs.org/docs/routing/dynamic-routes`\n )\n }\n\n if (hasStaticProps && pageIsDynamic && !hasStaticPaths) {\n throw new Error(\n `getStaticPaths is required for dynamic SSG pages and is missing for '${page}'.` +\n `\\nRead more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`\n )\n }\n\n let prerenderRoutes: Array<string> | undefined\n let encodedPrerenderRoutes: Array<string> | undefined\n let prerenderFallback: boolean | 'blocking' | undefined\n if (hasStaticProps && hasStaticPaths) {\n ;({\n paths: prerenderRoutes,\n fallback: prerenderFallback,\n encodedPaths: encodedPrerenderRoutes,\n } = await buildStaticPaths(\n page,\n mod.getStaticPaths,\n locales,\n defaultLocale\n ))\n }\n\n const isNextImageImported = (global as any).__NEXT_IMAGE_IMPORTED\n const config = mod.config || {}\n return {\n isStatic: !hasStaticProps && !hasGetInitialProps && !hasServerProps,\n isHybridAmp: config.amp === 'hybrid',\n isAmpOnly: config.amp === true,\n prerenderRoutes,\n prerenderFallback,\n encodedPrerenderRoutes,\n hasStaticProps,\n hasServerProps,\n isNextImageImported,\n }\n } catch (err) {\n if (err.code === 'MODULE_NOT_FOUND') return {}\n throw err\n }\n })\n}\n\nexport async function hasCustomGetInitialProps(\n page: string,\n distDir: string,\n isLikeServerless: boolean,\n runtimeEnvConfig: any,\n checkingApp: boolean\n): Promise<boolean> {\n require('../next-server/lib/runtime-config').setConfig(runtimeEnvConfig)\n\n const components = await loadComponents(distDir, page, isLikeServerless)\n let mod = components.ComponentMod\n\n if (checkingApp) {\n mod = (await mod._app) || mod.default || mod\n } else {\n mod = mod.default || mod\n }\n mod = await mod\n return mod.getInitialProps !== mod.origGetInitialProps\n}\n\nexport async function getNamedExports(\n page: string,\n distDir: string,\n isLikeServerless: boolean,\n runtimeEnvConfig: any\n): Promise<Array<string>> {\n require('../next-server/lib/runtime-config').setConfig(runtimeEnvConfig)\n const components = await loadComponents(distDir, page, isLikeServerless)\n let mod = components.ComponentMod\n\n return Object.keys(mod)\n}\n\nexport function detectConflictingPaths(\n combinedPages: string[],\n ssgPages: Set<string>,\n additionalSsgPaths: Map<string, string[]>\n) {\n const conflictingPaths = new Map<\n string,\n Array<{\n path: string\n page: string\n }>\n >()\n\n const dynamicSsgPages = [...ssgPages].filter((page) => isDynamicRoute(page))\n\n additionalSsgPaths.forEach((paths, pathsPage) => {\n paths.forEach((curPath) => {\n const lowerPath = curPath.toLowerCase()\n let conflictingPage = combinedPages.find(\n (page) => page.toLowerCase() === lowerPath\n )\n\n if (conflictingPage) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPage, page: conflictingPage },\n ])\n } else {\n let conflictingPath: string | undefined\n\n conflictingPage = dynamicSsgPages.find((page) => {\n if (page === pathsPage) return false\n\n conflictingPath = additionalSsgPaths\n .get(page)\n ?.find((compPath) => compPath.toLowerCase() === lowerPath)\n return conflictingPath\n })\n\n if (conflictingPage && conflictingPath) {\n conflictingPaths.set(lowerPath, [\n { path: curPath, page: pathsPage },\n { path: conflictingPath, page: conflictingPage },\n ])\n }\n }\n })\n })\n\n if (conflictingPaths.size > 0) {\n let conflictingPathsOutput = ''\n\n conflictingPaths.forEach((pathItems) => {\n pathItems.forEach((pathItem, idx) => {\n const isDynamic = pathItem.page !== pathItem.path\n\n if (idx > 0) {\n conflictingPathsOutput += 'conflicts with '\n }\n\n conflictingPathsOutput += `path: \"${pathItem.path}\"${\n isDynamic ? ` from page: \"${pathItem.page}\" ` : ' '\n }`\n })\n conflictingPathsOutput += '\\n'\n })\n\n Log.error(\n 'Conflicting paths returned from getStaticPaths, paths must unique per page.\\n' +\n 'See more info here: https://nextjs.org/docs/messages/conflicting-ssg-paths\\n\\n' +\n conflictingPathsOutput\n )\n process.exit(1)\n }\n}\n\nexport function getCssFilePaths(buildManifest: BuildManifest): string[] {\n const cssFiles = new Set<string>()\n Object.values(buildManifest.pages).forEach((files) => {\n files.forEach((file) => {\n if (file.endsWith('.css')) {\n cssFiles.add(file)\n }\n })\n })\n\n return [...cssFiles]\n}\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/build/webpack-config.d.ts b/node_modules/next/dist/build/webpack-config.d.ts | |
index ff9a394..e591632 100644 | |
--- a/node_modules/next/dist/build/webpack-config.d.ts | |
+++ b/node_modules/next/dist/build/webpack-config.d.ts | |
@@ -3,12 +3,12 @@ import { CustomRoutes } from '../lib/load-custom-routes.js'; | |
import { NextConfig } from '../next-server/server/config'; | |
import { WebpackEntrypoints } from './entries'; | |
export declare function attachReactRefresh(webpackConfig: webpack.Configuration, targetLoader: webpack.RuleSetUseItem): void; | |
-export default function getBaseWebpackConfig(dir: string, { buildId, config, dev, isServer, pagesDir, target, reactProductionProfiling, entrypoints, rewrites, isDevFallback, }: { | |
+export default function getBaseWebpackConfig(dir: string, { buildId, config, dev, isServer, pagesDirs, target, reactProductionProfiling, entrypoints, rewrites, isDevFallback, }: { | |
buildId: string; | |
config: NextConfig; | |
dev?: boolean; | |
isServer?: boolean; | |
- pagesDir: string; | |
+ pagesDirs: string[]; | |
target?: string; | |
reactProductionProfiling?: boolean; | |
entrypoints: WebpackEntrypoints; | |
diff --git a/node_modules/next/dist/build/webpack-config.js b/node_modules/next/dist/build/webpack-config.js | |
index 0f0bd3a..46b8683 100644 | |
--- a/node_modules/next/dist/build/webpack-config.js | |
+++ b/node_modules/next/dist/build/webpack-config.js | |
@@ -9,10 +9,10 @@ rule.use.splice(idx,0,reactRefreshLoader);}});if(injections){Log.info(`automatic | |
// between ESM and CJS in a package | |
// Otherwise combined ESM+CJS packages will never be external | |
// as resolving mismatch would lead to opt-out from being external. | |
-dependencyType:'commonjs',symlinks:true};const NODE_RESOLVE_OPTIONS={dependencyType:'commonjs',modules:['node_modules'],alias:false,fallback:false,exportsFields:['exports'],importsFields:['imports'],conditionNames:['node','require','module'],descriptionFiles:['package.json'],extensions:['.js','.json','.node'],enforceExtensions:false,symlinks:true,mainFields:['main'],mainFiles:['index'],roots:[],fullySpecified:false,preferRelative:false,preferAbsolute:false,restrictions:[]};async function getBaseWebpackConfig(dir,{buildId,config,dev=false,isServer=false,pagesDir,target='server',reactProductionProfiling=false,entrypoints,rewrites,isDevFallback=false}){var _semver$coerce,_jsConfig,_jsConfig$compilerOpt,_config$conformance,_config$conformance$D,_config$i18n,_jsConfig2,_jsConfig2$compilerOp,_webpackConfig$module2,_webpackConfig$module3,_webpackConfig$module4;const hasRewrites=rewrites.beforeFiles.length>0||rewrites.afterFiles.length>0||rewrites.fallback.length>0;const hasReactRefresh=dev&&!isServer;const reactDomVersion=await(0,_getPackageVersion.getPackageVersion)({cwd:dir,name:'react-dom'});const hasReact18=Boolean(reactDomVersion)&&(_semver.default.gte(reactDomVersion,'18.0.0')||((_semver$coerce=_semver.default.coerce(reactDomVersion))==null?void 0:_semver$coerce.version)==='18.0.0');const hasReactPrerelease=Boolean(reactDomVersion)&&_semver.default.prerelease(reactDomVersion)!=null;const hasReactRoot=config.experimental.reactRoot||hasReact18;// Only inform during one of the builds | |
+dependencyType:'commonjs',symlinks:true};const NODE_RESOLVE_OPTIONS={dependencyType:'commonjs',modules:['node_modules'],alias:false,fallback:false,exportsFields:['exports'],importsFields:['imports'],conditionNames:['node','require','module'],descriptionFiles:['package.json'],extensions:['.js','.json','.node'],enforceExtensions:false,symlinks:true,mainFields:['main'],mainFiles:['index'],roots:[],fullySpecified:false,preferRelative:false,preferAbsolute:false,restrictions:[]};async function getBaseWebpackConfig(dir,{buildId,config,dev=false,isServer=false,pagesDirs,target='server',reactProductionProfiling=false,entrypoints,rewrites,isDevFallback=false}){var _semver$coerce,_jsConfig,_jsConfig$compilerOpt,_config$conformance,_config$conformance$D,_config$i18n,_jsConfig2,_jsConfig2$compilerOp,_webpackConfig$module2,_webpackConfig$module3,_webpackConfig$module4;const hasRewrites=rewrites.beforeFiles.length>0||rewrites.afterFiles.length>0||rewrites.fallback.length>0;const hasReactRefresh=dev&&!isServer;const reactDomVersion=await(0,_getPackageVersion.getPackageVersion)({cwd:dir,name:'react-dom'});const hasReact18=Boolean(reactDomVersion)&&(_semver.default.gte(reactDomVersion,'18.0.0')||((_semver$coerce=_semver.default.coerce(reactDomVersion))==null?void 0:_semver$coerce.version)==='18.0.0');const hasReactPrerelease=Boolean(reactDomVersion)&&_semver.default.prerelease(reactDomVersion)!=null;const hasReactRoot=config.experimental.reactRoot||hasReact18;// Only inform during one of the builds | |
if(!isServer){if(hasReactRoot){Log.info('Using the createRoot API for React');}if(hasReactPrerelease){Log.warn(`You are using an unsupported prerelease of 'react-dom' which may cause `+`unexpected or broken application behavior. Continue at your own risk.`);}}const babelConfigFile=await['.babelrc','.babelrc.json','.babelrc.js','.babelrc.mjs','.babelrc.cjs','babel.config.js','babel.config.json','babel.config.mjs','babel.config.cjs'].reduce(async(memo,filename)=>{const configFilePath=_path.default.join(dir,filename);return(await memo)||((await(0,_fileExists.fileExists)(configFilePath))?configFilePath:undefined);},Promise.resolve(undefined));const distDir=_path.default.join(dir,config.distDir);// Webpack 5 can use the faster babel loader, webpack 5 has built-in caching for loaders | |
// For webpack 4 the old loader is used as it has external caching | |
-const babelLoader=_webpack.isWebpack5?require.resolve('./babel/loader/index'):'next-babel-loader';const defaultLoaders={babel:{loader:babelLoader,options:{configFile:babelConfigFile,isServer,distDir,pagesDir,cwd:dir,// Webpack 5 has a built-in loader cache | |
+const babelLoader=_webpack.isWebpack5?require.resolve('./babel/loader/index'):'next-babel-loader';const defaultLoaders={babel:{loader:babelLoader,options:{configFile:babelConfigFile,isServer,distDir,pagesDirs,cwd:dir,// Webpack 5 has a built-in loader cache | |
cache:!_webpack.isWebpack5,development:dev,hasReactRefresh,hasJsxRuntime:true}},// Backwards compat | |
hotSelfAccept:{loader:'noop-loader'}};const babelIncludeRegexes=[/next[\\/]dist[\\/]next-server[\\/]lib/,/next[\\/]dist[\\/]client/,/next[\\/]dist[\\/]pages/,/[\\/](strip-ansi|ansi-regex)[\\/]/];// Support for NODE_PATH | |
const nodePathList=(process.env.NODE_PATH||'').split(process.platform==='win32'?';':':').filter(p=>!!p);const isServerless=target==='serverless';const isServerlessTrace=target==='experimental-serverless-trace';// Intentionally not using isTargetLikeServerless helper | |
@@ -20,7 +20,7 @@ const isLikeServerless=isServerless||isServerlessTrace;const outputDir=isLikeSer | |
'main.js':[],...(dev?{[_constants2.CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH]:require.resolve(`@next/react-refresh-utils/runtime`),[_constants2.CLIENT_STATIC_FILES_RUNTIME_AMP]:`./`+(0,_path.relative)(dir,(0,_path.join)(_constants.NEXT_PROJECT_ROOT_DIST_CLIENT,'dev','amp-dev')).replace(/\\/g,'/')}:{}),[_constants2.CLIENT_STATIC_FILES_RUNTIME_MAIN]:`./`+_path.default.relative(dir,_path.default.join(_constants.NEXT_PROJECT_ROOT_DIST_CLIENT,dev?`next-dev.js`:'next.js')).replace(/\\/g,'/'),[_constants2.CLIENT_STATIC_FILES_RUNTIME_POLYFILLS]:_path.default.join(_constants.NEXT_PROJECT_ROOT_DIST_CLIENT,'polyfills.js')}:undefined;let typeScriptPath;try{typeScriptPath=require.resolve('typescript',{paths:[dir]});}catch(_){}const tsConfigPath=_path.default.join(dir,'tsconfig.json');const useTypeScript=Boolean(typeScriptPath&&(await(0,_fileExists.fileExists)(tsConfigPath)));let jsConfig;// jsconfig is a subset of tsconfig | |
if(useTypeScript){const ts=await Promise.resolve(`${typeScriptPath}`).then(s=>_interopRequireWildcard(require(s)));const tsConfig=await(0,_getTypeScriptConfiguration.getTypeScriptConfiguration)(ts,tsConfigPath,true);jsConfig={compilerOptions:tsConfig.options};}const jsConfigPath=_path.default.join(dir,'jsconfig.json');if(!useTypeScript&&(await(0,_fileExists.fileExists)(jsConfigPath))){jsConfig=parseJsonFile(jsConfigPath);}let resolvedBaseUrl;if((_jsConfig=jsConfig)!=null&&(_jsConfig$compilerOpt=_jsConfig.compilerOptions)!=null&&_jsConfig$compilerOpt.baseUrl){resolvedBaseUrl=_path.default.resolve(dir,jsConfig.compilerOptions.baseUrl);}function getReactProfilingInProduction(){if(reactProductionProfiling){return{'react-dom$':'react-dom/profiling','scheduler/tracing':'scheduler/tracing-profiling'};}}const clientResolveRewrites=require.resolve('../next-server/lib/router/utils/resolve-rewrites');const clientResolveRewritesNoop=require.resolve('../next-server/lib/router/utils/resolve-rewrites-noop');const resolveConfig={// Disable .mjs for node_modules bundling | |
extensions:isServer?['.js','.mjs',...(useTypeScript?['.tsx','.ts']:[]),'.jsx','.json','.wasm']:['.mjs','.js',...(useTypeScript?['.tsx','.ts']:[]),'.jsx','.json','.wasm'],modules:['node_modules',...nodePathList// Support for NODE_PATH environment variable | |
-],alias:{next:_constants.NEXT_PROJECT_ROOT,[_constants.PAGES_DIR_ALIAS]:pagesDir,[_constants.DOT_NEXT_ALIAS]:distDir,...getOptimizedAliases(isServer),...getReactProfilingInProduction(),[clientResolveRewrites]:hasRewrites?clientResolveRewrites:// With webpack 5 an alias can be pointed to false to noop | |
+],alias:{next:_constants.NEXT_PROJECT_ROOT,[_constants.PAGES_DIR_ALIAS]:pagesDirs,[_constants.DOT_NEXT_ALIAS]:distDir,...getOptimizedAliases(isServer),...getReactProfilingInProduction(),[clientResolveRewrites]:hasRewrites?clientResolveRewrites:// With webpack 5 an alias can be pointed to false to noop | |
_webpack.isWebpack5?false:clientResolveRewritesNoop},...(_webpack.isWebpack5&&!isServer?{// Full list of old polyfills is accessible here: | |
// https://github.com/webpack/webpack/blob/2a0536cf510768111a3a6dceeb14cb79b9f59273/lib/ModuleNotFoundError.js#L13-L42 | |
fallback:{assert:require.resolve('assert/'),buffer:require.resolve('buffer/'),constants:require.resolve('constants-browserify'),crypto:require.resolve('crypto-browserify'),domain:require.resolve('domain-browser'),http:require.resolve('stream-http'),https:require.resolve('https-browserify'),os:require.resolve('os-browserify/browser'),path:require.resolve('path-browserify'),punycode:require.resolve('punycode'),process:require.resolve('process/browser'),// Handled in separate alias | |
@@ -44,7 +44,7 @@ chunks:_webpack.isWebpack5?chunk=>!/^(polyfills|main|pages\/_app)$/.test(chunk.n | |
test:/(?<!node_modules.*)[\\/]node_modules[\\/](react|react-dom|scheduler|prop-types|use-subscription)[\\/]/,priority:40,// Don't let webpack eliminate this chunk (prevents this chunk from | |
// becoming a part of the commons chunk) | |
enforce:true},lib:{test(module){return module.size()>160000&&/node_modules[/\\]/.test(module.nameForCondition()||'');},name(module){const hash=_crypto.default.createHash('sha1');if(isModuleCSS(module)){module.updateHash(hash);}else{if(!module.libIdent){throw new Error(`Encountered unknown module type: ${module.type}. Please open an issue.`);}hash.update(module.libIdent({context:dir}));}return hash.digest('hex').substring(0,8);},priority:30,minChunks:1,reuseExistingChunk:true},commons:{name:'commons',minChunks:totalPages,priority:20},...(_webpack.isWebpack5?undefined:{default:false,vendors:false,shared:{name(module,chunks){return _crypto.default.createHash('sha1').update(chunks.reduce((acc,chunk)=>{return acc+chunk.name;},'')).digest('hex')+(isModuleCSS(module)?'_CSS':'');},priority:10,minChunks:2,reuseExistingChunk:true}})},maxInitialRequests:25,minSize:20000}};// Select appropriate SplitChunksPlugin config for this build | |
-let splitChunksConfig;if(dev){splitChunksConfig=_webpack.isWebpack5?false:splitChunksConfigs.dev;}else{splitChunksConfig=splitChunksConfigs.prodGranular;}const crossOrigin=config.crossOrigin;let customAppFile=await(0,_findPageFile.findPageFile)(pagesDir,'/_app',config.pageExtensions);if(customAppFile){customAppFile=_path.default.resolve(_path.default.join(pagesDir,customAppFile));}const conformanceConfig=Object.assign({ReactSyncScriptsConformanceCheck:{enabled:true},MinificationConformanceCheck:{enabled:true},DuplicatePolyfillsConformanceCheck:{enabled:true,BlockedAPIToBePolyfilled:Object.assign([],['fetch'],((_config$conformance=config.conformance)==null?void 0:(_config$conformance$D=_config$conformance.DuplicatePolyfillsConformanceCheck)==null?void 0:_config$conformance$D.BlockedAPIToBePolyfilled)||[])},GranularChunksConformanceCheck:{enabled:true}},config.conformance);async function handleExternals(context,request,getResolve){// We need to externalize internal requests for files intended to | |
+let splitChunksConfig;if(dev){splitChunksConfig=_webpack.isWebpack5?false:splitChunksConfigs.dev;}else{splitChunksConfig=splitChunksConfigs.prodGranular;}const crossOrigin=config.crossOrigin;let customApp=await(0,_findPageFile.findPageFile)(pagesDirs,'/_app',config.pageExtensions);let customAppFile=null;if(customApp){customAppFile=_path.default.resolve(_path.default.join(customApp.pageBase,customApp.pagePath));}const conformanceConfig=Object.assign({ReactSyncScriptsConformanceCheck:{enabled:true},MinificationConformanceCheck:{enabled:true},DuplicatePolyfillsConformanceCheck:{enabled:true,BlockedAPIToBePolyfilled:Object.assign([],['fetch'],((_config$conformance=config.conformance)==null?void 0:(_config$conformance$D=_config$conformance.DuplicatePolyfillsConformanceCheck)==null?void 0:_config$conformance$D.BlockedAPIToBePolyfilled)||[])},GranularChunksConformanceCheck:{enabled:true}},config.conformance);async function handleExternals(context,request,getResolve){// We need to externalize internal requests for files intended to | |
// not be bundled. | |
const isLocal=request.startsWith('.')||// Always check for unix-style path, as webpack sometimes | |
// normalizes as posix. | |
@@ -108,7 +108,9 @@ emacsLockfilePattern]},output:{...(_webpack.isWebpack5?{environment:{arrowFuncti | |
// auto which doesn't work in IE11 | |
publicPath:`${config.assetPrefix||''}/_next/`,path:isServer&&_webpack.isWebpack5&&!dev?_path.default.join(outputPath,'chunks'):outputPath,// On the server we don't use hashes | |
filename:isServer?_webpack.isWebpack5&&!dev?'../[name].js':'[name].js':`static/chunks/${isDevFallback?'fallback/':''}[name]${dev?'':_webpack.isWebpack5?'-[contenthash]':'-[chunkhash]'}.js`,library:isServer?undefined:'_N_E',libraryTarget:isServer?'commonjs2':'assign',hotUpdateChunkFilename:_webpack.isWebpack5?'static/webpack/[id].[fullhash].hot-update.js':'static/webpack/[id].[hash].hot-update.js',hotUpdateMainFilename:_webpack.isWebpack5?'static/webpack/[fullhash].[runtime].hot-update.json':'static/webpack/[hash].hot-update.json',// This saves chunks with the name given via `import()` | |
-chunkFilename:isServer?'[name].js':`static/chunks/${isDevFallback?'fallback/':''}${dev?'[name]':'[name].[contenthash]'}.js`,strictModuleExceptionHandling:true,crossOriginLoading:crossOrigin,futureEmitAssets:!dev,webassemblyModuleFilename:'static/wasm/[modulehash].wasm'},performance:false,resolve:resolveConfig,resolveLoader:{// The loaders Next.js provides | |
+chunkFilename:isServer?'[name].js':`static/chunks/${isDevFallback?'fallback/':''}${dev?'[name]':'[name].[contenthash]'}.js`,strictModuleExceptionHandling:true,crossOriginLoading:crossOrigin,futureEmitAssets:!dev,webassemblyModuleFilename:'static/wasm/[modulehash].wasm'},performance:false,// TODO: fix this | |
+// @ts-ignore | |
+resolve:resolveConfig,resolveLoader:{// The loaders Next.js provides | |
alias:['emit-file-loader','error-loader','next-babel-loader','next-client-pages-loader','next-image-loader','next-serverless-loader','noop-loader','next-style-loader'].reduce((alias,loader)=>{// using multiple aliases to replace `resolveLoader.modules` | |
alias[loader]=_path.default.join(__dirname,'webpack','loaders',loader);return alias;},{}),modules:['node_modules',...nodePathList// Support for NODE_PATH environment variable | |
],plugins:_webpack.isWebpack5?[]:[require('pnp-webpack-plugin')]},module:{rules:[...(_webpack.isWebpack5?[// TODO: FIXME: do NOT webpack 5 support with this | |
@@ -133,7 +135,7 @@ domains:config.images.domains}:{})}),'process.env.__NEXT_ROUTER_BASEPATH':JSON.s | |
return target[prop] | |
} | |
}) | |
- `}:{})}),!isServer&&new _reactLoadablePlugin.ReactLoadablePlugin({filename:_constants2.REACT_LOADABLE_MANIFEST,pagesDir}),!isServer&&new _nextDropClientPagePlugin.DropClientPage(),// Moment.js is an extremely popular library that bundles large locale files | |
+ `}:{})}),!isServer&&new _reactLoadablePlugin.ReactLoadablePlugin({filename:_constants2.REACT_LOADABLE_MANIFEST,pagesDirs}),!isServer&&new _nextDropClientPagePlugin.DropClientPage(),// Moment.js is an extremely popular library that bundles large locale files | |
// by default due to how Webpack interprets its code. This is a practical | |
// solution that requires the user to opt into importing specific locales. | |
// https://github.com/jmblog/how-to-optimize-momentjs-with-webpack | |
diff --git a/node_modules/next/dist/build/webpack-config.js.map b/node_modules/next/dist/build/webpack-config.js.map | |
index e0a8c4c..0071d82 100644 | |
--- a/node_modules/next/dist/build/webpack-config.js.map | |
+++ b/node_modules/next/dist/build/webpack-config.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"sources":["../../build/webpack-config.ts"],"names":["devtoolRevertWarning","devtool","console","warn","chalk","yellow","bold","parseJsonFile","filePath","JSON5","require","contents","trim","parse","err","codeFrame","String","start","line","lineNumber","column","columnNumber","message","highlightCode","Error","getOptimizedAliases","isServer","stubWindowFetch","path","join","__dirname","stubObjectAssign","shimAssign","Object","assign","unfetch$","url","resolve","attachReactRefresh","webpackConfig","targetLoader","injections","reactRefreshLoaderName","reactRefreshLoader","module","rules","forEach","rule","curr","use","Array","isArray","some","r","idx","findIndex","splice","Log","info","WEBPACK_RESOLVE_OPTIONS","dependencyType","symlinks","NODE_RESOLVE_OPTIONS","modules","alias","fallback","exportsFields","importsFields","conditionNames","descriptionFiles","extensions","enforceExtensions","mainFields","mainFiles","roots","fullySpecified","preferRelative","preferAbsolute","restrictions","getBaseWebpackConfig","dir","buildId","config","dev","pagesDir","target","reactProductionProfiling","entrypoints","rewrites","isDevFallback","hasRewrites","beforeFiles","length","afterFiles","hasReactRefresh","reactDomVersion","cwd","name","hasReact18","Boolean","semver","gte","coerce","version","hasReactPrerelease","prerelease","hasReactRoot","experimental","reactRoot","babelConfigFile","reduce","memo","filename","configFilePath","undefined","Promise","distDir","babelLoader","isWebpack5","defaultLoaders","babel","loader","options","configFile","cache","development","hasJsxRuntime","hotSelfAccept","babelIncludeRegexes","nodePathList","process","env","NODE_PATH","split","platform","filter","p","isServerless","isServerlessTrace","isLikeServerless","outputDir","SERVERLESS_DIRECTORY","SERVER_DIRECTORY","outputPath","totalPages","keys","clientEntries","CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH","CLIENT_STATIC_FILES_RUNTIME_AMP","NEXT_PROJECT_ROOT_DIST_CLIENT","replace","CLIENT_STATIC_FILES_RUNTIME_MAIN","relative","CLIENT_STATIC_FILES_RUNTIME_POLYFILLS","typeScriptPath","paths","_","tsConfigPath","useTypeScript","jsConfig","ts","tsConfig","compilerOptions","jsConfigPath","resolvedBaseUrl","baseUrl","getReactProfilingInProduction","clientResolveRewrites","clientResolveRewritesNoop","resolveConfig","next","NEXT_PROJECT_ROOT","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","assert","buffer","constants","crypto","domain","http","https","os","punycode","querystring","stream","string_decoder","sys","timers","tty","util","vm","zlib","plugins","terserOptions","ecma","compress","warnings","comparisons","inline","mangle","safari10","output","comments","ascii_only","isModuleCSS","type","splitChunksConfigs","cacheGroups","default","vendors","prodGranular","chunks","chunk","test","framework","priority","enforce","lib","size","nameForCondition","hash","createHash","updateHash","libIdent","update","context","digest","substring","minChunks","reuseExistingChunk","commons","shared","acc","maxInitialRequests","minSize","splitChunksConfig","crossOrigin","customAppFile","pageExtensions","conformanceConfig","ReactSyncScriptsConformanceCheck","enabled","MinificationConformanceCheck","DuplicatePolyfillsConformanceCheck","BlockedAPIToBePolyfilled","conformance","GranularChunksConformanceCheck","handleExternals","request","getResolve","isLocal","startsWith","posix","isAbsolute","win32","notExternalModules","res","isNextExternal","externalRequest","baseRes","baseResolve","match","emacsLockfilePattern","externals","callback","resolveContext","requestToResolve","then","result","optimizeCss","optimization","emitOnErrors","noEmitOnErrors","checkWasmTypes","nodeEnv","splitChunks","runtimeChunk","CLIENT_STATIC_FILES_RUNTIME_WEBPACK","minimize","minimizer","compiler","TerserPlugin","cacheDir","parallel","cpus","apply","CssMinimizerPlugin","postcssOptions","map","annotation","node","setImmediate","entry","watchOptions","aggregateTimeout","ignored","environment","arrowFunction","bigIntLiteral","const","destructuring","dynamicImport","forOf","publicPath","assetPrefix","library","libraryTarget","hotUpdateChunkFilename","hotUpdateMainFilename","chunkFilename","strictModuleExceptionHandling","crossOriginLoading","futureEmitAssets","webassemblyModuleFilename","performance","resolveLoader","externalDir","include","exclude","excludePath","ReactRefreshWebpackPlugin","webpack","ProvidePlugin","Buffer","ChunkNamesPlugin","DefinePlugin","prev","key","JSON","stringify","__NEXT_TEST_MODE","trailingSlash","devIndicators","buildActivity","reactStrictMode","optimizeFonts","optimizeImages","scrollRestoration","deviceSizes","images","imageSizes","domains","basePath","i18n","analyticsId","pageEnv","ReactLoadablePlugin","REACT_LOADABLE_MANIFEST","DropClientPage","excludeDefaultMomentLocales","IgnorePlugin","resourceRegExp","contextRegExp","NextJsRequireCacheHotReloader","devPlugins","push","HotModuleReplacementPlugin","HashedModuleIdsPlugin","ServerlessPlugin","PagesManifestPlugin","serverless","NextJsSSRModuleCachePlugin","NextJsSsrImportPlugin","BuildManifestPlugin","stats","BuildStatsPlugin","ProfilingPlugin","FontStylesheetGatheringPlugin","WebpackConformancePlugin","tests","AllowedSources","allowedSources","WellKnownErrorsPlugin","unshift","JsConfigPathsPlugin","dependencies","snapshot","versions","pnp","exec","managedPaths","immutablePaths","providedExports","usedExports","configVars","reactMode","disableOptimizedLoading","__NEXT_VERSION","cacheDirectory","buildDependencies","NEXT_WEBPACK_LOGGING","logInfra","includes","logProfileClient","logProfileServer","logDefault","infrastructureLogging","level","debug","hooks","done","tap","log","toString","colors","logging","ProgressPlugin","profile","rootDirectory","isDevelopment","sassOptions","productionBrowserSourceMaps","future","isCraCompat","craCompat","originalDevtool","disableStaticImages","hasSvg","RegExp","dependency","not","issuer","regexLikeCss","fileLoaderExclude","fileLoader","generator","topRules","innerRules","oneOf","resource","webpackDevMiddleware","canMatchCss","fileNames","input","hasUserCssConfig","__next_css_remove","e","strictPostcssConfiguration","foundTsRule","call","isSass","source","isLess","isCss","isStylus","prototype","hasOwnProperty","correctNextCss","correctCssLoader","originalEntry","updatedEntry","originalFile","dependOn","old","import"],"mappings":"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","sourcesContent":["import ReactRefreshWebpackPlugin from '@next/react-refresh-utils/ReactRefreshWebpackPlugin'\nimport chalk from 'chalk'\nimport crypto from 'crypto'\nimport { readFileSync } from 'fs'\nimport { codeFrameColumns } from 'next/dist/compiled/babel/code-frame'\nimport semver from 'next/dist/compiled/semver'\nimport { isWebpack5, webpack } from 'next/dist/compiled/webpack/webpack'\nimport path, { join as pathJoin, relative as relativePath } from 'path'\nimport {\n DOT_NEXT_ALIAS,\n NEXT_PROJECT_ROOT,\n NEXT_PROJECT_ROOT_DIST_CLIENT,\n PAGES_DIR_ALIAS,\n} from '../lib/constants'\nimport { fileExists } from '../lib/file-exists'\nimport { getPackageVersion } from '../lib/get-package-version'\nimport { CustomRoutes } from '../lib/load-custom-routes.js'\nimport { getTypeScriptConfiguration } from '../lib/typescript/getTypeScriptConfiguration'\nimport {\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK,\n REACT_LOADABLE_MANIFEST,\n SERVERLESS_DIRECTORY,\n SERVER_DIRECTORY,\n} from '../next-server/lib/constants'\nimport { execOnce } from '../next-server/lib/utils'\nimport { NextConfig } from '../next-server/server/config'\nimport { findPageFile } from '../server/lib/find-page-file'\nimport { WebpackEntrypoints } from './entries'\nimport * as Log from './output/log'\nimport { build as buildConfiguration } from './webpack/config'\nimport { __overrideCssConfiguration } from './webpack/config/blocks/css/overrideCssConfiguration'\nimport BuildManifestPlugin from './webpack/plugins/build-manifest-plugin'\nimport BuildStatsPlugin from './webpack/plugins/build-stats-plugin'\nimport ChunkNamesPlugin from './webpack/plugins/chunk-names-plugin'\nimport { JsConfigPathsPlugin } from './webpack/plugins/jsconfig-paths-plugin'\nimport { DropClientPage } from './webpack/plugins/next-drop-client-page-plugin'\nimport NextJsSsrImportPlugin from './webpack/plugins/nextjs-ssr-import'\nimport NextJsSSRModuleCachePlugin from './webpack/plugins/nextjs-ssr-module-cache'\nimport PagesManifestPlugin from './webpack/plugins/pages-manifest-plugin'\nimport { ProfilingPlugin } from './webpack/plugins/profiling-plugin'\nimport { ReactLoadablePlugin } from './webpack/plugins/react-loadable-plugin'\nimport { ServerlessPlugin } from './webpack/plugins/serverless-plugin'\nimport WebpackConformancePlugin, {\n DuplicatePolyfillsConformanceCheck,\n GranularChunksConformanceCheck,\n MinificationConformanceCheck,\n ReactSyncScriptsConformanceCheck,\n} from './webpack/plugins/webpack-conformance-plugin'\nimport { WellKnownErrorsPlugin } from './webpack/plugins/wellknown-errors-plugin'\nimport { regexLikeCss } from './webpack/config/blocks/css'\n\ntype ExcludesFalse = <T>(x: T | false) => x is T\n\nconst devtoolRevertWarning = execOnce(\n (devtool: webpack.Configuration['devtool']) => {\n console.warn(\n chalk.yellow.bold('Warning: ') +\n chalk.bold(`Reverting webpack devtool to '${devtool}'.\\n`) +\n 'Changing the webpack devtool in development mode will cause severe performance regressions.\\n' +\n 'Read more: https://nextjs.org/docs/messages/improper-devtool'\n )\n }\n)\n\nfunction parseJsonFile(filePath: string) {\n const JSON5 = require('next/dist/compiled/json5')\n const contents = readFileSync(filePath, 'utf8')\n\n // Special case an empty file\n if (contents.trim() === '') {\n return {}\n }\n\n try {\n return JSON5.parse(contents)\n } catch (err) {\n const codeFrame = codeFrameColumns(\n String(contents),\n { start: { line: err.lineNumber, column: err.columnNumber } },\n { message: err.message, highlightCode: true }\n )\n throw new Error(`Failed to parse \"${filePath}\":\\n${codeFrame}`)\n }\n}\n\nfunction getOptimizedAliases(isServer: boolean): { [pkg: string]: string } {\n if (isServer) {\n return {}\n }\n\n const stubWindowFetch = path.join(__dirname, 'polyfills', 'fetch', 'index.js')\n const stubObjectAssign = path.join(__dirname, 'polyfills', 'object-assign.js')\n\n const shimAssign = path.join(__dirname, 'polyfills', 'object.assign')\n return Object.assign(\n {},\n {\n unfetch$: stubWindowFetch,\n 'isomorphic-unfetch$': stubWindowFetch,\n 'whatwg-fetch$': path.join(\n __dirname,\n 'polyfills',\n 'fetch',\n 'whatwg-fetch.js'\n ),\n },\n {\n 'object-assign$': stubObjectAssign,\n\n // Stub Package: object.assign\n 'object.assign/auto': path.join(shimAssign, 'auto.js'),\n 'object.assign/implementation': path.join(\n shimAssign,\n 'implementation.js'\n ),\n 'object.assign$': path.join(shimAssign, 'index.js'),\n 'object.assign/polyfill': path.join(shimAssign, 'polyfill.js'),\n 'object.assign/shim': path.join(shimAssign, 'shim.js'),\n\n // Replace: full URL polyfill with platform-based polyfill\n url: require.resolve('native-url'),\n }\n )\n}\n\ntype ClientEntries = {\n [key: string]: string | string[]\n}\n\nexport function attachReactRefresh(\n webpackConfig: webpack.Configuration,\n targetLoader: webpack.RuleSetUseItem\n) {\n let injections = 0\n const reactRefreshLoaderName = '@next/react-refresh-utils/loader'\n const reactRefreshLoader = require.resolve(reactRefreshLoaderName)\n webpackConfig.module?.rules.forEach((rule) => {\n const curr = rule.use\n // When the user has configured `defaultLoaders.babel` for a input file:\n if (curr === targetLoader) {\n ++injections\n rule.use = [reactRefreshLoader, curr as webpack.RuleSetUseItem]\n } else if (\n Array.isArray(curr) &&\n curr.some((r) => r === targetLoader) &&\n // Check if loader already exists:\n !curr.some(\n (r) => r === reactRefreshLoader || r === reactRefreshLoaderName\n )\n ) {\n ++injections\n const idx = curr.findIndex((r) => r === targetLoader)\n // Clone to not mutate user input\n rule.use = [...curr]\n\n // inject / input: [other, babel] output: [other, refresh, babel]:\n rule.use.splice(idx, 0, reactRefreshLoader)\n }\n })\n\n if (injections) {\n Log.info(\n `automatically enabled Fast Refresh for ${injections} custom loader${\n injections > 1 ? 's' : ''\n }`\n )\n }\n}\n\nconst WEBPACK_RESOLVE_OPTIONS = {\n // This always uses commonjs resolving, assuming API is identical\n // between ESM and CJS in a package\n // Otherwise combined ESM+CJS packages will never be external\n // as resolving mismatch would lead to opt-out from being external.\n dependencyType: 'commonjs',\n symlinks: true,\n}\n\nconst NODE_RESOLVE_OPTIONS = {\n dependencyType: 'commonjs',\n modules: ['node_modules'],\n alias: false,\n fallback: false,\n exportsFields: ['exports'],\n importsFields: ['imports'],\n conditionNames: ['node', 'require', 'module'],\n descriptionFiles: ['package.json'],\n extensions: ['.js', '.json', '.node'],\n enforceExtensions: false,\n symlinks: true,\n mainFields: ['main'],\n mainFiles: ['index'],\n roots: [],\n fullySpecified: false,\n preferRelative: false,\n preferAbsolute: false,\n restrictions: [],\n}\n\nexport default async function getBaseWebpackConfig(\n dir: string,\n {\n buildId,\n config,\n dev = false,\n isServer = false,\n pagesDir,\n target = 'server',\n reactProductionProfiling = false,\n entrypoints,\n rewrites,\n isDevFallback = false,\n }: {\n buildId: string\n config: NextConfig\n dev?: boolean\n isServer?: boolean\n pagesDir: string\n target?: string\n reactProductionProfiling?: boolean\n entrypoints: WebpackEntrypoints\n rewrites: CustomRoutes['rewrites']\n isDevFallback?: boolean\n }\n): Promise<webpack.Configuration> {\n const hasRewrites =\n rewrites.beforeFiles.length > 0 ||\n rewrites.afterFiles.length > 0 ||\n rewrites.fallback.length > 0\n const hasReactRefresh: boolean = dev && !isServer\n const reactDomVersion = await getPackageVersion({\n cwd: dir,\n name: 'react-dom',\n })\n const hasReact18: boolean =\n Boolean(reactDomVersion) &&\n (semver.gte(reactDomVersion!, '18.0.0') ||\n semver.coerce(reactDomVersion)?.version === '18.0.0')\n const hasReactPrerelease =\n Boolean(reactDomVersion) && semver.prerelease(reactDomVersion!) != null\n const hasReactRoot: boolean = config.experimental.reactRoot || hasReact18\n\n // Only inform during one of the builds\n if (!isServer) {\n if (hasReactRoot) {\n Log.info('Using the createRoot API for React')\n }\n if (hasReactPrerelease) {\n Log.warn(\n `You are using an unsupported prerelease of 'react-dom' which may cause ` +\n `unexpected or broken application behavior. Continue at your own risk.`\n )\n }\n }\n\n const babelConfigFile = await [\n '.babelrc',\n '.babelrc.json',\n '.babelrc.js',\n '.babelrc.mjs',\n '.babelrc.cjs',\n 'babel.config.js',\n 'babel.config.json',\n 'babel.config.mjs',\n 'babel.config.cjs',\n ].reduce(async (memo: Promise<string | undefined>, filename) => {\n const configFilePath = path.join(dir, filename)\n return (\n (await memo) ||\n ((await fileExists(configFilePath)) ? configFilePath : undefined)\n )\n }, Promise.resolve(undefined))\n\n const distDir = path.join(dir, config.distDir)\n\n // Webpack 5 can use the faster babel loader, webpack 5 has built-in caching for loaders\n // For webpack 4 the old loader is used as it has external caching\n const babelLoader = isWebpack5\n ? require.resolve('./babel/loader/index')\n : 'next-babel-loader'\n const defaultLoaders = {\n babel: {\n loader: babelLoader,\n options: {\n configFile: babelConfigFile,\n isServer,\n distDir,\n pagesDir,\n cwd: dir,\n // Webpack 5 has a built-in loader cache\n cache: !isWebpack5,\n development: dev,\n hasReactRefresh,\n hasJsxRuntime: true,\n },\n },\n // Backwards compat\n hotSelfAccept: {\n loader: 'noop-loader',\n },\n }\n\n const babelIncludeRegexes: RegExp[] = [\n /next[\\\\/]dist[\\\\/]next-server[\\\\/]lib/,\n /next[\\\\/]dist[\\\\/]client/,\n /next[\\\\/]dist[\\\\/]pages/,\n /[\\\\/](strip-ansi|ansi-regex)[\\\\/]/,\n ]\n\n // Support for NODE_PATH\n const nodePathList = (process.env.NODE_PATH || '')\n .split(process.platform === 'win32' ? ';' : ':')\n .filter((p) => !!p)\n\n const isServerless = target === 'serverless'\n const isServerlessTrace = target === 'experimental-serverless-trace'\n // Intentionally not using isTargetLikeServerless helper\n const isLikeServerless = isServerless || isServerlessTrace\n\n const outputDir = isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY\n const outputPath = path.join(distDir, isServer ? outputDir : '')\n const totalPages = Object.keys(entrypoints).length\n const clientEntries = !isServer\n ? ({\n // Backwards compatibility\n 'main.js': [],\n ...(dev\n ? {\n [CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH]: require.resolve(\n `@next/react-refresh-utils/runtime`\n ),\n [CLIENT_STATIC_FILES_RUNTIME_AMP]:\n `./` +\n relativePath(\n dir,\n pathJoin(NEXT_PROJECT_ROOT_DIST_CLIENT, 'dev', 'amp-dev')\n ).replace(/\\\\/g, '/'),\n }\n : {}),\n [CLIENT_STATIC_FILES_RUNTIME_MAIN]:\n `./` +\n path\n .relative(\n dir,\n path.join(\n NEXT_PROJECT_ROOT_DIST_CLIENT,\n dev ? `next-dev.js` : 'next.js'\n )\n )\n .replace(/\\\\/g, '/'),\n [CLIENT_STATIC_FILES_RUNTIME_POLYFILLS]: path.join(\n NEXT_PROJECT_ROOT_DIST_CLIENT,\n 'polyfills.js'\n ),\n } as ClientEntries)\n : undefined\n\n let typeScriptPath: string | undefined\n try {\n typeScriptPath = require.resolve('typescript', { paths: [dir] })\n } catch (_) {}\n const tsConfigPath = path.join(dir, 'tsconfig.json')\n const useTypeScript = Boolean(\n typeScriptPath && (await fileExists(tsConfigPath))\n )\n\n let jsConfig\n // jsconfig is a subset of tsconfig\n if (useTypeScript) {\n const ts = (await import(typeScriptPath!)) as typeof import('typescript')\n const tsConfig = await getTypeScriptConfiguration(ts, tsConfigPath, true)\n jsConfig = { compilerOptions: tsConfig.options }\n }\n\n const jsConfigPath = path.join(dir, 'jsconfig.json')\n if (!useTypeScript && (await fileExists(jsConfigPath))) {\n jsConfig = parseJsonFile(jsConfigPath)\n }\n\n let resolvedBaseUrl\n if (jsConfig?.compilerOptions?.baseUrl) {\n resolvedBaseUrl = path.resolve(dir, jsConfig.compilerOptions.baseUrl)\n }\n\n function getReactProfilingInProduction() {\n if (reactProductionProfiling) {\n return {\n 'react-dom$': 'react-dom/profiling',\n 'scheduler/tracing': 'scheduler/tracing-profiling',\n }\n }\n }\n\n const clientResolveRewrites = require.resolve(\n '../next-server/lib/router/utils/resolve-rewrites'\n )\n const clientResolveRewritesNoop = require.resolve(\n '../next-server/lib/router/utils/resolve-rewrites-noop'\n )\n\n const resolveConfig = {\n // Disable .mjs for node_modules bundling\n extensions: isServer\n ? [\n '.js',\n '.mjs',\n ...(useTypeScript ? ['.tsx', '.ts'] : []),\n '.jsx',\n '.json',\n '.wasm',\n ]\n : [\n '.mjs',\n '.js',\n ...(useTypeScript ? ['.tsx', '.ts'] : []),\n '.jsx',\n '.json',\n '.wasm',\n ],\n modules: [\n 'node_modules',\n ...nodePathList, // Support for NODE_PATH environment variable\n ],\n alias: {\n next: NEXT_PROJECT_ROOT,\n [PAGES_DIR_ALIAS]: pagesDir,\n [DOT_NEXT_ALIAS]: distDir,\n ...getOptimizedAliases(isServer),\n ...getReactProfilingInProduction(),\n [clientResolveRewrites]: hasRewrites\n ? clientResolveRewrites\n : // With webpack 5 an alias can be pointed to false to noop\n isWebpack5\n ? false\n : clientResolveRewritesNoop,\n },\n ...(isWebpack5 && !isServer\n ? {\n // Full list of old polyfills is accessible here:\n // https://github.com/webpack/webpack/blob/2a0536cf510768111a3a6dceeb14cb79b9f59273/lib/ModuleNotFoundError.js#L13-L42\n fallback: {\n assert: require.resolve('assert/'),\n buffer: require.resolve('buffer/'),\n constants: require.resolve('constants-browserify'),\n crypto: require.resolve('crypto-browserify'),\n domain: require.resolve('domain-browser'),\n http: require.resolve('stream-http'),\n https: require.resolve('https-browserify'),\n os: require.resolve('os-browserify/browser'),\n path: require.resolve('path-browserify'),\n punycode: require.resolve('punycode'),\n process: require.resolve('process/browser'),\n // Handled in separate alias\n querystring: require.resolve('querystring-es3'),\n stream: require.resolve('stream-browserify'),\n string_decoder: require.resolve('string_decoder'),\n sys: require.resolve('util/'),\n timers: require.resolve('timers-browserify'),\n tty: require.resolve('tty-browserify'),\n // Handled in separate alias\n // url: require.resolve('url/'),\n util: require.resolve('util/'),\n vm: require.resolve('vm-browserify'),\n zlib: require.resolve('browserify-zlib'),\n },\n }\n : undefined),\n mainFields: isServer ? ['main', 'module'] : ['browser', 'module', 'main'],\n plugins: isWebpack5\n ? // webpack 5+ has the PnP resolver built-in by default:\n []\n : [require('pnp-webpack-plugin')],\n }\n\n const terserOptions: any = {\n parse: {\n ecma: 8,\n },\n compress: {\n ecma: 5,\n warnings: false,\n // The following two options are known to break valid JavaScript code\n comparisons: false,\n inline: 2, // https://github.com/vercel/next.js/issues/7178#issuecomment-493048965\n },\n mangle: { safari10: true },\n output: {\n ecma: 5,\n safari10: true,\n comments: false,\n // Fixes usage of Emoji and certain Regex\n ascii_only: true,\n },\n }\n\n const isModuleCSS = (module: { type: string }): boolean => {\n return (\n // mini-css-extract-plugin\n module.type === `css/mini-extract` ||\n // extract-css-chunks-webpack-plugin (old)\n module.type === `css/extract-chunks` ||\n // extract-css-chunks-webpack-plugin (new)\n module.type === `css/extract-css-chunks`\n )\n }\n\n // Contains various versions of the Webpack SplitChunksPlugin used in different build types\n const splitChunksConfigs: {\n [propName: string]: webpack.Options.SplitChunksOptions | false\n } = {\n dev: {\n cacheGroups: {\n default: false,\n vendors: false,\n },\n },\n prodGranular: {\n // Keep main and _app chunks unsplitted in webpack 5\n // as we don't need a separate vendor chunk from that\n // and all other chunk depend on them so there is no\n // duplication that need to be pulled out.\n chunks: isWebpack5\n ? (chunk) => !/^(polyfills|main|pages\\/_app)$/.test(chunk.name)\n : 'all',\n cacheGroups: {\n framework: {\n chunks: 'all',\n name: 'framework',\n // This regex ignores nested copies of framework libraries so they're\n // bundled with their issuer.\n // https://github.com/vercel/next.js/pull/9012\n test: /(?<!node_modules.*)[\\\\/]node_modules[\\\\/](react|react-dom|scheduler|prop-types|use-subscription)[\\\\/]/,\n priority: 40,\n // Don't let webpack eliminate this chunk (prevents this chunk from\n // becoming a part of the commons chunk)\n enforce: true,\n },\n lib: {\n test(module: {\n size: Function\n nameForCondition: Function\n }): boolean {\n return (\n module.size() > 160000 &&\n /node_modules[/\\\\]/.test(module.nameForCondition() || '')\n )\n },\n name(module: {\n type: string\n libIdent?: Function\n updateHash: (hash: crypto.Hash) => void\n }): string {\n const hash = crypto.createHash('sha1')\n if (isModuleCSS(module)) {\n module.updateHash(hash)\n } else {\n if (!module.libIdent) {\n throw new Error(\n `Encountered unknown module type: ${module.type}. Please open an issue.`\n )\n }\n\n hash.update(module.libIdent({ context: dir }))\n }\n\n return hash.digest('hex').substring(0, 8)\n },\n priority: 30,\n minChunks: 1,\n reuseExistingChunk: true,\n },\n commons: {\n name: 'commons',\n minChunks: totalPages,\n priority: 20,\n },\n ...(isWebpack5\n ? undefined\n : {\n default: false,\n vendors: false,\n shared: {\n name(module, chunks) {\n return (\n crypto\n .createHash('sha1')\n .update(\n chunks.reduce(\n (acc: string, chunk: webpack.compilation.Chunk) => {\n return acc + chunk.name\n },\n ''\n )\n )\n .digest('hex') + (isModuleCSS(module) ? '_CSS' : '')\n )\n },\n priority: 10,\n minChunks: 2,\n reuseExistingChunk: true,\n },\n }),\n },\n maxInitialRequests: 25,\n minSize: 20000,\n },\n }\n\n // Select appropriate SplitChunksPlugin config for this build\n let splitChunksConfig: webpack.Options.SplitChunksOptions | false\n if (dev) {\n splitChunksConfig = isWebpack5 ? false : splitChunksConfigs.dev\n } else {\n splitChunksConfig = splitChunksConfigs.prodGranular\n }\n\n const crossOrigin = config.crossOrigin\n\n let customAppFile: string | null = await findPageFile(\n pagesDir,\n '/_app',\n config.pageExtensions\n )\n if (customAppFile) {\n customAppFile = path.resolve(path.join(pagesDir, customAppFile))\n }\n\n const conformanceConfig = Object.assign(\n {\n ReactSyncScriptsConformanceCheck: {\n enabled: true,\n },\n MinificationConformanceCheck: {\n enabled: true,\n },\n DuplicatePolyfillsConformanceCheck: {\n enabled: true,\n BlockedAPIToBePolyfilled: Object.assign(\n [],\n ['fetch'],\n config.conformance?.DuplicatePolyfillsConformanceCheck\n ?.BlockedAPIToBePolyfilled || []\n ),\n },\n GranularChunksConformanceCheck: {\n enabled: true,\n },\n },\n config.conformance\n )\n\n async function handleExternals(\n context: string,\n request: string,\n getResolve: (\n options: any\n ) => (resolveContext: string, resolveRequest: string) => Promise<string>\n ) {\n // We need to externalize internal requests for files intended to\n // not be bundled.\n\n const isLocal: boolean =\n request.startsWith('.') ||\n // Always check for unix-style path, as webpack sometimes\n // normalizes as posix.\n path.posix.isAbsolute(request) ||\n // When on Windows, we also want to check for Windows-specific\n // absolute paths.\n (process.platform === 'win32' && path.win32.isAbsolute(request))\n\n // Relative requires don't need custom resolution, because they\n // are relative to requests we've already resolved here.\n // Absolute requires (require('/foo')) are extremely uncommon, but\n // also have no need for customization as they're already resolved.\n if (isLocal) {\n if (!/[/\\\\]next-server[/\\\\]/.test(request)) {\n return\n }\n } else {\n if (/^(?:next$|react(?:$|\\/))/.test(request)) {\n return `commonjs ${request}`\n }\n\n const notExternalModules = /^(?:private-next-pages\\/|next\\/(?:dist\\/pages\\/|(?:app|document|link|image|constants)$)|string-hash$)/\n if (notExternalModules.test(request)) {\n return\n }\n }\n\n const resolve = getResolve(WEBPACK_RESOLVE_OPTIONS)\n\n // Resolve the import with the webpack provided context, this\n // ensures we're resolving the correct version when multiple\n // exist.\n let res: string\n try {\n res = await resolve(context, request)\n } catch (err) {\n // If the request cannot be resolved, we need to tell webpack to\n // \"bundle\" it so that webpack shows an error (that it cannot be\n // resolved).\n return\n }\n\n // Same as above, if the request cannot be resolved we need to have\n // webpack \"bundle\" it so it surfaces the not found error.\n if (!res) {\n return\n }\n\n if (isLocal) {\n // we need to process next-server/lib/router/router so that\n // the DefinePlugin can inject process.env values\n const isNextExternal = /next[/\\\\]dist[/\\\\]next-server[/\\\\](?!lib[/\\\\]router[/\\\\]router)/.test(\n res\n )\n\n if (isNextExternal) {\n // Generate Next.js external import\n const externalRequest = path.posix.join(\n 'next',\n 'dist',\n path\n .relative(\n // Root of Next.js package:\n path.join(__dirname, '..'),\n res\n )\n // Windows path normalization\n .replace(/\\\\/g, '/')\n )\n return `commonjs ${externalRequest}`\n } else {\n return\n }\n }\n\n // Bundled Node.js code is relocated without its node_modules tree.\n // This means we need to make sure its request resolves to the same\n // package that'll be available at runtime. If it's not identical,\n // we need to bundle the code (even if it _should_ be external).\n let baseRes: string | null\n try {\n const baseResolve = getResolve(NODE_RESOLVE_OPTIONS)\n baseRes = await baseResolve(dir, request)\n } catch (err) {\n baseRes = null\n }\n\n // Same as above: if the package, when required from the root,\n // would be different from what the real resolution would use, we\n // cannot externalize it.\n // if res or baseRes are symlinks they could point to the the same file,\n // but the resolver will resolve symlinks so this is already handled\n if (baseRes !== res) {\n return\n }\n\n if (\n res.match(\n /next[/\\\\]dist[/\\\\]next-server[/\\\\](?!lib[/\\\\]router[/\\\\]router)/\n )\n ) {\n return `commonjs ${request}`\n }\n\n // Default pages have to be transpiled\n if (\n res.match(/[/\\\\]next[/\\\\]dist[/\\\\]/) ||\n // This is the @babel/plugin-transform-runtime \"helpers: true\" option\n res.match(/node_modules[/\\\\]@babel[/\\\\]runtime[/\\\\]/)\n ) {\n return\n }\n\n // Webpack itself has to be compiled because it doesn't always use module relative paths\n if (\n res.match(/node_modules[/\\\\]webpack/) ||\n res.match(/node_modules[/\\\\]css-loader/)\n ) {\n return\n }\n\n // Anything else that is standard JavaScript within `node_modules`\n // can be externalized.\n if (/node_modules[/\\\\].*\\.c?js$/.test(res)) {\n return `commonjs ${request}`\n }\n\n // Default behavior: bundle the code!\n }\n\n const emacsLockfilePattern = '**/.#*'\n\n let webpackConfig: webpack.Configuration = {\n externals: !isServer\n ? // make sure importing \"next\" is handled gracefully for client\n // bundles in case a user imported types and it wasn't removed\n // TODO: should we warn/error for this instead?\n ['next']\n : !isServerless\n ? [\n isWebpack5\n ? ({\n context,\n request,\n getResolve,\n }: {\n context: string\n request: string\n getResolve: (\n options: any\n ) => (\n resolveContext: string,\n resolveRequest: string\n ) => Promise<string>\n }) => handleExternals(context, request, getResolve)\n : (\n context: string,\n request: string,\n callback: (err?: Error, result?: string | undefined) => void\n ) =>\n handleExternals(\n context,\n request,\n () => (resolveContext: string, requestToResolve: string) =>\n new Promise((resolve) =>\n resolve(\n require.resolve(requestToResolve, {\n paths: [resolveContext],\n })\n )\n )\n ).then((result) => callback(undefined, result), callback),\n ]\n : [\n // When the 'serverless' target is used all node_modules will be compiled into the output bundles\n // So that the 'serverless' bundles have 0 runtime dependencies\n 'next/dist/compiled/@ampproject/toolbox-optimizer', // except this one\n\n // Mark this as external if not enabled so it doesn't cause a\n // webpack error from being missing\n ...(config.experimental.optimizeCss ? [] : ['critters']),\n ],\n optimization: {\n // Webpack 5 uses a new property for the same functionality\n ...(isWebpack5 ? { emitOnErrors: !dev } : { noEmitOnErrors: dev }),\n checkWasmTypes: false,\n nodeEnv: false,\n splitChunks: isServer\n ? isWebpack5 && !dev\n ? ({\n filename: '[name].js',\n // allow to split entrypoints\n chunks: 'all',\n // size of files is not so relevant for server build\n // we want to prefer deduplication to load less code\n minSize: 1000,\n } as any)\n : false\n : splitChunksConfig,\n runtimeChunk: isServer\n ? isWebpack5 && !isLikeServerless\n ? { name: 'webpack-runtime' }\n : undefined\n : { name: CLIENT_STATIC_FILES_RUNTIME_WEBPACK },\n minimize: !(dev || isServer),\n minimizer: [\n // Minify JavaScript\n (compiler: webpack.Compiler) => {\n // @ts-ignore No typings yet\n const {\n TerserPlugin,\n } = require('./webpack/plugins/terser-webpack-plugin/src/index.js')\n new TerserPlugin({\n cacheDir: path.join(distDir, 'cache', 'next-minifier'),\n parallel: config.experimental.cpus,\n terserOptions,\n }).apply(compiler)\n },\n // Minify CSS\n (compiler: webpack.Compiler) => {\n const {\n CssMinimizerPlugin,\n } = require('./webpack/plugins/css-minimizer-plugin')\n new CssMinimizerPlugin({\n postcssOptions: {\n map: {\n // `inline: false` generates the source map in a separate file.\n // Otherwise, the CSS file is needlessly large.\n inline: false,\n // `annotation: false` skips appending the `sourceMappingURL`\n // to the end of the CSS file. Webpack already handles this.\n annotation: false,\n },\n },\n }).apply(compiler)\n },\n ],\n },\n context: dir,\n node: {\n setImmediate: false,\n },\n // Kept as function to be backwards compatible\n // @ts-ignore TODO webpack 5 typings needed\n entry: async () => {\n return {\n ...(clientEntries ? clientEntries : {}),\n ...entrypoints,\n }\n },\n watchOptions: {\n aggregateTimeout: 5,\n ignored: [\n '**/.git/**',\n '**/node_modules/**',\n '**/.next/**',\n // can be removed after https://github.com/paulmillr/chokidar/issues/955 is released\n emacsLockfilePattern,\n ],\n },\n output: {\n ...(isWebpack5\n ? {\n environment: {\n arrowFunction: false,\n bigIntLiteral: false,\n const: false,\n destructuring: false,\n dynamicImport: false,\n forOf: false,\n module: false,\n },\n }\n : {}),\n // we must set publicPath to an empty value to override the default of\n // auto which doesn't work in IE11\n publicPath: `${config.assetPrefix || ''}/_next/`,\n path:\n isServer && isWebpack5 && !dev\n ? path.join(outputPath, 'chunks')\n : outputPath,\n // On the server we don't use hashes\n filename: isServer\n ? isWebpack5 && !dev\n ? '../[name].js'\n : '[name].js'\n : `static/chunks/${isDevFallback ? 'fallback/' : ''}[name]${\n dev ? '' : isWebpack5 ? '-[contenthash]' : '-[chunkhash]'\n }.js`,\n library: isServer ? undefined : '_N_E',\n libraryTarget: isServer ? 'commonjs2' : 'assign',\n hotUpdateChunkFilename: isWebpack5\n ? 'static/webpack/[id].[fullhash].hot-update.js'\n : 'static/webpack/[id].[hash].hot-update.js',\n hotUpdateMainFilename: isWebpack5\n ? 'static/webpack/[fullhash].[runtime].hot-update.json'\n : 'static/webpack/[hash].hot-update.json',\n // This saves chunks with the name given via `import()`\n chunkFilename: isServer\n ? '[name].js'\n : `static/chunks/${isDevFallback ? 'fallback/' : ''}${\n dev ? '[name]' : '[name].[contenthash]'\n }.js`,\n strictModuleExceptionHandling: true,\n crossOriginLoading: crossOrigin,\n futureEmitAssets: !dev,\n webassemblyModuleFilename: 'static/wasm/[modulehash].wasm',\n },\n performance: false,\n resolve: resolveConfig,\n resolveLoader: {\n // The loaders Next.js provides\n alias: [\n 'emit-file-loader',\n 'error-loader',\n 'next-babel-loader',\n 'next-client-pages-loader',\n 'next-image-loader',\n 'next-serverless-loader',\n 'noop-loader',\n 'next-style-loader',\n ].reduce((alias, loader) => {\n // using multiple aliases to replace `resolveLoader.modules`\n alias[loader] = path.join(__dirname, 'webpack', 'loaders', loader)\n\n return alias\n }, {} as Record<string, string>),\n modules: [\n 'node_modules',\n ...nodePathList, // Support for NODE_PATH environment variable\n ],\n plugins: isWebpack5 ? [] : [require('pnp-webpack-plugin')],\n },\n module: {\n rules: [\n ...(isWebpack5\n ? [\n // TODO: FIXME: do NOT webpack 5 support with this\n // x-ref: https://github.com/webpack/webpack/issues/11467\n {\n test: /\\.m?js/,\n resolve: {\n fullySpecified: false,\n },\n } as any,\n ]\n : []),\n {\n test: /\\.(tsx|ts|js|mjs|jsx)$/,\n ...(config.experimental.externalDir\n ? // Allowing importing TS/TSX files from outside of the root dir.\n {}\n : { include: [dir, ...babelIncludeRegexes] }),\n exclude: (excludePath: string) => {\n if (babelIncludeRegexes.some((r) => r.test(excludePath))) {\n return false\n }\n return /node_modules/.test(excludePath)\n },\n use: hasReactRefresh\n ? [\n require.resolve('@next/react-refresh-utils/loader'),\n defaultLoaders.babel,\n ]\n : defaultLoaders.babel,\n },\n ].filter(Boolean),\n },\n plugins: [\n hasReactRefresh && new ReactRefreshWebpackPlugin(webpack),\n // Makes sure `Buffer` and `process` are polyfilled in client-side bundles (same behavior as webpack 4)\n isWebpack5 &&\n !isServer &&\n new webpack.ProvidePlugin({\n Buffer: [require.resolve('buffer'), 'Buffer'],\n process: [require.resolve('process')],\n }),\n // This plugin makes sure `output.filename` is used for entry chunks\n !isWebpack5 && new ChunkNamesPlugin(),\n new webpack.DefinePlugin({\n ...Object.keys(process.env).reduce(\n (prev: { [key: string]: string }, key: string) => {\n if (key.startsWith('NEXT_PUBLIC_')) {\n prev[`process.env.${key}`] = JSON.stringify(process.env[key]!)\n }\n return prev\n },\n {}\n ),\n ...Object.keys(config.env).reduce((acc, key) => {\n if (/^(?:NODE_.+)|^(?:__.+)$/i.test(key)) {\n throw new Error(\n `The key \"${key}\" under \"env\" in next.config.js is not allowed. https://nextjs.org/docs/messages/env-key-not-allowed`\n )\n }\n\n return {\n ...acc,\n [`process.env.${key}`]: JSON.stringify(config.env[key]),\n }\n }, {}),\n // TODO: enforce `NODE_ENV` on `process.env`, and add a test:\n 'process.env.NODE_ENV': JSON.stringify(\n dev ? 'development' : 'production'\n ),\n 'process.env.__NEXT_CROSS_ORIGIN': JSON.stringify(crossOrigin),\n 'process.browser': JSON.stringify(!isServer),\n 'process.env.__NEXT_TEST_MODE': JSON.stringify(\n process.env.__NEXT_TEST_MODE\n ),\n // This is used in client/dev-error-overlay/hot-dev-client.js to replace the dist directory\n ...(dev && !isServer\n ? {\n 'process.env.__NEXT_DIST_DIR': JSON.stringify(distDir),\n }\n : {}),\n 'process.env.__NEXT_TRAILING_SLASH': JSON.stringify(\n config.trailingSlash\n ),\n 'process.env.__NEXT_BUILD_INDICATOR': JSON.stringify(\n config.devIndicators.buildActivity\n ),\n 'process.env.__NEXT_PLUGINS': JSON.stringify(\n config.experimental.plugins\n ),\n 'process.env.__NEXT_STRICT_MODE': JSON.stringify(\n config.reactStrictMode\n ),\n 'process.env.__NEXT_REACT_ROOT': JSON.stringify(hasReactRoot),\n 'process.env.__NEXT_OPTIMIZE_FONTS': JSON.stringify(\n config.optimizeFonts && !dev\n ),\n 'process.env.__NEXT_OPTIMIZE_IMAGES': JSON.stringify(\n config.experimental.optimizeImages\n ),\n 'process.env.__NEXT_OPTIMIZE_CSS': JSON.stringify(\n config.experimental.optimizeCss && !dev\n ),\n 'process.env.__NEXT_SCROLL_RESTORATION': JSON.stringify(\n config.experimental.scrollRestoration\n ),\n 'process.env.__NEXT_IMAGE_OPTS': JSON.stringify({\n deviceSizes: config.images.deviceSizes,\n imageSizes: config.images.imageSizes,\n path: config.images.path,\n loader: config.images.loader,\n ...(dev\n ? {\n // pass domains in development to allow validating on the client\n domains: config.images.domains,\n }\n : {}),\n }),\n 'process.env.__NEXT_ROUTER_BASEPATH': JSON.stringify(config.basePath),\n 'process.env.__NEXT_HAS_REWRITES': JSON.stringify(hasRewrites),\n 'process.env.__NEXT_I18N_SUPPORT': JSON.stringify(!!config.i18n),\n 'process.env.__NEXT_I18N_DOMAINS': JSON.stringify(config.i18n?.domains),\n 'process.env.__NEXT_ANALYTICS_ID': JSON.stringify(config.analyticsId),\n ...(isServer\n ? {\n // Fix bad-actors in the npm ecosystem (e.g. `node-formidable`)\n // This is typically found in unmaintained modules from the\n // pre-webpack era (common in server-side code)\n 'global.GENTLY': JSON.stringify(false),\n }\n : undefined),\n // stub process.env with proxy to warn a missing value is\n // being accessed in development mode\n ...(config.experimental.pageEnv && dev\n ? {\n 'process.env': `\n new Proxy(${isServer ? 'process.env' : '{}'}, {\n get(target, prop) {\n if (typeof target[prop] === 'undefined') {\n console.warn(\\`An environment variable (\\${prop}) that was not provided in the environment was accessed.\\nSee more info here: https://nextjs.org/docs/messages/missing-env-value\\`)\n }\n return target[prop]\n }\n })\n `,\n }\n : {}),\n }),\n !isServer &&\n new ReactLoadablePlugin({\n filename: REACT_LOADABLE_MANIFEST,\n pagesDir,\n }),\n !isServer && new DropClientPage(),\n // Moment.js is an extremely popular library that bundles large locale files\n // by default due to how Webpack interprets its code. This is a practical\n // solution that requires the user to opt into importing specific locales.\n // https://github.com/jmblog/how-to-optimize-momentjs-with-webpack\n config.excludeDefaultMomentLocales &&\n new webpack.IgnorePlugin({\n resourceRegExp: /^\\.\\/locale$/,\n contextRegExp: /moment$/,\n }),\n ...(dev\n ? (() => {\n // Even though require.cache is server only we have to clear assets from both compilations\n // This is because the client compilation generates the build manifest that's used on the server side\n const {\n NextJsRequireCacheHotReloader,\n } = require('./webpack/plugins/nextjs-require-cache-hot-reloader')\n const devPlugins = [new NextJsRequireCacheHotReloader()]\n\n if (!isServer) {\n devPlugins.push(new webpack.HotModuleReplacementPlugin())\n }\n\n return devPlugins\n })()\n : []),\n // Webpack 5 no longer requires this plugin in production:\n !isWebpack5 && !dev && new webpack.HashedModuleIdsPlugin(),\n !dev &&\n new webpack.IgnorePlugin({\n resourceRegExp: /react-is/,\n contextRegExp: /(next-server|next)[\\\\/]dist[\\\\/]/,\n }),\n isServerless && isServer && new ServerlessPlugin(),\n isServer &&\n new PagesManifestPlugin({ serverless: isLikeServerless, dev }),\n !isWebpack5 &&\n target === 'server' &&\n isServer &&\n new NextJsSSRModuleCachePlugin({ outputPath }),\n isServer && new NextJsSsrImportPlugin(),\n !isServer &&\n new BuildManifestPlugin({\n buildId,\n rewrites,\n isDevFallback,\n }),\n !dev &&\n !isServer &&\n config.experimental.stats &&\n new BuildStatsPlugin({\n distDir,\n }),\n new ProfilingPlugin(),\n config.optimizeFonts &&\n !dev &&\n isServer &&\n (function () {\n const {\n FontStylesheetGatheringPlugin,\n } = require('./webpack/plugins/font-stylesheet-gathering-plugin') as {\n FontStylesheetGatheringPlugin: typeof import('./webpack/plugins/font-stylesheet-gathering-plugin').FontStylesheetGatheringPlugin\n }\n return new FontStylesheetGatheringPlugin({\n isLikeServerless,\n })\n })(),\n config.experimental.conformance &&\n !isWebpack5 &&\n !dev &&\n new WebpackConformancePlugin({\n tests: [\n !isServer &&\n conformanceConfig.MinificationConformanceCheck.enabled &&\n new MinificationConformanceCheck(),\n conformanceConfig.ReactSyncScriptsConformanceCheck.enabled &&\n new ReactSyncScriptsConformanceCheck({\n AllowedSources:\n conformanceConfig.ReactSyncScriptsConformanceCheck\n .allowedSources || [],\n }),\n !isServer &&\n conformanceConfig.DuplicatePolyfillsConformanceCheck.enabled &&\n new DuplicatePolyfillsConformanceCheck({\n BlockedAPIToBePolyfilled:\n conformanceConfig.DuplicatePolyfillsConformanceCheck\n .BlockedAPIToBePolyfilled,\n }),\n !isServer &&\n conformanceConfig.GranularChunksConformanceCheck.enabled &&\n new GranularChunksConformanceCheck(\n splitChunksConfigs.prodGranular\n ),\n ].filter(Boolean),\n }),\n new WellKnownErrorsPlugin(),\n ].filter((Boolean as any) as ExcludesFalse),\n }\n\n // Support tsconfig and jsconfig baseUrl\n if (resolvedBaseUrl) {\n webpackConfig.resolve?.modules?.push(resolvedBaseUrl)\n }\n\n if (jsConfig?.compilerOptions?.paths && resolvedBaseUrl) {\n webpackConfig.resolve?.plugins?.unshift(\n new JsConfigPathsPlugin(jsConfig.compilerOptions.paths, resolvedBaseUrl)\n )\n }\n\n if (isWebpack5) {\n // futureEmitAssets is on by default in webpack 5\n delete webpackConfig.output?.futureEmitAssets\n\n if (isServer && dev) {\n // Enable building of client compilation before server compilation in development\n // @ts-ignore dependencies exists\n webpackConfig.dependencies = ['client']\n }\n // webpack 5 no longer polyfills Node.js modules:\n if (webpackConfig.node) delete webpackConfig.node.setImmediate\n\n // Due to bundling of webpack the default values can't be correctly detected\n // This restores the webpack defaults\n // @ts-ignore webpack 5\n webpackConfig.snapshot = {}\n if (process.versions.pnp === '3') {\n const match = /^(.+?)[\\\\/]cache[\\\\/]jest-worker-npm-[^\\\\/]+\\.zip[\\\\/]node_modules[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.managedPaths = [\n path.resolve(match[1], 'unplugged'),\n ]\n }\n } else {\n const match = /^(.+?[\\\\/]node_modules)[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.managedPaths = [match[1]]\n }\n }\n if (process.versions.pnp === '1') {\n const match = /^(.+?[\\\\/]v4)[\\\\/]npm-jest-worker-[^\\\\/]+-[\\da-f]{40}[\\\\/]node_modules[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.immutablePaths = [match[1]]\n }\n } else if (process.versions.pnp === '3') {\n const match = /^(.+?)[\\\\/]jest-worker-npm-[^\\\\/]+\\.zip[\\\\/]node_modules[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.immutablePaths = [match[1]]\n }\n }\n\n if (dev) {\n if (!webpackConfig.optimization) {\n webpackConfig.optimization = {}\n }\n webpackConfig.optimization.providedExports = false\n webpackConfig.optimization.usedExports = false\n }\n\n const configVars = JSON.stringify({\n crossOrigin: config.crossOrigin,\n pageExtensions: config.pageExtensions,\n trailingSlash: config.trailingSlash,\n buildActivity: config.devIndicators.buildActivity,\n plugins: config.experimental.plugins,\n reactStrictMode: config.reactStrictMode,\n reactMode: config.experimental.reactMode,\n optimizeFonts: config.optimizeFonts,\n optimizeImages: config.experimental.optimizeImages,\n optimizeCss: config.experimental.optimizeCss,\n scrollRestoration: config.experimental.scrollRestoration,\n basePath: config.basePath,\n pageEnv: config.experimental.pageEnv,\n excludeDefaultMomentLocales: config.excludeDefaultMomentLocales,\n assetPrefix: config.assetPrefix,\n disableOptimizedLoading: config.experimental.disableOptimizedLoading,\n target,\n reactProductionProfiling,\n webpack: !!config.webpack,\n hasRewrites,\n })\n\n const cache: any = {\n type: 'filesystem',\n // Includes:\n // - Next.js version\n // - next.config.js keys that affect compilation\n version: `${process.env.__NEXT_VERSION}|${configVars}`,\n cacheDirectory: path.join(distDir, 'cache', 'webpack'),\n }\n\n // Adds `next.config.js` as a buildDependency when custom webpack config is provided\n if (config.webpack && config.configFile) {\n cache.buildDependencies = {\n config: [config.configFile],\n }\n }\n\n webpackConfig.cache = cache\n\n if (process.env.NEXT_WEBPACK_LOGGING) {\n const logInfra = process.env.NEXT_WEBPACK_LOGGING.includes(\n 'infrastructure'\n )\n const logProfileClient = process.env.NEXT_WEBPACK_LOGGING.includes(\n 'profile-client'\n )\n const logProfileServer = process.env.NEXT_WEBPACK_LOGGING.includes(\n 'profile-server'\n )\n const logDefault = !logInfra && !logProfileClient && !logProfileServer\n\n if (logDefault || logInfra) {\n // @ts-ignore TODO: remove ignore when webpack 5 is stable\n webpackConfig.infrastructureLogging = {\n level: 'verbose',\n debug: /FileSystemInfo/,\n }\n }\n\n if (\n logDefault ||\n (logProfileClient && !isServer) ||\n (logProfileServer && isServer)\n ) {\n webpackConfig.plugins!.push((compiler: webpack.Compiler) => {\n compiler.hooks.done.tap('next-webpack-logging', (stats) => {\n console.log(\n stats.toString({\n colors: true,\n // @ts-ignore TODO: remove ignore when webpack 5 is stable\n logging: logDefault ? 'log' : 'verbose',\n })\n )\n })\n })\n }\n\n if ((logProfileClient && !isServer) || (logProfileServer && isServer)) {\n webpackConfig.plugins!.push(\n new webpack.ProgressPlugin({\n // @ts-ignore TODO: remove ignore when webpack 5 is stable\n profile: true,\n })\n )\n webpackConfig.profile = true\n }\n }\n }\n\n webpackConfig = await buildConfiguration(webpackConfig, {\n rootDirectory: dir,\n customAppFile,\n isDevelopment: dev,\n isServer,\n assetPrefix: config.assetPrefix || '',\n sassOptions: config.sassOptions,\n productionBrowserSourceMaps: config.productionBrowserSourceMaps,\n future: config.future,\n isCraCompat: config.experimental.craCompat,\n })\n\n let originalDevtool = webpackConfig.devtool\n if (typeof config.webpack === 'function') {\n webpackConfig = config.webpack(webpackConfig, {\n dir,\n dev,\n isServer,\n buildId,\n config,\n defaultLoaders,\n totalPages,\n webpack,\n })\n\n if (!webpackConfig) {\n throw new Error(\n 'Webpack config is undefined. You may have forgot to return properly from within the \"webpack\" method of your next.config.js.\\n' +\n 'See more info here https://nextjs.org/docs/messages/undefined-webpack-config'\n )\n }\n\n if (dev && originalDevtool !== webpackConfig.devtool) {\n webpackConfig.devtool = originalDevtool\n devtoolRevertWarning(originalDevtool)\n }\n\n if (typeof (webpackConfig as any).then === 'function') {\n console.warn(\n '> Promise returned in next config. https://nextjs.org/docs/messages/promise-in-next-config'\n )\n }\n }\n\n if (!config.images.disableStaticImages && isWebpack5) {\n if (!webpackConfig.module) {\n webpackConfig.module = { rules: [] }\n }\n\n const hasSvg = webpackConfig.module.rules.some(\n (rule) =>\n 'test' in rule && rule.test instanceof RegExp && rule.test.test('.svg')\n )\n\n // Exclude svg if the user already defined it in custom\n // webpack config such as `@svgr/webpack` plugin or\n // the `babel-plugin-inline-react-svg` plugin.\n webpackConfig.module.rules.push({\n test: hasSvg\n ? /\\.(png|jpg|jpeg|gif|webp|ico|bmp)$/i\n : /\\.(png|svg|jpg|jpeg|gif|webp|ico|bmp)$/i,\n loader: 'next-image-loader',\n dependency: { not: ['url'] },\n // @ts-ignore\n issuer: { not: regexLikeCss },\n })\n }\n\n if (\n config.experimental.craCompat &&\n webpackConfig.module?.rules &&\n webpackConfig.plugins\n ) {\n // CRA prevents loading all locales by default\n // https://github.com/facebook/create-react-app/blob/fddce8a9e21bf68f37054586deb0c8636a45f50b/packages/react-scripts/config/webpack.config.js#L721\n webpackConfig.plugins.push(\n new webpack.IgnorePlugin(/^\\.\\/locale$/, /moment$/)\n )\n\n // CRA allows importing non-webpack handled files with file-loader\n // these need to be the last rule to prevent catching other items\n // https://github.com/facebook/create-react-app/blob/fddce8a9e21bf68f37054586deb0c8636a45f50b/packages/react-scripts/config/webpack.config.js#L594\n const fileLoaderExclude = [/\\.(js|mjs|jsx|ts|tsx|json)$/]\n const fileLoader = isWebpack5\n ? {\n exclude: fileLoaderExclude,\n issuer: fileLoaderExclude,\n type: 'asset/resource',\n generator: {\n publicPath: '/_next/',\n filename: 'static/media/[name].[hash:8].[ext]',\n },\n }\n : {\n loader: require.resolve('next/dist/compiled/file-loader'),\n // Exclude `js` files to keep \"css\" loader working as it injects\n // its runtime that would otherwise be processed through \"file\" loader.\n // Also exclude `html` and `json` extensions so they get processed\n // by webpacks internal loaders.\n exclude: fileLoaderExclude,\n issuer: fileLoaderExclude,\n options: {\n publicPath: '/_next/static/media',\n outputPath: 'static/media',\n name: '[name].[hash:8].[ext]',\n },\n }\n\n const topRules = []\n const innerRules = []\n\n for (const rule of webpackConfig.module.rules) {\n if (rule.resolve) {\n topRules.push(rule)\n } else {\n if (\n rule.oneOf &&\n !(rule.test || rule.exclude || rule.resource || rule.issuer)\n ) {\n rule.oneOf.forEach((r) => innerRules.push(r))\n } else {\n innerRules.push(rule)\n }\n }\n }\n\n webpackConfig.module.rules = [\n ...(topRules as any),\n {\n oneOf: [...innerRules, fileLoader],\n },\n ]\n }\n\n // Backwards compat with webpack-dev-middleware options object\n if (typeof config.webpackDevMiddleware === 'function') {\n const options = config.webpackDevMiddleware({\n watchOptions: webpackConfig.watchOptions,\n })\n if (options.watchOptions) {\n webpackConfig.watchOptions = options.watchOptions\n }\n }\n\n function canMatchCss(rule: webpack.RuleSetCondition | undefined): boolean {\n if (!rule) {\n return false\n }\n\n const fileNames = [\n '/tmp/test.css',\n '/tmp/test.scss',\n '/tmp/test.sass',\n '/tmp/test.less',\n '/tmp/test.styl',\n ]\n\n if (rule instanceof RegExp && fileNames.some((input) => rule.test(input))) {\n return true\n }\n\n if (typeof rule === 'function') {\n if (\n fileNames.some((input) => {\n try {\n if (rule(input)) {\n return true\n }\n } catch (_) {}\n return false\n })\n ) {\n return true\n }\n }\n\n if (Array.isArray(rule) && rule.some(canMatchCss)) {\n return true\n }\n\n return false\n }\n\n const hasUserCssConfig =\n webpackConfig.module?.rules.some(\n (rule) => canMatchCss(rule.test) || canMatchCss(rule.include)\n ) ?? false\n\n if (hasUserCssConfig) {\n // only show warning for one build\n if (isServer) {\n console.warn(\n chalk.yellow.bold('Warning: ') +\n chalk.bold(\n 'Built-in CSS support is being disabled due to custom CSS configuration being detected.\\n'\n ) +\n 'See here for more info: https://nextjs.org/docs/messages/built-in-css-disabled\\n'\n )\n }\n\n if (webpackConfig.module?.rules.length) {\n // Remove default CSS Loader\n webpackConfig.module.rules = webpackConfig.module.rules.filter(\n (r) =>\n !(\n typeof r.oneOf?.[0]?.options === 'object' &&\n r.oneOf[0].options.__next_css_remove === true\n )\n )\n }\n if (webpackConfig.plugins?.length) {\n // Disable CSS Extraction Plugin\n webpackConfig.plugins = webpackConfig.plugins.filter(\n (p) => (p as any).__next_css_remove !== true\n )\n }\n if (webpackConfig.optimization?.minimizer?.length) {\n // Disable CSS Minifier\n webpackConfig.optimization.minimizer = webpackConfig.optimization.minimizer.filter(\n (e) => (e as any).__next_css_remove !== true\n )\n }\n } else if (!config.future.strictPostcssConfiguration) {\n await __overrideCssConfiguration(dir, !dev, webpackConfig)\n }\n\n // Inject missing React Refresh loaders so that development mode is fast:\n if (hasReactRefresh) {\n attachReactRefresh(webpackConfig, defaultLoaders.babel)\n }\n\n // check if using @zeit/next-typescript and show warning\n if (\n isServer &&\n webpackConfig.module &&\n Array.isArray(webpackConfig.module.rules)\n ) {\n let foundTsRule = false\n\n webpackConfig.module.rules = webpackConfig.module.rules.filter(\n (rule): boolean => {\n if (!(rule.test instanceof RegExp)) return true\n if ('noop.ts'.match(rule.test) && !'noop.js'.match(rule.test)) {\n // remove if it matches @zeit/next-typescript\n foundTsRule = rule.use === defaultLoaders.babel\n return !foundTsRule\n }\n return true\n }\n )\n\n if (foundTsRule) {\n console.warn(\n '\\n@zeit/next-typescript is no longer needed since Next.js has built-in support for TypeScript now. Please remove it from your next.config.js and your .babelrc\\n'\n )\n }\n }\n\n // Patch `@zeit/next-sass`, `@zeit/next-less`, `@zeit/next-stylus` for compatibility\n if (webpackConfig.module && Array.isArray(webpackConfig.module.rules)) {\n ;[].forEach.call(webpackConfig.module.rules, function (\n rule: webpack.RuleSetRule\n ) {\n if (!(rule.test instanceof RegExp && Array.isArray(rule.use))) {\n return\n }\n\n const isSass =\n rule.test.source === '\\\\.scss$' || rule.test.source === '\\\\.sass$'\n const isLess = rule.test.source === '\\\\.less$'\n const isCss = rule.test.source === '\\\\.css$'\n const isStylus = rule.test.source === '\\\\.styl$'\n\n // Check if the rule we're iterating over applies to Sass, Less, or CSS\n if (!(isSass || isLess || isCss || isStylus)) {\n return\n }\n\n ;[].forEach.call(rule.use, function (use: webpack.RuleSetUseItem) {\n if (\n !(\n use &&\n typeof use === 'object' &&\n // Identify use statements only pertaining to `css-loader`\n (use.loader === 'css-loader' ||\n use.loader === 'css-loader/locals') &&\n use.options &&\n typeof use.options === 'object' &&\n // The `minimize` property is a good heuristic that we need to\n // perform this hack. The `minimize` property was only valid on\n // old `css-loader` versions. Custom setups (that aren't next-sass,\n // next-less or next-stylus) likely have the newer version.\n // We still handle this gracefully below.\n (Object.prototype.hasOwnProperty.call(use.options, 'minimize') ||\n Object.prototype.hasOwnProperty.call(\n use.options,\n 'exportOnlyLocals'\n ))\n )\n ) {\n return\n }\n\n // Try to monkey patch within a try-catch. We shouldn't fail the build\n // if we cannot pull this off.\n // The user may not even be using the `next-sass` or `next-less` or\n // `next-stylus` plugins.\n // If it does work, great!\n try {\n // Resolve the version of `@zeit/next-css` as depended on by the Sass,\n // Less or Stylus plugin.\n const correctNextCss = require.resolve('@zeit/next-css', {\n paths: [\n isCss\n ? // Resolve `@zeit/next-css` from the base directory\n dir\n : // Else, resolve it from the specific plugins\n require.resolve(\n isSass\n ? '@zeit/next-sass'\n : isLess\n ? '@zeit/next-less'\n : isStylus\n ? '@zeit/next-stylus'\n : 'next'\n ),\n ],\n })\n\n // If we found `@zeit/next-css` ...\n if (correctNextCss) {\n // ... resolve the version of `css-loader` shipped with that\n // package instead of whichever was hoisted highest in your\n // `node_modules` tree.\n const correctCssLoader = require.resolve(use.loader, {\n paths: [correctNextCss],\n })\n if (correctCssLoader) {\n // We saved the user from a failed build!\n use.loader = correctCssLoader\n }\n }\n } catch (_) {\n // The error is not required to be handled.\n }\n })\n })\n }\n\n // Backwards compat for `main.js` entry key\n // and setup of dependencies between entries\n // we can't do that in the initial entry for\n // backward-compat reasons\n const originalEntry: any = webpackConfig.entry\n if (typeof originalEntry !== 'undefined') {\n const updatedEntry = async () => {\n const entry: WebpackEntrypoints =\n typeof originalEntry === 'function'\n ? await originalEntry()\n : originalEntry\n // Server compilation doesn't have main.js\n if (\n clientEntries &&\n Array.isArray(entry['main.js']) &&\n entry['main.js'].length > 0\n ) {\n const originalFile = clientEntries[\n CLIENT_STATIC_FILES_RUNTIME_MAIN\n ] as string\n entry[CLIENT_STATIC_FILES_RUNTIME_MAIN] = [\n ...entry['main.js'],\n originalFile,\n ]\n }\n delete entry['main.js']\n\n if (isWebpack5 && !isServer) {\n for (const name of Object.keys(entry)) {\n if (\n name === 'polyfills' ||\n name === 'main' ||\n name === 'amp' ||\n name === 'react-refresh'\n )\n continue\n const dependOn =\n name.startsWith('pages/') && name !== 'pages/_app'\n ? 'pages/_app'\n : 'main'\n const old = entry[name]\n if (typeof old === 'object' && !Array.isArray(old)) {\n entry[name] = {\n dependOn,\n ...old,\n }\n } else {\n entry[name] = {\n import: old,\n dependOn,\n }\n }\n }\n }\n\n return entry\n }\n // @ts-ignore webpack 5 typings needed\n webpackConfig.entry = updatedEntry\n }\n\n if (!dev) {\n // entry is always a function\n webpackConfig.entry = await (webpackConfig.entry as webpack.EntryFunc)()\n }\n\n return webpackConfig\n}\n"]} | |
\ No newline at end of file | |
+{"version":3,"sources":["../../build/webpack-config.ts"],"names":["devtoolRevertWarning","devtool","console","warn","chalk","yellow","bold","parseJsonFile","filePath","JSON5","require","contents","trim","parse","err","codeFrame","String","start","line","lineNumber","column","columnNumber","message","highlightCode","Error","getOptimizedAliases","isServer","stubWindowFetch","path","join","__dirname","stubObjectAssign","shimAssign","Object","assign","unfetch$","url","resolve","attachReactRefresh","webpackConfig","targetLoader","injections","reactRefreshLoaderName","reactRefreshLoader","module","rules","forEach","rule","curr","use","Array","isArray","some","r","idx","findIndex","splice","Log","info","WEBPACK_RESOLVE_OPTIONS","dependencyType","symlinks","NODE_RESOLVE_OPTIONS","modules","alias","fallback","exportsFields","importsFields","conditionNames","descriptionFiles","extensions","enforceExtensions","mainFields","mainFiles","roots","fullySpecified","preferRelative","preferAbsolute","restrictions","getBaseWebpackConfig","dir","buildId","config","dev","pagesDirs","target","reactProductionProfiling","entrypoints","rewrites","isDevFallback","hasRewrites","beforeFiles","length","afterFiles","hasReactRefresh","reactDomVersion","cwd","name","hasReact18","Boolean","semver","gte","coerce","version","hasReactPrerelease","prerelease","hasReactRoot","experimental","reactRoot","babelConfigFile","reduce","memo","filename","configFilePath","undefined","Promise","distDir","babelLoader","isWebpack5","defaultLoaders","babel","loader","options","configFile","cache","development","hasJsxRuntime","hotSelfAccept","babelIncludeRegexes","nodePathList","process","env","NODE_PATH","split","platform","filter","p","isServerless","isServerlessTrace","isLikeServerless","outputDir","SERVERLESS_DIRECTORY","SERVER_DIRECTORY","outputPath","totalPages","keys","clientEntries","CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH","CLIENT_STATIC_FILES_RUNTIME_AMP","NEXT_PROJECT_ROOT_DIST_CLIENT","replace","CLIENT_STATIC_FILES_RUNTIME_MAIN","relative","CLIENT_STATIC_FILES_RUNTIME_POLYFILLS","typeScriptPath","paths","_","tsConfigPath","useTypeScript","jsConfig","ts","tsConfig","compilerOptions","jsConfigPath","resolvedBaseUrl","baseUrl","getReactProfilingInProduction","clientResolveRewrites","clientResolveRewritesNoop","resolveConfig","next","NEXT_PROJECT_ROOT","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","assert","buffer","constants","crypto","domain","http","https","os","punycode","querystring","stream","string_decoder","sys","timers","tty","util","vm","zlib","plugins","terserOptions","ecma","compress","warnings","comparisons","inline","mangle","safari10","output","comments","ascii_only","isModuleCSS","type","splitChunksConfigs","cacheGroups","default","vendors","prodGranular","chunks","chunk","test","framework","priority","enforce","lib","size","nameForCondition","hash","createHash","updateHash","libIdent","update","context","digest","substring","minChunks","reuseExistingChunk","commons","shared","acc","maxInitialRequests","minSize","splitChunksConfig","crossOrigin","customApp","pageExtensions","customAppFile","pageBase","pagePath","conformanceConfig","ReactSyncScriptsConformanceCheck","enabled","MinificationConformanceCheck","DuplicatePolyfillsConformanceCheck","BlockedAPIToBePolyfilled","conformance","GranularChunksConformanceCheck","handleExternals","request","getResolve","isLocal","startsWith","posix","isAbsolute","win32","notExternalModules","res","isNextExternal","externalRequest","baseRes","baseResolve","match","emacsLockfilePattern","externals","callback","resolveContext","requestToResolve","then","result","optimizeCss","optimization","emitOnErrors","noEmitOnErrors","checkWasmTypes","nodeEnv","splitChunks","runtimeChunk","CLIENT_STATIC_FILES_RUNTIME_WEBPACK","minimize","minimizer","compiler","TerserPlugin","cacheDir","parallel","cpus","apply","CssMinimizerPlugin","postcssOptions","map","annotation","node","setImmediate","entry","watchOptions","aggregateTimeout","ignored","environment","arrowFunction","bigIntLiteral","const","destructuring","dynamicImport","forOf","publicPath","assetPrefix","library","libraryTarget","hotUpdateChunkFilename","hotUpdateMainFilename","chunkFilename","strictModuleExceptionHandling","crossOriginLoading","futureEmitAssets","webassemblyModuleFilename","performance","resolveLoader","externalDir","include","exclude","excludePath","ReactRefreshWebpackPlugin","webpack","ProvidePlugin","Buffer","ChunkNamesPlugin","DefinePlugin","prev","key","JSON","stringify","__NEXT_TEST_MODE","trailingSlash","devIndicators","buildActivity","reactStrictMode","optimizeFonts","optimizeImages","scrollRestoration","deviceSizes","images","imageSizes","domains","basePath","i18n","analyticsId","pageEnv","ReactLoadablePlugin","REACT_LOADABLE_MANIFEST","DropClientPage","excludeDefaultMomentLocales","IgnorePlugin","resourceRegExp","contextRegExp","NextJsRequireCacheHotReloader","devPlugins","push","HotModuleReplacementPlugin","HashedModuleIdsPlugin","ServerlessPlugin","PagesManifestPlugin","serverless","NextJsSSRModuleCachePlugin","NextJsSsrImportPlugin","BuildManifestPlugin","stats","BuildStatsPlugin","ProfilingPlugin","FontStylesheetGatheringPlugin","WebpackConformancePlugin","tests","AllowedSources","allowedSources","WellKnownErrorsPlugin","unshift","JsConfigPathsPlugin","dependencies","snapshot","versions","pnp","exec","managedPaths","immutablePaths","providedExports","usedExports","configVars","reactMode","disableOptimizedLoading","__NEXT_VERSION","cacheDirectory","buildDependencies","NEXT_WEBPACK_LOGGING","logInfra","includes","logProfileClient","logProfileServer","logDefault","infrastructureLogging","level","debug","hooks","done","tap","log","toString","colors","logging","ProgressPlugin","profile","rootDirectory","isDevelopment","sassOptions","productionBrowserSourceMaps","future","isCraCompat","craCompat","originalDevtool","disableStaticImages","hasSvg","RegExp","dependency","not","issuer","regexLikeCss","fileLoaderExclude","fileLoader","generator","topRules","innerRules","oneOf","resource","webpackDevMiddleware","canMatchCss","fileNames","input","hasUserCssConfig","__next_css_remove","e","strictPostcssConfiguration","foundTsRule","call","isSass","source","isLess","isCss","isStylus","prototype","hasOwnProperty","correctNextCss","correctCssLoader","originalEntry","updatedEntry","originalFile","dependOn","old","import"],"mappings":"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","sourcesContent":["import ReactRefreshWebpackPlugin from '@next/react-refresh-utils/ReactRefreshWebpackPlugin'\nimport chalk from 'chalk'\nimport crypto from 'crypto'\nimport { readFileSync } from 'fs'\nimport { codeFrameColumns } from 'next/dist/compiled/babel/code-frame'\nimport semver from 'next/dist/compiled/semver'\nimport { isWebpack5, webpack } from 'next/dist/compiled/webpack/webpack'\nimport path, { join as pathJoin, relative as relativePath } from 'path'\nimport {\n DOT_NEXT_ALIAS,\n NEXT_PROJECT_ROOT,\n NEXT_PROJECT_ROOT_DIST_CLIENT,\n PAGES_DIR_ALIAS,\n} from '../lib/constants'\nimport { fileExists } from '../lib/file-exists'\nimport { getPackageVersion } from '../lib/get-package-version'\nimport { CustomRoutes } from '../lib/load-custom-routes.js'\nimport { getTypeScriptConfiguration } from '../lib/typescript/getTypeScriptConfiguration'\nimport {\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK,\n REACT_LOADABLE_MANIFEST,\n SERVERLESS_DIRECTORY,\n SERVER_DIRECTORY,\n} from '../next-server/lib/constants'\nimport { execOnce } from '../next-server/lib/utils'\nimport { NextConfig } from '../next-server/server/config'\nimport { findPageFile } from '../server/lib/find-page-file'\nimport { WebpackEntrypoints } from './entries'\nimport * as Log from './output/log'\nimport { build as buildConfiguration } from './webpack/config'\nimport { __overrideCssConfiguration } from './webpack/config/blocks/css/overrideCssConfiguration'\nimport BuildManifestPlugin from './webpack/plugins/build-manifest-plugin'\nimport BuildStatsPlugin from './webpack/plugins/build-stats-plugin'\nimport ChunkNamesPlugin from './webpack/plugins/chunk-names-plugin'\nimport { JsConfigPathsPlugin } from './webpack/plugins/jsconfig-paths-plugin'\nimport { DropClientPage } from './webpack/plugins/next-drop-client-page-plugin'\nimport NextJsSsrImportPlugin from './webpack/plugins/nextjs-ssr-import'\nimport NextJsSSRModuleCachePlugin from './webpack/plugins/nextjs-ssr-module-cache'\nimport PagesManifestPlugin from './webpack/plugins/pages-manifest-plugin'\nimport { ProfilingPlugin } from './webpack/plugins/profiling-plugin'\nimport { ReactLoadablePlugin } from './webpack/plugins/react-loadable-plugin'\nimport { ServerlessPlugin } from './webpack/plugins/serverless-plugin'\nimport WebpackConformancePlugin, {\n DuplicatePolyfillsConformanceCheck,\n GranularChunksConformanceCheck,\n MinificationConformanceCheck,\n ReactSyncScriptsConformanceCheck,\n} from './webpack/plugins/webpack-conformance-plugin'\nimport { WellKnownErrorsPlugin } from './webpack/plugins/wellknown-errors-plugin'\nimport { regexLikeCss } from './webpack/config/blocks/css'\n\ntype ExcludesFalse = <T>(x: T | false) => x is T\n\nconst devtoolRevertWarning = execOnce(\n (devtool: webpack.Configuration['devtool']) => {\n console.warn(\n chalk.yellow.bold('Warning: ') +\n chalk.bold(`Reverting webpack devtool to '${devtool}'.\\n`) +\n 'Changing the webpack devtool in development mode will cause severe performance regressions.\\n' +\n 'Read more: https://nextjs.org/docs/messages/improper-devtool'\n )\n }\n)\n\nfunction parseJsonFile(filePath: string) {\n const JSON5 = require('next/dist/compiled/json5')\n const contents = readFileSync(filePath, 'utf8')\n\n // Special case an empty file\n if (contents.trim() === '') {\n return {}\n }\n\n try {\n return JSON5.parse(contents)\n } catch (err) {\n const codeFrame = codeFrameColumns(\n String(contents),\n { start: { line: err.lineNumber, column: err.columnNumber } },\n { message: err.message, highlightCode: true }\n )\n throw new Error(`Failed to parse \"${filePath}\":\\n${codeFrame}`)\n }\n}\n\nfunction getOptimizedAliases(isServer: boolean): { [pkg: string]: string } {\n if (isServer) {\n return {}\n }\n\n const stubWindowFetch = path.join(__dirname, 'polyfills', 'fetch', 'index.js')\n const stubObjectAssign = path.join(__dirname, 'polyfills', 'object-assign.js')\n\n const shimAssign = path.join(__dirname, 'polyfills', 'object.assign')\n return Object.assign(\n {},\n {\n unfetch$: stubWindowFetch,\n 'isomorphic-unfetch$': stubWindowFetch,\n 'whatwg-fetch$': path.join(\n __dirname,\n 'polyfills',\n 'fetch',\n 'whatwg-fetch.js'\n ),\n },\n {\n 'object-assign$': stubObjectAssign,\n\n // Stub Package: object.assign\n 'object.assign/auto': path.join(shimAssign, 'auto.js'),\n 'object.assign/implementation': path.join(\n shimAssign,\n 'implementation.js'\n ),\n 'object.assign$': path.join(shimAssign, 'index.js'),\n 'object.assign/polyfill': path.join(shimAssign, 'polyfill.js'),\n 'object.assign/shim': path.join(shimAssign, 'shim.js'),\n\n // Replace: full URL polyfill with platform-based polyfill\n url: require.resolve('native-url'),\n }\n )\n}\n\ntype ClientEntries = {\n [key: string]: string | string[]\n}\n\nexport function attachReactRefresh(\n webpackConfig: webpack.Configuration,\n targetLoader: webpack.RuleSetUseItem\n) {\n let injections = 0\n const reactRefreshLoaderName = '@next/react-refresh-utils/loader'\n const reactRefreshLoader = require.resolve(reactRefreshLoaderName)\n webpackConfig.module?.rules.forEach((rule) => {\n const curr = rule.use\n // When the user has configured `defaultLoaders.babel` for a input file:\n if (curr === targetLoader) {\n ++injections\n rule.use = [reactRefreshLoader, curr as webpack.RuleSetUseItem]\n } else if (\n Array.isArray(curr) &&\n curr.some((r) => r === targetLoader) &&\n // Check if loader already exists:\n !curr.some(\n (r) => r === reactRefreshLoader || r === reactRefreshLoaderName\n )\n ) {\n ++injections\n const idx = curr.findIndex((r) => r === targetLoader)\n // Clone to not mutate user input\n rule.use = [...curr]\n\n // inject / input: [other, babel] output: [other, refresh, babel]:\n rule.use.splice(idx, 0, reactRefreshLoader)\n }\n })\n\n if (injections) {\n Log.info(\n `automatically enabled Fast Refresh for ${injections} custom loader${\n injections > 1 ? 's' : ''\n }`\n )\n }\n}\n\nconst WEBPACK_RESOLVE_OPTIONS = {\n // This always uses commonjs resolving, assuming API is identical\n // between ESM and CJS in a package\n // Otherwise combined ESM+CJS packages will never be external\n // as resolving mismatch would lead to opt-out from being external.\n dependencyType: 'commonjs',\n symlinks: true,\n}\n\nconst NODE_RESOLVE_OPTIONS = {\n dependencyType: 'commonjs',\n modules: ['node_modules'],\n alias: false,\n fallback: false,\n exportsFields: ['exports'],\n importsFields: ['imports'],\n conditionNames: ['node', 'require', 'module'],\n descriptionFiles: ['package.json'],\n extensions: ['.js', '.json', '.node'],\n enforceExtensions: false,\n symlinks: true,\n mainFields: ['main'],\n mainFiles: ['index'],\n roots: [],\n fullySpecified: false,\n preferRelative: false,\n preferAbsolute: false,\n restrictions: [],\n}\n\nexport default async function getBaseWebpackConfig(\n dir: string,\n {\n buildId,\n config,\n dev = false,\n isServer = false,\n pagesDirs,\n target = 'server',\n reactProductionProfiling = false,\n entrypoints,\n rewrites,\n isDevFallback = false,\n }: {\n buildId: string\n config: NextConfig\n dev?: boolean\n isServer?: boolean\n pagesDirs: string[]\n target?: string\n reactProductionProfiling?: boolean\n entrypoints: WebpackEntrypoints\n rewrites: CustomRoutes['rewrites']\n isDevFallback?: boolean\n }\n): Promise<webpack.Configuration> {\n const hasRewrites =\n rewrites.beforeFiles.length > 0 ||\n rewrites.afterFiles.length > 0 ||\n rewrites.fallback.length > 0\n const hasReactRefresh: boolean = dev && !isServer\n const reactDomVersion = await getPackageVersion({\n cwd: dir,\n name: 'react-dom',\n })\n const hasReact18: boolean =\n Boolean(reactDomVersion) &&\n (semver.gte(reactDomVersion!, '18.0.0') ||\n semver.coerce(reactDomVersion)?.version === '18.0.0')\n const hasReactPrerelease =\n Boolean(reactDomVersion) && semver.prerelease(reactDomVersion!) != null\n const hasReactRoot: boolean = config.experimental.reactRoot || hasReact18\n\n // Only inform during one of the builds\n if (!isServer) {\n if (hasReactRoot) {\n Log.info('Using the createRoot API for React')\n }\n if (hasReactPrerelease) {\n Log.warn(\n `You are using an unsupported prerelease of 'react-dom' which may cause ` +\n `unexpected or broken application behavior. Continue at your own risk.`\n )\n }\n }\n\n const babelConfigFile = await [\n '.babelrc',\n '.babelrc.json',\n '.babelrc.js',\n '.babelrc.mjs',\n '.babelrc.cjs',\n 'babel.config.js',\n 'babel.config.json',\n 'babel.config.mjs',\n 'babel.config.cjs',\n ].reduce(async (memo: Promise<string | undefined>, filename) => {\n const configFilePath = path.join(dir, filename)\n return (\n (await memo) ||\n ((await fileExists(configFilePath)) ? configFilePath : undefined)\n )\n }, Promise.resolve(undefined))\n\n const distDir = path.join(dir, config.distDir)\n\n // Webpack 5 can use the faster babel loader, webpack 5 has built-in caching for loaders\n // For webpack 4 the old loader is used as it has external caching\n const babelLoader = isWebpack5\n ? require.resolve('./babel/loader/index')\n : 'next-babel-loader'\n const defaultLoaders = {\n babel: {\n loader: babelLoader,\n options: {\n configFile: babelConfigFile,\n isServer,\n distDir,\n pagesDirs,\n cwd: dir,\n // Webpack 5 has a built-in loader cache\n cache: !isWebpack5,\n development: dev,\n hasReactRefresh,\n hasJsxRuntime: true,\n },\n },\n // Backwards compat\n hotSelfAccept: {\n loader: 'noop-loader',\n },\n }\n\n const babelIncludeRegexes: RegExp[] = [\n /next[\\\\/]dist[\\\\/]next-server[\\\\/]lib/,\n /next[\\\\/]dist[\\\\/]client/,\n /next[\\\\/]dist[\\\\/]pages/,\n /[\\\\/](strip-ansi|ansi-regex)[\\\\/]/,\n ]\n\n // Support for NODE_PATH\n const nodePathList = (process.env.NODE_PATH || '')\n .split(process.platform === 'win32' ? ';' : ':')\n .filter((p) => !!p)\n\n const isServerless = target === 'serverless'\n const isServerlessTrace = target === 'experimental-serverless-trace'\n // Intentionally not using isTargetLikeServerless helper\n const isLikeServerless = isServerless || isServerlessTrace\n\n const outputDir = isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY\n const outputPath = path.join(distDir, isServer ? outputDir : '')\n const totalPages = Object.keys(entrypoints).length\n const clientEntries = !isServer\n ? ({\n // Backwards compatibility\n 'main.js': [],\n ...(dev\n ? {\n [CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH]: require.resolve(\n `@next/react-refresh-utils/runtime`\n ),\n [CLIENT_STATIC_FILES_RUNTIME_AMP]:\n `./` +\n relativePath(\n dir,\n pathJoin(NEXT_PROJECT_ROOT_DIST_CLIENT, 'dev', 'amp-dev')\n ).replace(/\\\\/g, '/'),\n }\n : {}),\n [CLIENT_STATIC_FILES_RUNTIME_MAIN]:\n `./` +\n path\n .relative(\n dir,\n path.join(\n NEXT_PROJECT_ROOT_DIST_CLIENT,\n dev ? `next-dev.js` : 'next.js'\n )\n )\n .replace(/\\\\/g, '/'),\n [CLIENT_STATIC_FILES_RUNTIME_POLYFILLS]: path.join(\n NEXT_PROJECT_ROOT_DIST_CLIENT,\n 'polyfills.js'\n ),\n } as ClientEntries)\n : undefined\n\n let typeScriptPath: string | undefined\n try {\n typeScriptPath = require.resolve('typescript', { paths: [dir] })\n } catch (_) {}\n const tsConfigPath = path.join(dir, 'tsconfig.json')\n const useTypeScript = Boolean(\n typeScriptPath && (await fileExists(tsConfigPath))\n )\n\n let jsConfig\n // jsconfig is a subset of tsconfig\n if (useTypeScript) {\n const ts = (await import(typeScriptPath!)) as typeof import('typescript')\n const tsConfig = await getTypeScriptConfiguration(ts, tsConfigPath, true)\n jsConfig = { compilerOptions: tsConfig.options }\n }\n\n const jsConfigPath = path.join(dir, 'jsconfig.json')\n if (!useTypeScript && (await fileExists(jsConfigPath))) {\n jsConfig = parseJsonFile(jsConfigPath)\n }\n\n let resolvedBaseUrl\n if (jsConfig?.compilerOptions?.baseUrl) {\n resolvedBaseUrl = path.resolve(dir, jsConfig.compilerOptions.baseUrl)\n }\n\n function getReactProfilingInProduction() {\n if (reactProductionProfiling) {\n return {\n 'react-dom$': 'react-dom/profiling',\n 'scheduler/tracing': 'scheduler/tracing-profiling',\n }\n }\n }\n\n const clientResolveRewrites = require.resolve(\n '../next-server/lib/router/utils/resolve-rewrites'\n )\n const clientResolveRewritesNoop = require.resolve(\n '../next-server/lib/router/utils/resolve-rewrites-noop'\n )\n\n const resolveConfig = {\n // Disable .mjs for node_modules bundling\n extensions: isServer\n ? [\n '.js',\n '.mjs',\n ...(useTypeScript ? ['.tsx', '.ts'] : []),\n '.jsx',\n '.json',\n '.wasm',\n ]\n : [\n '.mjs',\n '.js',\n ...(useTypeScript ? ['.tsx', '.ts'] : []),\n '.jsx',\n '.json',\n '.wasm',\n ],\n modules: [\n 'node_modules',\n ...nodePathList, // Support for NODE_PATH environment variable\n ],\n alias: {\n next: NEXT_PROJECT_ROOT,\n [PAGES_DIR_ALIAS]: pagesDirs,\n [DOT_NEXT_ALIAS]: distDir,\n ...getOptimizedAliases(isServer),\n ...getReactProfilingInProduction(),\n [clientResolveRewrites]: hasRewrites\n ? clientResolveRewrites\n : // With webpack 5 an alias can be pointed to false to noop\n isWebpack5\n ? false\n : clientResolveRewritesNoop,\n },\n ...(isWebpack5 && !isServer\n ? {\n // Full list of old polyfills is accessible here:\n // https://github.com/webpack/webpack/blob/2a0536cf510768111a3a6dceeb14cb79b9f59273/lib/ModuleNotFoundError.js#L13-L42\n fallback: {\n assert: require.resolve('assert/'),\n buffer: require.resolve('buffer/'),\n constants: require.resolve('constants-browserify'),\n crypto: require.resolve('crypto-browserify'),\n domain: require.resolve('domain-browser'),\n http: require.resolve('stream-http'),\n https: require.resolve('https-browserify'),\n os: require.resolve('os-browserify/browser'),\n path: require.resolve('path-browserify'),\n punycode: require.resolve('punycode'),\n process: require.resolve('process/browser'),\n // Handled in separate alias\n querystring: require.resolve('querystring-es3'),\n stream: require.resolve('stream-browserify'),\n string_decoder: require.resolve('string_decoder'),\n sys: require.resolve('util/'),\n timers: require.resolve('timers-browserify'),\n tty: require.resolve('tty-browserify'),\n // Handled in separate alias\n // url: require.resolve('url/'),\n util: require.resolve('util/'),\n vm: require.resolve('vm-browserify'),\n zlib: require.resolve('browserify-zlib'),\n },\n }\n : undefined),\n mainFields: isServer ? ['main', 'module'] : ['browser', 'module', 'main'],\n plugins: isWebpack5\n ? // webpack 5+ has the PnP resolver built-in by default:\n []\n : [require('pnp-webpack-plugin')],\n }\n\n const terserOptions: any = {\n parse: {\n ecma: 8,\n },\n compress: {\n ecma: 5,\n warnings: false,\n // The following two options are known to break valid JavaScript code\n comparisons: false,\n inline: 2, // https://github.com/vercel/next.js/issues/7178#issuecomment-493048965\n },\n mangle: { safari10: true },\n output: {\n ecma: 5,\n safari10: true,\n comments: false,\n // Fixes usage of Emoji and certain Regex\n ascii_only: true,\n },\n }\n\n const isModuleCSS = (module: { type: string }): boolean => {\n return (\n // mini-css-extract-plugin\n module.type === `css/mini-extract` ||\n // extract-css-chunks-webpack-plugin (old)\n module.type === `css/extract-chunks` ||\n // extract-css-chunks-webpack-plugin (new)\n module.type === `css/extract-css-chunks`\n )\n }\n\n // Contains various versions of the Webpack SplitChunksPlugin used in different build types\n const splitChunksConfigs: {\n [propName: string]: webpack.Options.SplitChunksOptions | false\n } = {\n dev: {\n cacheGroups: {\n default: false,\n vendors: false,\n },\n },\n prodGranular: {\n // Keep main and _app chunks unsplitted in webpack 5\n // as we don't need a separate vendor chunk from that\n // and all other chunk depend on them so there is no\n // duplication that need to be pulled out.\n chunks: isWebpack5\n ? (chunk) => !/^(polyfills|main|pages\\/_app)$/.test(chunk.name)\n : 'all',\n cacheGroups: {\n framework: {\n chunks: 'all',\n name: 'framework',\n // This regex ignores nested copies of framework libraries so they're\n // bundled with their issuer.\n // https://github.com/vercel/next.js/pull/9012\n test: /(?<!node_modules.*)[\\\\/]node_modules[\\\\/](react|react-dom|scheduler|prop-types|use-subscription)[\\\\/]/,\n priority: 40,\n // Don't let webpack eliminate this chunk (prevents this chunk from\n // becoming a part of the commons chunk)\n enforce: true,\n },\n lib: {\n test(module: {\n size: Function\n nameForCondition: Function\n }): boolean {\n return (\n module.size() > 160000 &&\n /node_modules[/\\\\]/.test(module.nameForCondition() || '')\n )\n },\n name(module: {\n type: string\n libIdent?: Function\n updateHash: (hash: crypto.Hash) => void\n }): string {\n const hash = crypto.createHash('sha1')\n if (isModuleCSS(module)) {\n module.updateHash(hash)\n } else {\n if (!module.libIdent) {\n throw new Error(\n `Encountered unknown module type: ${module.type}. Please open an issue.`\n )\n }\n\n hash.update(module.libIdent({ context: dir }))\n }\n\n return hash.digest('hex').substring(0, 8)\n },\n priority: 30,\n minChunks: 1,\n reuseExistingChunk: true,\n },\n commons: {\n name: 'commons',\n minChunks: totalPages,\n priority: 20,\n },\n ...(isWebpack5\n ? undefined\n : {\n default: false,\n vendors: false,\n shared: {\n name(module, chunks) {\n return (\n crypto\n .createHash('sha1')\n .update(\n chunks.reduce(\n (acc: string, chunk: webpack.compilation.Chunk) => {\n return acc + chunk.name\n },\n ''\n )\n )\n .digest('hex') + (isModuleCSS(module) ? '_CSS' : '')\n )\n },\n priority: 10,\n minChunks: 2,\n reuseExistingChunk: true,\n },\n }),\n },\n maxInitialRequests: 25,\n minSize: 20000,\n },\n }\n\n // Select appropriate SplitChunksPlugin config for this build\n let splitChunksConfig: webpack.Options.SplitChunksOptions | false\n if (dev) {\n splitChunksConfig = isWebpack5 ? false : splitChunksConfigs.dev\n } else {\n splitChunksConfig = splitChunksConfigs.prodGranular\n }\n\n const crossOrigin = config.crossOrigin\n\n\n let customApp = await findPageFile(pagesDirs, '/_app', config.pageExtensions)\n let customAppFile = null\n if (customApp) {\n customAppFile = path.resolve(\n path.join(customApp.pageBase, customApp.pagePath)\n )\n }\n\n const conformanceConfig = Object.assign(\n {\n ReactSyncScriptsConformanceCheck: {\n enabled: true,\n },\n MinificationConformanceCheck: {\n enabled: true,\n },\n DuplicatePolyfillsConformanceCheck: {\n enabled: true,\n BlockedAPIToBePolyfilled: Object.assign(\n [],\n ['fetch'],\n config.conformance?.DuplicatePolyfillsConformanceCheck\n ?.BlockedAPIToBePolyfilled || []\n ),\n },\n GranularChunksConformanceCheck: {\n enabled: true,\n },\n },\n config.conformance\n )\n\n async function handleExternals(\n context: string,\n request: string,\n getResolve: (\n options: any\n ) => (resolveContext: string, resolveRequest: string) => Promise<string>\n ) {\n // We need to externalize internal requests for files intended to\n // not be bundled.\n\n const isLocal: boolean =\n request.startsWith('.') ||\n // Always check for unix-style path, as webpack sometimes\n // normalizes as posix.\n path.posix.isAbsolute(request) ||\n // When on Windows, we also want to check for Windows-specific\n // absolute paths.\n (process.platform === 'win32' && path.win32.isAbsolute(request))\n\n // Relative requires don't need custom resolution, because they\n // are relative to requests we've already resolved here.\n // Absolute requires (require('/foo')) are extremely uncommon, but\n // also have no need for customization as they're already resolved.\n if (isLocal) {\n if (!/[/\\\\]next-server[/\\\\]/.test(request)) {\n return\n }\n } else {\n if (/^(?:next$|react(?:$|\\/))/.test(request)) {\n return `commonjs ${request}`\n }\n\n const notExternalModules = /^(?:private-next-pages\\/|next\\/(?:dist\\/pages\\/|(?:app|document|link|image|constants)$)|string-hash$)/\n if (notExternalModules.test(request)) {\n return\n }\n }\n\n const resolve = getResolve(WEBPACK_RESOLVE_OPTIONS)\n\n // Resolve the import with the webpack provided context, this\n // ensures we're resolving the correct version when multiple\n // exist.\n let res: string\n try {\n res = await resolve(context, request)\n } catch (err) {\n // If the request cannot be resolved, we need to tell webpack to\n // \"bundle\" it so that webpack shows an error (that it cannot be\n // resolved).\n return\n }\n\n // Same as above, if the request cannot be resolved we need to have\n // webpack \"bundle\" it so it surfaces the not found error.\n if (!res) {\n return\n }\n\n if (isLocal) {\n // we need to process next-server/lib/router/router so that\n // the DefinePlugin can inject process.env values\n const isNextExternal = /next[/\\\\]dist[/\\\\]next-server[/\\\\](?!lib[/\\\\]router[/\\\\]router)/.test(\n res\n )\n\n if (isNextExternal) {\n // Generate Next.js external import\n const externalRequest = path.posix.join(\n 'next',\n 'dist',\n path\n .relative(\n // Root of Next.js package:\n path.join(__dirname, '..'),\n res\n )\n // Windows path normalization\n .replace(/\\\\/g, '/')\n )\n return `commonjs ${externalRequest}`\n } else {\n return\n }\n }\n\n // Bundled Node.js code is relocated without its node_modules tree.\n // This means we need to make sure its request resolves to the same\n // package that'll be available at runtime. If it's not identical,\n // we need to bundle the code (even if it _should_ be external).\n let baseRes: string | null\n try {\n const baseResolve = getResolve(NODE_RESOLVE_OPTIONS)\n baseRes = await baseResolve(dir, request)\n } catch (err) {\n baseRes = null\n }\n\n // Same as above: if the package, when required from the root,\n // would be different from what the real resolution would use, we\n // cannot externalize it.\n // if res or baseRes are symlinks they could point to the the same file,\n // but the resolver will resolve symlinks so this is already handled\n if (baseRes !== res) {\n return\n }\n\n if (\n res.match(\n /next[/\\\\]dist[/\\\\]next-server[/\\\\](?!lib[/\\\\]router[/\\\\]router)/\n )\n ) {\n return `commonjs ${request}`\n }\n\n // Default pages have to be transpiled\n if (\n res.match(/[/\\\\]next[/\\\\]dist[/\\\\]/) ||\n // This is the @babel/plugin-transform-runtime \"helpers: true\" option\n res.match(/node_modules[/\\\\]@babel[/\\\\]runtime[/\\\\]/)\n ) {\n return\n }\n\n // Webpack itself has to be compiled because it doesn't always use module relative paths\n if (\n res.match(/node_modules[/\\\\]webpack/) ||\n res.match(/node_modules[/\\\\]css-loader/)\n ) {\n return\n }\n\n // Anything else that is standard JavaScript within `node_modules`\n // can be externalized.\n if (/node_modules[/\\\\].*\\.c?js$/.test(res)) {\n return `commonjs ${request}`\n }\n\n // Default behavior: bundle the code!\n }\n\n const emacsLockfilePattern = '**/.#*'\n\n let webpackConfig: webpack.Configuration = {\n externals: !isServer\n ? // make sure importing \"next\" is handled gracefully for client\n // bundles in case a user imported types and it wasn't removed\n // TODO: should we warn/error for this instead?\n ['next']\n : !isServerless\n ? [\n isWebpack5\n ? ({\n context,\n request,\n getResolve,\n }: {\n context: string\n request: string\n getResolve: (\n options: any\n ) => (\n resolveContext: string,\n resolveRequest: string\n ) => Promise<string>\n }) => handleExternals(context, request, getResolve)\n : (\n context: string,\n request: string,\n callback: (err?: Error, result?: string | undefined) => void\n ) =>\n handleExternals(\n context,\n request,\n () => (resolveContext: string, requestToResolve: string) =>\n new Promise((resolve) =>\n resolve(\n require.resolve(requestToResolve, {\n paths: [resolveContext],\n })\n )\n )\n ).then((result) => callback(undefined, result), callback),\n ]\n : [\n // When the 'serverless' target is used all node_modules will be compiled into the output bundles\n // So that the 'serverless' bundles have 0 runtime dependencies\n 'next/dist/compiled/@ampproject/toolbox-optimizer', // except this one\n\n // Mark this as external if not enabled so it doesn't cause a\n // webpack error from being missing\n ...(config.experimental.optimizeCss ? [] : ['critters']),\n ],\n optimization: {\n // Webpack 5 uses a new property for the same functionality\n ...(isWebpack5 ? { emitOnErrors: !dev } : { noEmitOnErrors: dev }),\n checkWasmTypes: false,\n nodeEnv: false,\n splitChunks: isServer\n ? isWebpack5 && !dev\n ? ({\n filename: '[name].js',\n // allow to split entrypoints\n chunks: 'all',\n // size of files is not so relevant for server build\n // we want to prefer deduplication to load less code\n minSize: 1000,\n } as any)\n : false\n : splitChunksConfig,\n runtimeChunk: isServer\n ? isWebpack5 && !isLikeServerless\n ? { name: 'webpack-runtime' }\n : undefined\n : { name: CLIENT_STATIC_FILES_RUNTIME_WEBPACK },\n minimize: !(dev || isServer),\n minimizer: [\n // Minify JavaScript\n (compiler: webpack.Compiler) => {\n // @ts-ignore No typings yet\n const {\n TerserPlugin,\n } = require('./webpack/plugins/terser-webpack-plugin/src/index.js')\n new TerserPlugin({\n cacheDir: path.join(distDir, 'cache', 'next-minifier'),\n parallel: config.experimental.cpus,\n terserOptions,\n }).apply(compiler)\n },\n // Minify CSS\n (compiler: webpack.Compiler) => {\n const {\n CssMinimizerPlugin,\n } = require('./webpack/plugins/css-minimizer-plugin')\n new CssMinimizerPlugin({\n postcssOptions: {\n map: {\n // `inline: false` generates the source map in a separate file.\n // Otherwise, the CSS file is needlessly large.\n inline: false,\n // `annotation: false` skips appending the `sourceMappingURL`\n // to the end of the CSS file. Webpack already handles this.\n annotation: false,\n },\n },\n }).apply(compiler)\n },\n ],\n },\n context: dir,\n node: {\n setImmediate: false,\n },\n // Kept as function to be backwards compatible\n // @ts-ignore TODO webpack 5 typings needed\n entry: async () => {\n return {\n ...(clientEntries ? clientEntries : {}),\n ...entrypoints,\n }\n },\n watchOptions: {\n aggregateTimeout: 5,\n ignored: [\n '**/.git/**',\n '**/node_modules/**',\n '**/.next/**',\n // can be removed after https://github.com/paulmillr/chokidar/issues/955 is released\n emacsLockfilePattern,\n ],\n },\n output: {\n ...(isWebpack5\n ? {\n environment: {\n arrowFunction: false,\n bigIntLiteral: false,\n const: false,\n destructuring: false,\n dynamicImport: false,\n forOf: false,\n module: false,\n },\n }\n : {}),\n // we must set publicPath to an empty value to override the default of\n // auto which doesn't work in IE11\n publicPath: `${config.assetPrefix || ''}/_next/`,\n path:\n isServer && isWebpack5 && !dev\n ? path.join(outputPath, 'chunks')\n : outputPath,\n // On the server we don't use hashes\n filename: isServer\n ? isWebpack5 && !dev\n ? '../[name].js'\n : '[name].js'\n : `static/chunks/${isDevFallback ? 'fallback/' : ''}[name]${\n dev ? '' : isWebpack5 ? '-[contenthash]' : '-[chunkhash]'\n }.js`,\n library: isServer ? undefined : '_N_E',\n libraryTarget: isServer ? 'commonjs2' : 'assign',\n hotUpdateChunkFilename: isWebpack5\n ? 'static/webpack/[id].[fullhash].hot-update.js'\n : 'static/webpack/[id].[hash].hot-update.js',\n hotUpdateMainFilename: isWebpack5\n ? 'static/webpack/[fullhash].[runtime].hot-update.json'\n : 'static/webpack/[hash].hot-update.json',\n // This saves chunks with the name given via `import()`\n chunkFilename: isServer\n ? '[name].js'\n : `static/chunks/${isDevFallback ? 'fallback/' : ''}${\n dev ? '[name]' : '[name].[contenthash]'\n }.js`,\n strictModuleExceptionHandling: true,\n crossOriginLoading: crossOrigin,\n futureEmitAssets: !dev,\n webassemblyModuleFilename: 'static/wasm/[modulehash].wasm',\n },\n performance: false,\n // TODO: fix this\n // @ts-ignore\n resolve: resolveConfig,\n resolveLoader: {\n // The loaders Next.js provides\n alias: [\n 'emit-file-loader',\n 'error-loader',\n 'next-babel-loader',\n 'next-client-pages-loader',\n 'next-image-loader',\n 'next-serverless-loader',\n 'noop-loader',\n 'next-style-loader',\n ].reduce((alias, loader) => {\n // using multiple aliases to replace `resolveLoader.modules`\n alias[loader] = path.join(__dirname, 'webpack', 'loaders', loader)\n\n return alias\n }, {} as Record<string, string>),\n modules: [\n 'node_modules',\n ...nodePathList, // Support for NODE_PATH environment variable\n ],\n plugins: isWebpack5 ? [] : [require('pnp-webpack-plugin')],\n },\n module: {\n rules: [\n ...(isWebpack5\n ? [\n // TODO: FIXME: do NOT webpack 5 support with this\n // x-ref: https://github.com/webpack/webpack/issues/11467\n {\n test: /\\.m?js/,\n resolve: {\n fullySpecified: false,\n },\n } as any,\n ]\n : []),\n {\n test: /\\.(tsx|ts|js|mjs|jsx)$/,\n ...(config.experimental.externalDir\n ? // Allowing importing TS/TSX files from outside of the root dir.\n {}\n : { include: [dir, ...babelIncludeRegexes] }),\n exclude: (excludePath: string) => {\n if (babelIncludeRegexes.some((r) => r.test(excludePath))) {\n return false\n }\n return /node_modules/.test(excludePath)\n },\n use: hasReactRefresh\n ? [\n require.resolve('@next/react-refresh-utils/loader'),\n defaultLoaders.babel,\n ]\n : defaultLoaders.babel,\n },\n ].filter(Boolean),\n },\n plugins: [\n hasReactRefresh && new ReactRefreshWebpackPlugin(webpack),\n // Makes sure `Buffer` and `process` are polyfilled in client-side bundles (same behavior as webpack 4)\n isWebpack5 &&\n !isServer &&\n new webpack.ProvidePlugin({\n Buffer: [require.resolve('buffer'), 'Buffer'],\n process: [require.resolve('process')],\n }),\n // This plugin makes sure `output.filename` is used for entry chunks\n !isWebpack5 && new ChunkNamesPlugin(),\n new webpack.DefinePlugin({\n ...Object.keys(process.env).reduce(\n (prev: { [key: string]: string }, key: string) => {\n if (key.startsWith('NEXT_PUBLIC_')) {\n prev[`process.env.${key}`] = JSON.stringify(process.env[key]!)\n }\n return prev\n },\n {}\n ),\n ...Object.keys(config.env).reduce((acc, key) => {\n if (/^(?:NODE_.+)|^(?:__.+)$/i.test(key)) {\n throw new Error(\n `The key \"${key}\" under \"env\" in next.config.js is not allowed. https://nextjs.org/docs/messages/env-key-not-allowed`\n )\n }\n\n return {\n ...acc,\n [`process.env.${key}`]: JSON.stringify(config.env[key]),\n }\n }, {}),\n // TODO: enforce `NODE_ENV` on `process.env`, and add a test:\n 'process.env.NODE_ENV': JSON.stringify(\n dev ? 'development' : 'production'\n ),\n 'process.env.__NEXT_CROSS_ORIGIN': JSON.stringify(crossOrigin),\n 'process.browser': JSON.stringify(!isServer),\n 'process.env.__NEXT_TEST_MODE': JSON.stringify(\n process.env.__NEXT_TEST_MODE\n ),\n // This is used in client/dev-error-overlay/hot-dev-client.js to replace the dist directory\n ...(dev && !isServer\n ? {\n 'process.env.__NEXT_DIST_DIR': JSON.stringify(distDir),\n }\n : {}),\n 'process.env.__NEXT_TRAILING_SLASH': JSON.stringify(\n config.trailingSlash\n ),\n 'process.env.__NEXT_BUILD_INDICATOR': JSON.stringify(\n config.devIndicators.buildActivity\n ),\n 'process.env.__NEXT_PLUGINS': JSON.stringify(\n config.experimental.plugins\n ),\n 'process.env.__NEXT_STRICT_MODE': JSON.stringify(\n config.reactStrictMode\n ),\n 'process.env.__NEXT_REACT_ROOT': JSON.stringify(hasReactRoot),\n 'process.env.__NEXT_OPTIMIZE_FONTS': JSON.stringify(\n config.optimizeFonts && !dev\n ),\n 'process.env.__NEXT_OPTIMIZE_IMAGES': JSON.stringify(\n config.experimental.optimizeImages\n ),\n 'process.env.__NEXT_OPTIMIZE_CSS': JSON.stringify(\n config.experimental.optimizeCss && !dev\n ),\n 'process.env.__NEXT_SCROLL_RESTORATION': JSON.stringify(\n config.experimental.scrollRestoration\n ),\n 'process.env.__NEXT_IMAGE_OPTS': JSON.stringify({\n deviceSizes: config.images.deviceSizes,\n imageSizes: config.images.imageSizes,\n path: config.images.path,\n loader: config.images.loader,\n ...(dev\n ? {\n // pass domains in development to allow validating on the client\n domains: config.images.domains,\n }\n : {}),\n }),\n 'process.env.__NEXT_ROUTER_BASEPATH': JSON.stringify(config.basePath),\n 'process.env.__NEXT_HAS_REWRITES': JSON.stringify(hasRewrites),\n 'process.env.__NEXT_I18N_SUPPORT': JSON.stringify(!!config.i18n),\n 'process.env.__NEXT_I18N_DOMAINS': JSON.stringify(config.i18n?.domains),\n 'process.env.__NEXT_ANALYTICS_ID': JSON.stringify(config.analyticsId),\n ...(isServer\n ? {\n // Fix bad-actors in the npm ecosystem (e.g. `node-formidable`)\n // This is typically found in unmaintained modules from the\n // pre-webpack era (common in server-side code)\n 'global.GENTLY': JSON.stringify(false),\n }\n : undefined),\n // stub process.env with proxy to warn a missing value is\n // being accessed in development mode\n ...(config.experimental.pageEnv && dev\n ? {\n 'process.env': `\n new Proxy(${isServer ? 'process.env' : '{}'}, {\n get(target, prop) {\n if (typeof target[prop] === 'undefined') {\n console.warn(\\`An environment variable (\\${prop}) that was not provided in the environment was accessed.\\nSee more info here: https://nextjs.org/docs/messages/missing-env-value\\`)\n }\n return target[prop]\n }\n })\n `,\n }\n : {}),\n }),\n !isServer &&\n new ReactLoadablePlugin({\n filename: REACT_LOADABLE_MANIFEST,\n pagesDirs,\n }),\n !isServer && new DropClientPage(),\n // Moment.js is an extremely popular library that bundles large locale files\n // by default due to how Webpack interprets its code. This is a practical\n // solution that requires the user to opt into importing specific locales.\n // https://github.com/jmblog/how-to-optimize-momentjs-with-webpack\n config.excludeDefaultMomentLocales &&\n new webpack.IgnorePlugin({\n resourceRegExp: /^\\.\\/locale$/,\n contextRegExp: /moment$/,\n }),\n ...(dev\n ? (() => {\n // Even though require.cache is server only we have to clear assets from both compilations\n // This is because the client compilation generates the build manifest that's used on the server side\n const {\n NextJsRequireCacheHotReloader,\n } = require('./webpack/plugins/nextjs-require-cache-hot-reloader')\n const devPlugins = [new NextJsRequireCacheHotReloader()]\n\n if (!isServer) {\n devPlugins.push(new webpack.HotModuleReplacementPlugin())\n }\n\n return devPlugins\n })()\n : []),\n // Webpack 5 no longer requires this plugin in production:\n !isWebpack5 && !dev && new webpack.HashedModuleIdsPlugin(),\n !dev &&\n new webpack.IgnorePlugin({\n resourceRegExp: /react-is/,\n contextRegExp: /(next-server|next)[\\\\/]dist[\\\\/]/,\n }),\n isServerless && isServer && new ServerlessPlugin(),\n isServer &&\n new PagesManifestPlugin({ serverless: isLikeServerless, dev }),\n !isWebpack5 &&\n target === 'server' &&\n isServer &&\n new NextJsSSRModuleCachePlugin({ outputPath }),\n isServer && new NextJsSsrImportPlugin(),\n !isServer &&\n new BuildManifestPlugin({\n buildId,\n rewrites,\n isDevFallback,\n }),\n !dev &&\n !isServer &&\n config.experimental.stats &&\n new BuildStatsPlugin({\n distDir,\n }),\n new ProfilingPlugin(),\n config.optimizeFonts &&\n !dev &&\n isServer &&\n (function () {\n const {\n FontStylesheetGatheringPlugin,\n } = require('./webpack/plugins/font-stylesheet-gathering-plugin') as {\n FontStylesheetGatheringPlugin: typeof import('./webpack/plugins/font-stylesheet-gathering-plugin').FontStylesheetGatheringPlugin\n }\n return new FontStylesheetGatheringPlugin({\n isLikeServerless,\n })\n })(),\n config.experimental.conformance &&\n !isWebpack5 &&\n !dev &&\n new WebpackConformancePlugin({\n tests: [\n !isServer &&\n conformanceConfig.MinificationConformanceCheck.enabled &&\n new MinificationConformanceCheck(),\n conformanceConfig.ReactSyncScriptsConformanceCheck.enabled &&\n new ReactSyncScriptsConformanceCheck({\n AllowedSources:\n conformanceConfig.ReactSyncScriptsConformanceCheck\n .allowedSources || [],\n }),\n !isServer &&\n conformanceConfig.DuplicatePolyfillsConformanceCheck.enabled &&\n new DuplicatePolyfillsConformanceCheck({\n BlockedAPIToBePolyfilled:\n conformanceConfig.DuplicatePolyfillsConformanceCheck\n .BlockedAPIToBePolyfilled,\n }),\n !isServer &&\n conformanceConfig.GranularChunksConformanceCheck.enabled &&\n new GranularChunksConformanceCheck(\n splitChunksConfigs.prodGranular\n ),\n ].filter(Boolean),\n }),\n new WellKnownErrorsPlugin(),\n ].filter((Boolean as any) as ExcludesFalse),\n }\n\n // Support tsconfig and jsconfig baseUrl\n if (resolvedBaseUrl) {\n webpackConfig.resolve?.modules?.push(resolvedBaseUrl)\n }\n\n if (jsConfig?.compilerOptions?.paths && resolvedBaseUrl) {\n webpackConfig.resolve?.plugins?.unshift(\n new JsConfigPathsPlugin(jsConfig.compilerOptions.paths, resolvedBaseUrl)\n )\n }\n\n if (isWebpack5) {\n // futureEmitAssets is on by default in webpack 5\n delete webpackConfig.output?.futureEmitAssets\n\n if (isServer && dev) {\n // Enable building of client compilation before server compilation in development\n // @ts-ignore dependencies exists\n webpackConfig.dependencies = ['client']\n }\n // webpack 5 no longer polyfills Node.js modules:\n if (webpackConfig.node) delete webpackConfig.node.setImmediate\n\n // Due to bundling of webpack the default values can't be correctly detected\n // This restores the webpack defaults\n // @ts-ignore webpack 5\n webpackConfig.snapshot = {}\n if (process.versions.pnp === '3') {\n const match = /^(.+?)[\\\\/]cache[\\\\/]jest-worker-npm-[^\\\\/]+\\.zip[\\\\/]node_modules[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.managedPaths = [\n path.resolve(match[1], 'unplugged'),\n ]\n }\n } else {\n const match = /^(.+?[\\\\/]node_modules)[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.managedPaths = [match[1]]\n }\n }\n if (process.versions.pnp === '1') {\n const match = /^(.+?[\\\\/]v4)[\\\\/]npm-jest-worker-[^\\\\/]+-[\\da-f]{40}[\\\\/]node_modules[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.immutablePaths = [match[1]]\n }\n } else if (process.versions.pnp === '3') {\n const match = /^(.+?)[\\\\/]jest-worker-npm-[^\\\\/]+\\.zip[\\\\/]node_modules[\\\\/]/.exec(\n require.resolve('jest-worker')\n )\n if (match) {\n // @ts-ignore webpack 5\n webpackConfig.snapshot.immutablePaths = [match[1]]\n }\n }\n\n if (dev) {\n if (!webpackConfig.optimization) {\n webpackConfig.optimization = {}\n }\n webpackConfig.optimization.providedExports = false\n webpackConfig.optimization.usedExports = false\n }\n\n const configVars = JSON.stringify({\n crossOrigin: config.crossOrigin,\n pageExtensions: config.pageExtensions,\n trailingSlash: config.trailingSlash,\n buildActivity: config.devIndicators.buildActivity,\n plugins: config.experimental.plugins,\n reactStrictMode: config.reactStrictMode,\n reactMode: config.experimental.reactMode,\n optimizeFonts: config.optimizeFonts,\n optimizeImages: config.experimental.optimizeImages,\n optimizeCss: config.experimental.optimizeCss,\n scrollRestoration: config.experimental.scrollRestoration,\n basePath: config.basePath,\n pageEnv: config.experimental.pageEnv,\n excludeDefaultMomentLocales: config.excludeDefaultMomentLocales,\n assetPrefix: config.assetPrefix,\n disableOptimizedLoading: config.experimental.disableOptimizedLoading,\n target,\n reactProductionProfiling,\n webpack: !!config.webpack,\n hasRewrites,\n })\n\n const cache: any = {\n type: 'filesystem',\n // Includes:\n // - Next.js version\n // - next.config.js keys that affect compilation\n version: `${process.env.__NEXT_VERSION}|${configVars}`,\n cacheDirectory: path.join(distDir, 'cache', 'webpack'),\n }\n\n // Adds `next.config.js` as a buildDependency when custom webpack config is provided\n if (config.webpack && config.configFile) {\n cache.buildDependencies = {\n config: [config.configFile],\n }\n }\n\n webpackConfig.cache = cache\n\n if (process.env.NEXT_WEBPACK_LOGGING) {\n const logInfra = process.env.NEXT_WEBPACK_LOGGING.includes(\n 'infrastructure'\n )\n const logProfileClient = process.env.NEXT_WEBPACK_LOGGING.includes(\n 'profile-client'\n )\n const logProfileServer = process.env.NEXT_WEBPACK_LOGGING.includes(\n 'profile-server'\n )\n const logDefault = !logInfra && !logProfileClient && !logProfileServer\n\n if (logDefault || logInfra) {\n // @ts-ignore TODO: remove ignore when webpack 5 is stable\n webpackConfig.infrastructureLogging = {\n level: 'verbose',\n debug: /FileSystemInfo/,\n }\n }\n\n if (\n logDefault ||\n (logProfileClient && !isServer) ||\n (logProfileServer && isServer)\n ) {\n webpackConfig.plugins!.push((compiler: webpack.Compiler) => {\n compiler.hooks.done.tap('next-webpack-logging', (stats) => {\n console.log(\n stats.toString({\n colors: true,\n // @ts-ignore TODO: remove ignore when webpack 5 is stable\n logging: logDefault ? 'log' : 'verbose',\n })\n )\n })\n })\n }\n\n if ((logProfileClient && !isServer) || (logProfileServer && isServer)) {\n webpackConfig.plugins!.push(\n new webpack.ProgressPlugin({\n // @ts-ignore TODO: remove ignore when webpack 5 is stable\n profile: true,\n })\n )\n webpackConfig.profile = true\n }\n }\n }\n\n webpackConfig = await buildConfiguration(webpackConfig, {\n rootDirectory: dir,\n customAppFile,\n isDevelopment: dev,\n isServer,\n assetPrefix: config.assetPrefix || '',\n sassOptions: config.sassOptions,\n productionBrowserSourceMaps: config.productionBrowserSourceMaps,\n future: config.future,\n isCraCompat: config.experimental.craCompat,\n })\n\n let originalDevtool = webpackConfig.devtool\n if (typeof config.webpack === 'function') {\n webpackConfig = config.webpack(webpackConfig, {\n dir,\n dev,\n isServer,\n buildId,\n config,\n defaultLoaders,\n totalPages,\n webpack,\n })\n\n if (!webpackConfig) {\n throw new Error(\n 'Webpack config is undefined. You may have forgot to return properly from within the \"webpack\" method of your next.config.js.\\n' +\n 'See more info here https://nextjs.org/docs/messages/undefined-webpack-config'\n )\n }\n\n if (dev && originalDevtool !== webpackConfig.devtool) {\n webpackConfig.devtool = originalDevtool\n devtoolRevertWarning(originalDevtool)\n }\n\n if (typeof (webpackConfig as any).then === 'function') {\n console.warn(\n '> Promise returned in next config. https://nextjs.org/docs/messages/promise-in-next-config'\n )\n }\n }\n\n if (!config.images.disableStaticImages && isWebpack5) {\n if (!webpackConfig.module) {\n webpackConfig.module = { rules: [] }\n }\n\n const hasSvg = webpackConfig.module.rules.some(\n (rule) =>\n 'test' in rule && rule.test instanceof RegExp && rule.test.test('.svg')\n )\n\n // Exclude svg if the user already defined it in custom\n // webpack config such as `@svgr/webpack` plugin or\n // the `babel-plugin-inline-react-svg` plugin.\n webpackConfig.module.rules.push({\n test: hasSvg\n ? /\\.(png|jpg|jpeg|gif|webp|ico|bmp)$/i\n : /\\.(png|svg|jpg|jpeg|gif|webp|ico|bmp)$/i,\n loader: 'next-image-loader',\n dependency: { not: ['url'] },\n // @ts-ignore\n issuer: { not: regexLikeCss },\n })\n }\n\n if (\n config.experimental.craCompat &&\n webpackConfig.module?.rules &&\n webpackConfig.plugins\n ) {\n // CRA prevents loading all locales by default\n // https://github.com/facebook/create-react-app/blob/fddce8a9e21bf68f37054586deb0c8636a45f50b/packages/react-scripts/config/webpack.config.js#L721\n webpackConfig.plugins.push(\n new webpack.IgnorePlugin(/^\\.\\/locale$/, /moment$/)\n )\n\n // CRA allows importing non-webpack handled files with file-loader\n // these need to be the last rule to prevent catching other items\n // https://github.com/facebook/create-react-app/blob/fddce8a9e21bf68f37054586deb0c8636a45f50b/packages/react-scripts/config/webpack.config.js#L594\n const fileLoaderExclude = [/\\.(js|mjs|jsx|ts|tsx|json)$/]\n const fileLoader = isWebpack5\n ? {\n exclude: fileLoaderExclude,\n issuer: fileLoaderExclude,\n type: 'asset/resource',\n generator: {\n publicPath: '/_next/',\n filename: 'static/media/[name].[hash:8].[ext]',\n },\n }\n : {\n loader: require.resolve('next/dist/compiled/file-loader'),\n // Exclude `js` files to keep \"css\" loader working as it injects\n // its runtime that would otherwise be processed through \"file\" loader.\n // Also exclude `html` and `json` extensions so they get processed\n // by webpacks internal loaders.\n exclude: fileLoaderExclude,\n issuer: fileLoaderExclude,\n options: {\n publicPath: '/_next/static/media',\n outputPath: 'static/media',\n name: '[name].[hash:8].[ext]',\n },\n }\n\n const topRules = []\n const innerRules = []\n\n for (const rule of webpackConfig.module.rules) {\n if (rule.resolve) {\n topRules.push(rule)\n } else {\n if (\n rule.oneOf &&\n !(rule.test || rule.exclude || rule.resource || rule.issuer)\n ) {\n rule.oneOf.forEach((r) => innerRules.push(r))\n } else {\n innerRules.push(rule)\n }\n }\n }\n\n webpackConfig.module.rules = [\n ...(topRules as any),\n {\n oneOf: [...innerRules, fileLoader],\n },\n ]\n }\n\n // Backwards compat with webpack-dev-middleware options object\n if (typeof config.webpackDevMiddleware === 'function') {\n const options = config.webpackDevMiddleware({\n watchOptions: webpackConfig.watchOptions,\n })\n if (options.watchOptions) {\n webpackConfig.watchOptions = options.watchOptions\n }\n }\n\n function canMatchCss(rule: webpack.RuleSetCondition | undefined): boolean {\n if (!rule) {\n return false\n }\n\n const fileNames = [\n '/tmp/test.css',\n '/tmp/test.scss',\n '/tmp/test.sass',\n '/tmp/test.less',\n '/tmp/test.styl',\n ]\n\n if (rule instanceof RegExp && fileNames.some((input) => rule.test(input))) {\n return true\n }\n\n if (typeof rule === 'function') {\n if (\n fileNames.some((input) => {\n try {\n if (rule(input)) {\n return true\n }\n } catch (_) {}\n return false\n })\n ) {\n return true\n }\n }\n\n if (Array.isArray(rule) && rule.some(canMatchCss)) {\n return true\n }\n\n return false\n }\n\n const hasUserCssConfig =\n webpackConfig.module?.rules.some(\n (rule) => canMatchCss(rule.test) || canMatchCss(rule.include)\n ) ?? false\n\n if (hasUserCssConfig) {\n // only show warning for one build\n if (isServer) {\n console.warn(\n chalk.yellow.bold('Warning: ') +\n chalk.bold(\n 'Built-in CSS support is being disabled due to custom CSS configuration being detected.\\n'\n ) +\n 'See here for more info: https://nextjs.org/docs/messages/built-in-css-disabled\\n'\n )\n }\n\n if (webpackConfig.module?.rules.length) {\n // Remove default CSS Loader\n webpackConfig.module.rules = webpackConfig.module.rules.filter(\n (r) =>\n !(\n typeof r.oneOf?.[0]?.options === 'object' &&\n r.oneOf[0].options.__next_css_remove === true\n )\n )\n }\n if (webpackConfig.plugins?.length) {\n // Disable CSS Extraction Plugin\n webpackConfig.plugins = webpackConfig.plugins.filter(\n (p) => (p as any).__next_css_remove !== true\n )\n }\n if (webpackConfig.optimization?.minimizer?.length) {\n // Disable CSS Minifier\n webpackConfig.optimization.minimizer = webpackConfig.optimization.minimizer.filter(\n (e) => (e as any).__next_css_remove !== true\n )\n }\n } else if (!config.future.strictPostcssConfiguration) {\n await __overrideCssConfiguration(dir, !dev, webpackConfig)\n }\n\n // Inject missing React Refresh loaders so that development mode is fast:\n if (hasReactRefresh) {\n attachReactRefresh(webpackConfig, defaultLoaders.babel)\n }\n\n // check if using @zeit/next-typescript and show warning\n if (\n isServer &&\n webpackConfig.module &&\n Array.isArray(webpackConfig.module.rules)\n ) {\n let foundTsRule = false\n\n webpackConfig.module.rules = webpackConfig.module.rules.filter(\n (rule): boolean => {\n if (!(rule.test instanceof RegExp)) return true\n if ('noop.ts'.match(rule.test) && !'noop.js'.match(rule.test)) {\n // remove if it matches @zeit/next-typescript\n foundTsRule = rule.use === defaultLoaders.babel\n return !foundTsRule\n }\n return true\n }\n )\n\n if (foundTsRule) {\n console.warn(\n '\\n@zeit/next-typescript is no longer needed since Next.js has built-in support for TypeScript now. Please remove it from your next.config.js and your .babelrc\\n'\n )\n }\n }\n\n // Patch `@zeit/next-sass`, `@zeit/next-less`, `@zeit/next-stylus` for compatibility\n if (webpackConfig.module && Array.isArray(webpackConfig.module.rules)) {\n ;[].forEach.call(webpackConfig.module.rules, function (\n rule: webpack.RuleSetRule\n ) {\n if (!(rule.test instanceof RegExp && Array.isArray(rule.use))) {\n return\n }\n\n const isSass =\n rule.test.source === '\\\\.scss$' || rule.test.source === '\\\\.sass$'\n const isLess = rule.test.source === '\\\\.less$'\n const isCss = rule.test.source === '\\\\.css$'\n const isStylus = rule.test.source === '\\\\.styl$'\n\n // Check if the rule we're iterating over applies to Sass, Less, or CSS\n if (!(isSass || isLess || isCss || isStylus)) {\n return\n }\n\n ;[].forEach.call(rule.use, function (use: webpack.RuleSetUseItem) {\n if (\n !(\n use &&\n typeof use === 'object' &&\n // Identify use statements only pertaining to `css-loader`\n (use.loader === 'css-loader' ||\n use.loader === 'css-loader/locals') &&\n use.options &&\n typeof use.options === 'object' &&\n // The `minimize` property is a good heuristic that we need to\n // perform this hack. The `minimize` property was only valid on\n // old `css-loader` versions. Custom setups (that aren't next-sass,\n // next-less or next-stylus) likely have the newer version.\n // We still handle this gracefully below.\n (Object.prototype.hasOwnProperty.call(use.options, 'minimize') ||\n Object.prototype.hasOwnProperty.call(\n use.options,\n 'exportOnlyLocals'\n ))\n )\n ) {\n return\n }\n\n // Try to monkey patch within a try-catch. We shouldn't fail the build\n // if we cannot pull this off.\n // The user may not even be using the `next-sass` or `next-less` or\n // `next-stylus` plugins.\n // If it does work, great!\n try {\n // Resolve the version of `@zeit/next-css` as depended on by the Sass,\n // Less or Stylus plugin.\n const correctNextCss = require.resolve('@zeit/next-css', {\n paths: [\n isCss\n ? // Resolve `@zeit/next-css` from the base directory\n dir\n : // Else, resolve it from the specific plugins\n require.resolve(\n isSass\n ? '@zeit/next-sass'\n : isLess\n ? '@zeit/next-less'\n : isStylus\n ? '@zeit/next-stylus'\n : 'next'\n ),\n ],\n })\n\n // If we found `@zeit/next-css` ...\n if (correctNextCss) {\n // ... resolve the version of `css-loader` shipped with that\n // package instead of whichever was hoisted highest in your\n // `node_modules` tree.\n const correctCssLoader = require.resolve(use.loader, {\n paths: [correctNextCss],\n })\n if (correctCssLoader) {\n // We saved the user from a failed build!\n use.loader = correctCssLoader\n }\n }\n } catch (_) {\n // The error is not required to be handled.\n }\n })\n })\n }\n\n // Backwards compat for `main.js` entry key\n // and setup of dependencies between entries\n // we can't do that in the initial entry for\n // backward-compat reasons\n const originalEntry: any = webpackConfig.entry\n if (typeof originalEntry !== 'undefined') {\n const updatedEntry = async () => {\n const entry: WebpackEntrypoints =\n typeof originalEntry === 'function'\n ? await originalEntry()\n : originalEntry\n // Server compilation doesn't have main.js\n if (\n clientEntries &&\n Array.isArray(entry['main.js']) &&\n entry['main.js'].length > 0\n ) {\n const originalFile = clientEntries[\n CLIENT_STATIC_FILES_RUNTIME_MAIN\n ] as string\n entry[CLIENT_STATIC_FILES_RUNTIME_MAIN] = [\n ...entry['main.js'],\n originalFile,\n ]\n }\n delete entry['main.js']\n\n if (isWebpack5 && !isServer) {\n for (const name of Object.keys(entry)) {\n if (\n name === 'polyfills' ||\n name === 'main' ||\n name === 'amp' ||\n name === 'react-refresh'\n )\n continue\n const dependOn =\n name.startsWith('pages/') && name !== 'pages/_app'\n ? 'pages/_app'\n : 'main'\n const old = entry[name]\n if (typeof old === 'object' && !Array.isArray(old)) {\n entry[name] = {\n dependOn,\n ...old,\n }\n } else {\n entry[name] = {\n import: old,\n dependOn,\n }\n }\n }\n }\n\n return entry\n }\n // @ts-ignore webpack 5 typings needed\n webpackConfig.entry = updatedEntry\n }\n\n if (!dev) {\n // entry is always a function\n webpackConfig.entry = await (webpackConfig.entry as webpack.EntryFunc)()\n }\n\n return webpackConfig\n}\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js b/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js | |
index 8f5f4e5..72070ae 100644 | |
--- a/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js | |
+++ b/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js | |
@@ -1,8 +1,8 @@ | |
"use strict";exports.__esModule=true;exports.default=void 0;var _path=require("path");var Log=_interopRequireWildcard(require("../../output/log"));var _index=_interopRequireDefault(require("./babel-loader/src/index"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap();_getRequireWildcardCache=function(){return cache;};return cache;}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}// increment 'p' to invalidate cache | |
// eslint-disable-next-line no-useless-concat | |
-const cacheKey='babel-cache-'+'p'+'-';const nextBabelPreset=require('../../babel/preset');const customBabelLoader=(0,_index.default)(babel=>{const presetItem=babel.createConfigItem(nextBabelPreset,{type:'preset'});const applyCommonJs=babel.createConfigItem(require('../../babel/plugins/commonjs'),{type:'plugin'});const commonJsItem=babel.createConfigItem(require('next/dist/compiled/babel/plugin-transform-modules-commonjs'),{type:'plugin'});const configs=new Set();return{customOptions(opts){const custom={isServer:opts.isServer,pagesDir:opts.pagesDir,development:opts.development,hasReactRefresh:opts.hasReactRefresh,hasJsxRuntime:opts.hasJsxRuntime};const filename=(0,_path.join)(opts.cwd,'noop.js');const loader=Object.assign(opts.cache?{cacheDirectory:(0,_path.join)(opts.distDir,'cache','next-babel-loader'),cacheIdentifier:cacheKey+(opts.isServer?'-server':'')+'-new-polyfills'+(opts.development?'-development':'-production')+(opts.hasReactRefresh?'-react-refresh':'')+(opts.hasJsxRuntime?'-jsx-runtime':'')+JSON.stringify(babel.loadPartialConfig({filename,cwd:opts.cwd,sourceFileName:filename}).options)}:{cacheDirectory:false},opts);delete loader.isServer;delete loader.cache;delete loader.distDir;delete loader.pagesDir;delete loader.development;delete loader.hasReactRefresh;delete loader.hasJsxRuntime;return{loader,custom};},config(cfg,{source,customOptions:{isServer,pagesDir,development,hasReactRefresh,hasJsxRuntime}}){const filename=this.resourcePath;const options=Object.assign({},cfg.options);const isPageFile=filename.startsWith(pagesDir);if(cfg.hasFilesystemConfig()){for(const file of[cfg.babelrc,cfg.config]){// We only log for client compilation otherwise there will be double output | |
+const cacheKey='babel-cache-'+'p'+'-';const nextBabelPreset=require('../../babel/preset');const customBabelLoader=(0,_index.default)(babel=>{const presetItem=babel.createConfigItem(nextBabelPreset,{type:'preset'});const applyCommonJs=babel.createConfigItem(require('../../babel/plugins/commonjs'),{type:'plugin'});const commonJsItem=babel.createConfigItem(require('next/dist/compiled/babel/plugin-transform-modules-commonjs'),{type:'plugin'});const configs=new Set();return{customOptions(opts){const custom={isServer:opts.isServer,pagesDirs:opts.pagesDirs,development:opts.development,hasReactRefresh:opts.hasReactRefresh,hasJsxRuntime:opts.hasJsxRuntime};const filename=(0,_path.join)(opts.cwd,'noop.js');const loader=Object.assign(opts.cache?{cacheDirectory:(0,_path.join)(opts.distDir,'cache','next-babel-loader'),cacheIdentifier:cacheKey+(opts.isServer?'-server':'')+'-new-polyfills'+(opts.development?'-development':'-production')+(opts.hasReactRefresh?'-react-refresh':'')+(opts.hasJsxRuntime?'-jsx-runtime':'')+JSON.stringify(babel.loadPartialConfig({filename,cwd:opts.cwd,sourceFileName:filename}).options)}:{cacheDirectory:false},opts);delete loader.isServer;delete loader.cache;delete loader.distDir;delete loader.pagesDirs;delete loader.development;delete loader.hasReactRefresh;delete loader.hasJsxRuntime;return{loader,custom};},config(cfg,{source,customOptions:{isServer,pagesDirs,development,hasReactRefresh,hasJsxRuntime}}){const filename=this.resourcePath;const options=Object.assign({},cfg.options);const isPageFile=new RegExp(`^((${pagesDirs.join(')|(')}))`).test(filename);if(cfg.hasFilesystemConfig()){for(const file of[cfg.babelrc,cfg.config]){// We only log for client compilation otherwise there will be double output | |
if(file&&!isServer&&!configs.has(file)){configs.add(file);Log.info(`Using external babel configuration from ${file}`);}}}else{// Add our default preset if the no "babelrc" found. | |
-options.presets=[...options.presets,presetItem];}options.caller.isServer=isServer;options.caller.isDev=development;options.caller.hasJsxRuntime=hasJsxRuntime;options.caller.pagesDir=pagesDir;const emitWarning=this.emitWarning.bind(this);Object.defineProperty(options.caller,'onWarning',{enumerable:false,writable:false,value:options.caller.onWarning=function(reason){if(!(reason instanceof Error)){reason=new Error(reason);}emitWarning(reason);}});options.plugins=options.plugins||[];if(hasReactRefresh){const reactRefreshPlugin=babel.createConfigItem([require('react-refresh/babel'),{skipEnvCheck:true}],{type:'plugin'});options.plugins.unshift(reactRefreshPlugin);if(!isServer){const noAnonymousDefaultExportPlugin=babel.createConfigItem([require('../../babel/plugins/no-anonymous-default-export'),{}],{type:'plugin'});options.plugins.unshift(noAnonymousDefaultExportPlugin);}}if(!isServer&&isPageFile){const pageConfigPlugin=babel.createConfigItem([require('../../babel/plugins/next-page-config')],{type:'plugin'});options.plugins.push(pageConfigPlugin);const diallowExportAll=babel.createConfigItem([require('../../babel/plugins/next-page-disallow-re-export-all-exports')],{type:'plugin'});options.plugins.push(diallowExportAll);}// If the file has `module.exports` we have to transpile commonjs because Babel adds `import` statements | |
+options.presets=[...options.presets,presetItem];}options.caller.isServer=isServer;options.caller.isDev=development;options.caller.hasJsxRuntime=hasJsxRuntime;options.caller.pagesDirs=pagesDirs;const emitWarning=this.emitWarning.bind(this);Object.defineProperty(options.caller,'onWarning',{enumerable:false,writable:false,value:options.caller.onWarning=function(reason){if(!(reason instanceof Error)){reason=new Error(reason);}emitWarning(reason);}});options.plugins=options.plugins||[];if(hasReactRefresh){const reactRefreshPlugin=babel.createConfigItem([require('react-refresh/babel'),{skipEnvCheck:true}],{type:'plugin'});options.plugins.unshift(reactRefreshPlugin);if(!isServer){const noAnonymousDefaultExportPlugin=babel.createConfigItem([require('../../babel/plugins/no-anonymous-default-export'),{}],{type:'plugin'});options.plugins.unshift(noAnonymousDefaultExportPlugin);}}if(!isServer&&isPageFile){const pageConfigPlugin=babel.createConfigItem([require('../../babel/plugins/next-page-config')],{type:'plugin'});options.plugins.push(pageConfigPlugin);const diallowExportAll=babel.createConfigItem([require('../../babel/plugins/next-page-disallow-re-export-all-exports')],{type:'plugin'});options.plugins.push(diallowExportAll);}// If the file has `module.exports` we have to transpile commonjs because Babel adds `import` statements | |
// That break webpack, since webpack doesn't support combining commonjs and esmodules | |
if(source.indexOf('module.exports')!==-1){options.plugins.push(applyCommonJs);}options.plugins.push([require.resolve('next/dist/compiled/babel/plugin-transform-define'),{'process.env.NODE_ENV':development?'development':'production','typeof window':isServer?'undefined':'object','process.browser':isServer?false:true},'next-js-transform-define-instance']);if(isPageFile){if(!isServer){options.plugins.push([require.resolve('../../babel/plugins/next-ssg-transform'),{}]);}}// As next-server/lib has stateful modules we have to transpile commonjs | |
options.overrides=[...(options.overrides||[]),{test:[/next[\\/]dist[\\/]next-server[\\/]lib/,/next[\\/]dist[\\/]client/,/next[\\/]dist[\\/]pages/],plugins:[commonJsItem]}];return options;}};});var _default=customBabelLoader;exports.default=_default; | |
diff --git a/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js.map b/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js.map | |
index 2da15f8..86fffeb 100644 | |
--- a/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js.map | |
+++ b/node_modules/next/dist/build/webpack/loaders/next-babel-loader.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"sources":["../../../../build/webpack/loaders/next-babel-loader.js"],"names":["cacheKey","nextBabelPreset","require","customBabelLoader","babel","presetItem","createConfigItem","type","applyCommonJs","commonJsItem","configs","Set","customOptions","opts","custom","isServer","pagesDir","development","hasReactRefresh","hasJsxRuntime","filename","cwd","loader","Object","assign","cache","cacheDirectory","distDir","cacheIdentifier","JSON","stringify","loadPartialConfig","sourceFileName","options","config","cfg","source","resourcePath","isPageFile","startsWith","hasFilesystemConfig","file","babelrc","has","add","Log","info","presets","caller","isDev","emitWarning","bind","defineProperty","enumerable","writable","value","onWarning","reason","Error","plugins","reactRefreshPlugin","skipEnvCheck","unshift","noAnonymousDefaultExportPlugin","pageConfigPlugin","push","diallowExportAll","indexOf","resolve","overrides","test"],"mappings":"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","sourcesContent":["import { join } from 'path'\nimport * as Log from '../../output/log'\nimport babelLoader from './babel-loader/src/index'\n\n// increment 'p' to invalidate cache\n// eslint-disable-next-line no-useless-concat\nconst cacheKey = 'babel-cache-' + 'p' + '-'\nconst nextBabelPreset = require('../../babel/preset')\n\nconst customBabelLoader = babelLoader((babel) => {\n const presetItem = babel.createConfigItem(nextBabelPreset, {\n type: 'preset',\n })\n const applyCommonJs = babel.createConfigItem(\n require('../../babel/plugins/commonjs'),\n { type: 'plugin' }\n )\n const commonJsItem = babel.createConfigItem(\n require('next/dist/compiled/babel/plugin-transform-modules-commonjs'),\n { type: 'plugin' }\n )\n\n const configs = new Set()\n\n return {\n customOptions(opts) {\n const custom = {\n isServer: opts.isServer,\n pagesDir: opts.pagesDir,\n development: opts.development,\n hasReactRefresh: opts.hasReactRefresh,\n hasJsxRuntime: opts.hasJsxRuntime,\n }\n const filename = join(opts.cwd, 'noop.js')\n const loader = Object.assign(\n opts.cache\n ? {\n cacheDirectory: join(opts.distDir, 'cache', 'next-babel-loader'),\n cacheIdentifier:\n cacheKey +\n (opts.isServer ? '-server' : '') +\n '-new-polyfills' +\n (opts.development ? '-development' : '-production') +\n (opts.hasReactRefresh ? '-react-refresh' : '') +\n (opts.hasJsxRuntime ? '-jsx-runtime' : '') +\n JSON.stringify(\n babel.loadPartialConfig({\n filename,\n cwd: opts.cwd,\n sourceFileName: filename,\n }).options\n ),\n }\n : {\n cacheDirectory: false,\n },\n opts\n )\n\n delete loader.isServer\n delete loader.cache\n delete loader.distDir\n delete loader.pagesDir\n delete loader.development\n delete loader.hasReactRefresh\n delete loader.hasJsxRuntime\n return { loader, custom }\n },\n config(\n cfg,\n {\n source,\n customOptions: {\n isServer,\n pagesDir,\n development,\n hasReactRefresh,\n hasJsxRuntime,\n },\n }\n ) {\n const filename = this.resourcePath\n const options = Object.assign({}, cfg.options)\n const isPageFile = filename.startsWith(pagesDir)\n\n if (cfg.hasFilesystemConfig()) {\n for (const file of [cfg.babelrc, cfg.config]) {\n // We only log for client compilation otherwise there will be double output\n if (file && !isServer && !configs.has(file)) {\n configs.add(file)\n Log.info(`Using external babel configuration from ${file}`)\n }\n }\n } else {\n // Add our default preset if the no \"babelrc\" found.\n options.presets = [...options.presets, presetItem]\n }\n\n options.caller.isServer = isServer\n options.caller.isDev = development\n options.caller.hasJsxRuntime = hasJsxRuntime\n options.caller.pagesDir = pagesDir\n\n const emitWarning = this.emitWarning.bind(this)\n Object.defineProperty(options.caller, 'onWarning', {\n enumerable: false,\n writable: false,\n value: (options.caller.onWarning = function (reason) {\n if (!(reason instanceof Error)) {\n reason = new Error(reason)\n }\n emitWarning(reason)\n }),\n })\n\n options.plugins = options.plugins || []\n\n if (hasReactRefresh) {\n const reactRefreshPlugin = babel.createConfigItem(\n [require('react-refresh/babel'), { skipEnvCheck: true }],\n { type: 'plugin' }\n )\n options.plugins.unshift(reactRefreshPlugin)\n if (!isServer) {\n const noAnonymousDefaultExportPlugin = babel.createConfigItem(\n [require('../../babel/plugins/no-anonymous-default-export'), {}],\n { type: 'plugin' }\n )\n options.plugins.unshift(noAnonymousDefaultExportPlugin)\n }\n }\n\n if (!isServer && isPageFile) {\n const pageConfigPlugin = babel.createConfigItem(\n [require('../../babel/plugins/next-page-config')],\n { type: 'plugin' }\n )\n options.plugins.push(pageConfigPlugin)\n\n const diallowExportAll = babel.createConfigItem(\n [\n require('../../babel/plugins/next-page-disallow-re-export-all-exports'),\n ],\n { type: 'plugin' }\n )\n options.plugins.push(diallowExportAll)\n }\n\n // If the file has `module.exports` we have to transpile commonjs because Babel adds `import` statements\n // That break webpack, since webpack doesn't support combining commonjs and esmodules\n if (source.indexOf('module.exports') !== -1) {\n options.plugins.push(applyCommonJs)\n }\n\n options.plugins.push([\n require.resolve('next/dist/compiled/babel/plugin-transform-define'),\n {\n 'process.env.NODE_ENV': development ? 'development' : 'production',\n 'typeof window': isServer ? 'undefined' : 'object',\n 'process.browser': isServer ? false : true,\n },\n 'next-js-transform-define-instance',\n ])\n\n if (isPageFile) {\n if (!isServer) {\n options.plugins.push([\n require.resolve('../../babel/plugins/next-ssg-transform'),\n {},\n ])\n }\n }\n\n // As next-server/lib has stateful modules we have to transpile commonjs\n options.overrides = [\n ...(options.overrides || []),\n {\n test: [\n /next[\\\\/]dist[\\\\/]next-server[\\\\/]lib/,\n /next[\\\\/]dist[\\\\/]client/,\n /next[\\\\/]dist[\\\\/]pages/,\n ],\n plugins: [commonJsItem],\n },\n ]\n\n return options\n },\n }\n})\n\nexport default customBabelLoader\n"]} | |
\ No newline at end of file | |
+{"version":3,"sources":["../../../../build/webpack/loaders/next-babel-loader.js"],"names":["cacheKey","nextBabelPreset","require","customBabelLoader","babel","presetItem","createConfigItem","type","applyCommonJs","commonJsItem","configs","Set","customOptions","opts","custom","isServer","pagesDirs","development","hasReactRefresh","hasJsxRuntime","filename","cwd","loader","Object","assign","cache","cacheDirectory","distDir","cacheIdentifier","JSON","stringify","loadPartialConfig","sourceFileName","options","config","cfg","source","resourcePath","isPageFile","RegExp","join","test","hasFilesystemConfig","file","babelrc","has","add","Log","info","presets","caller","isDev","emitWarning","bind","defineProperty","enumerable","writable","value","onWarning","reason","Error","plugins","reactRefreshPlugin","skipEnvCheck","unshift","noAnonymousDefaultExportPlugin","pageConfigPlugin","push","diallowExportAll","indexOf","resolve","overrides"],"mappings":"4DAAA,0BACA,6DACA,uE,w4BAEA;AACA;AACA,KAAMA,CAAAA,QAAQ,CAAG,eAAiB,GAAjB,CAAuB,GAAxC,CACA,KAAMC,CAAAA,eAAe,CAAGC,OAAO,CAAC,oBAAD,CAA/B,CAEA,KAAMC,CAAAA,iBAAiB,CAAG,mBAAaC,KAAD,EAAW,CAC/C,KAAMC,CAAAA,UAAU,CAAGD,KAAK,CAACE,gBAAN,CAAuBL,eAAvB,CAAwC,CACzDM,IAAI,CAAE,QADmD,CAAxC,CAAnB,CAGA,KAAMC,CAAAA,aAAa,CAAGJ,KAAK,CAACE,gBAAN,CACpBJ,OAAO,CAAC,8BAAD,CADa,CAEpB,CAAEK,IAAI,CAAE,QAAR,CAFoB,CAAtB,CAIA,KAAME,CAAAA,YAAY,CAAGL,KAAK,CAACE,gBAAN,CACnBJ,OAAO,CAAC,4DAAD,CADY,CAEnB,CAAEK,IAAI,CAAE,QAAR,CAFmB,CAArB,CAKA,KAAMG,CAAAA,OAAO,CAAG,GAAIC,CAAAA,GAAJ,EAAhB,CAEA,MAAO,CACLC,aAAa,CAACC,IAAD,CAAO,CAClB,KAAMC,CAAAA,MAAM,CAAG,CACbC,QAAQ,CAAEF,IAAI,CAACE,QADF,CAEbC,SAAS,CAAEH,IAAI,CAACG,SAFH,CAGbC,WAAW,CAAEJ,IAAI,CAACI,WAHL,CAIbC,eAAe,CAAEL,IAAI,CAACK,eAJT,CAKbC,aAAa,CAAEN,IAAI,CAACM,aALP,CAAf,CAOA,KAAMC,CAAAA,QAAQ,CAAG,eAAKP,IAAI,CAACQ,GAAV,CAAe,SAAf,CAAjB,CACA,KAAMC,CAAAA,MAAM,CAAGC,MAAM,CAACC,MAAP,CACbX,IAAI,CAACY,KAAL,CACI,CACEC,cAAc,CAAE,eAAKb,IAAI,CAACc,OAAV,CAAmB,OAAnB,CAA4B,mBAA5B,CADlB,CAEEC,eAAe,CACb5B,QAAQ,EACPa,IAAI,CAACE,QAAL,CAAgB,SAAhB,CAA4B,EADrB,CAAR,CAEA,gBAFA,EAGCF,IAAI,CAACI,WAAL,CAAmB,cAAnB,CAAoC,aAHrC,GAICJ,IAAI,CAACK,eAAL,CAAuB,gBAAvB,CAA0C,EAJ3C,GAKCL,IAAI,CAACM,aAAL,CAAqB,cAArB,CAAsC,EALvC,EAMAU,IAAI,CAACC,SAAL,CACE1B,KAAK,CAAC2B,iBAAN,CAAwB,CACtBX,QADsB,CAEtBC,GAAG,CAAER,IAAI,CAACQ,GAFY,CAGtBW,cAAc,CAAEZ,QAHM,CAAxB,EAIGa,OALL,CATJ,CADJ,CAkBI,CACEP,cAAc,CAAE,KADlB,CAnBS,CAsBbb,IAtBa,CAAf,CAyBA,MAAOS,CAAAA,MAAM,CAACP,QAAd,CACA,MAAOO,CAAAA,MAAM,CAACG,KAAd,CACA,MAAOH,CAAAA,MAAM,CAACK,OAAd,CACA,MAAOL,CAAAA,MAAM,CAACN,SAAd,CACA,MAAOM,CAAAA,MAAM,CAACL,WAAd,CACA,MAAOK,CAAAA,MAAM,CAACJ,eAAd,CACA,MAAOI,CAAAA,MAAM,CAACH,aAAd,CACA,MAAO,CAAEG,MAAF,CAAUR,MAAV,CAAP,CACD,CA3CI,CA4CLoB,MAAM,CACJC,GADI,CAEJ,CACEC,MADF,CAEExB,aAAa,CAAE,CACbG,QADa,CAEbC,SAFa,CAGbC,WAHa,CAIbC,eAJa,CAKbC,aALa,CAFjB,CAFI,CAYJ,CACA,KAAMC,CAAAA,QAAQ,CAAG,KAAKiB,YAAtB,CACA,KAAMJ,CAAAA,OAAO,CAAGV,MAAM,CAACC,MAAP,CAAc,EAAd,CAAkBW,GAAG,CAACF,OAAtB,CAAhB,CACA,KAAMK,CAAAA,UAAU,CAAG,GAAIC,CAAAA,MAAJ,CAAY,MAAKvB,SAAS,CAACwB,IAAV,CAAe,KAAf,CAAsB,IAAvC,EAA4CC,IAA5C,CAAiDrB,QAAjD,CAAnB,CAEA,GAAIe,GAAG,CAACO,mBAAJ,EAAJ,CAA+B,CAC7B,IAAK,KAAMC,CAAAA,IAAX,GAAmB,CAACR,GAAG,CAACS,OAAL,CAAcT,GAAG,CAACD,MAAlB,CAAnB,CAA8C,CAC5C;AACA,GAAIS,IAAI,EAAI,CAAC5B,QAAT,EAAqB,CAACL,OAAO,CAACmC,GAAR,CAAYF,IAAZ,CAA1B,CAA6C,CAC3CjC,OAAO,CAACoC,GAAR,CAAYH,IAAZ,EACAI,GAAG,CAACC,IAAJ,CAAU,2CAA0CL,IAAK,EAAzD,EACD,CACF,CACF,CARD,IAQO,CACL;AACAV,OAAO,CAACgB,OAAR,CAAkB,CAAC,GAAGhB,OAAO,CAACgB,OAAZ,CAAqB5C,UAArB,CAAlB,CACD,CAED4B,OAAO,CAACiB,MAAR,CAAenC,QAAf,CAA0BA,QAA1B,CACAkB,OAAO,CAACiB,MAAR,CAAeC,KAAf,CAAuBlC,WAAvB,CACAgB,OAAO,CAACiB,MAAR,CAAe/B,aAAf,CAA+BA,aAA/B,CACAc,OAAO,CAACiB,MAAR,CAAelC,SAAf,CAA2BA,SAA3B,CAEA,KAAMoC,CAAAA,WAAW,CAAG,KAAKA,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB,CAApB,CACA9B,MAAM,CAAC+B,cAAP,CAAsBrB,OAAO,CAACiB,MAA9B,CAAsC,WAAtC,CAAmD,CACjDK,UAAU,CAAE,KADqC,CAEjDC,QAAQ,CAAE,KAFuC,CAGjDC,KAAK,CAAGxB,OAAO,CAACiB,MAAR,CAAeQ,SAAf,CAA2B,SAAUC,MAAV,CAAkB,CACnD,GAAI,EAAEA,MAAM,WAAYC,CAAAA,KAApB,CAAJ,CAAgC,CAC9BD,MAAM,CAAG,GAAIC,CAAAA,KAAJ,CAAUD,MAAV,CAAT,CACD,CACDP,WAAW,CAACO,MAAD,CAAX,CACD,CARgD,CAAnD,EAWA1B,OAAO,CAAC4B,OAAR,CAAkB5B,OAAO,CAAC4B,OAAR,EAAmB,EAArC,CAEA,GAAI3C,eAAJ,CAAqB,CACnB,KAAM4C,CAAAA,kBAAkB,CAAG1D,KAAK,CAACE,gBAAN,CACzB,CAACJ,OAAO,CAAC,qBAAD,CAAR,CAAiC,CAAE6D,YAAY,CAAE,IAAhB,CAAjC,CADyB,CAEzB,CAAExD,IAAI,CAAE,QAAR,CAFyB,CAA3B,CAIA0B,OAAO,CAAC4B,OAAR,CAAgBG,OAAhB,CAAwBF,kBAAxB,EACA,GAAI,CAAC/C,QAAL,CAAe,CACb,KAAMkD,CAAAA,8BAA8B,CAAG7D,KAAK,CAACE,gBAAN,CACrC,CAACJ,OAAO,CAAC,iDAAD,CAAR,CAA6D,EAA7D,CADqC,CAErC,CAAEK,IAAI,CAAE,QAAR,CAFqC,CAAvC,CAIA0B,OAAO,CAAC4B,OAAR,CAAgBG,OAAhB,CAAwBC,8BAAxB,EACD,CACF,CAED,GAAI,CAAClD,QAAD,EAAauB,UAAjB,CAA6B,CAC3B,KAAM4B,CAAAA,gBAAgB,CAAG9D,KAAK,CAACE,gBAAN,CACvB,CAACJ,OAAO,CAAC,sCAAD,CAAR,CADuB,CAEvB,CAAEK,IAAI,CAAE,QAAR,CAFuB,CAAzB,CAIA0B,OAAO,CAAC4B,OAAR,CAAgBM,IAAhB,CAAqBD,gBAArB,EAEA,KAAME,CAAAA,gBAAgB,CAAGhE,KAAK,CAACE,gBAAN,CACvB,CACEJ,OAAO,CAAC,8DAAD,CADT,CADuB,CAIvB,CAAEK,IAAI,CAAE,QAAR,CAJuB,CAAzB,CAMA0B,OAAO,CAAC4B,OAAR,CAAgBM,IAAhB,CAAqBC,gBAArB,EACD,CAED;AACA;AACA,GAAIhC,MAAM,CAACiC,OAAP,CAAe,gBAAf,IAAqC,CAAC,CAA1C,CAA6C,CAC3CpC,OAAO,CAAC4B,OAAR,CAAgBM,IAAhB,CAAqB3D,aAArB,EACD,CAEDyB,OAAO,CAAC4B,OAAR,CAAgBM,IAAhB,CAAqB,CACnBjE,OAAO,CAACoE,OAAR,CAAgB,kDAAhB,CADmB,CAEnB,CACE,uBAAwBrD,WAAW,CAAG,aAAH,CAAmB,YADxD,CAEE,gBAAiBF,QAAQ,CAAG,WAAH,CAAiB,QAF5C,CAGE,kBAAmBA,QAAQ,CAAG,KAAH,CAAW,IAHxC,CAFmB,CAOnB,mCAPmB,CAArB,EAUA,GAAIuB,UAAJ,CAAgB,CACd,GAAI,CAACvB,QAAL,CAAe,CACbkB,OAAO,CAAC4B,OAAR,CAAgBM,IAAhB,CAAqB,CACnBjE,OAAO,CAACoE,OAAR,CAAgB,wCAAhB,CADmB,CAEnB,EAFmB,CAArB,EAID,CACF,CAED;AACArC,OAAO,CAACsC,SAAR,CAAoB,CAClB,IAAItC,OAAO,CAACsC,SAAR,EAAqB,EAAzB,CADkB,CAElB,CACE9B,IAAI,CAAE,CACJ,uCADI,CAEJ,0BAFI,CAGJ,yBAHI,CADR,CAMEoB,OAAO,CAAE,CAACpD,YAAD,CANX,CAFkB,CAApB,CAYA,MAAOwB,CAAAA,OAAP,CACD,CAnKI,CAAP,CAqKD,CApLyB,CAA1B,C,aAsLe9B,iB","sourcesContent":["import { join } from 'path'\nimport * as Log from '../../output/log'\nimport babelLoader from './babel-loader/src/index'\n\n// increment 'p' to invalidate cache\n// eslint-disable-next-line no-useless-concat\nconst cacheKey = 'babel-cache-' + 'p' + '-'\nconst nextBabelPreset = require('../../babel/preset')\n\nconst customBabelLoader = babelLoader((babel) => {\n const presetItem = babel.createConfigItem(nextBabelPreset, {\n type: 'preset',\n })\n const applyCommonJs = babel.createConfigItem(\n require('../../babel/plugins/commonjs'),\n { type: 'plugin' }\n )\n const commonJsItem = babel.createConfigItem(\n require('next/dist/compiled/babel/plugin-transform-modules-commonjs'),\n { type: 'plugin' }\n )\n\n const configs = new Set()\n\n return {\n customOptions(opts) {\n const custom = {\n isServer: opts.isServer,\n pagesDirs: opts.pagesDirs,\n development: opts.development,\n hasReactRefresh: opts.hasReactRefresh,\n hasJsxRuntime: opts.hasJsxRuntime,\n }\n const filename = join(opts.cwd, 'noop.js')\n const loader = Object.assign(\n opts.cache\n ? {\n cacheDirectory: join(opts.distDir, 'cache', 'next-babel-loader'),\n cacheIdentifier:\n cacheKey +\n (opts.isServer ? '-server' : '') +\n '-new-polyfills' +\n (opts.development ? '-development' : '-production') +\n (opts.hasReactRefresh ? '-react-refresh' : '') +\n (opts.hasJsxRuntime ? '-jsx-runtime' : '') +\n JSON.stringify(\n babel.loadPartialConfig({\n filename,\n cwd: opts.cwd,\n sourceFileName: filename,\n }).options\n ),\n }\n : {\n cacheDirectory: false,\n },\n opts\n )\n\n delete loader.isServer\n delete loader.cache\n delete loader.distDir\n delete loader.pagesDirs\n delete loader.development\n delete loader.hasReactRefresh\n delete loader.hasJsxRuntime\n return { loader, custom }\n },\n config(\n cfg,\n {\n source,\n customOptions: {\n isServer,\n pagesDirs,\n development,\n hasReactRefresh,\n hasJsxRuntime,\n },\n }\n ) {\n const filename = this.resourcePath\n const options = Object.assign({}, cfg.options)\n const isPageFile = new RegExp(`^((${pagesDirs.join(')|(')}))`).test(filename)\n\n if (cfg.hasFilesystemConfig()) {\n for (const file of [cfg.babelrc, cfg.config]) {\n // We only log for client compilation otherwise there will be double output\n if (file && !isServer && !configs.has(file)) {\n configs.add(file)\n Log.info(`Using external babel configuration from ${file}`)\n }\n }\n } else {\n // Add our default preset if the no \"babelrc\" found.\n options.presets = [...options.presets, presetItem]\n }\n\n options.caller.isServer = isServer\n options.caller.isDev = development\n options.caller.hasJsxRuntime = hasJsxRuntime\n options.caller.pagesDirs = pagesDirs\n\n const emitWarning = this.emitWarning.bind(this)\n Object.defineProperty(options.caller, 'onWarning', {\n enumerable: false,\n writable: false,\n value: (options.caller.onWarning = function (reason) {\n if (!(reason instanceof Error)) {\n reason = new Error(reason)\n }\n emitWarning(reason)\n }),\n })\n\n options.plugins = options.plugins || []\n\n if (hasReactRefresh) {\n const reactRefreshPlugin = babel.createConfigItem(\n [require('react-refresh/babel'), { skipEnvCheck: true }],\n { type: 'plugin' }\n )\n options.plugins.unshift(reactRefreshPlugin)\n if (!isServer) {\n const noAnonymousDefaultExportPlugin = babel.createConfigItem(\n [require('../../babel/plugins/no-anonymous-default-export'), {}],\n { type: 'plugin' }\n )\n options.plugins.unshift(noAnonymousDefaultExportPlugin)\n }\n }\n\n if (!isServer && isPageFile) {\n const pageConfigPlugin = babel.createConfigItem(\n [require('../../babel/plugins/next-page-config')],\n { type: 'plugin' }\n )\n options.plugins.push(pageConfigPlugin)\n\n const diallowExportAll = babel.createConfigItem(\n [\n require('../../babel/plugins/next-page-disallow-re-export-all-exports'),\n ],\n { type: 'plugin' }\n )\n options.plugins.push(diallowExportAll)\n }\n\n // If the file has `module.exports` we have to transpile commonjs because Babel adds `import` statements\n // That break webpack, since webpack doesn't support combining commonjs and esmodules\n if (source.indexOf('module.exports') !== -1) {\n options.plugins.push(applyCommonJs)\n }\n\n options.plugins.push([\n require.resolve('next/dist/compiled/babel/plugin-transform-define'),\n {\n 'process.env.NODE_ENV': development ? 'development' : 'production',\n 'typeof window': isServer ? 'undefined' : 'object',\n 'process.browser': isServer ? false : true,\n },\n 'next-js-transform-define-instance',\n ])\n\n if (isPageFile) {\n if (!isServer) {\n options.plugins.push([\n require.resolve('../../babel/plugins/next-ssg-transform'),\n {},\n ])\n }\n }\n\n // As next-server/lib has stateful modules we have to transpile commonjs\n options.overrides = [\n ...(options.overrides || []),\n {\n test: [\n /next[\\\\/]dist[\\\\/]next-server[\\\\/]lib/,\n /next[\\\\/]dist[\\\\/]client/,\n /next[\\\\/]dist[\\\\/]pages/,\n ],\n plugins: [commonJsItem],\n },\n ]\n\n return options\n },\n }\n})\n\nexport default customBabelLoader\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.d.ts b/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.d.ts | |
index ed88234..e77b87b 100644 | |
--- a/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.d.ts | |
+++ b/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.d.ts | |
@@ -21,10 +21,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR | |
import { webpack } from 'next/dist/compiled/webpack/webpack'; | |
export declare class ReactLoadablePlugin { | |
private filename; | |
- private pagesDir; | |
+ private pagesDirs; | |
constructor(opts: { | |
filename: string; | |
- pagesDir: string; | |
+ pagesDirs: string[]; | |
}); | |
createAssets(compiler: any, compilation: any, assets: any): any; | |
apply(compiler: webpack.Compiler): void; | |
diff --git a/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js b/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js | |
index 4680b00..49dfb13 100644 | |
--- a/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js | |
+++ b/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js | |
@@ -19,7 +19,7 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR | |
*/ // Implementation of this PR: https://github.com/jamiebuilds/react-loadable/pull/132 | |
// Modified to strip out unneeded results for Next's specific use case | |
-function getModuleId(compilation,module){if(_webpack.isWebpack5){return compilation.chunkGraph.getModuleId(module);}return module.id;}function getModuleFromDependency(compilation,dep){if(_webpack.isWebpack5){return compilation.moduleGraph.getModule(dep);}return dep.module;}function getOriginModuleFromDependency(compilation,dep){if(_webpack.isWebpack5){return compilation.moduleGraph.getParentModule(dep);}return dep.originModule;}function getChunkGroupFromBlock(compilation,block){if(_webpack.isWebpack5){return compilation.chunkGraph.getBlockChunkGroup(block);}return block.chunkGroup;}function buildManifest(_compiler,compilation,pagesDir){let manifest={};// This is allowed: | |
+function getModuleId(compilation,module){if(_webpack.isWebpack5){return compilation.chunkGraph.getModuleId(module);}return module.id;}function getModuleFromDependency(compilation,dep){if(_webpack.isWebpack5){return compilation.moduleGraph.getModule(dep);}return dep.module;}function getOriginModuleFromDependency(compilation,dep){if(_webpack.isWebpack5){return compilation.moduleGraph.getParentModule(dep);}return dep.originModule;}function getChunkGroupFromBlock(compilation,block){if(_webpack.isWebpack5){return compilation.chunkGraph.getBlockChunkGroup(block);}return block.chunkGroup;}function buildManifest(_compiler,compilation,pagesDirs){let manifest={};// This is allowed: | |
// import("./module"); <- ImportDependency | |
// We don't support that: | |
// import(/* webpackMode: "eager" */ "./module") <- ImportEagerDependency | |
@@ -30,7 +30,7 @@ const module=getModuleFromDependency(compilation,dependency);if(!module)return;/ | |
const originModule=getOriginModuleFromDependency(compilation,dependency);const originRequest=originModule==null?void 0:originModule.resource;if(!originRequest)return;// We construct a "unique" key from origin module and request | |
// It's not perfect unique, but that will be fine for us. | |
// We also need to construct the same in the babel plugin. | |
-const key=`${_path.default.relative(pagesDir,originRequest)} -> ${dependency.request}`;// Capture all files that need to be loaded. | |
+const key=`${_path.default.relative(pagesDirs[0],originRequest)} -> ${dependency.request}`;// Capture all files that need to be loaded. | |
const files=new Set();if(manifest[key]){// In the "rare" case where multiple chunk groups | |
// are created for the same `import()` or multiple | |
// import()s reference the same module, we merge | |
@@ -44,7 +44,7 @@ if(chunkGroup){for(const chunk of chunkGroup.chunks){chunk.files.forEach(file=>{ | |
// next/dynamic so they are loaded by the same technique | |
// add the id and files to the manifest | |
const id=getModuleId(compilation,module);manifest[key]={id,files:Array.from(files)};}}};for(const module of compilation.modules){module.blocks.forEach(handleBlock);}manifest=Object.keys(manifest).sort()// eslint-disable-next-line no-sequences | |
-.reduce((a,c)=>(a[c]=manifest[c],a),{});return manifest;}class ReactLoadablePlugin{constructor(opts){this.filename=void 0;this.pagesDir=void 0;this.filename=opts.filename;this.pagesDir=opts.pagesDir;}createAssets(compiler,compilation,assets){const manifest=buildManifest(compiler,compilation,this.pagesDir);// @ts-ignore: TODO: remove when webpack 5 is stable | |
+.reduce((a,c)=>(a[c]=manifest[c],a),{});return manifest;}class ReactLoadablePlugin{constructor(opts){this.filename=void 0;this.pagesDirs=void 0;this.filename=opts.filename;this.pagesDirs=opts.pagesDirs;}createAssets(compiler,compilation,assets){const manifest=buildManifest(compiler,compilation,this.pagesDirs);// @ts-ignore: TODO: remove when webpack 5 is stable | |
assets[this.filename]=new _webpack.sources.RawSource(JSON.stringify(manifest,null,2));return assets;}apply(compiler){if(_webpack.isWebpack5){compiler.hooks.make.tap('ReactLoadableManifest',compilation=>{// @ts-ignore TODO: Remove ignore when webpack 5 is stable | |
compilation.hooks.processAssets.tap({name:'ReactLoadableManifest',// @ts-ignore TODO: Remove ignore when webpack 5 is stable | |
stage:_webpack.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},assets=>{this.createAssets(compiler,compilation,assets);});});return;}compiler.hooks.emit.tap('ReactLoadableManifest',compilation=>{this.createAssets(compiler,compilation,compilation.assets);});}}exports.ReactLoadablePlugin=ReactLoadablePlugin; | |
diff --git a/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js.map b/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js.map | |
index 821d71d..94c7b9c 100644 | |
--- a/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js.map | |
+++ b/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"sources":["../../../../build/webpack/plugins/react-loadable-plugin.ts"],"names":["getModuleId","compilation","module","isWebpack5","chunkGraph","id","getModuleFromDependency","dep","moduleGraph","getModule","getOriginModuleFromDependency","getParentModule","originModule","getChunkGroupFromBlock","block","getBlockChunkGroup","chunkGroup","buildManifest","_compiler","pagesDir","manifest","handleBlock","blocks","forEach","dependency","dependencies","type","startsWith","originRequest","resource","key","path","relative","request","files","Set","file","add","chunk","chunks","endsWith","match","Array","from","modules","Object","keys","sort","reduce","a","c","ReactLoadablePlugin","constructor","opts","filename","createAssets","compiler","assets","sources","RawSource","JSON","stringify","apply","hooks","make","tap","processAssets","name","stage","webpack","Compilation","PROCESS_ASSETS_STAGE_ADDITIONS","emit"],"mappings":"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","sourcesContent":["/**\nCOPYRIGHT (c) 2017-present James Kyle <[email protected]>\n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR\n*/\n// Implementation of this PR: https://github.com/jamiebuilds/react-loadable/pull/132\n// Modified to strip out unneeded results for Next's specific use case\n\nimport {\n webpack,\n isWebpack5,\n sources,\n} from 'next/dist/compiled/webpack/webpack'\n\nimport path from 'path'\n\nfunction getModuleId(compilation: any, module: any): string | number {\n if (isWebpack5) {\n return compilation.chunkGraph.getModuleId(module)\n }\n\n return module.id\n}\n\nfunction getModuleFromDependency(\n compilation: any,\n dep: any\n): webpack.Module & { resource?: string } {\n if (isWebpack5) {\n return compilation.moduleGraph.getModule(dep)\n }\n\n return dep.module\n}\n\nfunction getOriginModuleFromDependency(\n compilation: any,\n dep: any\n): webpack.Module & { resource?: string } {\n if (isWebpack5) {\n return compilation.moduleGraph.getParentModule(dep)\n }\n\n return dep.originModule\n}\n\nfunction getChunkGroupFromBlock(\n compilation: any,\n block: any\n): webpack.compilation.ChunkGroup {\n if (isWebpack5) {\n return compilation.chunkGraph.getBlockChunkGroup(block)\n }\n\n return block.chunkGroup\n}\n\nfunction buildManifest(\n _compiler: webpack.Compiler,\n compilation: webpack.compilation.Compilation,\n pagesDir: string\n) {\n let manifest: { [k: string]: { id: string | number; files: string[] } } = {}\n\n // This is allowed:\n // import(\"./module\"); <- ImportDependency\n\n // We don't support that:\n // import(/* webpackMode: \"eager\" */ \"./module\") <- ImportEagerDependency\n // import(`./module/${param}`) <- ImportContextDependency\n\n // Find all dependencies blocks which contains a `import()` dependency\n const handleBlock = (block: any) => {\n block.blocks.forEach(handleBlock)\n const chunkGroup = getChunkGroupFromBlock(compilation, block)\n for (const dependency of block.dependencies) {\n if (dependency.type.startsWith('import()')) {\n // get the referenced module\n const module = getModuleFromDependency(compilation, dependency)\n if (!module) return\n\n // get the module containing the import()\n const originModule = getOriginModuleFromDependency(\n compilation,\n dependency\n )\n const originRequest: string | undefined = originModule?.resource\n if (!originRequest) return\n\n // We construct a \"unique\" key from origin module and request\n // It's not perfect unique, but that will be fine for us.\n // We also need to construct the same in the babel plugin.\n const key = `${path.relative(pagesDir, originRequest)} -> ${\n dependency.request\n }`\n\n // Capture all files that need to be loaded.\n const files = new Set<string>()\n\n if (manifest[key]) {\n // In the \"rare\" case where multiple chunk groups\n // are created for the same `import()` or multiple\n // import()s reference the same module, we merge\n // the files to make sure to not miss files\n // This may cause overfetching in edge cases.\n for (const file of manifest[key].files) {\n files.add(file)\n }\n }\n\n // There might not be a chunk group when all modules\n // are already loaded. In this case we only need need\n // the module id and no files\n if (chunkGroup) {\n for (const chunk of (chunkGroup as any)\n .chunks as webpack.compilation.Chunk[]) {\n chunk.files.forEach((file: string) => {\n if (\n (file.endsWith('.js') || file.endsWith('.css')) &&\n file.match(/^static\\/(chunks|css)\\//)\n ) {\n files.add(file)\n }\n })\n }\n }\n\n // usually we have to add the parent chunk groups too\n // but we assume that all parents are also imported by\n // next/dynamic so they are loaded by the same technique\n\n // add the id and files to the manifest\n const id = getModuleId(compilation, module)\n manifest[key] = { id, files: Array.from(files) }\n }\n }\n }\n for (const module of compilation.modules) {\n module.blocks.forEach(handleBlock)\n }\n\n manifest = Object.keys(manifest)\n .sort()\n // eslint-disable-next-line no-sequences\n .reduce((a, c) => ((a[c] = manifest[c]), a), {} as any)\n\n return manifest\n}\n\nexport class ReactLoadablePlugin {\n private filename: string\n private pagesDir: string\n\n constructor(opts: { filename: string; pagesDir: string }) {\n this.filename = opts.filename\n this.pagesDir = opts.pagesDir\n }\n\n createAssets(compiler: any, compilation: any, assets: any) {\n const manifest = buildManifest(compiler, compilation, this.pagesDir)\n // @ts-ignore: TODO: remove when webpack 5 is stable\n assets[this.filename] = new sources.RawSource(\n JSON.stringify(manifest, null, 2)\n )\n return assets\n }\n\n apply(compiler: webpack.Compiler) {\n if (isWebpack5) {\n compiler.hooks.make.tap('ReactLoadableManifest', (compilation) => {\n // @ts-ignore TODO: Remove ignore when webpack 5 is stable\n compilation.hooks.processAssets.tap(\n {\n name: 'ReactLoadableManifest',\n // @ts-ignore TODO: Remove ignore when webpack 5 is stable\n stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,\n },\n (assets: any) => {\n this.createAssets(compiler, compilation, assets)\n }\n )\n })\n return\n }\n\n compiler.hooks.emit.tap('ReactLoadableManifest', (compilation: any) => {\n this.createAssets(compiler, compilation, compilation.assets)\n })\n }\n}\n"]} | |
\ No newline at end of file | |
+{"version":3,"sources":["../../../../build/webpack/plugins/react-loadable-plugin.ts"],"names":["getModuleId","compilation","module","isWebpack5","chunkGraph","id","getModuleFromDependency","dep","moduleGraph","getModule","getOriginModuleFromDependency","getParentModule","originModule","getChunkGroupFromBlock","block","getBlockChunkGroup","chunkGroup","buildManifest","_compiler","pagesDirs","manifest","handleBlock","blocks","forEach","dependency","dependencies","type","startsWith","originRequest","resource","key","path","relative","request","files","Set","file","add","chunk","chunks","endsWith","match","Array","from","modules","Object","keys","sort","reduce","a","c","ReactLoadablePlugin","constructor","opts","filename","createAssets","compiler","assets","sources","RawSource","JSON","stringify","apply","hooks","make","tap","processAssets","name","stage","webpack","Compilation","PROCESS_ASSETS_STAGE_ADDITIONS","emit"],"mappings":"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","sourcesContent":["/**\nCOPYRIGHT (c) 2017-present James Kyle <[email protected]>\n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWAR\n*/\n// Implementation of this PR: https://github.com/jamiebuilds/react-loadable/pull/132\n// Modified to strip out unneeded results for Next's specific use case\n\nimport {\n webpack,\n isWebpack5,\n sources,\n} from 'next/dist/compiled/webpack/webpack'\n\nimport path from 'path'\n\nfunction getModuleId(compilation: any, module: any): string | number {\n if (isWebpack5) {\n return compilation.chunkGraph.getModuleId(module)\n }\n\n return module.id\n}\n\nfunction getModuleFromDependency(\n compilation: any,\n dep: any\n): webpack.Module & { resource?: string } {\n if (isWebpack5) {\n return compilation.moduleGraph.getModule(dep)\n }\n\n return dep.module\n}\n\nfunction getOriginModuleFromDependency(\n compilation: any,\n dep: any\n): webpack.Module & { resource?: string } {\n if (isWebpack5) {\n return compilation.moduleGraph.getParentModule(dep)\n }\n\n return dep.originModule\n}\n\nfunction getChunkGroupFromBlock(\n compilation: any,\n block: any\n): webpack.compilation.ChunkGroup {\n if (isWebpack5) {\n return compilation.chunkGraph.getBlockChunkGroup(block)\n }\n\n return block.chunkGroup\n}\n\nfunction buildManifest(\n _compiler: webpack.Compiler,\n compilation: webpack.compilation.Compilation,\n pagesDirs: string[]\n) {\n let manifest: { [k: string]: { id: string | number; files: string[] } } = {}\n\n // This is allowed:\n // import(\"./module\"); <- ImportDependency\n\n // We don't support that:\n // import(/* webpackMode: \"eager\" */ \"./module\") <- ImportEagerDependency\n // import(`./module/${param}`) <- ImportContextDependency\n\n // Find all dependencies blocks which contains a `import()` dependency\n const handleBlock = (block: any) => {\n block.blocks.forEach(handleBlock)\n const chunkGroup = getChunkGroupFromBlock(compilation, block)\n for (const dependency of block.dependencies) {\n if (dependency.type.startsWith('import()')) {\n // get the referenced module\n const module = getModuleFromDependency(compilation, dependency)\n if (!module) return\n\n // get the module containing the import()\n const originModule = getOriginModuleFromDependency(\n compilation,\n dependency\n )\n const originRequest: string | undefined = originModule?.resource\n if (!originRequest) return\n\n // We construct a \"unique\" key from origin module and request\n // It's not perfect unique, but that will be fine for us.\n // We also need to construct the same in the babel plugin.\n const key = `${path.relative(pagesDirs[0], originRequest)} -> ${\n dependency.request\n }`\n\n // Capture all files that need to be loaded.\n const files = new Set<string>()\n\n if (manifest[key]) {\n // In the \"rare\" case where multiple chunk groups\n // are created for the same `import()` or multiple\n // import()s reference the same module, we merge\n // the files to make sure to not miss files\n // This may cause overfetching in edge cases.\n for (const file of manifest[key].files) {\n files.add(file)\n }\n }\n\n // There might not be a chunk group when all modules\n // are already loaded. In this case we only need need\n // the module id and no files\n if (chunkGroup) {\n for (const chunk of (chunkGroup as any)\n .chunks as webpack.compilation.Chunk[]) {\n chunk.files.forEach((file: string) => {\n if (\n (file.endsWith('.js') || file.endsWith('.css')) &&\n file.match(/^static\\/(chunks|css)\\//)\n ) {\n files.add(file)\n }\n })\n }\n }\n\n // usually we have to add the parent chunk groups too\n // but we assume that all parents are also imported by\n // next/dynamic so they are loaded by the same technique\n\n // add the id and files to the manifest\n const id = getModuleId(compilation, module)\n manifest[key] = { id, files: Array.from(files) }\n }\n }\n }\n for (const module of compilation.modules) {\n module.blocks.forEach(handleBlock)\n }\n\n manifest = Object.keys(manifest)\n .sort()\n // eslint-disable-next-line no-sequences\n .reduce((a, c) => ((a[c] = manifest[c]), a), {} as any)\n\n return manifest\n}\n\nexport class ReactLoadablePlugin {\n private filename: string\n private pagesDirs: string[]\n\n constructor(opts: { filename: string; pagesDirs: string[] }) {\n this.filename = opts.filename\n this.pagesDirs = opts.pagesDirs\n }\n\n createAssets(compiler: any, compilation: any, assets: any) {\n const manifest = buildManifest(compiler, compilation, this.pagesDirs)\n // @ts-ignore: TODO: remove when webpack 5 is stable\n assets[this.filename] = new sources.RawSource(\n JSON.stringify(manifest, null, 2)\n )\n return assets\n }\n\n apply(compiler: webpack.Compiler) {\n if (isWebpack5) {\n compiler.hooks.make.tap('ReactLoadableManifest', (compilation) => {\n // @ts-ignore TODO: Remove ignore when webpack 5 is stable\n compilation.hooks.processAssets.tap(\n {\n name: 'ReactLoadableManifest',\n // @ts-ignore TODO: Remove ignore when webpack 5 is stable\n stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,\n },\n (assets: any) => {\n this.createAssets(compiler, compilation, assets)\n }\n )\n })\n return\n }\n\n compiler.hooks.emit.tap('ReactLoadableManifest', (compilation: any) => {\n this.createAssets(compiler, compilation, compilation.assets)\n })\n }\n}\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/2ff5577010acefeceb6bfdeab769b276.json b/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/2ff5577010acefeceb6bfdeab769b276.json | |
index b89ffa3..e6a8ffa 100644 | |
--- a/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/2ff5577010acefeceb6bfdeab769b276.json | |
+++ b/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/2ff5577010acefeceb6bfdeab769b276.json | |
@@ -1 +1 @@ | |
-{"version":"012106072053000","maxAge":{"timestampInMs":1624391629268}} | |
\ No newline at end of file | |
+{"version":"012106182132000","maxAge":{"timestampInMs":1626160905303}} | |
\ No newline at end of file | |
diff --git a/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/97dd8567b7e4775960c2064e20d6d08f.json b/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/97dd8567b7e4775960c2064e20d6d08f.json | |
index 25d2a02..d21a260 100644 | |
--- a/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/97dd8567b7e4775960c2064e20d6d08f.json | |
+++ b/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/.cache/97dd8567b7e4775960c2064e20d6d08f.json | |
@@ -1 +1 @@ | |
-{"tags":[{"tagName":"!DOCTYPE","specName":"html doctype","mandatory":true,"unique":true,"mandatoryParent":"$ROOT","attrs":[{"name":"html","mandatory":true,"value":[""]},{"name":"lang","deprecation":"html","deprecationUrl":"https://github.com/ampproject/amphtml/issues/25926"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP","AMP4EMAIL"],"explicitAttrsOnly":true,"descriptiveName":"html !doctype"},{"tagName":"!DOCTYPE","specName":"html doctype (AMP4ADS)","mandatory":true,"unique":true,"mandatoryParent":"$ROOT","attrs":[{"name":"html","mandatory":true,"value":[""]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP4ADS"],"descriptiveName":"html !doctype"},{"tagName":"HTML","mandatory":true,"unique":true,"mandatoryParent":"!DOCTYPE","attrs":[{"name":"data-amp-autocomplete-opt-in","value":["false"],"disallowedValueRegex":"false"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP","AMP4ADS","AMP4EMAIL"],"disabledBy":["transformed"]},{"tagName":"HTML","specName":"html (transformed)","mandatory":true,"unique":true,"mandatoryParent":"!DOCTYPE","attrs":[{"name":"i-amphtml-layout","value":[""]},{"name":"i-amphtml-no-boilerplate","value":[""]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP"],"enabledBy":["transformed"]},{"tagName":"HEAD","mandatory":true,"unique":true,"mandatoryParent":"HTML","specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP","AMP4ADS","AMP4EMAIL"],"attrs":[{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}]},{"tagName":"TITLE","specName":"title","attrs":[{"name":"[text]"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"htmlFormat":["AMP","AMP4ADS"]},{"tagName":"TITLE","specName":"title [AMP4EMAIL]","attrs":[{"name":"[text]"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"deprecation":"Title tags in email have no meaning. This tag may become invalid in the future.","deprecationUrl":"https://github.com/ampproject/amphtml/issues/22318","htmlFormat":["AMP4EMAIL"]},{"tagName":"BASE","unique":true,"mandatoryParent":"HEAD","attrs":[{"name":"href","value":["/"]},{"name":"target","valueCasei":["_blank","_self","_top"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"htmlFormat":["AMP","AMP4ADS"]},{"tagName":"LINK","specName":"link rel=","attrs":[{"name":"href"},{"name":"rel","mandatory":true,"disallowedValueRegex":"(^|\\s)(canonical|components|import|manifest|modulepreload|preload|serviceworker|stylesheet|subresource)(\\s|$)"},{"name":"charset","valueCasei":["utf-8"]},{"name":"color"},{"name":"crossorigin"},{"name":"hreflang"},{"name":"media"},{"name":"sizes"},{"name":"target"},{"name":"type"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","disallowedAncestor":["TEMPLATE"],"htmlFormat":["AMP","AMP4ADS"]},{"tagName":"LINK","specName":"link rel=canonical","mandatory":true,"unique":true,"mandatoryParent":"HEAD","attrs":[{"name":"href","mandatory":true,"disallowedValueRegex":"__amp_source_origin","valueUrl":{"protocol":["http","https"]}},{"name":"rel","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["canonical"]},{"name":"charset","valueCasei":["utf-8"]},{"name":"color"},{"name":"crossorigin"},{"name":"hreflang"},{"name":"media"},{"name":"sizes"},{"name":"target"},{"name":"type"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP"],"descriptiveName":"link rel=canonical"},{"tagName":"LINK","specName":"link rel=manifest","mandatoryParent":"HEAD","attrs":[{"name":"href","mandatory":true,"disallowedValueRegex":"__amp_source_origin","valueUrl":{"protocol":["https"]}},{"name":"rel","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["manifest"]},{"name":"charset","valueCasei":["utf-8"]},{"name":"color"},{"name":"crossorigin"},{"name":"hreflang"},{"name":"media"},{"name":"sizes"},{"name":"target"},{"name":"type"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","htmlFormat":["AMP","AMP4ADS"],"satisfies":["amp-app-banner data source"],"descriptiveName":"link rel=manifest"},{"tagName":"LINK","specName":"link rel=modulepreload","mandatoryParent":"HEAD","attrs":[{"name":"as","mandatory":true,"value":["script"]},{"name":"crossorigin","mandatory":true,"value":["anonymous"]},{"name":"href","mandatory":true,"valueRegex":".*\\.mjs$"},{"name":"rel","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["modulepreload"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","htmlFormat":["AMP"],"descriptiveName":"link rel=modulepreload"},{"tagName":"LINK","specName":"link rel=preload","attrs":[{"name":"as"},{"name":"href"},{"name":"rel","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["preload"]},{"name":"imagesrcset","disallowedValueRegex":"__amp_source_origin","valueUrl":{"protocol":["http","https"]}},{"name":"imagesizes"},{"name":"charset","valueCasei":["utf-8"]},{"name":"color"},{"name":"crossorigin"},{"name":"hreflang"},{"name":"media"},{"name":"sizes"},{"name":"target"},{"name":"type"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","disallowedAncestor":["TEMPLATE"],"htmlFormat":["AMP","AMP4ADS"],"descriptiveName":"link rel=preload"},{"tagName":"LINK","specName":"link rel=stylesheet for fonts","mandatoryParent":"HEAD","attrs":[{"name":"async"},{"name":"crossorigin"},{"name":"href","mandatory":true,"valueRegex":"https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css2?\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://(use|pro|kit)\\.fontawesome\\.com/releases/v([0-9]+\\.?)+/css/[0-9a-zA-Z-]+\\.css|https://(use|pro|kit)\\.fontawesome\\.com/[0-9a-zA-Z-]+\\.css|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css"},{"name":"integrity"},{"name":"media"},{"name":"rel","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["stylesheet"]},{"name":"type","valueCasei":["text/css"]},{"name":"nonce","disabledBy":["amp4email"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#custom-fonts","htmlFormat":["AMP","AMP4ADS"],"namedId":"LINK_FONT_STYLESHEET","descriptiveName":"link rel=stylesheet for fonts"},{"tagName":"LINK","specName":"link itemprop=sameAs","attrs":[{"name":"href","mandatory":true},{"name":"itemprop","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["sameas"]},{"name":"charset","valueCasei":["utf-8"]},{"name":"color"},{"name":"crossorigin"},{"name":"hreflang"},{"name":"media"},{"name":"sizes"},{"name":"target"},{"name":"type"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","htmlFormat":["AMP","AMP4ADS"],"descriptiveName":"link itemprop=sameAs"},{"tagName":"LINK","specName":"link itemprop=","attrs":[{"name":"href","mandatory":true},{"name":"itemprop","mandatory":true},{"name":"charset","valueCasei":["utf-8"]},{"name":"color"},{"name":"crossorigin"},{"name":"hreflang"},{"name":"media"},{"name":"sizes"},{"name":"target"},{"name":"type"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","htmlFormat":["AMP","AMP4ADS"],"descriptiveName":"link itemprop="},{"tagName":"LINK","specName":"link property=","attrs":[{"name":"href","mandatory":true},{"name":"property","mandatory":true},{"name":"charset","valueCasei":["utf-8"]},{"name":"color"},{"name":"crossorigin"},{"name":"hreflang"},{"name":"media"},{"name":"sizes"},{"name":"target"},{"name":"type"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","htmlFormat":["AMP","AMP4ADS"],"descriptiveName":"link property="},{"tagName":"META","specName":"meta charset=utf-8","mandatory":true,"unique":true,"mandatoryParent":"HEAD","attrs":[{"name":"charset","mandatory":true,"dispatchKey":"NAME_DISPATCH","valueCasei":["utf-8"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP","AMP4ADS","AMP4EMAIL"],"descriptiveName":"meta charset=utf-8"},{"tagName":"META","specName":"meta name=viewport","mandatory":true,"unique":true,"mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true,"valueProperties":{"properties":[{"name":"width","mandatory":true,"value":"device-width"},{"name":"height"},{"name":"initial-scale"},{"name":"minimum-scale"},{"name":"maximum-scale"},{"name":"shrink-to-fit"},{"name":"user-scalable"},{"name":"viewport-fit"}]}},{"name":"name","mandatory":true,"value":["viewport"],"dispatchKey":"NAME_VALUE_DISPATCH"},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup","htmlFormat":["AMP","AMP4ADS"],"descriptiveName":"meta name=viewport"},{"tagName":"META","specName":"meta http-equiv=X-UA-Compatible","attrs":[{"name":"content","mandatory":true,"valueProperties":{"properties":[{"name":"ie","value":"edge"},{"name":"chrome","value":"1"}]}},{"name":"http-equiv","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["x-ua-compatible"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","mandatoryAncestor":"HEAD","htmlFormat":["AMP","AMP4ADS"],"descriptiveName":"meta http-equiv=X-UA-Compatible"},{"tagName":"META","specName":"meta name=apple-itunes-app","mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true,"valueRegex":".*app-id=.*"},{"name":"name","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["apple-itunes-app"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags","htmlFormat":["AMP","AMP4ADS"],"satisfies":["amp-app-banner data source"]},{"tagName":"META","specName":"meta name=amp-experiments-opt-in","mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true},{"name":"name","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["amp-experiments-opt-in"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"htmlFormat":["AMP","AMP4ADS"]},{"tagName":"META","specName":"meta name=amp-3p-iframe-src","mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true,"valueUrl":{"protocol":["https"]}},{"name":"name","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["amp-3p-iframe-src"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"specUrl":"https://amp.dev/documentation/components/amp-ad/","htmlFormat":["AMP"]},{"tagName":"META","specName":"meta name=amp-consent-blocking","unique":true,"mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true},{"name":"name","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["amp-consent-blocking"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"htmlFormat":["AMP"],"satisfies":["meta name=amp-consent-blocking"]},{"tagName":"META","specName":"meta name=amp-experiment-token","mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true},{"name":"name","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["amp-experiment-token"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"htmlFormat":["AMP"]},{"tagName":"META","specName":"meta name=amp-link-variable-allowed-origin","mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true},{"name":"name","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["amp-link-variable-allowed-origin"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing"],"trigger":{"alsoRequiresAttr":["validation-for"]},"global":true},{"name":"amp-fx","valueRegexCasei":"(fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)(\\s|fade-in|fade-in-scroll|float-in-bottom|float-in-top|fly-in-bottom|fly-in-left|fly-in-right|fly-in-top|parallax)*","requiresExtension":["amp-fx-collection"],"global":true},{"name":"subscriptions-action","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-actions","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-decorate","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-dialog","value":[""],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-display","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-lang","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-section","valueCasei":["actions","content","content-not-granted","loading"],"requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-service","requiresExtension":["amp-subscriptions"],"global":true},{"name":"subscriptions-google-rtc","requiresExtension":["amp-subscriptions-google"],"global":true},{"name":"next-page-hide","requiresExtension":["amp-next-page"],"global":true},{"name":"next-page-replace","requiresExtension":["amp-next-page"],"global":true},{"name":"[aria-activedescendant]","global":true},{"name":"[aria-atomic]","global":true},{"name":"[aria-autocomplete]","global":true},{"name":"[aria-busy]","global":true},{"name":"[aria-checked]","global":true},{"name":"[aria-controls]","global":true},{"name":"[aria-describedby]","global":true},{"name":"[aria-disabled]","global":true},{"name":"[aria-dropeffect]","global":true},{"name":"[aria-expanded]","global":true},{"name":"[aria-flowto]","global":true},{"name":"[aria-grabbed]","global":true},{"name":"[aria-haspopup]","global":true},{"name":"[aria-hidden]","global":true},{"name":"[aria-invalid]","global":true},{"name":"[aria-label]","global":true},{"name":"[aria-labelledby]","global":true},{"name":"[aria-level]","global":true},{"name":"[aria-live]","global":true},{"name":"[aria-multiline]","global":true},{"name":"[aria-multiselectable]","global":true},{"name":"[aria-orientation]","global":true},{"name":"[aria-owns]","global":true},{"name":"[aria-posinset]","global":true},{"name":"[aria-pressed]","global":true},{"name":"[aria-readonly]","global":true},{"name":"[aria-relevant]","global":true},{"name":"[aria-required]","global":true},{"name":"[aria-selected]","global":true},{"name":"[aria-setsize]","global":true},{"name":"[aria-sort]","global":true},{"name":"[aria-valuemax]","global":true},{"name":"[aria-valuemin]","global":true},{"name":"[aria-valuenow]","global":true},{"name":"[aria-valuetext]","global":true},{"name":"[class]","global":true},{"name":"[hidden]","global":true},{"name":"[text]","global":true},{"name":"i-amphtml-binding","value":[""],"enabledBy":["transformed"],"global":true},{"name":"autoscroll","requiresAncestor":{"marker":["AUTOSCROLL"]},"global":true}],"htmlFormat":["AMP"]},{"tagName":"META","specName":"meta name=amp-google-clientid-id-api","mandatoryParent":"HEAD","attrs":[{"name":"content","mandatory":true},{"name":"name","mandatory":true,"dispatchKey":"NAME_VALUE_DISPATCH","valueCasei":["amp-google-client-id-api"]},{"name":"itemid","global":true},{"name":"itemprop","global":true},{"name":"itemref","global":true},{"name":"itemscope","global":true},{"name":"itemtype","global":true},{"name":"about","global":true},{"name":"content","global":true},{"name":"datatype","global":true},{"name":"inlist","global":true},{"name":"prefix","global":true},{"name":"property","global":true},{"name":"rel","disallowedValueRegex":"(^|\\s)(canonical|components|dns-prefetch|import|manifest|preconnect|preload|prerender|serviceworker|stylesheet|subresource)(\\s|$)","global":true},{"name":"resource","global":true},{"name":"rev","global":true},{"name":"style","valueDocCss":true,"global":true},{"name":"typeof","global":true},{"name":"vocab","global":true},{"name":"accesskey","global":true},{"name":"class","global":true},{"name":"dir","global":true},{"name":"draggable","global":true},{"name":"hidden","value":[""],"global":true},{"name":"id","disallowedValueRegex":"(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|AMP|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|i-amphtml-\\S*|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)","global":true},{"name":"lang","global":true},{"name":"slot","global":true},{"name":"tabindex","global":true},{"name":"title","global":true},{"name":"translate","global":true},{"name":"aria-activedescendant","global":true},{"name":"aria-atomic","global":true},{"name":"aria-autocomplete","global":true},{"name":"aria-busy","global":true},{"name":"aria-checked","global":true},{"name":"aria-controls","global":true},{"name":"aria-current","global":true},{"name":"aria-describedby","global":true},{"name":"aria-disabled","global":true},{"name":"aria-dropeffect","global":true},{"name":"aria-expanded","global":true},{"name":"aria-flowto","global":true},{"name":"aria-grabbed","global":true},{"name":"aria-haspopup","global":true},{"name":"aria-hidden","global":true},{"name":"aria-invalid","global":true},{"name":"aria-label","global":true},{"name":"aria-labelledby","global":true},{"name":"aria-level","global":true},{"name":"aria-live","global":true},{"name":"aria-multiline","global":true},{"name":"aria-multiselectable","global":true},{"name":"aria-orientation","global":true},{"name":"aria-owns","global":true},{"name":"aria-posinset","global":true},{"name":"aria-pressed","global":true},{"name":"aria-readonly","global":true},{"name":"aria-relevant","global":true},{"name":"aria-required","global":true},{"name":"aria-selected","global":true},{"name":"aria-setsize","global":true},{"name":"aria-sort","global":true},{"name":"aria-valuemax","global":true},{"name":"aria-valuemin","global":true},{"name":"aria-valuenow","global":true},{"name":"aria-valuetext","global":true},{"name":"on","trigger":{"ifValueRegex":"tap:.*","alsoRequiresAttr":["role","tabindex"]},"global":true},{"name":"role","global":true},{"name":"placeholder","value":[""],"global":true},{"name":"fallback","value":[""],"global":true},{"name":"overflow","global":true},{"name":"amp-access","global":true},{"name":"amp-access-behavior","global":true},{"name":"amp-access-hide","global":true},{"name":"amp-access-id","global":true},{"name":"amp-access-loader","global":true},{"name":"amp-access-loading","global":true},{"name":"amp-access-off","global":true},{"name":"amp-access-on","global":true},{"name":"amp-access-show","global":true},{"name":"amp-access-style","global":true},{"name":"amp-access-template","global":true},{"name":"i-amp-access-id","global":true},{"name":"validation-for","trigger":{"alsoRequiresAttr":["visible-when-invalid"]},"global":true},{"name":"visible-when-invalid","value":["badInput","customError","patternMismatch","rangeOverflow","rang |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment