/opt/canhelp/apps/web/.next/cache/webpack/server-production
NameSizeModeActions
0.pack925145390644editdlrm
1.pack12673790644editdlrm
2.pack43735990644editdlrm
3.pack7451990644editdlrm
4.pack65204660644editdlrm
5.pack259717610644editdlrm
6.pack7518430644editdlrm
7.pack46388840644editdlrm
8.pack48452960644editdlrm
9.pack97020644editdlrm
10.pack27038500644editdlrm
11.pack1361530644editdlrm
12.pack24060644editdlrm
13.pack4277340644editdlrm
14.pack6358240644editdlrm
15.pack19769150644editdlrm
16.pack85740644editdlrm
17.pack24591570644editdlrm
18.pack119171890644editdlrm
19.pack768050644editdlrm
20.pack31443360644editdlrm
21.pack60115380644editdlrm
22.pack10241010644editdlrm
index.pack77214480644editdlrm
index.pack.old84399530644editdlrm
Edit: /opt/canhelp/apps/web/.next/cache/webpack/server-production/18.pack (11917189B)
wpcy×µ§webpack/lib/cache/PackFileCacheStrategyPackContentItems €›Compilation/assets|chunk111œMinifierWebpackPlugin|111.js«webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ƒ€«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€@+«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceFexports.id = 111; exports.ids = [111]; exports.modules = { /***/ 44: «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ø#«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ; «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceî /* __next_internal_client_entry_do_not_use__ cjs */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { GracefulDegradeBoundary: null, default: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { GracefulDegradeBoundary: function() { return GracefulDegradeBoundary; }, default: function() { return _default; } }); const _jsxruntime = require("react/jsx-runtime"); const _react = require("react"); function getDomNodeAttributes(node) { const result = {}; for(let i = 0; i < node.attributes.length; i++){ const attr = node.attributes[i]; result[attr.name] = attr.value; } return result; } class GracefulDegradeBoundary extends _react.Component { static getDerivedStateFromError(_) { return { hasError: true }; } componentDidMount() { const htmlNode = this.htmlRef.current; if (this.state.hasError && htmlNode) { // Reapply the cached HTML attributes to the root element Object.entries(this.htmlAttributes).forEach((param)=>{ let [key, value] = param; htmlNode.setAttribute(key, value); }); } } render() { const { hasError } = this.state; // Cache the root HTML content on the first render if ("undefined" !== 'undefined' && !this.rootHtml) { this.rootHtml = document.documentElement.innerHTML; this.htmlAttributes = getDomNodeAttributes(document.documentElement); } if (hasError) { // Render the current HTML content without hydration return /*#__PURE__*/ (0, _jsxruntime.jsx)("html", { ref: this.htmlRef, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: this.rootHtml } }); } return this.props.children; } constructor(props){ super(props); this.state = { hasError: false }; this.rootHtml = ''; this.htmlAttributes = {}; this.htmlRef = /*#__PURE__*/ (0, _react.createRef)(); } } const _default = GracefulDegradeBoundary; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=graceful-degrade-boundary.js.map  c5ACoOƒƒŒÔ.46H[aciç²€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…78157þ…31768…false‚{}€†buffer†source„size„maps„hashà /* __next_internal_client_entry_do_not_use__ cjs */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { GracefulDegradeBoundary: function() { return GracefulDegradeBoundary; }, default: function() { return _default; } }); const _jsxruntime = __webpack_require__(78157); const _react = __webpack_require__(31768); function getDomNodeAttributes(node) { const result = {}; for(let i = 0; i < node.attributes.length; i++){ const attr = node.attributes[i]; result[attr.name] = attr.value; } return result; } class GracefulDegradeBoundary extends _react.Component { static getDerivedStateFromError(_) { return { hasError: true }; } componentDidMount() { const htmlNode = this.htmlRef.current; if (this.state.hasError && htmlNode) { // Reapply the cached HTML attributes to the root element Object.entries(this.htmlAttributes).forEach((param)=>{ let [key, value] = param; htmlNode.setAttribute(key, value); }); } } render() { const { hasError } = this.state; // Cache the root HTML content on the first render if (false) {} if (hasError) { // Render the current HTML content without hydration return /*#__PURE__*/ (0, _jsxruntime.jsx)("html", { ref: this.htmlRef, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: this.rootHtml } }); } return this.props.children; } constructor(props){ super(props); this.state = { hasError: false }; this.rootHtml = ''; this.htmlAttributes = {}; this.htmlRef = /*#__PURE__*/ (0, _react.createRef)(); } } const _default = GracefulDegradeBoundary; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=graceful-degrade-boundary.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceî /* __next_internal_client_entry_do_not_use__ cjs */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { GracefulDegradeBoundary: null, default: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { GracefulDegradeBoundary: function() { return GracefulDegradeBoundary; }, default: function() { return _default; } }); const _jsxruntime = require("react/jsx-runtime"); const _react = require("react"); function getDomNodeAttributes(node) { const result = {}; for(let i = 0; i < node.attributes.length; i++){ const attr = node.attributes[i]; result[attr.name] = attr.value; } return result; } class GracefulDegradeBoundary extends _react.Component { static getDerivedStateFromError(_) { return { hasError: true }; } componentDidMount() { const htmlNode = this.htmlRef.current; if (this.state.hasError && htmlNode) { // Reapply the cached HTML attributes to the root element Object.entries(this.htmlAttributes).forEach((param)=>{ let [key, value] = param; htmlNode.setAttribute(key, value); }); } } render() { const { hasError } = this.state; // Cache the root HTML content on the first render if ("undefined" !== 'undefined' && !this.rootHtml) { this.rootHtml = document.documentElement.innerHTML; this.htmlAttributes = getDomNodeAttributes(document.documentElement); } if (hasError) { // Render the current HTML content without hydration return /*#__PURE__*/ (0, _jsxruntime.jsx)("html", { ref: this.htmlRef, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: this.rootHtml } }); } return this.props.children; } constructor(props){ super(props); this.state = { hasError: false }; this.rootHtml = ''; this.htmlAttributes = {}; this.htmlRef = /*#__PURE__*/ (0, _react.createRef)(); } } const _default = GracefulDegradeBoundary; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=graceful-degrade-boundary.js.map ÿ5365undefined67111Object.defineProperty(exports, "__esModule", (undefined131131))undefined1402120undefined558564__webpack_require__undefined56658478157undefined603609__webpack_require__undefined61161731768undefined15111555falseundefined15581714{}undefined /***/ }) €†buffer†source„size„maps„hash, /***/ ((module, exports, __webpack_require__) => { "use strict"; /* __next_internal_client_entry_do_not_use__ cjs */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { GracefulDegradeBoundary: function() { return GracefulDegradeBoundary; }, default: function() { return _default; } }); const _jsxruntime = __webpack_require__(78157); const _react = __webpack_require__(31768); function getDomNodeAttributes(node) { const result = {}; for(let i = 0; i < node.attributes.length; i++){ const attr = node.attributes[i]; result[attr.name] = attr.value; } return result; } class GracefulDegradeBoundary extends _react.Component { static getDerivedStateFromError(_) { return { hasError: true }; } componentDidMount() { const htmlNode = this.htmlRef.current; if (this.state.hasError && htmlNode) { // Reapply the cached HTML attributes to the root element Object.entries(this.htmlAttributes).forEach((param)=>{ let [key, value] = param; htmlNode.setAttribute(key, value); }); } } render() { const { hasError } = this.state; // Cache the root HTML content on the first render if (false) {} if (hasError) { // Render the current HTML content without hydration return /*#__PURE__*/ (0, _jsxruntime.jsx)("html", { ref: this.htmlRef, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: this.rootHtml } }); } return this.props.children; } constructor(props){ super(props); this.state = { hasError: false }; this.rootHtml = ''; this.htmlAttributes = {}; this.htmlRef = /*#__PURE__*/ (0, _react.createRef)(); } } const _default = GracefulDegradeBoundary; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=graceful-degrade-boundary.js.map /***/ }) €”{"finalSource":true}ƒmap‹bufferedMap ConcatSourceRawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; ReplaceSourceRawSourceî /* __next_internal_client_entry_do_not_use__ cjs */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { GracefulDegradeBoundary: null, default: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { GracefulDegradeBoundary: function() { return GracefulDegradeBoundary; }, default: function() { return _default; } }); const _jsxruntime = require("react/jsx-runtime"); const _react = require("react"); function getDomNodeAttributes(node) { const result = {}; for(let i = 0; i < node.attributes.length; i++){ const attr = node.attributes[i]; result[attr.name] = attr.value; } return result; } class GracefulDegradeBoundary extends _react.Component { static getDerivedStateFromError(_) { return { hasError: true }; } componentDidMount() { const htmlNode = this.htmlRef.current; if (this.state.hasError && htmlNode) { // Reapply the cached HTML attributes to the root element Object.entries(this.htmlAttributes).forEach((param)=>{ let [key, value] = param; htmlNode.setAttribute(key, value); }); } } render() { const { hasError } = this.state; // Cache the root HTML content on the first render if ("undefined" !== 'undefined' && !this.rootHtml) { this.rootHtml = document.documentElement.innerHTML; this.htmlAttributes = getDomNodeAttributes(document.documentElement); } if (hasError) { // Render the current HTML content without hydration return /*#__PURE__*/ (0, _jsxruntime.jsx)("html", { ref: this.htmlRef, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: this.rootHtml } }); } return this.props.children; } constructor(props){ super(props); this.state = { hasError: false }; this.rootHtml = ''; this.htmlAttributes = {}; this.htmlRef = /*#__PURE__*/ (0, _react.createRef)(); } } const _default = GracefulDegradeBoundary; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=graceful-degrade-boundary.js.map ÿ5365undefined67111Object.defineProperty(exports, "__esModule", (undefined131131))undefined1402120undefined558564__webpack_require__undefined56658478157undefined603609__webpack_require__undefined61161731768undefined15111555falseundefined15581714{}undefined RawSource /***/ }), /***/ 775:  «webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource-/***/ ((module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource%"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { StaticGenBailoutError: null, isStaticGenBailoutError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { StaticGenBailoutError: function() { return StaticGenBailoutError; }, isStaticGenBailoutError: function() { return isStaticGenBailoutError; } }); const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'; class StaticGenBailoutError extends Error { constructor(...args){ super(...args), this.code = NEXT_STATIC_GEN_BAILOUT; } } function isStaticGenBailoutError(error) { if (typeof error !== 'object' || error === null || !('code' in error)) { return false; } return error.code === NEXT_STATIC_GEN_BAILOUT; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=static-generation-bailout.js.map e :NNW@­€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hashÄ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { StaticGenBailoutError: function() { return StaticGenBailoutError; }, isStaticGenBailoutError: function() { return isStaticGenBailoutError; } }); const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'; class StaticGenBailoutError extends Error { constructor(...args){ super(...args), this.code = NEXT_STATIC_GEN_BAILOUT; } } function isStaticGenBailoutError(error) { if (typeof error !== 'object' || error === null || !('code' in error)) { return false; } return error.code === NEXT_STATIC_GEN_BAILOUT; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=static-generation-bailout.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource%"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { StaticGenBailoutError: null, isStaticGenBailoutError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { StaticGenBailoutError: function() { return StaticGenBailoutError; }, isStaticGenBailoutError: function() { return isStaticGenBailoutError; } }); const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'; class StaticGenBailoutError extends Error { constructor(...args){ super(...args), this.code = NEXT_STATIC_GEN_BAILOUT; } } function isStaticGenBailoutError(error) { if (typeof error !== 'object' || error === null || !('code' in error)) { return false; } return error.code === NEXT_STATIC_GEN_BAILOUT; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=static-generation-bailout.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871730undefined /***/ }) ìû/***/ ((module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { StaticGenBailoutError: function() { return StaticGenBailoutError; }, isStaticGenBailoutError: function() { return isStaticGenBailoutError; } }); const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'; class StaticGenBailoutError extends Error { constructor(...args){ super(...args), this.code = NEXT_STATIC_GEN_BAILOUT; } } function isStaticGenBailoutError(error) { if (typeof error !== 'object' || error === null || !('code' in error)) { return false; } return error.code === NEXT_STATIC_GEN_BAILOUT; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=static-generation-bailout.js.map /***/ }) íð ñ-/***/ ((module, exports) => { "use strict"; ò%"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { StaticGenBailoutError: null, isStaticGenBailoutError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { StaticGenBailoutError: function() { return StaticGenBailoutError; }, isStaticGenBailoutError: function() { return isStaticGenBailoutError; } }); const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'; class StaticGenBailoutError extends Error { constructor(...args){ super(...args), this.code = NEXT_STATIC_GEN_BAILOUT; } } function isStaticGenBailoutError(error) { if (typeof error !== 'object' || error === null || !('code' in error)) { return false; } return error.code === NEXT_STATIC_GEN_BAILOUT; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=static-generation-bailout.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871730undefinedóô, /***/ 988:  9«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ® «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource1"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "IconsMetadata", { enumerable: true, get: function() { return IconsMetadata; } }); const _jsxruntime = require("react/jsx-runtime"); const _iconmark = require("./icon-mark"); const _meta = require("./meta"); function IconDescriptorLink({ icon }) { const { url, rel = 'icon', ...props } = icon; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: url.toString(), ...props }); } function IconLink({ rel, icon }) { if (typeof icon === 'object' && !(icon instanceof URL)) { if (!icon.rel && rel) icon.rel = rel; return IconDescriptorLink({ icon }); } else { const href = icon.toString(); return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: href }); } } function IconsMetadata({ icons }) { if (!icons) return null; const shortcutList = icons.shortcut; const iconList = icons.icon; const appleList = icons.apple; const otherList = icons.other; const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length)); if (!hasIcon) return null; return (0, _meta.MetaFilter)([ shortcutList ? shortcutList.map((icon)=>IconLink({ rel: 'shortcut icon', icon })) : null, iconList ? iconList.map((icon)=>IconLink({ rel: 'icon', icon })) : null, appleList ? appleList.map((icon)=>IconLink({ rel: 'apple-touch-icon', icon })) : null, otherList ? otherList.map((icon)=>IconDescriptorLink({ icon })) : null, hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null ]); } //# sourceMappingURL=icons.js.map g :NNQN€ÔÔëñó!#/AGIP€®Object.defineProperty(exports, "__esModule", (‚))±Object.defineProperty(exports, "IconsMetadata", (þ“__webpack_require__„5939þ…67487ý…66837€†buffer†source„size„maps„hash2 Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "IconsMetadata", ({ enumerable: true, get: function() { return IconsMetadata; } })); const _jsxruntime = __webpack_require__(5939); const _iconmark = __webpack_require__(67487); const _meta = __webpack_require__(66837); function IconDescriptorLink({ icon }) { const { url, rel = 'icon', ...props } = icon; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: url.toString(), ...props }); } function IconLink({ rel, icon }) { if (typeof icon === 'object' && !(icon instanceof URL)) { if (!icon.rel && rel) icon.rel = rel; return IconDescriptorLink({ icon }); } else { const href = icon.toString(); return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: href }); } } function IconsMetadata({ icons }) { if (!icons) return null; const shortcutList = icons.shortcut; const iconList = icons.icon; const appleList = icons.apple; const otherList = icons.other; const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length)); if (!hasIcon) return null; return (0, _meta.MetaFilter)([ shortcutList ? shortcutList.map((icon)=>IconLink({ rel: 'shortcut icon', icon })) : null, iconList ? iconList.map((icon)=>IconLink({ rel: 'icon', icon })) : null, appleList ? appleList.map((icon)=>IconLink({ rel: 'apple-touch-icon', icon })) : null, otherList ? otherList.map((icon)=>IconDescriptorLink({ icon })) : null, hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null ]); } //# sourceMappingURL=icons.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource1"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "IconsMetadata", { enumerable: true, get: function() { return IconsMetadata; } }); const _jsxruntime = require("react/jsx-runtime"); const _iconmark = require("./icon-mark"); const _meta = require("./meta"); function IconDescriptorLink({ icon }) { const { url, rel = 'icon', ...props } = icon; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: url.toString(), ...props }); } function IconLink({ rel, icon }) { if (typeof icon === 'object' && !(icon instanceof URL)) { if (!icon.rel && rel) icon.rel = rel; return IconDescriptorLink({ icon }); } else { const href = icon.toString(); return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: href }); } } function IconsMetadata({ icons }) { if (!icons) return null; const shortcutList = icons.shortcut; const iconList = icons.icon; const appleList = icons.apple; const otherList = icons.other; const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length)); if (!hasIcon) return null; return (0, _meta.MetaFilter)([ shortcutList ? shortcutList.map((icon)=>IconLink({ rel: 'shortcut icon', icon })) : null, iconList ? iconList.map((icon)=>IconLink({ rel: 'icon', icon })) : null, appleList ? appleList.map((icon)=>IconLink({ rel: 'apple-touch-icon', icon })) : null, otherList ? otherList.map((icon)=>IconDescriptorLink({ icon })) : null, hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null ]); } //# sourceMappingURL=icons.js.mapG012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81128Object.defineProperty(exports, "IconsMetadata", (undefined212212))undefined235241__webpack_require__undefined2432615939undefined283289__webpack_require__undefined29130367487undefined321327__webpack_require__undefined32933666837undefined /***/ }) á/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "IconsMetadata", ({ enumerable: true, get: function() { return IconsMetadata; } })); const _jsxruntime = __webpack_require__(5939); const _iconmark = __webpack_require__(67487); const _meta = __webpack_require__(66837); function IconDescriptorLink({ icon }) { const { url, rel = 'icon', ...props } = icon; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: url.toString(), ...props }); } function IconLink({ rel, icon }) { if (typeof icon === 'object' && !(icon instanceof URL)) { if (!icon.rel && rel) icon.rel = rel; return IconDescriptorLink({ icon }); } else { const href = icon.toString(); return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: href }); } } function IconsMetadata({ icons }) { if (!icons) return null; const shortcutList = icons.shortcut; const iconList = icons.icon; const appleList = icons.apple; const otherList = icons.other; const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length)); if (!hasIcon) return null; return (0, _meta.MetaFilter)([ shortcutList ? shortcutList.map((icon)=>IconLink({ rel: 'shortcut icon', icon })) : null, iconList ? iconList.map((icon)=>IconLink({ rel: 'icon', icon })) : null, appleList ? appleList.map((icon)=>IconLink({ rel: 'apple-touch-icon', icon })) : null, otherList ? otherList.map((icon)=>IconDescriptorLink({ icon })) : null, hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null ]); } //# sourceMappingURL=icons.js.map /***/ }) âå æS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; ç1"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "IconsMetadata", { enumerable: true, get: function() { return IconsMetadata; } }); const _jsxruntime = require("react/jsx-runtime"); const _iconmark = require("./icon-mark"); const _meta = require("./meta"); function IconDescriptorLink({ icon }) { const { url, rel = 'icon', ...props } = icon; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: url.toString(), ...props }); } function IconLink({ rel, icon }) { if (typeof icon === 'object' && !(icon instanceof URL)) { if (!icon.rel && rel) icon.rel = rel; return IconDescriptorLink({ icon }); } else { const href = icon.toString(); return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: rel, href: href }); } } function IconsMetadata({ icons }) { if (!icons) return null; const shortcutList = icons.shortcut; const iconList = icons.icon; const appleList = icons.apple; const otherList = icons.other; const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length)); if (!hasIcon) return null; return (0, _meta.MetaFilter)([ shortcutList ? shortcutList.map((icon)=>IconLink({ rel: 'shortcut icon', icon })) : null, iconList ? iconList.map((icon)=>IconLink({ rel: 'icon', icon })) : null, appleList ? appleList.map((icon)=>IconLink({ rel: 'apple-touch-icon', icon })) : null, otherList ? otherList.map((icon)=>IconDescriptorLink({ icon })) : null, hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null ]); } //# sourceMappingURL=icons.js.mapG012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81128Object.defineProperty(exports, "IconsMetadata", (undefined212212))undefined235241__webpack_require__undefined2432615939undefined283289__webpack_require__undefined29130367487undefined321327__webpack_require__undefined32933666837undefinedèé, /***/ 1422:  ²«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource-/***/ ((module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource í«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceö// This gets assigned as a side-effect during app initialization. Because it // represents the build used to create the JS bundle, it should never change // after being set, so we store it in a global variable. // // When performing RSC requests, if the incoming data has a different build ID, // we perform an MPA navigation/refresh to load the updated build and ensure // that the client and server in sync. // Starts as an empty string. In practice, because setAppBuildId is called // during initialization before hydration starts, this will always get // reassigned to the actual build ID before it's ever needed by a navigation. // If for some reasons it didn't, due to a bug or race condition, then on // navigation the build comparision would fail and trigger an MPA navigation. "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getAppBuildId: null, setAppBuildId: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getAppBuildId: function() { return getAppBuildId; }, setAppBuildId: function() { return setAppBuildId; } }); let globalBuildId = ''; function setAppBuildId(buildId) { globalBuildId = buildId; } function getAppBuildId() { return globalBuildId; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=app-build-id.js.map G L``i­€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hash§// This gets assigned as a side-effect during app initialization. Because it // represents the build used to create the JS bundle, it should never change // after being set, so we store it in a global variable. // // When performing RSC requests, if the incoming data has a different build ID, // we perform an MPA navigation/refresh to load the updated build and ensure // that the client and server in sync. // Starts as an empty string. In practice, because setAppBuildId is called // during initialization before hydration starts, this will always get // reassigned to the actual build ID before it's ever needed by a navigation. // If for some reasons it didn't, due to a bug or race condition, then on // navigation the build comparision would fail and trigger an MPA navigation. Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getAppBuildId: function() { return getAppBuildId; }, setAppBuildId: function() { return setAppBuildId; } }); let globalBuildId = ''; function setAppBuildId(buildId) { globalBuildId = buildId; } function getAppBuildId() { return globalBuildId; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=app-build-id.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceö// This gets assigned as a side-effect during app initialization. Because it // represents the build used to create the JS bundle, it should never change // after being set, so we store it in a global variable. // // When performing RSC requests, if the incoming data has a different build ID, // we perform an MPA navigation/refresh to load the updated build and ensure // that the client and server in sync. // Starts as an empty string. In practice, because setAppBuildId is called // during initialization before hydration starts, this will always get // reassigned to the actual build ID before it's ever needed by a navigation. // If for some reasons it didn't, due to a bug or race condition, then on // navigation the build comparision would fail and trigger an MPA navigation. "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getAppBuildId: null, setAppBuildId: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getAppBuildId: function() { return getAppBuildId; }, setAppBuildId: function() { return setAppBuildId; } }); let globalBuildId = ''; function setAppBuildId(buildId) { globalBuildId = buildId; } function getAppBuildId() { return globalBuildId; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=app-build-id.js.map m786798undefined800844Object.defineProperty(exports, "__esModule", (undefined864864))undefined8739410undefined /***/ }) ÖÞ/***/ ((module, exports) => { "use strict"; // This gets assigned as a side-effect during app initialization. Because it // represents the build used to create the JS bundle, it should never change // after being set, so we store it in a global variable. // // When performing RSC requests, if the incoming data has a different build ID, // we perform an MPA navigation/refresh to load the updated build and ensure // that the client and server in sync. // Starts as an empty string. In practice, because setAppBuildId is called // during initialization before hydration starts, this will always get // reassigned to the actual build ID before it's ever needed by a navigation. // If for some reasons it didn't, due to a bug or race condition, then on // navigation the build comparision would fail and trigger an MPA navigation. Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getAppBuildId: function() { return getAppBuildId; }, setAppBuildId: function() { return setAppBuildId; } }); let globalBuildId = ''; function setAppBuildId(buildId) { globalBuildId = buildId; } function getAppBuildId() { return globalBuildId; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=app-build-id.js.map /***/ }) ×Ú ÛêÝö// This gets assigned as a side-effect during app initialization. Because it // represents the build used to create the JS bundle, it should never change // after being set, so we store it in a global variable. // // When performing RSC requests, if the incoming data has a different build ID, // we perform an MPA navigation/refresh to load the updated build and ensure // that the client and server in sync. // Starts as an empty string. In practice, because setAppBuildId is called // during initialization before hydration starts, this will always get // reassigned to the actual build ID before it's ever needed by a navigation. // If for some reasons it didn't, due to a bug or race condition, then on // navigation the build comparision would fail and trigger an MPA navigation. "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getAppBuildId: null, setAppBuildId: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getAppBuildId: function() { return getAppBuildId; }, setAppBuildId: function() { return setAppBuildId; } }); let globalBuildId = ''; function setAppBuildId(buildId) { globalBuildId = buildId; } function getAppBuildId() { return globalBuildId; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=app-build-id.js.map m786798undefined800844Object.defineProperty(exports, "__esModule", (undefined864864))undefined8739410undefinedÞß, /***/ 1484:  «webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource K«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceå"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "getRouteMatcher", { enumerable: true, get: function() { return getRouteMatcher; } }); const _utils = require("../../utils"); const _routematchutils = require("./route-match-utils"); function getRouteMatcher(param) { let { re, groups } = param; const rawMatcher = (pathname)=>{ const routeMatch = re.exec(pathname); if (!routeMatch) return false; const decode = (param)=>{ try { return decodeURIComponent(param); } catch (e) { throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", { value: "E528", enumerable: false, configurable: true }); } }; const params = {}; for (const [key, group] of Object.entries(groups)){ const match = routeMatch[group.pos]; if (match !== undefined) { if (group.repeat) { params[key] = match.split('/').map((entry)=>decode(entry)); } else { params[key] = decode(match); } } } return params; }; // Wrap with safe matcher to handle parameter cleaning return (0, _routematchutils.safeRouteMatcher)(rawMatcher); } //# sourceMappingURL=route-matcher.js.map  e :NNQJ‚ØØêðòþ!#7€®Object.defineProperty(exports, "__esModule", (‚))³Object.defineProperty(exports, "getRouteMatcher", (þ“__webpack_require__…49405þ…38571€†buffer†source„size„maps„hashÜ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "getRouteMatcher", ({ enumerable: true, get: function() { return getRouteMatcher; } })); const _utils = __webpack_require__(49405); const _routematchutils = __webpack_require__(38571); function getRouteMatcher(param) { let { re, groups } = param; const rawMatcher = (pathname)=>{ const routeMatch = re.exec(pathname); if (!routeMatch) return false; const decode = (param)=>{ try { return decodeURIComponent(param); } catch (e) { throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", { value: "E528", enumerable: false, configurable: true }); } }; const params = {}; for (const [key, group] of Object.entries(groups)){ const match = routeMatch[group.pos]; if (match !== undefined) { if (group.repeat) { params[key] = match.split('/').map((entry)=>decode(entry)); } else { params[key] = decode(match); } } } return params; }; // Wrap with safe matcher to handle parameter cleaning return (0, _routematchutils.safeRouteMatcher)(rawMatcher); } //# sourceMappingURL=route-matcher.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceå"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "getRouteMatcher", { enumerable: true, get: function() { return getRouteMatcher; } }); const _utils = require("../../utils"); const _routematchutils = require("./route-match-utils"); function getRouteMatcher(param) { let { re, groups } = param; const rawMatcher = (pathname)=>{ const routeMatch = re.exec(pathname); if (!routeMatch) return false; const decode = (param)=>{ try { return decodeURIComponent(param); } catch (e) { throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", { value: "E528", enumerable: false, configurable: true }); } }; const params = {}; for (const [key, group] of Object.entries(groups)){ const match = routeMatch[group.pos]; if (match !== undefined) { if (group.repeat) { params[key] = match.split('/').map((entry)=>decode(entry)); } else { params[key] = decode(match); } } } return params; }; // Wrap with safe matcher to handle parameter cleaning return (0, _routematchutils.safeRouteMatcher)(rawMatcher); } //# sourceMappingURL=route-matcher.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81130Object.defineProperty(exports, "getRouteMatcher", (undefined216216))undefined234240__webpack_require__undefined24225449405undefined283289__webpack_require__undefined29131138571undefined /***/ }) Ì9/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "getRouteMatcher", ({ enumerable: true, get: function() { return getRouteMatcher; } })); const _utils = __webpack_require__(49405); const _routematchutils = __webpack_require__(38571); function getRouteMatcher(param) { let { re, groups } = param; const rawMatcher = (pathname)=>{ const routeMatch = re.exec(pathname); if (!routeMatch) return false; const decode = (param)=>{ try { return decodeURIComponent(param); } catch (e) { throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", { value: "E528", enumerable: false, configurable: true }); } }; const params = {}; for (const [key, group] of Object.entries(groups)){ const match = routeMatch[group.pos]; if (match !== undefined) { if (group.repeat) { params[key] = match.split('/').map((entry)=>decode(entry)); } else { params[key] = decode(match); } } } return params; }; // Wrap with safe matcher to handle parameter cleaning return (0, _routematchutils.safeRouteMatcher)(rawMatcher); } //# sourceMappingURL=route-matcher.js.map /***/ }) ÍÐ ÑëÓå"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "getRouteMatcher", { enumerable: true, get: function() { return getRouteMatcher; } }); const _utils = require("../../utils"); const _routematchutils = require("./route-match-utils"); function getRouteMatcher(param) { let { re, groups } = param; const rawMatcher = (pathname)=>{ const routeMatch = re.exec(pathname); if (!routeMatch) return false; const decode = (param)=>{ try { return decodeURIComponent(param); } catch (e) { throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", { value: "E528", enumerable: false, configurable: true }); } }; const params = {}; for (const [key, group] of Object.entries(groups)){ const match = routeMatch[group.pos]; if (match !== undefined) { if (group.repeat) { params[key] = match.split('/').map((entry)=>decode(entry)); } else { params[key] = decode(match); } } } return params; }; // Wrap with safe matcher to handle parameter cleaning return (0, _routematchutils.safeRouteMatcher)(rawMatcher); } //# sourceMappingURL=route-matcher.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81130Object.defineProperty(exports, "getRouteMatcher", (undefined216216))undefined234240__webpack_require__undefined24225449405undefined283289__webpack_require__undefined29131138571undefinedÔÕ, /***/ 2173:  4r«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource 0&«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourcej$"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addSearchParamsToPageSegments: null, handleAliasedPrefetchEntry: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addSearchParamsToPageSegments: function() { return addSearchParamsToPageSegments; }, handleAliasedPrefetchEntry: function() { return handleAliasedPrefetchEntry; } }); const _segment = require("../../../shared/lib/segment"); const _approuter = require("../app-router"); const _applyrouterstatepatchtotree = require("./apply-router-state-patch-to-tree"); const _createhreffromurl = require("./create-href-from-url"); const _createroutercachekey = require("./create-router-cache-key"); const _fillcachewithnewsubtreedata = require("./fill-cache-with-new-subtree-data"); const _handlemutable = require("./handle-mutable"); const _navigatereducer = require("./reducers/navigate-reducer"); function handleAliasedPrefetchEntry(navigatedAt, state, flightData, url, mutable) { let currentTree = state.tree; let currentCache = state.cache; const href = (0, _createhreffromurl.createHrefFromUrl)(url); let applied; let scrollableSegments = []; if (typeof flightData === 'string') { return false; } for (const normalizedFlightData of flightData){ // If the segment doesn't have a loading component, we don't need to do anything. if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) { continue; } let treePatch = normalizedFlightData.tree; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); const { seedData, isRootRender, pathToSegment } = normalizedFlightData; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...pathToSegment ]; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); const newCache = (0, _approuter.createEmptyCacheNode)(); // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the // loading state and not the actual parallel route seed data. if (isRootRender && seedData) { // Fill in the cache with the new loading / rsc data const rsc = seedData[1]; const loading = seedData[3]; newCache.loading = loading; newCache.rsc = rsc; // Construct a new tree and apply the aliased loading state for each parallel route fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, currentCache, treePatch, seedData); } else { // Copy rsc for the root node of the cache. newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); // copy the loading state only into the leaf node (the part that changed) (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeDataButOnlyLoading)(navigatedAt, newCache, currentCache, normalizedFlightData); } // If we don't have an updated tree, there's no reason to update the cache, as the tree // dictates what cache nodes to render. if (newTree) { currentTree = newTree; currentCache = newCache; applied = true; } for (const subSegment of (0, _navigatereducer.generateSegmentsFromPatch)(treePatch)){ const scrollableSegmentPath = [ ...normalizedFlightData.pathToSegment, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } if (!applied) { return false; } mutable.patchedTree = currentTree; mutable.cache = currentCache; mutable.canonicalUrl = href; mutable.hashFragment = url.hash; mutable.scrollableSegments = scrollableSegments; return (0, _handlemutable.handleMutable)(state, mutable); } function hasLoadingComponentInSeedData(seedData) { if (!seedData) return false; const parallelRoutes = seedData[2]; const loading = seedData[3]; if (loading) { return true; } for(const key in parallelRoutes){ if (hasLoadingComponentInSeedData(parallelRoutes[key])) { return true; } } return false; } function fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData) { const isLastSegment = Object.keys(routerState[1]).length === 0; if (isLastSegment) { return; } for(const key in routerState[1]){ const parallelRouteState = routerState[1][key]; const segmentForParallelRoute = parallelRouteState[0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null; let newCacheNode; if (parallelSeedData !== null) { // New data was sent from the server. const rsc = parallelSeedData[1]; const loading = parallelSeedData[3]; newCacheNode = { lazyData: null, // copy the layout but null the page segment as that's not meant to be used rsc: segmentForParallelRoute.includes(_segment.PAGE_SEGMENT_KEY) ? null : rsc, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading, navigatedAt }; } else { // No data available for this node. This will trigger a lazy fetch // during render. newCacheNode = { lazyData: null, rsc: null, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading: null, navigatedAt: -1 }; } const existingParallelRoutes = newCache.parallelRoutes.get(key); if (existingParallelRoutes) { existingParallelRoutes.set(cacheKey, newCacheNode); } else { newCache.parallelRoutes.set(key, new Map([ [ cacheKey, newCacheNode ] ])); } fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCacheNode, existingCache, parallelRouteState, parallelSeedData); } } function addSearchParamsToPageSegments(flightRouterState, searchParams) { const [segment, parallelRoutes, ...rest] = flightRouterState; // If it's a page segment, modify the segment by adding search params if (segment.includes(_segment.PAGE_SEGMENT_KEY)) { const newSegment = (0, _segment.addSearchParamsIfPageSegment)(segment, searchParams); return [ newSegment, parallelRoutes, ...rest ]; } // Otherwise, recurse through the parallel routes and return a new tree const updatedParallelRoutes = {}; for (const [key, parallelRoute] of Object.entries(parallelRoutes)){ updatedParallelRoutes[key] = addSearchParamsToPageSegments(parallelRoute, searchParams); } return [ segment, updatedParallelRoutes, ...rest ]; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=aliased-prefetch-navigations.js.map g :NNW_¸@FHd{ƒ‘ºÀÂå  #EKMg–˜»ÖÜÞï @0€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…44859þ…25918ý…24848ü…75497û…82521ú…68360ù…26613ø…15426€†buffer†source„size„maps„hash°# Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addSearchParamsToPageSegments: function() { return addSearchParamsToPageSegments; }, handleAliasedPrefetchEntry: function() { return handleAliasedPrefetchEntry; } }); const _segment = __webpack_require__(44859); const _approuter = __webpack_require__(25918); const _applyrouterstatepatchtotree = __webpack_require__(24848); const _createhreffromurl = __webpack_require__(75497); const _createroutercachekey = __webpack_require__(82521); const _fillcachewithnewsubtreedata = __webpack_require__(68360); const _handlemutable = __webpack_require__(26613); const _navigatereducer = __webpack_require__(15426); function handleAliasedPrefetchEntry(navigatedAt, state, flightData, url, mutable) { let currentTree = state.tree; let currentCache = state.cache; const href = (0, _createhreffromurl.createHrefFromUrl)(url); let applied; let scrollableSegments = []; if (typeof flightData === 'string') { return false; } for (const normalizedFlightData of flightData){ // If the segment doesn't have a loading component, we don't need to do anything. if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) { continue; } let treePatch = normalizedFlightData.tree; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); const { seedData, isRootRender, pathToSegment } = normalizedFlightData; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...pathToSegment ]; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); const newCache = (0, _approuter.createEmptyCacheNode)(); // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the // loading state and not the actual parallel route seed data. if (isRootRender && seedData) { // Fill in the cache with the new loading / rsc data const rsc = seedData[1]; const loading = seedData[3]; newCache.loading = loading; newCache.rsc = rsc; // Construct a new tree and apply the aliased loading state for each parallel route fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, currentCache, treePatch, seedData); } else { // Copy rsc for the root node of the cache. newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); // copy the loading state only into the leaf node (the part that changed) (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeDataButOnlyLoading)(navigatedAt, newCache, currentCache, normalizedFlightData); } // If we don't have an updated tree, there's no reason to update the cache, as the tree // dictates what cache nodes to render. if (newTree) { currentTree = newTree; currentCache = newCache; applied = true; } for (const subSegment of (0, _navigatereducer.generateSegmentsFromPatch)(treePatch)){ const scrollableSegmentPath = [ ...normalizedFlightData.pathToSegment, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } if (!applied) { return false; } mutable.patchedTree = currentTree; mutable.cache = currentCache; mutable.canonicalUrl = href; mutable.hashFragment = url.hash; mutable.scrollableSegments = scrollableSegments; return (0, _handlemutable.handleMutable)(state, mutable); } function hasLoadingComponentInSeedData(seedData) { if (!seedData) return false; const parallelRoutes = seedData[2]; const loading = seedData[3]; if (loading) { return true; } for(const key in parallelRoutes){ if (hasLoadingComponentInSeedData(parallelRoutes[key])) { return true; } } return false; } function fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData) { const isLastSegment = Object.keys(routerState[1]).length === 0; if (isLastSegment) { return; } for(const key in routerState[1]){ const parallelRouteState = routerState[1][key]; const segmentForParallelRoute = parallelRouteState[0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null; let newCacheNode; if (parallelSeedData !== null) { // New data was sent from the server. const rsc = parallelSeedData[1]; const loading = parallelSeedData[3]; newCacheNode = { lazyData: null, // copy the layout but null the page segment as that's not meant to be used rsc: segmentForParallelRoute.includes(_segment.PAGE_SEGMENT_KEY) ? null : rsc, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading, navigatedAt }; } else { // No data available for this node. This will trigger a lazy fetch // during render. newCacheNode = { lazyData: null, rsc: null, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading: null, navigatedAt: -1 }; } const existingParallelRoutes = newCache.parallelRoutes.get(key); if (existingParallelRoutes) { existingParallelRoutes.set(cacheKey, newCacheNode); } else { newCache.parallelRoutes.set(key, new Map([ [ cacheKey, newCacheNode ] ])); } fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCacheNode, existingCache, parallelRouteState, parallelSeedData); } } function addSearchParamsToPageSegments(flightRouterState, searchParams) { const [segment, parallelRoutes, ...rest] = flightRouterState; // If it's a page segment, modify the segment by adding search params if (segment.includes(_segment.PAGE_SEGMENT_KEY)) { const newSegment = (0, _segment.addSearchParamsIfPageSegment)(segment, searchParams); return [ newSegment, parallelRoutes, ...rest ]; } // Otherwise, recurse through the parallel routes and return a new tree const updatedParallelRoutes = {}; for (const [key, parallelRoute] of Object.entries(parallelRoutes)){ updatedParallelRoutes[key] = addSearchParamsToPageSegments(parallelRoute, searchParams); } return [ segment, updatedParallelRoutes, ...rest ]; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=aliased-prefetch-navigations.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourcej$"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addSearchParamsToPageSegments: null, handleAliasedPrefetchEntry: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addSearchParamsToPageSegments: function() { return addSearchParamsToPageSegments; }, handleAliasedPrefetchEntry: function() { return handleAliasedPrefetchEntry; } }); const _segment = require("../../../shared/lib/segment"); const _approuter = require("../app-router"); const _applyrouterstatepatchtotree = require("./apply-router-state-patch-to-tree"); const _createhreffromurl = require("./create-href-from-url"); const _createroutercachekey = require("./create-router-cache-key"); const _fillcachewithnewsubtreedata = require("./fill-cache-with-new-subtree-data"); const _handlemutable = require("./handle-mutable"); const _navigatereducer = require("./reducers/navigate-reducer"); function handleAliasedPrefetchEntry(navigatedAt, state, flightData, url, mutable) { let currentTree = state.tree; let currentCache = state.cache; const href = (0, _createhreffromurl.createHrefFromUrl)(url); let applied; let scrollableSegments = []; if (typeof flightData === 'string') { return false; } for (const normalizedFlightData of flightData){ // If the segment doesn't have a loading component, we don't need to do anything. if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) { continue; } let treePatch = normalizedFlightData.tree; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); const { seedData, isRootRender, pathToSegment } = normalizedFlightData; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...pathToSegment ]; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); const newCache = (0, _approuter.createEmptyCacheNode)(); // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the // loading state and not the actual parallel route seed data. if (isRootRender && seedData) { // Fill in the cache with the new loading / rsc data const rsc = seedData[1]; const loading = seedData[3]; newCache.loading = loading; newCache.rsc = rsc; // Construct a new tree and apply the aliased loading state for each parallel route fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, currentCache, treePatch, seedData); } else { // Copy rsc for the root node of the cache. newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); // copy the loading state only into the leaf node (the part that changed) (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeDataButOnlyLoading)(navigatedAt, newCache, currentCache, normalizedFlightData); } // If we don't have an updated tree, there's no reason to update the cache, as the tree // dictates what cache nodes to render. if (newTree) { currentTree = newTree; currentCache = newCache; applied = true; } for (const subSegment of (0, _navigatereducer.generateSegmentsFromPatch)(treePatch)){ const scrollableSegmentPath = [ ...normalizedFlightData.pathToSegment, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } if (!applied) { return false; } mutable.patchedTree = currentTree; mutable.cache = currentCache; mutable.canonicalUrl = href; mutable.hashFragment = url.hash; mutable.scrollableSegments = scrollableSegments; return (0, _handlemutable.handleMutable)(state, mutable); } function hasLoadingComponentInSeedData(seedData) { if (!seedData) return false; const parallelRoutes = seedData[2]; const loading = seedData[3]; if (loading) { return true; } for(const key in parallelRoutes){ if (hasLoadingComponentInSeedData(parallelRoutes[key])) { return true; } } return false; } function fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData) { const isLastSegment = Object.keys(routerState[1]).length === 0; if (isLastSegment) { return; } for(const key in routerState[1]){ const parallelRouteState = routerState[1][key]; const segmentForParallelRoute = parallelRouteState[0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null; let newCacheNode; if (parallelSeedData !== null) { // New data was sent from the server. const rsc = parallelSeedData[1]; const loading = parallelSeedData[3]; newCacheNode = { lazyData: null, // copy the layout but null the page segment as that's not meant to be used rsc: segmentForParallelRoute.includes(_segment.PAGE_SEGMENT_KEY) ? null : rsc, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading, navigatedAt }; } else { // No data available for this node. This will trigger a lazy fetch // during render. newCacheNode = { lazyData: null, rsc: null, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading: null, navigatedAt: -1 }; } const existingParallelRoutes = newCache.parallelRoutes.get(key); if (existingParallelRoutes) { existingParallelRoutes.set(cacheKey, newCacheNode); } else { newCache.parallelRoutes.set(key, new Map([ [ cacheKey, newCacheNode ] ])); } fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCacheNode, existingCache, parallelRouteState, parallelSeedData); } } function addSearchParamsToPageSegments(flightRouterState, searchParams) { const [segment, parallelRoutes, ...rest] = flightRouterState; // If it's a page segment, modify the segment by adding search params if (segment.includes(_segment.PAGE_SEGMENT_KEY)) { const newSegment = (0, _segment.addSearchParamsIfPageSegment)(segment, searchParams); return [ newSegment, parallelRoutes, ...rest ]; } // Otherwise, recurse through the parallel routes and return a new tree const updatedParallelRoutes = {}; for (const [key, parallelRoute] of Object.entries(parallelRoutes)){ updatedParallelRoutes[key] = addSearchParamsToPageSegments(parallelRoute, searchParams); } return [ segment, updatedParallelRoutes, ...rest ]; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=aliased-prefetch-navigations.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871840undefined576582__webpack_require__undefined58461244859undefined635641__webpack_require__undefined64365725918undefined698704__webpack_require__undefined70674124848undefined772778__webpack_require__undefined78080375497undefined837843__webpack_require__undefined84587182521undefined912918__webpack_require__undefined92095568360undefined982988__webpack_require__undefined990100726613undefined10361042__webpack_require__undefined1044107215426undefined /***/ }) Âü#/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addSearchParamsToPageSegments: function() { return addSearchParamsToPageSegments; }, handleAliasedPrefetchEntry: function() { return handleAliasedPrefetchEntry; } }); const _segment = __webpack_require__(44859); const _approuter = __webpack_require__(25918); const _applyrouterstatepatchtotree = __webpack_require__(24848); const _createhreffromurl = __webpack_require__(75497); const _createroutercachekey = __webpack_require__(82521); const _fillcachewithnewsubtreedata = __webpack_require__(68360); const _handlemutable = __webpack_require__(26613); const _navigatereducer = __webpack_require__(15426); function handleAliasedPrefetchEntry(navigatedAt, state, flightData, url, mutable) { let currentTree = state.tree; let currentCache = state.cache; const href = (0, _createhreffromurl.createHrefFromUrl)(url); let applied; let scrollableSegments = []; if (typeof flightData === 'string') { return false; } for (const normalizedFlightData of flightData){ // If the segment doesn't have a loading component, we don't need to do anything. if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) { continue; } let treePatch = normalizedFlightData.tree; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); const { seedData, isRootRender, pathToSegment } = normalizedFlightData; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...pathToSegment ]; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); const newCache = (0, _approuter.createEmptyCacheNode)(); // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the // loading state and not the actual parallel route seed data. if (isRootRender && seedData) { // Fill in the cache with the new loading / rsc data const rsc = seedData[1]; const loading = seedData[3]; newCache.loading = loading; newCache.rsc = rsc; // Construct a new tree and apply the aliased loading state for each parallel route fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, currentCache, treePatch, seedData); } else { // Copy rsc for the root node of the cache. newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); // copy the loading state only into the leaf node (the part that changed) (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeDataButOnlyLoading)(navigatedAt, newCache, currentCache, normalizedFlightData); } // If we don't have an updated tree, there's no reason to update the cache, as the tree // dictates what cache nodes to render. if (newTree) { currentTree = newTree; currentCache = newCache; applied = true; } for (const subSegment of (0, _navigatereducer.generateSegmentsFromPatch)(treePatch)){ const scrollableSegmentPath = [ ...normalizedFlightData.pathToSegment, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } if (!applied) { return false; } mutable.patchedTree = currentTree; mutable.cache = currentCache; mutable.canonicalUrl = href; mutable.hashFragment = url.hash; mutable.scrollableSegments = scrollableSegments; return (0, _handlemutable.handleMutable)(state, mutable); } function hasLoadingComponentInSeedData(seedData) { if (!seedData) return false; const parallelRoutes = seedData[2]; const loading = seedData[3]; if (loading) { return true; } for(const key in parallelRoutes){ if (hasLoadingComponentInSeedData(parallelRoutes[key])) { return true; } } return false; } function fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData) { const isLastSegment = Object.keys(routerState[1]).length === 0; if (isLastSegment) { return; } for(const key in routerState[1]){ const parallelRouteState = routerState[1][key]; const segmentForParallelRoute = parallelRouteState[0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null; let newCacheNode; if (parallelSeedData !== null) { // New data was sent from the server. const rsc = parallelSeedData[1]; const loading = parallelSeedData[3]; newCacheNode = { lazyData: null, // copy the layout but null the page segment as that's not meant to be used rsc: segmentForParallelRoute.includes(_segment.PAGE_SEGMENT_KEY) ? null : rsc, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading, navigatedAt }; } else { // No data available for this node. This will trigger a lazy fetch // during render. newCacheNode = { lazyData: null, rsc: null, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading: null, navigatedAt: -1 }; } const existingParallelRoutes = newCache.parallelRoutes.get(key); if (existingParallelRoutes) { existingParallelRoutes.set(cacheKey, newCacheNode); } else { newCache.parallelRoutes.set(key, new Map([ [ cacheKey, newCacheNode ] ])); } fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCacheNode, existingCache, parallelRouteState, parallelSeedData); } } function addSearchParamsToPageSegments(flightRouterState, searchParams) { const [segment, parallelRoutes, ...rest] = flightRouterState; // If it's a page segment, modify the segment by adding search params if (segment.includes(_segment.PAGE_SEGMENT_KEY)) { const newSegment = (0, _segment.addSearchParamsIfPageSegment)(segment, searchParams); return [ newSegment, parallelRoutes, ...rest ]; } // Otherwise, recurse through the parallel routes and return a new tree const updatedParallelRoutes = {}; for (const [key, parallelRoute] of Object.entries(parallelRoutes)){ updatedParallelRoutes[key] = addSearchParamsToPageSegments(parallelRoute, searchParams); } return [ segment, updatedParallelRoutes, ...rest ]; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=aliased-prefetch-navigations.js.map /***/ }) ÃÆ ÇÈÉj$"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addSearchParamsToPageSegments: null, handleAliasedPrefetchEntry: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addSearchParamsToPageSegments: function() { return addSearchParamsToPageSegments; }, handleAliasedPrefetchEntry: function() { return handleAliasedPrefetchEntry; } }); const _segment = require("../../../shared/lib/segment"); const _approuter = require("../app-router"); const _applyrouterstatepatchtotree = require("./apply-router-state-patch-to-tree"); const _createhreffromurl = require("./create-href-from-url"); const _createroutercachekey = require("./create-router-cache-key"); const _fillcachewithnewsubtreedata = require("./fill-cache-with-new-subtree-data"); const _handlemutable = require("./handle-mutable"); const _navigatereducer = require("./reducers/navigate-reducer"); function handleAliasedPrefetchEntry(navigatedAt, state, flightData, url, mutable) { let currentTree = state.tree; let currentCache = state.cache; const href = (0, _createhreffromurl.createHrefFromUrl)(url); let applied; let scrollableSegments = []; if (typeof flightData === 'string') { return false; } for (const normalizedFlightData of flightData){ // If the segment doesn't have a loading component, we don't need to do anything. if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) { continue; } let treePatch = normalizedFlightData.tree; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); const { seedData, isRootRender, pathToSegment } = normalizedFlightData; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...pathToSegment ]; // Segments are keyed by searchParams (e.g. __PAGE__?{"foo":"bar"}). We might return a less specific, param-less entry, // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree. // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams)); let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); const newCache = (0, _approuter.createEmptyCacheNode)(); // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the // loading state and not the actual parallel route seed data. if (isRootRender && seedData) { // Fill in the cache with the new loading / rsc data const rsc = seedData[1]; const loading = seedData[3]; newCache.loading = loading; newCache.rsc = rsc; // Construct a new tree and apply the aliased loading state for each parallel route fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, currentCache, treePatch, seedData); } else { // Copy rsc for the root node of the cache. newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); // copy the loading state only into the leaf node (the part that changed) (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeDataButOnlyLoading)(navigatedAt, newCache, currentCache, normalizedFlightData); } // If we don't have an updated tree, there's no reason to update the cache, as the tree // dictates what cache nodes to render. if (newTree) { currentTree = newTree; currentCache = newCache; applied = true; } for (const subSegment of (0, _navigatereducer.generateSegmentsFromPatch)(treePatch)){ const scrollableSegmentPath = [ ...normalizedFlightData.pathToSegment, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } if (!applied) { return false; } mutable.patchedTree = currentTree; mutable.cache = currentCache; mutable.canonicalUrl = href; mutable.hashFragment = url.hash; mutable.scrollableSegments = scrollableSegments; return (0, _handlemutable.handleMutable)(state, mutable); } function hasLoadingComponentInSeedData(seedData) { if (!seedData) return false; const parallelRoutes = seedData[2]; const loading = seedData[3]; if (loading) { return true; } for(const key in parallelRoutes){ if (hasLoadingComponentInSeedData(parallelRoutes[key])) { return true; } } return false; } function fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData) { const isLastSegment = Object.keys(routerState[1]).length === 0; if (isLastSegment) { return; } for(const key in routerState[1]){ const parallelRouteState = routerState[1][key]; const segmentForParallelRoute = parallelRouteState[0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null; let newCacheNode; if (parallelSeedData !== null) { // New data was sent from the server. const rsc = parallelSeedData[1]; const loading = parallelSeedData[3]; newCacheNode = { lazyData: null, // copy the layout but null the page segment as that's not meant to be used rsc: segmentForParallelRoute.includes(_segment.PAGE_SEGMENT_KEY) ? null : rsc, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading, navigatedAt }; } else { // No data available for this node. This will trigger a lazy fetch // during render. newCacheNode = { lazyData: null, rsc: null, prefetchRsc: null, head: null, prefetchHead: null, parallelRoutes: new Map(), loading: null, navigatedAt: -1 }; } const existingParallelRoutes = newCache.parallelRoutes.get(key); if (existingParallelRoutes) { existingParallelRoutes.set(cacheKey, newCacheNode); } else { newCache.parallelRoutes.set(key, new Map([ [ cacheKey, newCacheNode ] ])); } fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCacheNode, existingCache, parallelRouteState, parallelSeedData); } } function addSearchParamsToPageSegments(flightRouterState, searchParams) { const [segment, parallelRoutes, ...rest] = flightRouterState; // If it's a page segment, modify the segment by adding search params if (segment.includes(_segment.PAGE_SEGMENT_KEY)) { const newSegment = (0, _segment.addSearchParamsIfPageSegment)(segment, searchParams); return [ newSegment, parallelRoutes, ...rest ]; } // Otherwise, recurse through the parallel routes and return a new tree const updatedParallelRoutes = {}; for (const [key, parallelRoute] of Object.entries(parallelRoutes)){ updatedParallelRoutes[key] = addSearchParamsToPageSegments(parallelRoute, searchParams); } return [ segment, updatedParallelRoutes, ...rest ]; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=aliased-prefetch-navigations.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871840undefined576582__webpack_require__undefined58461244859undefined635641__webpack_require__undefined64365725918undefined698704__webpack_require__undefined70674124848undefined772778__webpack_require__undefined78080375497undefined837843__webpack_require__undefined84587182521undefined912918__webpack_require__undefined92095568360undefined982988__webpack_require__undefined990100726613undefined10361042__webpack_require__undefined1044107215426undefinedÊË, /***/ 3029:  š«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ì«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource´"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "isPostpone", { enumerable: true, get: function() { return isPostpone; } }); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map f :NNQ}AÎ΀®Object.defineProperty(exports, "__esModule", (‚))®Object.defineProperty(exports, "isPostpone", (þ€†buffer†source„size„maps„hash« Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "isPostpone", ({ enumerable: true, get: function() { return isPostpone; } })); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource´"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "isPostpone", { enumerable: true, get: function() { return isPostpone; } }); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map£012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81125Object.defineProperty(exports, "isPostpone", (undefined206206))undefined /***/ }) ¸ó/***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "isPostpone", ({ enumerable: true, get: function() { return isPostpone; } })); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map /***/ }) ¹¼ ½>/***/ ((__unused_webpack_module, exports) => { "use strict"; ¾´"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "isPostpone", { enumerable: true, get: function() { return isPostpone; } }); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map£012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81125Object.defineProperty(exports, "isPostpone", (undefined206206))undefined¿À, /***/ 3498:  Œ«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceE/***/ ((module, __unused_webpack_exports, __webpack_require__) => { «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ¾«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceü// This file is generated by the Webpack next-flight-loader. const { createProxy } = require("next/dist/build/webpack/loaders/next-flight-loader/module-proxy") module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/app-dir/link.js") bU[]@“__webpack_require__…38898€†buffer†source„size„maps„hashÌ// This file is generated by the Webpack next-flight-loader. const { createProxy } = __webpack_require__(38898) module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/app-dir/link.js") €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceü// This file is generated by the Webpack next-flight-loader. const { createProxy } = require("next/dist/build/webpack/loaders/next-flight-loader/module-proxy") module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/app-dir/link.js") 38591__webpack_require__undefined9315738898undefined /***/ }) ­/***/ ((module, __unused_webpack_exports, __webpack_require__) => { // This file is generated by the Webpack next-flight-loader. const { createProxy } = __webpack_require__(38898) module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/app-dir/link.js") /***/ }) ®± ²E/***/ ((module, __unused_webpack_exports, __webpack_require__) => { ³ü// This file is generated by the Webpack next-flight-loader. const { createProxy } = require("next/dist/build/webpack/loaders/next-flight-loader/module-proxy") module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/app-dir/link.js") 38591__webpack_require__undefined9315738898undefined´µ, /***/ 4335:  u«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Í«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource‚"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "assignLocation", { enumerable: true, get: function() { return assignLocation; } }); const _addbasepath = require("./add-base-path"); function assignLocation(location, url) { if (location.startsWith('.')) { const urlBase = url.origin + url.pathname; return new URL(// new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative' // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative' (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location); } return new URL((0, _addbasepath.addBasePath)(location), url.href); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=assign-location.js.map e :NNQFÖÖîôö€®Object.defineProperty(exports, "__esModule", (‚))²Object.defineProperty(exports, "assignLocation", (þ“__webpack_require__…61725€†buffer†source„size„maps„hashy Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "assignLocation", ({ enumerable: true, get: function() { return assignLocation; } })); const _addbasepath = __webpack_require__(61725); function assignLocation(location, url) { if (location.startsWith('.')) { const urlBase = url.origin + url.pathname; return new URL(// new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative' // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative' (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location); } return new URL((0, _addbasepath.addBasePath)(location), url.href); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=assign-location.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource‚"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "assignLocation", { enumerable: true, get: function() { return assignLocation; } }); const _addbasepath = require("./add-base-path"); function assignLocation(location, url) { if (location.startsWith('.')) { const urlBase = url.origin + url.pathname; return new URL(// new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative' // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative' (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location); } return new URL((0, _addbasepath.addBasePath)(location), url.href); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=assign-location.js.map Ý012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81129Object.defineProperty(exports, "assignLocation", (undefined214214))undefined238244__webpack_require__undefined24626261725undefined /***/ }) ¢Å/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "assignLocation", ({ enumerable: true, get: function() { return assignLocation; } })); const _addbasepath = __webpack_require__(61725); function assignLocation(location, url) { if (location.startsWith('.')) { const urlBase = url.origin + url.pathname; return new URL(// new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative' // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative' (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location); } return new URL((0, _addbasepath.addBasePath)(location), url.href); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=assign-location.js.map /***/ }) £¦ §¨©‚"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "assignLocation", { enumerable: true, get: function() { return assignLocation; } }); const _addbasepath = require("./add-base-path"); function assignLocation(location, url) { if (location.startsWith('.')) { const urlBase = url.origin + url.pathname; return new URL(// new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative' // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative' (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location); } return new URL((0, _addbasepath.addBasePath)(location), url.href); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=assign-location.js.map Ý012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81129Object.defineProperty(exports, "assignLocation", (undefined214214))undefined238244__webpack_require__undefined24626261725undefinedª«, /***/ 4409:  ‚s«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ‘&«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource%"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getNamedMiddlewareRegex: null, getNamedRouteRegex: null, getRouteRegex: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getNamedMiddlewareRegex: function() { return getNamedMiddlewareRegex; }, getNamedRouteRegex: function() { return getNamedRouteRegex; }, getRouteRegex: function() { return getRouteRegex; } }); const _constants = require("../../../../lib/constants"); const _interceptionroutes = require("./interception-routes"); const _escaperegexp = require("../../escape-regexp"); const _removetrailingslash = require("./remove-trailing-slash"); const _getdynamicparam = require("./get-dynamic-param"); function getParametrizedRoute(route, includeSuffix, includePrefix) { const groups = {}; let groupIndex = 1; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (markerMatch && paramMatches && paramMatches[2]) { const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + "([^/]+?)"); } else if (paramMatches && paramMatches[2]) { const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)'; // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { parameterizedRoute: segments.join(''), groups }; } function getRouteRegex(normalizedRoute, param) { let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param; const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix); let re = parameterizedRoute; if (!excludeOptionalTrailingSlash) { re += '(?:/)?'; } return { re: new RegExp("^" + re + "$"), groups: groups }; } /** * Builds a function to generate a minimal routeKey using only a-z and minimal * number of characters. */ function buildGetSafeRouteKey() { let i = 0; return ()=>{ let routeKey = ''; let j = ++i; while(j > 0){ routeKey += String.fromCharCode(97 + (j - 1) % 26); j = Math.floor((j - 1) / 26); } return routeKey; }; } function getSafeKeyFromSegment(param) { let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param; const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(segment); // replace any non-word characters since they can break // the named regex let cleanedKey = key.replace(/\W/g, ''); if (keyPrefix) { cleanedKey = "" + keyPrefix + cleanedKey; } let invalidKey = false; // check if the key is still invalid and fallback to using a known // safe key if (cleanedKey.length === 0 || cleanedKey.length > 30) { invalidKey = true; } if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) { invalidKey = true; } if (invalidKey) { cleanedKey = getSafeRouteKey(); } const duplicateKey = cleanedKey in routeKeys; if (keyPrefix) { routeKeys[cleanedKey] = "" + keyPrefix + key; } else { routeKeys[cleanedKey] = key; } // if the segment has an interception marker, make sure that's part of the regex pattern // this is to ensure that the route with the interception marker doesn't incorrectly match // the non-intercepted route (ie /app/(.)[username] should not match /app/[username]) const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : ''; let pattern; if (duplicateKey && backreferenceDuplicateKeys) { // Use a backreference to the key to ensure that the key is the same value // in each of the placeholders. pattern = "\\k<" + cleanedKey + ">"; } else if (repeat) { pattern = "(?<" + cleanedKey + ">.+?)"; } else { pattern = "(?<" + cleanedKey + ">[^/]+?)"; } return optional ? "(?:/" + interceptionPrefix + pattern + ")?" : "/" + interceptionPrefix + pattern; } function getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) { const getSafeRouteKey = buildGetSafeRouteKey(); const routeKeys = {}; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (hasInterceptionMarker && paramMatches && paramMatches[2]) { // If there's an interception marker, add it to the segments. segments.push(getSafeKeyFromSegment({ getSafeRouteKey, interceptionMarker: paramMatches[1], segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined, backreferenceDuplicateKeys })); } else if (paramMatches && paramMatches[2]) { // If there's a prefix, add it to the segments if it's enabled. if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = getSafeKeyFromSegment({ getSafeRouteKey, segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined, backreferenceDuplicateKeys }); // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { namedParameterizedRoute: segments.join(''), routeKeys }; } function getNamedRouteRegex(normalizedRoute, options) { var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys; const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false); let namedRegex = result.namedParameterizedRoute; if (!options.excludeOptionalTrailingSlash) { namedRegex += '(?:/)?'; } return { ...getRouteRegex(normalizedRoute, options), namedRegex: "^" + namedRegex + "$", routeKeys: result.routeKeys }; } function getNamedMiddlewareRegex(normalizedRoute, options) { const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false); const { catchAll = true } = options; if (parameterizedRoute === '/') { let catchAllRegex = catchAll ? '.*' : ''; return { namedRegex: "^/" + catchAllRegex + "$" }; } const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false); let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : ''; return { namedRegex: "^" + namedParameterizedRoute + catchAllGroupedRegex + "$" }; } //# sourceMappingURL=route-regex.js.map g :NNWTÃv|~˜¸¾ÀÖðöø -35Mjpr†€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…57749þ…52079ý…17611ü…50929û…60506€†buffer†source„size„maps„hashƒ$ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getNamedMiddlewareRegex: function() { return getNamedMiddlewareRegex; }, getNamedRouteRegex: function() { return getNamedRouteRegex; }, getRouteRegex: function() { return getRouteRegex; } }); const _constants = __webpack_require__(57749); const _interceptionroutes = __webpack_require__(52079); const _escaperegexp = __webpack_require__(17611); const _removetrailingslash = __webpack_require__(50929); const _getdynamicparam = __webpack_require__(60506); function getParametrizedRoute(route, includeSuffix, includePrefix) { const groups = {}; let groupIndex = 1; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (markerMatch && paramMatches && paramMatches[2]) { const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + "([^/]+?)"); } else if (paramMatches && paramMatches[2]) { const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)'; // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { parameterizedRoute: segments.join(''), groups }; } function getRouteRegex(normalizedRoute, param) { let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param; const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix); let re = parameterizedRoute; if (!excludeOptionalTrailingSlash) { re += '(?:/)?'; } return { re: new RegExp("^" + re + "$"), groups: groups }; } /** * Builds a function to generate a minimal routeKey using only a-z and minimal * number of characters. */ function buildGetSafeRouteKey() { let i = 0; return ()=>{ let routeKey = ''; let j = ++i; while(j > 0){ routeKey += String.fromCharCode(97 + (j - 1) % 26); j = Math.floor((j - 1) / 26); } return routeKey; }; } function getSafeKeyFromSegment(param) { let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param; const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(segment); // replace any non-word characters since they can break // the named regex let cleanedKey = key.replace(/\W/g, ''); if (keyPrefix) { cleanedKey = "" + keyPrefix + cleanedKey; } let invalidKey = false; // check if the key is still invalid and fallback to using a known // safe key if (cleanedKey.length === 0 || cleanedKey.length > 30) { invalidKey = true; } if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) { invalidKey = true; } if (invalidKey) { cleanedKey = getSafeRouteKey(); } const duplicateKey = cleanedKey in routeKeys; if (keyPrefix) { routeKeys[cleanedKey] = "" + keyPrefix + key; } else { routeKeys[cleanedKey] = key; } // if the segment has an interception marker, make sure that's part of the regex pattern // this is to ensure that the route with the interception marker doesn't incorrectly match // the non-intercepted route (ie /app/(.)[username] should not match /app/[username]) const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : ''; let pattern; if (duplicateKey && backreferenceDuplicateKeys) { // Use a backreference to the key to ensure that the key is the same value // in each of the placeholders. pattern = "\\k<" + cleanedKey + ">"; } else if (repeat) { pattern = "(?<" + cleanedKey + ">.+?)"; } else { pattern = "(?<" + cleanedKey + ">[^/]+?)"; } return optional ? "(?:/" + interceptionPrefix + pattern + ")?" : "/" + interceptionPrefix + pattern; } function getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) { const getSafeRouteKey = buildGetSafeRouteKey(); const routeKeys = {}; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (hasInterceptionMarker && paramMatches && paramMatches[2]) { // If there's an interception marker, add it to the segments. segments.push(getSafeKeyFromSegment({ getSafeRouteKey, interceptionMarker: paramMatches[1], segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined, backreferenceDuplicateKeys })); } else if (paramMatches && paramMatches[2]) { // If there's a prefix, add it to the segments if it's enabled. if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = getSafeKeyFromSegment({ getSafeRouteKey, segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined, backreferenceDuplicateKeys }); // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { namedParameterizedRoute: segments.join(''), routeKeys }; } function getNamedRouteRegex(normalizedRoute, options) { var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys; const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false); let namedRegex = result.namedParameterizedRoute; if (!options.excludeOptionalTrailingSlash) { namedRegex += '(?:/)?'; } return { ...getRouteRegex(normalizedRoute, options), namedRegex: "^" + namedRegex + "$", routeKeys: result.routeKeys }; } function getNamedMiddlewareRegex(normalizedRoute, options) { const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false); const { catchAll = true } = options; if (parameterizedRoute === '/') { let catchAllRegex = catchAll ? '.*' : ''; return { namedRegex: "^/" + catchAllRegex + "$" }; } const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false); let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : ''; return { namedRegex: "^" + namedParameterizedRoute + catchAllGroupedRegex + "$" }; } //# sourceMappingURL=route-regex.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource%"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getNamedMiddlewareRegex: null, getNamedRouteRegex: null, getRouteRegex: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getNamedMiddlewareRegex: function() { return getNamedMiddlewareRegex; }, getNamedRouteRegex: function() { return getNamedRouteRegex; }, getRouteRegex: function() { return getRouteRegex; } }); const _constants = require("../../../../lib/constants"); const _interceptionroutes = require("./interception-routes"); const _escaperegexp = require("../../escape-regexp"); const _removetrailingslash = require("./remove-trailing-slash"); const _getdynamicparam = require("./get-dynamic-param"); function getParametrizedRoute(route, includeSuffix, includePrefix) { const groups = {}; let groupIndex = 1; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (markerMatch && paramMatches && paramMatches[2]) { const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + "([^/]+?)"); } else if (paramMatches && paramMatches[2]) { const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)'; // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { parameterizedRoute: segments.join(''), groups }; } function getRouteRegex(normalizedRoute, param) { let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param; const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix); let re = parameterizedRoute; if (!excludeOptionalTrailingSlash) { re += '(?:/)?'; } return { re: new RegExp("^" + re + "$"), groups: groups }; } /** * Builds a function to generate a minimal routeKey using only a-z and minimal * number of characters. */ function buildGetSafeRouteKey() { let i = 0; return ()=>{ let routeKey = ''; let j = ++i; while(j > 0){ routeKey += String.fromCharCode(97 + (j - 1) % 26); j = Math.floor((j - 1) / 26); } return routeKey; }; } function getSafeKeyFromSegment(param) { let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param; const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(segment); // replace any non-word characters since they can break // the named regex let cleanedKey = key.replace(/\W/g, ''); if (keyPrefix) { cleanedKey = "" + keyPrefix + cleanedKey; } let invalidKey = false; // check if the key is still invalid and fallback to using a known // safe key if (cleanedKey.length === 0 || cleanedKey.length > 30) { invalidKey = true; } if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) { invalidKey = true; } if (invalidKey) { cleanedKey = getSafeRouteKey(); } const duplicateKey = cleanedKey in routeKeys; if (keyPrefix) { routeKeys[cleanedKey] = "" + keyPrefix + key; } else { routeKeys[cleanedKey] = key; } // if the segment has an interception marker, make sure that's part of the regex pattern // this is to ensure that the route with the interception marker doesn't incorrectly match // the non-intercepted route (ie /app/(.)[username] should not match /app/[username]) const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : ''; let pattern; if (duplicateKey && backreferenceDuplicateKeys) { // Use a backreference to the key to ensure that the key is the same value // in each of the placeholders. pattern = "\\k<" + cleanedKey + ">"; } else if (repeat) { pattern = "(?<" + cleanedKey + ">.+?)"; } else { pattern = "(?<" + cleanedKey + ">[^/]+?)"; } return optional ? "(?:/" + interceptionPrefix + pattern + ")?" : "/" + interceptionPrefix + pattern; } function getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) { const getSafeRouteKey = buildGetSafeRouteKey(); const routeKeys = {}; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (hasInterceptionMarker && paramMatches && paramMatches[2]) { // If there's an interception marker, add it to the segments. segments.push(getSafeKeyFromSegment({ getSafeRouteKey, interceptionMarker: paramMatches[1], segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined, backreferenceDuplicateKeys })); } else if (paramMatches && paramMatches[2]) { // If there's a prefix, add it to the segments if it's enabled. if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = getSafeKeyFromSegment({ getSafeRouteKey, segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined, backreferenceDuplicateKeys }); // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { namedParameterizedRoute: segments.join(''), routeKeys }; } function getNamedRouteRegex(normalizedRoute, options) { var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys; const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false); let namedRegex = result.namedParameterizedRoute; if (!options.excludeOptionalTrailingSlash) { namedRegex += '(?:/)?'; } return { ...getRouteRegex(normalizedRoute, options), namedRegex: "^" + namedRegex + "$", routeKeys: result.routeKeys }; } function getNamedMiddlewareRegex(normalizedRoute, options) { const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false); const { catchAll = true } = options; if (parameterizedRoute === '/') { let catchAllRegex = catchAll ? '.*' : ''; return { namedRegex: "^/" + catchAllRegex + "$" }; } const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false); let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : ''; return { namedRegex: "^" + namedParameterizedRoute + catchAllGroupedRegex + "$" }; } //# sourceMappingURL=route-regex.js.map s012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871950undefined630636__webpack_require__undefined63866457749undefined696702__webpack_require__undefined70472652079undefined752758__webpack_require__undefined76078017611undefined813819__webpack_require__undefined82184550929undefined874880__webpack_require__undefined88290260506undefined /***/ }) ˜à$/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getNamedMiddlewareRegex: function() { return getNamedMiddlewareRegex; }, getNamedRouteRegex: function() { return getNamedRouteRegex; }, getRouteRegex: function() { return getRouteRegex; } }); const _constants = __webpack_require__(57749); const _interceptionroutes = __webpack_require__(52079); const _escaperegexp = __webpack_require__(17611); const _removetrailingslash = __webpack_require__(50929); const _getdynamicparam = __webpack_require__(60506); function getParametrizedRoute(route, includeSuffix, includePrefix) { const groups = {}; let groupIndex = 1; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (markerMatch && paramMatches && paramMatches[2]) { const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + "([^/]+?)"); } else if (paramMatches && paramMatches[2]) { const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)'; // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { parameterizedRoute: segments.join(''), groups }; } function getRouteRegex(normalizedRoute, param) { let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param; const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix); let re = parameterizedRoute; if (!excludeOptionalTrailingSlash) { re += '(?:/)?'; } return { re: new RegExp("^" + re + "$"), groups: groups }; } /** * Builds a function to generate a minimal routeKey using only a-z and minimal * number of characters. */ function buildGetSafeRouteKey() { let i = 0; return ()=>{ let routeKey = ''; let j = ++i; while(j > 0){ routeKey += String.fromCharCode(97 + (j - 1) % 26); j = Math.floor((j - 1) / 26); } return routeKey; }; } function getSafeKeyFromSegment(param) { let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param; const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(segment); // replace any non-word characters since they can break // the named regex let cleanedKey = key.replace(/\W/g, ''); if (keyPrefix) { cleanedKey = "" + keyPrefix + cleanedKey; } let invalidKey = false; // check if the key is still invalid and fallback to using a known // safe key if (cleanedKey.length === 0 || cleanedKey.length > 30) { invalidKey = true; } if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) { invalidKey = true; } if (invalidKey) { cleanedKey = getSafeRouteKey(); } const duplicateKey = cleanedKey in routeKeys; if (keyPrefix) { routeKeys[cleanedKey] = "" + keyPrefix + key; } else { routeKeys[cleanedKey] = key; } // if the segment has an interception marker, make sure that's part of the regex pattern // this is to ensure that the route with the interception marker doesn't incorrectly match // the non-intercepted route (ie /app/(.)[username] should not match /app/[username]) const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : ''; let pattern; if (duplicateKey && backreferenceDuplicateKeys) { // Use a backreference to the key to ensure that the key is the same value // in each of the placeholders. pattern = "\\k<" + cleanedKey + ">"; } else if (repeat) { pattern = "(?<" + cleanedKey + ">.+?)"; } else { pattern = "(?<" + cleanedKey + ">[^/]+?)"; } return optional ? "(?:/" + interceptionPrefix + pattern + ")?" : "/" + interceptionPrefix + pattern; } function getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) { const getSafeRouteKey = buildGetSafeRouteKey(); const routeKeys = {}; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (hasInterceptionMarker && paramMatches && paramMatches[2]) { // If there's an interception marker, add it to the segments. segments.push(getSafeKeyFromSegment({ getSafeRouteKey, interceptionMarker: paramMatches[1], segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined, backreferenceDuplicateKeys })); } else if (paramMatches && paramMatches[2]) { // If there's a prefix, add it to the segments if it's enabled. if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = getSafeKeyFromSegment({ getSafeRouteKey, segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined, backreferenceDuplicateKeys }); // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { namedParameterizedRoute: segments.join(''), routeKeys }; } function getNamedRouteRegex(normalizedRoute, options) { var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys; const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false); let namedRegex = result.namedParameterizedRoute; if (!options.excludeOptionalTrailingSlash) { namedRegex += '(?:/)?'; } return { ...getRouteRegex(normalizedRoute, options), namedRegex: "^" + namedRegex + "$", routeKeys: result.routeKeys }; } function getNamedMiddlewareRegex(normalizedRoute, options) { const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false); const { catchAll = true } = options; if (parameterizedRoute === '/') { let catchAllRegex = catchAll ? '.*' : ''; return { namedRegex: "^/" + catchAllRegex + "$" }; } const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false); let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : ''; return { namedRegex: "^" + namedParameterizedRoute + catchAllGroupedRegex + "$" }; } //# sourceMappingURL=route-regex.js.map /***/ }) ™œ ·Ÿ%"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getNamedMiddlewareRegex: null, getNamedRouteRegex: null, getRouteRegex: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getNamedMiddlewareRegex: function() { return getNamedMiddlewareRegex; }, getNamedRouteRegex: function() { return getNamedRouteRegex; }, getRouteRegex: function() { return getRouteRegex; } }); const _constants = require("../../../../lib/constants"); const _interceptionroutes = require("./interception-routes"); const _escaperegexp = require("../../escape-regexp"); const _removetrailingslash = require("./remove-trailing-slash"); const _getdynamicparam = require("./get-dynamic-param"); function getParametrizedRoute(route, includeSuffix, includePrefix) { const groups = {}; let groupIndex = 1; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (markerMatch && paramMatches && paramMatches[2]) { const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + "([^/]+?)"); } else if (paramMatches && paramMatches[2]) { const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); groups[key] = { pos: groupIndex++, repeat, optional }; if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)'; // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { parameterizedRoute: segments.join(''), groups }; } function getRouteRegex(normalizedRoute, param) { let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param; const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix); let re = parameterizedRoute; if (!excludeOptionalTrailingSlash) { re += '(?:/)?'; } return { re: new RegExp("^" + re + "$"), groups: groups }; } /** * Builds a function to generate a minimal routeKey using only a-z and minimal * number of characters. */ function buildGetSafeRouteKey() { let i = 0; return ()=>{ let routeKey = ''; let j = ++i; while(j > 0){ routeKey += String.fromCharCode(97 + (j - 1) % 26); j = Math.floor((j - 1) / 26); } return routeKey; }; } function getSafeKeyFromSegment(param) { let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param; const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(segment); // replace any non-word characters since they can break // the named regex let cleanedKey = key.replace(/\W/g, ''); if (keyPrefix) { cleanedKey = "" + keyPrefix + cleanedKey; } let invalidKey = false; // check if the key is still invalid and fallback to using a known // safe key if (cleanedKey.length === 0 || cleanedKey.length > 30) { invalidKey = true; } if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) { invalidKey = true; } if (invalidKey) { cleanedKey = getSafeRouteKey(); } const duplicateKey = cleanedKey in routeKeys; if (keyPrefix) { routeKeys[cleanedKey] = "" + keyPrefix + key; } else { routeKeys[cleanedKey] = key; } // if the segment has an interception marker, make sure that's part of the regex pattern // this is to ensure that the route with the interception marker doesn't incorrectly match // the non-intercepted route (ie /app/(.)[username] should not match /app/[username]) const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : ''; let pattern; if (duplicateKey && backreferenceDuplicateKeys) { // Use a backreference to the key to ensure that the key is the same value // in each of the placeholders. pattern = "\\k<" + cleanedKey + ">"; } else if (repeat) { pattern = "(?<" + cleanedKey + ">.+?)"; } else { pattern = "(?<" + cleanedKey + ">[^/]+?)"; } return optional ? "(?:/" + interceptionPrefix + pattern + ")?" : "/" + interceptionPrefix + pattern; } function getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) { const getSafeRouteKey = buildGetSafeRouteKey(); const routeKeys = {}; const segments = []; for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m)); const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters ; if (hasInterceptionMarker && paramMatches && paramMatches[2]) { // If there's an interception marker, add it to the segments. segments.push(getSafeKeyFromSegment({ getSafeRouteKey, interceptionMarker: paramMatches[1], segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined, backreferenceDuplicateKeys })); } else if (paramMatches && paramMatches[2]) { // If there's a prefix, add it to the segments if it's enabled. if (includePrefix && paramMatches[1]) { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1])); } let s = getSafeKeyFromSegment({ getSafeRouteKey, segment: paramMatches[2], routeKeys, keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined, backreferenceDuplicateKeys }); // Remove the leading slash if includePrefix already added it. if (includePrefix && paramMatches[1]) { s = s.substring(1); } segments.push(s); } else { segments.push("/" + (0, _escaperegexp.escapeStringRegexp)(segment)); } // If there's a suffix, add it to the segments if it's enabled. if (includeSuffix && paramMatches && paramMatches[3]) { segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); } } return { namedParameterizedRoute: segments.join(''), routeKeys }; } function getNamedRouteRegex(normalizedRoute, options) { var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys; const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false); let namedRegex = result.namedParameterizedRoute; if (!options.excludeOptionalTrailingSlash) { namedRegex += '(?:/)?'; } return { ...getRouteRegex(normalizedRoute, options), namedRegex: "^" + namedRegex + "$", routeKeys: result.routeKeys }; } function getNamedMiddlewareRegex(normalizedRoute, options) { const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false); const { catchAll = true } = options; if (parameterizedRoute === '/') { let catchAllRegex = catchAll ? '.*' : ''; return { namedRegex: "^/" + catchAllRegex + "$" }; } const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false); let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : ''; return { namedRegex: "^" + namedParameterizedRoute + catchAllGroupedRegex + "$" }; } //# sourceMappingURL=route-regex.js.map s012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871950undefined630636__webpack_require__undefined63866457749undefined696702__webpack_require__undefined70472652079undefined752758__webpack_require__undefined76078017611undefined813819__webpack_require__undefined82184550929undefined874880__webpack_require__undefined88290260506undefined ¡, /***/ 4718:  U«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ²«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource¯"use strict"; module.exports = require('../../module.compiled').vendored['react-rsc'].ReactServerDOMWebpackStatic; //# sourceMappingURL=react-server-dom-webpack-static.js.map b p€Ýmodule.exports = __webpack_require__(73653).vendored["react-rsc"].ReactServerDOMWebpackStatic€†buffer†source„size„maps„hashœ module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactServerDOMWebpackStatic; //# sourceMappingURL=react-server-dom-webpack-static.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource¯"use strict"; module.exports = require('../../module.compiled').vendored['react-rsc'].ReactServerDOMWebpackStatic; //# sourceMappingURL=react-server-dom-webpack-static.js.mapw012undefined14112module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactServerDOMWebpackStaticundefined /***/ }) Žù/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactServerDOMWebpackStatic; //# sourceMappingURL=react-server-dom-webpack-static.js.map /***/ }) ’ “S/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; ”¯"use strict"; module.exports = require('../../module.compiled').vendored['react-rsc'].ReactServerDOMWebpackStatic; //# sourceMappingURL=react-server-dom-webpack-static.js.mapw012undefined14112module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactServerDOMWebpackStaticundefined•–, /***/ 4873:  t/«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource +«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource¯"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getRedirectError: null, getRedirectStatusCodeFromError: null, getRedirectTypeFromError: null, getURLFromRedirectError: null, permanentRedirect: null, redirect: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getRedirectError: function() { return getRedirectError; }, getRedirectStatusCodeFromError: function() { return getRedirectStatusCodeFromError; }, getRedirectTypeFromError: function() { return getRedirectTypeFromError; }, getURLFromRedirectError: function() { return getURLFromRedirectError; }, permanentRedirect: function() { return permanentRedirect; }, redirect: function() { return redirect; } }); const _redirectstatuscode = require("./redirect-status-code"); const _redirecterror = require("./redirect-error"); const actionAsyncStorage = "undefined" === 'undefined' ? require('../../server/app-render/action-async-storage.external').actionAsyncStorage : undefined; function getRedirectError(url, type, statusCode) { if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect; const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); error.digest = _redirecterror.REDIRECT_ERROR_CODE + ";" + type + ";" + url + ";" + statusCode + ";"; return error; } function redirect(/** The URL to redirect to */ url, type) { var _actionAsyncStorage_getStore; type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect); } function permanentRedirect(/** The URL to redirect to */ url, type) { if (type === void 0) type = _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect); } function getURLFromRedirectError(error) { if (!(0, _redirecterror.isRedirectError)(error)) return null; // Slices off the beginning of the digest that contains the code and the // separating ';'. return error.digest.split(';').slice(2, -2).join(';'); } function getRedirectTypeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return error.digest.split(';', 2)[1]; } function getRedirectStatusCodeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return Number(error.digest.split(';').at(-2)); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect.js.map g :NNWN'äêì$&7VptÆÊÒ€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…68876þ…79650… true¯(__webpack_require__(19121).actionAsyncStorage)0€†buffer†source„size„maps„hashŠ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getRedirectError: function() { return getRedirectError; }, getRedirectStatusCodeFromError: function() { return getRedirectStatusCodeFromError; }, getRedirectTypeFromError: function() { return getRedirectTypeFromError; }, getURLFromRedirectError: function() { return getURLFromRedirectError; }, permanentRedirect: function() { return permanentRedirect; }, redirect: function() { return redirect; } }); const _redirectstatuscode = __webpack_require__(68876); const _redirecterror = __webpack_require__(79650); const actionAsyncStorage = true ? (__webpack_require__(19121).actionAsyncStorage) : 0; function getRedirectError(url, type, statusCode) { if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect; const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); error.digest = _redirecterror.REDIRECT_ERROR_CODE + ";" + type + ";" + url + ";" + statusCode + ";"; return error; } function redirect(/** The URL to redirect to */ url, type) { var _actionAsyncStorage_getStore; type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect); } function permanentRedirect(/** The URL to redirect to */ url, type) { if (type === void 0) type = _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect); } function getURLFromRedirectError(error) { if (!(0, _redirecterror.isRedirectError)(error)) return null; // Slices off the beginning of the digest that contains the code and the // separating ';'. return error.digest.split(';').slice(2, -2).join(';'); } function getRedirectTypeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return error.digest.split(';', 2)[1]; } function getRedirectStatusCodeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return Number(error.digest.split(';').at(-2)); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource¯"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getRedirectError: null, getRedirectStatusCodeFromError: null, getRedirectTypeFromError: null, getURLFromRedirectError: null, permanentRedirect: null, redirect: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getRedirectError: function() { return getRedirectError; }, getRedirectStatusCodeFromError: function() { return getRedirectStatusCodeFromError; }, getRedirectTypeFromError: function() { return getRedirectTypeFromError; }, getURLFromRedirectError: function() { return getURLFromRedirectError; }, permanentRedirect: function() { return permanentRedirect; }, redirect: function() { return redirect; } }); const _redirectstatuscode = require("./redirect-status-code"); const _redirecterror = require("./redirect-error"); const actionAsyncStorage = "undefined" === 'undefined' ? require('../../server/app-render/action-async-storage.external').actionAsyncStorage : undefined; function getRedirectError(url, type, statusCode) { if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect; const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); error.digest = _redirecterror.REDIRECT_ERROR_CODE + ";" + type + ";" + url + ";" + statusCode + ";"; return error; } function redirect(/** The URL to redirect to */ url, type) { var _actionAsyncStorage_getStore; type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect); } function permanentRedirect(/** The URL to redirect to */ url, type) { if (type === void 0) type = _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect); } function getURLFromRedirectError(error) { if (!(0, _redirecterror.isRedirectError)(error)) return null; // Slices off the beginning of the digest that contains the code and the // separating ';'. return error.digest.split(';').slice(2, -2).join(';'); } function getRedirectTypeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return error.digest.split(';', 2)[1]; } function getRedirectStatusCodeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return Number(error.digest.split(';').at(-2)); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect.js.map @012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872950undefined9961002__webpack_require__undefined1004102768876undefined10541060__webpack_require__undefined1062107979650undefined11101136 trueundefined11401222(__webpack_require__(19121).actionAsyncStorage)undefined122612340undefined /***/ }) ƒÖ /***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getRedirectError: function() { return getRedirectError; }, getRedirectStatusCodeFromError: function() { return getRedirectStatusCodeFromError; }, getRedirectTypeFromError: function() { return getRedirectTypeFromError; }, getURLFromRedirectError: function() { return getURLFromRedirectError; }, permanentRedirect: function() { return permanentRedirect; }, redirect: function() { return redirect; } }); const _redirectstatuscode = __webpack_require__(68876); const _redirecterror = __webpack_require__(79650); const actionAsyncStorage = true ? (__webpack_require__(19121).actionAsyncStorage) : 0; function getRedirectError(url, type, statusCode) { if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect; const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); error.digest = _redirecterror.REDIRECT_ERROR_CODE + ";" + type + ";" + url + ";" + statusCode + ";"; return error; } function redirect(/** The URL to redirect to */ url, type) { var _actionAsyncStorage_getStore; type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect); } function permanentRedirect(/** The URL to redirect to */ url, type) { if (type === void 0) type = _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect); } function getURLFromRedirectError(error) { if (!(0, _redirecterror.isRedirectError)(error)) return null; // Slices off the beginning of the digest that contains the code and the // separating ';'. return error.digest.split(';').slice(2, -2).join(';'); } function getRedirectTypeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return error.digest.split(';', 2)[1]; } function getRedirectStatusCodeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return Number(error.digest.split(';').at(-2)); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect.js.map /***/ }) „‡ ˆ‰Š¯"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getRedirectError: null, getRedirectStatusCodeFromError: null, getRedirectTypeFromError: null, getURLFromRedirectError: null, permanentRedirect: null, redirect: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getRedirectError: function() { return getRedirectError; }, getRedirectStatusCodeFromError: function() { return getRedirectStatusCodeFromError; }, getRedirectTypeFromError: function() { return getRedirectTypeFromError; }, getURLFromRedirectError: function() { return getURLFromRedirectError; }, permanentRedirect: function() { return permanentRedirect; }, redirect: function() { return redirect; } }); const _redirectstatuscode = require("./redirect-status-code"); const _redirecterror = require("./redirect-error"); const actionAsyncStorage = "undefined" === 'undefined' ? require('../../server/app-render/action-async-storage.external').actionAsyncStorage : undefined; function getRedirectError(url, type, statusCode) { if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect; const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); error.digest = _redirecterror.REDIRECT_ERROR_CODE + ";" + type + ";" + url + ";" + statusCode + ";"; return error; } function redirect(/** The URL to redirect to */ url, type) { var _actionAsyncStorage_getStore; type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect); } function permanentRedirect(/** The URL to redirect to */ url, type) { if (type === void 0) type = _redirecterror.RedirectType.replace; throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect); } function getURLFromRedirectError(error) { if (!(0, _redirecterror.isRedirectError)(error)) return null; // Slices off the beginning of the digest that contains the code and the // separating ';'. return error.digest.split(';').slice(2, -2).join(';'); } function getRedirectTypeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return error.digest.split(';', 2)[1]; } function getRedirectStatusCodeFromError(error) { if (!(0, _redirecterror.isRedirectError)(error)) { throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", { value: "E260", enumerable: false, configurable: true }); } return Number(error.digest.split(';').at(-2)); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect.js.map @012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872950undefined9961002__webpack_require__undefined1004102768876undefined10541060__webpack_require__undefined1062107979650undefined11101136 trueundefined11401222(__webpack_require__(19121).actionAsyncStorage)undefined122612340undefined‹Œ, /***/ 5162:  ]6«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource 8«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceÁ/* This is a simple promise queue that allows you to limit the number of concurrent promises that are running at any given time. It's used to limit the number of concurrent prefetch requests that are being made to the server but could be used for other things as well. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "PromiseQueue", { enumerable: true, get: function() { return PromiseQueue; } }); const _class_private_field_loose_base = require("@swc/helpers/_/_class_private_field_loose_base"); const _class_private_field_loose_key = require("@swc/helpers/_/_class_private_field_loose_key"); var _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._("_maxConcurrency"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._("_runningCount"), _queue = /*#__PURE__*/ _class_private_field_loose_key._("_queue"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._("_processNext"); class PromiseQueue { enqueue(promiseFn) { let taskResolve; let taskReject; const taskPromise = new Promise((resolve, reject)=>{ taskResolve = resolve; taskReject = reject; }); const task = async ()=>{ try { _class_private_field_loose_base._(this, _runningCount)[_runningCount]++; const result = await promiseFn(); taskResolve(result); } catch (error) { taskReject(error); } finally{ _class_private_field_loose_base._(this, _runningCount)[_runningCount]--; _class_private_field_loose_base._(this, _processNext)[_processNext](); } }; const enqueueResult = { promiseFn: taskPromise, task }; // wonder if we should take a LIFO approach here _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult); _class_private_field_loose_base._(this, _processNext)[_processNext](); return taskPromise; } bump(promiseFn) { const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn); if (index > -1) { const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0]; _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem); _class_private_field_loose_base._(this, _processNext)[_processNext](true); } } constructor(maxConcurrency = 5){ Object.defineProperty(this, _processNext, { value: processNext }); Object.defineProperty(this, _maxConcurrency, { writable: true, value: void 0 }); Object.defineProperty(this, _runningCount, { writable: true, value: void 0 }); Object.defineProperty(this, _queue, { writable: true, value: void 0 }); _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency; _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0; _class_private_field_loose_base._(this, _queue)[_queue] = []; } } function processNext(forced) { if (forced === void 0) forced = false; if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) { var _class_private_field_loose_base__queue_shift; (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task(); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=promise-queue.js.map  Q ,.ZnnqŸòò#%T…‡µ€®Object.defineProperty(exports, "__esModule", (‚))°Object.defineProperty(exports, "PromiseQueue", (þ“__webpack_require__…17400þ…64402€†buffer†source„size„maps„hash{/* This is a simple promise queue that allows you to limit the number of concurrent promises that are running at any given time. It's used to limit the number of concurrent prefetch requests that are being made to the server but could be used for other things as well. */ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "PromiseQueue", ({ enumerable: true, get: function() { return PromiseQueue; } })); const _class_private_field_loose_base = __webpack_require__(17400); const _class_private_field_loose_key = __webpack_require__(64402); var _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._("_maxConcurrency"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._("_runningCount"), _queue = /*#__PURE__*/ _class_private_field_loose_key._("_queue"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._("_processNext"); class PromiseQueue { enqueue(promiseFn) { let taskResolve; let taskReject; const taskPromise = new Promise((resolve, reject)=>{ taskResolve = resolve; taskReject = reject; }); const task = async ()=>{ try { _class_private_field_loose_base._(this, _runningCount)[_runningCount]++; const result = await promiseFn(); taskResolve(result); } catch (error) { taskReject(error); } finally{ _class_private_field_loose_base._(this, _runningCount)[_runningCount]--; _class_private_field_loose_base._(this, _processNext)[_processNext](); } }; const enqueueResult = { promiseFn: taskPromise, task }; // wonder if we should take a LIFO approach here _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult); _class_private_field_loose_base._(this, _processNext)[_processNext](); return taskPromise; } bump(promiseFn) { const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn); if (index > -1) { const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0]; _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem); _class_private_field_loose_base._(this, _processNext)[_processNext](true); } } constructor(maxConcurrency = 5){ Object.defineProperty(this, _processNext, { value: processNext }); Object.defineProperty(this, _maxConcurrency, { writable: true, value: void 0 }); Object.defineProperty(this, _runningCount, { writable: true, value: void 0 }); Object.defineProperty(this, _queue, { writable: true, value: void 0 }); _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency; _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0; _class_private_field_loose_base._(this, _queue)[_queue] = []; } } function processNext(forced) { if (forced === void 0) forced = false; if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) { var _class_private_field_loose_base__queue_shift; (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task(); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=promise-queue.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceÁ/* This is a simple promise queue that allows you to limit the number of concurrent promises that are running at any given time. It's used to limit the number of concurrent prefetch requests that are being made to the server but could be used for other things as well. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "PromiseQueue", { enumerable: true, get: function() { return PromiseQueue; } }); const _class_private_field_loose_base = require("@swc/helpers/_/_class_private_field_loose_base"); const _class_private_field_loose_key = require("@swc/helpers/_/_class_private_field_loose_key"); var _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._("_maxConcurrency"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._("_runningCount"), _queue = /*#__PURE__*/ _class_private_field_loose_key._("_queue"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._("_processNext"); class PromiseQueue { enqueue(promiseFn) { let taskResolve; let taskReject; const taskPromise = new Promise((resolve, reject)=>{ taskResolve = resolve; taskReject = reject; }); const task = async ()=>{ try { _class_private_field_loose_base._(this, _runningCount)[_runningCount]++; const result = await promiseFn(); taskResolve(result); } catch (error) { taskReject(error); } finally{ _class_private_field_loose_base._(this, _runningCount)[_runningCount]--; _class_private_field_loose_base._(this, _processNext)[_processNext](); } }; const enqueueResult = { promiseFn: taskPromise, task }; // wonder if we should take a LIFO approach here _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult); _class_private_field_loose_base._(this, _processNext)[_processNext](); return taskPromise; } bump(promiseFn) { const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn); if (index > -1) { const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0]; _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem); _class_private_field_loose_base._(this, _processNext)[_processNext](true); } } constructor(maxConcurrency = 5){ Object.defineProperty(this, _processNext, { value: processNext }); Object.defineProperty(this, _maxConcurrency, { writable: true, value: void 0 }); Object.defineProperty(this, _runningCount, { writable: true, value: void 0 }); Object.defineProperty(this, _queue, { writable: true, value: void 0 }); _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency; _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0; _class_private_field_loose_base._(this, _queue)[_queue] = []; } } function processNext(forced) { if (forced === void 0) forced = false; if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) { var _class_private_field_loose_base__queue_shift; (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task(); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=promise-queue.js.map 288300undefined302346Object.defineProperty(exports, "__esModule", (undefined366366))undefined369415Object.defineProperty(exports, "PromiseQueue", (undefined498498))undefined541547__webpack_require__undefined54959617400undefined639645__webpack_require__undefined64769364402undefined /***/ }) yÿÿÿÇ/***/ ((module, exports, __webpack_require__) => { "use strict"; /* This is a simple promise queue that allows you to limit the number of concurrent promises that are running at any given time. It's used to limit the number of concurrent prefetch requests that are being made to the server but could be used for other things as well. */ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "PromiseQueue", ({ enumerable: true, get: function() { return PromiseQueue; } })); const _class_private_field_loose_base = __webpack_require__(17400); const _class_private_field_loose_key = __webpack_require__(64402); var _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._("_maxConcurrency"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._("_runningCount"), _queue = /*#__PURE__*/ _class_private_field_loose_key._("_queue"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._("_processNext"); class PromiseQueue { enqueue(promiseFn) { let taskResolve; let taskReject; const taskPromise = new Promise((resolve, reject)=>{ taskResolve = resolve; taskReject = reject; }); const task = async ()=>{ try { _class_private_field_loose_base._(this, _runningCount)[_runningCount]++; const result = await promiseFn(); taskResolve(result); } catch (error) { taskReject(error); } finally{ _class_private_field_loose_base._(this, _runningCount)[_runningCount]--; _class_private_field_loose_base._(this, _processNext)[_processNext](); } }; const enqueueResult = { promiseFn: taskPromise, task }; // wonder if we should take a LIFO approach here _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult); _class_private_field_loose_base._(this, _processNext)[_processNext](); return taskPromise; } bump(promiseFn) { const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn); if (index > -1) { const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0]; _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem); _class_private_field_loose_base._(this, _processNext)[_processNext](true); } } constructor(maxConcurrency = 5){ Object.defineProperty(this, _processNext, { value: processNext }); Object.defineProperty(this, _maxConcurrency, { writable: true, value: void 0 }); Object.defineProperty(this, _runningCount, { writable: true, value: void 0 }); Object.defineProperty(this, _queue, { writable: true, value: void 0 }); _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency; _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0; _class_private_field_loose_base._(this, _queue)[_queue] = []; } } function processNext(forced) { if (forced === void 0) forced = false; if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) { var _class_private_field_loose_base__queue_shift; (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task(); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=promise-queue.js.map /***/ }) zÿÿÿ}ÿÿÿ ~ÿÿÿÿÿÿ€Á/* This is a simple promise queue that allows you to limit the number of concurrent promises that are running at any given time. It's used to limit the number of concurrent prefetch requests that are being made to the server but could be used for other things as well. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "PromiseQueue", { enumerable: true, get: function() { return PromiseQueue; } }); const _class_private_field_loose_base = require("@swc/helpers/_/_class_private_field_loose_base"); const _class_private_field_loose_key = require("@swc/helpers/_/_class_private_field_loose_key"); var _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._("_maxConcurrency"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._("_runningCount"), _queue = /*#__PURE__*/ _class_private_field_loose_key._("_queue"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._("_processNext"); class PromiseQueue { enqueue(promiseFn) { let taskResolve; let taskReject; const taskPromise = new Promise((resolve, reject)=>{ taskResolve = resolve; taskReject = reject; }); const task = async ()=>{ try { _class_private_field_loose_base._(this, _runningCount)[_runningCount]++; const result = await promiseFn(); taskResolve(result); } catch (error) { taskReject(error); } finally{ _class_private_field_loose_base._(this, _runningCount)[_runningCount]--; _class_private_field_loose_base._(this, _processNext)[_processNext](); } }; const enqueueResult = { promiseFn: taskPromise, task }; // wonder if we should take a LIFO approach here _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult); _class_private_field_loose_base._(this, _processNext)[_processNext](); return taskPromise; } bump(promiseFn) { const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn); if (index > -1) { const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0]; _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem); _class_private_field_loose_base._(this, _processNext)[_processNext](true); } } constructor(maxConcurrency = 5){ Object.defineProperty(this, _processNext, { value: processNext }); Object.defineProperty(this, _maxConcurrency, { writable: true, value: void 0 }); Object.defineProperty(this, _runningCount, { writable: true, value: void 0 }); Object.defineProperty(this, _queue, { writable: true, value: void 0 }); _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency; _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0; _class_private_field_loose_base._(this, _queue)[_queue] = []; } } function processNext(forced) { if (forced === void 0) forced = false; if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) { var _class_private_field_loose_base__queue_shift; (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task(); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=promise-queue.js.map 288300undefined302346Object.defineProperty(exports, "__esModule", (undefined366366))undefined369415Object.defineProperty(exports, "PromiseQueue", (undefined498498))undefined541547__webpack_require__undefined54959617400undefined639645__webpack_require__undefined64769364402undefined‚, /***/ 5404:  ð«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource £«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource+"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "parseAndValidateFlightRouterState", { enumerable: true, get: function() { return parseAndValidateFlightRouterState; } }); const _types = require("./types"); const _superstruct = require("next/dist/compiled/superstruct"); function parseAndValidateFlightRouterState(stateHeader) { if (typeof stateHeader === 'undefined') { return undefined; } if (Array.isArray(stateHeader)) { throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), "__NEXT_ERROR_CODE", { value: "E418", enumerable: false, configurable: true }); } // We limit the size of the router state header to ~40kb. This is to prevent // a malicious user from sending a very large header and slowing down the // resolving of the router state. // This is around 2,000 nested or parallel route segment states: // '{"children":["",{}]}'.length === 20. if (stateHeader.length > 20 * 2000) { throw Object.defineProperty(new Error('The router state header was too large.'), "__NEXT_ERROR_CODE", { value: "E142", enumerable: false, configurable: true }); } try { const state = JSON.parse(decodeURIComponent(stateHeader)); (0, _superstruct.assert)(state, _types.flightRouterStateSchema); return state; } catch { throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), "__NEXT_ERROR_CODE", { value: "E10", enumerable: false, configurable: true }); } } //# sourceMappingURL=parse-and-validate-flight-router-state.js.map  e :NNQJ”üü7=?^€®Object.defineProperty(exports, "__esModule", (‚))ÅObject.defineProperty(exports, "parseAndValidateFlightRouterState", (þ“__webpack_require__…37752þ…85832€†buffer†source„size„maps„hash Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "parseAndValidateFlightRouterState", ({ enumerable: true, get: function() { return parseAndValidateFlightRouterState; } })); const _types = __webpack_require__(37752); const _superstruct = __webpack_require__(85832); function parseAndValidateFlightRouterState(stateHeader) { if (typeof stateHeader === 'undefined') { return undefined; } if (Array.isArray(stateHeader)) { throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), "__NEXT_ERROR_CODE", { value: "E418", enumerable: false, configurable: true }); } // We limit the size of the router state header to ~40kb. This is to prevent // a malicious user from sending a very large header and slowing down the // resolving of the router state. // This is around 2,000 nested or parallel route segment states: // '{"children":["",{}]}'.length === 20. if (stateHeader.length > 20 * 2000) { throw Object.defineProperty(new Error('The router state header was too large.'), "__NEXT_ERROR_CODE", { value: "E142", enumerable: false, configurable: true }); } try { const state = JSON.parse(decodeURIComponent(stateHeader)); (0, _superstruct.assert)(state, _types.flightRouterStateSchema); return state; } catch { throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), "__NEXT_ERROR_CODE", { value: "E10", enumerable: false, configurable: true }); } } //# sourceMappingURL=parse-and-validate-flight-router-state.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource+"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "parseAndValidateFlightRouterState", { enumerable: true, get: function() { return parseAndValidateFlightRouterState; } }); const _types = require("./types"); const _superstruct = require("next/dist/compiled/superstruct"); function parseAndValidateFlightRouterState(stateHeader) { if (typeof stateHeader === 'undefined') { return undefined; } if (Array.isArray(stateHeader)) { throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), "__NEXT_ERROR_CODE", { value: "E418", enumerable: false, configurable: true }); } // We limit the size of the router state header to ~40kb. This is to prevent // a malicious user from sending a very large header and slowing down the // resolving of the router state. // This is around 2,000 nested or parallel route segment states: // '{"children":["",{}]}'.length === 20. if (stateHeader.length > 20 * 2000) { throw Object.defineProperty(new Error('The router state header was too large.'), "__NEXT_ERROR_CODE", { value: "E142", enumerable: false, configurable: true }); } try { const state = JSON.parse(decodeURIComponent(stateHeader)); (0, _superstruct.assert)(state, _types.flightRouterStateSchema); return state; } catch { throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), "__NEXT_ERROR_CODE", { value: "E10", enumerable: false, configurable: true }); } } //# sourceMappingURL=parse-and-validate-flight-router-state.js.map&012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81148Object.defineProperty(exports, "parseAndValidateFlightRouterState", (undefined252252))undefined270276__webpack_require__undefined27828637752undefined311317__webpack_require__undefined31935085832undefined /***/ }) oÿÿÿx/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "parseAndValidateFlightRouterState", ({ enumerable: true, get: function() { return parseAndValidateFlightRouterState; } })); const _types = __webpack_require__(37752); const _superstruct = __webpack_require__(85832); function parseAndValidateFlightRouterState(stateHeader) { if (typeof stateHeader === 'undefined') { return undefined; } if (Array.isArray(stateHeader)) { throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), "__NEXT_ERROR_CODE", { value: "E418", enumerable: false, configurable: true }); } // We limit the size of the router state header to ~40kb. This is to prevent // a malicious user from sending a very large header and slowing down the // resolving of the router state. // This is around 2,000 nested or parallel route segment states: // '{"children":["",{}]}'.length === 20. if (stateHeader.length > 20 * 2000) { throw Object.defineProperty(new Error('The router state header was too large.'), "__NEXT_ERROR_CODE", { value: "E142", enumerable: false, configurable: true }); } try { const state = JSON.parse(decodeURIComponent(stateHeader)); (0, _superstruct.assert)(state, _types.flightRouterStateSchema); return state; } catch { throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), "__NEXT_ERROR_CODE", { value: "E10", enumerable: false, configurable: true }); } } //# sourceMappingURL=parse-and-validate-flight-router-state.js.map /***/ }) pÿÿÿsÿÿÿ tÿÿÿŽvÿÿÿ+"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "parseAndValidateFlightRouterState", { enumerable: true, get: function() { return parseAndValidateFlightRouterState; } }); const _types = require("./types"); const _superstruct = require("next/dist/compiled/superstruct"); function parseAndValidateFlightRouterState(stateHeader) { if (typeof stateHeader === 'undefined') { return undefined; } if (Array.isArray(stateHeader)) { throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), "__NEXT_ERROR_CODE", { value: "E418", enumerable: false, configurable: true }); } // We limit the size of the router state header to ~40kb. This is to prevent // a malicious user from sending a very large header and slowing down the // resolving of the router state. // This is around 2,000 nested or parallel route segment states: // '{"children":["",{}]}'.length === 20. if (stateHeader.length > 20 * 2000) { throw Object.defineProperty(new Error('The router state header was too large.'), "__NEXT_ERROR_CODE", { value: "E142", enumerable: false, configurable: true }); } try { const state = JSON.parse(decodeURIComponent(stateHeader)); (0, _superstruct.assert)(state, _types.flightRouterStateSchema); return state; } catch { throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), "__NEXT_ERROR_CODE", { value: "E10", enumerable: false, configurable: true }); } } //# sourceMappingURL=parse-and-validate-flight-router-state.js.map&012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81148Object.defineProperty(exports, "parseAndValidateFlightRouterState", (undefined252252))undefined270276__webpack_require__undefined27828637752undefined311317__webpack_require__undefined31935085832undefinedwÿÿÿxÿÿÿ, /***/ 5774:  B«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource D«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource5"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ROOT_SEGMENT_CACHE_KEY: null, ROOT_SEGMENT_REQUEST_KEY: null, appendSegmentCacheKeyPart: null, appendSegmentRequestKeyPart: null, convertSegmentPathToStaticExportFilename: null, createSegmentCacheKeyPart: null, createSegmentRequestKeyPart: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ROOT_SEGMENT_CACHE_KEY: function() { return ROOT_SEGMENT_CACHE_KEY; }, ROOT_SEGMENT_REQUEST_KEY: function() { return ROOT_SEGMENT_REQUEST_KEY; }, appendSegmentCacheKeyPart: function() { return appendSegmentCacheKeyPart; }, appendSegmentRequestKeyPart: function() { return appendSegmentRequestKeyPart; }, convertSegmentPathToStaticExportFilename: function() { return convertSegmentPathToStaticExportFilename; }, createSegmentCacheKeyPart: function() { return createSegmentCacheKeyPart; }, createSegmentRequestKeyPart: function() { return createSegmentRequestKeyPart; } }); const _segment = require("../segment"); const ROOT_SEGMENT_REQUEST_KEY = ''; const ROOT_SEGMENT_CACHE_KEY = ''; function createSegmentRequestKeyPart(segment) { if (typeof segment === 'string') { if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) { // The Flight Router State type sometimes includes the search params in // the page segment. However, the Segment Cache tracks this as a separate // key. So, we strip the search params here, and then add them back when // the cache entry is turned back into a FlightRouterState. This is an // unfortunate consequence of the FlightRouteState being used both as a // transport type and as a cache key; we'll address this once more of the // Segment Cache implementation has settled. // TODO: We should hoist the search params out of the FlightRouterState // type entirely, This is our plan for dynamic route params, too. return _segment.PAGE_SEGMENT_KEY; } const safeName = // But params typically don't include the leading slash. We should use // a different encoding to avoid this special case. segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment); // Since this is not a dynamic segment, it's fully encoded. It does not // need to be "hydrated" with a param value. return safeName; } const name = segment[0]; const paramType = segment[2]; const safeName = encodeToFilesystemAndURLSafeString(name); const encodedName = '$' + paramType + '$' + safeName; return encodedName; } function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) { // Aside from being filesystem safe, segment keys are also designed so that // each segment and parallel route creates its own subdirectory. Roughly in // the same shape as the source app directory. This is mostly just for easier // debugging (you can open up the build folder and navigate the output); if // we wanted to do we could just use a flat structure. // Omit the parallel route key for children, since this is the most // common case. Saves some bytes (and it's what the app directory does). const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childRequestKeyPart; return parentRequestKey + '/' + slotKey; } function createSegmentCacheKeyPart(requestKeyPart, segment) { if (typeof segment === 'string') { return requestKeyPart; } const paramValue = segment[1]; const safeValue = encodeToFilesystemAndURLSafeString(paramValue); return requestKeyPart + '$' + safeValue; } function appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) { const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childCacheKeyPart; return parentSegmentKey + '/' + slotKey; } // Define a regex pattern to match the most common characters found in a route // param. It excludes anything that might not be cross-platform filesystem // compatible, like |. It does not need to be precise because the fallback is to // just base64url-encode the whole parameter, which is fine; we just don't do it // by default for compactness, and for easier debugging. const simpleParamValueRegex = /^[a-zA-Z0-9\-_@]+$/; function encodeToFilesystemAndURLSafeString(value) { if (simpleParamValueRegex.test(value)) { return value; } // If there are any unsafe characters, base64url-encode the entire value. // We also add a ! prefix so it doesn't collide with the simple case. const base64url = btoa(value).replace(/\+/g, '-') // Replace '+' with '-' .replace(/\//g, '_') // Replace '/' with '_' .replace(/=+$/, '') // Remove trailing '=' ; return '!' + base64url; } function convertSegmentPathToStaticExportFilename(segmentPath) { return "__next" + segmentPath.replace(/\//g, '.') + ".txt"; } //# sourceMappingURL=segment-value-encoding.js.map e :NNWD{èîðû€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…44859€†buffer†source„size„maps„hash  Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ROOT_SEGMENT_CACHE_KEY: function() { return ROOT_SEGMENT_CACHE_KEY; }, ROOT_SEGMENT_REQUEST_KEY: function() { return ROOT_SEGMENT_REQUEST_KEY; }, appendSegmentCacheKeyPart: function() { return appendSegmentCacheKeyPart; }, appendSegmentRequestKeyPart: function() { return appendSegmentRequestKeyPart; }, convertSegmentPathToStaticExportFilename: function() { return convertSegmentPathToStaticExportFilename; }, createSegmentCacheKeyPart: function() { return createSegmentCacheKeyPart; }, createSegmentRequestKeyPart: function() { return createSegmentRequestKeyPart; } }); const _segment = __webpack_require__(44859); const ROOT_SEGMENT_REQUEST_KEY = ''; const ROOT_SEGMENT_CACHE_KEY = ''; function createSegmentRequestKeyPart(segment) { if (typeof segment === 'string') { if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) { // The Flight Router State type sometimes includes the search params in // the page segment. However, the Segment Cache tracks this as a separate // key. So, we strip the search params here, and then add them back when // the cache entry is turned back into a FlightRouterState. This is an // unfortunate consequence of the FlightRouteState being used both as a // transport type and as a cache key; we'll address this once more of the // Segment Cache implementation has settled. // TODO: We should hoist the search params out of the FlightRouterState // type entirely, This is our plan for dynamic route params, too. return _segment.PAGE_SEGMENT_KEY; } const safeName = // But params typically don't include the leading slash. We should use // a different encoding to avoid this special case. segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment); // Since this is not a dynamic segment, it's fully encoded. It does not // need to be "hydrated" with a param value. return safeName; } const name = segment[0]; const paramType = segment[2]; const safeName = encodeToFilesystemAndURLSafeString(name); const encodedName = '$' + paramType + '$' + safeName; return encodedName; } function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) { // Aside from being filesystem safe, segment keys are also designed so that // each segment and parallel route creates its own subdirectory. Roughly in // the same shape as the source app directory. This is mostly just for easier // debugging (you can open up the build folder and navigate the output); if // we wanted to do we could just use a flat structure. // Omit the parallel route key for children, since this is the most // common case. Saves some bytes (and it's what the app directory does). const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childRequestKeyPart; return parentRequestKey + '/' + slotKey; } function createSegmentCacheKeyPart(requestKeyPart, segment) { if (typeof segment === 'string') { return requestKeyPart; } const paramValue = segment[1]; const safeValue = encodeToFilesystemAndURLSafeString(paramValue); return requestKeyPart + '$' + safeValue; } function appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) { const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childCacheKeyPart; return parentSegmentKey + '/' + slotKey; } // Define a regex pattern to match the most common characters found in a route // param. It excludes anything that might not be cross-platform filesystem // compatible, like |. It does not need to be precise because the fallback is to // just base64url-encode the whole parameter, which is fine; we just don't do it // by default for compactness, and for easier debugging. const simpleParamValueRegex = /^[a-zA-Z0-9\-_@]+$/; function encodeToFilesystemAndURLSafeString(value) { if (simpleParamValueRegex.test(value)) { return value; } // If there are any unsafe characters, base64url-encode the entire value. // We also add a ! prefix so it doesn't collide with the simple case. const base64url = btoa(value).replace(/\+/g, '-') // Replace '+' with '-' .replace(/\//g, '_') // Replace '/' with '_' .replace(/=+$/, '') // Remove trailing '=' ; return '!' + base64url; } function convertSegmentPathToStaticExportFilename(segmentPath) { return "__next" + segmentPath.replace(/\//g, '.') + ".txt"; } //# sourceMappingURL=segment-value-encoding.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource5"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ROOT_SEGMENT_CACHE_KEY: null, ROOT_SEGMENT_REQUEST_KEY: null, appendSegmentCacheKeyPart: null, appendSegmentRequestKeyPart: null, convertSegmentPathToStaticExportFilename: null, createSegmentCacheKeyPart: null, createSegmentRequestKeyPart: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ROOT_SEGMENT_CACHE_KEY: function() { return ROOT_SEGMENT_CACHE_KEY; }, ROOT_SEGMENT_REQUEST_KEY: function() { return ROOT_SEGMENT_REQUEST_KEY; }, appendSegmentCacheKeyPart: function() { return appendSegmentCacheKeyPart; }, appendSegmentRequestKeyPart: function() { return appendSegmentRequestKeyPart; }, convertSegmentPathToStaticExportFilename: function() { return convertSegmentPathToStaticExportFilename; }, createSegmentCacheKeyPart: function() { return createSegmentCacheKeyPart; }, createSegmentRequestKeyPart: function() { return createSegmentRequestKeyPart; } }); const _segment = require("../segment"); const ROOT_SEGMENT_REQUEST_KEY = ''; const ROOT_SEGMENT_CACHE_KEY = ''; function createSegmentRequestKeyPart(segment) { if (typeof segment === 'string') { if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) { // The Flight Router State type sometimes includes the search params in // the page segment. However, the Segment Cache tracks this as a separate // key. So, we strip the search params here, and then add them back when // the cache entry is turned back into a FlightRouterState. This is an // unfortunate consequence of the FlightRouteState being used both as a // transport type and as a cache key; we'll address this once more of the // Segment Cache implementation has settled. // TODO: We should hoist the search params out of the FlightRouterState // type entirely, This is our plan for dynamic route params, too. return _segment.PAGE_SEGMENT_KEY; } const safeName = // But params typically don't include the leading slash. We should use // a different encoding to avoid this special case. segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment); // Since this is not a dynamic segment, it's fully encoded. It does not // need to be "hydrated" with a param value. return safeName; } const name = segment[0]; const paramType = segment[2]; const safeName = encodeToFilesystemAndURLSafeString(name); const encodedName = '$' + paramType + '$' + safeName; return encodedName; } function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) { // Aside from being filesystem safe, segment keys are also designed so that // each segment and parallel route creates its own subdirectory. Roughly in // the same shape as the source app directory. This is mostly just for easier // debugging (you can open up the build folder and navigate the output); if // we wanted to do we could just use a flat structure. // Omit the parallel route key for children, since this is the most // common case. Saves some bytes (and it's what the app directory does). const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childRequestKeyPart; return parentRequestKey + '/' + slotKey; } function createSegmentCacheKeyPart(requestKeyPart, segment) { if (typeof segment === 'string') { return requestKeyPart; } const paramValue = segment[1]; const safeValue = encodeToFilesystemAndURLSafeString(paramValue); return requestKeyPart + '$' + safeValue; } function appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) { const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childCacheKeyPart; return parentSegmentKey + '/' + slotKey; } // Define a regex pattern to match the most common characters found in a route // param. It excludes anything that might not be cross-platform filesystem // compatible, like |. It does not need to be precise because the fallback is to // just base64url-encode the whole parameter, which is fine; we just don't do it // by default for compactness, and for easier debugging. const simpleParamValueRegex = /^[a-zA-Z0-9\-_@]+$/; function encodeToFilesystemAndURLSafeString(value) { if (simpleParamValueRegex.test(value)) { return value; } // If there are any unsafe characters, base64url-encode the entire value. // We also add a ! prefix so it doesn't collide with the simple case. const base64url = btoa(value).replace(/\+/g, '-') // Replace '+' with '-' .replace(/\//g, '_') // Replace '/' with '_' .replace(/=+$/, '') // Remove trailing '=' ; return '!' + base64url; } function convertSegmentPathToStaticExportFilename(segmentPath) { return "__next" + segmentPath.replace(/\//g, '.') + ".txt"; } //# sourceMappingURL=segment-value-encoding.js.map Ÿ012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873790undefined12561262__webpack_require__undefined1264127544859undefined /***/ }) eÿÿÿh/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ROOT_SEGMENT_CACHE_KEY: function() { return ROOT_SEGMENT_CACHE_KEY; }, ROOT_SEGMENT_REQUEST_KEY: function() { return ROOT_SEGMENT_REQUEST_KEY; }, appendSegmentCacheKeyPart: function() { return appendSegmentCacheKeyPart; }, appendSegmentRequestKeyPart: function() { return appendSegmentRequestKeyPart; }, convertSegmentPathToStaticExportFilename: function() { return convertSegmentPathToStaticExportFilename; }, createSegmentCacheKeyPart: function() { return createSegmentCacheKeyPart; }, createSegmentRequestKeyPart: function() { return createSegmentRequestKeyPart; } }); const _segment = __webpack_require__(44859); const ROOT_SEGMENT_REQUEST_KEY = ''; const ROOT_SEGMENT_CACHE_KEY = ''; function createSegmentRequestKeyPart(segment) { if (typeof segment === 'string') { if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) { // The Flight Router State type sometimes includes the search params in // the page segment. However, the Segment Cache tracks this as a separate // key. So, we strip the search params here, and then add them back when // the cache entry is turned back into a FlightRouterState. This is an // unfortunate consequence of the FlightRouteState being used both as a // transport type and as a cache key; we'll address this once more of the // Segment Cache implementation has settled. // TODO: We should hoist the search params out of the FlightRouterState // type entirely, This is our plan for dynamic route params, too. return _segment.PAGE_SEGMENT_KEY; } const safeName = // But params typically don't include the leading slash. We should use // a different encoding to avoid this special case. segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment); // Since this is not a dynamic segment, it's fully encoded. It does not // need to be "hydrated" with a param value. return safeName; } const name = segment[0]; const paramType = segment[2]; const safeName = encodeToFilesystemAndURLSafeString(name); const encodedName = '$' + paramType + '$' + safeName; return encodedName; } function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) { // Aside from being filesystem safe, segment keys are also designed so that // each segment and parallel route creates its own subdirectory. Roughly in // the same shape as the source app directory. This is mostly just for easier // debugging (you can open up the build folder and navigate the output); if // we wanted to do we could just use a flat structure. // Omit the parallel route key for children, since this is the most // common case. Saves some bytes (and it's what the app directory does). const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childRequestKeyPart; return parentRequestKey + '/' + slotKey; } function createSegmentCacheKeyPart(requestKeyPart, segment) { if (typeof segment === 'string') { return requestKeyPart; } const paramValue = segment[1]; const safeValue = encodeToFilesystemAndURLSafeString(paramValue); return requestKeyPart + '$' + safeValue; } function appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) { const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childCacheKeyPart; return parentSegmentKey + '/' + slotKey; } // Define a regex pattern to match the most common characters found in a route // param. It excludes anything that might not be cross-platform filesystem // compatible, like |. It does not need to be precise because the fallback is to // just base64url-encode the whole parameter, which is fine; we just don't do it // by default for compactness, and for easier debugging. const simpleParamValueRegex = /^[a-zA-Z0-9\-_@]+$/; function encodeToFilesystemAndURLSafeString(value) { if (simpleParamValueRegex.test(value)) { return value; } // If there are any unsafe characters, base64url-encode the entire value. // We also add a ! prefix so it doesn't collide with the simple case. const base64url = btoa(value).replace(/\+/g, '-') // Replace '+' with '-' .replace(/\//g, '_') // Replace '/' with '_' .replace(/=+$/, '') // Remove trailing '=' ; return '!' + base64url; } function convertSegmentPathToStaticExportFilename(segmentPath) { return "__next" + segmentPath.replace(/\//g, '.') + ".txt"; } //# sourceMappingURL=segment-value-encoding.js.map /***/ }) fÿÿÿiÿÿÿ jÿÿÿ„lÿÿÿ5"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ROOT_SEGMENT_CACHE_KEY: null, ROOT_SEGMENT_REQUEST_KEY: null, appendSegmentCacheKeyPart: null, appendSegmentRequestKeyPart: null, convertSegmentPathToStaticExportFilename: null, createSegmentCacheKeyPart: null, createSegmentRequestKeyPart: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ROOT_SEGMENT_CACHE_KEY: function() { return ROOT_SEGMENT_CACHE_KEY; }, ROOT_SEGMENT_REQUEST_KEY: function() { return ROOT_SEGMENT_REQUEST_KEY; }, appendSegmentCacheKeyPart: function() { return appendSegmentCacheKeyPart; }, appendSegmentRequestKeyPart: function() { return appendSegmentRequestKeyPart; }, convertSegmentPathToStaticExportFilename: function() { return convertSegmentPathToStaticExportFilename; }, createSegmentCacheKeyPart: function() { return createSegmentCacheKeyPart; }, createSegmentRequestKeyPart: function() { return createSegmentRequestKeyPart; } }); const _segment = require("../segment"); const ROOT_SEGMENT_REQUEST_KEY = ''; const ROOT_SEGMENT_CACHE_KEY = ''; function createSegmentRequestKeyPart(segment) { if (typeof segment === 'string') { if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) { // The Flight Router State type sometimes includes the search params in // the page segment. However, the Segment Cache tracks this as a separate // key. So, we strip the search params here, and then add them back when // the cache entry is turned back into a FlightRouterState. This is an // unfortunate consequence of the FlightRouteState being used both as a // transport type and as a cache key; we'll address this once more of the // Segment Cache implementation has settled. // TODO: We should hoist the search params out of the FlightRouterState // type entirely, This is our plan for dynamic route params, too. return _segment.PAGE_SEGMENT_KEY; } const safeName = // But params typically don't include the leading slash. We should use // a different encoding to avoid this special case. segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment); // Since this is not a dynamic segment, it's fully encoded. It does not // need to be "hydrated" with a param value. return safeName; } const name = segment[0]; const paramType = segment[2]; const safeName = encodeToFilesystemAndURLSafeString(name); const encodedName = '$' + paramType + '$' + safeName; return encodedName; } function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) { // Aside from being filesystem safe, segment keys are also designed so that // each segment and parallel route creates its own subdirectory. Roughly in // the same shape as the source app directory. This is mostly just for easier // debugging (you can open up the build folder and navigate the output); if // we wanted to do we could just use a flat structure. // Omit the parallel route key for children, since this is the most // common case. Saves some bytes (and it's what the app directory does). const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childRequestKeyPart; return parentRequestKey + '/' + slotKey; } function createSegmentCacheKeyPart(requestKeyPart, segment) { if (typeof segment === 'string') { return requestKeyPart; } const paramValue = segment[1]; const safeValue = encodeToFilesystemAndURLSafeString(paramValue); return requestKeyPart + '$' + safeValue; } function appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) { const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : "@" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + "/" + childCacheKeyPart; return parentSegmentKey + '/' + slotKey; } // Define a regex pattern to match the most common characters found in a route // param. It excludes anything that might not be cross-platform filesystem // compatible, like |. It does not need to be precise because the fallback is to // just base64url-encode the whole parameter, which is fine; we just don't do it // by default for compactness, and for easier debugging. const simpleParamValueRegex = /^[a-zA-Z0-9\-_@]+$/; function encodeToFilesystemAndURLSafeString(value) { if (simpleParamValueRegex.test(value)) { return value; } // If there are any unsafe characters, base64url-encode the entire value. // We also add a ! prefix so it doesn't collide with the simple case. const base64url = btoa(value).replace(/\+/g, '-') // Replace '+' with '-' .replace(/\//g, '_') // Replace '/' with '_' .replace(/=+$/, '') // Remove trailing '=' ; return '!' + base64url; } function convertSegmentPathToStaticExportFilename(segmentPath) { return "__next" + segmentPath.replace(/\//g, '.') + ".txt"; } //# sourceMappingURL=segment-value-encoding.js.map Ÿ012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873790undefined12561262__webpack_require__undefined1264127544859undefinedmÿÿÿnÿÿÿ, /***/ 5939:  ï«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Œ«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource•"use strict"; module.exports = require('../../module.compiled').vendored['react-rsc'].ReactJsxRuntime; //# sourceMappingURL=react-jsx-runtime.js.map b d€Ñmodule.exports = __webpack_require__(73653).vendored["react-rsc"].ReactJsxRuntime€†buffer†source„size„maps„hash‚ module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactJsxRuntime; //# sourceMappingURL=react-jsx-runtime.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource•"use strict"; module.exports = require('../../module.compiled').vendored['react-rsc'].ReactJsxRuntime; //# sourceMappingURL=react-jsx-runtime.js.mapk012undefined14100module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactJsxRuntimeundefined /***/ }) [ÿÿÿß/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactJsxRuntime; //# sourceMappingURL=react-jsx-runtime.js.map /***/ }) \ÿÿÿ_ÿÿÿ `ÿÿÿÍbÿÿÿ•"use strict"; module.exports = require('../../module.compiled').vendored['react-rsc'].ReactJsxRuntime; //# sourceMappingURL=react-jsx-runtime.js.mapk012undefined14100module.exports = __webpack_require__(73653).vendored["react-rsc"].ReactJsxRuntimeundefinedcÿÿÿdÿÿÿ, /***/ 6768:  Z;«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource/***/ ((module) => { «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource +«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceŽ(()=>{"use strict";if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};(()=>{var n=e;Object.defineProperty(n,"__esModule",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError("Missing parameter name at ".concat(r));n.push({type:"NAME",index:r,value:a});r=i;continue}if(t==="("){var c=1;var f="";var i=r+1;if(e[i]==="?"){throw new TypeError('Pattern cannot start with "?" at '.concat(i))}while(i-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n==="string"?n:"");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after "'.concat(n.name,'"'))}if(!r||isSafe(r))return"[^".concat(escapeString(o),"]+?");return"(?:(?!".concat(escapeString(r),")[^").concat(escapeString(o),"])+?")};while(u)?(?!\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:"",suffix:"",modifier:"",pattern:""});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp("(?:".concat(t.join("|"),")"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?"/#?":v,d=r.endsWith,g=d===void 0?"":d;var x="[".concat(escapeString(g),"]|$");var h="[".concat(escapeString(s),"]");var l=o?"^":"";for(var m=0,T=e;m-1:A===undefined;if(!a){l+="(?:".concat(h,"(?=").concat(x,"))?")}if(!_){l+="(?=".concat(h,"|").concat(x,")")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})(); €†buffer†source„size„maps„hashŽ(()=>{"use strict";if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};(()=>{var n=e;Object.defineProperty(n,"__esModule",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError("Missing parameter name at ".concat(r));n.push({type:"NAME",index:r,value:a});r=i;continue}if(t==="("){var c=1;var f="";var i=r+1;if(e[i]==="?"){throw new TypeError('Pattern cannot start with "?" at '.concat(i))}while(i-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n==="string"?n:"");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after "'.concat(n.name,'"'))}if(!r||isSafe(r))return"[^".concat(escapeString(o),"]+?");return"(?:(?!".concat(escapeString(r),")[^").concat(escapeString(o),"])+?")};while(u)?(?!\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:"",suffix:"",modifier:"",pattern:""});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp("(?:".concat(t.join("|"),")"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?"/#?":v,d=r.endsWith,g=d===void 0?"":d;var x="[".concat(escapeString(g),"]|$");var h="[".concat(escapeString(s),"]");var l=o?"^":"";for(var m=0,T=e;m-1:A===undefined;if(!a){l+="(?:".concat(h,"(?=").concat(x,"))?")}if(!_){l+="(?=".concat(h,"|").concat(x,")")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})(); €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceø /***/ }) Qÿÿÿ®/***/ ((module) => { (()=>{"use strict";if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};(()=>{var n=e;Object.defineProperty(n,"__esModule",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError("Missing parameter name at ".concat(r));n.push({type:"NAME",index:r,value:a});r=i;continue}if(t==="("){var c=1;var f="";var i=r+1;if(e[i]==="?"){throw new TypeError('Pattern cannot start with "?" at '.concat(i))}while(i-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n==="string"?n:"");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after "'.concat(n.name,'"'))}if(!r||isSafe(r))return"[^".concat(escapeString(o),"]+?");return"(?:(?!".concat(escapeString(r),")[^").concat(escapeString(o),"])+?")};while(u)?(?!\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:"",suffix:"",modifier:"",pattern:""});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp("(?:".concat(t.join("|"),")"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?"/#?":v,d=r.endsWith,g=d===void 0?"":d;var x="[".concat(escapeString(g),"]|$");var h="[".concat(escapeString(s),"]");var l=o?"^":"";for(var m=0,T=e;m-1:A===undefined;if(!a){l+="(?:".concat(h,"(?=").concat(x,"))?")}if(!_){l+="(?=".concat(h,"|").concat(x,")")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})(); /***/ }) RÿÿÿUÿÿÿ Vÿÿÿ/***/ ((module) => { WÿÿÿŽ(()=>{"use strict";if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};(()=>{var n=e;Object.defineProperty(n,"__esModule",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError("Missing parameter name at ".concat(r));n.push({type:"NAME",index:r,value:a});r=i;continue}if(t==="("){var c=1;var f="";var i=r+1;if(e[i]==="?"){throw new TypeError('Pattern cannot start with "?" at '.concat(i))}while(i-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n==="string"?n:"");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after "'.concat(n.name,'"'))}if(!r||isSafe(r))return"[^".concat(escapeString(o),"]+?");return"(?:(?!".concat(escapeString(r),")[^").concat(escapeString(o),"])+?")};while(u)?(?!\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:"",suffix:"",modifier:"",pattern:""});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp("(?:".concat(t.join("|"),")"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?"/#?":v,d=r.endsWith,g=d===void 0?"":d;var x="[".concat(escapeString(g),"]|$");var h="[".concat(escapeString(s),"]");var l=o?"^":"";for(var m=0,T=e;m-1:A===undefined;if(!a){l+="(?:".concat(h,"(?=").concat(x,"))?")}if(!_){l+="(?=".concat(h,"|").concat(x,")")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})();XÿÿÿYÿÿÿ, /***/ 7310:  £X«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource [«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource™'use strict'; const { kForOnEventAttribute, kListener } = require('./constants'); const kCode = Symbol('kCode'); const kData = Symbol('kData'); const kError = Symbol('kError'); const kMessage = Symbol('kMessage'); const kReason = Symbol('kReason'); const kTarget = Symbol('kTarget'); const kType = Symbol('kType'); const kWasClean = Symbol('kWasClean'); /** * Class representing an event. */ class Event { /** * Create a new `Event`. * * @param {String} type The name of the event * @throws {TypeError} If the `type` argument is not specified */ constructor(type) { this[kTarget] = null; this[kType] = type; } /** * @type {*} */ get target() { return this[kTarget]; } /** * @type {String} */ get type() { return this[kType]; } } Object.defineProperty(Event.prototype, 'target', { enumerable: true }); Object.defineProperty(Event.prototype, 'type', { enumerable: true }); /** * Class representing a close event. * * @extends Event */ class CloseEvent extends Event { /** * Create a new `CloseEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {Number} [options.code=0] The status code explaining why the * connection was closed * @param {String} [options.reason=''] A human-readable string explaining why * the connection was closed * @param {Boolean} [options.wasClean=false] Indicates whether or not the * connection was cleanly closed */ constructor(type, options = {}) { super(type); this[kCode] = options.code === undefined ? 0 : options.code; this[kReason] = options.reason === undefined ? '' : options.reason; this[kWasClean] = options.wasClean === undefined ? false : options.wasClean; } /** * @type {Number} */ get code() { return this[kCode]; } /** * @type {String} */ get reason() { return this[kReason]; } /** * @type {Boolean} */ get wasClean() { return this[kWasClean]; } } Object.defineProperty(CloseEvent.prototype, 'code', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true }); /** * Class representing an error event. * * @extends Event */ class ErrorEvent extends Event { /** * Create a new `ErrorEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.error=null] The error that generated this event * @param {String} [options.message=''] The error message */ constructor(type, options = {}) { super(type); this[kError] = options.error === undefined ? null : options.error; this[kMessage] = options.message === undefined ? '' : options.message; } /** * @type {*} */ get error() { return this[kError]; } /** * @type {String} */ get message() { return this[kMessage]; } } Object.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true }); Object.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true }); /** * Class representing a message event. * * @extends Event */ class MessageEvent extends Event { /** * Create a new `MessageEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.data=null] The message content */ constructor(type, options = {}) { super(type); this[kData] = options.data === undefined ? null : options.data; } /** * @type {*} */ get data() { return this[kData]; } } Object.defineProperty(MessageEvent.prototype, 'data', { enumerable: true }); /** * This provides methods for emulating the `EventTarget` interface. It's not * meant to be used directly. * * @mixin */ const EventTarget = { /** * Register an event listener. * * @param {String} type A string representing the event type to listen for * @param {(Function|Object)} handler The listener to add * @param {Object} [options] An options object specifies characteristics about * the event listener * @param {Boolean} [options.once=false] A `Boolean` indicating that the * listener should be invoked at most once after being added. If `true`, * the listener would be automatically removed when invoked. * @public */ addEventListener(type, handler, options = {}) { for (const listener of this.listeners(type)) { if ( !options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute] ) { return; } } let wrapper; if (type === 'message') { wrapper = function onMessage(data, isBinary) { const event = new MessageEvent('message', { data: isBinary ? data : data.toString() }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'close') { wrapper = function onClose(code, message) { const event = new CloseEvent('close', { code, reason: message.toString(), wasClean: this._closeFrameReceived && this._closeFrameSent }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'error') { wrapper = function onError(error) { const event = new ErrorEvent('error', { error, message: error.message }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'open') { wrapper = function onOpen() { const event = new Event('open'); event[kTarget] = this; callListener(handler, this, event); }; } else { return; } wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute]; wrapper[kListener] = handler; if (options.once) { this.once(type, wrapper); } else { this.on(type, wrapper); } }, /** * Remove an event listener. * * @param {String} type A string representing the event type to remove * @param {(Function|Object)} handler The listener to remove * @public */ removeEventListener(type, handler) { for (const listener of this.listeners(type)) { if (listener[kListener] === handler && !listener[kForOnEventAttribute]) { this.removeListener(type, listener); break; } } } }; module.exports = { CloseEvent, ErrorEvent, Event, EventTarget, MessageEvent }; /** * Call an event listener * * @param {(Function|Object)} listener The listener to call * @param {*} thisArg The value to use as `this`` when calling the listener * @param {Event} event The event to pass to the listener * @private */ function callListener(listener, thisArg, event) { if (typeof listener === 'object' && listener.handleEvent) { listener.handleEvent.call(listener, event); } else { listener.call(thisArg, event); } } d ;ACO€“__webpack_require__…15443€†buffer†source„size„maps„hash const { kForOnEventAttribute, kListener } = __webpack_require__(15443); const kCode = Symbol('kCode'); const kData = Symbol('kData'); const kError = Symbol('kError'); const kMessage = Symbol('kMessage'); const kReason = Symbol('kReason'); const kTarget = Symbol('kTarget'); const kType = Symbol('kType'); const kWasClean = Symbol('kWasClean'); /** * Class representing an event. */ class Event { /** * Create a new `Event`. * * @param {String} type The name of the event * @throws {TypeError} If the `type` argument is not specified */ constructor(type) { this[kTarget] = null; this[kType] = type; } /** * @type {*} */ get target() { return this[kTarget]; } /** * @type {String} */ get type() { return this[kType]; } } Object.defineProperty(Event.prototype, 'target', { enumerable: true }); Object.defineProperty(Event.prototype, 'type', { enumerable: true }); /** * Class representing a close event. * * @extends Event */ class CloseEvent extends Event { /** * Create a new `CloseEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {Number} [options.code=0] The status code explaining why the * connection was closed * @param {String} [options.reason=''] A human-readable string explaining why * the connection was closed * @param {Boolean} [options.wasClean=false] Indicates whether or not the * connection was cleanly closed */ constructor(type, options = {}) { super(type); this[kCode] = options.code === undefined ? 0 : options.code; this[kReason] = options.reason === undefined ? '' : options.reason; this[kWasClean] = options.wasClean === undefined ? false : options.wasClean; } /** * @type {Number} */ get code() { return this[kCode]; } /** * @type {String} */ get reason() { return this[kReason]; } /** * @type {Boolean} */ get wasClean() { return this[kWasClean]; } } Object.defineProperty(CloseEvent.prototype, 'code', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true }); /** * Class representing an error event. * * @extends Event */ class ErrorEvent extends Event { /** * Create a new `ErrorEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.error=null] The error that generated this event * @param {String} [options.message=''] The error message */ constructor(type, options = {}) { super(type); this[kError] = options.error === undefined ? null : options.error; this[kMessage] = options.message === undefined ? '' : options.message; } /** * @type {*} */ get error() { return this[kError]; } /** * @type {String} */ get message() { return this[kMessage]; } } Object.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true }); Object.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true }); /** * Class representing a message event. * * @extends Event */ class MessageEvent extends Event { /** * Create a new `MessageEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.data=null] The message content */ constructor(type, options = {}) { super(type); this[kData] = options.data === undefined ? null : options.data; } /** * @type {*} */ get data() { return this[kData]; } } Object.defineProperty(MessageEvent.prototype, 'data', { enumerable: true }); /** * This provides methods for emulating the `EventTarget` interface. It's not * meant to be used directly. * * @mixin */ const EventTarget = { /** * Register an event listener. * * @param {String} type A string representing the event type to listen for * @param {(Function|Object)} handler The listener to add * @param {Object} [options] An options object specifies characteristics about * the event listener * @param {Boolean} [options.once=false] A `Boolean` indicating that the * listener should be invoked at most once after being added. If `true`, * the listener would be automatically removed when invoked. * @public */ addEventListener(type, handler, options = {}) { for (const listener of this.listeners(type)) { if ( !options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute] ) { return; } } let wrapper; if (type === 'message') { wrapper = function onMessage(data, isBinary) { const event = new MessageEvent('message', { data: isBinary ? data : data.toString() }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'close') { wrapper = function onClose(code, message) { const event = new CloseEvent('close', { code, reason: message.toString(), wasClean: this._closeFrameReceived && this._closeFrameSent }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'error') { wrapper = function onError(error) { const event = new ErrorEvent('error', { error, message: error.message }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'open') { wrapper = function onOpen() { const event = new Event('open'); event[kTarget] = this; callListener(handler, this, event); }; } else { return; } wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute]; wrapper[kListener] = handler; if (options.once) { this.once(type, wrapper); } else { this.on(type, wrapper); } }, /** * Remove an event listener. * * @param {String} type A string representing the event type to remove * @param {(Function|Object)} handler The listener to remove * @public */ removeEventListener(type, handler) { for (const listener of this.listeners(type)) { if (listener[kListener] === handler && !listener[kForOnEventAttribute]) { this.removeListener(type, listener); break; } } } }; module.exports = { CloseEvent, ErrorEvent, Event, EventTarget, MessageEvent }; /** * Call an event listener * * @param {(Function|Object)} listener The listener to call * @param {*} thisArg The value to use as `this`` when calling the listener * @param {Event} event The event to pass to the listener * @private */ function callListener(listener, thisArg, event) { if (typeof listener === 'object' && listener.handleEvent) { listener.handleEvent.call(listener, event); } else { listener.call(thisArg, event); } } €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource™'use strict'; const { kForOnEventAttribute, kListener } = require('./constants'); const kCode = Symbol('kCode'); const kData = Symbol('kData'); const kError = Symbol('kError'); const kMessage = Symbol('kMessage'); const kReason = Symbol('kReason'); const kTarget = Symbol('kTarget'); const kType = Symbol('kType'); const kWasClean = Symbol('kWasClean'); /** * Class representing an event. */ class Event { /** * Create a new `Event`. * * @param {String} type The name of the event * @throws {TypeError} If the `type` argument is not specified */ constructor(type) { this[kTarget] = null; this[kType] = type; } /** * @type {*} */ get target() { return this[kTarget]; } /** * @type {String} */ get type() { return this[kType]; } } Object.defineProperty(Event.prototype, 'target', { enumerable: true }); Object.defineProperty(Event.prototype, 'type', { enumerable: true }); /** * Class representing a close event. * * @extends Event */ class CloseEvent extends Event { /** * Create a new `CloseEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {Number} [options.code=0] The status code explaining why the * connection was closed * @param {String} [options.reason=''] A human-readable string explaining why * the connection was closed * @param {Boolean} [options.wasClean=false] Indicates whether or not the * connection was cleanly closed */ constructor(type, options = {}) { super(type); this[kCode] = options.code === undefined ? 0 : options.code; this[kReason] = options.reason === undefined ? '' : options.reason; this[kWasClean] = options.wasClean === undefined ? false : options.wasClean; } /** * @type {Number} */ get code() { return this[kCode]; } /** * @type {String} */ get reason() { return this[kReason]; } /** * @type {Boolean} */ get wasClean() { return this[kWasClean]; } } Object.defineProperty(CloseEvent.prototype, 'code', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true }); /** * Class representing an error event. * * @extends Event */ class ErrorEvent extends Event { /** * Create a new `ErrorEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.error=null] The error that generated this event * @param {String} [options.message=''] The error message */ constructor(type, options = {}) { super(type); this[kError] = options.error === undefined ? null : options.error; this[kMessage] = options.message === undefined ? '' : options.message; } /** * @type {*} */ get error() { return this[kError]; } /** * @type {String} */ get message() { return this[kMessage]; } } Object.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true }); Object.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true }); /** * Class representing a message event. * * @extends Event */ class MessageEvent extends Event { /** * Create a new `MessageEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.data=null] The message content */ constructor(type, options = {}) { super(type); this[kData] = options.data === undefined ? null : options.data; } /** * @type {*} */ get data() { return this[kData]; } } Object.defineProperty(MessageEvent.prototype, 'data', { enumerable: true }); /** * This provides methods for emulating the `EventTarget` interface. It's not * meant to be used directly. * * @mixin */ const EventTarget = { /** * Register an event listener. * * @param {String} type A string representing the event type to listen for * @param {(Function|Object)} handler The listener to add * @param {Object} [options] An options object specifies characteristics about * the event listener * @param {Boolean} [options.once=false] A `Boolean` indicating that the * listener should be invoked at most once after being added. If `true`, * the listener would be automatically removed when invoked. * @public */ addEventListener(type, handler, options = {}) { for (const listener of this.listeners(type)) { if ( !options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute] ) { return; } } let wrapper; if (type === 'message') { wrapper = function onMessage(data, isBinary) { const event = new MessageEvent('message', { data: isBinary ? data : data.toString() }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'close') { wrapper = function onClose(code, message) { const event = new CloseEvent('close', { code, reason: message.toString(), wasClean: this._closeFrameReceived && this._closeFrameSent }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'error') { wrapper = function onError(error) { const event = new ErrorEvent('error', { error, message: error.message }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'open') { wrapper = function onOpen() { const event = new Event('open'); event[kTarget] = this; callListener(handler, this, event); }; } else { return; } wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute]; wrapper[kListener] = handler; if (options.once) { this.once(type, wrapper); } else { this.on(type, wrapper); } }, /** * Remove an event listener. * * @param {String} type A string representing the event type to remove * @param {(Function|Object)} handler The listener to remove * @public */ removeEventListener(type, handler) { for (const listener of this.listeners(type)) { if (listener[kListener] === handler && !listener[kForOnEventAttribute]) { this.removeListener(type, listener); break; } } } }; module.exports = { CloseEvent, ErrorEvent, Event, EventTarget, MessageEvent }; /** * Call an event listener * * @param {(Function|Object)} listener The listener to call * @param {*} thisArg The value to use as `this`` when calling the listener * @param {Event} event The event to pass to the listener * @private */ function callListener(listener, thisArg, event) { if (typeof listener === 'object' && listener.handleEvent) { listener.handleEvent.call(listener, event); } else { listener.call(thisArg, event); } } >012undefined5965__webpack_require__undefined677915443undefined /***/ }) Fÿÿÿí/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; const { kForOnEventAttribute, kListener } = __webpack_require__(15443); const kCode = Symbol('kCode'); const kData = Symbol('kData'); const kError = Symbol('kError'); const kMessage = Symbol('kMessage'); const kReason = Symbol('kReason'); const kTarget = Symbol('kTarget'); const kType = Symbol('kType'); const kWasClean = Symbol('kWasClean'); /** * Class representing an event. */ class Event { /** * Create a new `Event`. * * @param {String} type The name of the event * @throws {TypeError} If the `type` argument is not specified */ constructor(type) { this[kTarget] = null; this[kType] = type; } /** * @type {*} */ get target() { return this[kTarget]; } /** * @type {String} */ get type() { return this[kType]; } } Object.defineProperty(Event.prototype, 'target', { enumerable: true }); Object.defineProperty(Event.prototype, 'type', { enumerable: true }); /** * Class representing a close event. * * @extends Event */ class CloseEvent extends Event { /** * Create a new `CloseEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {Number} [options.code=0] The status code explaining why the * connection was closed * @param {String} [options.reason=''] A human-readable string explaining why * the connection was closed * @param {Boolean} [options.wasClean=false] Indicates whether or not the * connection was cleanly closed */ constructor(type, options = {}) { super(type); this[kCode] = options.code === undefined ? 0 : options.code; this[kReason] = options.reason === undefined ? '' : options.reason; this[kWasClean] = options.wasClean === undefined ? false : options.wasClean; } /** * @type {Number} */ get code() { return this[kCode]; } /** * @type {String} */ get reason() { return this[kReason]; } /** * @type {Boolean} */ get wasClean() { return this[kWasClean]; } } Object.defineProperty(CloseEvent.prototype, 'code', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true }); /** * Class representing an error event. * * @extends Event */ class ErrorEvent extends Event { /** * Create a new `ErrorEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.error=null] The error that generated this event * @param {String} [options.message=''] The error message */ constructor(type, options = {}) { super(type); this[kError] = options.error === undefined ? null : options.error; this[kMessage] = options.message === undefined ? '' : options.message; } /** * @type {*} */ get error() { return this[kError]; } /** * @type {String} */ get message() { return this[kMessage]; } } Object.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true }); Object.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true }); /** * Class representing a message event. * * @extends Event */ class MessageEvent extends Event { /** * Create a new `MessageEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.data=null] The message content */ constructor(type, options = {}) { super(type); this[kData] = options.data === undefined ? null : options.data; } /** * @type {*} */ get data() { return this[kData]; } } Object.defineProperty(MessageEvent.prototype, 'data', { enumerable: true }); /** * This provides methods for emulating the `EventTarget` interface. It's not * meant to be used directly. * * @mixin */ const EventTarget = { /** * Register an event listener. * * @param {String} type A string representing the event type to listen for * @param {(Function|Object)} handler The listener to add * @param {Object} [options] An options object specifies characteristics about * the event listener * @param {Boolean} [options.once=false] A `Boolean` indicating that the * listener should be invoked at most once after being added. If `true`, * the listener would be automatically removed when invoked. * @public */ addEventListener(type, handler, options = {}) { for (const listener of this.listeners(type)) { if ( !options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute] ) { return; } } let wrapper; if (type === 'message') { wrapper = function onMessage(data, isBinary) { const event = new MessageEvent('message', { data: isBinary ? data : data.toString() }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'close') { wrapper = function onClose(code, message) { const event = new CloseEvent('close', { code, reason: message.toString(), wasClean: this._closeFrameReceived && this._closeFrameSent }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'error') { wrapper = function onError(error) { const event = new ErrorEvent('error', { error, message: error.message }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'open') { wrapper = function onOpen() { const event = new Event('open'); event[kTarget] = this; callListener(handler, this, event); }; } else { return; } wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute]; wrapper[kListener] = handler; if (options.once) { this.once(type, wrapper); } else { this.on(type, wrapper); } }, /** * Remove an event listener. * * @param {String} type A string representing the event type to remove * @param {(Function|Object)} handler The listener to remove * @public */ removeEventListener(type, handler) { for (const listener of this.listeners(type)) { if (listener[kListener] === handler && !listener[kForOnEventAttribute]) { this.removeListener(type, listener); break; } } } }; module.exports = { CloseEvent, ErrorEvent, Event, EventTarget, MessageEvent }; /** * Call an event listener * * @param {(Function|Object)} listener The listener to call * @param {*} thisArg The value to use as `this`` when calling the listener * @param {Event} event The event to pass to the listener * @private */ function callListener(listener, thisArg, event) { if (typeof listener === 'object' && listener.handleEvent) { listener.handleEvent.call(listener, event); } else { listener.call(thisArg, event); } } /***/ }) GÿÿÿJÿÿÿ Kÿÿÿ¸Mÿÿÿ™'use strict'; const { kForOnEventAttribute, kListener } = require('./constants'); const kCode = Symbol('kCode'); const kData = Symbol('kData'); const kError = Symbol('kError'); const kMessage = Symbol('kMessage'); const kReason = Symbol('kReason'); const kTarget = Symbol('kTarget'); const kType = Symbol('kType'); const kWasClean = Symbol('kWasClean'); /** * Class representing an event. */ class Event { /** * Create a new `Event`. * * @param {String} type The name of the event * @throws {TypeError} If the `type` argument is not specified */ constructor(type) { this[kTarget] = null; this[kType] = type; } /** * @type {*} */ get target() { return this[kTarget]; } /** * @type {String} */ get type() { return this[kType]; } } Object.defineProperty(Event.prototype, 'target', { enumerable: true }); Object.defineProperty(Event.prototype, 'type', { enumerable: true }); /** * Class representing a close event. * * @extends Event */ class CloseEvent extends Event { /** * Create a new `CloseEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {Number} [options.code=0] The status code explaining why the * connection was closed * @param {String} [options.reason=''] A human-readable string explaining why * the connection was closed * @param {Boolean} [options.wasClean=false] Indicates whether or not the * connection was cleanly closed */ constructor(type, options = {}) { super(type); this[kCode] = options.code === undefined ? 0 : options.code; this[kReason] = options.reason === undefined ? '' : options.reason; this[kWasClean] = options.wasClean === undefined ? false : options.wasClean; } /** * @type {Number} */ get code() { return this[kCode]; } /** * @type {String} */ get reason() { return this[kReason]; } /** * @type {Boolean} */ get wasClean() { return this[kWasClean]; } } Object.defineProperty(CloseEvent.prototype, 'code', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true }); Object.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true }); /** * Class representing an error event. * * @extends Event */ class ErrorEvent extends Event { /** * Create a new `ErrorEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.error=null] The error that generated this event * @param {String} [options.message=''] The error message */ constructor(type, options = {}) { super(type); this[kError] = options.error === undefined ? null : options.error; this[kMessage] = options.message === undefined ? '' : options.message; } /** * @type {*} */ get error() { return this[kError]; } /** * @type {String} */ get message() { return this[kMessage]; } } Object.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true }); Object.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true }); /** * Class representing a message event. * * @extends Event */ class MessageEvent extends Event { /** * Create a new `MessageEvent`. * * @param {String} type The name of the event * @param {Object} [options] A dictionary object that allows for setting * attributes via object members of the same name * @param {*} [options.data=null] The message content */ constructor(type, options = {}) { super(type); this[kData] = options.data === undefined ? null : options.data; } /** * @type {*} */ get data() { return this[kData]; } } Object.defineProperty(MessageEvent.prototype, 'data', { enumerable: true }); /** * This provides methods for emulating the `EventTarget` interface. It's not * meant to be used directly. * * @mixin */ const EventTarget = { /** * Register an event listener. * * @param {String} type A string representing the event type to listen for * @param {(Function|Object)} handler The listener to add * @param {Object} [options] An options object specifies characteristics about * the event listener * @param {Boolean} [options.once=false] A `Boolean` indicating that the * listener should be invoked at most once after being added. If `true`, * the listener would be automatically removed when invoked. * @public */ addEventListener(type, handler, options = {}) { for (const listener of this.listeners(type)) { if ( !options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute] ) { return; } } let wrapper; if (type === 'message') { wrapper = function onMessage(data, isBinary) { const event = new MessageEvent('message', { data: isBinary ? data : data.toString() }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'close') { wrapper = function onClose(code, message) { const event = new CloseEvent('close', { code, reason: message.toString(), wasClean: this._closeFrameReceived && this._closeFrameSent }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'error') { wrapper = function onError(error) { const event = new ErrorEvent('error', { error, message: error.message }); event[kTarget] = this; callListener(handler, this, event); }; } else if (type === 'open') { wrapper = function onOpen() { const event = new Event('open'); event[kTarget] = this; callListener(handler, this, event); }; } else { return; } wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute]; wrapper[kListener] = handler; if (options.once) { this.once(type, wrapper); } else { this.on(type, wrapper); } }, /** * Remove an event listener. * * @param {String} type A string representing the event type to remove * @param {(Function|Object)} handler The listener to remove * @public */ removeEventListener(type, handler) { for (const listener of this.listeners(type)) { if (listener[kListener] === handler && !listener[kForOnEventAttribute]) { this.removeListener(type, listener); break; } } } }; module.exports = { CloseEvent, ErrorEvent, Event, EventTarget, MessageEvent }; /** * Call an event listener * * @param {(Function|Object)} listener The listener to call * @param {*} thisArg The value to use as `this`` when calling the listener * @param {Event} event The event to pass to the listener * @private */ function callListener(listener, thisArg, event) { if (typeof listener === 'object' && listener.handleEvent) { listener.handleEvent.call(listener, event); } else { listener.call(thisArg, event); } } >012undefined5965__webpack_require__undefined677915443undefinedNÿÿÿOÿÿÿ, /***/ 7342:  ç«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource û«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource¢"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "invalidateCacheByRouterState", { enumerable: true, get: function() { return invalidateCacheByRouterState; } }); const _createroutercachekey = require("./create-router-cache-key"); function invalidateCacheByRouterState(newCache, existingCache, routerState) { // Remove segment that we got data for so that it is filled in during rendering of rsc. for(const key in routerState[1]){ const segmentForParallelRoute = routerState[1][key][0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key); if (existingParallelRoutesCacheNode) { let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode); parallelRouteCacheNode.delete(cacheKey); newCache.parallelRoutes.set(key, parallelRouteCacheNode); } } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=invalidate-cache-by-router-state.js.map e :NNQFòò5€®Object.defineProperty(exports, "__esModule", (‚))ÀObject.defineProperty(exports, "invalidateCacheByRouterState", (þ“__webpack_require__…82521€†buffer†source„size„maps„hash Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "invalidateCacheByRouterState", ({ enumerable: true, get: function() { return invalidateCacheByRouterState; } })); const _createroutercachekey = __webpack_require__(82521); function invalidateCacheByRouterState(newCache, existingCache, routerState) { // Remove segment that we got data for so that it is filled in during rendering of rsc. for(const key in routerState[1]){ const segmentForParallelRoute = routerState[1][key][0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key); if (existingParallelRoutesCacheNode) { let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode); parallelRouteCacheNode.delete(cacheKey); newCache.parallelRoutes.set(key, parallelRouteCacheNode); } } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=invalidate-cache-by-router-state.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource¢"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "invalidateCacheByRouterState", { enumerable: true, get: function() { return invalidateCacheByRouterState; } }); const _createroutercachekey = require("./create-router-cache-key"); function invalidateCacheByRouterState(newCache, existingCache, routerState) { // Remove segment that we got data for so that it is filled in during rendering of rsc. for(const key in routerState[1]){ const segmentForParallelRoute = routerState[1][key][0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key); if (existingParallelRoutesCacheNode) { let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode); parallelRouteCacheNode.delete(cacheKey); newCache.parallelRoutes.set(key, parallelRouteCacheNode); } } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=invalidate-cache-by-router-state.js.map ë012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81143Object.defineProperty(exports, "invalidateCacheByRouterState", (undefined242242))undefined275281__webpack_require__undefined28330982521undefined /***/ }) <ÿÿÿÛ/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "invalidateCacheByRouterState", ({ enumerable: true, get: function() { return invalidateCacheByRouterState; } })); const _createroutercachekey = __webpack_require__(82521); function invalidateCacheByRouterState(newCache, existingCache, routerState) { // Remove segment that we got data for so that it is filled in during rendering of rsc. for(const key in routerState[1]){ const segmentForParallelRoute = routerState[1][key][0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key); if (existingParallelRoutesCacheNode) { let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode); parallelRouteCacheNode.delete(cacheKey); newCache.parallelRoutes.set(key, parallelRouteCacheNode); } } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=invalidate-cache-by-router-state.js.map /***/ }) =ÿÿÿ@ÿÿÿ AÿÿÿBÿÿÿCÿÿÿ¢"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "invalidateCacheByRouterState", { enumerable: true, get: function() { return invalidateCacheByRouterState; } }); const _createroutercachekey = require("./create-router-cache-key"); function invalidateCacheByRouterState(newCache, existingCache, routerState) { // Remove segment that we got data for so that it is filled in during rendering of rsc. for(const key in routerState[1]){ const segmentForParallelRoute = routerState[1][key][0]; const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute); const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key); if (existingParallelRoutesCacheNode) { let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode); parallelRouteCacheNode.delete(cacheKey); newCache.parallelRoutes.set(key, parallelRouteCacheNode); } } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=invalidate-cache-by-router-state.js.map ë012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81143Object.defineProperty(exports, "invalidateCacheByRouterState", (undefined242242))undefined275281__webpack_require__undefined28330982521undefinedDÿÿÿEÿÿÿ, /***/ 7440:  K-«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource L«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource¼ /** @internal */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ReadonlyURLSearchParams: null, RedirectType: null, forbidden: null, notFound: null, permanentRedirect: null, redirect: null, unauthorized: null, unstable_isUnrecognizedActionError: null, unstable_rethrow: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ReadonlyURLSearchParams: function() { return ReadonlyURLSearchParams; }, RedirectType: function() { return _redirecterror.RedirectType; }, forbidden: function() { return _forbidden.forbidden; }, notFound: function() { return _notfound.notFound; }, permanentRedirect: function() { return _redirect.permanentRedirect; }, redirect: function() { return _redirect.redirect; }, unauthorized: function() { return _unauthorized.unauthorized; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; }, unstable_rethrow: function() { return _unstablerethrow.unstable_rethrow; } }); const _redirect = require("./redirect"); const _redirecterror = require("./redirect-error"); const _notfound = require("./not-found"); const _forbidden = require("./forbidden"); const _unauthorized = require("./unauthorized"); const _unstablerethrow = require("./unstable-rethrow"); class ReadonlyURLSearchParamsError extends Error { constructor(){ super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'); } } class ReadonlyURLSearchParams extends URLSearchParams { /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() { throw new ReadonlyURLSearchParamsError(); } } function unstable_isUnrecognizedActionError() { throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", { value: "E776", enumerable: false, configurable: true }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigation.react-server.js.map gK__hXq&,.9TZ\mƒ‰‹—®´¶ÂÜâäó+€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__„4873þ…79650ý…68597ü…83224û…27683ú…13075€†buffer†source„size„maps„hash± /** @internal */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ReadonlyURLSearchParams: function() { return ReadonlyURLSearchParams; }, RedirectType: function() { return _redirecterror.RedirectType; }, forbidden: function() { return _forbidden.forbidden; }, notFound: function() { return _notfound.notFound; }, permanentRedirect: function() { return _redirect.permanentRedirect; }, redirect: function() { return _redirect.redirect; }, unauthorized: function() { return _unauthorized.unauthorized; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; }, unstable_rethrow: function() { return _unstablerethrow.unstable_rethrow; } }); const _redirect = __webpack_require__(4873); const _redirecterror = __webpack_require__(79650); const _notfound = __webpack_require__(68597); const _forbidden = __webpack_require__(83224); const _unauthorized = __webpack_require__(27683); const _unstablerethrow = __webpack_require__(13075); class ReadonlyURLSearchParamsError extends Error { constructor(){ super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'); } } class ReadonlyURLSearchParams extends URLSearchParams { /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() { throw new ReadonlyURLSearchParamsError(); } } function unstable_isUnrecognizedActionError() { throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", { value: "E776", enumerable: false, configurable: true }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigation.react-server.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource¼ /** @internal */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ReadonlyURLSearchParams: null, RedirectType: null, forbidden: null, notFound: null, permanentRedirect: null, redirect: null, unauthorized: null, unstable_isUnrecognizedActionError: null, unstable_rethrow: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ReadonlyURLSearchParams: function() { return ReadonlyURLSearchParams; }, RedirectType: function() { return _redirecterror.RedirectType; }, forbidden: function() { return _forbidden.forbidden; }, notFound: function() { return _notfound.notFound; }, permanentRedirect: function() { return _redirect.permanentRedirect; }, redirect: function() { return _redirect.redirect; }, unauthorized: function() { return _unauthorized.unauthorized; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; }, unstable_rethrow: function() { return _unstablerethrow.unstable_rethrow; } }); const _redirect = require("./redirect"); const _redirecterror = require("./redirect-error"); const _notfound = require("./not-found"); const _forbidden = require("./forbidden"); const _unauthorized = require("./unauthorized"); const _unstablerethrow = require("./unstable-rethrow"); class ReadonlyURLSearchParamsError extends Error { constructor(){ super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'); } } class ReadonlyURLSearchParams extends URLSearchParams { /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() { throw new ReadonlyURLSearchParamsError(); } } function unstable_isUnrecognizedActionError() { throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", { value: "E776", enumerable: false, configurable: true }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigation.react-server.js.map Â1729undefined3175Object.defineProperty(exports, "__esModule", (undefined9595))undefined1043690undefined13181324__webpack_require__undefined132613374873undefined13641370__webpack_require__undefined1372138979650undefined14111417__webpack_require__undefined1419143168597undefined14541460__webpack_require__undefined1462147483224undefined15001506__webpack_require__undefined1508152327683undefined15521558__webpack_require__undefined1560157913075undefined /***/ }) 2ÿÿÿý /***/ ((module, exports, __webpack_require__) => { "use strict"; /** @internal */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ReadonlyURLSearchParams: function() { return ReadonlyURLSearchParams; }, RedirectType: function() { return _redirecterror.RedirectType; }, forbidden: function() { return _forbidden.forbidden; }, notFound: function() { return _notfound.notFound; }, permanentRedirect: function() { return _redirect.permanentRedirect; }, redirect: function() { return _redirect.redirect; }, unauthorized: function() { return _unauthorized.unauthorized; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; }, unstable_rethrow: function() { return _unstablerethrow.unstable_rethrow; } }); const _redirect = __webpack_require__(4873); const _redirecterror = __webpack_require__(79650); const _notfound = __webpack_require__(68597); const _forbidden = __webpack_require__(83224); const _unauthorized = __webpack_require__(27683); const _unstablerethrow = __webpack_require__(13075); class ReadonlyURLSearchParamsError extends Error { constructor(){ super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'); } } class ReadonlyURLSearchParams extends URLSearchParams { /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() { throw new ReadonlyURLSearchParamsError(); } } function unstable_isUnrecognizedActionError() { throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", { value: "E776", enumerable: false, configurable: true }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigation.react-server.js.map /***/ }) 3ÿÿÿ6ÿÿÿ 7ÿÿÿ8ÿÿÿ9ÿÿÿ¼ /** @internal */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ReadonlyURLSearchParams: null, RedirectType: null, forbidden: null, notFound: null, permanentRedirect: null, redirect: null, unauthorized: null, unstable_isUnrecognizedActionError: null, unstable_rethrow: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ReadonlyURLSearchParams: function() { return ReadonlyURLSearchParams; }, RedirectType: function() { return _redirecterror.RedirectType; }, forbidden: function() { return _forbidden.forbidden; }, notFound: function() { return _notfound.notFound; }, permanentRedirect: function() { return _redirect.permanentRedirect; }, redirect: function() { return _redirect.redirect; }, unauthorized: function() { return _unauthorized.unauthorized; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; }, unstable_rethrow: function() { return _unstablerethrow.unstable_rethrow; } }); const _redirect = require("./redirect"); const _redirecterror = require("./redirect-error"); const _notfound = require("./not-found"); const _forbidden = require("./forbidden"); const _unauthorized = require("./unauthorized"); const _unstablerethrow = require("./unstable-rethrow"); class ReadonlyURLSearchParamsError extends Error { constructor(){ super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'); } } class ReadonlyURLSearchParams extends URLSearchParams { /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() { throw new ReadonlyURLSearchParamsError(); } } function unstable_isUnrecognizedActionError() { throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", { value: "E776", enumerable: false, configurable: true }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigation.react-server.js.map Â1729undefined3175Object.defineProperty(exports, "__esModule", (undefined9595))undefined1043690undefined13181324__webpack_require__undefined132613374873undefined13641370__webpack_require__undefined1372138979650undefined14111417__webpack_require__undefined1419143168597undefined14541460__webpack_require__undefined1462147483224undefined15001506__webpack_require__undefined1508152327683undefined15521558__webpack_require__undefined1560157913075undefined:ÿÿÿ;ÿÿÿ, /***/ 7818:  ÷K«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource4/***/ ((module, exports, __webpack_require__) => { «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource [«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource×/* eslint-env browser */ /** * This is the web browser implementation of `debug()`. */ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } }; })(); /** * Colors. */ exports.colors = [ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ // eslint-disable-next-line complexity function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { return true; } // Internet Explorer and Edge do not support colors. if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } let m; // Is webkit? http://stackoverflow.com/a/16459606/376773 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 // eslint-disable-next-line no-return-assign return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || // Is firebug? http://stackoverflow.com/a/398120/376773 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || // Is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || // Double check webkit in userAgent just in case we are in a worker (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** * Colorize log arguments if enabled. * * @api public */ function formatArgs(args) { args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); if (!this.useColors) { return; } const c = 'color: ' + this.color; args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, match => { if (match === '%%') { return; } index++; if (match === '%c') { // We only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); args.splice(lastC, 0, c); } /** * Invokes `console.debug()` when available. * No-op when `console.debug` is not a "function". * If `console.debug` is not available, falls back * to `console.log`. * * @api public */ exports.log = console.debug || console.log || (() => {}); /** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces) { try { if (namespaces) { exports.storage.setItem('debug', namespaces); } else { exports.storage.removeItem('debug'); } } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load() { let r; try { r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } // If debug isn't set in LS, and we're in Electron, try to load $DEBUG if (!r && typeof process !== 'undefined' && 'env' in process) { r = process.env.DEBUG; } return r; } /** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage() { try { // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context // The Browser also has localStorage in the global context. return localStorage; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } module.exports = require('./common')(exports); const {formatters} = module.exports; /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ formatters.j = function (v) { try { return JSON.stringify(v); } catch (error) { return '[UnexpectedJSONParseError]: ' + error.message; } };  b[l|P‡‘œ¦¶ÅÓçõ'©¯±º’exports.formatArgsŒexports.saveŒexports.load‘exports.useColorsexports.storageexports.destroyŽexports.colors‹exports.log“__webpack_require__…35553€†buffer†source„size„maps„hashÞ/* eslint-env browser */ /** * This is the web browser implementation of `debug()`. */ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } }; })(); /** * Colors. */ exports.colors = [ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ // eslint-disable-next-line complexity function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { return true; } // Internet Explorer and Edge do not support colors. if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } let m; // Is webkit? http://stackoverflow.com/a/16459606/376773 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 // eslint-disable-next-line no-return-assign return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || // Is firebug? http://stackoverflow.com/a/398120/376773 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || // Is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || // Double check webkit in userAgent just in case we are in a worker (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** * Colorize log arguments if enabled. * * @api public */ function formatArgs(args) { args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); if (!this.useColors) { return; } const c = 'color: ' + this.color; args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, match => { if (match === '%%') { return; } index++; if (match === '%c') { // We only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); args.splice(lastC, 0, c); } /** * Invokes `console.debug()` when available. * No-op when `console.debug` is not a "function". * If `console.debug` is not available, falls back * to `console.log`. * * @api public */ exports.log = console.debug || console.log || (() => {}); /** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces) { try { if (namespaces) { exports.storage.setItem('debug', namespaces); } else { exports.storage.removeItem('debug'); } } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load() { let r; try { r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } // If debug isn't set in LS, and we're in Electron, try to load $DEBUG if (!r && typeof process !== 'undefined' && 'env' in process) { r = process.env.DEBUG; } return r; } /** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage() { try { // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context // The Browser also has localStorage in the global context. return localStorage; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } module.exports = __webpack_require__(35553)(exports); const {formatters} = module.exports; /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ formatters.j = function (v) { try { return JSON.stringify(v); } catch (error) { return '[UnexpectedJSONParseError]: ' + error.message; } }; €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource×/* eslint-env browser */ /** * This is the web browser implementation of `debug()`. */ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } }; })(); /** * Colors. */ exports.colors = [ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ // eslint-disable-next-line complexity function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { return true; } // Internet Explorer and Edge do not support colors. if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } let m; // Is webkit? http://stackoverflow.com/a/16459606/376773 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 // eslint-disable-next-line no-return-assign return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || // Is firebug? http://stackoverflow.com/a/398120/376773 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || // Is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || // Double check webkit in userAgent just in case we are in a worker (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** * Colorize log arguments if enabled. * * @api public */ function formatArgs(args) { args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); if (!this.useColors) { return; } const c = 'color: ' + this.color; args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, match => { if (match === '%%') { return; } index++; if (match === '%c') { // We only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); args.splice(lastC, 0, c); } /** * Invokes `console.debug()` when available. * No-op when `console.debug` is not a "function". * If `console.debug` is not available, falls back * to `console.log`. * * @api public */ exports.log = console.debug || console.log || (() => {}); /** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces) { try { if (namespaces) { exports.storage.setItem('debug', namespaces); } else { exports.storage.removeItem('debug'); } } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load() { let r; try { r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } // If debug isn't set in LS, and we're in Electron, try to load $DEBUG if (!r && typeof process !== 'undefined' && 'env' in process) { r = process.env.DEBUG; } return r; } /** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage() { try { // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context // The Browser also has localStorage in the global context. return localStorage; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } module.exports = require('./common')(exports); const {formatters} = module.exports; /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ formatters.j = function (v) { try { return JSON.stringify(v); } catch (error) { return '[UnexpectedJSONParseError]: ' + error.message; } }; %91108exports.formatArgsundefined124135exports.saveundefined145156exports.loadundefined166182exports.useColorsundefined197211exports.storageundefined231245exports.destroyundefined520533exports.colorsundefined43814391exports.logundefined58015807__webpack_require__undefined5809581835553undefined /***/ }) (ÿÿÿ/***/ ((module, exports, __webpack_require__) => { /* eslint-env browser */ /** * This is the web browser implementation of `debug()`. */ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } }; })(); /** * Colors. */ exports.colors = [ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ // eslint-disable-next-line complexity function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { return true; } // Internet Explorer and Edge do not support colors. if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } let m; // Is webkit? http://stackoverflow.com/a/16459606/376773 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 // eslint-disable-next-line no-return-assign return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || // Is firebug? http://stackoverflow.com/a/398120/376773 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || // Is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || // Double check webkit in userAgent just in case we are in a worker (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** * Colorize log arguments if enabled. * * @api public */ function formatArgs(args) { args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); if (!this.useColors) { return; } const c = 'color: ' + this.color; args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, match => { if (match === '%%') { return; } index++; if (match === '%c') { // We only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); args.splice(lastC, 0, c); } /** * Invokes `console.debug()` when available. * No-op when `console.debug` is not a "function". * If `console.debug` is not available, falls back * to `console.log`. * * @api public */ exports.log = console.debug || console.log || (() => {}); /** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces) { try { if (namespaces) { exports.storage.setItem('debug', namespaces); } else { exports.storage.removeItem('debug'); } } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load() { let r; try { r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } // If debug isn't set in LS, and we're in Electron, try to load $DEBUG if (!r && typeof process !== 'undefined' && 'env' in process) { r = process.env.DEBUG; } return r; } /** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage() { try { // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context // The Browser also has localStorage in the global context. return localStorage; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } module.exports = __webpack_require__(35553)(exports); const {formatters} = module.exports; /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ formatters.j = function (v) { try { return JSON.stringify(v); } catch (error) { return '[UnexpectedJSONParseError]: ' + error.message; } }; /***/ }) )ÿÿÿ,ÿÿÿ -ÿÿÿ4/***/ ((module, exports, __webpack_require__) => { .ÿÿÿ×/* eslint-env browser */ /** * This is the web browser implementation of `debug()`. */ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } }; })(); /** * Colors. */ exports.colors = [ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ // eslint-disable-next-line complexity function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { return true; } // Internet Explorer and Edge do not support colors. if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } let m; // Is webkit? http://stackoverflow.com/a/16459606/376773 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 // eslint-disable-next-line no-return-assign return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || // Is firebug? http://stackoverflow.com/a/398120/376773 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || // Is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || // Double check webkit in userAgent just in case we are in a worker (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** * Colorize log arguments if enabled. * * @api public */ function formatArgs(args) { args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); if (!this.useColors) { return; } const c = 'color: ' + this.color; args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, match => { if (match === '%%') { return; } index++; if (match === '%c') { // We only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); args.splice(lastC, 0, c); } /** * Invokes `console.debug()` when available. * No-op when `console.debug` is not a "function". * If `console.debug` is not available, falls back * to `console.log`. * * @api public */ exports.log = console.debug || console.log || (() => {}); /** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces) { try { if (namespaces) { exports.storage.setItem('debug', namespaces); } else { exports.storage.removeItem('debug'); } } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load() { let r; try { r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } // If debug isn't set in LS, and we're in Electron, try to load $DEBUG if (!r && typeof process !== 'undefined' && 'env' in process) { r = process.env.DEBUG; } return r; } /** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage() { try { // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context // The Browser also has localStorage in the global context. return localStorage; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } module.exports = require('./common')(exports); const {formatters} = module.exports; /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ formatters.j = function (v) { try { return JSON.stringify(v); } catch (error) { return '[UnexpectedJSONParseError]: ' + error.message; } }; %91108exports.formatArgsundefined124135exports.saveundefined145156exports.loadundefined166182exports.useColorsundefined197211exports.storageundefined231245exports.destroyundefined520533exports.colorsundefined43814391exports.logundefined58015807__webpack_require__undefined5809581835553undefined/ÿÿÿ0ÿÿÿ, /***/ 8517:  ¦«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ý«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DEFAULT_SEGMENT_KEY: null, PAGE_SEGMENT_KEY: null, addSearchParamsIfPageSegment: null, isGroupSegment: null, isParallelRouteSegment: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_SEGMENT_KEY: function() { return DEFAULT_SEGMENT_KEY; }, PAGE_SEGMENT_KEY: function() { return PAGE_SEGMENT_KEY; }, addSearchParamsIfPageSegment: function() { return addSearchParamsIfPageSegment; }, isGroupSegment: function() { return isGroupSegment; }, isParallelRouteSegment: function() { return isParallelRouteSegment; } }); function isGroupSegment(segment) { // Use array[0] for performant purpose return segment[0] === '(' && segment.endsWith(')'); } function isParallelRouteSegment(segment) { return segment.startsWith('@') && segment !== '@children'; } function addSearchParamsIfPageSegment(segment, searchParams) { const isPageSegment = segment.includes(PAGE_SEGMENT_KEY); if (isPageSegment) { const stringifiedQuery = JSON.stringify(searchParams); return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY; } return segment; } const PAGE_SEGMENT_KEY = '__PAGE__'; const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map e :NNW@€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hash^ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_SEGMENT_KEY: function() { return DEFAULT_SEGMENT_KEY; }, PAGE_SEGMENT_KEY: function() { return PAGE_SEGMENT_KEY; }, addSearchParamsIfPageSegment: function() { return addSearchParamsIfPageSegment; }, isGroupSegment: function() { return isGroupSegment; }, isParallelRouteSegment: function() { return isParallelRouteSegment; } }); function isGroupSegment(segment) { // Use array[0] for performant purpose return segment[0] === '(' && segment.endsWith(')'); } function isParallelRouteSegment(segment) { return segment.startsWith('@') && segment !== '@children'; } function addSearchParamsIfPageSegment(segment, searchParams) { const isPageSegment = segment.includes(PAGE_SEGMENT_KEY); if (isPageSegment) { const stringifiedQuery = JSON.stringify(searchParams); return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY; } return segment; } const PAGE_SEGMENT_KEY = '__PAGE__'; const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DEFAULT_SEGMENT_KEY: null, PAGE_SEGMENT_KEY: null, addSearchParamsIfPageSegment: null, isGroupSegment: null, isParallelRouteSegment: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_SEGMENT_KEY: function() { return DEFAULT_SEGMENT_KEY; }, PAGE_SEGMENT_KEY: function() { return PAGE_SEGMENT_KEY; }, addSearchParamsIfPageSegment: function() { return addSearchParamsIfPageSegment; }, isGroupSegment: function() { return isGroupSegment; }, isParallelRouteSegment: function() { return isParallelRouteSegment; } }); function isGroupSegment(segment) { // Use array[0] for performant purpose return segment[0] === '(' && segment.endsWith(')'); } function isParallelRouteSegment(segment) { return segment.startsWith('@') && segment !== '@children'; } function addSearchParamsIfPageSegment(segment, searchParams) { const isPageSegment = segment.includes(PAGE_SEGMENT_KEY); if (isPageSegment) { const stringifiedQuery = JSON.stringify(searchParams); return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY; } return segment; } const PAGE_SEGMENT_KEY = '__PAGE__'; const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872640undefined /***/ }) ÿÿÿ¦/***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_SEGMENT_KEY: function() { return DEFAULT_SEGMENT_KEY; }, PAGE_SEGMENT_KEY: function() { return PAGE_SEGMENT_KEY; }, addSearchParamsIfPageSegment: function() { return addSearchParamsIfPageSegment; }, isGroupSegment: function() { return isGroupSegment; }, isParallelRouteSegment: function() { return isParallelRouteSegment; } }); function isGroupSegment(segment) { // Use array[0] for performant purpose return segment[0] === '(' && segment.endsWith(')'); } function isParallelRouteSegment(segment) { return segment.startsWith('@') && segment !== '@children'; } function addSearchParamsIfPageSegment(segment, searchParams) { const isPageSegment = segment.includes(PAGE_SEGMENT_KEY); if (isPageSegment) { const stringifiedQuery = JSON.stringify(searchParams); return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY; } return segment; } const PAGE_SEGMENT_KEY = '__PAGE__'; const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map /***/ }) ÿÿÿ!ÿÿÿ "ÿÿÿeÿÿÿ$ÿÿÿ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DEFAULT_SEGMENT_KEY: null, PAGE_SEGMENT_KEY: null, addSearchParamsIfPageSegment: null, isGroupSegment: null, isParallelRouteSegment: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_SEGMENT_KEY: function() { return DEFAULT_SEGMENT_KEY; }, PAGE_SEGMENT_KEY: function() { return PAGE_SEGMENT_KEY; }, addSearchParamsIfPageSegment: function() { return addSearchParamsIfPageSegment; }, isGroupSegment: function() { return isGroupSegment; }, isParallelRouteSegment: function() { return isParallelRouteSegment; } }); function isGroupSegment(segment) { // Use array[0] for performant purpose return segment[0] === '(' && segment.endsWith(')'); } function isParallelRouteSegment(segment) { return segment.startsWith('@') && segment !== '@children'; } function addSearchParamsIfPageSegment(segment, searchParams) { const isPageSegment = segment.includes(PAGE_SEGMENT_KEY); if (isPageSegment) { const stringifiedQuery = JSON.stringify(searchParams); return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY; } return segment; } const PAGE_SEGMENT_KEY = '__PAGE__'; const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872640undefined%ÿÿÿ&ÿÿÿ, /***/ 9344:  é«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Š«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource–"use strict"; module.exports = require('../../module.compiled').vendored['contexts'].AppRouterContext; //# sourceMappingURL=app-router-context.js.map b d€Îmodule.exports = __webpack_require__(83935).vendored.contexts.AppRouterContext€†buffer†source„size„maps„hash€ module.exports = __webpack_require__(83935).vendored.contexts.AppRouterContext; //# sourceMappingURL=app-router-context.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource–"use strict"; module.exports = require('../../module.compiled').vendored['contexts'].AppRouterContext; //# sourceMappingURL=app-router-context.js.maph012undefined14100module.exports = __webpack_require__(83935).vendored.contexts.AppRouterContextundefined /***/ }) ÿÿÿÝ/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; module.exports = __webpack_require__(83935).vendored.contexts.AppRouterContext; //# sourceMappingURL=app-router-context.js.map /***/ }) ÿÿÿÿÿÿ ÿÿÿ…ÿÿÿ–"use strict"; module.exports = require('../../module.compiled').vendored['contexts'].AppRouterContext; //# sourceMappingURL=app-router-context.js.maph012undefined14100module.exports = __webpack_require__(83935).vendored.contexts.AppRouterContextundefinedÿÿÿÿÿÿ, /***/ 9536:  í«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ? «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource½"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "AlternatesMetadata", { enumerable: true, get: function() { return AlternatesMetadata; } }); const _jsxruntime = require("react/jsx-runtime"); const _react = /*#__PURE__*/ _interop_require_default(require("react")); const _meta = require("./meta"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function AlternateLink({ descriptor, ...props }) { if (!descriptor.url) return null; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { ...props, ...descriptor.title && { title: descriptor.title }, href: descriptor.url.toString() }); } function AlternatesMetadata({ alternates }) { if (!alternates) return null; const { canonical, languages, media, types } = alternates; return (0, _meta.MetaFilter)([ canonical ? AlternateLink({ rel: 'canonical', descriptor: canonical }) : null, languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', hrefLang: locale, descriptor }))) : null, media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', media: mediaName, descriptor }))) : null, types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', type, descriptor }))) : null ]); } //# sourceMappingURL=alternate.js.map g :NNQN…ÞÞõûýIOQWjpry€®Object.defineProperty(exports, "__esModule", (‚))¶Object.defineProperty(exports, "AlternatesMetadata", (þ“__webpack_require__„5939þ…11110ý…66837€†buffer†source„size„maps„hashÄ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "AlternatesMetadata", ({ enumerable: true, get: function() { return AlternatesMetadata; } })); const _jsxruntime = __webpack_require__(5939); const _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(11110)); const _meta = __webpack_require__(66837); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function AlternateLink({ descriptor, ...props }) { if (!descriptor.url) return null; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { ...props, ...descriptor.title && { title: descriptor.title }, href: descriptor.url.toString() }); } function AlternatesMetadata({ alternates }) { if (!alternates) return null; const { canonical, languages, media, types } = alternates; return (0, _meta.MetaFilter)([ canonical ? AlternateLink({ rel: 'canonical', descriptor: canonical }) : null, languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', hrefLang: locale, descriptor }))) : null, media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', media: mediaName, descriptor }))) : null, types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', type, descriptor }))) : null ]); } //# sourceMappingURL=alternate.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource½"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "AlternatesMetadata", { enumerable: true, get: function() { return AlternatesMetadata; } }); const _jsxruntime = require("react/jsx-runtime"); const _react = /*#__PURE__*/ _interop_require_default(require("react")); const _meta = require("./meta"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function AlternateLink({ descriptor, ...props }) { if (!descriptor.url) return null; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { ...props, ...descriptor.title && { title: descriptor.title }, href: descriptor.url.toString() }); } function AlternatesMetadata({ alternates }) { if (!alternates) return null; const { canonical, languages, media, types } = alternates; return (0, _meta.MetaFilter)([ canonical ? AlternateLink({ rel: 'canonical', descriptor: canonical }) : null, languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', hrefLang: locale, descriptor }))) : null, media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', media: mediaName, descriptor }))) : null, types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', type, descriptor }))) : null ]); } //# sourceMappingURL=alternate.js.mapL012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81133Object.defineProperty(exports, "AlternatesMetadata", (undefined222222))undefined245251__webpack_require__undefined2532715939undefined329335__webpack_require__undefined33734311110undefined362368__webpack_require__undefined37037766837undefined /***/ })  ÿÿÿ!/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "AlternatesMetadata", ({ enumerable: true, get: function() { return AlternatesMetadata; } })); const _jsxruntime = __webpack_require__(5939); const _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(11110)); const _meta = __webpack_require__(66837); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function AlternateLink({ descriptor, ...props }) { if (!descriptor.url) return null; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { ...props, ...descriptor.title && { title: descriptor.title }, href: descriptor.url.toString() }); } function AlternatesMetadata({ alternates }) { if (!alternates) return null; const { canonical, languages, media, types } = alternates; return (0, _meta.MetaFilter)([ canonical ? AlternateLink({ rel: 'canonical', descriptor: canonical }) : null, languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', hrefLang: locale, descriptor }))) : null, media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', media: mediaName, descriptor }))) : null, types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', type, descriptor }))) : null ]); } //# sourceMappingURL=alternate.js.map /***/ })  ÿÿÿ ÿÿÿ ÿÿÿ(ÿÿÿÿÿÿ½"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "AlternatesMetadata", { enumerable: true, get: function() { return AlternatesMetadata; } }); const _jsxruntime = require("react/jsx-runtime"); const _react = /*#__PURE__*/ _interop_require_default(require("react")); const _meta = require("./meta"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function AlternateLink({ descriptor, ...props }) { if (!descriptor.url) return null; return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { ...props, ...descriptor.title && { title: descriptor.title }, href: descriptor.url.toString() }); } function AlternatesMetadata({ alternates }) { if (!alternates) return null; const { canonical, languages, media, types } = alternates; return (0, _meta.MetaFilter)([ canonical ? AlternateLink({ rel: 'canonical', descriptor: canonical }) : null, languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', hrefLang: locale, descriptor }))) : null, media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', media: mediaName, descriptor }))) : null, types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({ rel: 'alternate', type, descriptor }))) : null ]); } //# sourceMappingURL=alternate.js.mapL012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81133Object.defineProperty(exports, "AlternatesMetadata", (undefined222222))undefined245251__webpack_require__undefined2532715939undefined329335__webpack_require__undefined33734311110undefined362368__webpack_require__undefined37037766837undefinedÿÿÿÿÿÿ, /***/ 10959:  Ϋwebpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceE/***/ ((module, __unused_webpack_exports, __webpack_require__) => { «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ô«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource// This file is generated by the Webpack next-flight-loader. const { createProxy } = require("next/dist/build/webpack/loaders/next-flight-loader/module-proxy") module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/components/metadata/async-metadata.js") bU[]@“__webpack_require__…38898€†buffer†source„size„maps„hashâ// This file is generated by the Webpack next-flight-loader. const { createProxy } = __webpack_require__(38898) module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/components/metadata/async-metadata.js") €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource// This file is generated by the Webpack next-flight-loader. const { createProxy } = require("next/dist/build/webpack/loaders/next-flight-loader/module-proxy") module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/components/metadata/async-metadata.js") 38591__webpack_require__undefined9315738898undefined /***/ }) ÿþÿÿ1/***/ ((module, __unused_webpack_exports, __webpack_require__) => { // This file is generated by the Webpack next-flight-loader. const { createProxy } = __webpack_require__(38898) module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/components/metadata/async-metadata.js") /***/ }) ÿÿÿÿÿÿ ÿÿÿRÿÿÿÿÿÿ// This file is generated by the Webpack next-flight-loader. const { createProxy } = require("next/dist/build/webpack/loaders/next-flight-loader/module-proxy") module.exports = createProxy("/opt/canhelp/node_modules/next/dist/client/components/metadata/async-metadata.js") Sÿÿÿÿÿÿ ÿÿÿ, /***/ 11250:   «webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Y«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ // When postpone is available in canary React we can switch to importing it directly "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "Postpone", { enumerable: true, get: function() { return _dynamicrendering.Postpone; } }); const _dynamicrendering = require("../dynamic-rendering"); //# sourceMappingURL=postpone.js.map MÁÍÏû<ºÀÂ×€®Object.defineProperty(exports, "__esModule", (‚))¬Object.defineProperty(exports, "Postpone", (þ“__webpack_require__…51513€†buffer†source„size„maps„hashò/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ // When postpone is available in canary React we can switch to importing it directly Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Postpone", ({ enumerable: true, get: function() { return _dynamicrendering.Postpone; } })); const _dynamicrendering = __webpack_require__(51513); //# sourceMappingURL=postpone.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ // When postpone is available in canary React we can switch to importing it directly "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "Postpone", { enumerable: true, get: function() { return _dynamicrendering.Postpone; } }); const _dynamicrendering = require("../dynamic-rendering"); //# sourceMappingURL=postpone.js.mapß193205undefined207251Object.defineProperty(exports, "__esModule", (undefined271271))undefined274316Object.defineProperty(exports, "Postpone", (undefined413413))undefined442448__webpack_require__undefined45047151513undefined /***/ }) öþÿÿO/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ // When postpone is available in canary React we can switch to importing it directly Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Postpone", ({ enumerable: true, get: function() { return _dynamicrendering.Postpone; } })); const _dynamicrendering = __webpack_require__(51513); //# sourceMappingURL=postpone.js.map /***/ }) ÷þÿÿúþÿÿ ûþÿÿÿÿÿýþÿÿ/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ // When postpone is available in canary React we can switch to importing it directly "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "Postpone", { enumerable: true, get: function() { return _dynamicrendering.Postpone; } }); const _dynamicrendering = require("../dynamic-rendering"); //# sourceMappingURL=postpone.js.mapß193205undefined207251Object.defineProperty(exports, "__esModule", (undefined271271))undefined274316Object.defineProperty(exports, "Postpone", (undefined413413))undefined442448__webpack_require__undefined45047151513undefinedþþÿÿÿþÿÿ, /***/ 11505:  m«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ï«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourcef"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "shouldHardNavigate", { enumerable: true, get: function() { return shouldHardNavigate; } }); const _flightdatahelpers = require("../../flight-data-helpers"); const _matchsegments = require("../match-segments"); function shouldHardNavigate(flightSegmentPath, flightRouterState) { const [segment, parallelRoutes] = flightRouterState; // TODO-APP: Check if `as` can be replaced. const [currentSegment, parallelRouteKey] = flightSegmentPath; // Check if current segment matches the existing segment. if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) { // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered. if (Array.isArray(currentSegment)) { return true; } // If the existing segment did not match soft navigation is triggered. return false; } const lastSegment = flightSegmentPath.length <= 2; if (lastSegment) { return false; } return shouldHardNavigate((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey]); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=should-hard-navigate.js.map  e :NNQJ…ÞÞü9?AS€®Object.defineProperty(exports, "__esModule", (‚))¶Object.defineProperty(exports, "shouldHardNavigate", (þ“__webpack_require__…89909þ…58395€†buffer†source„size„maps„hashQ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "shouldHardNavigate", ({ enumerable: true, get: function() { return shouldHardNavigate; } })); const _flightdatahelpers = __webpack_require__(89909); const _matchsegments = __webpack_require__(58395); function shouldHardNavigate(flightSegmentPath, flightRouterState) { const [segment, parallelRoutes] = flightRouterState; // TODO-APP: Check if `as` can be replaced. const [currentSegment, parallelRouteKey] = flightSegmentPath; // Check if current segment matches the existing segment. if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) { // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered. if (Array.isArray(currentSegment)) { return true; } // If the existing segment did not match soft navigation is triggered. return false; } const lastSegment = flightSegmentPath.length <= 2; if (lastSegment) { return false; } return shouldHardNavigate((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey]); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=should-hard-navigate.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourcef"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "shouldHardNavigate", { enumerable: true, get: function() { return shouldHardNavigate; } }); const _flightdatahelpers = require("../../flight-data-helpers"); const _matchsegments = require("../match-segments"); function shouldHardNavigate(flightSegmentPath, flightRouterState) { const [segment, parallelRoutes] = flightRouterState; // TODO-APP: Check if `as` can be replaced. const [currentSegment, parallelRouteKey] = flightSegmentPath; // Check if current segment matches the existing segment. if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) { // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered. if (Array.isArray(currentSegment)) { return true; } // If the existing segment did not match soft navigation is triggered. return false; } const lastSegment = flightSegmentPath.length <= 2; if (lastSegment) { return false; } return shouldHardNavigate((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey]); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=should-hard-navigate.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81133Object.defineProperty(exports, "shouldHardNavigate", (undefined222222))undefined252258__webpack_require__undefined26028689909undefined313319__webpack_require__undefined32133958395undefined /***/ }) ìþÿÿ/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "shouldHardNavigate", ({ enumerable: true, get: function() { return shouldHardNavigate; } })); const _flightdatahelpers = __webpack_require__(89909); const _matchsegments = __webpack_require__(58395); function shouldHardNavigate(flightSegmentPath, flightRouterState) { const [segment, parallelRoutes] = flightRouterState; // TODO-APP: Check if `as` can be replaced. const [currentSegment, parallelRouteKey] = flightSegmentPath; // Check if current segment matches the existing segment. if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) { // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered. if (Array.isArray(currentSegment)) { return true; } // If the existing segment did not match soft navigation is triggered. return false; } const lastSegment = flightSegmentPath.length <= 2; if (lastSegment) { return false; } return shouldHardNavigate((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey]); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=should-hard-navigate.js.map /***/ }) íþÿÿðþÿÿ ñþÿÿòþÿÿóþÿÿf"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "shouldHardNavigate", { enumerable: true, get: function() { return shouldHardNavigate; } }); const _flightdatahelpers = require("../../flight-data-helpers"); const _matchsegments = require("../match-segments"); function shouldHardNavigate(flightSegmentPath, flightRouterState) { const [segment, parallelRoutes] = flightRouterState; // TODO-APP: Check if `as` can be replaced. const [currentSegment, parallelRouteKey] = flightSegmentPath; // Check if current segment matches the existing segment. if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) { // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered. if (Array.isArray(currentSegment)) { return true; } // If the existing segment did not match soft navigation is triggered. return false; } const lastSegment = flightSegmentPath.length <= 2; if (lastSegment) { return false; } return shouldHardNavigate((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey]); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=should-hard-navigate.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81133Object.defineProperty(exports, "shouldHardNavigate", (undefined222222))undefined252258__webpack_require__undefined26028689909undefined313319__webpack_require__undefined32133958395undefinedôþÿÿõþÿÿ, /***/ 11966:  ¯!«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource C «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceÝ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "applyFlightData", { enumerable: true, get: function() { return applyFlightData; } }); const _filllazyitemstillleafwithhead = require("./fill-lazy-items-till-leaf-with-head"); const _fillcachewithnewsubtreedata = require("./fill-cache-with-new-subtree-data"); function applyFlightData(navigatedAt, existingCache, cache, flightData, prefetchEntry) { // The one before last item is the router state tree patch const { tree: treePatch, seedData, head, isRootRender } = flightData; // Handles case where prefetch only returns the router tree patch without rendered components. if (seedData === null) { return false; } if (isRootRender) { const rsc = seedData[1]; const loading = seedData[3]; cache.loading = loading; cache.rsc = rsc; // This is a PPR-only field. When PPR is enabled, we shouldn't hit // this path during a navigation, but until PPR is fully implemented // yet it's possible the existing node does have a non-null // `prefetchRsc`. As an incremental step, we'll just de-opt to the // old behavior — no PPR value. cache.prefetchRsc = null; (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, existingCache, treePatch, seedData, head, prefetchEntry); } else { // Copy rsc for the root node of the cache. cache.rsc = existingCache.rsc; // This is a PPR-only field. Unlike the previous branch, since we're // just cloning the existing cache node, we might as well keep the // PPR value, if it exists. cache.prefetchRsc = existingCache.prefetchRsc; cache.parallelRoutes = new Map(existingCache.parallelRoutes); cache.loading = existingCache.loading; // Create a copy of the existing cache with the rsc applied. (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeData)(navigatedAt, cache, existingCache, flightData, prefetchEntry); } return true; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=apply-flight-data.js.map  e :NNQJ‚ØØ 0Y_a„€®Object.defineProperty(exports, "__esModule", (‚))³Object.defineProperty(exports, "applyFlightData", (þ“__webpack_require__…63102þ…68360€†buffer†source„size„maps„hash« Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "applyFlightData", ({ enumerable: true, get: function() { return applyFlightData; } })); const _filllazyitemstillleafwithhead = __webpack_require__(63102); const _fillcachewithnewsubtreedata = __webpack_require__(68360); function applyFlightData(navigatedAt, existingCache, cache, flightData, prefetchEntry) { // The one before last item is the router state tree patch const { tree: treePatch, seedData, head, isRootRender } = flightData; // Handles case where prefetch only returns the router tree patch without rendered components. if (seedData === null) { return false; } if (isRootRender) { const rsc = seedData[1]; const loading = seedData[3]; cache.loading = loading; cache.rsc = rsc; // This is a PPR-only field. When PPR is enabled, we shouldn't hit // this path during a navigation, but until PPR is fully implemented // yet it's possible the existing node does have a non-null // `prefetchRsc`. As an incremental step, we'll just de-opt to the // old behavior — no PPR value. cache.prefetchRsc = null; (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, existingCache, treePatch, seedData, head, prefetchEntry); } else { // Copy rsc for the root node of the cache. cache.rsc = existingCache.rsc; // This is a PPR-only field. Unlike the previous branch, since we're // just cloning the existing cache node, we might as well keep the // PPR value, if it exists. cache.prefetchRsc = existingCache.prefetchRsc; cache.parallelRoutes = new Map(existingCache.parallelRoutes); cache.loading = existingCache.loading; // Create a copy of the existing cache with the rsc applied. (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeData)(navigatedAt, cache, existingCache, flightData, prefetchEntry); } return true; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=apply-flight-data.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceÝ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "applyFlightData", { enumerable: true, get: function() { return applyFlightData; } }); const _filllazyitemstillleafwithhead = require("./fill-lazy-items-till-leaf-with-head"); const _fillcachewithnewsubtreedata = require("./fill-cache-with-new-subtree-data"); function applyFlightData(navigatedAt, existingCache, cache, flightData, prefetchEntry) { // The one before last item is the router state tree patch const { tree: treePatch, seedData, head, isRootRender } = flightData; // Handles case where prefetch only returns the router tree patch without rendered components. if (seedData === null) { return false; } if (isRootRender) { const rsc = seedData[1]; const loading = seedData[3]; cache.loading = loading; cache.rsc = rsc; // This is a PPR-only field. When PPR is enabled, we shouldn't hit // this path during a navigation, but until PPR is fully implemented // yet it's possible the existing node does have a non-null // `prefetchRsc`. As an incremental step, we'll just de-opt to the // old behavior — no PPR value. cache.prefetchRsc = null; (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, existingCache, treePatch, seedData, head, prefetchEntry); } else { // Copy rsc for the root node of the cache. cache.rsc = existingCache.rsc; // This is a PPR-only field. Unlike the previous branch, since we're // just cloning the existing cache node, we might as well keep the // PPR value, if it exists. cache.prefetchRsc = existingCache.prefetchRsc; cache.parallelRoutes = new Map(existingCache.parallelRoutes); cache.loading = existingCache.loading; // Create a copy of the existing cache with the rsc applied. (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeData)(navigatedAt, cache, existingCache, flightData, prefetchEntry); } return true; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=apply-flight-data.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81130Object.defineProperty(exports, "applyFlightData", (undefined216216))undefined258264__webpack_require__undefined26630463102undefined345351__webpack_require__undefined35338868360undefined /***/ }) âþÿÿ÷ /***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "applyFlightData", ({ enumerable: true, get: function() { return applyFlightData; } })); const _filllazyitemstillleafwithhead = __webpack_require__(63102); const _fillcachewithnewsubtreedata = __webpack_require__(68360); function applyFlightData(navigatedAt, existingCache, cache, flightData, prefetchEntry) { // The one before last item is the router state tree patch const { tree: treePatch, seedData, head, isRootRender } = flightData; // Handles case where prefetch only returns the router tree patch without rendered components. if (seedData === null) { return false; } if (isRootRender) { const rsc = seedData[1]; const loading = seedData[3]; cache.loading = loading; cache.rsc = rsc; // This is a PPR-only field. When PPR is enabled, we shouldn't hit // this path during a navigation, but until PPR is fully implemented // yet it's possible the existing node does have a non-null // `prefetchRsc`. As an incremental step, we'll just de-opt to the // old behavior — no PPR value. cache.prefetchRsc = null; (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, existingCache, treePatch, seedData, head, prefetchEntry); } else { // Copy rsc for the root node of the cache. cache.rsc = existingCache.rsc; // This is a PPR-only field. Unlike the previous branch, since we're // just cloning the existing cache node, we might as well keep the // PPR value, if it exists. cache.prefetchRsc = existingCache.prefetchRsc; cache.parallelRoutes = new Map(existingCache.parallelRoutes); cache.loading = existingCache.loading; // Create a copy of the existing cache with the rsc applied. (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeData)(navigatedAt, cache, existingCache, flightData, prefetchEntry); } return true; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=apply-flight-data.js.map /***/ }) ãþÿÿæþÿÿ çþÿÿèþÿÿéþÿÿÝ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "applyFlightData", { enumerable: true, get: function() { return applyFlightData; } }); const _filllazyitemstillleafwithhead = require("./fill-lazy-items-till-leaf-with-head"); const _fillcachewithnewsubtreedata = require("./fill-cache-with-new-subtree-data"); function applyFlightData(navigatedAt, existingCache, cache, flightData, prefetchEntry) { // The one before last item is the router state tree patch const { tree: treePatch, seedData, head, isRootRender } = flightData; // Handles case where prefetch only returns the router tree patch without rendered components. if (seedData === null) { return false; } if (isRootRender) { const rsc = seedData[1]; const loading = seedData[3]; cache.loading = loading; cache.rsc = rsc; // This is a PPR-only field. When PPR is enabled, we shouldn't hit // this path during a navigation, but until PPR is fully implemented // yet it's possible the existing node does have a non-null // `prefetchRsc`. As an incremental step, we'll just de-opt to the // old behavior — no PPR value. cache.prefetchRsc = null; (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, existingCache, treePatch, seedData, head, prefetchEntry); } else { // Copy rsc for the root node of the cache. cache.rsc = existingCache.rsc; // This is a PPR-only field. Unlike the previous branch, since we're // just cloning the existing cache node, we might as well keep the // PPR value, if it exists. cache.prefetchRsc = existingCache.prefetchRsc; cache.parallelRoutes = new Map(existingCache.parallelRoutes); cache.loading = existingCache.loading; // Create a copy of the existing cache with the rsc applied. (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeData)(navigatedAt, cache, existingCache, flightData, prefetchEntry); } return true; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=apply-flight-data.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81130Object.defineProperty(exports, "applyFlightData", (undefined216216))undefined258264__webpack_require__undefined26630463102undefined345351__webpack_require__undefined35338868360undefinedêþÿÿëþÿÿ, /***/ 12518:  =«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceþ/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { preconnect: null, preloadFont: null, preloadStyle: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { preconnect: function() { return preconnect; }, preloadFont: function() { return preloadFont; }, preloadStyle: function() { return preloadStyle; } }); const _reactdom = /*#__PURE__*/ _interop_require_default(require("react-dom")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function preloadStyle(href, crossOrigin, nonce) { const opts = { as: 'style' }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preloadFont(href, type, crossOrigin, nonce) { const opts = { as: 'font', type }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preconnect(href, crossOrigin, nonce) { const opts = {}; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } ; _reactdom.default.preconnect(href, opts); } //# sourceMappingURL=preloads.js.map blxzH¦ººÃÉÏÑÛ€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…55963€†buffer†source„size„maps„hash¢/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { preconnect: function() { return preconnect; }, preloadFont: function() { return preloadFont; }, preloadStyle: function() { return preloadStyle; } }); const _reactdom = /*#__PURE__*/ _interop_require_default(__webpack_require__(55963)); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function preloadStyle(href, crossOrigin, nonce) { const opts = { as: 'style' }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preloadFont(href, type, crossOrigin, nonce) { const opts = { as: 'font', type }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preconnect(href, crossOrigin, nonce) { const opts = {}; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } ; _reactdom.default.preconnect(href, opts); } //# sourceMappingURL=preloads.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceþ/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { preconnect: null, preloadFont: null, preloadStyle: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { preconnect: function() { return preconnect; }, preloadFont: function() { return preloadFont; }, preloadStyle: function() { return preloadStyle; } }); const _reactdom = /*#__PURE__*/ _interop_require_default(require("react-dom")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function preloadStyle(href, crossOrigin, nonce) { const opts = { as: 'style' }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preloadFont(href, type, crossOrigin, nonce) { const opts = { as: 'font', type }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preconnect(href, crossOrigin, nonce) { const opts = {}; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } ; _reactdom.default.preconnect(href, opts); } //# sourceMappingURL=preloads.js.map£108120undefined122166Object.defineProperty(exports, "__esModule", (undefined186186))undefined1952820undefined713719__webpack_require__undefined72173155963undefined /***/ }) Øþÿÿÿ/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { preconnect: function() { return preconnect; }, preloadFont: function() { return preloadFont; }, preloadStyle: function() { return preloadStyle; } }); const _reactdom = /*#__PURE__*/ _interop_require_default(__webpack_require__(55963)); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function preloadStyle(href, crossOrigin, nonce) { const opts = { as: 'style' }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preloadFont(href, type, crossOrigin, nonce) { const opts = { as: 'font', type }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preconnect(href, crossOrigin, nonce) { const opts = {}; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } ; _reactdom.default.preconnect(href, opts); } //# sourceMappingURL=preloads.js.map /***/ }) ÙþÿÿÜþÿÿ Ýþÿÿ÷þÿÿßþÿÿþ/* Files in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { preconnect: null, preloadFont: null, preloadStyle: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { preconnect: function() { return preconnect; }, preloadFont: function() { return preloadFont; }, preloadStyle: function() { return preloadStyle; } }); const _reactdom = /*#__PURE__*/ _interop_require_default(require("react-dom")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function preloadStyle(href, crossOrigin, nonce) { const opts = { as: 'style' }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preloadFont(href, type, crossOrigin, nonce) { const opts = { as: 'font', type }; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } _reactdom.default.preload(href, opts); } function preconnect(href, crossOrigin, nonce) { const opts = {}; if (typeof crossOrigin === 'string') { opts.crossOrigin = crossOrigin; } if (typeof nonce === 'string') { opts.nonce = nonce; } ; _reactdom.default.preconnect(href, opts); } //# sourceMappingURL=preloads.js.map£108120undefined122166Object.defineProperty(exports, "__esModule", (undefined186186))undefined1952820undefined713719__webpack_require__undefined72173155963undefinedàþÿÿáþÿÿ, /***/ 12611:  …«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ƒ«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { createPrerenderSearchParamsForClientPage: null, createSearchParamsFromClient: null, createServerSearchParamsForMetadata: null, createServerSearchParamsForServerPage: null, makeErroringSearchParamsForUseCache: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createPrerenderSearchParamsForClientPage: function() { return createPrerenderSearchParamsForClientPage; }, createSearchParamsFromClient: function() { return createSearchParamsFromClient; }, createServerSearchParamsForMetadata: function() { return createServerSearchParamsForMetadata; }, createServerSearchParamsForServerPage: function() { return createServerSearchParamsForServerPage; }, makeErroringSearchParamsForUseCache: function() { return makeErroringSearchParamsForUseCache; } }); const _reflect = require("../web/spec-extension/adapters/reflect"); const _dynamicrendering = require("../app-render/dynamic-rendering"); const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); const _invarianterror = require("../../shared/lib/invariant-error"); const _dynamicrenderingutils = require("../dynamic-rendering-utils"); const _creatededupedbycallsiteservererrorlogger = require("../create-deduped-by-callsite-server-error-logger"); const _reflectutils = require("../../shared/lib/utils/reflect-utils"); const _utils = require("./utils"); function createSearchParamsFromClient(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E769", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E739", enumerable: false, configurable: true }); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } const createServerSearchParamsForMetadata = createServerSearchParamsForServerPage; function createServerSearchParamsForServerPage(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E747", enumerable: false, configurable: true }); case 'prerender-runtime': return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createPrerenderSearchParamsForClientPage(workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': // We're prerendering in a mode that aborts (cacheComponents) and should stall // the promise to ensure the RSC side is considered dynamic return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`'); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E768", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E746", enumerable: false, configurable: true }); case 'prerender-ppr': case 'prerender-legacy': case 'request': return Promise.resolve({}); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createStaticPrerenderSearchParams(workStore, prerenderStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } switch(prerenderStore.type){ case 'prerender': case 'prerender-client': // We are in a cacheComponents (PPR or otherwise) prerender return makeHangingSearchParams(workStore, prerenderStore); case 'prerender-ppr': case 'prerender-legacy': // We are in a legacy static generation and need to interrupt the // prerender when search params are accessed. return makeErroringExoticSearchParams(workStore, prerenderStore); default: return prerenderStore; } } function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) { return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, process.env.__NEXT_CACHE_COMPONENTS ? makeUntrackedSearchParams(underlyingSearchParams) : makeUntrackedExoticSearchParams(underlyingSearchParams)); } function createRenderSearchParams(underlyingSearchParams, workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } else { if (process.env.NODE_ENV === 'development') { // Semantically we only need the dev tracking when running in `next dev` // but since you would never use next dev with production NODE_ENV we use this // as a proxy so we can statically exclude this code from production builds. if (process.env.__NEXT_CACHE_COMPONENTS) { return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore); } return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore); } else { if (process.env.__NEXT_CACHE_COMPONENTS) { return makeUntrackedSearchParams(underlyingSearchParams); } return makeUntrackedExoticSearchParams(underlyingSearchParams); } } } const CachedSearchParams = new WeakMap(); const CachedSearchParamsForUseCache = new WeakMap(); function makeHangingSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(prerenderStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`'); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } default: { return _reflect.ReflectAdapter.get(target, prop, receiver); } } } }); CachedSearchParams.set(prerenderStore, proxiedPromise); return proxiedPromise; } function makeErroringExoticSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const underlyingSearchParams = {}; // For search params we don't construct a ReactPromise because we want to interrupt // rendering on any property access that was not set from outside and so we only want // to have properties like value and status if React sets them. const promise = Promise.resolve(underlyingSearchParams); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } default: { if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); } } }, has (target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests trigger dynamic. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string') { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return false; } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys () { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } }); CachedSearchParams.set(workStore, proxiedPromise); return proxiedPromise; } function makeErroringSearchParamsForUseCache(workStore) { const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve({}); const proxiedPromise = new Proxy(promise, { get: function get(target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. We know it // isn't a dynamic access because it can only be something that was // previously written to the promise and thus not an underlying // searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get); } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has: function has(target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests throw an error. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has); } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys: function ownKeys() { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys); } }); CachedSearchParamsForUseCache.set(workStore, proxiedPromise); return proxiedPromise; } function makeUntrackedExoticSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (!_reflectutils.wellKnownProperties.has(prop)) { Object.defineProperty(promise, prop, { get () { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } return underlyingSearchParams[prop]; }, set (value) { Object.defineProperty(promise, prop, { value, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); return promise; } function makeUntrackedSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); return promise; } function makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise. let promiseInitialized = false; const proxiedUnderlying = new Proxy(underlyingSearchParams, { get (target, prop, receiver) { if (typeof prop === 'string' && promiseInitialized) { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { if (store.dynamicShouldError) { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } return Reflect.ownKeys(target); } }); // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); promise.then(()=>{ promiseInitialized = true; }); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); Object.defineProperty(promise, prop, { get () { return proxiedUnderlying[prop]; }, set (newValue) { Object.defineProperty(promise, prop, { value: newValue, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (prop === 'then' && store.dynamicShouldError) { const expression = '`searchParams.then`'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); syncIODev(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); syncIODev(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; syncIODev(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } // Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but // just logging the sync access without actually defining the search params on // the promise. function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; warnForIncompleteEnumeration(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } function syncIODev(route, expression, missingProperties) { // In all cases we warn normally if (missingProperties && missingProperties.length > 0) { warnForIncompleteEnumeration(route, expression, missingProperties); } else { warnForSyncAccess(route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'request': if (workUnitStore.prerenderPhase === true) { // When we're rendering dynamically in dev, we need to advance out of // the Prerender environment when we read Request data synchronously. (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore); } break; case 'prerender': case 'prerender-client': case 'prerender-runtime': case 'prerender-ppr': case 'prerender-legacy': case 'cache': case 'private-cache': case 'unstable-cache': break; default: workUnitStore; } } } const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError); const warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError); function createSearchAccessError(route, expression) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E249", enumerable: false, configurable: true }); } function createIncompleteEnumerationError(route, expression, missingProperties) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E2", enumerable: false, configurable: true }); } function describeListOfPropertyNames(properties) { switch(properties.length){ case 0: throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), "__NEXT_ERROR_CODE", { value: "E531", enumerable: false, configurable: true }); case 1: return `\`${properties[0]}\``; case 2: return `\`${properties[0]}\` and \`${properties[1]}\``; default: { let description = ''; for(let i = 0; i < properties.length - 1; i++){ description += `\`${properties[i]}\`, `; } description += `, and \`${properties[properties.length - 1]}\``; return description; } } } //# sourceMappingURL=search-params.js.map g :NNW_TMSU|š ¢Âìòô#?EGh‹‘“®äêì8>@ex~€Lˆ—¹½íNsv¡ º Ü ß 7!€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…92835þ…41179ý…63033ü…26521û…44748ú…68414ù…85449ø…91695† false0…false‚{}þÿ€†buffer†source„size„maps„hashb| Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createPrerenderSearchParamsForClientPage: function() { return createPrerenderSearchParamsForClientPage; }, createSearchParamsFromClient: function() { return createSearchParamsFromClient; }, createServerSearchParamsForMetadata: function() { return createServerSearchParamsForMetadata; }, createServerSearchParamsForServerPage: function() { return createServerSearchParamsForServerPage; }, makeErroringSearchParamsForUseCache: function() { return makeErroringSearchParamsForUseCache; } }); const _reflect = __webpack_require__(92835); const _dynamicrendering = __webpack_require__(41179); const _workunitasyncstorageexternal = __webpack_require__(63033); const _invarianterror = __webpack_require__(26521); const _dynamicrenderingutils = __webpack_require__(44748); const _creatededupedbycallsiteservererrorlogger = __webpack_require__(68414); const _reflectutils = __webpack_require__(85449); const _utils = __webpack_require__(91695); function createSearchParamsFromClient(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E769", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E739", enumerable: false, configurable: true }); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } const createServerSearchParamsForMetadata = createServerSearchParamsForServerPage; function createServerSearchParamsForServerPage(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E747", enumerable: false, configurable: true }); case 'prerender-runtime': return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createPrerenderSearchParamsForClientPage(workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': // We're prerendering in a mode that aborts (cacheComponents) and should stall // the promise to ensure the RSC side is considered dynamic return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`'); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E768", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E746", enumerable: false, configurable: true }); case 'prerender-ppr': case 'prerender-legacy': case 'request': return Promise.resolve({}); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createStaticPrerenderSearchParams(workStore, prerenderStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } switch(prerenderStore.type){ case 'prerender': case 'prerender-client': // We are in a cacheComponents (PPR or otherwise) prerender return makeHangingSearchParams(workStore, prerenderStore); case 'prerender-ppr': case 'prerender-legacy': // We are in a legacy static generation and need to interrupt the // prerender when search params are accessed. return makeErroringExoticSearchParams(workStore, prerenderStore); default: return prerenderStore; } } function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) { return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticSearchParams(underlyingSearchParams)); } function createRenderSearchParams(underlyingSearchParams, workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } else { if (false) {} else { if (false) {} return makeUntrackedExoticSearchParams(underlyingSearchParams); } } } const CachedSearchParams = new WeakMap(); const CachedSearchParamsForUseCache = new WeakMap(); function makeHangingSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(prerenderStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`'); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } default: { return _reflect.ReflectAdapter.get(target, prop, receiver); } } } }); CachedSearchParams.set(prerenderStore, proxiedPromise); return proxiedPromise; } function makeErroringExoticSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const underlyingSearchParams = {}; // For search params we don't construct a ReactPromise because we want to interrupt // rendering on any property access that was not set from outside and so we only want // to have properties like value and status if React sets them. const promise = Promise.resolve(underlyingSearchParams); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } default: { if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); } } }, has (target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests trigger dynamic. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string') { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return false; } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys () { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } }); CachedSearchParams.set(workStore, proxiedPromise); return proxiedPromise; } function makeErroringSearchParamsForUseCache(workStore) { const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve({}); const proxiedPromise = new Proxy(promise, { get: function get(target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. We know it // isn't a dynamic access because it can only be something that was // previously written to the promise and thus not an underlying // searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get); } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has: function has(target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests throw an error. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has); } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys: function ownKeys() { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys); } }); CachedSearchParamsForUseCache.set(workStore, proxiedPromise); return proxiedPromise; } function makeUntrackedExoticSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (!_reflectutils.wellKnownProperties.has(prop)) { Object.defineProperty(promise, prop, { get () { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } return underlyingSearchParams[prop]; }, set (value) { Object.defineProperty(promise, prop, { value, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); return promise; } function makeUntrackedSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); return promise; } function makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise. let promiseInitialized = false; const proxiedUnderlying = new Proxy(underlyingSearchParams, { get (target, prop, receiver) { if (typeof prop === 'string' && promiseInitialized) { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { if (store.dynamicShouldError) { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } return Reflect.ownKeys(target); } }); // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); promise.then(()=>{ promiseInitialized = true; }); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); Object.defineProperty(promise, prop, { get () { return proxiedUnderlying[prop]; }, set (newValue) { Object.defineProperty(promise, prop, { value: newValue, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (prop === 'then' && store.dynamicShouldError) { const expression = '`searchParams.then`'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); syncIODev(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); syncIODev(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; syncIODev(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } // Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but // just logging the sync access without actually defining the search params on // the promise. function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; warnForIncompleteEnumeration(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } function syncIODev(route, expression, missingProperties) { // In all cases we warn normally if (missingProperties && missingProperties.length > 0) { warnForIncompleteEnumeration(route, expression, missingProperties); } else { warnForSyncAccess(route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'request': if (workUnitStore.prerenderPhase === true) { // When we're rendering dynamically in dev, we need to advance out of // the Prerender environment when we read Request data synchronously. (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore); } break; case 'prerender': case 'prerender-client': case 'prerender-runtime': case 'prerender-ppr': case 'prerender-legacy': case 'cache': case 'private-cache': case 'unstable-cache': break; default: workUnitStore; } } } const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError); const warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError); function createSearchAccessError(route, expression) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E249", enumerable: false, configurable: true }); } function createIncompleteEnumerationError(route, expression, missingProperties) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E2", enumerable: false, configurable: true }); } function describeListOfPropertyNames(properties) { switch(properties.length){ case 0: throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), "__NEXT_ERROR_CODE", { value: "E531", enumerable: false, configurable: true }); case 1: return `\`${properties[0]}\``; case 2: return `\`${properties[0]}\` and \`${properties[1]}\``; default: { let description = ''; for(let i = 0; i < properties.length - 1; i++){ description += `\`${properties[i]}\`, `; } description += `, and \`${properties[properties.length - 1]}\``; return description; } } } //# sourceMappingURL=search-params.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { createPrerenderSearchParamsForClientPage: null, createSearchParamsFromClient: null, createServerSearchParamsForMetadata: null, createServerSearchParamsForServerPage: null, makeErroringSearchParamsForUseCache: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createPrerenderSearchParamsForClientPage: function() { return createPrerenderSearchParamsForClientPage; }, createSearchParamsFromClient: function() { return createSearchParamsFromClient; }, createServerSearchParamsForMetadata: function() { return createServerSearchParamsForMetadata; }, createServerSearchParamsForServerPage: function() { return createServerSearchParamsForServerPage; }, makeErroringSearchParamsForUseCache: function() { return makeErroringSearchParamsForUseCache; } }); const _reflect = require("../web/spec-extension/adapters/reflect"); const _dynamicrendering = require("../app-render/dynamic-rendering"); const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); const _invarianterror = require("../../shared/lib/invariant-error"); const _dynamicrenderingutils = require("../dynamic-rendering-utils"); const _creatededupedbycallsiteservererrorlogger = require("../create-deduped-by-callsite-server-error-logger"); const _reflectutils = require("../../shared/lib/utils/reflect-utils"); const _utils = require("./utils"); function createSearchParamsFromClient(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E769", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E739", enumerable: false, configurable: true }); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } const createServerSearchParamsForMetadata = createServerSearchParamsForServerPage; function createServerSearchParamsForServerPage(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E747", enumerable: false, configurable: true }); case 'prerender-runtime': return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createPrerenderSearchParamsForClientPage(workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': // We're prerendering in a mode that aborts (cacheComponents) and should stall // the promise to ensure the RSC side is considered dynamic return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`'); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E768", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E746", enumerable: false, configurable: true }); case 'prerender-ppr': case 'prerender-legacy': case 'request': return Promise.resolve({}); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createStaticPrerenderSearchParams(workStore, prerenderStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } switch(prerenderStore.type){ case 'prerender': case 'prerender-client': // We are in a cacheComponents (PPR or otherwise) prerender return makeHangingSearchParams(workStore, prerenderStore); case 'prerender-ppr': case 'prerender-legacy': // We are in a legacy static generation and need to interrupt the // prerender when search params are accessed. return makeErroringExoticSearchParams(workStore, prerenderStore); default: return prerenderStore; } } function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) { return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, process.env.__NEXT_CACHE_COMPONENTS ? makeUntrackedSearchParams(underlyingSearchParams) : makeUntrackedExoticSearchParams(underlyingSearchParams)); } function createRenderSearchParams(underlyingSearchParams, workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } else { if (process.env.NODE_ENV === 'development') { // Semantically we only need the dev tracking when running in `next dev` // but since you would never use next dev with production NODE_ENV we use this // as a proxy so we can statically exclude this code from production builds. if (process.env.__NEXT_CACHE_COMPONENTS) { return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore); } return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore); } else { if (process.env.__NEXT_CACHE_COMPONENTS) { return makeUntrackedSearchParams(underlyingSearchParams); } return makeUntrackedExoticSearchParams(underlyingSearchParams); } } } const CachedSearchParams = new WeakMap(); const CachedSearchParamsForUseCache = new WeakMap(); function makeHangingSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(prerenderStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`'); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } default: { return _reflect.ReflectAdapter.get(target, prop, receiver); } } } }); CachedSearchParams.set(prerenderStore, proxiedPromise); return proxiedPromise; } function makeErroringExoticSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const underlyingSearchParams = {}; // For search params we don't construct a ReactPromise because we want to interrupt // rendering on any property access that was not set from outside and so we only want // to have properties like value and status if React sets them. const promise = Promise.resolve(underlyingSearchParams); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } default: { if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); } } }, has (target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests trigger dynamic. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string') { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return false; } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys () { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } }); CachedSearchParams.set(workStore, proxiedPromise); return proxiedPromise; } function makeErroringSearchParamsForUseCache(workStore) { const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve({}); const proxiedPromise = new Proxy(promise, { get: function get(target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. We know it // isn't a dynamic access because it can only be something that was // previously written to the promise and thus not an underlying // searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get); } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has: function has(target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests throw an error. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has); } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys: function ownKeys() { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys); } }); CachedSearchParamsForUseCache.set(workStore, proxiedPromise); return proxiedPromise; } function makeUntrackedExoticSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (!_reflectutils.wellKnownProperties.has(prop)) { Object.defineProperty(promise, prop, { get () { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } return underlyingSearchParams[prop]; }, set (value) { Object.defineProperty(promise, prop, { value, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); return promise; } function makeUntrackedSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); return promise; } function makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise. let promiseInitialized = false; const proxiedUnderlying = new Proxy(underlyingSearchParams, { get (target, prop, receiver) { if (typeof prop === 'string' && promiseInitialized) { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { if (store.dynamicShouldError) { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } return Reflect.ownKeys(target); } }); // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); promise.then(()=>{ promiseInitialized = true; }); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); Object.defineProperty(promise, prop, { get () { return proxiedUnderlying[prop]; }, set (newValue) { Object.defineProperty(promise, prop, { value: newValue, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (prop === 'then' && store.dynamicShouldError) { const expression = '`searchParams.then`'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); syncIODev(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); syncIODev(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; syncIODev(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } // Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but // just logging the sync access without actually defining the search params on // the promise. function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; warnForIncompleteEnumeration(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } function syncIODev(route, expression, missingProperties) { // In all cases we warn normally if (missingProperties && missingProperties.length > 0) { warnForIncompleteEnumeration(route, expression, missingProperties); } else { warnForSyncAccess(route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'request': if (workUnitStore.prerenderPhase === true) { // When we're rendering dynamically in dev, we need to advance out of // the Prerender environment when we read Request data synchronously. (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore); } break; case 'prerender': case 'prerender-client': case 'prerender-runtime': case 'prerender-ppr': case 'prerender-legacy': case 'cache': case 'private-cache': case 'unstable-cache': break; default: workUnitStore; } } } const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError); const warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError); function createSearchAccessError(route, expression) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E249", enumerable: false, configurable: true }); } function createIncompleteEnumerationError(route, expression, missingProperties) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E2", enumerable: false, configurable: true }); } function describeListOfPropertyNames(properties) { switch(properties.length){ case 0: throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), "__NEXT_ERROR_CODE", { value: "E531", enumerable: false, configurable: true }); case 1: return `\`${properties[0]}\``; case 2: return `\`${properties[0]}\` and \`${properties[1]}\``; default: { let description = ''; for(let i = 0; i < properties.length - 1; i++){ description += `\`${properties[i]}\`, `; } description += `, and \`${properties[properties.length - 1]}\``; return description; } } } //# sourceMappingURL=search-params.js.map°012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873400undefined11011107__webpack_require__undefined1109114892835undefined11781184__webpack_require__undefined1186121841179undefined12601266__webpack_require__undefined1268131563033undefined13431349__webpack_require__undefined1351138426521undefined14191425__webpack_require__undefined1427145444748undefined15081514__webpack_require__undefined1516156668414undefined15921598__webpack_require__undefined1600163785449undefined16561662__webpack_require__undefined1664167291695undefined73197353 falseundefined735774050undefined77587795falseundefined77988353{}undefined83788412falseundefined84158503{}undefined /***/ }) Îþÿÿ¿|/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createPrerenderSearchParamsForClientPage: function() { return createPrerenderSearchParamsForClientPage; }, createSearchParamsFromClient: function() { return createSearchParamsFromClient; }, createServerSearchParamsForMetadata: function() { return createServerSearchParamsForMetadata; }, createServerSearchParamsForServerPage: function() { return createServerSearchParamsForServerPage; }, makeErroringSearchParamsForUseCache: function() { return makeErroringSearchParamsForUseCache; } }); const _reflect = __webpack_require__(92835); const _dynamicrendering = __webpack_require__(41179); const _workunitasyncstorageexternal = __webpack_require__(63033); const _invarianterror = __webpack_require__(26521); const _dynamicrenderingutils = __webpack_require__(44748); const _creatededupedbycallsiteservererrorlogger = __webpack_require__(68414); const _reflectutils = __webpack_require__(85449); const _utils = __webpack_require__(91695); function createSearchParamsFromClient(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E769", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E739", enumerable: false, configurable: true }); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } const createServerSearchParamsForMetadata = createServerSearchParamsForServerPage; function createServerSearchParamsForServerPage(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E747", enumerable: false, configurable: true }); case 'prerender-runtime': return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createPrerenderSearchParamsForClientPage(workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': // We're prerendering in a mode that aborts (cacheComponents) and should stall // the promise to ensure the RSC side is considered dynamic return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`'); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E768", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E746", enumerable: false, configurable: true }); case 'prerender-ppr': case 'prerender-legacy': case 'request': return Promise.resolve({}); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createStaticPrerenderSearchParams(workStore, prerenderStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } switch(prerenderStore.type){ case 'prerender': case 'prerender-client': // We are in a cacheComponents (PPR or otherwise) prerender return makeHangingSearchParams(workStore, prerenderStore); case 'prerender-ppr': case 'prerender-legacy': // We are in a legacy static generation and need to interrupt the // prerender when search params are accessed. return makeErroringExoticSearchParams(workStore, prerenderStore); default: return prerenderStore; } } function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) { return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticSearchParams(underlyingSearchParams)); } function createRenderSearchParams(underlyingSearchParams, workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } else { if (false) {} else { if (false) {} return makeUntrackedExoticSearchParams(underlyingSearchParams); } } } const CachedSearchParams = new WeakMap(); const CachedSearchParamsForUseCache = new WeakMap(); function makeHangingSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(prerenderStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`'); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } default: { return _reflect.ReflectAdapter.get(target, prop, receiver); } } } }); CachedSearchParams.set(prerenderStore, proxiedPromise); return proxiedPromise; } function makeErroringExoticSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const underlyingSearchParams = {}; // For search params we don't construct a ReactPromise because we want to interrupt // rendering on any property access that was not set from outside and so we only want // to have properties like value and status if React sets them. const promise = Promise.resolve(underlyingSearchParams); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } default: { if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); } } }, has (target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests trigger dynamic. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string') { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return false; } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys () { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } }); CachedSearchParams.set(workStore, proxiedPromise); return proxiedPromise; } function makeErroringSearchParamsForUseCache(workStore) { const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve({}); const proxiedPromise = new Proxy(promise, { get: function get(target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. We know it // isn't a dynamic access because it can only be something that was // previously written to the promise and thus not an underlying // searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get); } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has: function has(target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests throw an error. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has); } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys: function ownKeys() { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys); } }); CachedSearchParamsForUseCache.set(workStore, proxiedPromise); return proxiedPromise; } function makeUntrackedExoticSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (!_reflectutils.wellKnownProperties.has(prop)) { Object.defineProperty(promise, prop, { get () { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } return underlyingSearchParams[prop]; }, set (value) { Object.defineProperty(promise, prop, { value, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); return promise; } function makeUntrackedSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); return promise; } function makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise. let promiseInitialized = false; const proxiedUnderlying = new Proxy(underlyingSearchParams, { get (target, prop, receiver) { if (typeof prop === 'string' && promiseInitialized) { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { if (store.dynamicShouldError) { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } return Reflect.ownKeys(target); } }); // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); promise.then(()=>{ promiseInitialized = true; }); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); Object.defineProperty(promise, prop, { get () { return proxiedUnderlying[prop]; }, set (newValue) { Object.defineProperty(promise, prop, { value: newValue, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (prop === 'then' && store.dynamicShouldError) { const expression = '`searchParams.then`'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); syncIODev(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); syncIODev(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; syncIODev(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } // Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but // just logging the sync access without actually defining the search params on // the promise. function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; warnForIncompleteEnumeration(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } function syncIODev(route, expression, missingProperties) { // In all cases we warn normally if (missingProperties && missingProperties.length > 0) { warnForIncompleteEnumeration(route, expression, missingProperties); } else { warnForSyncAccess(route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'request': if (workUnitStore.prerenderPhase === true) { // When we're rendering dynamically in dev, we need to advance out of // the Prerender environment when we read Request data synchronously. (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore); } break; case 'prerender': case 'prerender-client': case 'prerender-runtime': case 'prerender-ppr': case 'prerender-legacy': case 'cache': case 'private-cache': case 'unstable-cache': break; default: workUnitStore; } } } const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError); const warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError); function createSearchAccessError(route, expression) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E249", enumerable: false, configurable: true }); } function createIncompleteEnumerationError(route, expression, missingProperties) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E2", enumerable: false, configurable: true }); } function describeListOfPropertyNames(properties) { switch(properties.length){ case 0: throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), "__NEXT_ERROR_CODE", { value: "E531", enumerable: false, configurable: true }); case 1: return `\`${properties[0]}\``; case 2: return `\`${properties[0]}\` and \`${properties[1]}\``; default: { let description = ''; for(let i = 0; i < properties.length - 1; i++){ description += `\`${properties[i]}\`, `; } description += `, and \`${properties[properties.length - 1]}\``; return description; } } } //# sourceMappingURL=search-params.js.map /***/ }) ÏþÿÿÒþÿÿ ÓþÿÿíþÿÿÕþÿÿ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { createPrerenderSearchParamsForClientPage: null, createSearchParamsFromClient: null, createServerSearchParamsForMetadata: null, createServerSearchParamsForServerPage: null, makeErroringSearchParamsForUseCache: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createPrerenderSearchParamsForClientPage: function() { return createPrerenderSearchParamsForClientPage; }, createSearchParamsFromClient: function() { return createSearchParamsFromClient; }, createServerSearchParamsForMetadata: function() { return createServerSearchParamsForMetadata; }, createServerSearchParamsForServerPage: function() { return createServerSearchParamsForServerPage; }, makeErroringSearchParamsForUseCache: function() { return makeErroringSearchParamsForUseCache; } }); const _reflect = require("../web/spec-extension/adapters/reflect"); const _dynamicrendering = require("../app-render/dynamic-rendering"); const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); const _invarianterror = require("../../shared/lib/invariant-error"); const _dynamicrenderingutils = require("../dynamic-rendering-utils"); const _creatededupedbycallsiteservererrorlogger = require("../create-deduped-by-callsite-server-error-logger"); const _reflectutils = require("../../shared/lib/utils/reflect-utils"); const _utils = require("./utils"); function createSearchParamsFromClient(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E769", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E739", enumerable: false, configurable: true }); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } const createServerSearchParamsForMetadata = createServerSearchParamsForServerPage; function createServerSearchParamsForServerPage(underlyingSearchParams, workStore) { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': return createStaticPrerenderSearchParams(workStore, workUnitStore); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E747", enumerable: false, configurable: true }); case 'prerender-runtime': return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore); case 'request': return createRenderSearchParams(underlyingSearchParams, workStore); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createPrerenderSearchParamsForClientPage(workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': // We're prerendering in a mode that aborts (cacheComponents) and should stall // the promise to ensure the RSC side is considered dynamic return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`'); case 'prerender-runtime': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { value: "E768", enumerable: false, configurable: true }); case 'cache': case 'private-cache': case 'unstable-cache': throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { value: "E746", enumerable: false, configurable: true }); case 'prerender-ppr': case 'prerender-legacy': case 'request': return Promise.resolve({}); default: workUnitStore; } } (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); } function createStaticPrerenderSearchParams(workStore, prerenderStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } switch(prerenderStore.type){ case 'prerender': case 'prerender-client': // We are in a cacheComponents (PPR or otherwise) prerender return makeHangingSearchParams(workStore, prerenderStore); case 'prerender-ppr': case 'prerender-legacy': // We are in a legacy static generation and need to interrupt the // prerender when search params are accessed. return makeErroringExoticSearchParams(workStore, prerenderStore); default: return prerenderStore; } } function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) { return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, process.env.__NEXT_CACHE_COMPONENTS ? makeUntrackedSearchParams(underlyingSearchParams) : makeUntrackedExoticSearchParams(underlyingSearchParams)); } function createRenderSearchParams(underlyingSearchParams, workStore) { if (workStore.forceStatic) { // When using forceStatic we override all other logic and always just return an empty // dictionary object. return Promise.resolve({}); } else { if (process.env.NODE_ENV === 'development') { // Semantically we only need the dev tracking when running in `next dev` // but since you would never use next dev with production NODE_ENV we use this // as a proxy so we can statically exclude this code from production builds. if (process.env.__NEXT_CACHE_COMPONENTS) { return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore); } return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore); } else { if (process.env.__NEXT_CACHE_COMPONENTS) { return makeUntrackedSearchParams(underlyingSearchParams); } return makeUntrackedExoticSearchParams(underlyingSearchParams); } } } const CachedSearchParams = new WeakMap(); const CachedSearchParamsForUseCache = new WeakMap(); function makeHangingSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(prerenderStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`'); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); return _reflect.ReflectAdapter.get(target, prop, receiver); } default: { return _reflect.ReflectAdapter.get(target, prop, receiver); } } } }); CachedSearchParams.set(prerenderStore, proxiedPromise); return proxiedPromise; } function makeErroringExoticSearchParams(workStore, prerenderStore) { const cachedSearchParams = CachedSearchParams.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const underlyingSearchParams = {}; // For search params we don't construct a ReactPromise because we want to interrupt // rendering on any property access that was not set from outside and so we only want // to have properties like value and status if React sets them. const promise = Promise.resolve(underlyingSearchParams); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. // We know it isn't a dynamic access because it can only be something // that was previously written to the promise and thus not an underlying searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } switch(prop){ case 'then': { const expression = '`await searchParams`, `searchParams.then`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } case 'status': { const expression = '`use(searchParams)`, `searchParams.status`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return; } default: { if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); } } }, has (target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests trigger dynamic. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string') { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } return false; } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys () { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; if (workStore.dynamicShouldError) { (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); } else if (prerenderStore.type === 'prerender-ppr') { // PPR Prerender (no cacheComponents) (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); } else { // Legacy Prerender (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); } } }); CachedSearchParams.set(workStore, proxiedPromise); return proxiedPromise; } function makeErroringSearchParamsForUseCache(workStore) { const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve({}); const proxiedPromise = new Proxy(promise, { get: function get(target, prop, receiver) { if (Object.hasOwn(promise, prop)) { // The promise has this property directly. we must return it. We know it // isn't a dynamic access because it can only be something that was // previously written to the promise and thus not an underlying // searchParam value return _reflect.ReflectAdapter.get(target, prop, receiver); } if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get); } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has: function has(target, prop) { // We don't expect key checking to be used except for testing the existence of // searchParams so we make all has tests throw an error. this means that `promise.then` // can resolve to the then function on the Promise prototype but 'then' in promise will assume // you are testing whether the searchParams has a 'then' property. if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has); } return _reflect.ReflectAdapter.has(target, prop); }, ownKeys: function ownKeys() { (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys); } }); CachedSearchParamsForUseCache.set(workStore, proxiedPromise); return proxiedPromise; } function makeUntrackedExoticSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (!_reflectutils.wellKnownProperties.has(prop)) { Object.defineProperty(promise, prop, { get () { const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } return underlyingSearchParams[prop]; }, set (value) { Object.defineProperty(promise, prop, { value, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); return promise; } function makeUntrackedSearchParams(underlyingSearchParams) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const promise = Promise.resolve(underlyingSearchParams); CachedSearchParams.set(underlyingSearchParams, promise); return promise; } function makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise. let promiseInitialized = false; const proxiedUnderlying = new Proxy(underlyingSearchParams, { get (target, prop, receiver) { if (typeof prop === 'string' && promiseInitialized) { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (store.dynamicShouldError) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { if (store.dynamicShouldError) { const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } return Reflect.ownKeys(target); } }); // We don't use makeResolvedReactPromise here because searchParams // supports copying with spread and we don't want to unnecessarily // instrument the promise with spreadable properties of ReactPromise. const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); promise.then(()=>{ promiseInitialized = true; }); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); Object.defineProperty(promise, prop, { get () { return proxiedUnderlying[prop]; }, set (newValue) { Object.defineProperty(promise, prop, { value: newValue, writable: true, enumerable: true }); }, enumerable: true, configurable: true }); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (prop === 'then' && store.dynamicShouldError) { const expression = '`searchParams.then`'; (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); } if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); syncIODev(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); syncIODev(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; syncIODev(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } // Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but // just logging the sync access without actually defining the search params on // the promise. function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) { const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); if (cachedSearchParams) { return cachedSearchParams; } const proxiedProperties = new Set(); const unproxiedProperties = []; const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); Object.keys(underlyingSearchParams).forEach((prop)=>{ if (_reflectutils.wellKnownProperties.has(prop)) { // These properties cannot be shadowed because they need to be the // true underlying value for Promises to work correctly at runtime unproxiedProperties.push(prop); } else { proxiedProperties.add(prop); } }); const proxiedPromise = new Proxy(promise, { get (target, prop, receiver) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return _reflect.ReflectAdapter.get(target, prop, receiver); }, set (target, prop, value, receiver) { if (typeof prop === 'string') { proxiedProperties.delete(prop); } return Reflect.set(target, prop, value, receiver); }, has (target, prop) { if (typeof prop === 'string') { if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor // the underlying searchParams. Reflect.has(target, prop) === false)) { const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); warnForSyncAccess(store.route, expression); } } return Reflect.has(target, prop); }, ownKeys (target) { const expression = '`Object.keys(searchParams)` or similar'; warnForIncompleteEnumeration(store.route, expression, unproxiedProperties); return Reflect.ownKeys(target); } }); CachedSearchParams.set(underlyingSearchParams, proxiedPromise); return proxiedPromise; } function syncIODev(route, expression, missingProperties) { // In all cases we warn normally if (missingProperties && missingProperties.length > 0) { warnForIncompleteEnumeration(route, expression, missingProperties); } else { warnForSyncAccess(route, expression); } const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); if (workUnitStore) { switch(workUnitStore.type){ case 'request': if (workUnitStore.prerenderPhase === true) { // When we're rendering dynamically in dev, we need to advance out of // the Prerender environment when we read Request data synchronously. (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore); } break; case 'prerender': case 'prerender-client': case 'prerender-runtime': case 'prerender-ppr': case 'prerender-legacy': case 'cache': case 'private-cache': case 'unstable-cache': break; default: workUnitStore; } } } const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError); const warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError); function createSearchAccessError(route, expression) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E249", enumerable: false, configurable: true }); } function createIncompleteEnumerationError(route, expression, missingProperties) { const prefix = route ? `Route "${route}" ` : 'This route '; return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { value: "E2", enumerable: false, configurable: true }); } function describeListOfPropertyNames(properties) { switch(properties.length){ case 0: throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), "__NEXT_ERROR_CODE", { value: "E531", enumerable: false, configurable: true }); case 1: return `\`${properties[0]}\``; case 2: return `\`${properties[0]}\` and \`${properties[1]}\``; default: { let description = ''; for(let i = 0; i < properties.length - 1; i++){ description += `\`${properties[i]}\`, `; } description += `, and \`${properties[properties.length - 1]}\``; return description; } } } //# sourceMappingURL=search-params.js.map°012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873400undefined11011107__webpack_require__undefined1109114892835undefined11781184__webpack_require__undefined1186121841179undefined12601266__webpack_require__undefined1268131563033undefined13431349__webpack_require__undefined1351138426521undefined14191425__webpack_require__undefined1427145444748undefined15081514__webpack_require__undefined1516156668414undefined15921598__webpack_require__undefined1600163785449undefined16561662__webpack_require__undefined1664167291695undefined73197353 falseundefined735774050undefined77587795falseundefined77988353{}undefined83788412falseundefined84158503{}undefinedÖþÿÿ×þÿÿ, /***/ 12786:  V«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource-/***/ ((module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ϋwebpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceë"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { UnrecognizedActionError: null, unstable_isUnrecognizedActionError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { UnrecognizedActionError: function() { return UnrecognizedActionError; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; } }); class UnrecognizedActionError extends Error { constructor(...args){ super(...args); this.name = 'UnrecognizedActionError'; } } function unstable_isUnrecognizedActionError(error) { return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unrecognized-action-error.js.map e :NNW@º€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hash} Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { UnrecognizedActionError: function() { return UnrecognizedActionError; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; } }); class UnrecognizedActionError extends Error { constructor(...args){ super(...args); this.name = 'UnrecognizedActionError'; } } function unstable_isUnrecognizedActionError(error) { return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unrecognized-action-error.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceë"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { UnrecognizedActionError: null, unstable_isUnrecognizedActionError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { UnrecognizedActionError: function() { return UnrecognizedActionError; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; } }); class UnrecognizedActionError extends Error { constructor(...args){ super(...args); this.name = 'UnrecognizedActionError'; } } function unstable_isUnrecognizedActionError(error) { return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unrecognized-action-error.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871860undefined /***/ }) Äþÿÿ´/***/ ((module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { UnrecognizedActionError: function() { return UnrecognizedActionError; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; } }); class UnrecognizedActionError extends Error { constructor(...args){ super(...args); this.name = 'UnrecognizedActionError'; } } function unstable_isUnrecognizedActionError(error) { return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unrecognized-action-error.js.map /***/ }) ÅþÿÿÈþÿÿ ÉþÿÿØþÿÿËþÿÿë"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { UnrecognizedActionError: null, unstable_isUnrecognizedActionError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { UnrecognizedActionError: function() { return UnrecognizedActionError; }, unstable_isUnrecognizedActionError: function() { return unstable_isUnrecognizedActionError; } }); class UnrecognizedActionError extends Error { constructor(...args){ super(...args); this.name = 'UnrecognizedActionError'; } } function unstable_isUnrecognizedActionError(error) { return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unrecognized-action-error.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871860undefinedÌþÿÿÍþÿÿ, /***/ 13075:  Ø«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource u«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceï/** * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework. * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling. * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing. * * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow) */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "unstable_rethrow", { enumerable: true, get: function() { return unstable_rethrow; } }); const unstable_rethrow = "undefined" === 'undefined' ? require('./unstable-rethrow.server').unstable_rethrow : require('./unstable-rethrow.browser').unstable_rethrow; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unstable-rethrow.js.map Oë÷ù%99<nÅÅáûÿ37l€®Object.defineProperty(exports, "__esModule", (‚))´Object.defineProperty(exports, "unstable_rethrow", (þ… true­(__webpack_require__(40354).unstable_rethrow)0€†buffer†source„size„maps„hash“/** * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework. * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling. * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing. * * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow) */ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "unstable_rethrow", ({ enumerable: true, get: function() { return unstable_rethrow; } })); const unstable_rethrow = true ? (__webpack_require__(40354).unstable_rethrow) : 0; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unstable-rethrow.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceï/** * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework. * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling. * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing. * * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow) */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "unstable_rethrow", { enumerable: true, get: function() { return unstable_rethrow; } }); const unstable_rethrow = "undefined" === 'undefined' ? require('./unstable-rethrow.server').unstable_rethrow : require('./unstable-rethrow.browser').unstable_rethrow; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unstable-rethrow.js.map 491503undefined505549Object.defineProperty(exports, "__esModule", (undefined569569))undefined572622Object.defineProperty(exports, "unstable_rethrow", (undefined709709))undefined737763 trueundefined767819(__webpack_require__(40354).unstable_rethrow)undefined8238760undefined /***/ }) ºþÿÿß/***/ ((module, exports, __webpack_require__) => { "use strict"; /** * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework. * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling. * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing. * * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow) */ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "unstable_rethrow", ({ enumerable: true, get: function() { return unstable_rethrow; } })); const unstable_rethrow = true ? (__webpack_require__(40354).unstable_rethrow) : 0; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unstable-rethrow.js.map /***/ }) »þÿÿ¾þÿÿ ¿þÿÿÀþÿÿÁþÿÿï/** * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework. * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling. * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing. * * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow) */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "unstable_rethrow", { enumerable: true, get: function() { return unstable_rethrow; } }); const unstable_rethrow = "undefined" === 'undefined' ? require('./unstable-rethrow.server').unstable_rethrow : require('./unstable-rethrow.browser').unstable_rethrow; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=unstable-rethrow.js.map 491503undefined505549Object.defineProperty(exports, "__esModule", (undefined569569))undefined572622Object.defineProperty(exports, "unstable_rethrow", (undefined709709))undefined737763 trueundefined767819(__webpack_require__(40354).unstable_rethrow)undefined8238760undefinedÂþÿÿÃþÿÿ, /***/ 13136:  Z«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource-/***/ ((module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ` «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource} "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ACTION_HMR_REFRESH: null, ACTION_NAVIGATE: null, ACTION_PREFETCH: null, ACTION_REFRESH: null, ACTION_RESTORE: null, ACTION_SERVER_ACTION: null, ACTION_SERVER_PATCH: null, PrefetchCacheEntryStatus: null, PrefetchKind: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ACTION_HMR_REFRESH: function() { return ACTION_HMR_REFRESH; }, ACTION_NAVIGATE: function() { return ACTION_NAVIGATE; }, ACTION_PREFETCH: function() { return ACTION_PREFETCH; }, ACTION_REFRESH: function() { return ACTION_REFRESH; }, ACTION_RESTORE: function() { return ACTION_RESTORE; }, ACTION_SERVER_ACTION: function() { return ACTION_SERVER_ACTION; }, ACTION_SERVER_PATCH: function() { return ACTION_SERVER_PATCH; }, PrefetchCacheEntryStatus: function() { return PrefetchCacheEntryStatus; }, PrefetchKind: function() { return PrefetchKind; } }); const ACTION_REFRESH = 'refresh'; const ACTION_NAVIGATE = 'navigate'; const ACTION_RESTORE = 'restore'; const ACTION_SERVER_PATCH = 'server-patch'; const ACTION_PREFETCH = 'prefetch'; const ACTION_HMR_REFRESH = 'hmr-refresh'; const ACTION_SERVER_ACTION = 'server-action'; var PrefetchKind = /*#__PURE__*/ function(PrefetchKind) { PrefetchKind["AUTO"] = "auto"; PrefetchKind["FULL"] = "full"; PrefetchKind["TEMPORARY"] = "temporary"; return PrefetchKind; }({}); var PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) { PrefetchCacheEntryStatus["fresh"] = "fresh"; PrefetchCacheEntryStatus["reusable"] = "reusable"; PrefetchCacheEntryStatus["expired"] = "expired"; PrefetchCacheEntryStatus["stale"] = "stale"; return PrefetchCacheEntryStatus; }({}); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=router-reducer-types.js.map e :NNW@l€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hash] Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ACTION_HMR_REFRESH: function() { return ACTION_HMR_REFRESH; }, ACTION_NAVIGATE: function() { return ACTION_NAVIGATE; }, ACTION_PREFETCH: function() { return ACTION_PREFETCH; }, ACTION_REFRESH: function() { return ACTION_REFRESH; }, ACTION_RESTORE: function() { return ACTION_RESTORE; }, ACTION_SERVER_ACTION: function() { return ACTION_SERVER_ACTION; }, ACTION_SERVER_PATCH: function() { return ACTION_SERVER_PATCH; }, PrefetchCacheEntryStatus: function() { return PrefetchCacheEntryStatus; }, PrefetchKind: function() { return PrefetchKind; } }); const ACTION_REFRESH = 'refresh'; const ACTION_NAVIGATE = 'navigate'; const ACTION_RESTORE = 'restore'; const ACTION_SERVER_PATCH = 'server-patch'; const ACTION_PREFETCH = 'prefetch'; const ACTION_HMR_REFRESH = 'hmr-refresh'; const ACTION_SERVER_ACTION = 'server-action'; var PrefetchKind = /*#__PURE__*/ function(PrefetchKind) { PrefetchKind["AUTO"] = "auto"; PrefetchKind["FULL"] = "full"; PrefetchKind["TEMPORARY"] = "temporary"; return PrefetchKind; }({}); var PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) { PrefetchCacheEntryStatus["fresh"] = "fresh"; PrefetchCacheEntryStatus["reusable"] = "reusable"; PrefetchCacheEntryStatus["expired"] = "expired"; PrefetchCacheEntryStatus["stale"] = "stale"; return PrefetchCacheEntryStatus; }({}); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=router-reducer-types.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource} "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ACTION_HMR_REFRESH: null, ACTION_NAVIGATE: null, ACTION_PREFETCH: null, ACTION_REFRESH: null, ACTION_RESTORE: null, ACTION_SERVER_ACTION: null, ACTION_SERVER_PATCH: null, PrefetchCacheEntryStatus: null, PrefetchKind: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ACTION_HMR_REFRESH: function() { return ACTION_HMR_REFRESH; }, ACTION_NAVIGATE: function() { return ACTION_NAVIGATE; }, ACTION_PREFETCH: function() { return ACTION_PREFETCH; }, ACTION_REFRESH: function() { return ACTION_REFRESH; }, ACTION_RESTORE: function() { return ACTION_RESTORE; }, ACTION_SERVER_ACTION: function() { return ACTION_SERVER_ACTION; }, ACTION_SERVER_PATCH: function() { return ACTION_SERVER_PATCH; }, PrefetchCacheEntryStatus: function() { return PrefetchCacheEntryStatus; }, PrefetchKind: function() { return PrefetchKind; } }); const ACTION_REFRESH = 'refresh'; const ACTION_NAVIGATE = 'navigate'; const ACTION_RESTORE = 'restore'; const ACTION_SERVER_PATCH = 'server-patch'; const ACTION_PREFETCH = 'prefetch'; const ACTION_HMR_REFRESH = 'hmr-refresh'; const ACTION_SERVER_ACTION = 'server-action'; var PrefetchKind = /*#__PURE__*/ function(PrefetchKind) { PrefetchKind["AUTO"] = "auto"; PrefetchKind["FULL"] = "full"; PrefetchKind["TEMPORARY"] = "temporary"; return PrefetchKind; }({}); var PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) { PrefetchCacheEntryStatus["fresh"] = "fresh"; PrefetchCacheEntryStatus["reusable"] = "reusable"; PrefetchCacheEntryStatus["expired"] = "expired"; PrefetchCacheEntryStatus["stale"] = "stale"; return PrefetchCacheEntryStatus; }({}); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=router-reducer-types.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873640undefined /***/ }) °þÿÿ”/***/ ((module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ACTION_HMR_REFRESH: function() { return ACTION_HMR_REFRESH; }, ACTION_NAVIGATE: function() { return ACTION_NAVIGATE; }, ACTION_PREFETCH: function() { return ACTION_PREFETCH; }, ACTION_REFRESH: function() { return ACTION_REFRESH; }, ACTION_RESTORE: function() { return ACTION_RESTORE; }, ACTION_SERVER_ACTION: function() { return ACTION_SERVER_ACTION; }, ACTION_SERVER_PATCH: function() { return ACTION_SERVER_PATCH; }, PrefetchCacheEntryStatus: function() { return PrefetchCacheEntryStatus; }, PrefetchKind: function() { return PrefetchKind; } }); const ACTION_REFRESH = 'refresh'; const ACTION_NAVIGATE = 'navigate'; const ACTION_RESTORE = 'restore'; const ACTION_SERVER_PATCH = 'server-patch'; const ACTION_PREFETCH = 'prefetch'; const ACTION_HMR_REFRESH = 'hmr-refresh'; const ACTION_SERVER_ACTION = 'server-action'; var PrefetchKind = /*#__PURE__*/ function(PrefetchKind) { PrefetchKind["AUTO"] = "auto"; PrefetchKind["FULL"] = "full"; PrefetchKind["TEMPORARY"] = "temporary"; return PrefetchKind; }({}); var PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) { PrefetchCacheEntryStatus["fresh"] = "fresh"; PrefetchCacheEntryStatus["reusable"] = "reusable"; PrefetchCacheEntryStatus["expired"] = "expired"; PrefetchCacheEntryStatus["stale"] = "stale"; return PrefetchCacheEntryStatus; }({}); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=router-reducer-types.js.map /***/ }) ±þÿÿ´þÿÿ µþÿÿÄþÿÿ·þÿÿ} "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ACTION_HMR_REFRESH: null, ACTION_NAVIGATE: null, ACTION_PREFETCH: null, ACTION_REFRESH: null, ACTION_RESTORE: null, ACTION_SERVER_ACTION: null, ACTION_SERVER_PATCH: null, PrefetchCacheEntryStatus: null, PrefetchKind: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ACTION_HMR_REFRESH: function() { return ACTION_HMR_REFRESH; }, ACTION_NAVIGATE: function() { return ACTION_NAVIGATE; }, ACTION_PREFETCH: function() { return ACTION_PREFETCH; }, ACTION_REFRESH: function() { return ACTION_REFRESH; }, ACTION_RESTORE: function() { return ACTION_RESTORE; }, ACTION_SERVER_ACTION: function() { return ACTION_SERVER_ACTION; }, ACTION_SERVER_PATCH: function() { return ACTION_SERVER_PATCH; }, PrefetchCacheEntryStatus: function() { return PrefetchCacheEntryStatus; }, PrefetchKind: function() { return PrefetchKind; } }); const ACTION_REFRESH = 'refresh'; const ACTION_NAVIGATE = 'navigate'; const ACTION_RESTORE = 'restore'; const ACTION_SERVER_PATCH = 'server-patch'; const ACTION_PREFETCH = 'prefetch'; const ACTION_HMR_REFRESH = 'hmr-refresh'; const ACTION_SERVER_ACTION = 'server-action'; var PrefetchKind = /*#__PURE__*/ function(PrefetchKind) { PrefetchKind["AUTO"] = "auto"; PrefetchKind["FULL"] = "full"; PrefetchKind["TEMPORARY"] = "temporary"; return PrefetchKind; }({}); var PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) { PrefetchCacheEntryStatus["fresh"] = "fresh"; PrefetchCacheEntryStatus["reusable"] = "reusable"; PrefetchCacheEntryStatus["expired"] = "expired"; PrefetchCacheEntryStatus["stale"] = "stale"; return PrefetchCacheEntryStatus; }({}); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=router-reducer-types.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873640undefined¸þÿÿ¹þÿÿ, /***/ 13355:  @«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource I«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceÜ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "handleSegmentMismatch", { enumerable: true, get: function() { return handleSegmentMismatch; } }); const _navigatereducer = require("./reducers/navigate-reducer"); function handleSegmentMismatch(state, action, treePatch) { if ("production" === 'development') { console.warn('Performing hard navigation because your application experienced an unrecoverable error. If this keeps occurring, please file a Next.js issue.\n\n' + 'Reason: Segment mismatch\n' + ("Last Action: " + action.type + "\n\n") + ("Current Tree: " + JSON.stringify(state.tree) + "\n\n") + ("Tree Patch Payload: " + JSON.stringify(treePatch))); } return (0, _navigatereducer.handleExternalUrl)(state, {}, state.canonicalUrl, true); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=handle-segment-mismatch.js.map  e :NNQJˆää$kˆ‹ø€®Object.defineProperty(exports, "__esModule", (‚))¹Object.defineProperty(exports, "handleSegmentMismatch", (þ“__webpack_require__…15426…false‚{}€†buffer†source„size„maps„hashB Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "handleSegmentMismatch", ({ enumerable: true, get: function() { return handleSegmentMismatch; } })); const _navigatereducer = __webpack_require__(15426); function handleSegmentMismatch(state, action, treePatch) { if (false) {} return (0, _navigatereducer.handleExternalUrl)(state, {}, state.canonicalUrl, true); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=handle-segment-mismatch.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceÜ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "handleSegmentMismatch", { enumerable: true, get: function() { return handleSegmentMismatch; } }); const _navigatereducer = require("./reducers/navigate-reducer"); function handleSegmentMismatch(state, action, treePatch) { if ("production" === 'development') { console.warn('Performing hard navigation because your application experienced an unrecoverable error. If this keeps occurring, please file a Next.js issue.\n\n' + 'Reason: Segment mismatch\n' + ("Last Action: " + action.type + "\n\n") + ("Current Tree: " + JSON.stringify(state.tree) + "\n\n") + ("Tree Patch Payload: " + JSON.stringify(treePatch))); } return (0, _navigatereducer.handleExternalUrl)(state, {}, state.canonicalUrl, true); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=handle-segment-mismatch.js.map  012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81136Object.defineProperty(exports, "handleSegmentMismatch", (undefined228228))undefined256262__webpack_require__undefined26429215426undefined363392falseundefined395760{}undefined /***/ }) ¦þÿÿŽ/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "handleSegmentMismatch", ({ enumerable: true, get: function() { return handleSegmentMismatch; } })); const _navigatereducer = __webpack_require__(15426); function handleSegmentMismatch(state, action, treePatch) { if (false) {} return (0, _navigatereducer.handleExternalUrl)(state, {}, state.canonicalUrl, true); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=handle-segment-mismatch.js.map /***/ }) §þÿÿªþÿÿ «þÿÿ¬þÿÿ­þÿÿÜ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "handleSegmentMismatch", { enumerable: true, get: function() { return handleSegmentMismatch; } }); const _navigatereducer = require("./reducers/navigate-reducer"); function handleSegmentMismatch(state, action, treePatch) { if ("production" === 'development') { console.warn('Performing hard navigation because your application experienced an unrecoverable error. If this keeps occurring, please file a Next.js issue.\n\n' + 'Reason: Segment mismatch\n' + ("Last Action: " + action.type + "\n\n") + ("Current Tree: " + JSON.stringify(state.tree) + "\n\n") + ("Tree Patch Payload: " + JSON.stringify(treePatch))); } return (0, _navigatereducer.handleExternalUrl)(state, {}, state.canonicalUrl, true); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=handle-segment-mismatch.js.map  012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81136Object.defineProperty(exports, "handleSegmentMismatch", (undefined228228))undefined256262__webpack_require__undefined26429215426undefined363392falseundefined395760{}undefined®þÿÿ¯þÿÿ, /***/ 14132:  ˆ«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourcek/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ù«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceÑ__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_wildcard) /* harmony export */ }); «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSourcefunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) return obj; if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj }; var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) return cache.get(obj); var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; } export { _interop_require_wildcard as _ }; AÜ€€†buffer†source„size„maps„hash®__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_wildcard) /* harmony export */ }); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) return obj; if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj }; var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) return cache.get(obj); var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; } €”{"finalSource":true}ƒmap‹bufferedMap ConcatSourceRawSourceÑ__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_wildcard) /* harmony export */ }); ReplaceSourceRawSourcefunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) return obj; if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj }; var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) return cache.get(obj); var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; } export { _interop_require_wildcard as _ }; 12441285undefined /***/ }) œþÿÿ#/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_wildcard) /* harmony export */ }); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) return obj; if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj }; var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) return cache.get(obj); var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; } /***/ }) þÿÿ þÿÿ  ¡þÿÿk/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict";  þÿÿÑ__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_wildcard) /* harmony export */ }); ¡þÿÿfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) return obj; if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj }; var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) return cache.get(obj); var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; } export { _interop_require_wildcard as _ }; 12441285undefined¢þÿÿ£þÿÿ, /***/ 14248:  n)«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource æ «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource÷ /** * Describes the different fallback modes that a given page can have. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { FallbackMode: null, fallbackModeToFallbackField: null, parseFallbackField: null, parseStaticPathsResult: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { FallbackMode: function() { return FallbackMode; }, fallbackModeToFallbackField: function() { return fallbackModeToFallbackField; }, parseFallbackField: function() { return parseFallbackField; }, parseStaticPathsResult: function() { return parseStaticPathsResult; } }); var FallbackMode = /*#__PURE__*/ function(FallbackMode) { /** * A BLOCKING_STATIC_RENDER fallback will block the request until the page is * generated. No fallback page will be rendered, and users will have to wait * to render the page. */ FallbackMode["BLOCKING_STATIC_RENDER"] = "BLOCKING_STATIC_RENDER"; /** * When set to PRERENDER, a fallback page will be sent to users in place of * forcing them to wait for the page to be generated. This allows the user to * see a rendered page earlier. */ FallbackMode["PRERENDER"] = "PRERENDER"; /** * When set to NOT_FOUND, pages that are not already prerendered will result * in a not found response. */ FallbackMode["NOT_FOUND"] = "NOT_FOUND"; return FallbackMode; }({}); function parseFallbackField(fallbackField) { if (typeof fallbackField === 'string') { return "PRERENDER"; } else if (fallbackField === null) { return "BLOCKING_STATIC_RENDER"; } else if (fallbackField === false) { return "NOT_FOUND"; } else if (fallbackField === undefined) { return undefined; } else { throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), "__NEXT_ERROR_CODE", { value: "E285", enumerable: false, configurable: true }); } } function fallbackModeToFallbackField(fallback, page) { switch(fallback){ case "BLOCKING_STATIC_RENDER": return null; case "NOT_FOUND": return false; case "PRERENDER": if (!page) { throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is "${fallback}"`), "__NEXT_ERROR_CODE", { value: "E422", enumerable: false, configurable: true }); } return page; default: throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), "__NEXT_ERROR_CODE", { value: "E254", enumerable: false, configurable: true }); } } function parseStaticPathsResult(result) { if (result === true) { return "PRERENDER"; } else if (result === 'blocking') { return "BLOCKING_STATIC_RENDER"; } else { return "NOT_FOUND"; } } //# sourceMappingURL=fallback.js.map bNZ\Dˆœœ¥6€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hash[ /** * Describes the different fallback modes that a given page can have. */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { FallbackMode: function() { return FallbackMode; }, fallbackModeToFallbackField: function() { return fallbackModeToFallbackField; }, parseFallbackField: function() { return parseFallbackField; }, parseStaticPathsResult: function() { return parseStaticPathsResult; } }); var FallbackMode = /*#__PURE__*/ function(FallbackMode) { /** * A BLOCKING_STATIC_RENDER fallback will block the request until the page is * generated. No fallback page will be rendered, and users will have to wait * to render the page. */ FallbackMode["BLOCKING_STATIC_RENDER"] = "BLOCKING_STATIC_RENDER"; /** * When set to PRERENDER, a fallback page will be sent to users in place of * forcing them to wait for the page to be generated. This allows the user to * see a rendered page earlier. */ FallbackMode["PRERENDER"] = "PRERENDER"; /** * When set to NOT_FOUND, pages that are not already prerendered will result * in a not found response. */ FallbackMode["NOT_FOUND"] = "NOT_FOUND"; return FallbackMode; }({}); function parseFallbackField(fallbackField) { if (typeof fallbackField === 'string') { return "PRERENDER"; } else if (fallbackField === null) { return "BLOCKING_STATIC_RENDER"; } else if (fallbackField === false) { return "NOT_FOUND"; } else if (fallbackField === undefined) { return undefined; } else { throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), "__NEXT_ERROR_CODE", { value: "E285", enumerable: false, configurable: true }); } } function fallbackModeToFallbackField(fallback, page) { switch(fallback){ case "BLOCKING_STATIC_RENDER": return null; case "NOT_FOUND": return false; case "PRERENDER": if (!page) { throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is "${fallback}"`), "__NEXT_ERROR_CODE", { value: "E422", enumerable: false, configurable: true }); } return page; default: throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), "__NEXT_ERROR_CODE", { value: "E254", enumerable: false, configurable: true }); } } function parseStaticPathsResult(result) { if (result === true) { return "PRERENDER"; } else if (result === 'blocking') { return "BLOCKING_STATIC_RENDER"; } else { return "NOT_FOUND"; } } //# sourceMappingURL=fallback.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource÷ /** * Describes the different fallback modes that a given page can have. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { FallbackMode: null, fallbackModeToFallbackField: null, parseFallbackField: null, parseStaticPathsResult: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { FallbackMode: function() { return FallbackMode; }, fallbackModeToFallbackField: function() { return fallbackModeToFallbackField; }, parseFallbackField: function() { return parseFallbackField; }, parseStaticPathsResult: function() { return parseStaticPathsResult; } }); var FallbackMode = /*#__PURE__*/ function(FallbackMode) { /** * A BLOCKING_STATIC_RENDER fallback will block the request until the page is * generated. No fallback page will be rendered, and users will have to wait * to render the page. */ FallbackMode["BLOCKING_STATIC_RENDER"] = "BLOCKING_STATIC_RENDER"; /** * When set to PRERENDER, a fallback page will be sent to users in place of * forcing them to wait for the page to be generated. This allows the user to * see a rendered page earlier. */ FallbackMode["PRERENDER"] = "PRERENDER"; /** * When set to NOT_FOUND, pages that are not already prerendered will result * in a not found response. */ FallbackMode["NOT_FOUND"] = "NOT_FOUND"; return FallbackMode; }({}); function parseFallbackField(fallbackField) { if (typeof fallbackField === 'string') { return "PRERENDER"; } else if (fallbackField === null) { return "BLOCKING_STATIC_RENDER"; } else if (fallbackField === false) { return "NOT_FOUND"; } else if (fallbackField === undefined) { return undefined; } else { throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), "__NEXT_ERROR_CODE", { value: "E285", enumerable: false, configurable: true }); } } function fallbackModeToFallbackField(fallback, page) { switch(fallback){ case "BLOCKING_STATIC_RENDER": return null; case "NOT_FOUND": return false; case "PRERENDER": if (!page) { throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is "${fallback}"`), "__NEXT_ERROR_CODE", { value: "E422", enumerable: false, configurable: true }); } return page; default: throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), "__NEXT_ERROR_CODE", { value: "E254", enumerable: false, configurable: true }); } } function parseStaticPathsResult(result) { if (result === true) { return "PRERENDER"; } else if (result === 'blocking') { return "BLOCKING_STATIC_RENDER"; } else { return "NOT_FOUND"; } } //# sourceMappingURL=fallback.js.mapj7890undefined92136Object.defineProperty(exports, "__esModule", (undefined156156))undefined1653100undefined /***/ }) þÿÿ£ /***/ ((__unused_webpack_module, exports) => { "use strict"; /** * Describes the different fallback modes that a given page can have. */ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { FallbackMode: function() { return FallbackMode; }, fallbackModeToFallbackField: function() { return fallbackModeToFallbackField; }, parseFallbackField: function() { return parseFallbackField; }, parseStaticPathsResult: function() { return parseStaticPathsResult; } }); var FallbackMode = /*#__PURE__*/ function(FallbackMode) { /** * A BLOCKING_STATIC_RENDER fallback will block the request until the page is * generated. No fallback page will be rendered, and users will have to wait * to render the page. */ FallbackMode["BLOCKING_STATIC_RENDER"] = "BLOCKING_STATIC_RENDER"; /** * When set to PRERENDER, a fallback page will be sent to users in place of * forcing them to wait for the page to be generated. This allows the user to * see a rendered page earlier. */ FallbackMode["PRERENDER"] = "PRERENDER"; /** * When set to NOT_FOUND, pages that are not already prerendered will result * in a not found response. */ FallbackMode["NOT_FOUND"] = "NOT_FOUND"; return FallbackMode; }({}); function parseFallbackField(fallbackField) { if (typeof fallbackField === 'string') { return "PRERENDER"; } else if (fallbackField === null) { return "BLOCKING_STATIC_RENDER"; } else if (fallbackField === false) { return "NOT_FOUND"; } else if (fallbackField === undefined) { return undefined; } else { throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), "__NEXT_ERROR_CODE", { value: "E285", enumerable: false, configurable: true }); } } function fallbackModeToFallbackField(fallback, page) { switch(fallback){ case "BLOCKING_STATIC_RENDER": return null; case "NOT_FOUND": return false; case "PRERENDER": if (!page) { throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is "${fallback}"`), "__NEXT_ERROR_CODE", { value: "E422", enumerable: false, configurable: true }); } return page; default: throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), "__NEXT_ERROR_CODE", { value: "E254", enumerable: false, configurable: true }); } } function parseStaticPathsResult(result) { if (result === true) { return "PRERENDER"; } else if (result === 'blocking') { return "BLOCKING_STATIC_RENDER"; } else { return "NOT_FOUND"; } } //# sourceMappingURL=fallback.js.map /***/ }) ‘þÿÿ”þÿÿ •þÿÿØþÿÿ—þÿÿ÷ /** * Describes the different fallback modes that a given page can have. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { FallbackMode: null, fallbackModeToFallbackField: null, parseFallbackField: null, parseStaticPathsResult: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { FallbackMode: function() { return FallbackMode; }, fallbackModeToFallbackField: function() { return fallbackModeToFallbackField; }, parseFallbackField: function() { return parseFallbackField; }, parseStaticPathsResult: function() { return parseStaticPathsResult; } }); var FallbackMode = /*#__PURE__*/ function(FallbackMode) { /** * A BLOCKING_STATIC_RENDER fallback will block the request until the page is * generated. No fallback page will be rendered, and users will have to wait * to render the page. */ FallbackMode["BLOCKING_STATIC_RENDER"] = "BLOCKING_STATIC_RENDER"; /** * When set to PRERENDER, a fallback page will be sent to users in place of * forcing them to wait for the page to be generated. This allows the user to * see a rendered page earlier. */ FallbackMode["PRERENDER"] = "PRERENDER"; /** * When set to NOT_FOUND, pages that are not already prerendered will result * in a not found response. */ FallbackMode["NOT_FOUND"] = "NOT_FOUND"; return FallbackMode; }({}); function parseFallbackField(fallbackField) { if (typeof fallbackField === 'string') { return "PRERENDER"; } else if (fallbackField === null) { return "BLOCKING_STATIC_RENDER"; } else if (fallbackField === false) { return "NOT_FOUND"; } else if (fallbackField === undefined) { return undefined; } else { throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), "__NEXT_ERROR_CODE", { value: "E285", enumerable: false, configurable: true }); } } function fallbackModeToFallbackField(fallback, page) { switch(fallback){ case "BLOCKING_STATIC_RENDER": return null; case "NOT_FOUND": return false; case "PRERENDER": if (!page) { throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is "${fallback}"`), "__NEXT_ERROR_CODE", { value: "E422", enumerable: false, configurable: true }); } return page; default: throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), "__NEXT_ERROR_CODE", { value: "E254", enumerable: false, configurable: true }); } } function parseStaticPathsResult(result) { if (result === true) { return "PRERENDER"; } else if (result === 'blocking') { return "BLOCKING_STATIC_RENDER"; } else { return "NOT_FOUND"; } } //# sourceMappingURL=fallback.js.mapj7890undefined92136Object.defineProperty(exports, "__esModule", (undefined156156))undefined1653100undefined˜þÿÿ™þÿÿ, /***/ 14691:  æ«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource N«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourcek"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getOrigin: null, resolveArray: null, resolveAsArrayOrUndefined: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getOrigin: function() { return getOrigin; }, resolveArray: function() { return resolveArray; }, resolveAsArrayOrUndefined: function() { return resolveAsArrayOrUndefined; } }); function resolveArray(value) { if (Array.isArray(value)) { return value; } return [ value ]; } function resolveAsArrayOrUndefined(value) { if (typeof value === 'undefined' || value === null) { return undefined; } return resolveArray(value); } function getOrigin(url) { let origin = undefined; if (typeof url === 'string') { try { url = new URL(url); origin = url.origin; } catch {} } return origin; } //# sourceMappingURL=utils.js.map e :NNW@»€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hashü Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getOrigin: function() { return getOrigin; }, resolveArray: function() { return resolveArray; }, resolveAsArrayOrUndefined: function() { return resolveAsArrayOrUndefined; } }); function resolveArray(value) { if (Array.isArray(value)) { return value; } return [ value ]; } function resolveAsArrayOrUndefined(value) { if (typeof value === 'undefined' || value === null) { return undefined; } return resolveArray(value); } function getOrigin(url) { let origin = undefined; if (typeof url === 'string') { try { url = new URL(url); origin = url.origin; } catch {} } return origin; } //# sourceMappingURL=utils.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourcek"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getOrigin: null, resolveArray: null, resolveAsArrayOrUndefined: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getOrigin: function() { return getOrigin; }, resolveArray: function() { return resolveArray; }, resolveAsArrayOrUndefined: function() { return resolveAsArrayOrUndefined; } }); function resolveArray(value) { if (Array.isArray(value)) { return value; } return [ value ]; } function resolveAsArrayOrUndefined(value) { if (typeof value === 'undefined' || value === null) { return undefined; } return resolveArray(value); } function getOrigin(url) { let origin = undefined; if (typeof url === 'string') { try { url = new URL(url); origin = url.origin; } catch {} } return origin; } //# sourceMappingURL=utils.js.mape012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871870undefined /***/ }) †þÿÿD/***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getOrigin: function() { return getOrigin; }, resolveArray: function() { return resolveArray; }, resolveAsArrayOrUndefined: function() { return resolveAsArrayOrUndefined; } }); function resolveArray(value) { if (Array.isArray(value)) { return value; } return [ value ]; } function resolveAsArrayOrUndefined(value) { if (typeof value === 'undefined' || value === null) { return undefined; } return resolveArray(value); } function getOrigin(url) { let origin = undefined; if (typeof url === 'string') { try { url = new URL(url); origin = url.origin; } catch {} } return origin; } //# sourceMappingURL=utils.js.map /***/ }) ‡þÿÿŠþÿÿ ‹þÿÿÎþÿÿþÿÿk"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getOrigin: null, resolveArray: null, resolveAsArrayOrUndefined: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getOrigin: function() { return getOrigin; }, resolveArray: function() { return resolveArray; }, resolveAsArrayOrUndefined: function() { return resolveAsArrayOrUndefined; } }); function resolveArray(value) { if (Array.isArray(value)) { return value; } return [ value ]; } function resolveAsArrayOrUndefined(value) { if (typeof value === 'undefined' || value === null) { return undefined; } return resolveArray(value); } function getOrigin(url) { let origin = undefined; if (typeof url === 'string') { try { url = new URL(url); origin = url.origin; } catch {} } return origin; } //# sourceMappingURL=utils.js.mape012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871870undefinedŽþÿÿþÿÿ, /***/ 15034:  ž«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Þ«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource„"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return Forbidden; } }); const _jsxruntime = require("react/jsx-runtime"); const _errorfallback = require("../http-access-fallback/error-fallback"); function Forbidden() { return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, { status: 403, message: "This page could not be accessed." }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=forbidden.js.map  f :NNQzIÊÊáçéûE€®Object.defineProperty(exports, "__esModule", (‚))«Object.defineProperty(exports, "default", (þ“__webpack_require__„5939þ…71383€†buffer†source„size„maps„hasha Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "default", ({ enumerable: true, get: function() { return Forbidden; } })); const _jsxruntime = __webpack_require__(5939); const _errorfallback = __webpack_require__(71383); function Forbidden() { return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, { status: 403, message: "This page could not be accessed." }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=forbidden.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource„"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return Forbidden; } }); const _jsxruntime = require("react/jsx-runtime"); const _errorfallback = require("../http-access-fallback/error-fallback"); function Forbidden() { return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, { status: 403, message: "This page could not be accessed." }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=forbidden.js.map  012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81122Object.defineProperty(exports, "default", (undefined202202))undefined225231__webpack_require__undefined2332515939undefined278284__webpack_require__undefined28632571383undefined /***/ }) |þÿÿ­/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "default", ({ enumerable: true, get: function() { return Forbidden; } })); const _jsxruntime = __webpack_require__(5939); const _errorfallback = __webpack_require__(71383); function Forbidden() { return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, { status: 403, message: "This page could not be accessed." }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=forbidden.js.map /***/ }) }þÿÿ€þÿÿ þÿÿ‚þÿÿƒþÿÿ„"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return Forbidden; } }); const _jsxruntime = require("react/jsx-runtime"); const _errorfallback = require("../http-access-fallback/error-fallback"); function Forbidden() { return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, { status: 403, message: "This page could not be accessed." }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=forbidden.js.map  012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81122Object.defineProperty(exports, "default", (undefined202202))undefined225231__webpack_require__undefined2332515939undefined278284__webpack_require__undefined28632571383undefined„þÿÿ…þÿÿ, /***/ 15252:  Œ«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ½«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceG"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "removeBasePath", { enumerable: true, get: function() { return removeBasePath; } }); const _hasbasepath = require("./has-base-path"); const basePath = process.env.__NEXT_ROUTER_BASEPATH || ''; function removeBasePath(path) { if (process.env.__NEXT_MANUAL_CLIENT_BASE_PATH) { if (!(0, _hasbasepath.hasBasePath)(path)) { return path; } } // Can't trim the basePath if it has zero length! if (basePath.length === 0) return path; path = path.slice(basePath.length); if (!path.startsWith('/')) path = "/" + path; return path; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=remove-base-path.js.map  e :NNQLÖÖîôö<m–™ö€®Object.defineProperty(exports, "__esModule", (‚))²Object.defineProperty(exports, "removeBasePath", (þ“__webpack_require__…94650† false…false‚{}€†buffer†source„size„maps„hash¡ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "removeBasePath", ({ enumerable: true, get: function() { return removeBasePath; } })); const _hasbasepath = __webpack_require__(94650); const basePath = false || ''; function removeBasePath(path) { if (false) {} // Can't trim the basePath if it has zero length! if (basePath.length === 0) return path; path = path.slice(basePath.length); if (!path.startsWith('/')) path = "/" + path; return path; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=remove-base-path.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceG"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "removeBasePath", { enumerable: true, get: function() { return removeBasePath; } }); const _hasbasepath = require("./has-base-path"); const basePath = process.env.__NEXT_ROUTER_BASEPATH || ''; function removeBasePath(path) { if (process.env.__NEXT_MANUAL_CLIENT_BASE_PATH) { if (!(0, _hasbasepath.hasBasePath)(path)) { return path; } } // Can't trim the basePath if it has zero length! if (basePath.length === 0) return path; path = path.slice(basePath.length); if (!path.startsWith('/')) path = "/" + path; return path; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=remove-base-path.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81129Object.defineProperty(exports, "removeBasePath", (undefined214214))undefined238244__webpack_require__undefined24626294650undefined283316 falseundefined365406falseundefined409502{}undefined /***/ }) rþÿÿí/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "removeBasePath", ({ enumerable: true, get: function() { return removeBasePath; } })); const _hasbasepath = __webpack_require__(94650); const basePath = false || ''; function removeBasePath(path) { if (false) {} // Can't trim the basePath if it has zero length! if (basePath.length === 0) return path; path = path.slice(basePath.length); if (!path.startsWith('/')) path = "/" + path; return path; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=remove-base-path.js.map /***/ }) sþÿÿvþÿÿ wþÿÿxþÿÿyþÿÿG"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "removeBasePath", { enumerable: true, get: function() { return removeBasePath; } }); const _hasbasepath = require("./has-base-path"); const basePath = process.env.__NEXT_ROUTER_BASEPATH || ''; function removeBasePath(path) { if (process.env.__NEXT_MANUAL_CLIENT_BASE_PATH) { if (!(0, _hasbasepath.hasBasePath)(path)) { return path; } } // Can't trim the basePath if it has zero length! if (basePath.length === 0) return path; path = path.slice(basePath.length); if (!path.startsWith('/')) path = "/" + path; return path; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=remove-base-path.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81129Object.defineProperty(exports, "removeBasePath", (undefined214214))undefined238244__webpack_require__undefined24626294650undefined283316 falseundefined365406falseundefined409502{}undefinedzþÿÿ{þÿÿ, /***/ 15426:  Yý«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource …U«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceºR"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { generateSegmentsFromPatch: null, handleExternalUrl: null, navigateReducer: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { generateSegmentsFromPatch: function() { return generateSegmentsFromPatch; }, handleExternalUrl: function() { return handleExternalUrl; }, navigateReducer: function() { return navigateReducer; } }); const _fetchserverresponse = require("../fetch-server-response"); const _createhreffromurl = require("../create-href-from-url"); const _invalidatecachebelowflightsegmentpath = require("../invalidate-cache-below-flight-segmentpath"); const _applyrouterstatepatchtotree = require("../apply-router-state-patch-to-tree"); const _shouldhardnavigate = require("../should-hard-navigate"); const _isnavigatingtonewrootlayout = require("../is-navigating-to-new-root-layout"); const _routerreducertypes = require("../router-reducer-types"); const _handlemutable = require("../handle-mutable"); const _applyflightdata = require("../apply-flight-data"); const _prefetchreducer = require("./prefetch-reducer"); const _approuter = require("../../app-router"); const _segment = require("../../../../shared/lib/segment"); const _pprnavigations = require("../ppr-navigations"); const _prefetchcacheutils = require("../prefetch-cache-utils"); const _clearcachenodedataforsegmentpath = require("../clear-cache-node-data-for-segment-path"); const _aliasedprefetchnavigations = require("../aliased-prefetch-navigations"); const _segmentcache = require("../../segment-cache"); function handleExternalUrl(state, mutable, url, pendingPush) { mutable.mpaNavigation = true; mutable.canonicalUrl = url; mutable.pendingPush = pendingPush; mutable.scrollableSegments = undefined; return (0, _handlemutable.handleMutable)(state, mutable); } function generateSegmentsFromPatch(flightRouterPatch) { const segments = []; const [segment, parallelRoutes] = flightRouterPatch; if (Object.keys(parallelRoutes).length === 0) { return [ [ segment ] ]; } for (const [parallelRouteKey, parallelRoute] of Object.entries(parallelRoutes)){ for (const childSegment of generateSegmentsFromPatch(parallelRoute)){ // If the segment is empty, it means we are at the root of the tree if (segment === '') { segments.push([ parallelRouteKey, ...childSegment ]); } else { segments.push([ segment, parallelRouteKey, ...childSegment ]); } } } return segments; } function triggerLazyFetchForLeafSegments(newCache, currentCache, flightSegmentPath, treePatch) { let appliedPatch = false; newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map((segment)=>[ ...flightSegmentPath, ...segment ]); for (const segmentPaths of segmentPathsToFill){ (0, _clearcachenodedataforsegmentpath.clearCacheNodeDataForSegmentPath)(newCache, currentCache, segmentPaths); appliedPatch = true; } return appliedPatch; } function handleNavigationResult(url, state, mutable, pendingPush, result) { switch(result.tag){ case _segmentcache.NavigationResultTag.MPA: { // Perform an MPA navigation. const newUrl = result.data; return handleExternalUrl(state, mutable, newUrl, pendingPush); } case _segmentcache.NavigationResultTag.NoOp: { // The server responded with no change to the current page. However, if // the URL changed, we still need to update that. const newCanonicalUrl = result.data.canonicalUrl; mutable.canonicalUrl = newCanonicalUrl; // Check if the only thing that changed was the hash fragment. const oldUrl = new URL(state.canonicalUrl, url); const onlyHashChange = // navigations are always same-origin. url.pathname === oldUrl.pathname && url.search === oldUrl.search && url.hash !== oldUrl.hash; if (onlyHashChange) { // The only updated part of the URL is the hash. mutable.onlyHashChange = true; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = url.hash; // Setting this to an empty array triggers a scroll for all new and // updated segments. See `ScrollAndFocusHandler` for more details. mutable.scrollableSegments = []; } return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Success: { // Received a new result. mutable.cache = result.data.cacheNode; mutable.patchedTree = result.data.flightRouterState; mutable.canonicalUrl = result.data.canonicalUrl; mutable.scrollableSegments = result.data.scrollableSegments; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = result.data.hash; return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Async: { return result.data.then((asyncResult)=>handleNavigationResult(url, state, mutable, pendingPush, asyncResult), // TODO: This matches the current behavior but we need to do something // better here if the network fails. ()=>{ return state; }); } default: { result; return state; } } } function navigateReducer(state, action) { const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } = action; const mutable = {}; const { hash } = url; const href = (0, _createhreffromurl.createHrefFromUrl)(url); const pendingPush = navigateType === 'push'; // we want to prune the prefetch cache on every navigation to avoid it growing too large (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache); mutable.preserveCustomHistoryState = false; mutable.pendingPush = pendingPush; if (isExternalUrl) { return handleExternalUrl(state, mutable, url.toString(), pendingPush); } // Handles case where `` tag is present, // which will trigger an MPA navigation. if (document.getElementById('__next-page-redirect')) { return handleExternalUrl(state, mutable, href, pendingPush); } if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) { // (Very Early Experimental Feature) Segment Cache // // Bypass the normal prefetch cache and use the new per-segment cache // implementation instead. This is only supported if PPR is enabled, too. // // Temporary glue code between the router reducer and the new navigation // implementation. Eventually we'll rewrite the router reducer to a // state machine. const result = (0, _segmentcache.navigate)(url, state.cache, state.tree, state.nextUrl, shouldScroll); return handleNavigationResult(url, state, mutable, pendingPush, result); } const prefetchValues = (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({ url, nextUrl: state.nextUrl, tree: state.tree, prefetchCache: state.prefetchCache, allowAliasing }); const { treeAtTimeOfPrefetch, data } = prefetchValues; _prefetchreducer.prefetchQueue.bump(data); return data.then((param)=>{ let { flightData, canonicalUrl: canonicalUrlOverride, postponed } = param; const navigatedAt = Date.now(); let isFirstRead = false; // we only want to mark this once if (!prefetchValues.lastUsedTime) { // important: we should only mark the cache node as dirty after we unsuspend from the call above prefetchValues.lastUsedTime = navigatedAt; isFirstRead = true; } if (prefetchValues.aliased) { // When alias is enabled, search param may not be included in the canonicalUrl. // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data. const urlWithCanonicalPathname = new URL(url.href); if (canonicalUrlOverride) { urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname; } const result = (0, _aliasedprefetchnavigations.handleAliasedPrefetchEntry)(navigatedAt, state, flightData, urlWithCanonicalPathname, mutable); // We didn't return new router state because we didn't apply the aliased entry for some reason. // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This // will create an on-demand prefetch entry. if (result === false) { return navigateReducer(state, { ...action, allowAliasing: false }); } return result; } // Handle case when navigating to page in `pages` from `app` if (typeof flightData === 'string') { return handleExternalUrl(state, mutable, flightData, pendingPush); } const updatedCanonicalUrl = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : href; const onlyHashChange = !!hash && state.canonicalUrl.split('#', 1)[0] === updatedCanonicalUrl.split('#', 1)[0]; // If only the hash has changed, the server hasn't sent us any new data. We can just update // the mutable properties responsible for URL and scroll handling and return early. if (onlyHashChange) { mutable.onlyHashChange = true; mutable.canonicalUrl = updatedCanonicalUrl; mutable.shouldScroll = shouldScroll; mutable.hashFragment = hash; mutable.scrollableSegments = []; return (0, _handlemutable.handleMutable)(state, mutable); } let currentTree = state.tree; let currentCache = state.cache; let scrollableSegments = []; for (const normalizedFlightData of flightData){ const { pathToSegment: flightSegmentPath, seedData, head, isHeadPartial, isRootRender } = normalizedFlightData; let treePatch = normalizedFlightData.tree; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...flightSegmentPath ]; // Create new tree based on the flightSegmentPath and router state patch let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch. if (newTree === null) { newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch, href); } if (newTree !== null) { if (// will send back a static response that's rendered from // the root. If for some reason it doesn't, we fall back to the // non-PPR implementation. // TODO: We should get rid of the else branch and do all navigations // via startPPRNavigation. The current structure is just // an incremental step. seedData && isRootRender && postponed) { const task = (0, _pprnavigations.startPPRNavigation)(navigatedAt, currentCache, currentTree, treePatch, seedData, head, isHeadPartial, false, scrollableSegments); if (task !== null) { if (task.route === null) { // Detected a change to the root layout. Perform an full- // page navigation. return handleExternalUrl(state, mutable, href, pendingPush); } // Use the tree computed by startPPRNavigation instead // of the one computed by applyRouterStatePatchToTree. // TODO: We should remove applyRouterStatePatchToTree // from the PPR path entirely. const patchedRouterState = task.route; newTree = patchedRouterState; const newCache = task.node; if (newCache !== null) { // We've created a new Cache Node tree that contains a prefetched // version of the next page. This can be rendered instantly. mutable.cache = newCache; } const dynamicRequestTree = task.dynamicRequestTree; if (dynamicRequestTree !== null) { // The prefetched tree has dynamic holes in it. We initiate a // dynamic request to fill them in. // // Do not block on the result. We'll immediately render the Cache // Node tree and suspend on the dynamic parts. When the request // comes in, we'll fill in missing data and ping React to // re-render. Unlike the lazy fetching model in the non-PPR // implementation, this is modeled as a single React update + // streaming, rather than multiple top-level updates. (However, // even in the new model, we'll still need to sometimes update the // root multiple times per navigation, like if the server sends us // a different response than we expected. For now, we revert back // to the lazy fetching mechanism in that case.) const dynamicRequest = (0, _fetchserverresponse.fetchServerResponse)(new URL(updatedCanonicalUrl, url.origin), { flightRouterState: dynamicRequestTree, nextUrl: state.nextUrl }); (0, _pprnavigations.listenForDynamicRequest)(task, dynamicRequest); // We store the dynamic request on the `lazyData` property of the CacheNode // because we're not going to await the dynamic request here. Since we're not blocking // on the dynamic request, `layout-router` will // task.node.lazyData = dynamicRequest } else { // The prefetched tree does not contain dynamic holes — it's // fully static. We can skip the dynamic request. } } else { // Nothing changed, so reuse the old cache. // TODO: What if the head changed but not any of the segment data? // Is that possible? If so, we should clone the whole tree and // update the head. newTree = treePatch; } } else { // The static response does not include any dynamic holes, so // there's no need to do a second request. // TODO: As an incremental step this just reverts back to the // non-PPR implementation. We can simplify this branch further, // given that PPR prefetches are always static and return the whole // tree. Or in the meantime we could factor it out into a // separate function. if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) { return handleExternalUrl(state, mutable, href, pendingPush); } const cache = (0, _approuter.createEmptyCacheNode)(); let applied = false; if (prefetchValues.status === _routerreducertypes.PrefetchCacheEntryStatus.stale && !isFirstRead) { // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data, // while copying over the `loading` for the segment that contains the page data. // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use. // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case applied = triggerLazyFetchForLeafSegments(cache, currentCache, flightSegmentPath, treePatch); // since we re-used the stale cache's loading state & refreshed the data, // update the `lastUsedTime` so that it can continue to be re-used for the next 30s prefetchValues.lastUsedTime = navigatedAt; } else { applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData, prefetchValues); } const hardNavigate = (0, _shouldhardnavigate.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree); if (hardNavigate) { // Copy rsc for the root node of the cache. cache.rsc = currentCache.rsc; cache.prefetchRsc = currentCache.prefetchRsc; (0, _invalidatecachebelowflightsegmentpath.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath); // Ensure the existing cache value is used when the cache was not invalidated. mutable.cache = cache; } else if (applied) { mutable.cache = cache; // If we applied the cache, we update the "current cache" value so any other // segments in the FlightDataPath will be able to reference the updated cache. currentCache = cache; } for (const subSegment of generateSegmentsFromPatch(treePatch)){ const scrollableSegmentPath = [ ...flightSegmentPath, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } currentTree = newTree; } } mutable.patchedTree = currentTree; mutable.canonicalUrl = updatedCanonicalUrl; mutable.scrollableSegments = scrollableSegments; mutable.hashFragment = hash; mutable.shouldScroll = shouldScroll; return (0, _handlemutable.handleMutable)(state, mutable); }, ()=>state); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigate-reducer.js.map g( :NNW_Ɖ‘ªÉÏÑé"$Qz€‚¦ÆÌÎæ;[ac{–œž_°ÍÓÕê "9?ARgmoŽª°²Ååëí39;e“•HµÏÕ×ë ÆÉ7€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…94082þ…75497ý…57162ü…24848û…11505ú…77692ù…13136ø…26613÷…11966ö…37446õ…25918ô…44859ó…82582ò…81288ñ…50202ð„2173ï…68459…false‚{}€†buffer†source„size„maps„hash÷N Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { generateSegmentsFromPatch: function() { return generateSegmentsFromPatch; }, handleExternalUrl: function() { return handleExternalUrl; }, navigateReducer: function() { return navigateReducer; } }); const _fetchserverresponse = __webpack_require__(94082); const _createhreffromurl = __webpack_require__(75497); const _invalidatecachebelowflightsegmentpath = __webpack_require__(57162); const _applyrouterstatepatchtotree = __webpack_require__(24848); const _shouldhardnavigate = __webpack_require__(11505); const _isnavigatingtonewrootlayout = __webpack_require__(77692); const _routerreducertypes = __webpack_require__(13136); const _handlemutable = __webpack_require__(26613); const _applyflightdata = __webpack_require__(11966); const _prefetchreducer = __webpack_require__(37446); const _approuter = __webpack_require__(25918); const _segment = __webpack_require__(44859); const _pprnavigations = __webpack_require__(82582); const _prefetchcacheutils = __webpack_require__(81288); const _clearcachenodedataforsegmentpath = __webpack_require__(50202); const _aliasedprefetchnavigations = __webpack_require__(2173); const _segmentcache = __webpack_require__(68459); function handleExternalUrl(state, mutable, url, pendingPush) { mutable.mpaNavigation = true; mutable.canonicalUrl = url; mutable.pendingPush = pendingPush; mutable.scrollableSegments = undefined; return (0, _handlemutable.handleMutable)(state, mutable); } function generateSegmentsFromPatch(flightRouterPatch) { const segments = []; const [segment, parallelRoutes] = flightRouterPatch; if (Object.keys(parallelRoutes).length === 0) { return [ [ segment ] ]; } for (const [parallelRouteKey, parallelRoute] of Object.entries(parallelRoutes)){ for (const childSegment of generateSegmentsFromPatch(parallelRoute)){ // If the segment is empty, it means we are at the root of the tree if (segment === '') { segments.push([ parallelRouteKey, ...childSegment ]); } else { segments.push([ segment, parallelRouteKey, ...childSegment ]); } } } return segments; } function triggerLazyFetchForLeafSegments(newCache, currentCache, flightSegmentPath, treePatch) { let appliedPatch = false; newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map((segment)=>[ ...flightSegmentPath, ...segment ]); for (const segmentPaths of segmentPathsToFill){ (0, _clearcachenodedataforsegmentpath.clearCacheNodeDataForSegmentPath)(newCache, currentCache, segmentPaths); appliedPatch = true; } return appliedPatch; } function handleNavigationResult(url, state, mutable, pendingPush, result) { switch(result.tag){ case _segmentcache.NavigationResultTag.MPA: { // Perform an MPA navigation. const newUrl = result.data; return handleExternalUrl(state, mutable, newUrl, pendingPush); } case _segmentcache.NavigationResultTag.NoOp: { // The server responded with no change to the current page. However, if // the URL changed, we still need to update that. const newCanonicalUrl = result.data.canonicalUrl; mutable.canonicalUrl = newCanonicalUrl; // Check if the only thing that changed was the hash fragment. const oldUrl = new URL(state.canonicalUrl, url); const onlyHashChange = // navigations are always same-origin. url.pathname === oldUrl.pathname && url.search === oldUrl.search && url.hash !== oldUrl.hash; if (onlyHashChange) { // The only updated part of the URL is the hash. mutable.onlyHashChange = true; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = url.hash; // Setting this to an empty array triggers a scroll for all new and // updated segments. See `ScrollAndFocusHandler` for more details. mutable.scrollableSegments = []; } return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Success: { // Received a new result. mutable.cache = result.data.cacheNode; mutable.patchedTree = result.data.flightRouterState; mutable.canonicalUrl = result.data.canonicalUrl; mutable.scrollableSegments = result.data.scrollableSegments; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = result.data.hash; return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Async: { return result.data.then((asyncResult)=>handleNavigationResult(url, state, mutable, pendingPush, asyncResult), // TODO: This matches the current behavior but we need to do something // better here if the network fails. ()=>{ return state; }); } default: { result; return state; } } } function navigateReducer(state, action) { const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } = action; const mutable = {}; const { hash } = url; const href = (0, _createhreffromurl.createHrefFromUrl)(url); const pendingPush = navigateType === 'push'; // we want to prune the prefetch cache on every navigation to avoid it growing too large (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache); mutable.preserveCustomHistoryState = false; mutable.pendingPush = pendingPush; if (isExternalUrl) { return handleExternalUrl(state, mutable, url.toString(), pendingPush); } // Handles case where `` tag is present, // which will trigger an MPA navigation. if (document.getElementById('__next-page-redirect')) { return handleExternalUrl(state, mutable, href, pendingPush); } if (false) {} const prefetchValues = (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({ url, nextUrl: state.nextUrl, tree: state.tree, prefetchCache: state.prefetchCache, allowAliasing }); const { treeAtTimeOfPrefetch, data } = prefetchValues; _prefetchreducer.prefetchQueue.bump(data); return data.then((param)=>{ let { flightData, canonicalUrl: canonicalUrlOverride, postponed } = param; const navigatedAt = Date.now(); let isFirstRead = false; // we only want to mark this once if (!prefetchValues.lastUsedTime) { // important: we should only mark the cache node as dirty after we unsuspend from the call above prefetchValues.lastUsedTime = navigatedAt; isFirstRead = true; } if (prefetchValues.aliased) { // When alias is enabled, search param may not be included in the canonicalUrl. // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data. const urlWithCanonicalPathname = new URL(url.href); if (canonicalUrlOverride) { urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname; } const result = (0, _aliasedprefetchnavigations.handleAliasedPrefetchEntry)(navigatedAt, state, flightData, urlWithCanonicalPathname, mutable); // We didn't return new router state because we didn't apply the aliased entry for some reason. // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This // will create an on-demand prefetch entry. if (result === false) { return navigateReducer(state, { ...action, allowAliasing: false }); } return result; } // Handle case when navigating to page in `pages` from `app` if (typeof flightData === 'string') { return handleExternalUrl(state, mutable, flightData, pendingPush); } const updatedCanonicalUrl = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : href; const onlyHashChange = !!hash && state.canonicalUrl.split('#', 1)[0] === updatedCanonicalUrl.split('#', 1)[0]; // If only the hash has changed, the server hasn't sent us any new data. We can just update // the mutable properties responsible for URL and scroll handling and return early. if (onlyHashChange) { mutable.onlyHashChange = true; mutable.canonicalUrl = updatedCanonicalUrl; mutable.shouldScroll = shouldScroll; mutable.hashFragment = hash; mutable.scrollableSegments = []; return (0, _handlemutable.handleMutable)(state, mutable); } let currentTree = state.tree; let currentCache = state.cache; let scrollableSegments = []; for (const normalizedFlightData of flightData){ const { pathToSegment: flightSegmentPath, seedData, head, isHeadPartial, isRootRender } = normalizedFlightData; let treePatch = normalizedFlightData.tree; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...flightSegmentPath ]; // Create new tree based on the flightSegmentPath and router state patch let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch. if (newTree === null) { newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch, href); } if (newTree !== null) { if (// will send back a static response that's rendered from // the root. If for some reason it doesn't, we fall back to the // non-PPR implementation. // TODO: We should get rid of the else branch and do all navigations // via startPPRNavigation. The current structure is just // an incremental step. seedData && isRootRender && postponed) { const task = (0, _pprnavigations.startPPRNavigation)(navigatedAt, currentCache, currentTree, treePatch, seedData, head, isHeadPartial, false, scrollableSegments); if (task !== null) { if (task.route === null) { // Detected a change to the root layout. Perform an full- // page navigation. return handleExternalUrl(state, mutable, href, pendingPush); } // Use the tree computed by startPPRNavigation instead // of the one computed by applyRouterStatePatchToTree. // TODO: We should remove applyRouterStatePatchToTree // from the PPR path entirely. const patchedRouterState = task.route; newTree = patchedRouterState; const newCache = task.node; if (newCache !== null) { // We've created a new Cache Node tree that contains a prefetched // version of the next page. This can be rendered instantly. mutable.cache = newCache; } const dynamicRequestTree = task.dynamicRequestTree; if (dynamicRequestTree !== null) { // The prefetched tree has dynamic holes in it. We initiate a // dynamic request to fill them in. // // Do not block on the result. We'll immediately render the Cache // Node tree and suspend on the dynamic parts. When the request // comes in, we'll fill in missing data and ping React to // re-render. Unlike the lazy fetching model in the non-PPR // implementation, this is modeled as a single React update + // streaming, rather than multiple top-level updates. (However, // even in the new model, we'll still need to sometimes update the // root multiple times per navigation, like if the server sends us // a different response than we expected. For now, we revert back // to the lazy fetching mechanism in that case.) const dynamicRequest = (0, _fetchserverresponse.fetchServerResponse)(new URL(updatedCanonicalUrl, url.origin), { flightRouterState: dynamicRequestTree, nextUrl: state.nextUrl }); (0, _pprnavigations.listenForDynamicRequest)(task, dynamicRequest); // We store the dynamic request on the `lazyData` property of the CacheNode // because we're not going to await the dynamic request here. Since we're not blocking // on the dynamic request, `layout-router` will // task.node.lazyData = dynamicRequest } else { // The prefetched tree does not contain dynamic holes — it's // fully static. We can skip the dynamic request. } } else { // Nothing changed, so reuse the old cache. // TODO: What if the head changed but not any of the segment data? // Is that possible? If so, we should clone the whole tree and // update the head. newTree = treePatch; } } else { // The static response does not include any dynamic holes, so // there's no need to do a second request. // TODO: As an incremental step this just reverts back to the // non-PPR implementation. We can simplify this branch further, // given that PPR prefetches are always static and return the whole // tree. Or in the meantime we could factor it out into a // separate function. if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) { return handleExternalUrl(state, mutable, href, pendingPush); } const cache = (0, _approuter.createEmptyCacheNode)(); let applied = false; if (prefetchValues.status === _routerreducertypes.PrefetchCacheEntryStatus.stale && !isFirstRead) { // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data, // while copying over the `loading` for the segment that contains the page data. // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use. // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case applied = triggerLazyFetchForLeafSegments(cache, currentCache, flightSegmentPath, treePatch); // since we re-used the stale cache's loading state & refreshed the data, // update the `lastUsedTime` so that it can continue to be re-used for the next 30s prefetchValues.lastUsedTime = navigatedAt; } else { applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData, prefetchValues); } const hardNavigate = (0, _shouldhardnavigate.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree); if (hardNavigate) { // Copy rsc for the root node of the cache. cache.rsc = currentCache.rsc; cache.prefetchRsc = currentCache.prefetchRsc; (0, _invalidatecachebelowflightsegmentpath.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath); // Ensure the existing cache value is used when the cache was not invalidated. mutable.cache = cache; } else if (applied) { mutable.cache = cache; // If we applied the cache, we update the "current cache" value so any other // segments in the FlightDataPath will be able to reference the updated cache. currentCache = cache; } for (const subSegment of generateSegmentsFromPatch(treePatch)){ const scrollableSegmentPath = [ ...flightSegmentPath, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } currentTree = newTree; } } mutable.patchedTree = currentTree; mutable.canonicalUrl = updatedCanonicalUrl; mutable.scrollableSegments = scrollableSegments; mutable.hashFragment = hash; mutable.shouldScroll = shouldScroll; return (0, _handlemutable.handleMutable)(state, mutable); }, ()=>state); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigate-reducer.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceºR"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { generateSegmentsFromPatch: null, handleExternalUrl: null, navigateReducer: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { generateSegmentsFromPatch: function() { return generateSegmentsFromPatch; }, handleExternalUrl: function() { return handleExternalUrl; }, navigateReducer: function() { return navigateReducer; } }); const _fetchserverresponse = require("../fetch-server-response"); const _createhreffromurl = require("../create-href-from-url"); const _invalidatecachebelowflightsegmentpath = require("../invalidate-cache-below-flight-segmentpath"); const _applyrouterstatepatchtotree = require("../apply-router-state-patch-to-tree"); const _shouldhardnavigate = require("../should-hard-navigate"); const _isnavigatingtonewrootlayout = require("../is-navigating-to-new-root-layout"); const _routerreducertypes = require("../router-reducer-types"); const _handlemutable = require("../handle-mutable"); const _applyflightdata = require("../apply-flight-data"); const _prefetchreducer = require("./prefetch-reducer"); const _approuter = require("../../app-router"); const _segment = require("../../../../shared/lib/segment"); const _pprnavigations = require("../ppr-navigations"); const _prefetchcacheutils = require("../prefetch-cache-utils"); const _clearcachenodedataforsegmentpath = require("../clear-cache-node-data-for-segment-path"); const _aliasedprefetchnavigations = require("../aliased-prefetch-navigations"); const _segmentcache = require("../../segment-cache"); function handleExternalUrl(state, mutable, url, pendingPush) { mutable.mpaNavigation = true; mutable.canonicalUrl = url; mutable.pendingPush = pendingPush; mutable.scrollableSegments = undefined; return (0, _handlemutable.handleMutable)(state, mutable); } function generateSegmentsFromPatch(flightRouterPatch) { const segments = []; const [segment, parallelRoutes] = flightRouterPatch; if (Object.keys(parallelRoutes).length === 0) { return [ [ segment ] ]; } for (const [parallelRouteKey, parallelRoute] of Object.entries(parallelRoutes)){ for (const childSegment of generateSegmentsFromPatch(parallelRoute)){ // If the segment is empty, it means we are at the root of the tree if (segment === '') { segments.push([ parallelRouteKey, ...childSegment ]); } else { segments.push([ segment, parallelRouteKey, ...childSegment ]); } } } return segments; } function triggerLazyFetchForLeafSegments(newCache, currentCache, flightSegmentPath, treePatch) { let appliedPatch = false; newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map((segment)=>[ ...flightSegmentPath, ...segment ]); for (const segmentPaths of segmentPathsToFill){ (0, _clearcachenodedataforsegmentpath.clearCacheNodeDataForSegmentPath)(newCache, currentCache, segmentPaths); appliedPatch = true; } return appliedPatch; } function handleNavigationResult(url, state, mutable, pendingPush, result) { switch(result.tag){ case _segmentcache.NavigationResultTag.MPA: { // Perform an MPA navigation. const newUrl = result.data; return handleExternalUrl(state, mutable, newUrl, pendingPush); } case _segmentcache.NavigationResultTag.NoOp: { // The server responded with no change to the current page. However, if // the URL changed, we still need to update that. const newCanonicalUrl = result.data.canonicalUrl; mutable.canonicalUrl = newCanonicalUrl; // Check if the only thing that changed was the hash fragment. const oldUrl = new URL(state.canonicalUrl, url); const onlyHashChange = // navigations are always same-origin. url.pathname === oldUrl.pathname && url.search === oldUrl.search && url.hash !== oldUrl.hash; if (onlyHashChange) { // The only updated part of the URL is the hash. mutable.onlyHashChange = true; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = url.hash; // Setting this to an empty array triggers a scroll for all new and // updated segments. See `ScrollAndFocusHandler` for more details. mutable.scrollableSegments = []; } return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Success: { // Received a new result. mutable.cache = result.data.cacheNode; mutable.patchedTree = result.data.flightRouterState; mutable.canonicalUrl = result.data.canonicalUrl; mutable.scrollableSegments = result.data.scrollableSegments; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = result.data.hash; return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Async: { return result.data.then((asyncResult)=>handleNavigationResult(url, state, mutable, pendingPush, asyncResult), // TODO: This matches the current behavior but we need to do something // better here if the network fails. ()=>{ return state; }); } default: { result; return state; } } } function navigateReducer(state, action) { const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } = action; const mutable = {}; const { hash } = url; const href = (0, _createhreffromurl.createHrefFromUrl)(url); const pendingPush = navigateType === 'push'; // we want to prune the prefetch cache on every navigation to avoid it growing too large (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache); mutable.preserveCustomHistoryState = false; mutable.pendingPush = pendingPush; if (isExternalUrl) { return handleExternalUrl(state, mutable, url.toString(), pendingPush); } // Handles case where `` tag is present, // which will trigger an MPA navigation. if (document.getElementById('__next-page-redirect')) { return handleExternalUrl(state, mutable, href, pendingPush); } if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) { // (Very Early Experimental Feature) Segment Cache // // Bypass the normal prefetch cache and use the new per-segment cache // implementation instead. This is only supported if PPR is enabled, too. // // Temporary glue code between the router reducer and the new navigation // implementation. Eventually we'll rewrite the router reducer to a // state machine. const result = (0, _segmentcache.navigate)(url, state.cache, state.tree, state.nextUrl, shouldScroll); return handleNavigationResult(url, state, mutable, pendingPush, result); } const prefetchValues = (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({ url, nextUrl: state.nextUrl, tree: state.tree, prefetchCache: state.prefetchCache, allowAliasing }); const { treeAtTimeOfPrefetch, data } = prefetchValues; _prefetchreducer.prefetchQueue.bump(data); return data.then((param)=>{ let { flightData, canonicalUrl: canonicalUrlOverride, postponed } = param; const navigatedAt = Date.now(); let isFirstRead = false; // we only want to mark this once if (!prefetchValues.lastUsedTime) { // important: we should only mark the cache node as dirty after we unsuspend from the call above prefetchValues.lastUsedTime = navigatedAt; isFirstRead = true; } if (prefetchValues.aliased) { // When alias is enabled, search param may not be included in the canonicalUrl. // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data. const urlWithCanonicalPathname = new URL(url.href); if (canonicalUrlOverride) { urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname; } const result = (0, _aliasedprefetchnavigations.handleAliasedPrefetchEntry)(navigatedAt, state, flightData, urlWithCanonicalPathname, mutable); // We didn't return new router state because we didn't apply the aliased entry for some reason. // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This // will create an on-demand prefetch entry. if (result === false) { return navigateReducer(state, { ...action, allowAliasing: false }); } return result; } // Handle case when navigating to page in `pages` from `app` if (typeof flightData === 'string') { return handleExternalUrl(state, mutable, flightData, pendingPush); } const updatedCanonicalUrl = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : href; const onlyHashChange = !!hash && state.canonicalUrl.split('#', 1)[0] === updatedCanonicalUrl.split('#', 1)[0]; // If only the hash has changed, the server hasn't sent us any new data. We can just update // the mutable properties responsible for URL and scroll handling and return early. if (onlyHashChange) { mutable.onlyHashChange = true; mutable.canonicalUrl = updatedCanonicalUrl; mutable.shouldScroll = shouldScroll; mutable.hashFragment = hash; mutable.scrollableSegments = []; return (0, _handlemutable.handleMutable)(state, mutable); } let currentTree = state.tree; let currentCache = state.cache; let scrollableSegments = []; for (const normalizedFlightData of flightData){ const { pathToSegment: flightSegmentPath, seedData, head, isHeadPartial, isRootRender } = normalizedFlightData; let treePatch = normalizedFlightData.tree; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...flightSegmentPath ]; // Create new tree based on the flightSegmentPath and router state patch let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch. if (newTree === null) { newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch, href); } if (newTree !== null) { if (// will send back a static response that's rendered from // the root. If for some reason it doesn't, we fall back to the // non-PPR implementation. // TODO: We should get rid of the else branch and do all navigations // via startPPRNavigation. The current structure is just // an incremental step. seedData && isRootRender && postponed) { const task = (0, _pprnavigations.startPPRNavigation)(navigatedAt, currentCache, currentTree, treePatch, seedData, head, isHeadPartial, false, scrollableSegments); if (task !== null) { if (task.route === null) { // Detected a change to the root layout. Perform an full- // page navigation. return handleExternalUrl(state, mutable, href, pendingPush); } // Use the tree computed by startPPRNavigation instead // of the one computed by applyRouterStatePatchToTree. // TODO: We should remove applyRouterStatePatchToTree // from the PPR path entirely. const patchedRouterState = task.route; newTree = patchedRouterState; const newCache = task.node; if (newCache !== null) { // We've created a new Cache Node tree that contains a prefetched // version of the next page. This can be rendered instantly. mutable.cache = newCache; } const dynamicRequestTree = task.dynamicRequestTree; if (dynamicRequestTree !== null) { // The prefetched tree has dynamic holes in it. We initiate a // dynamic request to fill them in. // // Do not block on the result. We'll immediately render the Cache // Node tree and suspend on the dynamic parts. When the request // comes in, we'll fill in missing data and ping React to // re-render. Unlike the lazy fetching model in the non-PPR // implementation, this is modeled as a single React update + // streaming, rather than multiple top-level updates. (However, // even in the new model, we'll still need to sometimes update the // root multiple times per navigation, like if the server sends us // a different response than we expected. For now, we revert back // to the lazy fetching mechanism in that case.) const dynamicRequest = (0, _fetchserverresponse.fetchServerResponse)(new URL(updatedCanonicalUrl, url.origin), { flightRouterState: dynamicRequestTree, nextUrl: state.nextUrl }); (0, _pprnavigations.listenForDynamicRequest)(task, dynamicRequest); // We store the dynamic request on the `lazyData` property of the CacheNode // because we're not going to await the dynamic request here. Since we're not blocking // on the dynamic request, `layout-router` will // task.node.lazyData = dynamicRequest } else { // The prefetched tree does not contain dynamic holes — it's // fully static. We can skip the dynamic request. } } else { // Nothing changed, so reuse the old cache. // TODO: What if the head changed but not any of the segment data? // Is that possible? If so, we should clone the whole tree and // update the head. newTree = treePatch; } } else { // The static response does not include any dynamic holes, so // there's no need to do a second request. // TODO: As an incremental step this just reverts back to the // non-PPR implementation. We can simplify this branch further, // given that PPR prefetches are always static and return the whole // tree. Or in the meantime we could factor it out into a // separate function. if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) { return handleExternalUrl(state, mutable, href, pendingPush); } const cache = (0, _approuter.createEmptyCacheNode)(); let applied = false; if (prefetchValues.status === _routerreducertypes.PrefetchCacheEntryStatus.stale && !isFirstRead) { // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data, // while copying over the `loading` for the segment that contains the page data. // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use. // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case applied = triggerLazyFetchForLeafSegments(cache, currentCache, flightSegmentPath, treePatch); // since we re-used the stale cache's loading state & refreshed the data, // update the `lastUsedTime` so that it can continue to be re-used for the next 30s prefetchValues.lastUsedTime = navigatedAt; } else { applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData, prefetchValues); } const hardNavigate = (0, _shouldhardnavigate.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree); if (hardNavigate) { // Copy rsc for the root node of the cache. cache.rsc = currentCache.rsc; cache.prefetchRsc = currentCache.prefetchRsc; (0, _invalidatecachebelowflightsegmentpath.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath); // Ensure the existing cache value is used when the cache was not invalidated. mutable.cache = cache; } else if (applied) { mutable.cache = cache; // If we applied the cache, we update the "current cache" value so any other // segments in the FlightDataPath will be able to reference the updated cache. currentCache = cache; } for (const subSegment of generateSegmentsFromPatch(treePatch)){ const scrollableSegmentPath = [ ...flightSegmentPath, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } currentTree = newTree; } } mutable.patchedTree = currentTree; mutable.canonicalUrl = updatedCanonicalUrl; mutable.scrollableSegments = scrollableSegments; mutable.hashFragment = hash; mutable.shouldScroll = shouldScroll; return (0, _handlemutable.handleMutable)(state, mutable); }, ()=>state); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigate-reducer.js.map S012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871980undefined649655__webpack_require__undefined65768294082undefined713719__webpack_require__undefined72174575497undefined796802__webpack_require__undefined80484957162undefined890896__webpack_require__undefined89893424848undefined966972__webpack_require__undefined97499811505undefined10391045__webpack_require__undefined1047108377692undefined11151121__webpack_require__undefined1123114713136undefined11741180__webpack_require__undefined1182120026613undefined12291235__webpack_require__undefined1237125811966undefined12871293__webpack_require__undefined1295131437446undefined13371343__webpack_require__undefined1345136225918undefined13831389__webpack_require__undefined1391142244859undefined14501456__webpack_require__undefined1458147782582undefined15091515__webpack_require__undefined1517154181288undefined15871593__webpack_require__undefined1595163750202undefined16771683__webpack_require__undefined168517172173undefined17431749__webpack_require__undefined1751177168459undefined73287366falseundefined73697991{}undefined /***/ }) hþÿÿCO/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { generateSegmentsFromPatch: function() { return generateSegmentsFromPatch; }, handleExternalUrl: function() { return handleExternalUrl; }, navigateReducer: function() { return navigateReducer; } }); const _fetchserverresponse = __webpack_require__(94082); const _createhreffromurl = __webpack_require__(75497); const _invalidatecachebelowflightsegmentpath = __webpack_require__(57162); const _applyrouterstatepatchtotree = __webpack_require__(24848); const _shouldhardnavigate = __webpack_require__(11505); const _isnavigatingtonewrootlayout = __webpack_require__(77692); const _routerreducertypes = __webpack_require__(13136); const _handlemutable = __webpack_require__(26613); const _applyflightdata = __webpack_require__(11966); const _prefetchreducer = __webpack_require__(37446); const _approuter = __webpack_require__(25918); const _segment = __webpack_require__(44859); const _pprnavigations = __webpack_require__(82582); const _prefetchcacheutils = __webpack_require__(81288); const _clearcachenodedataforsegmentpath = __webpack_require__(50202); const _aliasedprefetchnavigations = __webpack_require__(2173); const _segmentcache = __webpack_require__(68459); function handleExternalUrl(state, mutable, url, pendingPush) { mutable.mpaNavigation = true; mutable.canonicalUrl = url; mutable.pendingPush = pendingPush; mutable.scrollableSegments = undefined; return (0, _handlemutable.handleMutable)(state, mutable); } function generateSegmentsFromPatch(flightRouterPatch) { const segments = []; const [segment, parallelRoutes] = flightRouterPatch; if (Object.keys(parallelRoutes).length === 0) { return [ [ segment ] ]; } for (const [parallelRouteKey, parallelRoute] of Object.entries(parallelRoutes)){ for (const childSegment of generateSegmentsFromPatch(parallelRoute)){ // If the segment is empty, it means we are at the root of the tree if (segment === '') { segments.push([ parallelRouteKey, ...childSegment ]); } else { segments.push([ segment, parallelRouteKey, ...childSegment ]); } } } return segments; } function triggerLazyFetchForLeafSegments(newCache, currentCache, flightSegmentPath, treePatch) { let appliedPatch = false; newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map((segment)=>[ ...flightSegmentPath, ...segment ]); for (const segmentPaths of segmentPathsToFill){ (0, _clearcachenodedataforsegmentpath.clearCacheNodeDataForSegmentPath)(newCache, currentCache, segmentPaths); appliedPatch = true; } return appliedPatch; } function handleNavigationResult(url, state, mutable, pendingPush, result) { switch(result.tag){ case _segmentcache.NavigationResultTag.MPA: { // Perform an MPA navigation. const newUrl = result.data; return handleExternalUrl(state, mutable, newUrl, pendingPush); } case _segmentcache.NavigationResultTag.NoOp: { // The server responded with no change to the current page. However, if // the URL changed, we still need to update that. const newCanonicalUrl = result.data.canonicalUrl; mutable.canonicalUrl = newCanonicalUrl; // Check if the only thing that changed was the hash fragment. const oldUrl = new URL(state.canonicalUrl, url); const onlyHashChange = // navigations are always same-origin. url.pathname === oldUrl.pathname && url.search === oldUrl.search && url.hash !== oldUrl.hash; if (onlyHashChange) { // The only updated part of the URL is the hash. mutable.onlyHashChange = true; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = url.hash; // Setting this to an empty array triggers a scroll for all new and // updated segments. See `ScrollAndFocusHandler` for more details. mutable.scrollableSegments = []; } return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Success: { // Received a new result. mutable.cache = result.data.cacheNode; mutable.patchedTree = result.data.flightRouterState; mutable.canonicalUrl = result.data.canonicalUrl; mutable.scrollableSegments = result.data.scrollableSegments; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = result.data.hash; return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Async: { return result.data.then((asyncResult)=>handleNavigationResult(url, state, mutable, pendingPush, asyncResult), // TODO: This matches the current behavior but we need to do something // better here if the network fails. ()=>{ return state; }); } default: { result; return state; } } } function navigateReducer(state, action) { const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } = action; const mutable = {}; const { hash } = url; const href = (0, _createhreffromurl.createHrefFromUrl)(url); const pendingPush = navigateType === 'push'; // we want to prune the prefetch cache on every navigation to avoid it growing too large (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache); mutable.preserveCustomHistoryState = false; mutable.pendingPush = pendingPush; if (isExternalUrl) { return handleExternalUrl(state, mutable, url.toString(), pendingPush); } // Handles case where `` tag is present, // which will trigger an MPA navigation. if (document.getElementById('__next-page-redirect')) { return handleExternalUrl(state, mutable, href, pendingPush); } if (false) {} const prefetchValues = (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({ url, nextUrl: state.nextUrl, tree: state.tree, prefetchCache: state.prefetchCache, allowAliasing }); const { treeAtTimeOfPrefetch, data } = prefetchValues; _prefetchreducer.prefetchQueue.bump(data); return data.then((param)=>{ let { flightData, canonicalUrl: canonicalUrlOverride, postponed } = param; const navigatedAt = Date.now(); let isFirstRead = false; // we only want to mark this once if (!prefetchValues.lastUsedTime) { // important: we should only mark the cache node as dirty after we unsuspend from the call above prefetchValues.lastUsedTime = navigatedAt; isFirstRead = true; } if (prefetchValues.aliased) { // When alias is enabled, search param may not be included in the canonicalUrl. // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data. const urlWithCanonicalPathname = new URL(url.href); if (canonicalUrlOverride) { urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname; } const result = (0, _aliasedprefetchnavigations.handleAliasedPrefetchEntry)(navigatedAt, state, flightData, urlWithCanonicalPathname, mutable); // We didn't return new router state because we didn't apply the aliased entry for some reason. // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This // will create an on-demand prefetch entry. if (result === false) { return navigateReducer(state, { ...action, allowAliasing: false }); } return result; } // Handle case when navigating to page in `pages` from `app` if (typeof flightData === 'string') { return handleExternalUrl(state, mutable, flightData, pendingPush); } const updatedCanonicalUrl = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : href; const onlyHashChange = !!hash && state.canonicalUrl.split('#', 1)[0] === updatedCanonicalUrl.split('#', 1)[0]; // If only the hash has changed, the server hasn't sent us any new data. We can just update // the mutable properties responsible for URL and scroll handling and return early. if (onlyHashChange) { mutable.onlyHashChange = true; mutable.canonicalUrl = updatedCanonicalUrl; mutable.shouldScroll = shouldScroll; mutable.hashFragment = hash; mutable.scrollableSegments = []; return (0, _handlemutable.handleMutable)(state, mutable); } let currentTree = state.tree; let currentCache = state.cache; let scrollableSegments = []; for (const normalizedFlightData of flightData){ const { pathToSegment: flightSegmentPath, seedData, head, isHeadPartial, isRootRender } = normalizedFlightData; let treePatch = normalizedFlightData.tree; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...flightSegmentPath ]; // Create new tree based on the flightSegmentPath and router state patch let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch. if (newTree === null) { newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch, href); } if (newTree !== null) { if (// will send back a static response that's rendered from // the root. If for some reason it doesn't, we fall back to the // non-PPR implementation. // TODO: We should get rid of the else branch and do all navigations // via startPPRNavigation. The current structure is just // an incremental step. seedData && isRootRender && postponed) { const task = (0, _pprnavigations.startPPRNavigation)(navigatedAt, currentCache, currentTree, treePatch, seedData, head, isHeadPartial, false, scrollableSegments); if (task !== null) { if (task.route === null) { // Detected a change to the root layout. Perform an full- // page navigation. return handleExternalUrl(state, mutable, href, pendingPush); } // Use the tree computed by startPPRNavigation instead // of the one computed by applyRouterStatePatchToTree. // TODO: We should remove applyRouterStatePatchToTree // from the PPR path entirely. const patchedRouterState = task.route; newTree = patchedRouterState; const newCache = task.node; if (newCache !== null) { // We've created a new Cache Node tree that contains a prefetched // version of the next page. This can be rendered instantly. mutable.cache = newCache; } const dynamicRequestTree = task.dynamicRequestTree; if (dynamicRequestTree !== null) { // The prefetched tree has dynamic holes in it. We initiate a // dynamic request to fill them in. // // Do not block on the result. We'll immediately render the Cache // Node tree and suspend on the dynamic parts. When the request // comes in, we'll fill in missing data and ping React to // re-render. Unlike the lazy fetching model in the non-PPR // implementation, this is modeled as a single React update + // streaming, rather than multiple top-level updates. (However, // even in the new model, we'll still need to sometimes update the // root multiple times per navigation, like if the server sends us // a different response than we expected. For now, we revert back // to the lazy fetching mechanism in that case.) const dynamicRequest = (0, _fetchserverresponse.fetchServerResponse)(new URL(updatedCanonicalUrl, url.origin), { flightRouterState: dynamicRequestTree, nextUrl: state.nextUrl }); (0, _pprnavigations.listenForDynamicRequest)(task, dynamicRequest); // We store the dynamic request on the `lazyData` property of the CacheNode // because we're not going to await the dynamic request here. Since we're not blocking // on the dynamic request, `layout-router` will // task.node.lazyData = dynamicRequest } else { // The prefetched tree does not contain dynamic holes — it's // fully static. We can skip the dynamic request. } } else { // Nothing changed, so reuse the old cache. // TODO: What if the head changed but not any of the segment data? // Is that possible? If so, we should clone the whole tree and // update the head. newTree = treePatch; } } else { // The static response does not include any dynamic holes, so // there's no need to do a second request. // TODO: As an incremental step this just reverts back to the // non-PPR implementation. We can simplify this branch further, // given that PPR prefetches are always static and return the whole // tree. Or in the meantime we could factor it out into a // separate function. if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) { return handleExternalUrl(state, mutable, href, pendingPush); } const cache = (0, _approuter.createEmptyCacheNode)(); let applied = false; if (prefetchValues.status === _routerreducertypes.PrefetchCacheEntryStatus.stale && !isFirstRead) { // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data, // while copying over the `loading` for the segment that contains the page data. // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use. // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case applied = triggerLazyFetchForLeafSegments(cache, currentCache, flightSegmentPath, treePatch); // since we re-used the stale cache's loading state & refreshed the data, // update the `lastUsedTime` so that it can continue to be re-used for the next 30s prefetchValues.lastUsedTime = navigatedAt; } else { applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData, prefetchValues); } const hardNavigate = (0, _shouldhardnavigate.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree); if (hardNavigate) { // Copy rsc for the root node of the cache. cache.rsc = currentCache.rsc; cache.prefetchRsc = currentCache.prefetchRsc; (0, _invalidatecachebelowflightsegmentpath.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath); // Ensure the existing cache value is used when the cache was not invalidated. mutable.cache = cache; } else if (applied) { mutable.cache = cache; // If we applied the cache, we update the "current cache" value so any other // segments in the FlightDataPath will be able to reference the updated cache. currentCache = cache; } for (const subSegment of generateSegmentsFromPatch(treePatch)){ const scrollableSegmentPath = [ ...flightSegmentPath, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } currentTree = newTree; } } mutable.patchedTree = currentTree; mutable.canonicalUrl = updatedCanonicalUrl; mutable.scrollableSegments = scrollableSegments; mutable.hashFragment = hash; mutable.shouldScroll = shouldScroll; return (0, _handlemutable.handleMutable)(state, mutable); }, ()=>state); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigate-reducer.js.map /***/ }) iþÿÿlþÿÿ mþÿÿnþÿÿoþÿÿºR"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { generateSegmentsFromPatch: null, handleExternalUrl: null, navigateReducer: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { generateSegmentsFromPatch: function() { return generateSegmentsFromPatch; }, handleExternalUrl: function() { return handleExternalUrl; }, navigateReducer: function() { return navigateReducer; } }); const _fetchserverresponse = require("../fetch-server-response"); const _createhreffromurl = require("../create-href-from-url"); const _invalidatecachebelowflightsegmentpath = require("../invalidate-cache-below-flight-segmentpath"); const _applyrouterstatepatchtotree = require("../apply-router-state-patch-to-tree"); const _shouldhardnavigate = require("../should-hard-navigate"); const _isnavigatingtonewrootlayout = require("../is-navigating-to-new-root-layout"); const _routerreducertypes = require("../router-reducer-types"); const _handlemutable = require("../handle-mutable"); const _applyflightdata = require("../apply-flight-data"); const _prefetchreducer = require("./prefetch-reducer"); const _approuter = require("../../app-router"); const _segment = require("../../../../shared/lib/segment"); const _pprnavigations = require("../ppr-navigations"); const _prefetchcacheutils = require("../prefetch-cache-utils"); const _clearcachenodedataforsegmentpath = require("../clear-cache-node-data-for-segment-path"); const _aliasedprefetchnavigations = require("../aliased-prefetch-navigations"); const _segmentcache = require("../../segment-cache"); function handleExternalUrl(state, mutable, url, pendingPush) { mutable.mpaNavigation = true; mutable.canonicalUrl = url; mutable.pendingPush = pendingPush; mutable.scrollableSegments = undefined; return (0, _handlemutable.handleMutable)(state, mutable); } function generateSegmentsFromPatch(flightRouterPatch) { const segments = []; const [segment, parallelRoutes] = flightRouterPatch; if (Object.keys(parallelRoutes).length === 0) { return [ [ segment ] ]; } for (const [parallelRouteKey, parallelRoute] of Object.entries(parallelRoutes)){ for (const childSegment of generateSegmentsFromPatch(parallelRoute)){ // If the segment is empty, it means we are at the root of the tree if (segment === '') { segments.push([ parallelRouteKey, ...childSegment ]); } else { segments.push([ segment, parallelRouteKey, ...childSegment ]); } } } return segments; } function triggerLazyFetchForLeafSegments(newCache, currentCache, flightSegmentPath, treePatch) { let appliedPatch = false; newCache.rsc = currentCache.rsc; newCache.prefetchRsc = currentCache.prefetchRsc; newCache.loading = currentCache.loading; newCache.parallelRoutes = new Map(currentCache.parallelRoutes); const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map((segment)=>[ ...flightSegmentPath, ...segment ]); for (const segmentPaths of segmentPathsToFill){ (0, _clearcachenodedataforsegmentpath.clearCacheNodeDataForSegmentPath)(newCache, currentCache, segmentPaths); appliedPatch = true; } return appliedPatch; } function handleNavigationResult(url, state, mutable, pendingPush, result) { switch(result.tag){ case _segmentcache.NavigationResultTag.MPA: { // Perform an MPA navigation. const newUrl = result.data; return handleExternalUrl(state, mutable, newUrl, pendingPush); } case _segmentcache.NavigationResultTag.NoOp: { // The server responded with no change to the current page. However, if // the URL changed, we still need to update that. const newCanonicalUrl = result.data.canonicalUrl; mutable.canonicalUrl = newCanonicalUrl; // Check if the only thing that changed was the hash fragment. const oldUrl = new URL(state.canonicalUrl, url); const onlyHashChange = // navigations are always same-origin. url.pathname === oldUrl.pathname && url.search === oldUrl.search && url.hash !== oldUrl.hash; if (onlyHashChange) { // The only updated part of the URL is the hash. mutable.onlyHashChange = true; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = url.hash; // Setting this to an empty array triggers a scroll for all new and // updated segments. See `ScrollAndFocusHandler` for more details. mutable.scrollableSegments = []; } return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Success: { // Received a new result. mutable.cache = result.data.cacheNode; mutable.patchedTree = result.data.flightRouterState; mutable.canonicalUrl = result.data.canonicalUrl; mutable.scrollableSegments = result.data.scrollableSegments; mutable.shouldScroll = result.data.shouldScroll; mutable.hashFragment = result.data.hash; return (0, _handlemutable.handleMutable)(state, mutable); } case _segmentcache.NavigationResultTag.Async: { return result.data.then((asyncResult)=>handleNavigationResult(url, state, mutable, pendingPush, asyncResult), // TODO: This matches the current behavior but we need to do something // better here if the network fails. ()=>{ return state; }); } default: { result; return state; } } } function navigateReducer(state, action) { const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } = action; const mutable = {}; const { hash } = url; const href = (0, _createhreffromurl.createHrefFromUrl)(url); const pendingPush = navigateType === 'push'; // we want to prune the prefetch cache on every navigation to avoid it growing too large (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache); mutable.preserveCustomHistoryState = false; mutable.pendingPush = pendingPush; if (isExternalUrl) { return handleExternalUrl(state, mutable, url.toString(), pendingPush); } // Handles case where `` tag is present, // which will trigger an MPA navigation. if (document.getElementById('__next-page-redirect')) { return handleExternalUrl(state, mutable, href, pendingPush); } if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) { // (Very Early Experimental Feature) Segment Cache // // Bypass the normal prefetch cache and use the new per-segment cache // implementation instead. This is only supported if PPR is enabled, too. // // Temporary glue code between the router reducer and the new navigation // implementation. Eventually we'll rewrite the router reducer to a // state machine. const result = (0, _segmentcache.navigate)(url, state.cache, state.tree, state.nextUrl, shouldScroll); return handleNavigationResult(url, state, mutable, pendingPush, result); } const prefetchValues = (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({ url, nextUrl: state.nextUrl, tree: state.tree, prefetchCache: state.prefetchCache, allowAliasing }); const { treeAtTimeOfPrefetch, data } = prefetchValues; _prefetchreducer.prefetchQueue.bump(data); return data.then((param)=>{ let { flightData, canonicalUrl: canonicalUrlOverride, postponed } = param; const navigatedAt = Date.now(); let isFirstRead = false; // we only want to mark this once if (!prefetchValues.lastUsedTime) { // important: we should only mark the cache node as dirty after we unsuspend from the call above prefetchValues.lastUsedTime = navigatedAt; isFirstRead = true; } if (prefetchValues.aliased) { // When alias is enabled, search param may not be included in the canonicalUrl. // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data. const urlWithCanonicalPathname = new URL(url.href); if (canonicalUrlOverride) { urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname; } const result = (0, _aliasedprefetchnavigations.handleAliasedPrefetchEntry)(navigatedAt, state, flightData, urlWithCanonicalPathname, mutable); // We didn't return new router state because we didn't apply the aliased entry for some reason. // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This // will create an on-demand prefetch entry. if (result === false) { return navigateReducer(state, { ...action, allowAliasing: false }); } return result; } // Handle case when navigating to page in `pages` from `app` if (typeof flightData === 'string') { return handleExternalUrl(state, mutable, flightData, pendingPush); } const updatedCanonicalUrl = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : href; const onlyHashChange = !!hash && state.canonicalUrl.split('#', 1)[0] === updatedCanonicalUrl.split('#', 1)[0]; // If only the hash has changed, the server hasn't sent us any new data. We can just update // the mutable properties responsible for URL and scroll handling and return early. if (onlyHashChange) { mutable.onlyHashChange = true; mutable.canonicalUrl = updatedCanonicalUrl; mutable.shouldScroll = shouldScroll; mutable.hashFragment = hash; mutable.scrollableSegments = []; return (0, _handlemutable.handleMutable)(state, mutable); } let currentTree = state.tree; let currentCache = state.cache; let scrollableSegments = []; for (const normalizedFlightData of flightData){ const { pathToSegment: flightSegmentPath, seedData, head, isHeadPartial, isRootRender } = normalizedFlightData; let treePatch = normalizedFlightData.tree; // TODO-APP: remove '' const flightSegmentPathWithLeadingEmpty = [ '', ...flightSegmentPath ]; // Create new tree based on the flightSegmentPath and router state patch let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href); // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch. if (newTree === null) { newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch, href); } if (newTree !== null) { if (// will send back a static response that's rendered from // the root. If for some reason it doesn't, we fall back to the // non-PPR implementation. // TODO: We should get rid of the else branch and do all navigations // via startPPRNavigation. The current structure is just // an incremental step. seedData && isRootRender && postponed) { const task = (0, _pprnavigations.startPPRNavigation)(navigatedAt, currentCache, currentTree, treePatch, seedData, head, isHeadPartial, false, scrollableSegments); if (task !== null) { if (task.route === null) { // Detected a change to the root layout. Perform an full- // page navigation. return handleExternalUrl(state, mutable, href, pendingPush); } // Use the tree computed by startPPRNavigation instead // of the one computed by applyRouterStatePatchToTree. // TODO: We should remove applyRouterStatePatchToTree // from the PPR path entirely. const patchedRouterState = task.route; newTree = patchedRouterState; const newCache = task.node; if (newCache !== null) { // We've created a new Cache Node tree that contains a prefetched // version of the next page. This can be rendered instantly. mutable.cache = newCache; } const dynamicRequestTree = task.dynamicRequestTree; if (dynamicRequestTree !== null) { // The prefetched tree has dynamic holes in it. We initiate a // dynamic request to fill them in. // // Do not block on the result. We'll immediately render the Cache // Node tree and suspend on the dynamic parts. When the request // comes in, we'll fill in missing data and ping React to // re-render. Unlike the lazy fetching model in the non-PPR // implementation, this is modeled as a single React update + // streaming, rather than multiple top-level updates. (However, // even in the new model, we'll still need to sometimes update the // root multiple times per navigation, like if the server sends us // a different response than we expected. For now, we revert back // to the lazy fetching mechanism in that case.) const dynamicRequest = (0, _fetchserverresponse.fetchServerResponse)(new URL(updatedCanonicalUrl, url.origin), { flightRouterState: dynamicRequestTree, nextUrl: state.nextUrl }); (0, _pprnavigations.listenForDynamicRequest)(task, dynamicRequest); // We store the dynamic request on the `lazyData` property of the CacheNode // because we're not going to await the dynamic request here. Since we're not blocking // on the dynamic request, `layout-router` will // task.node.lazyData = dynamicRequest } else { // The prefetched tree does not contain dynamic holes — it's // fully static. We can skip the dynamic request. } } else { // Nothing changed, so reuse the old cache. // TODO: What if the head changed but not any of the segment data? // Is that possible? If so, we should clone the whole tree and // update the head. newTree = treePatch; } } else { // The static response does not include any dynamic holes, so // there's no need to do a second request. // TODO: As an incremental step this just reverts back to the // non-PPR implementation. We can simplify this branch further, // given that PPR prefetches are always static and return the whole // tree. Or in the meantime we could factor it out into a // separate function. if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) { return handleExternalUrl(state, mutable, href, pendingPush); } const cache = (0, _approuter.createEmptyCacheNode)(); let applied = false; if (prefetchValues.status === _routerreducertypes.PrefetchCacheEntryStatus.stale && !isFirstRead) { // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data, // while copying over the `loading` for the segment that contains the page data. // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use. // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case applied = triggerLazyFetchForLeafSegments(cache, currentCache, flightSegmentPath, treePatch); // since we re-used the stale cache's loading state & refreshed the data, // update the `lastUsedTime` so that it can continue to be re-used for the next 30s prefetchValues.lastUsedTime = navigatedAt; } else { applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData, prefetchValues); } const hardNavigate = (0, _shouldhardnavigate.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree); if (hardNavigate) { // Copy rsc for the root node of the cache. cache.rsc = currentCache.rsc; cache.prefetchRsc = currentCache.prefetchRsc; (0, _invalidatecachebelowflightsegmentpath.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath); // Ensure the existing cache value is used when the cache was not invalidated. mutable.cache = cache; } else if (applied) { mutable.cache = cache; // If we applied the cache, we update the "current cache" value so any other // segments in the FlightDataPath will be able to reference the updated cache. currentCache = cache; } for (const subSegment of generateSegmentsFromPatch(treePatch)){ const scrollableSegmentPath = [ ...flightSegmentPath, ...subSegment ]; // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case. if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) { scrollableSegments.push(scrollableSegmentPath); } } } currentTree = newTree; } } mutable.patchedTree = currentTree; mutable.canonicalUrl = updatedCanonicalUrl; mutable.scrollableSegments = scrollableSegments; mutable.hashFragment = hash; mutable.shouldScroll = shouldScroll; return (0, _handlemutable.handleMutable)(state, mutable); }, ()=>state); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=navigate-reducer.js.map S012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871980undefined649655__webpack_require__undefined65768294082undefined713719__webpack_require__undefined72174575497undefined796802__webpack_require__undefined80484957162undefined890896__webpack_require__undefined89893424848undefined966972__webpack_require__undefined97499811505undefined10391045__webpack_require__undefined1047108377692undefined11151121__webpack_require__undefined1123114713136undefined11741180__webpack_require__undefined1182120026613undefined12291235__webpack_require__undefined1237125811966undefined12871293__webpack_require__undefined1295131437446undefined13371343__webpack_require__undefined1345136225918undefined13831389__webpack_require__undefined1391142244859undefined14501456__webpack_require__undefined1458147782582undefined15091515__webpack_require__undefined1517154181288undefined15871593__webpack_require__undefined1595163750202undefined16771683__webpack_require__undefined168517172173undefined17431749__webpack_require__undefined1751177168459undefined73287366falseundefined73697991{}undefinedpþÿÿqþÿÿ, /***/ 15443:  ð«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource$/***/ ((module) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceß'use strict'; const BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments']; const hasBlob = typeof Blob !== 'undefined'; if (hasBlob) BINARY_TYPES.push('blob'); module.exports = { BINARY_TYPES, EMPTY_BUFFER: Buffer.alloc(0), GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', hasBlob, kForOnEventAttribute: Symbol('kIsForOnEventAttribute'), kListener: Symbol('kListener'), kStatusCode: Symbol('status-code'), kWebSocket: Symbol('websocket'), NOOP: () => {} }; ` €€†buffer†source„size„maps„hashÒ const BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments']; const hasBlob = typeof Blob !== 'undefined'; if (hasBlob) BINARY_TYPES.push('blob'); module.exports = { BINARY_TYPES, EMPTY_BUFFER: Buffer.alloc(0), GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', hasBlob, kForOnEventAttribute: Symbol('kIsForOnEventAttribute'), kListener: Symbol('kListener'), kStatusCode: Symbol('status-code'), kWebSocket: Symbol('websocket'), NOOP: () => {} }; €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceß'use strict'; const BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments']; const hasBlob = typeof Blob !== 'undefined'; if (hasBlob) BINARY_TYPES.push('blob'); module.exports = { BINARY_TYPES, EMPTY_BUFFER: Buffer.alloc(0), GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', hasBlob, kForOnEventAttribute: Symbol('kIsForOnEventAttribute'), kListener: Symbol('kListener'), kStatusCode: Symbol('status-code'), kWebSocket: Symbol('websocket'), NOOP: () => {} };  012undefined /***/ }) ^þÿÿ/***/ ((module) => { "use strict"; const BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments']; const hasBlob = typeof Blob !== 'undefined'; if (hasBlob) BINARY_TYPES.push('blob'); module.exports = { BINARY_TYPES, EMPTY_BUFFER: Buffer.alloc(0), GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', hasBlob, kForOnEventAttribute: Symbol('kIsForOnEventAttribute'), kListener: Symbol('kListener'), kStatusCode: Symbol('status-code'), kWebSocket: Symbol('websocket'), NOOP: () => {} }; /***/ }) _þÿÿbþÿÿ cþÿÿ$/***/ ((module) => { "use strict"; dþÿÿß'use strict'; const BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments']; const hasBlob = typeof Blob !== 'undefined'; if (hasBlob) BINARY_TYPES.push('blob'); module.exports = { BINARY_TYPES, EMPTY_BUFFER: Buffer.alloc(0), GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', hasBlob, kForOnEventAttribute: Symbol('kIsForOnEventAttribute'), kListener: Symbol('kListener'), kStatusCode: Symbol('status-code'), kWebSocket: Symbol('websocket'), NOOP: () => {} };  012undefinedeþÿÿfþÿÿ, /***/ 15822:  ­Ê«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ‘C«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource‚B"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { AppLinksMeta: null, OpenGraphMetadata: null, TwitterMetadata: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { AppLinksMeta: function() { return AppLinksMeta; }, OpenGraphMetadata: function() { return OpenGraphMetadata; }, TwitterMetadata: function() { return TwitterMetadata; } }); const _meta = require("./meta"); function OpenGraphMetadata({ openGraph }) { var _openGraph_title, _openGraph_url, _openGraph_ttl; if (!openGraph) { return null; } let typedOpenGraph; if ('type' in openGraph) { const openGraphType = openGraph.type; switch(openGraphType){ case 'website': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'website' }) ]; break; case 'article': var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'article' }), (0, _meta.Meta)({ property: 'article:published_time', content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString() }), (0, _meta.Meta)({ property: 'article:modified_time', content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString() }), (0, _meta.Meta)({ property: 'article:expiration_time', content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:author', contents: openGraph.authors }), (0, _meta.Meta)({ property: 'article:section', content: openGraph.section }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:tag', contents: openGraph.tags }) ]; break; case 'book': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'book' }), (0, _meta.Meta)({ property: 'book:isbn', content: openGraph.isbn }), (0, _meta.Meta)({ property: 'book:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:author', contents: openGraph.authors }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:tag', contents: openGraph.tags }) ]; break; case 'profile': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'profile' }), (0, _meta.Meta)({ property: 'profile:first_name', content: openGraph.firstName }), (0, _meta.Meta)({ property: 'profile:last_name', content: openGraph.lastName }), (0, _meta.Meta)({ property: 'profile:username', content: openGraph.username }), (0, _meta.Meta)({ property: 'profile:gender', content: openGraph.gender }) ]; break; case 'music.song': var _openGraph_duration; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.song' }), (0, _meta.Meta)({ property: 'music:duration', content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:album', contents: openGraph.albums }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }) ]; break; case 'music.album': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.album' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }), (0, _meta.Meta)({ property: 'music:release_date', content: openGraph.releaseDate }) ]; break; case 'music.playlist': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.playlist' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'music.radio_station': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.radio_station' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'video.movie': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.movie' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }) ]; break; case 'video.episode': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.episode' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }), (0, _meta.Meta)({ property: 'video:series', content: openGraph.series }) ]; break; case 'video.tv_show': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.tv_show' }) ]; break; case 'video.other': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.other' }) ]; break; default: const _exhaustiveCheck = openGraphType; throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), "__NEXT_ERROR_CODE", { value: "E237", enumerable: false, configurable: true }); } } return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ property: 'og:determiner', content: openGraph.determiner }), (0, _meta.Meta)({ property: 'og:title', content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute }), (0, _meta.Meta)({ property: 'og:description', content: openGraph.description }), (0, _meta.Meta)({ property: 'og:url', content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString() }), (0, _meta.Meta)({ property: 'og:site_name', content: openGraph.siteName }), (0, _meta.Meta)({ property: 'og:locale', content: openGraph.locale }), (0, _meta.Meta)({ property: 'og:country_name', content: openGraph.countryName }), (0, _meta.Meta)({ property: 'og:ttl', content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:image', contents: openGraph.images }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:video', contents: openGraph.videos }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:audio', contents: openGraph.audio }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:email', contents: openGraph.emails }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:phone_number', contents: openGraph.phoneNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:fax_number', contents: openGraph.faxNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:locale:alternate', contents: openGraph.alternateLocale }), ...typedOpenGraph ? typedOpenGraph : [] ]); } function TwitterAppItem({ app, type }) { var _app_url_type, _app_url; return [ (0, _meta.Meta)({ name: `twitter:app:name:${type}`, content: app.name }), (0, _meta.Meta)({ name: `twitter:app:id:${type}`, content: app.id[type] }), (0, _meta.Meta)({ name: `twitter:app:url:${type}`, content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString() }) ]; } function TwitterMetadata({ twitter }) { var _twitter_title; if (!twitter) return null; const { card } = twitter; return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ name: 'twitter:card', content: card }), (0, _meta.Meta)({ name: 'twitter:site', content: twitter.site }), (0, _meta.Meta)({ name: 'twitter:site:id', content: twitter.siteId }), (0, _meta.Meta)({ name: 'twitter:creator', content: twitter.creator }), (0, _meta.Meta)({ name: 'twitter:creator:id', content: twitter.creatorId }), (0, _meta.Meta)({ name: 'twitter:title', content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute }), (0, _meta.Meta)({ name: 'twitter:description', content: twitter.description }), (0, _meta.MultiMeta)({ namePrefix: 'twitter:image', contents: twitter.images }), ...card === 'player' ? twitter.players.flatMap((player)=>[ (0, _meta.Meta)({ name: 'twitter:player', content: player.playerUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:stream', content: player.streamUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:width', content: player.width }), (0, _meta.Meta)({ name: 'twitter:player:height', content: player.height }) ]) : [], ...card === 'app' ? [ TwitterAppItem({ app: twitter.app, type: 'iphone' }), TwitterAppItem({ app: twitter.app, type: 'ipad' }), TwitterAppItem({ app: twitter.app, type: 'googleplay' }) ] : [] ]); } function AppLinksMeta({ appLinks }) { if (!appLinks) return null; return (0, _meta.MetaFilter)([ (0, _meta.MultiMeta)({ propertyPrefix: 'al:ios', contents: appLinks.ios }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:iphone', contents: appLinks.iphone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:ipad', contents: appLinks.ipad }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:android', contents: appLinks.android }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_phone', contents: appLinks.windows_phone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows', contents: appLinks.windows }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_universal', contents: appLinks.windows_universal }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:web', contents: appLinks.web }) ]); } //# sourceMappingURL=opengraph.js.map e :NNWD¹SY[b€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…66837€†buffer†source„size„maps„hashB Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { AppLinksMeta: function() { return AppLinksMeta; }, OpenGraphMetadata: function() { return OpenGraphMetadata; }, TwitterMetadata: function() { return TwitterMetadata; } }); const _meta = __webpack_require__(66837); function OpenGraphMetadata({ openGraph }) { var _openGraph_title, _openGraph_url, _openGraph_ttl; if (!openGraph) { return null; } let typedOpenGraph; if ('type' in openGraph) { const openGraphType = openGraph.type; switch(openGraphType){ case 'website': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'website' }) ]; break; case 'article': var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'article' }), (0, _meta.Meta)({ property: 'article:published_time', content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString() }), (0, _meta.Meta)({ property: 'article:modified_time', content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString() }), (0, _meta.Meta)({ property: 'article:expiration_time', content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:author', contents: openGraph.authors }), (0, _meta.Meta)({ property: 'article:section', content: openGraph.section }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:tag', contents: openGraph.tags }) ]; break; case 'book': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'book' }), (0, _meta.Meta)({ property: 'book:isbn', content: openGraph.isbn }), (0, _meta.Meta)({ property: 'book:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:author', contents: openGraph.authors }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:tag', contents: openGraph.tags }) ]; break; case 'profile': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'profile' }), (0, _meta.Meta)({ property: 'profile:first_name', content: openGraph.firstName }), (0, _meta.Meta)({ property: 'profile:last_name', content: openGraph.lastName }), (0, _meta.Meta)({ property: 'profile:username', content: openGraph.username }), (0, _meta.Meta)({ property: 'profile:gender', content: openGraph.gender }) ]; break; case 'music.song': var _openGraph_duration; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.song' }), (0, _meta.Meta)({ property: 'music:duration', content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:album', contents: openGraph.albums }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }) ]; break; case 'music.album': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.album' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }), (0, _meta.Meta)({ property: 'music:release_date', content: openGraph.releaseDate }) ]; break; case 'music.playlist': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.playlist' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'music.radio_station': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.radio_station' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'video.movie': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.movie' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }) ]; break; case 'video.episode': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.episode' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }), (0, _meta.Meta)({ property: 'video:series', content: openGraph.series }) ]; break; case 'video.tv_show': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.tv_show' }) ]; break; case 'video.other': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.other' }) ]; break; default: const _exhaustiveCheck = openGraphType; throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), "__NEXT_ERROR_CODE", { value: "E237", enumerable: false, configurable: true }); } } return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ property: 'og:determiner', content: openGraph.determiner }), (0, _meta.Meta)({ property: 'og:title', content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute }), (0, _meta.Meta)({ property: 'og:description', content: openGraph.description }), (0, _meta.Meta)({ property: 'og:url', content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString() }), (0, _meta.Meta)({ property: 'og:site_name', content: openGraph.siteName }), (0, _meta.Meta)({ property: 'og:locale', content: openGraph.locale }), (0, _meta.Meta)({ property: 'og:country_name', content: openGraph.countryName }), (0, _meta.Meta)({ property: 'og:ttl', content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:image', contents: openGraph.images }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:video', contents: openGraph.videos }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:audio', contents: openGraph.audio }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:email', contents: openGraph.emails }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:phone_number', contents: openGraph.phoneNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:fax_number', contents: openGraph.faxNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:locale:alternate', contents: openGraph.alternateLocale }), ...typedOpenGraph ? typedOpenGraph : [] ]); } function TwitterAppItem({ app, type }) { var _app_url_type, _app_url; return [ (0, _meta.Meta)({ name: `twitter:app:name:${type}`, content: app.name }), (0, _meta.Meta)({ name: `twitter:app:id:${type}`, content: app.id[type] }), (0, _meta.Meta)({ name: `twitter:app:url:${type}`, content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString() }) ]; } function TwitterMetadata({ twitter }) { var _twitter_title; if (!twitter) return null; const { card } = twitter; return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ name: 'twitter:card', content: card }), (0, _meta.Meta)({ name: 'twitter:site', content: twitter.site }), (0, _meta.Meta)({ name: 'twitter:site:id', content: twitter.siteId }), (0, _meta.Meta)({ name: 'twitter:creator', content: twitter.creator }), (0, _meta.Meta)({ name: 'twitter:creator:id', content: twitter.creatorId }), (0, _meta.Meta)({ name: 'twitter:title', content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute }), (0, _meta.Meta)({ name: 'twitter:description', content: twitter.description }), (0, _meta.MultiMeta)({ namePrefix: 'twitter:image', contents: twitter.images }), ...card === 'player' ? twitter.players.flatMap((player)=>[ (0, _meta.Meta)({ name: 'twitter:player', content: player.playerUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:stream', content: player.streamUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:width', content: player.width }), (0, _meta.Meta)({ name: 'twitter:player:height', content: player.height }) ]) : [], ...card === 'app' ? [ TwitterAppItem({ app: twitter.app, type: 'iphone' }), TwitterAppItem({ app: twitter.app, type: 'ipad' }), TwitterAppItem({ app: twitter.app, type: 'googleplay' }) ] : [] ]); } function AppLinksMeta({ appLinks }) { if (!appLinks) return null; return (0, _meta.MetaFilter)([ (0, _meta.MultiMeta)({ propertyPrefix: 'al:ios', contents: appLinks.ios }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:iphone', contents: appLinks.iphone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:ipad', contents: appLinks.ipad }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:android', contents: appLinks.android }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_phone', contents: appLinks.windows_phone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows', contents: appLinks.windows }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_universal', contents: appLinks.windows_universal }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:web', contents: appLinks.web }) ]); } //# sourceMappingURL=opengraph.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource‚B"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { AppLinksMeta: null, OpenGraphMetadata: null, TwitterMetadata: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { AppLinksMeta: function() { return AppLinksMeta; }, OpenGraphMetadata: function() { return OpenGraphMetadata; }, TwitterMetadata: function() { return TwitterMetadata; } }); const _meta = require("./meta"); function OpenGraphMetadata({ openGraph }) { var _openGraph_title, _openGraph_url, _openGraph_ttl; if (!openGraph) { return null; } let typedOpenGraph; if ('type' in openGraph) { const openGraphType = openGraph.type; switch(openGraphType){ case 'website': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'website' }) ]; break; case 'article': var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'article' }), (0, _meta.Meta)({ property: 'article:published_time', content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString() }), (0, _meta.Meta)({ property: 'article:modified_time', content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString() }), (0, _meta.Meta)({ property: 'article:expiration_time', content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:author', contents: openGraph.authors }), (0, _meta.Meta)({ property: 'article:section', content: openGraph.section }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:tag', contents: openGraph.tags }) ]; break; case 'book': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'book' }), (0, _meta.Meta)({ property: 'book:isbn', content: openGraph.isbn }), (0, _meta.Meta)({ property: 'book:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:author', contents: openGraph.authors }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:tag', contents: openGraph.tags }) ]; break; case 'profile': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'profile' }), (0, _meta.Meta)({ property: 'profile:first_name', content: openGraph.firstName }), (0, _meta.Meta)({ property: 'profile:last_name', content: openGraph.lastName }), (0, _meta.Meta)({ property: 'profile:username', content: openGraph.username }), (0, _meta.Meta)({ property: 'profile:gender', content: openGraph.gender }) ]; break; case 'music.song': var _openGraph_duration; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.song' }), (0, _meta.Meta)({ property: 'music:duration', content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:album', contents: openGraph.albums }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }) ]; break; case 'music.album': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.album' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }), (0, _meta.Meta)({ property: 'music:release_date', content: openGraph.releaseDate }) ]; break; case 'music.playlist': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.playlist' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'music.radio_station': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.radio_station' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'video.movie': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.movie' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }) ]; break; case 'video.episode': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.episode' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }), (0, _meta.Meta)({ property: 'video:series', content: openGraph.series }) ]; break; case 'video.tv_show': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.tv_show' }) ]; break; case 'video.other': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.other' }) ]; break; default: const _exhaustiveCheck = openGraphType; throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), "__NEXT_ERROR_CODE", { value: "E237", enumerable: false, configurable: true }); } } return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ property: 'og:determiner', content: openGraph.determiner }), (0, _meta.Meta)({ property: 'og:title', content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute }), (0, _meta.Meta)({ property: 'og:description', content: openGraph.description }), (0, _meta.Meta)({ property: 'og:url', content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString() }), (0, _meta.Meta)({ property: 'og:site_name', content: openGraph.siteName }), (0, _meta.Meta)({ property: 'og:locale', content: openGraph.locale }), (0, _meta.Meta)({ property: 'og:country_name', content: openGraph.countryName }), (0, _meta.Meta)({ property: 'og:ttl', content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:image', contents: openGraph.images }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:video', contents: openGraph.videos }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:audio', contents: openGraph.audio }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:email', contents: openGraph.emails }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:phone_number', contents: openGraph.phoneNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:fax_number', contents: openGraph.faxNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:locale:alternate', contents: openGraph.alternateLocale }), ...typedOpenGraph ? typedOpenGraph : [] ]); } function TwitterAppItem({ app, type }) { var _app_url_type, _app_url; return [ (0, _meta.Meta)({ name: `twitter:app:name:${type}`, content: app.name }), (0, _meta.Meta)({ name: `twitter:app:id:${type}`, content: app.id[type] }), (0, _meta.Meta)({ name: `twitter:app:url:${type}`, content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString() }) ]; } function TwitterMetadata({ twitter }) { var _twitter_title; if (!twitter) return null; const { card } = twitter; return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ name: 'twitter:card', content: card }), (0, _meta.Meta)({ name: 'twitter:site', content: twitter.site }), (0, _meta.Meta)({ name: 'twitter:site:id', content: twitter.siteId }), (0, _meta.Meta)({ name: 'twitter:creator', content: twitter.creator }), (0, _meta.Meta)({ name: 'twitter:creator:id', content: twitter.creatorId }), (0, _meta.Meta)({ name: 'twitter:title', content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute }), (0, _meta.Meta)({ name: 'twitter:description', content: twitter.description }), (0, _meta.MultiMeta)({ namePrefix: 'twitter:image', contents: twitter.images }), ...card === 'player' ? twitter.players.flatMap((player)=>[ (0, _meta.Meta)({ name: 'twitter:player', content: player.playerUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:stream', content: player.streamUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:width', content: player.width }), (0, _meta.Meta)({ name: 'twitter:player:height', content: player.height }) ]) : [], ...card === 'app' ? [ TwitterAppItem({ app: twitter.app, type: 'iphone' }), TwitterAppItem({ app: twitter.app, type: 'ipad' }), TwitterAppItem({ app: twitter.app, type: 'googleplay' }) ] : [] ]); } function AppLinksMeta({ appLinks }) { if (!appLinks) return null; return (0, _meta.MetaFilter)([ (0, _meta.MultiMeta)({ propertyPrefix: 'al:ios', contents: appLinks.ios }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:iphone', contents: appLinks.iphone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:ipad', contents: appLinks.ipad }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:android', contents: appLinks.android }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_phone', contents: appLinks.windows_phone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows', contents: appLinks.windows }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_universal', contents: appLinks.windows_universal }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:web', contents: appLinks.web }) ]); } //# sourceMappingURL=opengraph.js.map›012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871850undefined595601__webpack_require__undefined60361066837undefined /***/ }) Sþÿÿ{B/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { AppLinksMeta: function() { return AppLinksMeta; }, OpenGraphMetadata: function() { return OpenGraphMetadata; }, TwitterMetadata: function() { return TwitterMetadata; } }); const _meta = __webpack_require__(66837); function OpenGraphMetadata({ openGraph }) { var _openGraph_title, _openGraph_url, _openGraph_ttl; if (!openGraph) { return null; } let typedOpenGraph; if ('type' in openGraph) { const openGraphType = openGraph.type; switch(openGraphType){ case 'website': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'website' }) ]; break; case 'article': var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'article' }), (0, _meta.Meta)({ property: 'article:published_time', content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString() }), (0, _meta.Meta)({ property: 'article:modified_time', content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString() }), (0, _meta.Meta)({ property: 'article:expiration_time', content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:author', contents: openGraph.authors }), (0, _meta.Meta)({ property: 'article:section', content: openGraph.section }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:tag', contents: openGraph.tags }) ]; break; case 'book': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'book' }), (0, _meta.Meta)({ property: 'book:isbn', content: openGraph.isbn }), (0, _meta.Meta)({ property: 'book:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:author', contents: openGraph.authors }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:tag', contents: openGraph.tags }) ]; break; case 'profile': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'profile' }), (0, _meta.Meta)({ property: 'profile:first_name', content: openGraph.firstName }), (0, _meta.Meta)({ property: 'profile:last_name', content: openGraph.lastName }), (0, _meta.Meta)({ property: 'profile:username', content: openGraph.username }), (0, _meta.Meta)({ property: 'profile:gender', content: openGraph.gender }) ]; break; case 'music.song': var _openGraph_duration; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.song' }), (0, _meta.Meta)({ property: 'music:duration', content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:album', contents: openGraph.albums }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }) ]; break; case 'music.album': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.album' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }), (0, _meta.Meta)({ property: 'music:release_date', content: openGraph.releaseDate }) ]; break; case 'music.playlist': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.playlist' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'music.radio_station': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.radio_station' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'video.movie': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.movie' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }) ]; break; case 'video.episode': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.episode' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }), (0, _meta.Meta)({ property: 'video:series', content: openGraph.series }) ]; break; case 'video.tv_show': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.tv_show' }) ]; break; case 'video.other': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.other' }) ]; break; default: const _exhaustiveCheck = openGraphType; throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), "__NEXT_ERROR_CODE", { value: "E237", enumerable: false, configurable: true }); } } return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ property: 'og:determiner', content: openGraph.determiner }), (0, _meta.Meta)({ property: 'og:title', content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute }), (0, _meta.Meta)({ property: 'og:description', content: openGraph.description }), (0, _meta.Meta)({ property: 'og:url', content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString() }), (0, _meta.Meta)({ property: 'og:site_name', content: openGraph.siteName }), (0, _meta.Meta)({ property: 'og:locale', content: openGraph.locale }), (0, _meta.Meta)({ property: 'og:country_name', content: openGraph.countryName }), (0, _meta.Meta)({ property: 'og:ttl', content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:image', contents: openGraph.images }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:video', contents: openGraph.videos }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:audio', contents: openGraph.audio }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:email', contents: openGraph.emails }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:phone_number', contents: openGraph.phoneNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:fax_number', contents: openGraph.faxNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:locale:alternate', contents: openGraph.alternateLocale }), ...typedOpenGraph ? typedOpenGraph : [] ]); } function TwitterAppItem({ app, type }) { var _app_url_type, _app_url; return [ (0, _meta.Meta)({ name: `twitter:app:name:${type}`, content: app.name }), (0, _meta.Meta)({ name: `twitter:app:id:${type}`, content: app.id[type] }), (0, _meta.Meta)({ name: `twitter:app:url:${type}`, content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString() }) ]; } function TwitterMetadata({ twitter }) { var _twitter_title; if (!twitter) return null; const { card } = twitter; return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ name: 'twitter:card', content: card }), (0, _meta.Meta)({ name: 'twitter:site', content: twitter.site }), (0, _meta.Meta)({ name: 'twitter:site:id', content: twitter.siteId }), (0, _meta.Meta)({ name: 'twitter:creator', content: twitter.creator }), (0, _meta.Meta)({ name: 'twitter:creator:id', content: twitter.creatorId }), (0, _meta.Meta)({ name: 'twitter:title', content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute }), (0, _meta.Meta)({ name: 'twitter:description', content: twitter.description }), (0, _meta.MultiMeta)({ namePrefix: 'twitter:image', contents: twitter.images }), ...card === 'player' ? twitter.players.flatMap((player)=>[ (0, _meta.Meta)({ name: 'twitter:player', content: player.playerUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:stream', content: player.streamUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:width', content: player.width }), (0, _meta.Meta)({ name: 'twitter:player:height', content: player.height }) ]) : [], ...card === 'app' ? [ TwitterAppItem({ app: twitter.app, type: 'iphone' }), TwitterAppItem({ app: twitter.app, type: 'ipad' }), TwitterAppItem({ app: twitter.app, type: 'googleplay' }) ] : [] ]); } function AppLinksMeta({ appLinks }) { if (!appLinks) return null; return (0, _meta.MetaFilter)([ (0, _meta.MultiMeta)({ propertyPrefix: 'al:ios', contents: appLinks.ios }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:iphone', contents: appLinks.iphone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:ipad', contents: appLinks.ipad }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:android', contents: appLinks.android }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_phone', contents: appLinks.windows_phone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows', contents: appLinks.windows }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_universal', contents: appLinks.windows_universal }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:web', contents: appLinks.web }) ]); } //# sourceMappingURL=opengraph.js.map /***/ }) TþÿÿWþÿÿ XþÿÿrþÿÿZþÿÿ‚B"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { AppLinksMeta: null, OpenGraphMetadata: null, TwitterMetadata: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { AppLinksMeta: function() { return AppLinksMeta; }, OpenGraphMetadata: function() { return OpenGraphMetadata; }, TwitterMetadata: function() { return TwitterMetadata; } }); const _meta = require("./meta"); function OpenGraphMetadata({ openGraph }) { var _openGraph_title, _openGraph_url, _openGraph_ttl; if (!openGraph) { return null; } let typedOpenGraph; if ('type' in openGraph) { const openGraphType = openGraph.type; switch(openGraphType){ case 'website': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'website' }) ]; break; case 'article': var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'article' }), (0, _meta.Meta)({ property: 'article:published_time', content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString() }), (0, _meta.Meta)({ property: 'article:modified_time', content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString() }), (0, _meta.Meta)({ property: 'article:expiration_time', content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:author', contents: openGraph.authors }), (0, _meta.Meta)({ property: 'article:section', content: openGraph.section }), (0, _meta.MultiMeta)({ propertyPrefix: 'article:tag', contents: openGraph.tags }) ]; break; case 'book': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'book' }), (0, _meta.Meta)({ property: 'book:isbn', content: openGraph.isbn }), (0, _meta.Meta)({ property: 'book:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:author', contents: openGraph.authors }), (0, _meta.MultiMeta)({ propertyPrefix: 'book:tag', contents: openGraph.tags }) ]; break; case 'profile': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'profile' }), (0, _meta.Meta)({ property: 'profile:first_name', content: openGraph.firstName }), (0, _meta.Meta)({ property: 'profile:last_name', content: openGraph.lastName }), (0, _meta.Meta)({ property: 'profile:username', content: openGraph.username }), (0, _meta.Meta)({ property: 'profile:gender', content: openGraph.gender }) ]; break; case 'music.song': var _openGraph_duration; typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.song' }), (0, _meta.Meta)({ property: 'music:duration', content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:album', contents: openGraph.albums }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }) ]; break; case 'music.album': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.album' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:musician', contents: openGraph.musicians }), (0, _meta.Meta)({ property: 'music:release_date', content: openGraph.releaseDate }) ]; break; case 'music.playlist': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.playlist' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:song', contents: openGraph.songs }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'music.radio_station': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'music.radio_station' }), (0, _meta.MultiMeta)({ propertyPrefix: 'music:creator', contents: openGraph.creators }) ]; break; case 'video.movie': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.movie' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }) ]; break; case 'video.episode': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.episode' }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:actor', contents: openGraph.actors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:director', contents: openGraph.directors }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:writer', contents: openGraph.writers }), (0, _meta.Meta)({ property: 'video:duration', content: openGraph.duration }), (0, _meta.Meta)({ property: 'video:release_date', content: openGraph.releaseDate }), (0, _meta.MultiMeta)({ propertyPrefix: 'video:tag', contents: openGraph.tags }), (0, _meta.Meta)({ property: 'video:series', content: openGraph.series }) ]; break; case 'video.tv_show': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.tv_show' }) ]; break; case 'video.other': typedOpenGraph = [ (0, _meta.Meta)({ property: 'og:type', content: 'video.other' }) ]; break; default: const _exhaustiveCheck = openGraphType; throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), "__NEXT_ERROR_CODE", { value: "E237", enumerable: false, configurable: true }); } } return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ property: 'og:determiner', content: openGraph.determiner }), (0, _meta.Meta)({ property: 'og:title', content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute }), (0, _meta.Meta)({ property: 'og:description', content: openGraph.description }), (0, _meta.Meta)({ property: 'og:url', content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString() }), (0, _meta.Meta)({ property: 'og:site_name', content: openGraph.siteName }), (0, _meta.Meta)({ property: 'og:locale', content: openGraph.locale }), (0, _meta.Meta)({ property: 'og:country_name', content: openGraph.countryName }), (0, _meta.Meta)({ property: 'og:ttl', content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString() }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:image', contents: openGraph.images }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:video', contents: openGraph.videos }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:audio', contents: openGraph.audio }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:email', contents: openGraph.emails }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:phone_number', contents: openGraph.phoneNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:fax_number', contents: openGraph.faxNumbers }), (0, _meta.MultiMeta)({ propertyPrefix: 'og:locale:alternate', contents: openGraph.alternateLocale }), ...typedOpenGraph ? typedOpenGraph : [] ]); } function TwitterAppItem({ app, type }) { var _app_url_type, _app_url; return [ (0, _meta.Meta)({ name: `twitter:app:name:${type}`, content: app.name }), (0, _meta.Meta)({ name: `twitter:app:id:${type}`, content: app.id[type] }), (0, _meta.Meta)({ name: `twitter:app:url:${type}`, content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString() }) ]; } function TwitterMetadata({ twitter }) { var _twitter_title; if (!twitter) return null; const { card } = twitter; return (0, _meta.MetaFilter)([ (0, _meta.Meta)({ name: 'twitter:card', content: card }), (0, _meta.Meta)({ name: 'twitter:site', content: twitter.site }), (0, _meta.Meta)({ name: 'twitter:site:id', content: twitter.siteId }), (0, _meta.Meta)({ name: 'twitter:creator', content: twitter.creator }), (0, _meta.Meta)({ name: 'twitter:creator:id', content: twitter.creatorId }), (0, _meta.Meta)({ name: 'twitter:title', content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute }), (0, _meta.Meta)({ name: 'twitter:description', content: twitter.description }), (0, _meta.MultiMeta)({ namePrefix: 'twitter:image', contents: twitter.images }), ...card === 'player' ? twitter.players.flatMap((player)=>[ (0, _meta.Meta)({ name: 'twitter:player', content: player.playerUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:stream', content: player.streamUrl.toString() }), (0, _meta.Meta)({ name: 'twitter:player:width', content: player.width }), (0, _meta.Meta)({ name: 'twitter:player:height', content: player.height }) ]) : [], ...card === 'app' ? [ TwitterAppItem({ app: twitter.app, type: 'iphone' }), TwitterAppItem({ app: twitter.app, type: 'ipad' }), TwitterAppItem({ app: twitter.app, type: 'googleplay' }) ] : [] ]); } function AppLinksMeta({ appLinks }) { if (!appLinks) return null; return (0, _meta.MetaFilter)([ (0, _meta.MultiMeta)({ propertyPrefix: 'al:ios', contents: appLinks.ios }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:iphone', contents: appLinks.iphone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:ipad', contents: appLinks.ipad }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:android', contents: appLinks.android }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_phone', contents: appLinks.windows_phone }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows', contents: appLinks.windows }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:windows_universal', contents: appLinks.windows_universal }), (0, _meta.MultiMeta)({ propertyPrefix: 'al:web', contents: appLinks.web }) ]); } //# sourceMappingURL=opengraph.js.map›012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871850undefined595601__webpack_require__undefined60361066837undefined[þÿÿ\þÿÿ, /***/ 15915:  «webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourcek/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource _«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceÐ__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_default) /* harmony export */ }); «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSourcefunction _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } export { _interop_require_default as _ }; `f@Ž€€†buffer†source„size„maps„hash7__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_default) /* harmony export */ }); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } €”{"finalSource":true}ƒmap‹bufferedMap ConcatSourceRawSourceÐ__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_default) /* harmony export */ }); ReplaceSourceRawSourcefunction _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } export { _interop_require_default as _ }; 102142undefined /***/ }) Iþÿÿ¬/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_default) /* harmony export */ }); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }) JþÿÿMþÿÿ  Nþÿÿk/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; MþÿÿÐ__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _interop_require_default) /* harmony export */ }); Nþÿÿfunction _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } export { _interop_require_default as _ }; 102142undefinedOþÿÿPþÿÿ, /***/ 17400:  ï«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourcek/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource þ«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource×__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _class_private_field_loose_base) /* harmony export */ }); «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource&function _class_private_field_loose_base(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; } export { _class_private_field_loose_base as _ }; Aõ$€€†buffer†source„size„maps„hashÍ__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _class_private_field_loose_base) /* harmony export */ }); function _class_private_field_loose_base(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; } €”{"finalSource":true}ƒmap‹bufferedMap ConcatSourceRawSource×__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _class_private_field_loose_base) /* harmony export */ }); ReplaceSourceRawSource&function _class_private_field_loose_base(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; } export { _class_private_field_loose_base as _ }; 245292undefined /***/ }) =þÿÿB/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _class_private_field_loose_base) /* harmony export */ }); function _class_private_field_loose_base(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; } /***/ }) >þÿÿAþÿÿ  BþÿÿôBþÿÿ×__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ _: () => (/* binding */ _class_private_field_loose_base) /* harmony export */ }); Cþÿÿ&function _class_private_field_loose_base(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; } export { _class_private_field_loose_base as _ }; 245292undefinedDþÿÿEþÿÿ, /***/ 17598:  ÙD«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceÓ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { computeChangedPath: null, extractPathFromFlightRouterState: null, getSelectedParams: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { computeChangedPath: function() { return computeChangedPath; }, extractPathFromFlightRouterState: function() { return extractPathFromFlightRouterState; }, getSelectedParams: function() { return getSelectedParams; } }); const _interceptionroutes = require("../../../shared/lib/router/utils/interception-routes"); const _segment = require("../../../shared/lib/segment"); const _matchsegments = require("../match-segments"); const removeLeadingSlash = (segment)=>{ return segment[0] === '/' ? segment.slice(1) : segment; }; const segmentToPathname = (segment)=>{ if (typeof segment === 'string') { // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense. if (segment === 'children') return ''; return segment; } return segment[1]; }; function normalizeSegments(segments) { return segments.reduce((acc, segment)=>{ segment = removeLeadingSlash(segment); if (segment === '' || (0, _segment.isGroupSegment)(segment)) { return acc; } return acc + "/" + segment; }, '') || '/'; } function extractPathFromFlightRouterState(flightRouterState) { const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0]; if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined; if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return ''; const segments = [ segmentToPathname(segment) ]; var _flightRouterState_; const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {}; const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined; if (childrenPath !== undefined) { segments.push(childrenPath); } else { for (const [key, value] of Object.entries(parallelRoutes)){ if (key === 'children') continue; const childPath = extractPathFromFlightRouterState(value); if (childPath !== undefined) { segments.push(childPath); } } } return normalizeSegments(segments); } function computeChangedPathImpl(treeA, treeB) { const [segmentA, parallelRoutesA] = treeA; const [segmentB, parallelRoutesB] = treeB; const normalizedSegmentA = segmentToPathname(segmentA); const normalizedSegmentB = segmentToPathname(segmentB); if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) { return ''; } if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) { var _extractPathFromFlightRouterState; // once we find where the tree changed, we compute the rest of the path by traversing the tree return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : ''; } for(const parallelRouterKey in parallelRoutesA){ if (parallelRoutesB[parallelRouterKey]) { const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]); if (changedPath !== null) { return segmentToPathname(segmentB) + "/" + changedPath; } } } return null; } function computeChangedPath(treeA, treeB) { const changedPath = computeChangedPathImpl(treeA, treeB); if (changedPath == null || changedPath === '/') { return changedPath; } // lightweight normalization to remove route groups return normalizeSegments(changedPath.split('/')); } function getSelectedParams(currentTree, params) { if (params === void 0) params = {}; const parallelRoutes = currentTree[1]; for (const parallelRoute of Object.values(parallelRoutes)){ const segment = parallelRoute[0]; const isDynamicParameter = Array.isArray(segment); const segmentValue = isDynamicParameter ? segment[1] : segment; if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue; // Ensure catchAll and optional catchall are turned into an array const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc'); if (isCatchAll) { params[segment[0]] = segment[1].split('/'); } else if (isDynamicParameter) { params[segment[0]] = segment[1]; } params = getSelectedParams(parallelRoute, params); } return params; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=compute-changed-path.js.map  e :NNWLЦ¬®ãøþ7=?Q€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…52079þ„8517ý…60081€†buffer†source„size„maps„hash Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { computeChangedPath: function() { return computeChangedPath; }, extractPathFromFlightRouterState: function() { return extractPathFromFlightRouterState; }, getSelectedParams: function() { return getSelectedParams; } }); const _interceptionroutes = __webpack_require__(52079); const _segment = __webpack_require__(8517); const _matchsegments = __webpack_require__(60081); const removeLeadingSlash = (segment)=>{ return segment[0] === '/' ? segment.slice(1) : segment; }; const segmentToPathname = (segment)=>{ if (typeof segment === 'string') { // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense. if (segment === 'children') return ''; return segment; } return segment[1]; }; function normalizeSegments(segments) { return segments.reduce((acc, segment)=>{ segment = removeLeadingSlash(segment); if (segment === '' || (0, _segment.isGroupSegment)(segment)) { return acc; } return acc + "/" + segment; }, '') || '/'; } function extractPathFromFlightRouterState(flightRouterState) { const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0]; if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined; if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return ''; const segments = [ segmentToPathname(segment) ]; var _flightRouterState_; const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {}; const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined; if (childrenPath !== undefined) { segments.push(childrenPath); } else { for (const [key, value] of Object.entries(parallelRoutes)){ if (key === 'children') continue; const childPath = extractPathFromFlightRouterState(value); if (childPath !== undefined) { segments.push(childPath); } } } return normalizeSegments(segments); } function computeChangedPathImpl(treeA, treeB) { const [segmentA, parallelRoutesA] = treeA; const [segmentB, parallelRoutesB] = treeB; const normalizedSegmentA = segmentToPathname(segmentA); const normalizedSegmentB = segmentToPathname(segmentB); if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) { return ''; } if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) { var _extractPathFromFlightRouterState; // once we find where the tree changed, we compute the rest of the path by traversing the tree return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : ''; } for(const parallelRouterKey in parallelRoutesA){ if (parallelRoutesB[parallelRouterKey]) { const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]); if (changedPath !== null) { return segmentToPathname(segmentB) + "/" + changedPath; } } } return null; } function computeChangedPath(treeA, treeB) { const changedPath = computeChangedPathImpl(treeA, treeB); if (changedPath == null || changedPath === '/') { return changedPath; } // lightweight normalization to remove route groups return normalizeSegments(changedPath.split('/')); } function getSelectedParams(currentTree, params) { if (params === void 0) params = {}; const parallelRoutes = currentTree[1]; for (const parallelRoute of Object.values(parallelRoutes)){ const segment = parallelRoute[0]; const isDynamicParameter = Array.isArray(segment); const segmentValue = isDynamicParameter ? segment[1] : segment; if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue; // Ensure catchAll and optional catchall are turned into an array const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc'); if (isCatchAll) { params[segment[0]] = segment[1].split('/'); } else if (isDynamicParameter) { params[segment[0]] = segment[1]; } params = getSelectedParams(parallelRoute, params); } return params; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=compute-changed-path.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceÓ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { computeChangedPath: null, extractPathFromFlightRouterState: null, getSelectedParams: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { computeChangedPath: function() { return computeChangedPath; }, extractPathFromFlightRouterState: function() { return extractPathFromFlightRouterState; }, getSelectedParams: function() { return getSelectedParams; } }); const _interceptionroutes = require("../../../shared/lib/router/utils/interception-routes"); const _segment = require("../../../shared/lib/segment"); const _matchsegments = require("../match-segments"); const removeLeadingSlash = (segment)=>{ return segment[0] === '/' ? segment.slice(1) : segment; }; const segmentToPathname = (segment)=>{ if (typeof segment === 'string') { // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense. if (segment === 'children') return ''; return segment; } return segment[1]; }; function normalizeSegments(segments) { return segments.reduce((acc, segment)=>{ segment = removeLeadingSlash(segment); if (segment === '' || (0, _segment.isGroupSegment)(segment)) { return acc; } return acc + "/" + segment; }, '') || '/'; } function extractPathFromFlightRouterState(flightRouterState) { const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0]; if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined; if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return ''; const segments = [ segmentToPathname(segment) ]; var _flightRouterState_; const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {}; const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined; if (childrenPath !== undefined) { segments.push(childrenPath); } else { for (const [key, value] of Object.entries(parallelRoutes)){ if (key === 'children') continue; const childPath = extractPathFromFlightRouterState(value); if (childPath !== undefined) { segments.push(childPath); } } } return normalizeSegments(segments); } function computeChangedPathImpl(treeA, treeB) { const [segmentA, parallelRoutesA] = treeA; const [segmentB, parallelRoutesB] = treeB; const normalizedSegmentA = segmentToPathname(segmentA); const normalizedSegmentB = segmentToPathname(segmentB); if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) { return ''; } if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) { var _extractPathFromFlightRouterState; // once we find where the tree changed, we compute the rest of the path by traversing the tree return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : ''; } for(const parallelRouterKey in parallelRoutesA){ if (parallelRoutesB[parallelRouterKey]) { const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]); if (changedPath !== null) { return segmentToPathname(segmentB) + "/" + changedPath; } } } return null; } function computeChangedPath(treeA, treeB) { const changedPath = computeChangedPathImpl(treeA, treeB); if (changedPath == null || changedPath === '/') { return changedPath; } // lightweight normalization to remove route groups return normalizeSegments(changedPath.split('/')); } function getSelectedParams(currentTree, params) { if (params === void 0) params = {}; const parallelRoutes = currentTree[1]; for (const parallelRoute of Object.values(parallelRoutes)){ const segment = parallelRoute[0]; const isDynamicParameter = Array.isArray(segment); const segmentValue = isDynamicParameter ? segment[1] : segment; if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue; // Ensure catchAll and optional catchall are turned into an array const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc'); if (isCatchAll) { params[segment[0]] = segment[1].split('/'); } else if (isDynamicParameter) { params[segment[0]] = segment[1]; } params = getSelectedParams(parallelRoute, params); } return params; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=compute-changed-path.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872080undefined678684__webpack_require__undefined68673952079undefined760766__webpack_require__undefined7687968517undefined823829__webpack_require__undefined83184960081undefined /***/ }) 2þÿÿg/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { computeChangedPath: function() { return computeChangedPath; }, extractPathFromFlightRouterState: function() { return extractPathFromFlightRouterState; }, getSelectedParams: function() { return getSelectedParams; } }); const _interceptionroutes = __webpack_require__(52079); const _segment = __webpack_require__(8517); const _matchsegments = __webpack_require__(60081); const removeLeadingSlash = (segment)=>{ return segment[0] === '/' ? segment.slice(1) : segment; }; const segmentToPathname = (segment)=>{ if (typeof segment === 'string') { // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense. if (segment === 'children') return ''; return segment; } return segment[1]; }; function normalizeSegments(segments) { return segments.reduce((acc, segment)=>{ segment = removeLeadingSlash(segment); if (segment === '' || (0, _segment.isGroupSegment)(segment)) { return acc; } return acc + "/" + segment; }, '') || '/'; } function extractPathFromFlightRouterState(flightRouterState) { const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0]; if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined; if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return ''; const segments = [ segmentToPathname(segment) ]; var _flightRouterState_; const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {}; const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined; if (childrenPath !== undefined) { segments.push(childrenPath); } else { for (const [key, value] of Object.entries(parallelRoutes)){ if (key === 'children') continue; const childPath = extractPathFromFlightRouterState(value); if (childPath !== undefined) { segments.push(childPath); } } } return normalizeSegments(segments); } function computeChangedPathImpl(treeA, treeB) { const [segmentA, parallelRoutesA] = treeA; const [segmentB, parallelRoutesB] = treeB; const normalizedSegmentA = segmentToPathname(segmentA); const normalizedSegmentB = segmentToPathname(segmentB); if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) { return ''; } if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) { var _extractPathFromFlightRouterState; // once we find where the tree changed, we compute the rest of the path by traversing the tree return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : ''; } for(const parallelRouterKey in parallelRoutesA){ if (parallelRoutesB[parallelRouterKey]) { const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]); if (changedPath !== null) { return segmentToPathname(segmentB) + "/" + changedPath; } } } return null; } function computeChangedPath(treeA, treeB) { const changedPath = computeChangedPathImpl(treeA, treeB); if (changedPath == null || changedPath === '/') { return changedPath; } // lightweight normalization to remove route groups return normalizeSegments(changedPath.split('/')); } function getSelectedParams(currentTree, params) { if (params === void 0) params = {}; const parallelRoutes = currentTree[1]; for (const parallelRoute of Object.values(parallelRoutes)){ const segment = parallelRoute[0]; const isDynamicParameter = Array.isArray(segment); const segmentValue = isDynamicParameter ? segment[1] : segment; if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue; // Ensure catchAll and optional catchall are turned into an array const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc'); if (isCatchAll) { params[segment[0]] = segment[1].split('/'); } else if (isDynamicParameter) { params[segment[0]] = segment[1]; } params = getSelectedParams(parallelRoute, params); } return params; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=compute-changed-path.js.map /***/ }) 3þÿÿ6þÿÿ 7þÿÿ8þÿÿ9þÿÿÓ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { computeChangedPath: null, extractPathFromFlightRouterState: null, getSelectedParams: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { computeChangedPath: function() { return computeChangedPath; }, extractPathFromFlightRouterState: function() { return extractPathFromFlightRouterState; }, getSelectedParams: function() { return getSelectedParams; } }); const _interceptionroutes = require("../../../shared/lib/router/utils/interception-routes"); const _segment = require("../../../shared/lib/segment"); const _matchsegments = require("../match-segments"); const removeLeadingSlash = (segment)=>{ return segment[0] === '/' ? segment.slice(1) : segment; }; const segmentToPathname = (segment)=>{ if (typeof segment === 'string') { // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense. if (segment === 'children') return ''; return segment; } return segment[1]; }; function normalizeSegments(segments) { return segments.reduce((acc, segment)=>{ segment = removeLeadingSlash(segment); if (segment === '' || (0, _segment.isGroupSegment)(segment)) { return acc; } return acc + "/" + segment; }, '') || '/'; } function extractPathFromFlightRouterState(flightRouterState) { const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0]; if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined; if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return ''; const segments = [ segmentToPathname(segment) ]; var _flightRouterState_; const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {}; const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined; if (childrenPath !== undefined) { segments.push(childrenPath); } else { for (const [key, value] of Object.entries(parallelRoutes)){ if (key === 'children') continue; const childPath = extractPathFromFlightRouterState(value); if (childPath !== undefined) { segments.push(childPath); } } } return normalizeSegments(segments); } function computeChangedPathImpl(treeA, treeB) { const [segmentA, parallelRoutesA] = treeA; const [segmentB, parallelRoutesB] = treeB; const normalizedSegmentA = segmentToPathname(segmentA); const normalizedSegmentB = segmentToPathname(segmentB); if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) { return ''; } if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) { var _extractPathFromFlightRouterState; // once we find where the tree changed, we compute the rest of the path by traversing the tree return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : ''; } for(const parallelRouterKey in parallelRoutesA){ if (parallelRoutesB[parallelRouterKey]) { const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]); if (changedPath !== null) { return segmentToPathname(segmentB) + "/" + changedPath; } } } return null; } function computeChangedPath(treeA, treeB) { const changedPath = computeChangedPathImpl(treeA, treeB); if (changedPath == null || changedPath === '/') { return changedPath; } // lightweight normalization to remove route groups return normalizeSegments(changedPath.split('/')); } function getSelectedParams(currentTree, params) { if (params === void 0) params = {}; const parallelRoutes = currentTree[1]; for (const parallelRoute of Object.values(parallelRoutes)){ const segment = parallelRoute[0]; const isDynamicParameter = Array.isArray(segment); const segmentValue = isDynamicParameter ? segment[1] : segment; if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue; // Ensure catchAll and optional catchall are turned into an array const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc'); if (isCatchAll) { params[segment[0]] = segment[1].split('/'); } else if (isDynamicParameter) { params[segment[0]] = segment[1]; } params = getSelectedParams(parallelRoute, params); } return params; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=compute-changed-path.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872080undefined678684__webpack_require__undefined68673952079undefined760766__webpack_require__undefined7687968517undefined823829__webpack_require__undefined83184960081undefined:þÿÿ;þÿÿ, /***/ 17611:  Ä «webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource å«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource¶// regexp is based on https://github.com/sindresorhus/escape-string-regexp "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "escapeStringRegexp", { enumerable: true, get: function() { return escapeStringRegexp; } }); const reHasRegExp = /[|\\{}()[\]^$+*?.-]/; const reReplaceRegExp = /[|\\{}()[\]^$+*?.-]/g; function escapeStringRegexp(str) { // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23 if (reHasRegExp.test(str)) { return str.replace(reReplaceRegExp, '\\$&'); } return str; } //# sourceMappingURL=escape-regexp.js.map bKWYF…™™œÐ))€®Object.defineProperty(exports, "__esModule", (‚))¶Object.defineProperty(exports, "escapeStringRegexp", (þ€†buffer†source„size„maps„hash­// regexp is based on https://github.com/sindresorhus/escape-string-regexp Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "escapeStringRegexp", ({ enumerable: true, get: function() { return escapeStringRegexp; } })); const reHasRegExp = /[|\\{}()[\]^$+*?.-]/; const reReplaceRegExp = /[|\\{}()[\]^$+*?.-]/g; function escapeStringRegexp(str) { // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23 if (reHasRegExp.test(str)) { return str.replace(reReplaceRegExp, '\\$&'); } return str; } //# sourceMappingURL=escape-regexp.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource¶// regexp is based on https://github.com/sindresorhus/escape-string-regexp "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "escapeStringRegexp", { enumerable: true, get: function() { return escapeStringRegexp; } }); const reHasRegExp = /[|\\{}()[\]^$+*?.-]/; const reReplaceRegExp = /[|\\{}()[\]^$+*?.-]/g; function escapeStringRegexp(str) { // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23 if (reHasRegExp.test(str)) { return str.replace(reReplaceRegExp, '\\$&'); } return str; } //# sourceMappingURL=escape-regexp.js.map °7587undefined89133Object.defineProperty(exports, "__esModule", (undefined153153))undefined156208Object.defineProperty(exports, "escapeStringRegexp", (undefined297297))undefined /***/ }) (þÿÿõ/***/ ((__unused_webpack_module, exports) => { "use strict"; // regexp is based on https://github.com/sindresorhus/escape-string-regexp Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "escapeStringRegexp", ({ enumerable: true, get: function() { return escapeStringRegexp; } })); const reHasRegExp = /[|\\{}()[\]^$+*?.-]/; const reReplaceRegExp = /[|\\{}()[\]^$+*?.-]/g; function escapeStringRegexp(str) { // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23 if (reHasRegExp.test(str)) { return str.replace(reReplaceRegExp, '\\$&'); } return str; } //# sourceMappingURL=escape-regexp.js.map /***/ }) )þÿÿ,þÿÿ -þÿÿpþÿÿ/þÿÿ¶// regexp is based on https://github.com/sindresorhus/escape-string-regexp "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "escapeStringRegexp", { enumerable: true, get: function() { return escapeStringRegexp; } }); const reHasRegExp = /[|\\{}()[\]^$+*?.-]/; const reReplaceRegExp = /[|\\{}()[\]^$+*?.-]/g; function escapeStringRegexp(str) { // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23 if (reHasRegExp.test(str)) { return str.replace(reReplaceRegExp, '\\$&'); } return str; } //# sourceMappingURL=escape-regexp.js.map °7587undefined89133Object.defineProperty(exports, "__esModule", (undefined153153))undefined156208Object.defineProperty(exports, "escapeStringRegexp", (undefined297297))undefined0þÿÿ1þÿÿ, /***/ 18111:  ­«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource-/***/ ((module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource :«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceW"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DynamicServerError: null, isDynamicServerError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DynamicServerError: function() { return DynamicServerError; }, isDynamicServerError: function() { return isDynamicServerError; } }); const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'; class DynamicServerError extends Error { constructor(description){ super("Dynamic server usage: " + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE; } } function isDynamicServerError(err) { if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') { return false; } return err.digest === DYNAMIC_ERROR_CODE; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=hooks-server-context.js.map e :NNW@§€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hashü Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DynamicServerError: function() { return DynamicServerError; }, isDynamicServerError: function() { return isDynamicServerError; } }); const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'; class DynamicServerError extends Error { constructor(description){ super("Dynamic server usage: " + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE; } } function isDynamicServerError(err) { if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') { return false; } return err.digest === DYNAMIC_ERROR_CODE; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=hooks-server-context.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceW"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DynamicServerError: null, isDynamicServerError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DynamicServerError: function() { return DynamicServerError; }, isDynamicServerError: function() { return isDynamicServerError; } }); const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'; class DynamicServerError extends Error { constructor(description){ super("Dynamic server usage: " + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE; } } function isDynamicServerError(err) { if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') { return false; } return err.digest === DYNAMIC_ERROR_CODE; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=hooks-server-context.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871670undefined /***/ }) þÿÿ3/***/ ((module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DynamicServerError: function() { return DynamicServerError; }, isDynamicServerError: function() { return isDynamicServerError; } }); const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'; class DynamicServerError extends Error { constructor(description){ super("Dynamic server usage: " + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE; } } function isDynamicServerError(err) { if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') { return false; } return err.digest === DYNAMIC_ERROR_CODE; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=hooks-server-context.js.map /***/ }) þÿÿ"þÿÿ #þÿÿ2þÿÿ%þÿÿW"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DynamicServerError: null, isDynamicServerError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DynamicServerError: function() { return DynamicServerError; }, isDynamicServerError: function() { return isDynamicServerError; } }); const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'; class DynamicServerError extends Error { constructor(description){ super("Dynamic server usage: " + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE; } } function isDynamicServerError(err) { if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') { return false; } return err.digest === DYNAMIC_ERROR_CODE; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=hooks-server-context.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871670undefined&þÿÿ'þÿÿ, /***/ 18226:  p=«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ‘«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceN"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addRefreshMarkerToActiveParallelSegments: null, refreshInactiveParallelSegments: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addRefreshMarkerToActiveParallelSegments: function() { return addRefreshMarkerToActiveParallelSegments; }, refreshInactiveParallelSegments: function() { return refreshInactiveParallelSegments; } }); const _applyflightdata = require("./apply-flight-data"); const _fetchserverresponse = require("./fetch-server-response"); const _segment = require("../../../shared/lib/segment"); async function refreshInactiveParallelSegments(options) { const fetchedSegments = new Set(); await refreshInactiveParallelSegmentsImpl({ ...options, rootTree: options.updatedTree, fetchedSegments }); } async function refreshInactiveParallelSegmentsImpl(param) { let { navigatedAt, state, updatedTree, updatedCache, includeNextUrl, fetchedSegments, rootTree = updatedTree, canonicalUrl } = param; const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree; const fetchPromises = []; if (refetchPath && refetchPath !== canonicalUrl && refetchMarker === 'refresh' && // it's possible for the tree to contain multiple segments that contain data at the same URL // we keep track of them so we can dedupe the requests !fetchedSegments.has(refetchPath)) { fetchedSegments.add(refetchPath) // Mark this URL as fetched ; // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache. const fetchPromise = (0, _fetchserverresponse.fetchServerResponse)(new URL(refetchPath, location.origin), { // refetch from the root of the updated tree, otherwise it will be scoped to the current segment // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment) flightRouterState: [ rootTree[0], rootTree[1], rootTree[2], 'refetch' ], nextUrl: includeNextUrl ? state.nextUrl : null }).then((param)=>{ let { flightData } = param; if (typeof flightData !== 'string') { for (const flightDataPath of flightData){ // we only pass the new cache as this function is called after clearing the router cache // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's // just been created & has been written to, but hasn't been "committed" yet. (0, _applyflightdata.applyFlightData)(navigatedAt, updatedCache, updatedCache, flightDataPath); } } else { // When flightData is a string, it suggests that the server response should have triggered an MPA navigation // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect // when refreshing on-screen data, so handling this has been ommitted. } }); fetchPromises.push(fetchPromise); } for(const key in parallelRoutes){ const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({ navigatedAt, state, updatedTree: parallelRoutes[key], updatedCache, includeNextUrl, fetchedSegments, rootTree, canonicalUrl }); fetchPromises.push(parallelFetchPromise); } await Promise.all(fetchPromises); } function addRefreshMarkerToActiveParallelSegments(tree, path) { const [segment, parallelRoutes, , refetchMarker] = tree; // a page segment might also contain concatenated search params, so we do a partial match on the key if (segment.includes(_segment.PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') { tree[2] = path; tree[3] = 'refresh'; } for(const key in parallelRoutes){ addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=refetch-inactive-parallel-segments.js.map  e :NNWLÈx~€”µ»½Õêðò€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…11966þ…94082ý…44859€†buffer†source„size„maps„hashº Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addRefreshMarkerToActiveParallelSegments: function() { return addRefreshMarkerToActiveParallelSegments; }, refreshInactiveParallelSegments: function() { return refreshInactiveParallelSegments; } }); const _applyflightdata = __webpack_require__(11966); const _fetchserverresponse = __webpack_require__(94082); const _segment = __webpack_require__(44859); async function refreshInactiveParallelSegments(options) { const fetchedSegments = new Set(); await refreshInactiveParallelSegmentsImpl({ ...options, rootTree: options.updatedTree, fetchedSegments }); } async function refreshInactiveParallelSegmentsImpl(param) { let { navigatedAt, state, updatedTree, updatedCache, includeNextUrl, fetchedSegments, rootTree = updatedTree, canonicalUrl } = param; const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree; const fetchPromises = []; if (refetchPath && refetchPath !== canonicalUrl && refetchMarker === 'refresh' && // it's possible for the tree to contain multiple segments that contain data at the same URL // we keep track of them so we can dedupe the requests !fetchedSegments.has(refetchPath)) { fetchedSegments.add(refetchPath) // Mark this URL as fetched ; // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache. const fetchPromise = (0, _fetchserverresponse.fetchServerResponse)(new URL(refetchPath, location.origin), { // refetch from the root of the updated tree, otherwise it will be scoped to the current segment // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment) flightRouterState: [ rootTree[0], rootTree[1], rootTree[2], 'refetch' ], nextUrl: includeNextUrl ? state.nextUrl : null }).then((param)=>{ let { flightData } = param; if (typeof flightData !== 'string') { for (const flightDataPath of flightData){ // we only pass the new cache as this function is called after clearing the router cache // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's // just been created & has been written to, but hasn't been "committed" yet. (0, _applyflightdata.applyFlightData)(navigatedAt, updatedCache, updatedCache, flightDataPath); } } else { // When flightData is a string, it suggests that the server response should have triggered an MPA navigation // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect // when refreshing on-screen data, so handling this has been ommitted. } }); fetchPromises.push(fetchPromise); } for(const key in parallelRoutes){ const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({ navigatedAt, state, updatedTree: parallelRoutes[key], updatedCache, includeNextUrl, fetchedSegments, rootTree, canonicalUrl }); fetchPromises.push(parallelFetchPromise); } await Promise.all(fetchPromises); } function addRefreshMarkerToActiveParallelSegments(tree, path) { const [segment, parallelRoutes, , refetchMarker] = tree; // a page segment might also contain concatenated search params, so we do a partial match on the key if (segment.includes(_segment.PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') { tree[2] = path; tree[3] = 'refresh'; } for(const key in parallelRoutes){ addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=refetch-inactive-parallel-segments.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceN"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addRefreshMarkerToActiveParallelSegments: null, refreshInactiveParallelSegments: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addRefreshMarkerToActiveParallelSegments: function() { return addRefreshMarkerToActiveParallelSegments; }, refreshInactiveParallelSegments: function() { return refreshInactiveParallelSegments; } }); const _applyflightdata = require("./apply-flight-data"); const _fetchserverresponse = require("./fetch-server-response"); const _segment = require("../../../shared/lib/segment"); async function refreshInactiveParallelSegments(options) { const fetchedSegments = new Set(); await refreshInactiveParallelSegmentsImpl({ ...options, rootTree: options.updatedTree, fetchedSegments }); } async function refreshInactiveParallelSegmentsImpl(param) { let { navigatedAt, state, updatedTree, updatedCache, includeNextUrl, fetchedSegments, rootTree = updatedTree, canonicalUrl } = param; const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree; const fetchPromises = []; if (refetchPath && refetchPath !== canonicalUrl && refetchMarker === 'refresh' && // it's possible for the tree to contain multiple segments that contain data at the same URL // we keep track of them so we can dedupe the requests !fetchedSegments.has(refetchPath)) { fetchedSegments.add(refetchPath) // Mark this URL as fetched ; // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache. const fetchPromise = (0, _fetchserverresponse.fetchServerResponse)(new URL(refetchPath, location.origin), { // refetch from the root of the updated tree, otherwise it will be scoped to the current segment // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment) flightRouterState: [ rootTree[0], rootTree[1], rootTree[2], 'refetch' ], nextUrl: includeNextUrl ? state.nextUrl : null }).then((param)=>{ let { flightData } = param; if (typeof flightData !== 'string') { for (const flightDataPath of flightData){ // we only pass the new cache as this function is called after clearing the router cache // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's // just been created & has been written to, but hasn't been "committed" yet. (0, _applyflightdata.applyFlightData)(navigatedAt, updatedCache, updatedCache, flightDataPath); } } else { // When flightData is a string, it suggests that the server response should have triggered an MPA navigation // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect // when refreshing on-screen data, so handling this has been ommitted. } }); fetchPromises.push(fetchPromise); } for(const key in parallelRoutes){ const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({ navigatedAt, state, updatedTree: parallelRoutes[key], updatedCache, includeNextUrl, fetchedSegments, rootTree, canonicalUrl }); fetchPromises.push(parallelFetchPromise); } await Promise.all(fetchPromises); } function addRefreshMarkerToActiveParallelSegments(tree, path) { const [segment, parallelRoutes, , refetchMarker] = tree; // a page segment might also contain concatenated search params, so we do a partial match on the key if (segment.includes(_segment.PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') { tree[2] = path; tree[3] = 'refresh'; } for(const key in parallelRoutes){ addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=refetch-inactive-parallel-segments.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872000undefined632638__webpack_require__undefined64066011966undefined693699__webpack_require__undefined70172594082undefined746752__webpack_require__undefined75478244859undefined /***/ }) þÿÿ/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addRefreshMarkerToActiveParallelSegments: function() { return addRefreshMarkerToActiveParallelSegments; }, refreshInactiveParallelSegments: function() { return refreshInactiveParallelSegments; } }); const _applyflightdata = __webpack_require__(11966); const _fetchserverresponse = __webpack_require__(94082); const _segment = __webpack_require__(44859); async function refreshInactiveParallelSegments(options) { const fetchedSegments = new Set(); await refreshInactiveParallelSegmentsImpl({ ...options, rootTree: options.updatedTree, fetchedSegments }); } async function refreshInactiveParallelSegmentsImpl(param) { let { navigatedAt, state, updatedTree, updatedCache, includeNextUrl, fetchedSegments, rootTree = updatedTree, canonicalUrl } = param; const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree; const fetchPromises = []; if (refetchPath && refetchPath !== canonicalUrl && refetchMarker === 'refresh' && // it's possible for the tree to contain multiple segments that contain data at the same URL // we keep track of them so we can dedupe the requests !fetchedSegments.has(refetchPath)) { fetchedSegments.add(refetchPath) // Mark this URL as fetched ; // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache. const fetchPromise = (0, _fetchserverresponse.fetchServerResponse)(new URL(refetchPath, location.origin), { // refetch from the root of the updated tree, otherwise it will be scoped to the current segment // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment) flightRouterState: [ rootTree[0], rootTree[1], rootTree[2], 'refetch' ], nextUrl: includeNextUrl ? state.nextUrl : null }).then((param)=>{ let { flightData } = param; if (typeof flightData !== 'string') { for (const flightDataPath of flightData){ // we only pass the new cache as this function is called after clearing the router cache // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's // just been created & has been written to, but hasn't been "committed" yet. (0, _applyflightdata.applyFlightData)(navigatedAt, updatedCache, updatedCache, flightDataPath); } } else { // When flightData is a string, it suggests that the server response should have triggered an MPA navigation // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect // when refreshing on-screen data, so handling this has been ommitted. } }); fetchPromises.push(fetchPromise); } for(const key in parallelRoutes){ const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({ navigatedAt, state, updatedTree: parallelRoutes[key], updatedCache, includeNextUrl, fetchedSegments, rootTree, canonicalUrl }); fetchPromises.push(parallelFetchPromise); } await Promise.all(fetchPromises); } function addRefreshMarkerToActiveParallelSegments(tree, path) { const [segment, parallelRoutes, , refetchMarker] = tree; // a page segment might also contain concatenated search params, so we do a partial match on the key if (segment.includes(_segment.PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') { tree[2] = path; tree[3] = 'refresh'; } for(const key in parallelRoutes){ addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=refetch-inactive-parallel-segments.js.map /***/ }) þÿÿþÿÿ þÿÿþÿÿþÿÿN"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addRefreshMarkerToActiveParallelSegments: null, refreshInactiveParallelSegments: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addRefreshMarkerToActiveParallelSegments: function() { return addRefreshMarkerToActiveParallelSegments; }, refreshInactiveParallelSegments: function() { return refreshInactiveParallelSegments; } }); const _applyflightdata = require("./apply-flight-data"); const _fetchserverresponse = require("./fetch-server-response"); const _segment = require("../../../shared/lib/segment"); async function refreshInactiveParallelSegments(options) { const fetchedSegments = new Set(); await refreshInactiveParallelSegmentsImpl({ ...options, rootTree: options.updatedTree, fetchedSegments }); } async function refreshInactiveParallelSegmentsImpl(param) { let { navigatedAt, state, updatedTree, updatedCache, includeNextUrl, fetchedSegments, rootTree = updatedTree, canonicalUrl } = param; const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree; const fetchPromises = []; if (refetchPath && refetchPath !== canonicalUrl && refetchMarker === 'refresh' && // it's possible for the tree to contain multiple segments that contain data at the same URL // we keep track of them so we can dedupe the requests !fetchedSegments.has(refetchPath)) { fetchedSegments.add(refetchPath) // Mark this URL as fetched ; // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache. const fetchPromise = (0, _fetchserverresponse.fetchServerResponse)(new URL(refetchPath, location.origin), { // refetch from the root of the updated tree, otherwise it will be scoped to the current segment // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment) flightRouterState: [ rootTree[0], rootTree[1], rootTree[2], 'refetch' ], nextUrl: includeNextUrl ? state.nextUrl : null }).then((param)=>{ let { flightData } = param; if (typeof flightData !== 'string') { for (const flightDataPath of flightData){ // we only pass the new cache as this function is called after clearing the router cache // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's // just been created & has been written to, but hasn't been "committed" yet. (0, _applyflightdata.applyFlightData)(navigatedAt, updatedCache, updatedCache, flightDataPath); } } else { // When flightData is a string, it suggests that the server response should have triggered an MPA navigation // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect // when refreshing on-screen data, so handling this has been ommitted. } }); fetchPromises.push(fetchPromise); } for(const key in parallelRoutes){ const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({ navigatedAt, state, updatedTree: parallelRoutes[key], updatedCache, includeNextUrl, fetchedSegments, rootTree, canonicalUrl }); fetchPromises.push(parallelFetchPromise); } await Promise.all(fetchPromises); } function addRefreshMarkerToActiveParallelSegments(tree, path) { const [segment, parallelRoutes, , refetchMarker] = tree; // a page segment might also contain concatenated search params, so we do a partial match on the key if (segment.includes(_segment.PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') { tree[2] = path; tree[3] = 'refresh'; } for(const key in parallelRoutes){ addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=refetch-inactive-parallel-segments.js.map 012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined872000undefined632638__webpack_require__undefined64066011966undefined693699__webpack_require__undefined70172594082undefined746752__webpack_require__undefined75478244859undefinedþÿÿþÿÿ, /***/ 18283:  Fg«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource e$«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource!// eslint-disable-next-line import/no-extraneous-dependencies "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ClientPageRoot: null, ClientSegmentRoot: null, HTTPAccessFallbackBoundary: null, LayoutRouter: null, MetadataBoundary: null, OutletBoundary: null, Postpone: null, RenderFromTemplateContext: null, RootLayoutBoundary: null, SegmentViewNode: null, SegmentViewStateNode: null, ViewportBoundary: null, actionAsyncStorage: null, captureOwnerStack: null, collectSegmentData: null, createMetadataComponents: null, createPrerenderParamsForClientSegment: null, createPrerenderSearchParamsForClientPage: null, createServerParamsForServerSegment: null, createServerSearchParamsForServerPage: null, createTemporaryReferenceSet: null, decodeAction: null, decodeFormState: null, decodeReply: null, patchFetch: null, preconnect: null, preloadFont: null, preloadStyle: null, prerender: null, renderToReadableStream: null, serverHooks: null, taintObjectReference: null, workAsyncStorage: null, workUnitAsyncStorage: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ClientPageRoot: function() { return _clientpage.ClientPageRoot; }, ClientSegmentRoot: function() { return _clientsegment.ClientSegmentRoot; }, HTTPAccessFallbackBoundary: function() { return _errorboundary.HTTPAccessFallbackBoundary; }, LayoutRouter: function() { return _layoutrouter.default; }, MetadataBoundary: function() { return _boundarycomponents.MetadataBoundary; }, OutletBoundary: function() { return _boundarycomponents.OutletBoundary; }, Postpone: function() { return _postpone.Postpone; }, RenderFromTemplateContext: function() { return _renderfromtemplatecontext.default; }, RootLayoutBoundary: function() { return _boundarycomponents.RootLayoutBoundary; }, SegmentViewNode: function() { return SegmentViewNode; }, SegmentViewStateNode: function() { return SegmentViewStateNode; }, ViewportBoundary: function() { return _boundarycomponents.ViewportBoundary; }, actionAsyncStorage: function() { return _actionasyncstorageexternal.actionAsyncStorage; }, captureOwnerStack: function() { return _react.captureOwnerStack; }, collectSegmentData: function() { return _collectsegmentdata.collectSegmentData; }, createMetadataComponents: function() { return _metadata.createMetadataComponents; }, createPrerenderParamsForClientSegment: function() { return _params.createPrerenderParamsForClientSegment; }, createPrerenderSearchParamsForClientPage: function() { return _searchparams.createPrerenderSearchParamsForClientPage; }, createServerParamsForServerSegment: function() { return _params.createServerParamsForServerSegment; }, createServerSearchParamsForServerPage: function() { return _searchparams.createServerSearchParamsForServerPage; }, createTemporaryReferenceSet: function() { return _server.createTemporaryReferenceSet; }, decodeAction: function() { return _server.decodeAction; }, decodeFormState: function() { return _server.decodeFormState; }, decodeReply: function() { return _server.decodeReply; }, patchFetch: function() { return patchFetch; }, preconnect: function() { return _preloads.preconnect; }, preloadFont: function() { return _preloads.preloadFont; }, preloadStyle: function() { return _preloads.preloadStyle; }, prerender: function() { return _static.unstable_prerender; }, renderToReadableStream: function() { return _server.renderToReadableStream; }, serverHooks: function() { return _hooksservercontext; }, taintObjectReference: function() { return _taint.taintObjectReference; }, workAsyncStorage: function() { return _workasyncstorageexternal.workAsyncStorage; }, workUnitAsyncStorage: function() { return _workunitasyncstorageexternal.workUnitAsyncStorage; } }); const _server = require("react-server-dom-webpack/server"); const _static = require("react-server-dom-webpack/static"); const _react = require("react"); const _layoutrouter = /*#__PURE__*/ _interop_require_default(require("../../client/components/layout-router")); const _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(require("../../client/components/render-from-template-context")); const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); const _actionasyncstorageexternal = require("../app-render/action-async-storage.external"); const _clientpage = require("../../client/components/client-page"); const _clientsegment = require("../../client/components/client-segment"); const _searchparams = require("../request/search-params"); const _params = require("../request/params"); const _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(require("../../client/components/hooks-server-context")); const _errorboundary = require("../../client/components/http-access-fallback/error-boundary"); const _metadata = require("../../lib/metadata/metadata"); const _boundarycomponents = require("../../lib/framework/boundary-components"); const _preloads = require("./rsc/preloads"); const _postpone = require("./rsc/postpone"); const _taint = require("./rsc/taint"); const _collectsegmentdata = require("./collect-segment-data"); const _patchfetch = require("../lib/patch-fetch"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && 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; } let SegmentViewNode = ()=>null; let SegmentViewStateNode = ()=>null; if (process.env.NODE_ENV === 'development') { const mod = require('../../next-devtools/userspace/app/segment-explorer-node'); SegmentViewNode = mod.SegmentViewNode; SegmentViewStateNode = mod.SegmentViewStateNode; } // hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__` // into globalThis from this file which is bundled. if (process.env.TURBOPACK) { globalThis.__next__clear_chunk_cache__ = __turbopack_clear_chunk_cache__; } else { // Webpack does not have chunks on the server globalThis.__next__clear_chunk_cache__ = null; } function patchFetch() { return (0, _patchfetch.patchFetch)({ workAsyncStorage: _workasyncstorageexternal.workAsyncStorage, workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage }); } //# sourceMappingURL=entry-base.js.map d2>JLx_ŒŒ•·ÁÇÉéý%8>@F‡µ  AhnpšÄÊÌï_Kcikª°²Ùóùû(.0BŠ’¿Ûáã5;=Y_y©¿ÅÇÖìòô*JPRi‡‰œÀåèž3GJš€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…25459þ„4718ý…11110ü…96231û…72041ú…29294ù…63033ø…19121÷…56542ö…88248õ…94409ô…69412ó…95181ò…49743ñ…34955ð…95094ï…12518î…11250í…40610ì…68552ë…85681…false‚{}þÿ€†buffer†source„size„maps„hasho// eslint-disable-next-line import/no-extraneous-dependencies Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ClientPageRoot: function() { return _clientpage.ClientPageRoot; }, ClientSegmentRoot: function() { return _clientsegment.ClientSegmentRoot; }, HTTPAccessFallbackBoundary: function() { return _errorboundary.HTTPAccessFallbackBoundary; }, LayoutRouter: function() { return _layoutrouter.default; }, MetadataBoundary: function() { return _boundarycomponents.MetadataBoundary; }, OutletBoundary: function() { return _boundarycomponents.OutletBoundary; }, Postpone: function() { return _postpone.Postpone; }, RenderFromTemplateContext: function() { return _renderfromtemplatecontext.default; }, RootLayoutBoundary: function() { return _boundarycomponents.RootLayoutBoundary; }, SegmentViewNode: function() { return SegmentViewNode; }, SegmentViewStateNode: function() { return SegmentViewStateNode; }, ViewportBoundary: function() { return _boundarycomponents.ViewportBoundary; }, actionAsyncStorage: function() { return _actionasyncstorageexternal.actionAsyncStorage; }, captureOwnerStack: function() { return _react.captureOwnerStack; }, collectSegmentData: function() { return _collectsegmentdata.collectSegmentData; }, createMetadataComponents: function() { return _metadata.createMetadataComponents; }, createPrerenderParamsForClientSegment: function() { return _params.createPrerenderParamsForClientSegment; }, createPrerenderSearchParamsForClientPage: function() { return _searchparams.createPrerenderSearchParamsForClientPage; }, createServerParamsForServerSegment: function() { return _params.createServerParamsForServerSegment; }, createServerSearchParamsForServerPage: function() { return _searchparams.createServerSearchParamsForServerPage; }, createTemporaryReferenceSet: function() { return _server.createTemporaryReferenceSet; }, decodeAction: function() { return _server.decodeAction; }, decodeFormState: function() { return _server.decodeFormState; }, decodeReply: function() { return _server.decodeReply; }, patchFetch: function() { return patchFetch; }, preconnect: function() { return _preloads.preconnect; }, preloadFont: function() { return _preloads.preloadFont; }, preloadStyle: function() { return _preloads.preloadStyle; }, prerender: function() { return _static.unstable_prerender; }, renderToReadableStream: function() { return _server.renderToReadableStream; }, serverHooks: function() { return _hooksservercontext; }, taintObjectReference: function() { return _taint.taintObjectReference; }, workAsyncStorage: function() { return _workasyncstorageexternal.workAsyncStorage; }, workUnitAsyncStorage: function() { return _workunitasyncstorageexternal.workUnitAsyncStorage; } }); const _server = __webpack_require__(25459); const _static = __webpack_require__(4718); const _react = __webpack_require__(11110); const _layoutrouter = /*#__PURE__*/ _interop_require_default(__webpack_require__(96231)); const _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(__webpack_require__(72041)); const _workasyncstorageexternal = __webpack_require__(29294); const _workunitasyncstorageexternal = __webpack_require__(63033); const _actionasyncstorageexternal = __webpack_require__(19121); const _clientpage = __webpack_require__(56542); const _clientsegment = __webpack_require__(88248); const _searchparams = __webpack_require__(94409); const _params = __webpack_require__(69412); const _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(95181)); const _errorboundary = __webpack_require__(49743); const _metadata = __webpack_require__(34955); const _boundarycomponents = __webpack_require__(95094); const _preloads = __webpack_require__(12518); const _postpone = __webpack_require__(11250); const _taint = __webpack_require__(40610); const _collectsegmentdata = __webpack_require__(68552); const _patchfetch = __webpack_require__(85681); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && 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; } let SegmentViewNode = ()=>null; let SegmentViewStateNode = ()=>null; if (false) {} // hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__` // into globalThis from this file which is bundled. if (false) {} else { // Webpack does not have chunks on the server globalThis.__next__clear_chunk_cache__ = null; } function patchFetch() { return (0, _patchfetch.patchFetch)({ workAsyncStorage: _workasyncstorageexternal.workAsyncStorage, workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage }); } //# sourceMappingURL=entry-base.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource!// eslint-disable-next-line import/no-extraneous-dependencies "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ClientPageRoot: null, ClientSegmentRoot: null, HTTPAccessFallbackBoundary: null, LayoutRouter: null, MetadataBoundary: null, OutletBoundary: null, Postpone: null, RenderFromTemplateContext: null, RootLayoutBoundary: null, SegmentViewNode: null, SegmentViewStateNode: null, ViewportBoundary: null, actionAsyncStorage: null, captureOwnerStack: null, collectSegmentData: null, createMetadataComponents: null, createPrerenderParamsForClientSegment: null, createPrerenderSearchParamsForClientPage: null, createServerParamsForServerSegment: null, createServerSearchParamsForServerPage: null, createTemporaryReferenceSet: null, decodeAction: null, decodeFormState: null, decodeReply: null, patchFetch: null, preconnect: null, preloadFont: null, preloadStyle: null, prerender: null, renderToReadableStream: null, serverHooks: null, taintObjectReference: null, workAsyncStorage: null, workUnitAsyncStorage: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ClientPageRoot: function() { return _clientpage.ClientPageRoot; }, ClientSegmentRoot: function() { return _clientsegment.ClientSegmentRoot; }, HTTPAccessFallbackBoundary: function() { return _errorboundary.HTTPAccessFallbackBoundary; }, LayoutRouter: function() { return _layoutrouter.default; }, MetadataBoundary: function() { return _boundarycomponents.MetadataBoundary; }, OutletBoundary: function() { return _boundarycomponents.OutletBoundary; }, Postpone: function() { return _postpone.Postpone; }, RenderFromTemplateContext: function() { return _renderfromtemplatecontext.default; }, RootLayoutBoundary: function() { return _boundarycomponents.RootLayoutBoundary; }, SegmentViewNode: function() { return SegmentViewNode; }, SegmentViewStateNode: function() { return SegmentViewStateNode; }, ViewportBoundary: function() { return _boundarycomponents.ViewportBoundary; }, actionAsyncStorage: function() { return _actionasyncstorageexternal.actionAsyncStorage; }, captureOwnerStack: function() { return _react.captureOwnerStack; }, collectSegmentData: function() { return _collectsegmentdata.collectSegmentData; }, createMetadataComponents: function() { return _metadata.createMetadataComponents; }, createPrerenderParamsForClientSegment: function() { return _params.createPrerenderParamsForClientSegment; }, createPrerenderSearchParamsForClientPage: function() { return _searchparams.createPrerenderSearchParamsForClientPage; }, createServerParamsForServerSegment: function() { return _params.createServerParamsForServerSegment; }, createServerSearchParamsForServerPage: function() { return _searchparams.createServerSearchParamsForServerPage; }, createTemporaryReferenceSet: function() { return _server.createTemporaryReferenceSet; }, decodeAction: function() { return _server.decodeAction; }, decodeFormState: function() { return _server.decodeFormState; }, decodeReply: function() { return _server.decodeReply; }, patchFetch: function() { return patchFetch; }, preconnect: function() { return _preloads.preconnect; }, preloadFont: function() { return _preloads.preloadFont; }, preloadStyle: function() { return _preloads.preloadStyle; }, prerender: function() { return _static.unstable_prerender; }, renderToReadableStream: function() { return _server.renderToReadableStream; }, serverHooks: function() { return _hooksservercontext; }, taintObjectReference: function() { return _taint.taintObjectReference; }, workAsyncStorage: function() { return _workasyncstorageexternal.workAsyncStorage; }, workUnitAsyncStorage: function() { return _workunitasyncstorageexternal.workUnitAsyncStorage; } }); const _server = require("react-server-dom-webpack/server"); const _static = require("react-server-dom-webpack/static"); const _react = require("react"); const _layoutrouter = /*#__PURE__*/ _interop_require_default(require("../../client/components/layout-router")); const _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(require("../../client/components/render-from-template-context")); const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); const _actionasyncstorageexternal = require("../app-render/action-async-storage.external"); const _clientpage = require("../../client/components/client-page"); const _clientsegment = require("../../client/components/client-segment"); const _searchparams = require("../request/search-params"); const _params = require("../request/params"); const _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(require("../../client/components/hooks-server-context")); const _errorboundary = require("../../client/components/http-access-fallback/error-boundary"); const _metadata = require("../../lib/metadata/metadata"); const _boundarycomponents = require("../../lib/framework/boundary-components"); const _preloads = require("./rsc/preloads"); const _postpone = require("./rsc/postpone"); const _taint = require("./rsc/taint"); const _collectsegmentdata = require("./collect-segment-data"); const _patchfetch = require("../lib/patch-fetch"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && 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; } let SegmentViewNode = ()=>null; let SegmentViewStateNode = ()=>null; if (process.env.NODE_ENV === 'development') { const mod = require('../../next-devtools/userspace/app/segment-explorer-node'); SegmentViewNode = mod.SegmentViewNode; SegmentViewStateNode = mod.SegmentViewStateNode; } // hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__` // into globalThis from this file which is bundled. if (process.env.TURBOPACK) { globalThis.__next__clear_chunk_cache__ = __turbopack_clear_chunk_cache__; } else { // Webpack does not have chunks on the server globalThis.__next__clear_chunk_cache__ = null; } function patchFetch() { return (0, _patchfetch.patchFetch)({ workAsyncStorage: _workasyncstorageexternal.workAsyncStorage, workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage }); } //# sourceMappingURL=entry-base.js.map~6274undefined76120Object.defineProperty(exports, "__esModule", (undefined140140))undefined14912070undefined45454551__webpack_require__undefined4553458525459undefined46054611__webpack_require__undefined461346454718undefined46644670__webpack_require__undefined4672467811110undefined47434749__webpack_require__undefined4751478996231undefined48684874__webpack_require__undefined4876492972041undefined49684974__webpack_require__undefined4976501829294undefined50605066__webpack_require__undefined5068510363033undefined51435149__webpack_require__undefined5151519519121undefined52195225__webpack_require__undefined5227526356542undefined52905296__webpack_require__undefined5298533788248undefined53635369__webpack_require__undefined5371539694409undefined54165422__webpack_require__undefined5424544269412undefined55145520__webpack_require__undefined5522556795181undefined55955601__webpack_require__undefined5603566349743undefined56855691__webpack_require__undefined5693572134955undefined57535759__webpack_require__undefined5761580195094undefined58235829__webpack_require__undefined5831584612518undefined58685874__webpack_require__undefined5876589111250undefined59105916__webpack_require__undefined5918593040610undefined59625968__webpack_require__undefined5970599368552undefined60176023__webpack_require__undefined6025604485681undefined76167653falseundefined76567838{}undefined79878007falseundefined80108090{}undefined /***/ })  þÿÿÌ/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; // eslint-disable-next-line import/no-extraneous-dependencies Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ClientPageRoot: function() { return _clientpage.ClientPageRoot; }, ClientSegmentRoot: function() { return _clientsegment.ClientSegmentRoot; }, HTTPAccessFallbackBoundary: function() { return _errorboundary.HTTPAccessFallbackBoundary; }, LayoutRouter: function() { return _layoutrouter.default; }, MetadataBoundary: function() { return _boundarycomponents.MetadataBoundary; }, OutletBoundary: function() { return _boundarycomponents.OutletBoundary; }, Postpone: function() { return _postpone.Postpone; }, RenderFromTemplateContext: function() { return _renderfromtemplatecontext.default; }, RootLayoutBoundary: function() { return _boundarycomponents.RootLayoutBoundary; }, SegmentViewNode: function() { return SegmentViewNode; }, SegmentViewStateNode: function() { return SegmentViewStateNode; }, ViewportBoundary: function() { return _boundarycomponents.ViewportBoundary; }, actionAsyncStorage: function() { return _actionasyncstorageexternal.actionAsyncStorage; }, captureOwnerStack: function() { return _react.captureOwnerStack; }, collectSegmentData: function() { return _collectsegmentdata.collectSegmentData; }, createMetadataComponents: function() { return _metadata.createMetadataComponents; }, createPrerenderParamsForClientSegment: function() { return _params.createPrerenderParamsForClientSegment; }, createPrerenderSearchParamsForClientPage: function() { return _searchparams.createPrerenderSearchParamsForClientPage; }, createServerParamsForServerSegment: function() { return _params.createServerParamsForServerSegment; }, createServerSearchParamsForServerPage: function() { return _searchparams.createServerSearchParamsForServerPage; }, createTemporaryReferenceSet: function() { return _server.createTemporaryReferenceSet; }, decodeAction: function() { return _server.decodeAction; }, decodeFormState: function() { return _server.decodeFormState; }, decodeReply: function() { return _server.decodeReply; }, patchFetch: function() { return patchFetch; }, preconnect: function() { return _preloads.preconnect; }, preloadFont: function() { return _preloads.preloadFont; }, preloadStyle: function() { return _preloads.preloadStyle; }, prerender: function() { return _static.unstable_prerender; }, renderToReadableStream: function() { return _server.renderToReadableStream; }, serverHooks: function() { return _hooksservercontext; }, taintObjectReference: function() { return _taint.taintObjectReference; }, workAsyncStorage: function() { return _workasyncstorageexternal.workAsyncStorage; }, workUnitAsyncStorage: function() { return _workunitasyncstorageexternal.workUnitAsyncStorage; } }); const _server = __webpack_require__(25459); const _static = __webpack_require__(4718); const _react = __webpack_require__(11110); const _layoutrouter = /*#__PURE__*/ _interop_require_default(__webpack_require__(96231)); const _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(__webpack_require__(72041)); const _workasyncstorageexternal = __webpack_require__(29294); const _workunitasyncstorageexternal = __webpack_require__(63033); const _actionasyncstorageexternal = __webpack_require__(19121); const _clientpage = __webpack_require__(56542); const _clientsegment = __webpack_require__(88248); const _searchparams = __webpack_require__(94409); const _params = __webpack_require__(69412); const _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(95181)); const _errorboundary = __webpack_require__(49743); const _metadata = __webpack_require__(34955); const _boundarycomponents = __webpack_require__(95094); const _preloads = __webpack_require__(12518); const _postpone = __webpack_require__(11250); const _taint = __webpack_require__(40610); const _collectsegmentdata = __webpack_require__(68552); const _patchfetch = __webpack_require__(85681); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && 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; } let SegmentViewNode = ()=>null; let SegmentViewStateNode = ()=>null; if (false) {} // hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__` // into globalThis from this file which is bundled. if (false) {} else { // Webpack does not have chunks on the server globalThis.__next__clear_chunk_cache__ = null; } function patchFetch() { return (0, _patchfetch.patchFetch)({ workAsyncStorage: _workasyncstorageexternal.workAsyncStorage, workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage }); } //# sourceMappingURL=entry-base.js.map /***/ })  þÿÿþÿÿ þÿÿ)þÿÿþÿÿ!// eslint-disable-next-line import/no-extraneous-dependencies "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { ClientPageRoot: null, ClientSegmentRoot: null, HTTPAccessFallbackBoundary: null, LayoutRouter: null, MetadataBoundary: null, OutletBoundary: null, Postpone: null, RenderFromTemplateContext: null, RootLayoutBoundary: null, SegmentViewNode: null, SegmentViewStateNode: null, ViewportBoundary: null, actionAsyncStorage: null, captureOwnerStack: null, collectSegmentData: null, createMetadataComponents: null, createPrerenderParamsForClientSegment: null, createPrerenderSearchParamsForClientPage: null, createServerParamsForServerSegment: null, createServerSearchParamsForServerPage: null, createTemporaryReferenceSet: null, decodeAction: null, decodeFormState: null, decodeReply: null, patchFetch: null, preconnect: null, preloadFont: null, preloadStyle: null, prerender: null, renderToReadableStream: null, serverHooks: null, taintObjectReference: null, workAsyncStorage: null, workUnitAsyncStorage: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { ClientPageRoot: function() { return _clientpage.ClientPageRoot; }, ClientSegmentRoot: function() { return _clientsegment.ClientSegmentRoot; }, HTTPAccessFallbackBoundary: function() { return _errorboundary.HTTPAccessFallbackBoundary; }, LayoutRouter: function() { return _layoutrouter.default; }, MetadataBoundary: function() { return _boundarycomponents.MetadataBoundary; }, OutletBoundary: function() { return _boundarycomponents.OutletBoundary; }, Postpone: function() { return _postpone.Postpone; }, RenderFromTemplateContext: function() { return _renderfromtemplatecontext.default; }, RootLayoutBoundary: function() { return _boundarycomponents.RootLayoutBoundary; }, SegmentViewNode: function() { return SegmentViewNode; }, SegmentViewStateNode: function() { return SegmentViewStateNode; }, ViewportBoundary: function() { return _boundarycomponents.ViewportBoundary; }, actionAsyncStorage: function() { return _actionasyncstorageexternal.actionAsyncStorage; }, captureOwnerStack: function() { return _react.captureOwnerStack; }, collectSegmentData: function() { return _collectsegmentdata.collectSegmentData; }, createMetadataComponents: function() { return _metadata.createMetadataComponents; }, createPrerenderParamsForClientSegment: function() { return _params.createPrerenderParamsForClientSegment; }, createPrerenderSearchParamsForClientPage: function() { return _searchparams.createPrerenderSearchParamsForClientPage; }, createServerParamsForServerSegment: function() { return _params.createServerParamsForServerSegment; }, createServerSearchParamsForServerPage: function() { return _searchparams.createServerSearchParamsForServerPage; }, createTemporaryReferenceSet: function() { return _server.createTemporaryReferenceSet; }, decodeAction: function() { return _server.decodeAction; }, decodeFormState: function() { return _server.decodeFormState; }, decodeReply: function() { return _server.decodeReply; }, patchFetch: function() { return patchFetch; }, preconnect: function() { return _preloads.preconnect; }, preloadFont: function() { return _preloads.preloadFont; }, preloadStyle: function() { return _preloads.preloadStyle; }, prerender: function() { return _static.unstable_prerender; }, renderToReadableStream: function() { return _server.renderToReadableStream; }, serverHooks: function() { return _hooksservercontext; }, taintObjectReference: function() { return _taint.taintObjectReference; }, workAsyncStorage: function() { return _workasyncstorageexternal.workAsyncStorage; }, workUnitAsyncStorage: function() { return _workunitasyncstorageexternal.workUnitAsyncStorage; } }); const _server = require("react-server-dom-webpack/server"); const _static = require("react-server-dom-webpack/static"); const _react = require("react"); const _layoutrouter = /*#__PURE__*/ _interop_require_default(require("../../client/components/layout-router")); const _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(require("../../client/components/render-from-template-context")); const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); const _actionasyncstorageexternal = require("../app-render/action-async-storage.external"); const _clientpage = require("../../client/components/client-page"); const _clientsegment = require("../../client/components/client-segment"); const _searchparams = require("../request/search-params"); const _params = require("../request/params"); const _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(require("../../client/components/hooks-server-context")); const _errorboundary = require("../../client/components/http-access-fallback/error-boundary"); const _metadata = require("../../lib/metadata/metadata"); const _boundarycomponents = require("../../lib/framework/boundary-components"); const _preloads = require("./rsc/preloads"); const _postpone = require("./rsc/postpone"); const _taint = require("./rsc/taint"); const _collectsegmentdata = require("./collect-segment-data"); const _patchfetch = require("../lib/patch-fetch"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && 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; } let SegmentViewNode = ()=>null; let SegmentViewStateNode = ()=>null; if (process.env.NODE_ENV === 'development') { const mod = require('../../next-devtools/userspace/app/segment-explorer-node'); SegmentViewNode = mod.SegmentViewNode; SegmentViewStateNode = mod.SegmentViewStateNode; } // hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__` // into globalThis from this file which is bundled. if (process.env.TURBOPACK) { globalThis.__next__clear_chunk_cache__ = __turbopack_clear_chunk_cache__; } else { // Webpack does not have chunks on the server globalThis.__next__clear_chunk_cache__ = null; } function patchFetch() { return (0, _patchfetch.patchFetch)({ workAsyncStorage: _workasyncstorageexternal.workAsyncStorage, workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage }); } //# sourceMappingURL=entry-base.js.map~6274undefined76120Object.defineProperty(exports, "__esModule", (undefined140140))undefined14912070undefined45454551__webpack_require__undefined4553458525459undefined46054611__webpack_require__undefined461346454718undefined46644670__webpack_require__undefined4672467811110undefined47434749__webpack_require__undefined4751478996231undefined48684874__webpack_require__undefined4876492972041undefined49684974__webpack_require__undefined4976501829294undefined50605066__webpack_require__undefined5068510363033undefined51435149__webpack_require__undefined5151519519121undefined52195225__webpack_require__undefined5227526356542undefined52905296__webpack_require__undefined5298533788248undefined53635369__webpack_require__undefined5371539694409undefined54165422__webpack_require__undefined5424544269412undefined55145520__webpack_require__undefined5522556795181undefined55955601__webpack_require__undefined5603566349743undefined56855691__webpack_require__undefined5693572134955undefined57535759__webpack_require__undefined5761580195094undefined58235829__webpack_require__undefined5831584612518undefined58685874__webpack_require__undefined5876589111250undefined59105916__webpack_require__undefined5918593040610undefined59625968__webpack_require__undefined5970599368552undefined60176023__webpack_require__undefined6025604485681undefined76167653falseundefined76567838{}undefined79878007falseundefined80108090{}undefinedþÿÿþÿÿ, /***/ 18666:   H«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource I«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DEFAULT_METADATA_ROUTE_EXTENSIONS: null, STATIC_METADATA_IMAGES: null, getExtensionRegexString: null, isMetadataPage: null, isMetadataRoute: null, isMetadataRouteFile: null, isStaticMetadataRoute: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_METADATA_ROUTE_EXTENSIONS: function() { return DEFAULT_METADATA_ROUTE_EXTENSIONS; }, STATIC_METADATA_IMAGES: function() { return STATIC_METADATA_IMAGES; }, getExtensionRegexString: function() { return getExtensionRegexString; }, isMetadataPage: function() { return isMetadataPage; }, isMetadataRoute: function() { return isMetadataRoute; }, isMetadataRouteFile: function() { return isMetadataRouteFile; }, isStaticMetadataRoute: function() { return isStaticMetadataRoute; } }); const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); const _apppaths = require("../../shared/lib/router/utils/app-paths"); const _isapprouteroute = require("../is-app-route-route"); const STATIC_METADATA_IMAGES = { icon: { filename: 'icon', extensions: [ 'ico', 'jpg', 'jpeg', 'png', 'svg' ] }, apple: { filename: 'apple-icon', extensions: [ 'jpg', 'jpeg', 'png' ] }, favicon: { filename: 'favicon', extensions: [ 'ico' ] }, openGraph: { filename: 'opengraph-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] }, twitter: { filename: 'twitter-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] } }; const DEFAULT_METADATA_ROUTE_EXTENSIONS = [ 'js', 'jsx', 'ts', 'tsx' ]; const getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{ // If there's no possible multi dynamic routes, will not match any []. files if (!dynamicExtensions || dynamicExtensions.length === 0) { return `(\\.(?:${staticExtensions.join('|')}))`; } return `(?:\\.(${staticExtensions.join('|')})|(\\.(${dynamicExtensions.join('|')})))`; }; function isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) { // End with the extension or optional to have the extension // When strictlyMatchExtensions is true, it's used for match file path; // When strictlyMatchExtensions, the dynamic extension is skipped but // static extension is kept, which is usually used for matching route path. const trailingMatcher = (strictlyMatchExtensions ? '' : '?') + '$'; // Match the optional variants like /opengraph-image2, /icon-a102f4.png, etc. const variantsMatcher = '\\d?'; // The -\w{6} is the suffix that normalized from group routes; const groupSuffix = strictlyMatchExtensions ? '' : '(-\\w{6})?'; const suffixMatcher = `${variantsMatcher}${groupSuffix}`; const metadataRouteFilesRegex = [ new RegExp(`^[\\\\/]robots${getExtensionRegexString(pageExtensions.concat('txt'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]manifest${getExtensionRegexString(pageExtensions.concat('webmanifest', 'json'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]favicon\\.ico$`), new RegExp(`[\\\\/]sitemap${getExtensionRegexString([ 'xml' ], pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.icon.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.apple.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`) ]; const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath); const matched = metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath)); return matched; } function isStaticMetadataRoute(route) { // extract ext with regex const pathname = route.replace(/\/route$/, ''); const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints, // so we assume they're dynamic pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml'); return matched; } function isMetadataPage(page) { const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false); return matched; } function isMetadataRoute(route) { let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\/?app\//, '')// Remove the dynamic route id .replace('/[__metadata_id__]', '')// Remove the /route suffix .replace(/\/route$/, ''); if (page[0] !== '/') page = '/' + page; const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false); return matched; } //# sourceMappingURL=is-metadata-route.js.map  e :NNWLPpvx¦¼ÂÄì '€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…95004þ…66368ý…87632€†buffer†source„size„maps„hashÆ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_METADATA_ROUTE_EXTENSIONS: function() { return DEFAULT_METADATA_ROUTE_EXTENSIONS; }, STATIC_METADATA_IMAGES: function() { return STATIC_METADATA_IMAGES; }, getExtensionRegexString: function() { return getExtensionRegexString; }, isMetadataPage: function() { return isMetadataPage; }, isMetadataRoute: function() { return isMetadataRoute; }, isMetadataRouteFile: function() { return isMetadataRouteFile; }, isStaticMetadataRoute: function() { return isStaticMetadataRoute; } }); const _normalizepathsep = __webpack_require__(95004); const _apppaths = __webpack_require__(66368); const _isapprouteroute = __webpack_require__(87632); const STATIC_METADATA_IMAGES = { icon: { filename: 'icon', extensions: [ 'ico', 'jpg', 'jpeg', 'png', 'svg' ] }, apple: { filename: 'apple-icon', extensions: [ 'jpg', 'jpeg', 'png' ] }, favicon: { filename: 'favicon', extensions: [ 'ico' ] }, openGraph: { filename: 'opengraph-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] }, twitter: { filename: 'twitter-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] } }; const DEFAULT_METADATA_ROUTE_EXTENSIONS = [ 'js', 'jsx', 'ts', 'tsx' ]; const getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{ // If there's no possible multi dynamic routes, will not match any []. files if (!dynamicExtensions || dynamicExtensions.length === 0) { return `(\\.(?:${staticExtensions.join('|')}))`; } return `(?:\\.(${staticExtensions.join('|')})|(\\.(${dynamicExtensions.join('|')})))`; }; function isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) { // End with the extension or optional to have the extension // When strictlyMatchExtensions is true, it's used for match file path; // When strictlyMatchExtensions, the dynamic extension is skipped but // static extension is kept, which is usually used for matching route path. const trailingMatcher = (strictlyMatchExtensions ? '' : '?') + '$'; // Match the optional variants like /opengraph-image2, /icon-a102f4.png, etc. const variantsMatcher = '\\d?'; // The -\w{6} is the suffix that normalized from group routes; const groupSuffix = strictlyMatchExtensions ? '' : '(-\\w{6})?'; const suffixMatcher = `${variantsMatcher}${groupSuffix}`; const metadataRouteFilesRegex = [ new RegExp(`^[\\\\/]robots${getExtensionRegexString(pageExtensions.concat('txt'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]manifest${getExtensionRegexString(pageExtensions.concat('webmanifest', 'json'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]favicon\\.ico$`), new RegExp(`[\\\\/]sitemap${getExtensionRegexString([ 'xml' ], pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.icon.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.apple.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`) ]; const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath); const matched = metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath)); return matched; } function isStaticMetadataRoute(route) { // extract ext with regex const pathname = route.replace(/\/route$/, ''); const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints, // so we assume they're dynamic pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml'); return matched; } function isMetadataPage(page) { const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false); return matched; } function isMetadataRoute(route) { let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\/?app\//, '')// Remove the dynamic route id .replace('/[__metadata_id__]', '')// Remove the /route suffix .replace(/\/route$/, ''); if (page[0] !== '/') page = '/' + page; const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false); return matched; } //# sourceMappingURL=is-metadata-route.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DEFAULT_METADATA_ROUTE_EXTENSIONS: null, STATIC_METADATA_IMAGES: null, getExtensionRegexString: null, isMetadataPage: null, isMetadataRoute: null, isMetadataRouteFile: null, isStaticMetadataRoute: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_METADATA_ROUTE_EXTENSIONS: function() { return DEFAULT_METADATA_ROUTE_EXTENSIONS; }, STATIC_METADATA_IMAGES: function() { return STATIC_METADATA_IMAGES; }, getExtensionRegexString: function() { return getExtensionRegexString; }, isMetadataPage: function() { return isMetadataPage; }, isMetadataRoute: function() { return isMetadataRoute; }, isMetadataRouteFile: function() { return isMetadataRouteFile; }, isStaticMetadataRoute: function() { return isStaticMetadataRoute; } }); const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); const _apppaths = require("../../shared/lib/router/utils/app-paths"); const _isapprouteroute = require("../is-app-route-route"); const STATIC_METADATA_IMAGES = { icon: { filename: 'icon', extensions: [ 'ico', 'jpg', 'jpeg', 'png', 'svg' ] }, apple: { filename: 'apple-icon', extensions: [ 'jpg', 'jpeg', 'png' ] }, favicon: { filename: 'favicon', extensions: [ 'ico' ] }, openGraph: { filename: 'opengraph-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] }, twitter: { filename: 'twitter-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] } }; const DEFAULT_METADATA_ROUTE_EXTENSIONS = [ 'js', 'jsx', 'ts', 'tsx' ]; const getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{ // If there's no possible multi dynamic routes, will not match any []. files if (!dynamicExtensions || dynamicExtensions.length === 0) { return `(\\.(?:${staticExtensions.join('|')}))`; } return `(?:\\.(${staticExtensions.join('|')})|(\\.(${dynamicExtensions.join('|')})))`; }; function isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) { // End with the extension or optional to have the extension // When strictlyMatchExtensions is true, it's used for match file path; // When strictlyMatchExtensions, the dynamic extension is skipped but // static extension is kept, which is usually used for matching route path. const trailingMatcher = (strictlyMatchExtensions ? '' : '?') + '$'; // Match the optional variants like /opengraph-image2, /icon-a102f4.png, etc. const variantsMatcher = '\\d?'; // The -\w{6} is the suffix that normalized from group routes; const groupSuffix = strictlyMatchExtensions ? '' : '(-\\w{6})?'; const suffixMatcher = `${variantsMatcher}${groupSuffix}`; const metadataRouteFilesRegex = [ new RegExp(`^[\\\\/]robots${getExtensionRegexString(pageExtensions.concat('txt'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]manifest${getExtensionRegexString(pageExtensions.concat('webmanifest', 'json'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]favicon\\.ico$`), new RegExp(`[\\\\/]sitemap${getExtensionRegexString([ 'xml' ], pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.icon.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.apple.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`) ]; const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath); const matched = metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath)); return matched; } function isStaticMetadataRoute(route) { // extract ext with regex const pathname = route.replace(/\/route$/, ''); const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints, // so we assume they're dynamic pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml'); return matched; } function isMetadataPage(page) { const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false); return matched; } function isMetadataRoute(route) { let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\/?app\//, '')// Remove the dynamic route id .replace('/[__metadata_id__]', '')// Remove the /route suffix .replace(/\/route$/, ''); if (page[0] !== '/') page = '/' + page; const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false); return matched; } //# sourceMappingURL=is-metadata-route.js.map012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873360undefined11361142__webpack_require__undefined1144119095004undefined12121218__webpack_require__undefined1220126066368undefined12891295__webpack_require__undefined1297131987632undefined /***/ }) þÿÿ#/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_METADATA_ROUTE_EXTENSIONS: function() { return DEFAULT_METADATA_ROUTE_EXTENSIONS; }, STATIC_METADATA_IMAGES: function() { return STATIC_METADATA_IMAGES; }, getExtensionRegexString: function() { return getExtensionRegexString; }, isMetadataPage: function() { return isMetadataPage; }, isMetadataRoute: function() { return isMetadataRoute; }, isMetadataRouteFile: function() { return isMetadataRouteFile; }, isStaticMetadataRoute: function() { return isStaticMetadataRoute; } }); const _normalizepathsep = __webpack_require__(95004); const _apppaths = __webpack_require__(66368); const _isapprouteroute = __webpack_require__(87632); const STATIC_METADATA_IMAGES = { icon: { filename: 'icon', extensions: [ 'ico', 'jpg', 'jpeg', 'png', 'svg' ] }, apple: { filename: 'apple-icon', extensions: [ 'jpg', 'jpeg', 'png' ] }, favicon: { filename: 'favicon', extensions: [ 'ico' ] }, openGraph: { filename: 'opengraph-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] }, twitter: { filename: 'twitter-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] } }; const DEFAULT_METADATA_ROUTE_EXTENSIONS = [ 'js', 'jsx', 'ts', 'tsx' ]; const getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{ // If there's no possible multi dynamic routes, will not match any []. files if (!dynamicExtensions || dynamicExtensions.length === 0) { return `(\\.(?:${staticExtensions.join('|')}))`; } return `(?:\\.(${staticExtensions.join('|')})|(\\.(${dynamicExtensions.join('|')})))`; }; function isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) { // End with the extension or optional to have the extension // When strictlyMatchExtensions is true, it's used for match file path; // When strictlyMatchExtensions, the dynamic extension is skipped but // static extension is kept, which is usually used for matching route path. const trailingMatcher = (strictlyMatchExtensions ? '' : '?') + '$'; // Match the optional variants like /opengraph-image2, /icon-a102f4.png, etc. const variantsMatcher = '\\d?'; // The -\w{6} is the suffix that normalized from group routes; const groupSuffix = strictlyMatchExtensions ? '' : '(-\\w{6})?'; const suffixMatcher = `${variantsMatcher}${groupSuffix}`; const metadataRouteFilesRegex = [ new RegExp(`^[\\\\/]robots${getExtensionRegexString(pageExtensions.concat('txt'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]manifest${getExtensionRegexString(pageExtensions.concat('webmanifest', 'json'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]favicon\\.ico$`), new RegExp(`[\\\\/]sitemap${getExtensionRegexString([ 'xml' ], pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.icon.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.apple.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`) ]; const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath); const matched = metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath)); return matched; } function isStaticMetadataRoute(route) { // extract ext with regex const pathname = route.replace(/\/route$/, ''); const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints, // so we assume they're dynamic pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml'); return matched; } function isMetadataPage(page) { const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false); return matched; } function isMetadataRoute(route) { let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\/?app\//, '')// Remove the dynamic route id .replace('/[__metadata_id__]', '')// Remove the /route suffix .replace(/\/route$/, ''); if (page[0] !== '/') page = '/' + page; const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false); return matched; } //# sourceMappingURL=is-metadata-route.js.map /***/ }) þÿÿþÿÿ þÿÿþÿÿþÿÿ"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { DEFAULT_METADATA_ROUTE_EXTENSIONS: null, STATIC_METADATA_IMAGES: null, getExtensionRegexString: null, isMetadataPage: null, isMetadataRoute: null, isMetadataRouteFile: null, isStaticMetadataRoute: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { DEFAULT_METADATA_ROUTE_EXTENSIONS: function() { return DEFAULT_METADATA_ROUTE_EXTENSIONS; }, STATIC_METADATA_IMAGES: function() { return STATIC_METADATA_IMAGES; }, getExtensionRegexString: function() { return getExtensionRegexString; }, isMetadataPage: function() { return isMetadataPage; }, isMetadataRoute: function() { return isMetadataRoute; }, isMetadataRouteFile: function() { return isMetadataRouteFile; }, isStaticMetadataRoute: function() { return isStaticMetadataRoute; } }); const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); const _apppaths = require("../../shared/lib/router/utils/app-paths"); const _isapprouteroute = require("../is-app-route-route"); const STATIC_METADATA_IMAGES = { icon: { filename: 'icon', extensions: [ 'ico', 'jpg', 'jpeg', 'png', 'svg' ] }, apple: { filename: 'apple-icon', extensions: [ 'jpg', 'jpeg', 'png' ] }, favicon: { filename: 'favicon', extensions: [ 'ico' ] }, openGraph: { filename: 'opengraph-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] }, twitter: { filename: 'twitter-image', extensions: [ 'jpg', 'jpeg', 'png', 'gif' ] } }; const DEFAULT_METADATA_ROUTE_EXTENSIONS = [ 'js', 'jsx', 'ts', 'tsx' ]; const getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{ // If there's no possible multi dynamic routes, will not match any []. files if (!dynamicExtensions || dynamicExtensions.length === 0) { return `(\\.(?:${staticExtensions.join('|')}))`; } return `(?:\\.(${staticExtensions.join('|')})|(\\.(${dynamicExtensions.join('|')})))`; }; function isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) { // End with the extension or optional to have the extension // When strictlyMatchExtensions is true, it's used for match file path; // When strictlyMatchExtensions, the dynamic extension is skipped but // static extension is kept, which is usually used for matching route path. const trailingMatcher = (strictlyMatchExtensions ? '' : '?') + '$'; // Match the optional variants like /opengraph-image2, /icon-a102f4.png, etc. const variantsMatcher = '\\d?'; // The -\w{6} is the suffix that normalized from group routes; const groupSuffix = strictlyMatchExtensions ? '' : '(-\\w{6})?'; const suffixMatcher = `${variantsMatcher}${groupSuffix}`; const metadataRouteFilesRegex = [ new RegExp(`^[\\\\/]robots${getExtensionRegexString(pageExtensions.concat('txt'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]manifest${getExtensionRegexString(pageExtensions.concat('webmanifest', 'json'), null)}${trailingMatcher}`), new RegExp(`^[\\\\/]favicon\\.ico$`), new RegExp(`[\\\\/]sitemap${getExtensionRegexString([ 'xml' ], pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.icon.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.apple.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`), new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`) ]; const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath); const matched = metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath)); return matched; } function isStaticMetadataRoute(route) { // extract ext with regex const pathname = route.replace(/\/route$/, ''); const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints, // so we assume they're dynamic pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml'); return matched; } function isMetadataPage(page) { const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false); return matched; } function isMetadataRoute(route) { let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\/?app\//, '')// Remove the dynamic route id .replace('/[__metadata_id__]', '')// Remove the /route suffix .replace(/\/route$/, ''); if (page[0] !== '/') page = '/' + page; const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false); return matched; } //# sourceMappingURL=is-metadata-route.js.map012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined873360undefined11361142__webpack_require__undefined1144119095004undefined12121218__webpack_require__undefined1220126066368undefined12891295__webpack_require__undefined1297131987632undefinedþÿÿ þÿÿ, /***/ 18983:  š«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ì«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource´"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "isPostpone", { enumerable: true, get: function() { return isPostpone; } }); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map f :NNQ}AÎ΀®Object.defineProperty(exports, "__esModule", (‚))®Object.defineProperty(exports, "isPostpone", (þ€†buffer†source„size„maps„hash« Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "isPostpone", ({ enumerable: true, get: function() { return isPostpone; } })); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource´"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "isPostpone", { enumerable: true, get: function() { return isPostpone; } }); const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); function isPostpone(error) { return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; } //# sourceMappingURL=is-postpone.js.map£012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81125Object.defineProperty(exports, "isPostpone", (undefined206206))undefined /***/ }) öýÿÿ>þÿÿ øýÿÿûýÿÿ üýÿÿ?þÿÿþýÿÿ@þÿÿAþÿÿþÿÿþÿÿ, /***/ 19374:  h«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource €«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceq"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { isHtmlBotRequest: null, shouldServeStreamingMetadata: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { isHtmlBotRequest: function() { return isHtmlBotRequest; }, shouldServeStreamingMetadata: function() { return shouldServeStreamingMetadata; } }); const _isbot = require("../../shared/lib/router/utils/is-bot"); function shouldServeStreamingMetadata(userAgent, htmlLimitedBots) { const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i'); // Only block metadata for HTML-limited bots if (userAgent && blockingMetadataUARegex.test(userAgent)) { return false; } return true; } function isHtmlBotRequest(req) { const ua = req.headers['user-agent'] || ''; const botType = (0, _isbot.getBotType)(ua); return botType === 'html'; } //# sourceMappingURL=streaming-metadata.js.map e :NNWD­#%J€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…97972€†buffer†source„size„maps„hashû Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { isHtmlBotRequest: function() { return isHtmlBotRequest; }, shouldServeStreamingMetadata: function() { return shouldServeStreamingMetadata; } }); const _isbot = __webpack_require__(97972); function shouldServeStreamingMetadata(userAgent, htmlLimitedBots) { const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i'); // Only block metadata for HTML-limited bots if (userAgent && blockingMetadataUARegex.test(userAgent)) { return false; } return true; } function isHtmlBotRequest(req) { const ua = req.headers['user-agent'] || ''; const botType = (0, _isbot.getBotType)(ua); return botType === 'html'; } //# sourceMappingURL=streaming-metadata.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceq"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { isHtmlBotRequest: null, shouldServeStreamingMetadata: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { isHtmlBotRequest: function() { return isHtmlBotRequest; }, shouldServeStreamingMetadata: function() { return shouldServeStreamingMetadata; } }); const _isbot = require("../../shared/lib/router/utils/is-bot"); function shouldServeStreamingMetadata(userAgent, htmlLimitedBots) { const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i'); // Only block metadata for HTML-limited bots if (userAgent && blockingMetadataUARegex.test(userAgent)) { return false; } return true; } function isHtmlBotRequest(req) { const ua = req.headers['user-agent'] || ''; const botType = (0, _isbot.getBotType)(ua); return botType === 'html'; } //# sourceMappingURL=streaming-metadata.js.map›012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871730undefined541547__webpack_require__undefined54958697972undefined /***/ }) ïýÿÿX/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { isHtmlBotRequest: function() { return isHtmlBotRequest; }, shouldServeStreamingMetadata: function() { return shouldServeStreamingMetadata; } }); const _isbot = __webpack_require__(97972); function shouldServeStreamingMetadata(userAgent, htmlLimitedBots) { const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i'); // Only block metadata for HTML-limited bots if (userAgent && blockingMetadataUARegex.test(userAgent)) { return false; } return true; } function isHtmlBotRequest(req) { const ua = req.headers['user-agent'] || ''; const botType = (0, _isbot.getBotType)(ua); return botType === 'html'; } //# sourceMappingURL=streaming-metadata.js.map /***/ }) ðýÿÿóýÿÿ ôýÿÿþÿÿöýÿÿq"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { isHtmlBotRequest: null, shouldServeStreamingMetadata: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { isHtmlBotRequest: function() { return isHtmlBotRequest; }, shouldServeStreamingMetadata: function() { return shouldServeStreamingMetadata; } }); const _isbot = require("../../shared/lib/router/utils/is-bot"); function shouldServeStreamingMetadata(userAgent, htmlLimitedBots) { const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i'); // Only block metadata for HTML-limited bots if (userAgent && blockingMetadataUARegex.test(userAgent)) { return false; } return true; } function isHtmlBotRequest(req) { const ua = req.headers['user-agent'] || ''; const botType = (0, _isbot.getBotType)(ua); return botType === 'html'; } //# sourceMappingURL=streaming-metadata.js.map›012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871730undefined541547__webpack_require__undefined54958697972undefined÷ýÿÿøýÿÿ, /***/ 20653:  J«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource a «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceË "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", { enumerable: true, get: function() { return disableSmoothScrollDuringRouteTransition; } }); const _warnonce = require("../../utils/warn-once"); function disableSmoothScrollDuringRouteTransition(fn, options) { if (options === void 0) options = {}; // if only the hash is changed, we don't need to disable smooth scrolling // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX if (options.onlyHashChange) { fn(); return; } const htmlElement = document.documentElement; const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth'; // Since this is a breaking change, this is temporarily flagged // and will be false by default. // In the next major (v16), this will be automatically enabled if (process.env.__NEXT_OPTIMIZE_ROUTER_SCROLL) { if (!hasDataAttribute) { // No smooth scrolling configured, run directly without style manipulation fn(); return; } } else { // Old behavior: always manipulate styles, but warn about upcoming change // Warn if smooth scrolling is detected but no data attribute is present if ("production" === 'development' && !hasDataAttribute && getComputedStyle(htmlElement).scrollBehavior === 'smooth') { (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `` element. In a future version, ' + 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' + 'To prepare for this change, add `data-scroll-behavior="smooth"` to your element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior'); } } // Proceed with temporarily disabling smooth scrolling const existing = htmlElement.style.scrollBehavior; htmlElement.style.scrollBehavior = 'auto'; if (!options.dontForceLayout) { // In Chrome-based browsers we need to force reflow before calling `scrollTo`. // Otherwise it will not pickup the change in scrollBehavior // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042 htmlElement.getClientRects(); } fn(); htmlElement.style.scrollBehavior = existing; } //# sourceMappingURL=disable-smooth-scroll.js.map g :NNQN›  %'=Öþ¯gÖÙe€®Object.defineProperty(exports, "__esModule", (‚))ÌObject.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", (þ“__webpack_require__…99026…false‚{}þÿ€†buffer†source„size„maps„hashõ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", ({ enumerable: true, get: function() { return disableSmoothScrollDuringRouteTransition; } })); const _warnonce = __webpack_require__(99026); function disableSmoothScrollDuringRouteTransition(fn, options) { if (options === void 0) options = {}; // if only the hash is changed, we don't need to disable smooth scrolling // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX if (options.onlyHashChange) { fn(); return; } const htmlElement = document.documentElement; const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth'; // Since this is a breaking change, this is temporarily flagged // and will be false by default. // In the next major (v16), this will be automatically enabled if (false) {} else { // Old behavior: always manipulate styles, but warn about upcoming change // Warn if smooth scrolling is detected but no data attribute is present if (false) {} } // Proceed with temporarily disabling smooth scrolling const existing = htmlElement.style.scrollBehavior; htmlElement.style.scrollBehavior = 'auto'; if (!options.dontForceLayout) { // In Chrome-based browsers we need to force reflow before calling `scrollTo`. // Otherwise it will not pickup the change in scrollBehavior // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042 htmlElement.getClientRects(); } fn(); htmlElement.style.scrollBehavior = existing; } //# sourceMappingURL=disable-smooth-scroll.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceË "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", { enumerable: true, get: function() { return disableSmoothScrollDuringRouteTransition; } }); const _warnonce = require("../../utils/warn-once"); function disableSmoothScrollDuringRouteTransition(fn, options) { if (options === void 0) options = {}; // if only the hash is changed, we don't need to disable smooth scrolling // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX if (options.onlyHashChange) { fn(); return; } const htmlElement = document.documentElement; const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth'; // Since this is a breaking change, this is temporarily flagged // and will be false by default. // In the next major (v16), this will be automatically enabled if (process.env.__NEXT_OPTIMIZE_ROUTER_SCROLL) { if (!hasDataAttribute) { // No smooth scrolling configured, run directly without style manipulation fn(); return; } } else { // Old behavior: always manipulate styles, but warn about upcoming change // Warn if smooth scrolling is detected but no data attribute is present if ("production" === 'development' && !hasDataAttribute && getComputedStyle(htmlElement).scrollBehavior === 'smooth') { (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `` element. In a future version, ' + 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' + 'To prepare for this change, add `data-scroll-behavior="smooth"` to your element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior'); } } // Proceed with temporarily disabling smooth scrolling const existing = htmlElement.style.scrollBehavior; htmlElement.style.scrollBehavior = 'auto'; if (!options.dontForceLayout) { // In Chrome-based browsers we need to force reflow before calling `scrollTo`. // Otherwise it will not pickup the change in scrollBehavior // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042 htmlElement.getClientRects(); } fn(); htmlElement.style.scrollBehavior = existing; } //# sourceMappingURL=disable-smooth-scroll.js.map H012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81155Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", (undefined266266))undefined287293__webpack_require__undefined29531799026undefined9821022falseundefined10251199{}undefined13831494falseundefined14971893{}undefined /***/ }) åýÿÿR/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", ({ enumerable: true, get: function() { return disableSmoothScrollDuringRouteTransition; } })); const _warnonce = __webpack_require__(99026); function disableSmoothScrollDuringRouteTransition(fn, options) { if (options === void 0) options = {}; // if only the hash is changed, we don't need to disable smooth scrolling // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX if (options.onlyHashChange) { fn(); return; } const htmlElement = document.documentElement; const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth'; // Since this is a breaking change, this is temporarily flagged // and will be false by default. // In the next major (v16), this will be automatically enabled if (false) {} else { // Old behavior: always manipulate styles, but warn about upcoming change // Warn if smooth scrolling is detected but no data attribute is present if (false) {} } // Proceed with temporarily disabling smooth scrolling const existing = htmlElement.style.scrollBehavior; htmlElement.style.scrollBehavior = 'auto'; if (!options.dontForceLayout) { // In Chrome-based browsers we need to force reflow before calling `scrollTo`. // Otherwise it will not pickup the change in scrollBehavior // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042 htmlElement.getClientRects(); } fn(); htmlElement.style.scrollBehavior = existing; } //# sourceMappingURL=disable-smooth-scroll.js.map /***/ }) æýÿÿéýÿÿ êýÿÿþÿÿìýÿÿË "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", { enumerable: true, get: function() { return disableSmoothScrollDuringRouteTransition; } }); const _warnonce = require("../../utils/warn-once"); function disableSmoothScrollDuringRouteTransition(fn, options) { if (options === void 0) options = {}; // if only the hash is changed, we don't need to disable smooth scrolling // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX if (options.onlyHashChange) { fn(); return; } const htmlElement = document.documentElement; const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth'; // Since this is a breaking change, this is temporarily flagged // and will be false by default. // In the next major (v16), this will be automatically enabled if (process.env.__NEXT_OPTIMIZE_ROUTER_SCROLL) { if (!hasDataAttribute) { // No smooth scrolling configured, run directly without style manipulation fn(); return; } } else { // Old behavior: always manipulate styles, but warn about upcoming change // Warn if smooth scrolling is detected but no data attribute is present if ("production" === 'development' && !hasDataAttribute && getComputedStyle(htmlElement).scrollBehavior === 'smooth') { (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `` element. In a future version, ' + 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' + 'To prepare for this change, add `data-scroll-behavior="smooth"` to your element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior'); } } // Proceed with temporarily disabling smooth scrolling const existing = htmlElement.style.scrollBehavior; htmlElement.style.scrollBehavior = 'auto'; if (!options.dontForceLayout) { // In Chrome-based browsers we need to force reflow before calling `scrollTo`. // Otherwise it will not pickup the change in scrollBehavior // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042 htmlElement.getClientRects(); } fn(); htmlElement.style.scrollBehavior = existing; } //# sourceMappingURL=disable-smooth-scroll.js.map H012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81155Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", (undefined266266))undefined287293__webpack_require__undefined29531799026undefined9821022falseundefined10251199{}undefined13831494falseundefined14971893{}undefinedíýÿÿîýÿÿ, /***/ 20801:  ³Å«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ©A«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource @/* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex$", "caughtErrors": "none" }] */ 'use strict'; const EventEmitter = require('events'); const http = require('http'); const { Duplex } = require('stream'); const { createHash } = require('crypto'); const extension = require('./extension'); const PerMessageDeflate = require('./permessage-deflate'); const subprotocol = require('./subprotocol'); const WebSocket = require('./websocket'); const { GUID, kWebSocket } = require('./constants'); const keyRegex = /^[+/0-9A-Za-z]{22}==$/; const RUNNING = 0; const CLOSING = 1; const CLOSED = 2; /** * Class representing a WebSocket server. * * @extends EventEmitter */ class WebSocketServer extends EventEmitter { /** * Create a `WebSocketServer` instance. * * @param {Object} options Configuration options * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted * multiple times in the same tick * @param {Boolean} [options.autoPong=true] Specifies whether or not to * automatically send a pong in response to a ping * @param {Number} [options.backlog=511] The maximum length of the queue of * pending connections * @param {Boolean} [options.clientTracking=true] Specifies whether or not to * track clients * @param {Function} [options.handleProtocols] A hook to handle protocols * @param {String} [options.host] The hostname where to bind the server * @param {Number} [options.maxPayload=104857600] The maximum allowed message * size * @param {Boolean} [options.noServer=false] Enable no server mode * @param {String} [options.path] Accept only connections matching this path * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable * permessage-deflate * @param {Number} [options.port] The port where to bind the server * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S * server to use * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or * not to skip UTF-8 validation for text and close messages * @param {Function} [options.verifyClient] A hook to reject connections * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket` * class to use. It must be the `WebSocket` class or class that extends it * @param {Function} [callback] A listener for the `listening` event */ constructor(options, callback) { super(); options = { allowSynchronousEvents: true, autoPong: true, maxPayload: 100 * 1024 * 1024, skipUTF8Validation: false, perMessageDeflate: false, handleProtocols: null, clientTracking: true, verifyClient: null, noServer: false, backlog: null, // use default (511 as implemented in net.js) server: null, host: null, path: null, port: null, WebSocket, ...options }; if ( (options.port == null && !options.server && !options.noServer) || (options.port != null && (options.server || options.noServer)) || (options.server && options.noServer) ) { throw new TypeError( 'One and only one of the "port", "server", or "noServer" options ' + 'must be specified' ); } if (options.port != null) { this._server = http.createServer((req, res) => { const body = http.STATUS_CODES[426]; res.writeHead(426, { 'Content-Length': body.length, 'Content-Type': 'text/plain' }); res.end(body); }); this._server.listen( options.port, options.host, options.backlog, callback ); } else if (options.server) { this._server = options.server; } if (this._server) { const emitConnection = this.emit.bind(this, 'connection'); this._removeListeners = addListeners(this._server, { listening: this.emit.bind(this, 'listening'), error: this.emit.bind(this, 'error'), upgrade: (req, socket, head) => { this.handleUpgrade(req, socket, head, emitConnection); } }); } if (options.perMessageDeflate === true) options.perMessageDeflate = {}; if (options.clientTracking) { this.clients = new Set(); this._shouldEmitClose = false; } this.options = options; this._state = RUNNING; } /** * Returns the bound address, the address family name, and port of the server * as reported by the operating system if listening on an IP socket. * If the server is listening on a pipe or UNIX domain socket, the name is * returned as a string. * * @return {(Object|String|null)} The address of the server * @public */ address() { if (this.options.noServer) { throw new Error('The server is operating in "noServer" mode'); } if (!this._server) return null; return this._server.address(); } /** * Stop the server from accepting new connections and emit the `'close'` event * when all existing connections are closed. * * @param {Function} [cb] A one-time listener for the `'close'` event * @public */ close(cb) { if (this._state === CLOSED) { if (cb) { this.once('close', () => { cb(new Error('The server is not running')); }); } process.nextTick(emitClose, this); return; } if (cb) this.once('close', cb); if (this._state === CLOSING) return; this._state = CLOSING; if (this.options.noServer || this.options.server) { if (this._server) { this._removeListeners(); this._removeListeners = this._server = null; } if (this.clients) { if (!this.clients.size) { process.nextTick(emitClose, this); } else { this._shouldEmitClose = true; } } else { process.nextTick(emitClose, this); } } else { const server = this._server; this._removeListeners(); this._removeListeners = this._server = null; // // The HTTP/S server was created internally. Close it, and rely on its // `'close'` event. // server.close(() => { emitClose(this); }); } } /** * See if a given request should be handled by this server instance. * * @param {http.IncomingMessage} req Request object to inspect * @return {Boolean} `true` if the request is valid, else `false` * @public */ shouldHandle(req) { if (this.options.path) { const index = req.url.indexOf('?'); const pathname = index !== -1 ? req.url.slice(0, index) : req.url; if (pathname !== this.options.path) return false; } return true; } /** * Handle a HTTP Upgrade request. * * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @public */ handleUpgrade(req, socket, head, cb) { socket.on('error', socketOnError); const key = req.headers['sec-websocket-key']; const upgrade = req.headers.upgrade; const version = +req.headers['sec-websocket-version']; if (req.method !== 'GET') { const message = 'Invalid HTTP method'; abortHandshakeOrEmitwsClientError(this, req, socket, 405, message); return; } if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') { const message = 'Invalid Upgrade header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (key === undefined || !keyRegex.test(key)) { const message = 'Missing or invalid Sec-WebSocket-Key header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (version !== 13 && version !== 8) { const message = 'Missing or invalid Sec-WebSocket-Version header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, { 'Sec-WebSocket-Version': '13, 8' }); return; } if (!this.shouldHandle(req)) { abortHandshake(socket, 400); return; } const secWebSocketProtocol = req.headers['sec-websocket-protocol']; let protocols = new Set(); if (secWebSocketProtocol !== undefined) { try { protocols = subprotocol.parse(secWebSocketProtocol); } catch (err) { const message = 'Invalid Sec-WebSocket-Protocol header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } const secWebSocketExtensions = req.headers['sec-websocket-extensions']; const extensions = {}; if ( this.options.perMessageDeflate && secWebSocketExtensions !== undefined ) { const perMessageDeflate = new PerMessageDeflate( this.options.perMessageDeflate, true, this.options.maxPayload ); try { const offers = extension.parse(secWebSocketExtensions); if (offers[PerMessageDeflate.extensionName]) { perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); extensions[PerMessageDeflate.extensionName] = perMessageDeflate; } } catch (err) { const message = 'Invalid or unacceptable Sec-WebSocket-Extensions header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } // // Optionally call external client verification handler. // if (this.options.verifyClient) { const info = { origin: req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`], secure: !!(req.socket.authorized || req.socket.encrypted), req }; if (this.options.verifyClient.length === 2) { this.options.verifyClient(info, (verified, code, message, headers) => { if (!verified) { return abortHandshake(socket, code || 401, message, headers); } this.completeUpgrade( extensions, key, protocols, req, socket, head, cb ); }); return; } if (!this.options.verifyClient(info)) return abortHandshake(socket, 401); } this.completeUpgrade(extensions, key, protocols, req, socket, head, cb); } /** * Upgrade the connection to WebSocket. * * @param {Object} extensions The accepted extensions * @param {String} key The value of the `Sec-WebSocket-Key` header * @param {Set} protocols The subprotocols * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @throws {Error} If called more than once with the same socket * @private */ completeUpgrade(extensions, key, protocols, req, socket, head, cb) { // // Destroy the socket if the client has already sent a FIN packet. // if (!socket.readable || !socket.writable) return socket.destroy(); if (socket[kWebSocket]) { throw new Error( 'server.handleUpgrade() was called more than once with the same ' + 'socket, possibly due to a misconfiguration' ); } if (this._state > RUNNING) return abortHandshake(socket, 503); const digest = createHash('sha1') .update(key + GUID) .digest('base64'); const headers = [ 'HTTP/1.1 101 Switching Protocols', 'Upgrade: websocket', 'Connection: Upgrade', `Sec-WebSocket-Accept: ${digest}` ]; const ws = new this.options.WebSocket(null, undefined, this.options); if (protocols.size) { // // Optionally call external protocol selection handler. // const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value; if (protocol) { headers.push(`Sec-WebSocket-Protocol: ${protocol}`); ws._protocol = protocol; } } if (extensions[PerMessageDeflate.extensionName]) { const params = extensions[PerMessageDeflate.extensionName].params; const value = extension.format({ [PerMessageDeflate.extensionName]: [params] }); headers.push(`Sec-WebSocket-Extensions: ${value}`); ws._extensions = extensions; } // // Allow external modification/inspection of handshake headers. // this.emit('headers', headers, req); socket.write(headers.concat('\r\n').join('\r\n')); socket.removeListener('error', socketOnError); ws.setSocket(socket, head, { allowSynchronousEvents: this.options.allowSynchronousEvents, maxPayload: this.options.maxPayload, skipUTF8Validation: this.options.skipUTF8Validation }); if (this.clients) { this.clients.add(ws); ws.on('close', () => { this.clients.delete(ws); if (this._shouldEmitClose && !this.clients.size) { process.nextTick(emitClose, this); } }); } cb(ws, req); } } module.exports = WebSocketServer; /** * Add event listeners on an `EventEmitter` using a map of * pairs. * * @param {EventEmitter} server The event emitter * @param {Object.} map The listeners to add * @return {Function} A function that will remove the added listeners when * called * @private */ function addListeners(server, map) { for (const event of Object.keys(map)) server.on(event, map[event]); return function removeListeners() { for (const event of Object.keys(map)) { server.removeListener(event, map[event]); } }; } /** * Emit a `'close'` event on an `EventEmitter`. * * @param {EventEmitter} server The event emitter * @private */ function emitClose(server) { server._state = CLOSED; server.emit('close'); } /** * Handle socket errors. * * @private */ function socketOnError() { this.destroy(); } /** * Close the connection when preconditions are not fulfilled. * * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} [message] The HTTP response body * @param {Object} [headers] Additional HTTP response headers * @private */ function abortHandshake(socket, code, message, headers) { // // The socket is writable unless the user destroyed or ended it before calling // `server.handleUpgrade()` or in the `verifyClient` function, which is a user // error. Handling this does not make much sense as the worst that can happen // is that some of the data written by the user might be discarded due to the // call to `socket.end()` below, which triggers an `'error'` event that in // turn causes the socket to be destroyed. // message = message || http.STATUS_CODES[code]; headers = { Connection: 'close', 'Content-Type': 'text/html', 'Content-Length': Buffer.byteLength(message), ...headers }; socket.once('finish', socket.destroy); socket.end( `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` + Object.keys(headers) .map((h) => `${h}: ${headers[h]}`) .join('\r\n') + '\r\n\r\n' + message ); } /** * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least * one listener for it, otherwise call `abortHandshake()`. * * @param {WebSocketServer} server The WebSocket server * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} message The HTTP response body * @param {Object} [headers] The HTTP response headers * @private */ function abortHandshakeOrEmitwsClientError( server, req, socket, code, message, headers ) { if (server.listenerCount('wsClientError')) { const err = new Error(message); Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError); server.emit('wsClientError', err, socket, req); } else { abortHandshake(socket, code, message, headers); } } beq_‰‘˜©¯±¶ÍÓÕÜ÷ýÿ#%1OUWl„ŠŒš°¶¸ÄCåëíù€“__webpack_require__…94735þ…81630ý…27910ü…55511û…51243ú…34960ù…64100ø…99881÷…15443€†buffer†source„size„maps„hash+@/* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex$", "caughtErrors": "none" }] */ const EventEmitter = __webpack_require__(94735); const http = __webpack_require__(81630); const { Duplex } = __webpack_require__(27910); const { createHash } = __webpack_require__(55511); const extension = __webpack_require__(51243); const PerMessageDeflate = __webpack_require__(34960); const subprotocol = __webpack_require__(64100); const WebSocket = __webpack_require__(99881); const { GUID, kWebSocket } = __webpack_require__(15443); const keyRegex = /^[+/0-9A-Za-z]{22}==$/; const RUNNING = 0; const CLOSING = 1; const CLOSED = 2; /** * Class representing a WebSocket server. * * @extends EventEmitter */ class WebSocketServer extends EventEmitter { /** * Create a `WebSocketServer` instance. * * @param {Object} options Configuration options * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted * multiple times in the same tick * @param {Boolean} [options.autoPong=true] Specifies whether or not to * automatically send a pong in response to a ping * @param {Number} [options.backlog=511] The maximum length of the queue of * pending connections * @param {Boolean} [options.clientTracking=true] Specifies whether or not to * track clients * @param {Function} [options.handleProtocols] A hook to handle protocols * @param {String} [options.host] The hostname where to bind the server * @param {Number} [options.maxPayload=104857600] The maximum allowed message * size * @param {Boolean} [options.noServer=false] Enable no server mode * @param {String} [options.path] Accept only connections matching this path * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable * permessage-deflate * @param {Number} [options.port] The port where to bind the server * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S * server to use * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or * not to skip UTF-8 validation for text and close messages * @param {Function} [options.verifyClient] A hook to reject connections * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket` * class to use. It must be the `WebSocket` class or class that extends it * @param {Function} [callback] A listener for the `listening` event */ constructor(options, callback) { super(); options = { allowSynchronousEvents: true, autoPong: true, maxPayload: 100 * 1024 * 1024, skipUTF8Validation: false, perMessageDeflate: false, handleProtocols: null, clientTracking: true, verifyClient: null, noServer: false, backlog: null, // use default (511 as implemented in net.js) server: null, host: null, path: null, port: null, WebSocket, ...options }; if ( (options.port == null && !options.server && !options.noServer) || (options.port != null && (options.server || options.noServer)) || (options.server && options.noServer) ) { throw new TypeError( 'One and only one of the "port", "server", or "noServer" options ' + 'must be specified' ); } if (options.port != null) { this._server = http.createServer((req, res) => { const body = http.STATUS_CODES[426]; res.writeHead(426, { 'Content-Length': body.length, 'Content-Type': 'text/plain' }); res.end(body); }); this._server.listen( options.port, options.host, options.backlog, callback ); } else if (options.server) { this._server = options.server; } if (this._server) { const emitConnection = this.emit.bind(this, 'connection'); this._removeListeners = addListeners(this._server, { listening: this.emit.bind(this, 'listening'), error: this.emit.bind(this, 'error'), upgrade: (req, socket, head) => { this.handleUpgrade(req, socket, head, emitConnection); } }); } if (options.perMessageDeflate === true) options.perMessageDeflate = {}; if (options.clientTracking) { this.clients = new Set(); this._shouldEmitClose = false; } this.options = options; this._state = RUNNING; } /** * Returns the bound address, the address family name, and port of the server * as reported by the operating system if listening on an IP socket. * If the server is listening on a pipe or UNIX domain socket, the name is * returned as a string. * * @return {(Object|String|null)} The address of the server * @public */ address() { if (this.options.noServer) { throw new Error('The server is operating in "noServer" mode'); } if (!this._server) return null; return this._server.address(); } /** * Stop the server from accepting new connections and emit the `'close'` event * when all existing connections are closed. * * @param {Function} [cb] A one-time listener for the `'close'` event * @public */ close(cb) { if (this._state === CLOSED) { if (cb) { this.once('close', () => { cb(new Error('The server is not running')); }); } process.nextTick(emitClose, this); return; } if (cb) this.once('close', cb); if (this._state === CLOSING) return; this._state = CLOSING; if (this.options.noServer || this.options.server) { if (this._server) { this._removeListeners(); this._removeListeners = this._server = null; } if (this.clients) { if (!this.clients.size) { process.nextTick(emitClose, this); } else { this._shouldEmitClose = true; } } else { process.nextTick(emitClose, this); } } else { const server = this._server; this._removeListeners(); this._removeListeners = this._server = null; // // The HTTP/S server was created internally. Close it, and rely on its // `'close'` event. // server.close(() => { emitClose(this); }); } } /** * See if a given request should be handled by this server instance. * * @param {http.IncomingMessage} req Request object to inspect * @return {Boolean} `true` if the request is valid, else `false` * @public */ shouldHandle(req) { if (this.options.path) { const index = req.url.indexOf('?'); const pathname = index !== -1 ? req.url.slice(0, index) : req.url; if (pathname !== this.options.path) return false; } return true; } /** * Handle a HTTP Upgrade request. * * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @public */ handleUpgrade(req, socket, head, cb) { socket.on('error', socketOnError); const key = req.headers['sec-websocket-key']; const upgrade = req.headers.upgrade; const version = +req.headers['sec-websocket-version']; if (req.method !== 'GET') { const message = 'Invalid HTTP method'; abortHandshakeOrEmitwsClientError(this, req, socket, 405, message); return; } if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') { const message = 'Invalid Upgrade header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (key === undefined || !keyRegex.test(key)) { const message = 'Missing or invalid Sec-WebSocket-Key header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (version !== 13 && version !== 8) { const message = 'Missing or invalid Sec-WebSocket-Version header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, { 'Sec-WebSocket-Version': '13, 8' }); return; } if (!this.shouldHandle(req)) { abortHandshake(socket, 400); return; } const secWebSocketProtocol = req.headers['sec-websocket-protocol']; let protocols = new Set(); if (secWebSocketProtocol !== undefined) { try { protocols = subprotocol.parse(secWebSocketProtocol); } catch (err) { const message = 'Invalid Sec-WebSocket-Protocol header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } const secWebSocketExtensions = req.headers['sec-websocket-extensions']; const extensions = {}; if ( this.options.perMessageDeflate && secWebSocketExtensions !== undefined ) { const perMessageDeflate = new PerMessageDeflate( this.options.perMessageDeflate, true, this.options.maxPayload ); try { const offers = extension.parse(secWebSocketExtensions); if (offers[PerMessageDeflate.extensionName]) { perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); extensions[PerMessageDeflate.extensionName] = perMessageDeflate; } } catch (err) { const message = 'Invalid or unacceptable Sec-WebSocket-Extensions header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } // // Optionally call external client verification handler. // if (this.options.verifyClient) { const info = { origin: req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`], secure: !!(req.socket.authorized || req.socket.encrypted), req }; if (this.options.verifyClient.length === 2) { this.options.verifyClient(info, (verified, code, message, headers) => { if (!verified) { return abortHandshake(socket, code || 401, message, headers); } this.completeUpgrade( extensions, key, protocols, req, socket, head, cb ); }); return; } if (!this.options.verifyClient(info)) return abortHandshake(socket, 401); } this.completeUpgrade(extensions, key, protocols, req, socket, head, cb); } /** * Upgrade the connection to WebSocket. * * @param {Object} extensions The accepted extensions * @param {String} key The value of the `Sec-WebSocket-Key` header * @param {Set} protocols The subprotocols * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @throws {Error} If called more than once with the same socket * @private */ completeUpgrade(extensions, key, protocols, req, socket, head, cb) { // // Destroy the socket if the client has already sent a FIN packet. // if (!socket.readable || !socket.writable) return socket.destroy(); if (socket[kWebSocket]) { throw new Error( 'server.handleUpgrade() was called more than once with the same ' + 'socket, possibly due to a misconfiguration' ); } if (this._state > RUNNING) return abortHandshake(socket, 503); const digest = createHash('sha1') .update(key + GUID) .digest('base64'); const headers = [ 'HTTP/1.1 101 Switching Protocols', 'Upgrade: websocket', 'Connection: Upgrade', `Sec-WebSocket-Accept: ${digest}` ]; const ws = new this.options.WebSocket(null, undefined, this.options); if (protocols.size) { // // Optionally call external protocol selection handler. // const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value; if (protocol) { headers.push(`Sec-WebSocket-Protocol: ${protocol}`); ws._protocol = protocol; } } if (extensions[PerMessageDeflate.extensionName]) { const params = extensions[PerMessageDeflate.extensionName].params; const value = extension.format({ [PerMessageDeflate.extensionName]: [params] }); headers.push(`Sec-WebSocket-Extensions: ${value}`); ws._extensions = extensions; } // // Allow external modification/inspection of handshake headers. // this.emit('headers', headers, req); socket.write(headers.concat('\r\n').join('\r\n')); socket.removeListener('error', socketOnError); ws.setSocket(socket, head, { allowSynchronousEvents: this.options.allowSynchronousEvents, maxPayload: this.options.maxPayload, skipUTF8Validation: this.options.skipUTF8Validation }); if (this.clients) { this.clients.add(ws); ws.on('close', () => { this.clients.delete(ws); if (this._shouldEmitClose && !this.clients.size) { process.nextTick(emitClose, this); } }); } cb(ws, req); } } module.exports = WebSocketServer; /** * Add event listeners on an `EventEmitter` using a map of * pairs. * * @param {EventEmitter} server The event emitter * @param {Object.} map The listeners to add * @return {Function} A function that will remove the added listeners when * called * @private */ function addListeners(server, map) { for (const event of Object.keys(map)) server.on(event, map[event]); return function removeListeners() { for (const event of Object.keys(map)) { server.removeListener(event, map[event]); } }; } /** * Emit a `'close'` event on an `EventEmitter`. * * @param {EventEmitter} server The event emitter * @private */ function emitClose(server) { server._state = CLOSED; server.emit('close'); } /** * Handle socket errors. * * @private */ function socketOnError() { this.destroy(); } /** * Close the connection when preconditions are not fulfilled. * * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} [message] The HTTP response body * @param {Object} [headers] Additional HTTP response headers * @private */ function abortHandshake(socket, code, message, headers) { // // The socket is writable unless the user destroyed or ended it before calling // `server.handleUpgrade()` or in the `verifyClient` function, which is a user // error. Handling this does not make much sense as the worst that can happen // is that some of the data written by the user might be discarded due to the // call to `socket.end()` below, which triggers an `'error'` event that in // turn causes the socket to be destroyed. // message = message || http.STATUS_CODES[code]; headers = { Connection: 'close', 'Content-Type': 'text/html', 'Content-Length': Buffer.byteLength(message), ...headers }; socket.once('finish', socket.destroy); socket.end( `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` + Object.keys(headers) .map((h) => `${h}: ${headers[h]}`) .join('\r\n') + '\r\n\r\n' + message ); } /** * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least * one listener for it, otherwise call `abortHandshake()`. * * @param {WebSocketServer} server The WebSocket server * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} message The HTTP response body * @param {Object} [headers] The HTTP response headers * @private */ function abortHandshakeOrEmitwsClientError( server, req, socket, code, message, headers ) { if (server.listenerCount('wsClientError')) { const err = new Error(message); Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError); server.emit('wsClientError', err, socket, req); } else { abortHandshake(socket, code, message, headers); } } €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource @/* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex$", "caughtErrors": "none" }] */ 'use strict'; const EventEmitter = require('events'); const http = require('http'); const { Duplex } = require('stream'); const { createHash } = require('crypto'); const extension = require('./extension'); const PerMessageDeflate = require('./permessage-deflate'); const subprotocol = require('./subprotocol'); const WebSocket = require('./websocket'); const { GUID, kWebSocket } = require('./constants'); const keyRegex = /^[+/0-9A-Za-z]{22}==$/; const RUNNING = 0; const CLOSING = 1; const CLOSED = 2; /** * Class representing a WebSocket server. * * @extends EventEmitter */ class WebSocketServer extends EventEmitter { /** * Create a `WebSocketServer` instance. * * @param {Object} options Configuration options * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted * multiple times in the same tick * @param {Boolean} [options.autoPong=true] Specifies whether or not to * automatically send a pong in response to a ping * @param {Number} [options.backlog=511] The maximum length of the queue of * pending connections * @param {Boolean} [options.clientTracking=true] Specifies whether or not to * track clients * @param {Function} [options.handleProtocols] A hook to handle protocols * @param {String} [options.host] The hostname where to bind the server * @param {Number} [options.maxPayload=104857600] The maximum allowed message * size * @param {Boolean} [options.noServer=false] Enable no server mode * @param {String} [options.path] Accept only connections matching this path * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable * permessage-deflate * @param {Number} [options.port] The port where to bind the server * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S * server to use * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or * not to skip UTF-8 validation for text and close messages * @param {Function} [options.verifyClient] A hook to reject connections * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket` * class to use. It must be the `WebSocket` class or class that extends it * @param {Function} [callback] A listener for the `listening` event */ constructor(options, callback) { super(); options = { allowSynchronousEvents: true, autoPong: true, maxPayload: 100 * 1024 * 1024, skipUTF8Validation: false, perMessageDeflate: false, handleProtocols: null, clientTracking: true, verifyClient: null, noServer: false, backlog: null, // use default (511 as implemented in net.js) server: null, host: null, path: null, port: null, WebSocket, ...options }; if ( (options.port == null && !options.server && !options.noServer) || (options.port != null && (options.server || options.noServer)) || (options.server && options.noServer) ) { throw new TypeError( 'One and only one of the "port", "server", or "noServer" options ' + 'must be specified' ); } if (options.port != null) { this._server = http.createServer((req, res) => { const body = http.STATUS_CODES[426]; res.writeHead(426, { 'Content-Length': body.length, 'Content-Type': 'text/plain' }); res.end(body); }); this._server.listen( options.port, options.host, options.backlog, callback ); } else if (options.server) { this._server = options.server; } if (this._server) { const emitConnection = this.emit.bind(this, 'connection'); this._removeListeners = addListeners(this._server, { listening: this.emit.bind(this, 'listening'), error: this.emit.bind(this, 'error'), upgrade: (req, socket, head) => { this.handleUpgrade(req, socket, head, emitConnection); } }); } if (options.perMessageDeflate === true) options.perMessageDeflate = {}; if (options.clientTracking) { this.clients = new Set(); this._shouldEmitClose = false; } this.options = options; this._state = RUNNING; } /** * Returns the bound address, the address family name, and port of the server * as reported by the operating system if listening on an IP socket. * If the server is listening on a pipe or UNIX domain socket, the name is * returned as a string. * * @return {(Object|String|null)} The address of the server * @public */ address() { if (this.options.noServer) { throw new Error('The server is operating in "noServer" mode'); } if (!this._server) return null; return this._server.address(); } /** * Stop the server from accepting new connections and emit the `'close'` event * when all existing connections are closed. * * @param {Function} [cb] A one-time listener for the `'close'` event * @public */ close(cb) { if (this._state === CLOSED) { if (cb) { this.once('close', () => { cb(new Error('The server is not running')); }); } process.nextTick(emitClose, this); return; } if (cb) this.once('close', cb); if (this._state === CLOSING) return; this._state = CLOSING; if (this.options.noServer || this.options.server) { if (this._server) { this._removeListeners(); this._removeListeners = this._server = null; } if (this.clients) { if (!this.clients.size) { process.nextTick(emitClose, this); } else { this._shouldEmitClose = true; } } else { process.nextTick(emitClose, this); } } else { const server = this._server; this._removeListeners(); this._removeListeners = this._server = null; // // The HTTP/S server was created internally. Close it, and rely on its // `'close'` event. // server.close(() => { emitClose(this); }); } } /** * See if a given request should be handled by this server instance. * * @param {http.IncomingMessage} req Request object to inspect * @return {Boolean} `true` if the request is valid, else `false` * @public */ shouldHandle(req) { if (this.options.path) { const index = req.url.indexOf('?'); const pathname = index !== -1 ? req.url.slice(0, index) : req.url; if (pathname !== this.options.path) return false; } return true; } /** * Handle a HTTP Upgrade request. * * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @public */ handleUpgrade(req, socket, head, cb) { socket.on('error', socketOnError); const key = req.headers['sec-websocket-key']; const upgrade = req.headers.upgrade; const version = +req.headers['sec-websocket-version']; if (req.method !== 'GET') { const message = 'Invalid HTTP method'; abortHandshakeOrEmitwsClientError(this, req, socket, 405, message); return; } if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') { const message = 'Invalid Upgrade header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (key === undefined || !keyRegex.test(key)) { const message = 'Missing or invalid Sec-WebSocket-Key header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (version !== 13 && version !== 8) { const message = 'Missing or invalid Sec-WebSocket-Version header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, { 'Sec-WebSocket-Version': '13, 8' }); return; } if (!this.shouldHandle(req)) { abortHandshake(socket, 400); return; } const secWebSocketProtocol = req.headers['sec-websocket-protocol']; let protocols = new Set(); if (secWebSocketProtocol !== undefined) { try { protocols = subprotocol.parse(secWebSocketProtocol); } catch (err) { const message = 'Invalid Sec-WebSocket-Protocol header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } const secWebSocketExtensions = req.headers['sec-websocket-extensions']; const extensions = {}; if ( this.options.perMessageDeflate && secWebSocketExtensions !== undefined ) { const perMessageDeflate = new PerMessageDeflate( this.options.perMessageDeflate, true, this.options.maxPayload ); try { const offers = extension.parse(secWebSocketExtensions); if (offers[PerMessageDeflate.extensionName]) { perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); extensions[PerMessageDeflate.extensionName] = perMessageDeflate; } } catch (err) { const message = 'Invalid or unacceptable Sec-WebSocket-Extensions header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } // // Optionally call external client verification handler. // if (this.options.verifyClient) { const info = { origin: req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`], secure: !!(req.socket.authorized || req.socket.encrypted), req }; if (this.options.verifyClient.length === 2) { this.options.verifyClient(info, (verified, code, message, headers) => { if (!verified) { return abortHandshake(socket, code || 401, message, headers); } this.completeUpgrade( extensions, key, protocols, req, socket, head, cb ); }); return; } if (!this.options.verifyClient(info)) return abortHandshake(socket, 401); } this.completeUpgrade(extensions, key, protocols, req, socket, head, cb); } /** * Upgrade the connection to WebSocket. * * @param {Object} extensions The accepted extensions * @param {String} key The value of the `Sec-WebSocket-Key` header * @param {Set} protocols The subprotocols * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @throws {Error} If called more than once with the same socket * @private */ completeUpgrade(extensions, key, protocols, req, socket, head, cb) { // // Destroy the socket if the client has already sent a FIN packet. // if (!socket.readable || !socket.writable) return socket.destroy(); if (socket[kWebSocket]) { throw new Error( 'server.handleUpgrade() was called more than once with the same ' + 'socket, possibly due to a misconfiguration' ); } if (this._state > RUNNING) return abortHandshake(socket, 503); const digest = createHash('sha1') .update(key + GUID) .digest('base64'); const headers = [ 'HTTP/1.1 101 Switching Protocols', 'Upgrade: websocket', 'Connection: Upgrade', `Sec-WebSocket-Accept: ${digest}` ]; const ws = new this.options.WebSocket(null, undefined, this.options); if (protocols.size) { // // Optionally call external protocol selection handler. // const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value; if (protocol) { headers.push(`Sec-WebSocket-Protocol: ${protocol}`); ws._protocol = protocol; } } if (extensions[PerMessageDeflate.extensionName]) { const params = extensions[PerMessageDeflate.extensionName].params; const value = extension.format({ [PerMessageDeflate.extensionName]: [params] }); headers.push(`Sec-WebSocket-Extensions: ${value}`); ws._extensions = extensions; } // // Allow external modification/inspection of handshake headers. // this.emit('headers', headers, req); socket.write(headers.concat('\r\n').join('\r\n')); socket.removeListener('error', socketOnError); ws.setSocket(socket, head, { allowSynchronousEvents: this.options.allowSynchronousEvents, maxPayload: this.options.maxPayload, skipUTF8Validation: this.options.skipUTF8Validation }); if (this.clients) { this.clients.add(ws); ws.on('close', () => { this.clients.delete(ws); if (this._shouldEmitClose && !this.clients.size) { process.nextTick(emitClose, this); } }); } cb(ws, req); } } module.exports = WebSocketServer; /** * Add event listeners on an `EventEmitter` using a map of * pairs. * * @param {EventEmitter} server The event emitter * @param {Object.} map The listeners to add * @return {Function} A function that will remove the added listeners when * called * @private */ function addListeners(server, map) { for (const event of Object.keys(map)) server.on(event, map[event]); return function removeListeners() { for (const event of Object.keys(map)) { server.removeListener(event, map[event]); } }; } /** * Emit a `'close'` event on an `EventEmitter`. * * @param {EventEmitter} server The event emitter * @private */ function emitClose(server) { server._state = CLOSED; server.emit('close'); } /** * Handle socket errors. * * @private */ function socketOnError() { this.destroy(); } /** * Close the connection when preconditions are not fulfilled. * * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} [message] The HTTP response body * @param {Object} [headers] Additional HTTP response headers * @private */ function abortHandshake(socket, code, message, headers) { // // The socket is writable unless the user destroyed or ended it before calling // `server.handleUpgrade()` or in the `verifyClient` function, which is a user // error. Handling this does not make much sense as the worst that can happen // is that some of the data written by the user might be discarded due to the // call to `socket.end()` below, which triggers an `'error'` event that in // turn causes the socket to be destroyed. // message = message || http.STATUS_CODES[code]; headers = { Connection: 'close', 'Content-Type': 'text/html', 'Content-Length': Buffer.byteLength(message), ...headers }; socket.once('finish', socket.destroy); socket.end( `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` + Object.keys(headers) .map((h) => `${h}: ${headers[h]}`) .join('\r\n') + '\r\n\r\n' + message ); } /** * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least * one listener for it, otherwise call `abortHandshake()`. * * @param {WebSocketServer} server The WebSocket server * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} message The HTTP response body * @param {Object} [headers] The HTTP response headers * @private */ function abortHandshakeOrEmitwsClientError( server, req, socket, code, message, headers ) { if (server.listenerCount('wsClientError')) { const err = new Error(message); Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError); server.emit('wsClientError', err, socket, req); } else { abortHandshake(socket, code, message, headers); } } õ101113undefined137143__webpack_require__undefined14515294735undefined169175__webpack_require__undefined17718281630undefined205211__webpack_require__undefined21322027910undefined247253__webpack_require__undefined25526255511undefined285291__webpack_require__undefined29330551243undefined335341__webpack_require__undefined34336434960undefined388394__webpack_require__undefined39641064100undefined432438__webpack_require__undefined44045299881undefined485491__webpack_require__undefined49350515443undefined /***/ }) Ûýÿÿˆ@/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex$", "caughtErrors": "none" }] */ const EventEmitter = __webpack_require__(94735); const http = __webpack_require__(81630); const { Duplex } = __webpack_require__(27910); const { createHash } = __webpack_require__(55511); const extension = __webpack_require__(51243); const PerMessageDeflate = __webpack_require__(34960); const subprotocol = __webpack_require__(64100); const WebSocket = __webpack_require__(99881); const { GUID, kWebSocket } = __webpack_require__(15443); const keyRegex = /^[+/0-9A-Za-z]{22}==$/; const RUNNING = 0; const CLOSING = 1; const CLOSED = 2; /** * Class representing a WebSocket server. * * @extends EventEmitter */ class WebSocketServer extends EventEmitter { /** * Create a `WebSocketServer` instance. * * @param {Object} options Configuration options * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted * multiple times in the same tick * @param {Boolean} [options.autoPong=true] Specifies whether or not to * automatically send a pong in response to a ping * @param {Number} [options.backlog=511] The maximum length of the queue of * pending connections * @param {Boolean} [options.clientTracking=true] Specifies whether or not to * track clients * @param {Function} [options.handleProtocols] A hook to handle protocols * @param {String} [options.host] The hostname where to bind the server * @param {Number} [options.maxPayload=104857600] The maximum allowed message * size * @param {Boolean} [options.noServer=false] Enable no server mode * @param {String} [options.path] Accept only connections matching this path * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable * permessage-deflate * @param {Number} [options.port] The port where to bind the server * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S * server to use * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or * not to skip UTF-8 validation for text and close messages * @param {Function} [options.verifyClient] A hook to reject connections * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket` * class to use. It must be the `WebSocket` class or class that extends it * @param {Function} [callback] A listener for the `listening` event */ constructor(options, callback) { super(); options = { allowSynchronousEvents: true, autoPong: true, maxPayload: 100 * 1024 * 1024, skipUTF8Validation: false, perMessageDeflate: false, handleProtocols: null, clientTracking: true, verifyClient: null, noServer: false, backlog: null, // use default (511 as implemented in net.js) server: null, host: null, path: null, port: null, WebSocket, ...options }; if ( (options.port == null && !options.server && !options.noServer) || (options.port != null && (options.server || options.noServer)) || (options.server && options.noServer) ) { throw new TypeError( 'One and only one of the "port", "server", or "noServer" options ' + 'must be specified' ); } if (options.port != null) { this._server = http.createServer((req, res) => { const body = http.STATUS_CODES[426]; res.writeHead(426, { 'Content-Length': body.length, 'Content-Type': 'text/plain' }); res.end(body); }); this._server.listen( options.port, options.host, options.backlog, callback ); } else if (options.server) { this._server = options.server; } if (this._server) { const emitConnection = this.emit.bind(this, 'connection'); this._removeListeners = addListeners(this._server, { listening: this.emit.bind(this, 'listening'), error: this.emit.bind(this, 'error'), upgrade: (req, socket, head) => { this.handleUpgrade(req, socket, head, emitConnection); } }); } if (options.perMessageDeflate === true) options.perMessageDeflate = {}; if (options.clientTracking) { this.clients = new Set(); this._shouldEmitClose = false; } this.options = options; this._state = RUNNING; } /** * Returns the bound address, the address family name, and port of the server * as reported by the operating system if listening on an IP socket. * If the server is listening on a pipe or UNIX domain socket, the name is * returned as a string. * * @return {(Object|String|null)} The address of the server * @public */ address() { if (this.options.noServer) { throw new Error('The server is operating in "noServer" mode'); } if (!this._server) return null; return this._server.address(); } /** * Stop the server from accepting new connections and emit the `'close'` event * when all existing connections are closed. * * @param {Function} [cb] A one-time listener for the `'close'` event * @public */ close(cb) { if (this._state === CLOSED) { if (cb) { this.once('close', () => { cb(new Error('The server is not running')); }); } process.nextTick(emitClose, this); return; } if (cb) this.once('close', cb); if (this._state === CLOSING) return; this._state = CLOSING; if (this.options.noServer || this.options.server) { if (this._server) { this._removeListeners(); this._removeListeners = this._server = null; } if (this.clients) { if (!this.clients.size) { process.nextTick(emitClose, this); } else { this._shouldEmitClose = true; } } else { process.nextTick(emitClose, this); } } else { const server = this._server; this._removeListeners(); this._removeListeners = this._server = null; // // The HTTP/S server was created internally. Close it, and rely on its // `'close'` event. // server.close(() => { emitClose(this); }); } } /** * See if a given request should be handled by this server instance. * * @param {http.IncomingMessage} req Request object to inspect * @return {Boolean} `true` if the request is valid, else `false` * @public */ shouldHandle(req) { if (this.options.path) { const index = req.url.indexOf('?'); const pathname = index !== -1 ? req.url.slice(0, index) : req.url; if (pathname !== this.options.path) return false; } return true; } /** * Handle a HTTP Upgrade request. * * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @public */ handleUpgrade(req, socket, head, cb) { socket.on('error', socketOnError); const key = req.headers['sec-websocket-key']; const upgrade = req.headers.upgrade; const version = +req.headers['sec-websocket-version']; if (req.method !== 'GET') { const message = 'Invalid HTTP method'; abortHandshakeOrEmitwsClientError(this, req, socket, 405, message); return; } if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') { const message = 'Invalid Upgrade header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (key === undefined || !keyRegex.test(key)) { const message = 'Missing or invalid Sec-WebSocket-Key header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (version !== 13 && version !== 8) { const message = 'Missing or invalid Sec-WebSocket-Version header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, { 'Sec-WebSocket-Version': '13, 8' }); return; } if (!this.shouldHandle(req)) { abortHandshake(socket, 400); return; } const secWebSocketProtocol = req.headers['sec-websocket-protocol']; let protocols = new Set(); if (secWebSocketProtocol !== undefined) { try { protocols = subprotocol.parse(secWebSocketProtocol); } catch (err) { const message = 'Invalid Sec-WebSocket-Protocol header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } const secWebSocketExtensions = req.headers['sec-websocket-extensions']; const extensions = {}; if ( this.options.perMessageDeflate && secWebSocketExtensions !== undefined ) { const perMessageDeflate = new PerMessageDeflate( this.options.perMessageDeflate, true, this.options.maxPayload ); try { const offers = extension.parse(secWebSocketExtensions); if (offers[PerMessageDeflate.extensionName]) { perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); extensions[PerMessageDeflate.extensionName] = perMessageDeflate; } } catch (err) { const message = 'Invalid or unacceptable Sec-WebSocket-Extensions header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } // // Optionally call external client verification handler. // if (this.options.verifyClient) { const info = { origin: req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`], secure: !!(req.socket.authorized || req.socket.encrypted), req }; if (this.options.verifyClient.length === 2) { this.options.verifyClient(info, (verified, code, message, headers) => { if (!verified) { return abortHandshake(socket, code || 401, message, headers); } this.completeUpgrade( extensions, key, protocols, req, socket, head, cb ); }); return; } if (!this.options.verifyClient(info)) return abortHandshake(socket, 401); } this.completeUpgrade(extensions, key, protocols, req, socket, head, cb); } /** * Upgrade the connection to WebSocket. * * @param {Object} extensions The accepted extensions * @param {String} key The value of the `Sec-WebSocket-Key` header * @param {Set} protocols The subprotocols * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @throws {Error} If called more than once with the same socket * @private */ completeUpgrade(extensions, key, protocols, req, socket, head, cb) { // // Destroy the socket if the client has already sent a FIN packet. // if (!socket.readable || !socket.writable) return socket.destroy(); if (socket[kWebSocket]) { throw new Error( 'server.handleUpgrade() was called more than once with the same ' + 'socket, possibly due to a misconfiguration' ); } if (this._state > RUNNING) return abortHandshake(socket, 503); const digest = createHash('sha1') .update(key + GUID) .digest('base64'); const headers = [ 'HTTP/1.1 101 Switching Protocols', 'Upgrade: websocket', 'Connection: Upgrade', `Sec-WebSocket-Accept: ${digest}` ]; const ws = new this.options.WebSocket(null, undefined, this.options); if (protocols.size) { // // Optionally call external protocol selection handler. // const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value; if (protocol) { headers.push(`Sec-WebSocket-Protocol: ${protocol}`); ws._protocol = protocol; } } if (extensions[PerMessageDeflate.extensionName]) { const params = extensions[PerMessageDeflate.extensionName].params; const value = extension.format({ [PerMessageDeflate.extensionName]: [params] }); headers.push(`Sec-WebSocket-Extensions: ${value}`); ws._extensions = extensions; } // // Allow external modification/inspection of handshake headers. // this.emit('headers', headers, req); socket.write(headers.concat('\r\n').join('\r\n')); socket.removeListener('error', socketOnError); ws.setSocket(socket, head, { allowSynchronousEvents: this.options.allowSynchronousEvents, maxPayload: this.options.maxPayload, skipUTF8Validation: this.options.skipUTF8Validation }); if (this.clients) { this.clients.add(ws); ws.on('close', () => { this.clients.delete(ws); if (this._shouldEmitClose && !this.clients.size) { process.nextTick(emitClose, this); } }); } cb(ws, req); } } module.exports = WebSocketServer; /** * Add event listeners on an `EventEmitter` using a map of * pairs. * * @param {EventEmitter} server The event emitter * @param {Object.} map The listeners to add * @return {Function} A function that will remove the added listeners when * called * @private */ function addListeners(server, map) { for (const event of Object.keys(map)) server.on(event, map[event]); return function removeListeners() { for (const event of Object.keys(map)) { server.removeListener(event, map[event]); } }; } /** * Emit a `'close'` event on an `EventEmitter`. * * @param {EventEmitter} server The event emitter * @private */ function emitClose(server) { server._state = CLOSED; server.emit('close'); } /** * Handle socket errors. * * @private */ function socketOnError() { this.destroy(); } /** * Close the connection when preconditions are not fulfilled. * * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} [message] The HTTP response body * @param {Object} [headers] Additional HTTP response headers * @private */ function abortHandshake(socket, code, message, headers) { // // The socket is writable unless the user destroyed or ended it before calling // `server.handleUpgrade()` or in the `verifyClient` function, which is a user // error. Handling this does not make much sense as the worst that can happen // is that some of the data written by the user might be discarded due to the // call to `socket.end()` below, which triggers an `'error'` event that in // turn causes the socket to be destroyed. // message = message || http.STATUS_CODES[code]; headers = { Connection: 'close', 'Content-Type': 'text/html', 'Content-Length': Buffer.byteLength(message), ...headers }; socket.once('finish', socket.destroy); socket.end( `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` + Object.keys(headers) .map((h) => `${h}: ${headers[h]}`) .join('\r\n') + '\r\n\r\n' + message ); } /** * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least * one listener for it, otherwise call `abortHandshake()`. * * @param {WebSocketServer} server The WebSocket server * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} message The HTTP response body * @param {Object} [headers] The HTTP response headers * @private */ function abortHandshakeOrEmitwsClientError( server, req, socket, code, message, headers ) { if (server.listenerCount('wsClientError')) { const err = new Error(message); Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError); server.emit('wsClientError', err, socket, req); } else { abortHandshake(socket, code, message, headers); } } /***/ }) Üýÿÿßýÿÿ àýÿÿMþÿÿâýÿÿ @/* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex$", "caughtErrors": "none" }] */ 'use strict'; const EventEmitter = require('events'); const http = require('http'); const { Duplex } = require('stream'); const { createHash } = require('crypto'); const extension = require('./extension'); const PerMessageDeflate = require('./permessage-deflate'); const subprotocol = require('./subprotocol'); const WebSocket = require('./websocket'); const { GUID, kWebSocket } = require('./constants'); const keyRegex = /^[+/0-9A-Za-z]{22}==$/; const RUNNING = 0; const CLOSING = 1; const CLOSED = 2; /** * Class representing a WebSocket server. * * @extends EventEmitter */ class WebSocketServer extends EventEmitter { /** * Create a `WebSocketServer` instance. * * @param {Object} options Configuration options * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted * multiple times in the same tick * @param {Boolean} [options.autoPong=true] Specifies whether or not to * automatically send a pong in response to a ping * @param {Number} [options.backlog=511] The maximum length of the queue of * pending connections * @param {Boolean} [options.clientTracking=true] Specifies whether or not to * track clients * @param {Function} [options.handleProtocols] A hook to handle protocols * @param {String} [options.host] The hostname where to bind the server * @param {Number} [options.maxPayload=104857600] The maximum allowed message * size * @param {Boolean} [options.noServer=false] Enable no server mode * @param {String} [options.path] Accept only connections matching this path * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable * permessage-deflate * @param {Number} [options.port] The port where to bind the server * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S * server to use * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or * not to skip UTF-8 validation for text and close messages * @param {Function} [options.verifyClient] A hook to reject connections * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket` * class to use. It must be the `WebSocket` class or class that extends it * @param {Function} [callback] A listener for the `listening` event */ constructor(options, callback) { super(); options = { allowSynchronousEvents: true, autoPong: true, maxPayload: 100 * 1024 * 1024, skipUTF8Validation: false, perMessageDeflate: false, handleProtocols: null, clientTracking: true, verifyClient: null, noServer: false, backlog: null, // use default (511 as implemented in net.js) server: null, host: null, path: null, port: null, WebSocket, ...options }; if ( (options.port == null && !options.server && !options.noServer) || (options.port != null && (options.server || options.noServer)) || (options.server && options.noServer) ) { throw new TypeError( 'One and only one of the "port", "server", or "noServer" options ' + 'must be specified' ); } if (options.port != null) { this._server = http.createServer((req, res) => { const body = http.STATUS_CODES[426]; res.writeHead(426, { 'Content-Length': body.length, 'Content-Type': 'text/plain' }); res.end(body); }); this._server.listen( options.port, options.host, options.backlog, callback ); } else if (options.server) { this._server = options.server; } if (this._server) { const emitConnection = this.emit.bind(this, 'connection'); this._removeListeners = addListeners(this._server, { listening: this.emit.bind(this, 'listening'), error: this.emit.bind(this, 'error'), upgrade: (req, socket, head) => { this.handleUpgrade(req, socket, head, emitConnection); } }); } if (options.perMessageDeflate === true) options.perMessageDeflate = {}; if (options.clientTracking) { this.clients = new Set(); this._shouldEmitClose = false; } this.options = options; this._state = RUNNING; } /** * Returns the bound address, the address family name, and port of the server * as reported by the operating system if listening on an IP socket. * If the server is listening on a pipe or UNIX domain socket, the name is * returned as a string. * * @return {(Object|String|null)} The address of the server * @public */ address() { if (this.options.noServer) { throw new Error('The server is operating in "noServer" mode'); } if (!this._server) return null; return this._server.address(); } /** * Stop the server from accepting new connections and emit the `'close'` event * when all existing connections are closed. * * @param {Function} [cb] A one-time listener for the `'close'` event * @public */ close(cb) { if (this._state === CLOSED) { if (cb) { this.once('close', () => { cb(new Error('The server is not running')); }); } process.nextTick(emitClose, this); return; } if (cb) this.once('close', cb); if (this._state === CLOSING) return; this._state = CLOSING; if (this.options.noServer || this.options.server) { if (this._server) { this._removeListeners(); this._removeListeners = this._server = null; } if (this.clients) { if (!this.clients.size) { process.nextTick(emitClose, this); } else { this._shouldEmitClose = true; } } else { process.nextTick(emitClose, this); } } else { const server = this._server; this._removeListeners(); this._removeListeners = this._server = null; // // The HTTP/S server was created internally. Close it, and rely on its // `'close'` event. // server.close(() => { emitClose(this); }); } } /** * See if a given request should be handled by this server instance. * * @param {http.IncomingMessage} req Request object to inspect * @return {Boolean} `true` if the request is valid, else `false` * @public */ shouldHandle(req) { if (this.options.path) { const index = req.url.indexOf('?'); const pathname = index !== -1 ? req.url.slice(0, index) : req.url; if (pathname !== this.options.path) return false; } return true; } /** * Handle a HTTP Upgrade request. * * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @public */ handleUpgrade(req, socket, head, cb) { socket.on('error', socketOnError); const key = req.headers['sec-websocket-key']; const upgrade = req.headers.upgrade; const version = +req.headers['sec-websocket-version']; if (req.method !== 'GET') { const message = 'Invalid HTTP method'; abortHandshakeOrEmitwsClientError(this, req, socket, 405, message); return; } if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') { const message = 'Invalid Upgrade header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (key === undefined || !keyRegex.test(key)) { const message = 'Missing or invalid Sec-WebSocket-Key header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } if (version !== 13 && version !== 8) { const message = 'Missing or invalid Sec-WebSocket-Version header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, { 'Sec-WebSocket-Version': '13, 8' }); return; } if (!this.shouldHandle(req)) { abortHandshake(socket, 400); return; } const secWebSocketProtocol = req.headers['sec-websocket-protocol']; let protocols = new Set(); if (secWebSocketProtocol !== undefined) { try { protocols = subprotocol.parse(secWebSocketProtocol); } catch (err) { const message = 'Invalid Sec-WebSocket-Protocol header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } const secWebSocketExtensions = req.headers['sec-websocket-extensions']; const extensions = {}; if ( this.options.perMessageDeflate && secWebSocketExtensions !== undefined ) { const perMessageDeflate = new PerMessageDeflate( this.options.perMessageDeflate, true, this.options.maxPayload ); try { const offers = extension.parse(secWebSocketExtensions); if (offers[PerMessageDeflate.extensionName]) { perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); extensions[PerMessageDeflate.extensionName] = perMessageDeflate; } } catch (err) { const message = 'Invalid or unacceptable Sec-WebSocket-Extensions header'; abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); return; } } // // Optionally call external client verification handler. // if (this.options.verifyClient) { const info = { origin: req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`], secure: !!(req.socket.authorized || req.socket.encrypted), req }; if (this.options.verifyClient.length === 2) { this.options.verifyClient(info, (verified, code, message, headers) => { if (!verified) { return abortHandshake(socket, code || 401, message, headers); } this.completeUpgrade( extensions, key, protocols, req, socket, head, cb ); }); return; } if (!this.options.verifyClient(info)) return abortHandshake(socket, 401); } this.completeUpgrade(extensions, key, protocols, req, socket, head, cb); } /** * Upgrade the connection to WebSocket. * * @param {Object} extensions The accepted extensions * @param {String} key The value of the `Sec-WebSocket-Key` header * @param {Set} protocols The subprotocols * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The network socket between the server and client * @param {Buffer} head The first packet of the upgraded stream * @param {Function} cb Callback * @throws {Error} If called more than once with the same socket * @private */ completeUpgrade(extensions, key, protocols, req, socket, head, cb) { // // Destroy the socket if the client has already sent a FIN packet. // if (!socket.readable || !socket.writable) return socket.destroy(); if (socket[kWebSocket]) { throw new Error( 'server.handleUpgrade() was called more than once with the same ' + 'socket, possibly due to a misconfiguration' ); } if (this._state > RUNNING) return abortHandshake(socket, 503); const digest = createHash('sha1') .update(key + GUID) .digest('base64'); const headers = [ 'HTTP/1.1 101 Switching Protocols', 'Upgrade: websocket', 'Connection: Upgrade', `Sec-WebSocket-Accept: ${digest}` ]; const ws = new this.options.WebSocket(null, undefined, this.options); if (protocols.size) { // // Optionally call external protocol selection handler. // const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value; if (protocol) { headers.push(`Sec-WebSocket-Protocol: ${protocol}`); ws._protocol = protocol; } } if (extensions[PerMessageDeflate.extensionName]) { const params = extensions[PerMessageDeflate.extensionName].params; const value = extension.format({ [PerMessageDeflate.extensionName]: [params] }); headers.push(`Sec-WebSocket-Extensions: ${value}`); ws._extensions = extensions; } // // Allow external modification/inspection of handshake headers. // this.emit('headers', headers, req); socket.write(headers.concat('\r\n').join('\r\n')); socket.removeListener('error', socketOnError); ws.setSocket(socket, head, { allowSynchronousEvents: this.options.allowSynchronousEvents, maxPayload: this.options.maxPayload, skipUTF8Validation: this.options.skipUTF8Validation }); if (this.clients) { this.clients.add(ws); ws.on('close', () => { this.clients.delete(ws); if (this._shouldEmitClose && !this.clients.size) { process.nextTick(emitClose, this); } }); } cb(ws, req); } } module.exports = WebSocketServer; /** * Add event listeners on an `EventEmitter` using a map of * pairs. * * @param {EventEmitter} server The event emitter * @param {Object.} map The listeners to add * @return {Function} A function that will remove the added listeners when * called * @private */ function addListeners(server, map) { for (const event of Object.keys(map)) server.on(event, map[event]); return function removeListeners() { for (const event of Object.keys(map)) { server.removeListener(event, map[event]); } }; } /** * Emit a `'close'` event on an `EventEmitter`. * * @param {EventEmitter} server The event emitter * @private */ function emitClose(server) { server._state = CLOSED; server.emit('close'); } /** * Handle socket errors. * * @private */ function socketOnError() { this.destroy(); } /** * Close the connection when preconditions are not fulfilled. * * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} [message] The HTTP response body * @param {Object} [headers] Additional HTTP response headers * @private */ function abortHandshake(socket, code, message, headers) { // // The socket is writable unless the user destroyed or ended it before calling // `server.handleUpgrade()` or in the `verifyClient` function, which is a user // error. Handling this does not make much sense as the worst that can happen // is that some of the data written by the user might be discarded due to the // call to `socket.end()` below, which triggers an `'error'` event that in // turn causes the socket to be destroyed. // message = message || http.STATUS_CODES[code]; headers = { Connection: 'close', 'Content-Type': 'text/html', 'Content-Length': Buffer.byteLength(message), ...headers }; socket.once('finish', socket.destroy); socket.end( `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` + Object.keys(headers) .map((h) => `${h}: ${headers[h]}`) .join('\r\n') + '\r\n\r\n' + message ); } /** * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least * one listener for it, otherwise call `abortHandshake()`. * * @param {WebSocketServer} server The WebSocket server * @param {http.IncomingMessage} req The request object * @param {Duplex} socket The socket of the upgrade request * @param {Number} code The HTTP response status code * @param {String} message The HTTP response body * @param {Object} [headers] The HTTP response headers * @private */ function abortHandshakeOrEmitwsClientError( server, req, socket, code, message, headers ) { if (server.listenerCount('wsClientError')) { const err = new Error(message); Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError); server.emit('wsClientError', err, socket, req); } else { abortHandshake(socket, code, message, headers); } } õ101113undefined137143__webpack_require__undefined14515294735undefined169175__webpack_require__undefined17718281630undefined205211__webpack_require__undefined21322027910undefined247253__webpack_require__undefined25526255511undefined285291__webpack_require__undefined29330551243undefined335341__webpack_require__undefined34336434960undefined388394__webpack_require__undefined39641064100undefined432438__webpack_require__undefined44045299881undefined485491__webpack_require__undefined49350515443undefinedãýÿÿäýÿÿ, /***/ 21680:  «webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ª«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceo// This regex contains the bots that we need to do a blocking render for and can't safely stream the response // due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent. // Note: The pattern [\w-]+-Google captures all Google crawlers with "-Google" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google) // as well as crawlers starting with "Google-" (e.g., Google-PageRenderer, Google-InspectionTool) "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", { enumerable: true, get: function() { return HTML_LIMITED_BOT_UA_RE; } }); const HTML_LIMITED_BOT_UA_RE = /[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map I DXX[“ðð€®Object.defineProperty(exports, "__esModule", (‚))ºObject.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", (þ€†buffer†source„size„maps„hashf// This regex contains the bots that we need to do a blocking render for and can't safely stream the response // due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent. // Note: The pattern [\w-]+-Google captures all Google crawlers with "-Google" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google) // as well as crawlers starting with "Google-" (e.g., Google-PageRenderer, Google-InspectionTool) Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", ({ enumerable: true, get: function() { return HTML_LIMITED_BOT_UA_RE; } })); const HTML_LIMITED_BOT_UA_RE = /[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceo// This regex contains the bots that we need to do a blocking render for and can't safely stream the response // due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent. // Note: The pattern [\w-]+-Google captures all Google crawlers with "-Google" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google) // as well as crawlers starting with "Google-" (e.g., Google-PageRenderer, Google-InspectionTool) "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", { enumerable: true, get: function() { return HTML_LIMITED_BOT_UA_RE; } }); const HTML_LIMITED_BOT_UA_RE = /[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map ·522534undefined536580Object.defineProperty(exports, "__esModule", (undefined600600))undefined603659Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", (undefined752752))undefined /***/ }) Ñýÿÿ®/***/ ((__unused_webpack_module, exports) => { "use strict"; // This regex contains the bots that we need to do a blocking render for and can't safely stream the response // due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent. // Note: The pattern [\w-]+-Google captures all Google crawlers with "-Google" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google) // as well as crawlers starting with "Google-" (e.g., Google-PageRenderer, Google-InspectionTool) Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", ({ enumerable: true, get: function() { return HTML_LIMITED_BOT_UA_RE; } })); const HTML_LIMITED_BOT_UA_RE = /[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map /***/ }) ÒýÿÿÕýÿÿ ÖýÿÿþÿÿØýÿÿo// This regex contains the bots that we need to do a blocking render for and can't safely stream the response // due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent. // Note: The pattern [\w-]+-Google captures all Google crawlers with "-Google" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google) // as well as crawlers starting with "Google-" (e.g., Google-PageRenderer, Google-InspectionTool) "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", { enumerable: true, get: function() { return HTML_LIMITED_BOT_UA_RE; } }); const HTML_LIMITED_BOT_UA_RE = /[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map ·522534undefined536580Object.defineProperty(exports, "__esModule", (undefined600600))undefined603659Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", (undefined752752))undefinedÙýÿÿÚýÿÿ, /***/ 22345:  \«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource>/***/ ((__unused_webpack_module, exports) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource Ì «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceé"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { assign: null, searchParamsToUrlQuery: null, urlQueryToSearchParams: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { assign: function() { return assign; }, searchParamsToUrlQuery: function() { return searchParamsToUrlQuery; }, urlQueryToSearchParams: function() { return urlQueryToSearchParams; } }); function searchParamsToUrlQuery(searchParams) { const query = {}; for (const [key, value] of searchParams.entries()){ const existing = query[key]; if (typeof existing === 'undefined') { query[key] = value; } else if (Array.isArray(existing)) { existing.push(value); } else { query[key] = [ existing, value ]; } } return query; } function stringifyUrlQueryParam(param) { if (typeof param === 'string') { return param; } if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') { return String(param); } else { return ''; } } function urlQueryToSearchParams(query) { const searchParams = new URLSearchParams(); for (const [key, value] of Object.entries(query)){ if (Array.isArray(value)) { for (const item of value){ searchParams.append(key, stringifyUrlQueryParam(item)); } } else { searchParams.set(key, stringifyUrlQueryParam(value)); } } return searchParams; } function assign(target) { for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ searchParamsList[_key - 1] = arguments[_key]; } for (const searchParams of searchParamsList){ for (const key of searchParams.keys()){ target.delete(key); } for (const [key, value] of searchParams.entries()){ target.append(key, value); } } return target; } //# sourceMappingURL=querystring.js.map e :NNW@¿€®Object.defineProperty(exports, "__esModule", (‚))0€†buffer†source„size„maps„hashv Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { assign: function() { return assign; }, searchParamsToUrlQuery: function() { return searchParamsToUrlQuery; }, urlQueryToSearchParams: function() { return urlQueryToSearchParams; } }); function searchParamsToUrlQuery(searchParams) { const query = {}; for (const [key, value] of searchParams.entries()){ const existing = query[key]; if (typeof existing === 'undefined') { query[key] = value; } else if (Array.isArray(existing)) { existing.push(value); } else { query[key] = [ existing, value ]; } } return query; } function stringifyUrlQueryParam(param) { if (typeof param === 'string') { return param; } if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') { return String(param); } else { return ''; } } function urlQueryToSearchParams(query) { const searchParams = new URLSearchParams(); for (const [key, value] of Object.entries(query)){ if (Array.isArray(value)) { for (const item of value){ searchParams.append(key, stringifyUrlQueryParam(item)); } } else { searchParams.set(key, stringifyUrlQueryParam(value)); } } return searchParams; } function assign(target) { for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ searchParamsList[_key - 1] = arguments[_key]; } for (const searchParams of searchParamsList){ for (const key of searchParams.keys()){ target.delete(key); } for (const [key, value] of searchParams.entries()){ target.append(key, value); } } return target; } //# sourceMappingURL=querystring.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceé"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { assign: null, searchParamsToUrlQuery: null, urlQueryToSearchParams: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { assign: function() { return assign; }, searchParamsToUrlQuery: function() { return searchParamsToUrlQuery; }, urlQueryToSearchParams: function() { return urlQueryToSearchParams; } }); function searchParamsToUrlQuery(searchParams) { const query = {}; for (const [key, value] of searchParams.entries()){ const existing = query[key]; if (typeof existing === 'undefined') { query[key] = value; } else if (Array.isArray(existing)) { existing.push(value); } else { query[key] = [ existing, value ]; } } return query; } function stringifyUrlQueryParam(param) { if (typeof param === 'string') { return param; } if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') { return String(param); } else { return ''; } } function urlQueryToSearchParams(query) { const searchParams = new URLSearchParams(); for (const [key, value] of Object.entries(query)){ if (Array.isArray(value)) { for (const item of value){ searchParams.append(key, stringifyUrlQueryParam(item)); } } else { searchParams.set(key, stringifyUrlQueryParam(value)); } } return searchParams; } function assign(target) { for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ searchParamsList[_key - 1] = arguments[_key]; } for (const searchParams of searchParamsList){ for (const key of searchParams.keys()){ target.delete(key); } for (const [key, value] of searchParams.entries()){ target.append(key, value); } } return target; } //# sourceMappingURL=querystring.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871910undefined /***/ }) Çýÿÿ¾/***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { assign: function() { return assign; }, searchParamsToUrlQuery: function() { return searchParamsToUrlQuery; }, urlQueryToSearchParams: function() { return urlQueryToSearchParams; } }); function searchParamsToUrlQuery(searchParams) { const query = {}; for (const [key, value] of searchParams.entries()){ const existing = query[key]; if (typeof existing === 'undefined') { query[key] = value; } else if (Array.isArray(existing)) { existing.push(value); } else { query[key] = [ existing, value ]; } } return query; } function stringifyUrlQueryParam(param) { if (typeof param === 'string') { return param; } if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') { return String(param); } else { return ''; } } function urlQueryToSearchParams(query) { const searchParams = new URLSearchParams(); for (const [key, value] of Object.entries(query)){ if (Array.isArray(value)) { for (const item of value){ searchParams.append(key, stringifyUrlQueryParam(item)); } } else { searchParams.set(key, stringifyUrlQueryParam(value)); } } return searchParams; } function assign(target) { for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ searchParamsList[_key - 1] = arguments[_key]; } for (const searchParams of searchParamsList){ for (const key of searchParams.keys()){ target.delete(key); } for (const [key, value] of searchParams.entries()){ target.append(key, value); } } return target; } //# sourceMappingURL=querystring.js.map /***/ }) ÈýÿÿËýÿÿ ÌýÿÿþÿÿÎýÿÿé"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { assign: null, searchParamsToUrlQuery: null, urlQueryToSearchParams: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { assign: function() { return assign; }, searchParamsToUrlQuery: function() { return searchParamsToUrlQuery; }, urlQueryToSearchParams: function() { return urlQueryToSearchParams; } }); function searchParamsToUrlQuery(searchParams) { const query = {}; for (const [key, value] of searchParams.entries()){ const existing = query[key]; if (typeof existing === 'undefined') { query[key] = value; } else if (Array.isArray(existing)) { existing.push(value); } else { query[key] = [ existing, value ]; } } return query; } function stringifyUrlQueryParam(param) { if (typeof param === 'string') { return param; } if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') { return String(param); } else { return ''; } } function urlQueryToSearchParams(query) { const searchParams = new URLSearchParams(); for (const [key, value] of Object.entries(query)){ if (Array.isArray(value)) { for (const item of value){ searchParams.append(key, stringifyUrlQueryParam(item)); } } else { searchParams.set(key, stringifyUrlQueryParam(value)); } } return searchParams; } function assign(target) { for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ searchParamsList[_key - 1] = arguments[_key]; } for (const searchParams of searchParamsList){ for (const key of searchParams.keys()){ target.delete(key); } for (const [key, value] of searchParams.entries()){ target.append(key, value); } } return target; } //# sourceMappingURL=querystring.js.map e012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871910undefinedÏýÿÿÐýÿÿ, /***/ 22841:  $ «webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceS/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource “«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourcevar __webpack_unused_export__; «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSourceî"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "stripFlightHeaders", { enumerable: true, get: function() { return stripFlightHeaders; } }); const _approuterheaders = require("../../client/components/app-router-headers"); function stripFlightHeaders(headers) { for (const header of _approuterheaders.FLIGHT_HEADERS){ delete headers[header]; } } //# sourceMappingURL=strip-flight-headers.js.map e :NNQF…ÞÞû.€__webpack_unused_export__ = ()¥Object.defineProperty(exports, "d", (‚))“__webpack_require__…32967€†buffer†source„size„maps„hashÆvar __webpack_unused_export__; __webpack_unused_export__ = ({ value: true }); Object.defineProperty(exports, "d", ({ enumerable: true, get: function() { return stripFlightHeaders; } })); const _approuterheaders = __webpack_require__(32967); function stripFlightHeaders(headers) { for (const header of _approuterheaders.FLIGHT_HEADERS){ delete headers[header]; } } //# sourceMappingURL=strip-flight-headers.js.map €”{"finalSource":true}ƒmap‹bufferedMap ConcatSourceRawSourcevar __webpack_unused_export__; ReplaceSourceRawSourceî"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "stripFlightHeaders", { enumerable: true, get: function() { return stripFlightHeaders; } }); const _approuterheaders = require("../../client/components/app-router-headers"); function stripFlightHeaders(headers) { for (const header of _approuterheaders.FLIGHT_HEADERS){ delete headers[header]; } } //# sourceMappingURL=strip-flight-headers.js.map¾012undefined1458__webpack_unused_export__ = (undefined7878)undefined81133Object.defineProperty(exports, "d", (undefined222222))undefined251257__webpack_require__undefined25930232967undefined /***/ }) ½ýÿÿ#/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; __webpack_unused_export__ = ({ value: true }); Object.defineProperty(exports, "d", ({ enumerable: true, get: function() { return stripFlightHeaders; } })); const _approuterheaders = __webpack_require__(32967); function stripFlightHeaders(headers) { for (const header of _approuterheaders.FLIGHT_HEADERS){ delete headers[header]; } } //# sourceMappingURL=strip-flight-headers.js.map /***/ }) ¾ýÿÿÁýÿÿ  ÂýÿÿÜýÿÿÂýÿÿvar __webpack_unused_export__; Ãýÿÿî"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "stripFlightHeaders", { enumerable: true, get: function() { return stripFlightHeaders; } }); const _approuterheaders = require("../../client/components/app-router-headers"); function stripFlightHeaders(headers) { for (const header of _approuterheaders.FLIGHT_HEADERS){ delete headers[header]; } } //# sourceMappingURL=strip-flight-headers.js.map¾012undefined1458__webpack_unused_export__ = (undefined7878)undefined81133Object.defineProperty(exports, "d", (undefined222222))undefined251257__webpack_require__undefined25930232967undefinedÄýÿÿÅýÿÿ, /***/ 23197:  Ыwebpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource  «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource0/* __next_internal_client_entry_do_not_use__ cjs */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return RootErrorBoundary; } }); const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); const _jsxruntime = require("react/jsx-runtime"); const _react = /*#__PURE__*/ _interop_require_default._(require("react")); const _gracefuldegradeboundary = /*#__PURE__*/ _interop_require_default._(require("./graceful-degrade-boundary")); const _errorboundary = require("../error-boundary"); const _isbot = require("../../../shared/lib/router/utils/is-bot"); const isBotUserAgent = "undefined" !== 'undefined' && (0, _isbot.isBot)(window.navigator.userAgent); function RootErrorBoundary(param) { let { children, errorComponent, errorStyles, errorScripts } = param; if (isBotUserAgent) { // Preserve existing DOM/HTML for bots to avoid replacing content with an error UI // and to keep the original SSR output intact. return /*#__PURE__*/ (0, _jsxruntime.jsx)(_gracefuldegradeboundary.default, { children: children }); } return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, { errorComponent: errorComponent, errorStyles: errorStyles, errorScripts: errorScripts, children: children }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=root-error-boundary.js.map d5ACo_ƒƒ†¯+13[sy{ÉÏÑ×&,.Jfln€“™›ÃÞøAý)€®Object.defineProperty(exports, "__esModule", (‚))«Object.defineProperty(exports, "default", (þ“__webpack_require__…15915þ…78157ý…31768ü‚44û…92810ú…87058† false0€†buffer†source„size„maps„hash­/* __next_internal_client_entry_do_not_use__ cjs */ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "default", ({ enumerable: true, get: function() { return RootErrorBoundary; } })); const _interop_require_default = __webpack_require__(15915); const _jsxruntime = __webpack_require__(78157); const _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(31768)); const _gracefuldegradeboundary = /*#__PURE__*/ _interop_require_default._(__webpack_require__(44)); const _errorboundary = __webpack_require__(92810); const _isbot = __webpack_require__(87058); const isBotUserAgent = false && 0; function RootErrorBoundary(param) { let { children, errorComponent, errorStyles, errorScripts } = param; if (isBotUserAgent) { // Preserve existing DOM/HTML for bots to avoid replacing content with an error UI // and to keep the original SSR output intact. return /*#__PURE__*/ (0, _jsxruntime.jsx)(_gracefuldegradeboundary.default, { children: children }); } return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, { errorComponent: errorComponent, errorStyles: errorStyles, errorScripts: errorScripts, children: children }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=root-error-boundary.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource0/* __next_internal_client_entry_do_not_use__ cjs */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return RootErrorBoundary; } }); const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); const _jsxruntime = require("react/jsx-runtime"); const _react = /*#__PURE__*/ _interop_require_default._(require("react")); const _gracefuldegradeboundary = /*#__PURE__*/ _interop_require_default._(require("./graceful-degrade-boundary")); const _errorboundary = require("../error-boundary"); const _isbot = require("../../../shared/lib/router/utils/is-bot"); const isBotUserAgent = "undefined" !== 'undefined' && (0, _isbot.isBot)(window.navigator.userAgent); function RootErrorBoundary(param) { let { children, errorComponent, errorStyles, errorScripts } = param; if (isBotUserAgent) { // Preserve existing DOM/HTML for bots to avoid replacing content with an error UI // and to keep the original SSR output intact. return /*#__PURE__*/ (0, _jsxruntime.jsx)(_gracefuldegradeboundary.default, { children: children }); } return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, { errorComponent: errorComponent, errorStyles: errorStyles, errorScripts: errorScripts, children: children }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=root-error-boundary.js.map  5365undefined67111Object.defineProperty(exports, "__esModule", (undefined131131))undefined134175Object.defineProperty(exports, "default", (undefined263263))undefined299305__webpack_require__undefined30734715915undefined371377__webpack_require__undefined37939778157undefined457463__webpack_require__undefined46547131768undefined550556__webpack_require__undefined55858644undefined614620__webpack_require__undefined62264092810undefined659665__webpack_require__undefined66770787058undefined734760 falseundefined7658090undefined /***/ }) ²ýÿÿù/***/ ((module, exports, __webpack_require__) => { "use strict"; /* __next_internal_client_entry_do_not_use__ cjs */ Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "default", ({ enumerable: true, get: function() { return RootErrorBoundary; } })); const _interop_require_default = __webpack_require__(15915); const _jsxruntime = __webpack_require__(78157); const _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(31768)); const _gracefuldegradeboundary = /*#__PURE__*/ _interop_require_default._(__webpack_require__(44)); const _errorboundary = __webpack_require__(92810); const _isbot = __webpack_require__(87058); const isBotUserAgent = false && 0; function RootErrorBoundary(param) { let { children, errorComponent, errorStyles, errorScripts } = param; if (isBotUserAgent) { // Preserve existing DOM/HTML for bots to avoid replacing content with an error UI // and to keep the original SSR output intact. return /*#__PURE__*/ (0, _jsxruntime.jsx)(_gracefuldegradeboundary.default, { children: children }); } return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, { errorComponent: errorComponent, errorStyles: errorStyles, errorScripts: errorScripts, children: children }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=root-error-boundary.js.map /***/ }) ³ýÿÿ¶ýÿÿ ·ýÿÿ¸ýÿÿ¹ýÿÿ0/* __next_internal_client_entry_do_not_use__ cjs */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return RootErrorBoundary; } }); const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); const _jsxruntime = require("react/jsx-runtime"); const _react = /*#__PURE__*/ _interop_require_default._(require("react")); const _gracefuldegradeboundary = /*#__PURE__*/ _interop_require_default._(require("./graceful-degrade-boundary")); const _errorboundary = require("../error-boundary"); const _isbot = require("../../../shared/lib/router/utils/is-bot"); const isBotUserAgent = "undefined" !== 'undefined' && (0, _isbot.isBot)(window.navigator.userAgent); function RootErrorBoundary(param) { let { children, errorComponent, errorStyles, errorScripts } = param; if (isBotUserAgent) { // Preserve existing DOM/HTML for bots to avoid replacing content with an error UI // and to keep the original SSR output intact. return /*#__PURE__*/ (0, _jsxruntime.jsx)(_gracefuldegradeboundary.default, { children: children }); } return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, { errorComponent: errorComponent, errorStyles: errorStyles, errorScripts: errorScripts, children: children }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=root-error-boundary.js.map  5365undefined67111Object.defineProperty(exports, "__esModule", (undefined131131))undefined134175Object.defineProperty(exports, "default", (undefined263263))undefined299305__webpack_require__undefined30734715915undefined371377__webpack_require__undefined37939778157undefined457463__webpack_require__undefined46547131768undefined550556__webpack_require__undefined55858644undefined614620__webpack_require__undefined62264092810undefined659665__webpack_require__undefined66770787058undefined734760 falseundefined7658090undefinedºýÿÿ»ýÿÿ, /***/ 24381:  "«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource | «webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceâ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "restoreReducer", { enumerable: true, get: function() { return restoreReducer; } }); const _createhreffromurl = require("../create-href-from-url"); const _computechangedpath = require("../compute-changed-path"); const _pprnavigations = require("../ppr-navigations"); function restoreReducer(state, action) { const { url, tree } = action; const href = (0, _createhreffromurl.createHrefFromUrl)(url); // This action is used to restore the router state from the history state. // However, it's possible that the history state no longer contains the `FlightRouterState`. // We will copy over the internal state on pushState/replaceState events, but if a history entry // occurred before hydration, or if the user navigated to a hash using a regular anchor link, // the history state will not contain the `FlightRouterState`. // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state. const treeToRestore = tree || state.tree; const oldCache = state.cache; const newCache = process.env.__NEXT_PPR ? // prevents an unnecessary flash back to PPR state during a // back/forward navigation. (0, _pprnavigations.updateCacheNodeOnPopstateRestoration)(oldCache, treeToRestore) : oldCache; var _extractPathFromFlightRouterState; return { // Set canonical url canonicalUrl: href, pushRef: { pendingPush: false, mpaNavigation: false, // Ensures that the custom history state that was set is preserved when applying this update. preserveCustomHistoryState: true }, focusAndScrollRef: state.focusAndScrollRef, cache: newCache, prefetchCache: state.prefetchCache, // Restore provided tree tree: treeToRestore, nextUrl: (_extractPathFromFlightRouterState = (0, _computechangedpath.extractPathFromFlightRouterState)(treeToRestore)) != null ? _extractPathFromFlightRouterState : url.pathname }; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=restore-reducer.js.map g :NNQRÖÖôúü4:<Tpvx‹¨½!r€®Object.defineProperty(exports, "__esModule", (‚))²Object.defineProperty(exports, "restoreReducer", (þ“__webpack_require__…75497þ…62176ý…82582† false0€†buffer†source„size„maps„hashe Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "restoreReducer", ({ enumerable: true, get: function() { return restoreReducer; } })); const _createhreffromurl = __webpack_require__(75497); const _computechangedpath = __webpack_require__(62176); const _pprnavigations = __webpack_require__(82582); function restoreReducer(state, action) { const { url, tree } = action; const href = (0, _createhreffromurl.createHrefFromUrl)(url); // This action is used to restore the router state from the history state. // However, it's possible that the history state no longer contains the `FlightRouterState`. // We will copy over the internal state on pushState/replaceState events, but if a history entry // occurred before hydration, or if the user navigated to a hash using a regular anchor link, // the history state will not contain the `FlightRouterState`. // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state. const treeToRestore = tree || state.tree; const oldCache = state.cache; const newCache = false ? // prevents an unnecessary flash back to PPR state during a // back/forward navigation. 0 : oldCache; var _extractPathFromFlightRouterState; return { // Set canonical url canonicalUrl: href, pushRef: { pendingPush: false, mpaNavigation: false, // Ensures that the custom history state that was set is preserved when applying this update. preserveCustomHistoryState: true }, focusAndScrollRef: state.focusAndScrollRef, cache: newCache, prefetchCache: state.prefetchCache, // Restore provided tree tree: treeToRestore, nextUrl: (_extractPathFromFlightRouterState = (0, _computechangedpath.extractPathFromFlightRouterState)(treeToRestore)) != null ? _extractPathFromFlightRouterState : url.pathname }; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=restore-reducer.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSourceâ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "restoreReducer", { enumerable: true, get: function() { return restoreReducer; } }); const _createhreffromurl = require("../create-href-from-url"); const _computechangedpath = require("../compute-changed-path"); const _pprnavigations = require("../ppr-navigations"); function restoreReducer(state, action) { const { url, tree } = action; const href = (0, _createhreffromurl.createHrefFromUrl)(url); // This action is used to restore the router state from the history state. // However, it's possible that the history state no longer contains the `FlightRouterState`. // We will copy over the internal state on pushState/replaceState events, but if a history entry // occurred before hydration, or if the user navigated to a hash using a regular anchor link, // the history state will not contain the `FlightRouterState`. // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state. const treeToRestore = tree || state.tree; const oldCache = state.cache; const newCache = process.env.__NEXT_PPR ? // prevents an unnecessary flash back to PPR state during a // back/forward navigation. (0, _pprnavigations.updateCacheNodeOnPopstateRestoration)(oldCache, treeToRestore) : oldCache; var _extractPathFromFlightRouterState; return { // Set canonical url canonicalUrl: href, pushRef: { pendingPush: false, mpaNavigation: false, // Ensures that the custom history state that was set is preserved when applying this update. preserveCustomHistoryState: true }, focusAndScrollRef: state.focusAndScrollRef, cache: newCache, prefetchCache: state.prefetchCache, // Restore provided tree tree: treeToRestore, nextUrl: (_extractPathFromFlightRouterState = (0, _computechangedpath.extractPathFromFlightRouterState)(treeToRestore)) != null ? _extractPathFromFlightRouterState : url.pathname }; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=restore-reducer.js.map r012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81129Object.defineProperty(exports, "restoreReducer", (undefined214214))undefined244250__webpack_require__undefined25227675497undefined308314__webpack_require__undefined31634062176undefined368374__webpack_require__undefined37639582582undefined11921213 falseundefined131313940undefined /***/ }) ¨ýÿÿ± /***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "restoreReducer", ({ enumerable: true, get: function() { return restoreReducer; } })); const _createhreffromurl = __webpack_require__(75497); const _computechangedpath = __webpack_require__(62176); const _pprnavigations = __webpack_require__(82582); function restoreReducer(state, action) { const { url, tree } = action; const href = (0, _createhreffromurl.createHrefFromUrl)(url); // This action is used to restore the router state from the history state. // However, it's possible that the history state no longer contains the `FlightRouterState`. // We will copy over the internal state on pushState/replaceState events, but if a history entry // occurred before hydration, or if the user navigated to a hash using a regular anchor link, // the history state will not contain the `FlightRouterState`. // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state. const treeToRestore = tree || state.tree; const oldCache = state.cache; const newCache = false ? // prevents an unnecessary flash back to PPR state during a // back/forward navigation. 0 : oldCache; var _extractPathFromFlightRouterState; return { // Set canonical url canonicalUrl: href, pushRef: { pendingPush: false, mpaNavigation: false, // Ensures that the custom history state that was set is preserved when applying this update. preserveCustomHistoryState: true }, focusAndScrollRef: state.focusAndScrollRef, cache: newCache, prefetchCache: state.prefetchCache, // Restore provided tree tree: treeToRestore, nextUrl: (_extractPathFromFlightRouterState = (0, _computechangedpath.extractPathFromFlightRouterState)(treeToRestore)) != null ? _extractPathFromFlightRouterState : url.pathname }; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=restore-reducer.js.map /***/ }) ©ýÿÿ¬ýÿÿ ­ýÿÿ®ýÿÿ¯ýÿÿâ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "restoreReducer", { enumerable: true, get: function() { return restoreReducer; } }); const _createhreffromurl = require("../create-href-from-url"); const _computechangedpath = require("../compute-changed-path"); const _pprnavigations = require("../ppr-navigations"); function restoreReducer(state, action) { const { url, tree } = action; const href = (0, _createhreffromurl.createHrefFromUrl)(url); // This action is used to restore the router state from the history state. // However, it's possible that the history state no longer contains the `FlightRouterState`. // We will copy over the internal state on pushState/replaceState events, but if a history entry // occurred before hydration, or if the user navigated to a hash using a regular anchor link, // the history state will not contain the `FlightRouterState`. // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state. const treeToRestore = tree || state.tree; const oldCache = state.cache; const newCache = process.env.__NEXT_PPR ? // prevents an unnecessary flash back to PPR state during a // back/forward navigation. (0, _pprnavigations.updateCacheNodeOnPopstateRestoration)(oldCache, treeToRestore) : oldCache; var _extractPathFromFlightRouterState; return { // Set canonical url canonicalUrl: href, pushRef: { pendingPush: false, mpaNavigation: false, // Ensures that the custom history state that was set is preserved when applying this update. preserveCustomHistoryState: true }, focusAndScrollRef: state.focusAndScrollRef, cache: newCache, prefetchCache: state.prefetchCache, // Restore provided tree tree: treeToRestore, nextUrl: (_extractPathFromFlightRouterState = (0, _computechangedpath.extractPathFromFlightRouterState)(treeToRestore)) != null ? _extractPathFromFlightRouterState : url.pathname }; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=restore-reducer.js.map r012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined81129Object.defineProperty(exports, "restoreReducer", (undefined214214))undefined244250__webpack_require__undefined25227675497undefined308314__webpack_require__undefined31634062176undefined368374__webpack_require__undefined37639582582undefined11921213 falseundefined131313940undefined°ýÿÿ±ýÿÿ, /***/ 24584:  ‚«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource 9«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource*"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { REDIRECT_ERROR_CODE: null, RedirectType: null, isRedirectError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { REDIRECT_ERROR_CODE: function() { return REDIRECT_ERROR_CODE; }, RedirectType: function() { return RedirectType; }, isRedirectError: function() { return isRedirectError; } }); const _redirectstatuscode = require("./redirect-status-code"); const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'; var RedirectType = /*#__PURE__*/ function(RedirectType) { RedirectType["push"] = "push"; RedirectType["replace"] = "replace"; return RedirectType; }({}); function isRedirectError(error) { if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') { return false; } const digest = error.digest.split(';'); const [errorCode, type] = digest; const destination = digest.slice(2, -2).join(';'); const status = digest.at(-2); const statusCode = Number(status); return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect-error.js.map e :NNWD»gmo†€®Object.defineProperty(exports, "__esModule", (‚))0“__webpack_require__…39818€†buffer†source„size„maps„hash´ Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { REDIRECT_ERROR_CODE: function() { return REDIRECT_ERROR_CODE; }, RedirectType: function() { return RedirectType; }, isRedirectError: function() { return isRedirectError; } }); const _redirectstatuscode = __webpack_require__(39818); const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'; var RedirectType = /*#__PURE__*/ function(RedirectType) { RedirectType["push"] = "push"; RedirectType["replace"] = "replace"; return RedirectType; }({}); function isRedirectError(error) { if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') { return false; } const digest = error.digest.split(';'); const [errorCode, type] = digest; const destination = digest.slice(2, -2).join(';'); const status = digest.at(-2); const statusCode = Number(status); return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect-error.js.map €”{"finalSource":true}ƒmap‹bufferedMap ReplaceSourceRawSource*"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { REDIRECT_ERROR_CODE: null, RedirectType: null, isRedirectError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { REDIRECT_ERROR_CODE: function() { return REDIRECT_ERROR_CODE; }, RedirectType: function() { return RedirectType; }, isRedirectError: function() { return isRedirectError; } }); const _redirectstatuscode = require("./redirect-status-code"); const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'; var RedirectType = /*#__PURE__*/ function(RedirectType) { RedirectType["push"] = "push"; RedirectType["replace"] = "replace"; return RedirectType; }({}); function isRedirectError(error) { if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') { return false; } const digest = error.digest.split(';'); const [errorCode, type] = digest; const destination = digest.slice(2, -2).join(';'); const status = digest.at(-2); const statusCode = Number(status); return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect-error.js.map ›012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871870undefined615621__webpack_require__undefined62364639818undefined /***/ }) žýÿÿ/***/ ((module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); 0 && (0); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { REDIRECT_ERROR_CODE: function() { return REDIRECT_ERROR_CODE; }, RedirectType: function() { return RedirectType; }, isRedirectError: function() { return isRedirectError; } }); const _redirectstatuscode = __webpack_require__(39818); const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'; var RedirectType = /*#__PURE__*/ function(RedirectType) { RedirectType["push"] = "push"; RedirectType["replace"] = "replace"; return RedirectType; }({}); function isRedirectError(error) { if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') { return false; } const digest = error.digest.split(';'); const [errorCode, type] = digest; const destination = digest.slice(2, -2).join(';'); const status = digest.at(-2); const statusCode = Number(status); return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect-error.js.map /***/ }) Ÿýÿÿ¢ýÿÿ £ýÿÿ¤ýÿÿ¥ýÿÿ*"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { REDIRECT_ERROR_CODE: null, RedirectType: null, isRedirectError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { REDIRECT_ERROR_CODE: function() { return REDIRECT_ERROR_CODE; }, RedirectType: function() { return RedirectType; }, isRedirectError: function() { return isRedirectError; } }); const _redirectstatuscode = require("./redirect-status-code"); const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'; var RedirectType = /*#__PURE__*/ function(RedirectType) { RedirectType["push"] = "push"; RedirectType["replace"] = "replace"; return RedirectType; }({}); function isRedirectError(error) { if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') { return false; } const digest = error.digest.split(';'); const [errorCode, type] = digest; const destination = digest.slice(2, -2).join(';'); const status = digest.at(-2); const statusCode = Number(status); return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect-error.js.map ›012undefined1458Object.defineProperty(exports, "__esModule", (undefined7878))undefined871870undefined615621__webpack_require__undefined62364639818undefined¦ýÿÿ§ýÿÿ, /***/ 24653:  A©«webpack/lib/util/registerExternalSerializerœwebpack-sources/ConcatSource€«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSourceB/***/ ((module, exports, __webpack_require__) => { "use strict"; «webpack/lib/util/registerExternalSerializerœwebpack-sources/CachedSource ý8«webpack/lib/util/registerExternalSerializerwebpack-sources/ReplaceSource«webpack/lib/util/registerExternalSerializer™webpack-sources/RawSource7/* __next_internal_client_entry_do_not_use__ cjs */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { default: null, handleClientScriptLoad: null, initScriptLoader: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { default: function() { return _default; }, handleClientScriptLoad: function() { return handleClientScriptLoad; }, initScriptLoader: function() { return initScriptLoader; } }); const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); const _jsxruntime = require("react/jsx-runtime"); const _reactdom = /*#__PURE__*/ _interop_require_default._(require("react-dom")); const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react")); const _headmanagercontextsharedruntime = require("../shared/lib/head-manager-context.shared-runtime"); const _setattributesfromprops = require("./set-attributes-from-props"); const _requestidlecallback = require("./request-idle-callback"); const ScriptCache = new Map(); const LoadCache = new Set(); const insertStylesheets = (stylesheets)=>{ // Case 1: Styles for afterInteractive/lazyOnload with appDir injected via handleClientScriptLoad // // Using ReactDOM.preinit to feature detect appDir and inject styles // Stylesheets might have already been loaded if initialized with Script component // Re-inject styles here to handle scripts loaded via handleClientScriptLoad // ReactDOM.preinit handles dedup and ensures the styles are loaded only once if (_reactdom.default.preinit) { stylesheets.forEach((stylesheet)=>{ _reactdom.default.preinit(stylesheet, { as: 'style' }); }); return; } // Case 2: Styles for afterInteractive/lazyOnload with pages injected via handleClientScriptLoad // // We use this function to load styles when appdir is not detected // TODO: Use React float APIs to load styles once available for pages dir if ("undefined" !== 'undefined') { let head = document.head; stylesheets.forEach((stylesheet)=>{ let link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = stylesheet; head.appendChild(link); }); } }; const loadScript = (props)=>{ const { src, id, onLoad = ()=>{}, onReady = null, dangerouslySetInnerHTML, children = '', strategy = 'afterInteractive', onError, stylesheets } = props; const cacheKey = id || src; // Script has already loaded if (cacheKey && LoadCache.has(cacheKey)) { return; } // Contents of this script are already loading/loaded if (ScriptCache.has(src)) { LoadCache.add(cacheKey); // It is possible that multiple `next/script` components all have same "src", but has different "onLoad" // This is to make sure the same remote script will only load once, but "onLoad" are executed in order ScriptCache.get(src).then(onLoad, onError); return; } /** Execute after the script first loaded */ const afterLoad = ()=>{ // Run onReady for the first time after load event if (onReady) { onReady(); } // add cacheKey to LoadCache when load successfully LoadCache.add(cacheKey); }; const el = document.createElement('script'); const loadPromise = new Promise((resolve, reject)=>{ el.addEventListener('load', function(e) { resolve(); if (onLoad) { onLoad.call(this, e); } afterLoad(); }); el.addEventListener('error', function(e) { reject(e); }); }).catch(function(e) { if (onError) { onError(e); } }); if (dangerouslySetInnerHTML) { // Casting since lib.dom.d.ts doesn't have TrustedHTML yet. el.innerHTML = dangerouslySetInnerHTML.__html || ''; afterLoad(); } else if (children) { el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : ''; afterLoad(); } else if (src) { el.src = src; // do not add cacheKey into LoadCache for remote script here // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above) ScriptCache.set(src, loadPromise); } (0, _setattributesfromprops.setAttributesFromProps)(el, props); if (strategy === 'worker') { el.setAttribute('type', 'text/partytown'); } el.setAttribute('data-nscript', strategy); // Load styles associated with this script if (stylesheets) { insertStylesheets(stylesheets); } document.body.appendChild(el); }; function handleClientScriptLoad(props) { const { strategy = 'afterInteractive' } = props; if (strategy === 'lazyOnload') { window.addEventListener('load', ()=>{ (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props)); }); } else { loadScript(props); } } function loadLazyScript(props) { if (document.readyState === 'complete') { (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props)); } else { window.addEventListener('load', ()=>{ (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props)); }); } } function addBeforeInteractiveToCache() { const scripts = [ ...document.querySelectorAll('[data-nscript="beforeInteractive"]'), ...document.querySelectorAll('[data-nscript="beforePageRender"]') ]; scripts.forEach((script)=>{ const cacheKey = script.id || script.getAttribute('src'); LoadCache.add(cacheKey); }); } function initScriptLoader(scriptLoaderItems) { scriptLoaderItems.forEach(handleClientScriptLoad); addBeforeInteractiveToCache(); } /** * Load a third-party scripts in an optimized way. * * Read more: [Next.js Docs: `next/script`](https://nextjs.org/docs/app/api-reference/components/script) */ function Script(props) { const { id, src = '', onLoad = ()=>{}, onReady = null, strategy = 'afterInteractive', onError, stylesheets, ...restProps } = props; // Context is available only during SSR let { updateScripts, scripts, getIsSsr, appDir, nonce } = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext); // if a nonce is explicitly passed to the script tag, favor that over the automatic handling nonce = restProps.nonce || nonce; /** * - First mount: * 1. The useEffect for onReady executes * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache) * onReady is skipped, set hasOnReadyEffectCalled.current to true * 3. The useEffect for loadScript executes * 4. hasLoadScriptEffectCalled.current is false, loadScript executes * Once the script is loaded, the onLoad and onReady will be called by then * [If strict mode is enabled / is wrapped in component] * 5. The useEffect for onReady executes again * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped * 7. The useEffect for loadScript executes again * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped * * - Second mount: * 1. The useEffect for onReady executes * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache) * onReady is called, set hasOnReadyEffectCalled.current to true * 3. The useEffect for loadScript executes * 4. The script is already loaded, loadScript bails out * [If strict mode is enabled / is wrapped in component] * 5. The useEffect for onReady executes again * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped * 7. The useEffect for loadScript executes again * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped */ const hasOnReadyEffectCalled = (0, _react.useRef)(false); (0, _react.useEffect)(()=>{ const cacheKey = id || src; if (!hasOnReadyEffectCalled.current) { // Run onReady if script has loaded before but component is re-mounted if (onReady && cacheKey && LoadCache.has(cacheKey)) { onReady(); } hasOnReadyEffectCalled.current = true; } }, [ onReady, id, src ]); const hasLoadScriptEffectCalled = (0, _react.useRef)(false); (0, _react.useEffect)(()=>{ if (!hasLoadScriptEffectCalled.current) { if (strategy === 'afterInteractive') { loadScript(props); } else if (strategy === 'lazyOnload') { loadLazyScript(props); } hasLoadScriptEffectCalled.current = true; } }, [ props, strategy ]); if (strategy === 'beforeInteractive' || strategy === 'worker') { if (updateScripts) { scripts[strategy] = (scripts[strategy] || []).concat([ { id, src, onLoad, onReady, onError, ...restProps, nonce } ]); updateScripts(scripts); } else if (getIsSsr && getIsSsr()) { // Script has already loaded during SSR LoadCache.add(id || src); } else if (getIsSsr && !getIsSsr()) { loadScript({ ...props, nonce }); } } // For the app directory, we need React Float to preload these scripts. if (appDir) { // Injecting stylesheets here handles beforeInteractive and worker scripts correctly // For other strategies injecting here ensures correct stylesheet order // ReactDOM.preinit handles loading the styles in the correct order, // also ensures the stylesheet is loaded only once and in a consistent manner // // Case 1: Styles for beforeInteractive/worker with appDir - handled here // Case 2: Styles for beforeInteractive/worker with pages dir - Not handled yet // Case 3: Styles for afterInteractive/lazyOnload with appDir - handled here // Case 4: Styles for afterInteractive/lazyOnload with pages dir - handled in insertStylesheets function if (stylesheets) { stylesheets.forEach((styleSrc)=>{ _reactdom.default.preinit(styleSrc, { as: 'style' }); }); } // Before interactive scripts need to be loaded by Next.js' runtime instead // of native