Spaces:
Paused
Paused
Upload folder using huggingface_hub (part 7)
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/action-utils.js +90 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +343 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/app-render-render-utils.js +37 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/app-render.js +0 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/async-local-storage.js +75 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/cache-signal.js +152 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +38 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-component-tree.js +796 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-error-handler.js +217 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +76 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/csrf-protection.js +74 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/dynamic-rendering.js +569 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/encryption-utils.js +198 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/flight-render-result.js +27 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +48 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-layer-assets.js +70 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-segment-param.js +42 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +42 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/interop-default.js +17 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +91 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/parse-loader-tree.js +29 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/postponed-state.js +138 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/prospective-render-utils.js +56 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/render-css-resource.js +53 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/segment-explorer-path.js +84 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/server-inserted-html.js +41 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/types.js +66 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/use-flight-response.js +152 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +179 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
- .next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +135 -0
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/action-utils.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
createServerModuleMap: null,
|
| 7 |
+
selectWorkerForForwarding: null
|
| 8 |
+
});
|
| 9 |
+
function _export(target, all) {
|
| 10 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: all[name]
|
| 13 |
+
});
|
| 14 |
+
}
|
| 15 |
+
_export(exports, {
|
| 16 |
+
createServerModuleMap: function() {
|
| 17 |
+
return createServerModuleMap;
|
| 18 |
+
},
|
| 19 |
+
selectWorkerForForwarding: function() {
|
| 20 |
+
return selectWorkerForForwarding;
|
| 21 |
+
}
|
| 22 |
+
});
|
| 23 |
+
const _apppaths = require("../../shared/lib/router/utils/app-paths");
|
| 24 |
+
const _pathhasprefix = require("../../shared/lib/router/utils/path-has-prefix");
|
| 25 |
+
const _removepathprefix = require("../../shared/lib/router/utils/remove-path-prefix");
|
| 26 |
+
const _workasyncstorageexternal = require("./work-async-storage.external");
|
| 27 |
+
function createServerModuleMap({ serverActionsManifest }) {
|
| 28 |
+
return new Proxy({}, {
|
| 29 |
+
get: (_, id)=>{
|
| 30 |
+
var _serverActionsManifest__id, _serverActionsManifest_;
|
| 31 |
+
const workers = (_serverActionsManifest_ = serverActionsManifest[process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node']) == null ? void 0 : (_serverActionsManifest__id = _serverActionsManifest_[id]) == null ? void 0 : _serverActionsManifest__id.workers;
|
| 32 |
+
if (!workers) {
|
| 33 |
+
return undefined;
|
| 34 |
+
}
|
| 35 |
+
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
| 36 |
+
let workerEntry;
|
| 37 |
+
if (workStore) {
|
| 38 |
+
workerEntry = workers[normalizeWorkerPageName(workStore.page)];
|
| 39 |
+
} else {
|
| 40 |
+
// If there's no work store defined, we can assume that a server
|
| 41 |
+
// module map is needed during module evaluation, e.g. to create a
|
| 42 |
+
// server action using a higher-order function. Therefore it should be
|
| 43 |
+
// safe to return any entry from the manifest that matches the action
|
| 44 |
+
// ID. They all refer to the same module ID, which must also exist in
|
| 45 |
+
// the current page bundle. TODO: This is currently not guaranteed in
|
| 46 |
+
// Turbopack, and needs to be fixed.
|
| 47 |
+
workerEntry = Object.values(workers).at(0);
|
| 48 |
+
}
|
| 49 |
+
if (!workerEntry) {
|
| 50 |
+
return undefined;
|
| 51 |
+
}
|
| 52 |
+
const { moduleId, async } = workerEntry;
|
| 53 |
+
return {
|
| 54 |
+
id: moduleId,
|
| 55 |
+
name: id,
|
| 56 |
+
chunks: [],
|
| 57 |
+
async
|
| 58 |
+
};
|
| 59 |
+
}
|
| 60 |
+
});
|
| 61 |
+
}
|
| 62 |
+
function selectWorkerForForwarding(actionId, pageName, serverActionsManifest) {
|
| 63 |
+
var _serverActionsManifest__actionId;
|
| 64 |
+
const workers = (_serverActionsManifest__actionId = serverActionsManifest[process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node'][actionId]) == null ? void 0 : _serverActionsManifest__actionId.workers;
|
| 65 |
+
const workerName = normalizeWorkerPageName(pageName);
|
| 66 |
+
// no workers, nothing to forward to
|
| 67 |
+
if (!workers) return;
|
| 68 |
+
// if there is a worker for this page, no need to forward it.
|
| 69 |
+
if (workers[workerName]) {
|
| 70 |
+
return;
|
| 71 |
+
}
|
| 72 |
+
// otherwise, grab the first worker that has a handler for this action id
|
| 73 |
+
return denormalizeWorkerPageName(Object.keys(workers)[0]);
|
| 74 |
+
}
|
| 75 |
+
/**
|
| 76 |
+
* The flight entry loader keys actions by bundlePath.
|
| 77 |
+
* bundlePath corresponds with the relative path (including 'app') to the page entrypoint.
|
| 78 |
+
*/ function normalizeWorkerPageName(pageName) {
|
| 79 |
+
if ((0, _pathhasprefix.pathHasPrefix)(pageName, 'app')) {
|
| 80 |
+
return pageName;
|
| 81 |
+
}
|
| 82 |
+
return 'app' + pageName;
|
| 83 |
+
}
|
| 84 |
+
/**
|
| 85 |
+
* Converts a bundlePath (relative path to the entrypoint) to a routable page name
|
| 86 |
+
*/ function denormalizeWorkerPageName(bundlePath) {
|
| 87 |
+
return (0, _apppaths.normalizeAppPath)((0, _removepathprefix.removePathPrefix)(bundlePath, 'app'));
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
//# sourceMappingURL=action-utils.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "afterTaskAsyncStorageInstance", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return afterTaskAsyncStorageInstance;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _asynclocalstorage = require("./async-local-storage");
|
| 12 |
+
const afterTaskAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();
|
| 13 |
+
|
| 14 |
+
//# sourceMappingURL=after-task-async-storage-instance.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "afterTaskAsyncStorage", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return _aftertaskasyncstorageinstance.afterTaskAsyncStorageInstance;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _aftertaskasyncstorageinstance = require("./after-task-async-storage-instance");
|
| 12 |
+
|
| 13 |
+
//# sourceMappingURL=after-task-async-storage.external.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/app-render-prerender-utils.js
ADDED
|
@@ -0,0 +1,343 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
ReactServerPrerenderResult: null,
|
| 7 |
+
ReactServerResult: null,
|
| 8 |
+
ServerPrerenderStreamResult: null,
|
| 9 |
+
createReactServerPrerenderResult: null,
|
| 10 |
+
createReactServerPrerenderResultFromRender: null,
|
| 11 |
+
prerenderAndAbortInSequentialTasks: null,
|
| 12 |
+
processPrelude: null
|
| 13 |
+
});
|
| 14 |
+
function _export(target, all) {
|
| 15 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 16 |
+
enumerable: true,
|
| 17 |
+
get: all[name]
|
| 18 |
+
});
|
| 19 |
+
}
|
| 20 |
+
_export(exports, {
|
| 21 |
+
ReactServerPrerenderResult: function() {
|
| 22 |
+
return ReactServerPrerenderResult;
|
| 23 |
+
},
|
| 24 |
+
ReactServerResult: function() {
|
| 25 |
+
return ReactServerResult;
|
| 26 |
+
},
|
| 27 |
+
ServerPrerenderStreamResult: function() {
|
| 28 |
+
return ServerPrerenderStreamResult;
|
| 29 |
+
},
|
| 30 |
+
createReactServerPrerenderResult: function() {
|
| 31 |
+
return createReactServerPrerenderResult;
|
| 32 |
+
},
|
| 33 |
+
createReactServerPrerenderResultFromRender: function() {
|
| 34 |
+
return createReactServerPrerenderResultFromRender;
|
| 35 |
+
},
|
| 36 |
+
prerenderAndAbortInSequentialTasks: function() {
|
| 37 |
+
return prerenderAndAbortInSequentialTasks;
|
| 38 |
+
},
|
| 39 |
+
processPrelude: function() {
|
| 40 |
+
return processPrelude;
|
| 41 |
+
}
|
| 42 |
+
});
|
| 43 |
+
const _invarianterror = require("../../shared/lib/invariant-error");
|
| 44 |
+
function prerenderAndAbortInSequentialTasks(prerender, abort) {
|
| 45 |
+
if (process.env.NEXT_RUNTIME === 'edge') {
|
| 46 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('`prerenderAndAbortInSequentialTasks` should not be called in edge runtime.'), "__NEXT_ERROR_CODE", {
|
| 47 |
+
value: "E538",
|
| 48 |
+
enumerable: false,
|
| 49 |
+
configurable: true
|
| 50 |
+
});
|
| 51 |
+
} else {
|
| 52 |
+
return new Promise((resolve, reject)=>{
|
| 53 |
+
let pendingResult;
|
| 54 |
+
setImmediate(()=>{
|
| 55 |
+
try {
|
| 56 |
+
pendingResult = prerender();
|
| 57 |
+
pendingResult.catch(()=>{});
|
| 58 |
+
} catch (err) {
|
| 59 |
+
reject(err);
|
| 60 |
+
}
|
| 61 |
+
});
|
| 62 |
+
setImmediate(()=>{
|
| 63 |
+
abort();
|
| 64 |
+
resolve(pendingResult);
|
| 65 |
+
});
|
| 66 |
+
});
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
const PENDING = 0;
|
| 70 |
+
const COMPLETE = 1;
|
| 71 |
+
const INTERRUPTED = 2;
|
| 72 |
+
const ERRORED = 3;
|
| 73 |
+
class ServerPrerenderStreamResult {
|
| 74 |
+
constructor(stream){
|
| 75 |
+
this.status = PENDING;
|
| 76 |
+
this.reason = null;
|
| 77 |
+
this.trailingChunks = [];
|
| 78 |
+
this.currentChunks = [];
|
| 79 |
+
this.chunksByPhase = [
|
| 80 |
+
this.currentChunks
|
| 81 |
+
];
|
| 82 |
+
const reader = stream.getReader();
|
| 83 |
+
const progress = ({ done, value })=>{
|
| 84 |
+
if (done) {
|
| 85 |
+
if (this.status === PENDING) {
|
| 86 |
+
this.status = COMPLETE;
|
| 87 |
+
}
|
| 88 |
+
return;
|
| 89 |
+
}
|
| 90 |
+
if (this.status === PENDING || this.status === INTERRUPTED) {
|
| 91 |
+
this.currentChunks.push(value);
|
| 92 |
+
} else {
|
| 93 |
+
this.trailingChunks.push(value);
|
| 94 |
+
}
|
| 95 |
+
reader.read().then(progress, error);
|
| 96 |
+
};
|
| 97 |
+
const error = (reason)=>{
|
| 98 |
+
this.status = ERRORED;
|
| 99 |
+
this.reason = reason;
|
| 100 |
+
};
|
| 101 |
+
reader.read().then(progress, error);
|
| 102 |
+
}
|
| 103 |
+
markPhase() {
|
| 104 |
+
this.currentChunks = [];
|
| 105 |
+
this.chunksByPhase.push(this.currentChunks);
|
| 106 |
+
}
|
| 107 |
+
markComplete() {
|
| 108 |
+
if (this.status === PENDING) {
|
| 109 |
+
this.status = COMPLETE;
|
| 110 |
+
}
|
| 111 |
+
}
|
| 112 |
+
markInterrupted() {
|
| 113 |
+
this.status = INTERRUPTED;
|
| 114 |
+
}
|
| 115 |
+
/**
|
| 116 |
+
* Returns a stream which only releases chunks when `releasePhase` is called. This stream will never "complete" because
|
| 117 |
+
* we rely upon the stream remaining open when prerendering to avoid triggering errors for incomplete chunks in the client.
|
| 118 |
+
*
|
| 119 |
+
* asPhasedStream is expected to be called once per result however it is safe to call multiple times as long as we have not
|
| 120 |
+
* transferred the underlying data. Generally this will only happen when streaming to a response
|
| 121 |
+
*/ asPhasedStream() {
|
| 122 |
+
switch(this.status){
|
| 123 |
+
case COMPLETE:
|
| 124 |
+
case INTERRUPTED:
|
| 125 |
+
return new PhasedStream(this.chunksByPhase);
|
| 126 |
+
default:
|
| 127 |
+
throw Object.defineProperty(new _invarianterror.InvariantError(`ServerPrerenderStreamResult cannot be consumed as a stream because it is not yet complete. status: ${this.status}`), "__NEXT_ERROR_CODE", {
|
| 128 |
+
value: "E612",
|
| 129 |
+
enumerable: false,
|
| 130 |
+
configurable: true
|
| 131 |
+
});
|
| 132 |
+
}
|
| 133 |
+
}
|
| 134 |
+
/**
|
| 135 |
+
* Returns a stream which will release all chunks immediately. This stream will "complete" synchronously. It should be used outside
|
| 136 |
+
* of render use cases like loading client chunks ahead of SSR or writing the streamed content to disk.
|
| 137 |
+
*/ asStream() {
|
| 138 |
+
switch(this.status){
|
| 139 |
+
case COMPLETE:
|
| 140 |
+
case INTERRUPTED:
|
| 141 |
+
const chunksByPhase = this.chunksByPhase;
|
| 142 |
+
const trailingChunks = this.trailingChunks;
|
| 143 |
+
return new ReadableStream({
|
| 144 |
+
start (controller) {
|
| 145 |
+
for(let i = 0; i < chunksByPhase.length; i++){
|
| 146 |
+
const chunks = chunksByPhase[i];
|
| 147 |
+
for(let j = 0; j < chunks.length; j++){
|
| 148 |
+
controller.enqueue(chunks[j]);
|
| 149 |
+
}
|
| 150 |
+
}
|
| 151 |
+
for(let i = 0; i < trailingChunks.length; i++){
|
| 152 |
+
controller.enqueue(trailingChunks[i]);
|
| 153 |
+
}
|
| 154 |
+
controller.close();
|
| 155 |
+
}
|
| 156 |
+
});
|
| 157 |
+
default:
|
| 158 |
+
throw Object.defineProperty(new _invarianterror.InvariantError(`ServerPrerenderStreamResult cannot be consumed as a stream because it is not yet complete. status: ${this.status}`), "__NEXT_ERROR_CODE", {
|
| 159 |
+
value: "E612",
|
| 160 |
+
enumerable: false,
|
| 161 |
+
configurable: true
|
| 162 |
+
});
|
| 163 |
+
}
|
| 164 |
+
}
|
| 165 |
+
}
|
| 166 |
+
class PhasedStream extends ReadableStream {
|
| 167 |
+
constructor(chunksByPhase){
|
| 168 |
+
if (chunksByPhase.length === 0) {
|
| 169 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('PhasedStream expected at least one phase but none were found.'), "__NEXT_ERROR_CODE", {
|
| 170 |
+
value: "E574",
|
| 171 |
+
enumerable: false,
|
| 172 |
+
configurable: true
|
| 173 |
+
});
|
| 174 |
+
}
|
| 175 |
+
let destination;
|
| 176 |
+
super({
|
| 177 |
+
start (controller) {
|
| 178 |
+
destination = controller;
|
| 179 |
+
}
|
| 180 |
+
});
|
| 181 |
+
// the start function above is called synchronously during construction so we will always have a destination
|
| 182 |
+
// We wait to assign it until after the super call because we cannot access `this` before calling super
|
| 183 |
+
this.destination = destination;
|
| 184 |
+
this.nextPhase = 0;
|
| 185 |
+
this.chunksByPhase = chunksByPhase;
|
| 186 |
+
this.releasePhase();
|
| 187 |
+
}
|
| 188 |
+
releasePhase() {
|
| 189 |
+
if (this.nextPhase < this.chunksByPhase.length) {
|
| 190 |
+
const chunks = this.chunksByPhase[this.nextPhase++];
|
| 191 |
+
for(let i = 0; i < chunks.length; i++){
|
| 192 |
+
this.destination.enqueue(chunks[i]);
|
| 193 |
+
}
|
| 194 |
+
} else {
|
| 195 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('PhasedStream expected more phases to release but none were found.'), "__NEXT_ERROR_CODE", {
|
| 196 |
+
value: "E541",
|
| 197 |
+
enumerable: false,
|
| 198 |
+
configurable: true
|
| 199 |
+
});
|
| 200 |
+
}
|
| 201 |
+
}
|
| 202 |
+
assertExhausted() {
|
| 203 |
+
if (this.nextPhase < this.chunksByPhase.length) {
|
| 204 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('PhasedStream expected no more phases to release but some were found.'), "__NEXT_ERROR_CODE", {
|
| 205 |
+
value: "E584",
|
| 206 |
+
enumerable: false,
|
| 207 |
+
configurable: true
|
| 208 |
+
});
|
| 209 |
+
}
|
| 210 |
+
}
|
| 211 |
+
}
|
| 212 |
+
class ReactServerResult {
|
| 213 |
+
constructor(stream){
|
| 214 |
+
this._stream = stream;
|
| 215 |
+
}
|
| 216 |
+
tee() {
|
| 217 |
+
if (this._stream === null) {
|
| 218 |
+
throw Object.defineProperty(new Error('Cannot tee a ReactServerResult that has already been consumed'), "__NEXT_ERROR_CODE", {
|
| 219 |
+
value: "E106",
|
| 220 |
+
enumerable: false,
|
| 221 |
+
configurable: true
|
| 222 |
+
});
|
| 223 |
+
}
|
| 224 |
+
const tee = this._stream.tee();
|
| 225 |
+
this._stream = tee[0];
|
| 226 |
+
return tee[1];
|
| 227 |
+
}
|
| 228 |
+
consume() {
|
| 229 |
+
if (this._stream === null) {
|
| 230 |
+
throw Object.defineProperty(new Error('Cannot consume a ReactServerResult that has already been consumed'), "__NEXT_ERROR_CODE", {
|
| 231 |
+
value: "E470",
|
| 232 |
+
enumerable: false,
|
| 233 |
+
configurable: true
|
| 234 |
+
});
|
| 235 |
+
}
|
| 236 |
+
const stream = this._stream;
|
| 237 |
+
this._stream = null;
|
| 238 |
+
return stream;
|
| 239 |
+
}
|
| 240 |
+
}
|
| 241 |
+
async function createReactServerPrerenderResult(underlying) {
|
| 242 |
+
const chunks = [];
|
| 243 |
+
const { prelude } = await underlying;
|
| 244 |
+
const reader = prelude.getReader();
|
| 245 |
+
while(true){
|
| 246 |
+
const { done, value } = await reader.read();
|
| 247 |
+
if (done) {
|
| 248 |
+
return new ReactServerPrerenderResult(chunks);
|
| 249 |
+
} else {
|
| 250 |
+
chunks.push(value);
|
| 251 |
+
}
|
| 252 |
+
}
|
| 253 |
+
}
|
| 254 |
+
async function createReactServerPrerenderResultFromRender(underlying) {
|
| 255 |
+
const chunks = [];
|
| 256 |
+
const reader = underlying.getReader();
|
| 257 |
+
while(true){
|
| 258 |
+
const { done, value } = await reader.read();
|
| 259 |
+
if (done) {
|
| 260 |
+
break;
|
| 261 |
+
} else {
|
| 262 |
+
chunks.push(value);
|
| 263 |
+
}
|
| 264 |
+
}
|
| 265 |
+
return new ReactServerPrerenderResult(chunks);
|
| 266 |
+
}
|
| 267 |
+
class ReactServerPrerenderResult {
|
| 268 |
+
assertChunks(expression) {
|
| 269 |
+
if (this._chunks === null) {
|
| 270 |
+
throw Object.defineProperty(new _invarianterror.InvariantError(`Cannot \`${expression}\` on a ReactServerPrerenderResult that has already been consumed.`), "__NEXT_ERROR_CODE", {
|
| 271 |
+
value: "E593",
|
| 272 |
+
enumerable: false,
|
| 273 |
+
configurable: true
|
| 274 |
+
});
|
| 275 |
+
}
|
| 276 |
+
return this._chunks;
|
| 277 |
+
}
|
| 278 |
+
consumeChunks(expression) {
|
| 279 |
+
const chunks = this.assertChunks(expression);
|
| 280 |
+
this.consume();
|
| 281 |
+
return chunks;
|
| 282 |
+
}
|
| 283 |
+
consume() {
|
| 284 |
+
this._chunks = null;
|
| 285 |
+
}
|
| 286 |
+
constructor(chunks){
|
| 287 |
+
this._chunks = chunks;
|
| 288 |
+
}
|
| 289 |
+
asUnclosingStream() {
|
| 290 |
+
const chunks = this.assertChunks('asUnclosingStream()');
|
| 291 |
+
return createUnclosingStream(chunks);
|
| 292 |
+
}
|
| 293 |
+
consumeAsUnclosingStream() {
|
| 294 |
+
const chunks = this.consumeChunks('consumeAsUnclosingStream()');
|
| 295 |
+
return createUnclosingStream(chunks);
|
| 296 |
+
}
|
| 297 |
+
asStream() {
|
| 298 |
+
const chunks = this.assertChunks('asStream()');
|
| 299 |
+
return createClosingStream(chunks);
|
| 300 |
+
}
|
| 301 |
+
consumeAsStream() {
|
| 302 |
+
const chunks = this.consumeChunks('consumeAsStream()');
|
| 303 |
+
return createClosingStream(chunks);
|
| 304 |
+
}
|
| 305 |
+
}
|
| 306 |
+
function createUnclosingStream(chunks) {
|
| 307 |
+
let i = 0;
|
| 308 |
+
return new ReadableStream({
|
| 309 |
+
async pull (controller) {
|
| 310 |
+
if (i < chunks.length) {
|
| 311 |
+
controller.enqueue(chunks[i++]);
|
| 312 |
+
}
|
| 313 |
+
// we intentionally keep the stream open. The consumer will clear
|
| 314 |
+
// out chunks once finished and the remaining memory will be GC'd
|
| 315 |
+
// when this object goes out of scope
|
| 316 |
+
}
|
| 317 |
+
});
|
| 318 |
+
}
|
| 319 |
+
function createClosingStream(chunks) {
|
| 320 |
+
let i = 0;
|
| 321 |
+
return new ReadableStream({
|
| 322 |
+
async pull (controller) {
|
| 323 |
+
if (i < chunks.length) {
|
| 324 |
+
controller.enqueue(chunks[i++]);
|
| 325 |
+
} else {
|
| 326 |
+
controller.close();
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
});
|
| 330 |
+
}
|
| 331 |
+
async function processPrelude(unprocessedPrelude) {
|
| 332 |
+
const [prelude, peek] = unprocessedPrelude.tee();
|
| 333 |
+
const reader = peek.getReader();
|
| 334 |
+
const firstResult = await reader.read();
|
| 335 |
+
reader.cancel();
|
| 336 |
+
const preludeIsEmpty = firstResult.done === true;
|
| 337 |
+
return {
|
| 338 |
+
prelude,
|
| 339 |
+
preludeIsEmpty
|
| 340 |
+
};
|
| 341 |
+
}
|
| 342 |
+
|
| 343 |
+
//# sourceMappingURL=app-render-prerender-utils.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/app-render-render-utils.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "scheduleInSequentialTasks", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return scheduleInSequentialTasks;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _invarianterror = require("../../shared/lib/invariant-error");
|
| 12 |
+
function scheduleInSequentialTasks(render, followup) {
|
| 13 |
+
if (process.env.NEXT_RUNTIME === 'edge') {
|
| 14 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('`scheduleInSequentialTasks` should not be called in edge runtime.'), "__NEXT_ERROR_CODE", {
|
| 15 |
+
value: "E591",
|
| 16 |
+
enumerable: false,
|
| 17 |
+
configurable: true
|
| 18 |
+
});
|
| 19 |
+
} else {
|
| 20 |
+
return new Promise((resolve, reject)=>{
|
| 21 |
+
let pendingResult;
|
| 22 |
+
setImmediate(()=>{
|
| 23 |
+
try {
|
| 24 |
+
pendingResult = render();
|
| 25 |
+
} catch (err) {
|
| 26 |
+
reject(err);
|
| 27 |
+
}
|
| 28 |
+
});
|
| 29 |
+
setImmediate(()=>{
|
| 30 |
+
followup();
|
| 31 |
+
resolve(pendingResult);
|
| 32 |
+
});
|
| 33 |
+
});
|
| 34 |
+
}
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
//# sourceMappingURL=app-render-render-utils.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/app-render.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/async-local-storage.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
bindSnapshot: null,
|
| 7 |
+
createAsyncLocalStorage: null,
|
| 8 |
+
createSnapshot: null
|
| 9 |
+
});
|
| 10 |
+
function _export(target, all) {
|
| 11 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 12 |
+
enumerable: true,
|
| 13 |
+
get: all[name]
|
| 14 |
+
});
|
| 15 |
+
}
|
| 16 |
+
_export(exports, {
|
| 17 |
+
bindSnapshot: function() {
|
| 18 |
+
return bindSnapshot;
|
| 19 |
+
},
|
| 20 |
+
createAsyncLocalStorage: function() {
|
| 21 |
+
return createAsyncLocalStorage;
|
| 22 |
+
},
|
| 23 |
+
createSnapshot: function() {
|
| 24 |
+
return createSnapshot;
|
| 25 |
+
}
|
| 26 |
+
});
|
| 27 |
+
const sharedAsyncLocalStorageNotAvailableError = Object.defineProperty(new Error('Invariant: AsyncLocalStorage accessed in runtime where it is not available'), "__NEXT_ERROR_CODE", {
|
| 28 |
+
value: "E504",
|
| 29 |
+
enumerable: false,
|
| 30 |
+
configurable: true
|
| 31 |
+
});
|
| 32 |
+
class FakeAsyncLocalStorage {
|
| 33 |
+
disable() {
|
| 34 |
+
throw sharedAsyncLocalStorageNotAvailableError;
|
| 35 |
+
}
|
| 36 |
+
getStore() {
|
| 37 |
+
// This fake implementation of AsyncLocalStorage always returns `undefined`.
|
| 38 |
+
return undefined;
|
| 39 |
+
}
|
| 40 |
+
run() {
|
| 41 |
+
throw sharedAsyncLocalStorageNotAvailableError;
|
| 42 |
+
}
|
| 43 |
+
exit() {
|
| 44 |
+
throw sharedAsyncLocalStorageNotAvailableError;
|
| 45 |
+
}
|
| 46 |
+
enterWith() {
|
| 47 |
+
throw sharedAsyncLocalStorageNotAvailableError;
|
| 48 |
+
}
|
| 49 |
+
static bind(fn) {
|
| 50 |
+
return fn;
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
+
const maybeGlobalAsyncLocalStorage = typeof globalThis !== 'undefined' && globalThis.AsyncLocalStorage;
|
| 54 |
+
function createAsyncLocalStorage() {
|
| 55 |
+
if (maybeGlobalAsyncLocalStorage) {
|
| 56 |
+
return new maybeGlobalAsyncLocalStorage();
|
| 57 |
+
}
|
| 58 |
+
return new FakeAsyncLocalStorage();
|
| 59 |
+
}
|
| 60 |
+
function bindSnapshot(fn) {
|
| 61 |
+
if (maybeGlobalAsyncLocalStorage) {
|
| 62 |
+
return maybeGlobalAsyncLocalStorage.bind(fn);
|
| 63 |
+
}
|
| 64 |
+
return FakeAsyncLocalStorage.bind(fn);
|
| 65 |
+
}
|
| 66 |
+
function createSnapshot() {
|
| 67 |
+
if (maybeGlobalAsyncLocalStorage) {
|
| 68 |
+
return maybeGlobalAsyncLocalStorage.snapshot();
|
| 69 |
+
}
|
| 70 |
+
return function(fn, ...args) {
|
| 71 |
+
return fn(...args);
|
| 72 |
+
};
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
//# sourceMappingURL=async-local-storage.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/cache-signal.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* This class is used to detect when all cache reads for a given render are settled.
|
| 3 |
+
* We do this to allow for cache warming the prerender without having to continue rendering
|
| 4 |
+
* the remainder of the page. This feature is really only useful when the dynamicIO flag is on
|
| 5 |
+
* and should only be used in codepaths gated with this feature.
|
| 6 |
+
*/ "use strict";
|
| 7 |
+
Object.defineProperty(exports, "__esModule", {
|
| 8 |
+
value: true
|
| 9 |
+
});
|
| 10 |
+
Object.defineProperty(exports, "CacheSignal", {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: function() {
|
| 13 |
+
return CacheSignal;
|
| 14 |
+
}
|
| 15 |
+
});
|
| 16 |
+
const _invarianterror = require("../../shared/lib/invariant-error");
|
| 17 |
+
class CacheSignal {
|
| 18 |
+
constructor(){
|
| 19 |
+
this.count = 0;
|
| 20 |
+
this.earlyListeners = [];
|
| 21 |
+
this.listeners = [];
|
| 22 |
+
this.tickPending = false;
|
| 23 |
+
this.taskPending = false;
|
| 24 |
+
this.subscribedSignals = null;
|
| 25 |
+
if (process.env.NEXT_RUNTIME === 'edge') {
|
| 26 |
+
// we rely on `process.nextTick`, which is not supported in edge
|
| 27 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('CacheSignal cannot be used in the edge runtime, because `dynamicIO` does not support it.'), "__NEXT_ERROR_CODE", {
|
| 28 |
+
value: "E685",
|
| 29 |
+
enumerable: false,
|
| 30 |
+
configurable: true
|
| 31 |
+
});
|
| 32 |
+
}
|
| 33 |
+
}
|
| 34 |
+
noMorePendingCaches() {
|
| 35 |
+
if (!this.tickPending) {
|
| 36 |
+
this.tickPending = true;
|
| 37 |
+
process.nextTick(()=>{
|
| 38 |
+
this.tickPending = false;
|
| 39 |
+
if (this.count === 0) {
|
| 40 |
+
for(let i = 0; i < this.earlyListeners.length; i++){
|
| 41 |
+
this.earlyListeners[i]();
|
| 42 |
+
}
|
| 43 |
+
this.earlyListeners.length = 0;
|
| 44 |
+
}
|
| 45 |
+
});
|
| 46 |
+
}
|
| 47 |
+
if (!this.taskPending) {
|
| 48 |
+
this.taskPending = true;
|
| 49 |
+
setTimeout(()=>{
|
| 50 |
+
this.taskPending = false;
|
| 51 |
+
if (this.count === 0) {
|
| 52 |
+
for(let i = 0; i < this.listeners.length; i++){
|
| 53 |
+
this.listeners[i]();
|
| 54 |
+
}
|
| 55 |
+
this.listeners.length = 0;
|
| 56 |
+
}
|
| 57 |
+
}, 0);
|
| 58 |
+
}
|
| 59 |
+
}
|
| 60 |
+
/**
|
| 61 |
+
* This promise waits until there are no more in progress cache reads but no later.
|
| 62 |
+
* This allows for adding more cache reads after to delay cacheReady.
|
| 63 |
+
*/ inputReady() {
|
| 64 |
+
return new Promise((resolve)=>{
|
| 65 |
+
this.earlyListeners.push(resolve);
|
| 66 |
+
if (this.count === 0) {
|
| 67 |
+
this.noMorePendingCaches();
|
| 68 |
+
}
|
| 69 |
+
});
|
| 70 |
+
}
|
| 71 |
+
/**
|
| 72 |
+
* If there are inflight cache reads this Promise can resolve in a microtask however
|
| 73 |
+
* if there are no inflight cache reads then we wait at least one task to allow initial
|
| 74 |
+
* cache reads to be initiated.
|
| 75 |
+
*/ cacheReady() {
|
| 76 |
+
return new Promise((resolve)=>{
|
| 77 |
+
this.listeners.push(resolve);
|
| 78 |
+
if (this.count === 0) {
|
| 79 |
+
this.noMorePendingCaches();
|
| 80 |
+
}
|
| 81 |
+
});
|
| 82 |
+
}
|
| 83 |
+
beginRead() {
|
| 84 |
+
this.count++;
|
| 85 |
+
if (this.subscribedSignals !== null) {
|
| 86 |
+
for (const subscriber of this.subscribedSignals){
|
| 87 |
+
subscriber.beginRead();
|
| 88 |
+
}
|
| 89 |
+
}
|
| 90 |
+
}
|
| 91 |
+
endRead() {
|
| 92 |
+
if (this.count === 0) {
|
| 93 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('CacheSignal got more endRead() calls than beginRead() calls'), "__NEXT_ERROR_CODE", {
|
| 94 |
+
value: "E678",
|
| 95 |
+
enumerable: false,
|
| 96 |
+
configurable: true
|
| 97 |
+
});
|
| 98 |
+
}
|
| 99 |
+
// If this is the last read we need to wait a task before we can claim the cache is settled.
|
| 100 |
+
// The cache read will likely ping a Server Component which can read from the cache again and this
|
| 101 |
+
// will play out in a microtask so we need to only resolve pending listeners if we're still at 0
|
| 102 |
+
// after at least one task.
|
| 103 |
+
// We only want one task scheduled at a time so when we hit count 1 we don't decrement the counter immediately.
|
| 104 |
+
// If intervening reads happen before the scheduled task runs they will never observe count 1 preventing reentrency
|
| 105 |
+
this.count--;
|
| 106 |
+
if (this.count === 0) {
|
| 107 |
+
this.noMorePendingCaches();
|
| 108 |
+
}
|
| 109 |
+
if (this.subscribedSignals !== null) {
|
| 110 |
+
for (const subscriber of this.subscribedSignals){
|
| 111 |
+
subscriber.endRead();
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
}
|
| 115 |
+
trackRead(promise) {
|
| 116 |
+
this.beginRead();
|
| 117 |
+
// `promise.finally()` still rejects, so don't use it here to avoid unhandled rejections
|
| 118 |
+
const onFinally = this.endRead.bind(this);
|
| 119 |
+
promise.then(onFinally, onFinally);
|
| 120 |
+
return promise;
|
| 121 |
+
}
|
| 122 |
+
subscribeToReads(subscriber) {
|
| 123 |
+
if (subscriber === this) {
|
| 124 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('A CacheSignal cannot subscribe to itself'), "__NEXT_ERROR_CODE", {
|
| 125 |
+
value: "E679",
|
| 126 |
+
enumerable: false,
|
| 127 |
+
configurable: true
|
| 128 |
+
});
|
| 129 |
+
}
|
| 130 |
+
if (this.subscribedSignals === null) {
|
| 131 |
+
this.subscribedSignals = new Set();
|
| 132 |
+
}
|
| 133 |
+
this.subscribedSignals.add(subscriber);
|
| 134 |
+
// we'll notify the subscriber of each endRead() on this signal,
|
| 135 |
+
// so we need to give it a corresponding beginRead() for each read we have in flight now.
|
| 136 |
+
for(let i = 0; i < this.count; i++){
|
| 137 |
+
subscriber.beginRead();
|
| 138 |
+
}
|
| 139 |
+
return this.unsubscribeFromReads.bind(this, subscriber);
|
| 140 |
+
}
|
| 141 |
+
unsubscribeFromReads(subscriber) {
|
| 142 |
+
if (!this.subscribedSignals) {
|
| 143 |
+
return;
|
| 144 |
+
}
|
| 145 |
+
this.subscribedSignals.delete(subscriber);
|
| 146 |
+
// we don't need to set the set back to `null` if it's empty --
|
| 147 |
+
// if other signals are subscribing to this one, it'll likely get more subscriptions later,
|
| 148 |
+
// so we'd have to allocate a fresh set again when that happens.
|
| 149 |
+
}
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
//# sourceMappingURL=cache-signal.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "createComponentStylesAndScripts", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return createComponentStylesAndScripts;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _jsxruntime = require("react/jsx-runtime");
|
| 12 |
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
| 13 |
+
const _interopdefault = require("./interop-default");
|
| 14 |
+
const _getcssinlinedlinktags = require("./get-css-inlined-link-tags");
|
| 15 |
+
const _getassetquerystring = require("./get-asset-query-string");
|
| 16 |
+
const _encodeuripath = require("../../shared/lib/encode-uri-path");
|
| 17 |
+
const _rendercssresource = require("./render-css-resource");
|
| 18 |
+
function _interop_require_default(obj) {
|
| 19 |
+
return obj && obj.__esModule ? obj : {
|
| 20 |
+
default: obj
|
| 21 |
+
};
|
| 22 |
+
}
|
| 23 |
+
async function createComponentStylesAndScripts({ filePath, getComponent, injectedCSS, injectedJS, ctx }) {
|
| 24 |
+
const { styles: entryCssFiles, scripts: jsHrefs } = (0, _getcssinlinedlinktags.getLinkAndScriptTags)(ctx.clientReferenceManifest, filePath, injectedCSS, injectedJS);
|
| 25 |
+
const styles = (0, _rendercssresource.renderCssResource)(entryCssFiles, ctx);
|
| 26 |
+
const scripts = jsHrefs ? jsHrefs.map((href, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("script", {
|
| 27 |
+
src: `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(href)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`,
|
| 28 |
+
async: true
|
| 29 |
+
}, `script-${index}`)) : null;
|
| 30 |
+
const Comp = (0, _interopdefault.interopDefault)(await getComponent());
|
| 31 |
+
return [
|
| 32 |
+
Comp,
|
| 33 |
+
styles,
|
| 34 |
+
scripts
|
| 35 |
+
];
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
//# sourceMappingURL=create-component-styles-and-scripts.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-component-tree.js
ADDED
|
@@ -0,0 +1,796 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
createComponentTree: null,
|
| 7 |
+
getRootParams: null
|
| 8 |
+
});
|
| 9 |
+
function _export(target, all) {
|
| 10 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: all[name]
|
| 13 |
+
});
|
| 14 |
+
}
|
| 15 |
+
_export(exports, {
|
| 16 |
+
createComponentTree: function() {
|
| 17 |
+
return createComponentTree;
|
| 18 |
+
},
|
| 19 |
+
getRootParams: function() {
|
| 20 |
+
return getRootParams;
|
| 21 |
+
}
|
| 22 |
+
});
|
| 23 |
+
const _jsxruntime = require("react/jsx-runtime");
|
| 24 |
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
| 25 |
+
const _clientandserverreferences = require("../../lib/client-and-server-references");
|
| 26 |
+
const _appdirmodule = require("../lib/app-dir-module");
|
| 27 |
+
const _interopdefault = require("./interop-default");
|
| 28 |
+
const _parseloadertree = require("./parse-loader-tree");
|
| 29 |
+
const _createcomponentstylesandscripts = require("./create-component-styles-and-scripts");
|
| 30 |
+
const _getlayerassets = require("./get-layer-assets");
|
| 31 |
+
const _hasloadingcomponentintree = require("./has-loading-component-in-tree");
|
| 32 |
+
const _patchfetch = require("../lib/patch-fetch");
|
| 33 |
+
const _default = require("../../client/components/builtin/default");
|
| 34 |
+
const _tracer = require("../lib/trace/tracer");
|
| 35 |
+
const _constants = require("../lib/trace/constants");
|
| 36 |
+
const _staticgenerationbailout = require("../../client/components/static-generation-bailout");
|
| 37 |
+
const _workunitasyncstorageexternal = require("./work-unit-async-storage.external");
|
| 38 |
+
const _metadataconstants = require("../../lib/metadata/metadata-constants");
|
| 39 |
+
const _segment = require("../../shared/lib/segment");
|
| 40 |
+
const _segmentexplorerpath = require("./segment-explorer-path");
|
| 41 |
+
function _interop_require_default(obj) {
|
| 42 |
+
return obj && obj.__esModule ? obj : {
|
| 43 |
+
default: obj
|
| 44 |
+
};
|
| 45 |
+
}
|
| 46 |
+
function createComponentTree(props) {
|
| 47 |
+
return (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.createComponentTree, {
|
| 48 |
+
spanName: 'build component tree'
|
| 49 |
+
}, ()=>createComponentTreeInternal(props));
|
| 50 |
+
}
|
| 51 |
+
function errorMissingDefaultExport(pagePath, convention) {
|
| 52 |
+
const normalizedPagePath = pagePath === '/' ? '' : pagePath;
|
| 53 |
+
throw Object.defineProperty(new Error(`The default export is not a React Component in "${normalizedPagePath}/${convention}"`), "__NEXT_ERROR_CODE", {
|
| 54 |
+
value: "E45",
|
| 55 |
+
enumerable: false,
|
| 56 |
+
configurable: true
|
| 57 |
+
});
|
| 58 |
+
}
|
| 59 |
+
const cacheNodeKey = 'c';
|
| 60 |
+
async function createComponentTreeInternal({ loaderTree: tree, parentParams, rootLayoutIncluded, injectedCSS, injectedJS, injectedFontPreloadTags, getViewportReady, getMetadataReady, ctx, missingSlots, preloadCallbacks, authInterrupts, StreamingMetadataOutlet }) {
|
| 61 |
+
const { renderOpts: { nextConfigOutput, experimental }, workStore, componentMod: { SegmentViewNode, HTTPAccessFallbackBoundary, LayoutRouter, RenderFromTemplateContext, OutletBoundary, ClientPageRoot, ClientSegmentRoot, createServerSearchParamsForServerPage, createPrerenderSearchParamsForClientPage, createServerParamsForServerSegment, createPrerenderParamsForClientSegment, serverHooks: { DynamicServerError }, Postpone }, pagePath, getDynamicParamFromSegment, isPrefetch, query } = ctx;
|
| 62 |
+
const { page, conventionPath, segment, modules, parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree);
|
| 63 |
+
const { layout, template, error, loading, 'not-found': notFound, forbidden, unauthorized } = modules;
|
| 64 |
+
const injectedCSSWithCurrentLayout = new Set(injectedCSS);
|
| 65 |
+
const injectedJSWithCurrentLayout = new Set(injectedJS);
|
| 66 |
+
const injectedFontPreloadTagsWithCurrentLayout = new Set(injectedFontPreloadTags);
|
| 67 |
+
const layerAssets = (0, _getlayerassets.getLayerAssets)({
|
| 68 |
+
preloadCallbacks,
|
| 69 |
+
ctx,
|
| 70 |
+
layoutOrPagePath: conventionPath,
|
| 71 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 72 |
+
injectedJS: injectedJSWithCurrentLayout,
|
| 73 |
+
injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout
|
| 74 |
+
});
|
| 75 |
+
const [Template, templateStyles, templateScripts] = template ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({
|
| 76 |
+
ctx,
|
| 77 |
+
filePath: template[1],
|
| 78 |
+
getComponent: template[0],
|
| 79 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 80 |
+
injectedJS: injectedJSWithCurrentLayout
|
| 81 |
+
}) : [
|
| 82 |
+
_react.default.Fragment
|
| 83 |
+
];
|
| 84 |
+
const [ErrorComponent, errorStyles, errorScripts] = error ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({
|
| 85 |
+
ctx,
|
| 86 |
+
filePath: error[1],
|
| 87 |
+
getComponent: error[0],
|
| 88 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 89 |
+
injectedJS: injectedJSWithCurrentLayout
|
| 90 |
+
}) : [];
|
| 91 |
+
const [Loading, loadingStyles, loadingScripts] = loading ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({
|
| 92 |
+
ctx,
|
| 93 |
+
filePath: loading[1],
|
| 94 |
+
getComponent: loading[0],
|
| 95 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 96 |
+
injectedJS: injectedJSWithCurrentLayout
|
| 97 |
+
}) : [];
|
| 98 |
+
const isLayout = typeof layout !== 'undefined';
|
| 99 |
+
const isPage = typeof page !== 'undefined';
|
| 100 |
+
const { mod: layoutOrPageMod, modType } = await (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.getLayoutOrPageModule, {
|
| 101 |
+
hideSpan: !(isLayout || isPage),
|
| 102 |
+
spanName: 'resolve segment modules',
|
| 103 |
+
attributes: {
|
| 104 |
+
'next.segment': segment
|
| 105 |
+
}
|
| 106 |
+
}, ()=>(0, _appdirmodule.getLayoutOrPageModule)(tree));
|
| 107 |
+
const gracefullyDegrade = !!ctx.renderOpts.botType;
|
| 108 |
+
/**
|
| 109 |
+
* Checks if the current segment is a root layout.
|
| 110 |
+
*/ const rootLayoutAtThisLevel = isLayout && !rootLayoutIncluded;
|
| 111 |
+
/**
|
| 112 |
+
* Checks if the current segment or any level above it has a root layout.
|
| 113 |
+
*/ const rootLayoutIncludedAtThisLevelOrAbove = rootLayoutIncluded || rootLayoutAtThisLevel;
|
| 114 |
+
const [NotFound, notFoundStyles] = notFound ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({
|
| 115 |
+
ctx,
|
| 116 |
+
filePath: notFound[1],
|
| 117 |
+
getComponent: notFound[0],
|
| 118 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 119 |
+
injectedJS: injectedJSWithCurrentLayout
|
| 120 |
+
}) : [];
|
| 121 |
+
const [Forbidden, forbiddenStyles] = authInterrupts && forbidden ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({
|
| 122 |
+
ctx,
|
| 123 |
+
filePath: forbidden[1],
|
| 124 |
+
getComponent: forbidden[0],
|
| 125 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 126 |
+
injectedJS: injectedJSWithCurrentLayout
|
| 127 |
+
}) : [];
|
| 128 |
+
const [Unauthorized, unauthorizedStyles] = authInterrupts && unauthorized ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({
|
| 129 |
+
ctx,
|
| 130 |
+
filePath: unauthorized[1],
|
| 131 |
+
getComponent: unauthorized[0],
|
| 132 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 133 |
+
injectedJS: injectedJSWithCurrentLayout
|
| 134 |
+
}) : [];
|
| 135 |
+
let dynamic = layoutOrPageMod == null ? void 0 : layoutOrPageMod.dynamic;
|
| 136 |
+
if (nextConfigOutput === 'export') {
|
| 137 |
+
if (!dynamic || dynamic === 'auto') {
|
| 138 |
+
dynamic = 'error';
|
| 139 |
+
} else if (dynamic === 'force-dynamic') {
|
| 140 |
+
// force-dynamic is always incompatible with 'export'. We must interrupt the build
|
| 141 |
+
throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Page with \`dynamic = "force-dynamic"\` couldn't be exported. \`output: "export"\` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports`), "__NEXT_ERROR_CODE", {
|
| 142 |
+
value: "E527",
|
| 143 |
+
enumerable: false,
|
| 144 |
+
configurable: true
|
| 145 |
+
});
|
| 146 |
+
}
|
| 147 |
+
}
|
| 148 |
+
if (typeof dynamic === 'string') {
|
| 149 |
+
// the nested most config wins so we only force-static
|
| 150 |
+
// if it's configured above any parent that configured
|
| 151 |
+
// otherwise
|
| 152 |
+
if (dynamic === 'error') {
|
| 153 |
+
workStore.dynamicShouldError = true;
|
| 154 |
+
} else if (dynamic === 'force-dynamic') {
|
| 155 |
+
workStore.forceDynamic = true;
|
| 156 |
+
// TODO: (PPR) remove this bailout once PPR is the default
|
| 157 |
+
if (workStore.isStaticGeneration && !experimental.isRoutePPREnabled) {
|
| 158 |
+
// If the postpone API isn't available, we can't postpone the render and
|
| 159 |
+
// therefore we can't use the dynamic API.
|
| 160 |
+
const err = Object.defineProperty(new DynamicServerError(`Page with \`dynamic = "force-dynamic"\` won't be rendered statically.`), "__NEXT_ERROR_CODE", {
|
| 161 |
+
value: "E585",
|
| 162 |
+
enumerable: false,
|
| 163 |
+
configurable: true
|
| 164 |
+
});
|
| 165 |
+
workStore.dynamicUsageDescription = err.message;
|
| 166 |
+
workStore.dynamicUsageStack = err.stack;
|
| 167 |
+
throw err;
|
| 168 |
+
}
|
| 169 |
+
} else {
|
| 170 |
+
workStore.dynamicShouldError = false;
|
| 171 |
+
workStore.forceStatic = dynamic === 'force-static';
|
| 172 |
+
}
|
| 173 |
+
}
|
| 174 |
+
if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.fetchCache) === 'string') {
|
| 175 |
+
workStore.fetchCache = layoutOrPageMod == null ? void 0 : layoutOrPageMod.fetchCache;
|
| 176 |
+
}
|
| 177 |
+
if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate) !== 'undefined') {
|
| 178 |
+
(0, _patchfetch.validateRevalidate)(layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate, workStore.route);
|
| 179 |
+
}
|
| 180 |
+
if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate) === 'number') {
|
| 181 |
+
const defaultRevalidate = layoutOrPageMod.revalidate;
|
| 182 |
+
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
| 183 |
+
if (workUnitStore) {
|
| 184 |
+
if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-legacy' || workUnitStore.type === 'prerender-ppr' || workUnitStore.type === 'cache') {
|
| 185 |
+
if (workUnitStore.revalidate > defaultRevalidate) {
|
| 186 |
+
workUnitStore.revalidate = defaultRevalidate;
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
}
|
| 190 |
+
if (!workStore.forceStatic && workStore.isStaticGeneration && defaultRevalidate === 0 && // If the postpone API isn't available, we can't postpone the render and
|
| 191 |
+
// therefore we can't use the dynamic API.
|
| 192 |
+
!experimental.isRoutePPREnabled) {
|
| 193 |
+
const dynamicUsageDescription = `revalidate: 0 configured ${segment}`;
|
| 194 |
+
workStore.dynamicUsageDescription = dynamicUsageDescription;
|
| 195 |
+
throw Object.defineProperty(new DynamicServerError(dynamicUsageDescription), "__NEXT_ERROR_CODE", {
|
| 196 |
+
value: "E394",
|
| 197 |
+
enumerable: false,
|
| 198 |
+
configurable: true
|
| 199 |
+
});
|
| 200 |
+
}
|
| 201 |
+
}
|
| 202 |
+
const isStaticGeneration = workStore.isStaticGeneration;
|
| 203 |
+
// Assume the segment we're rendering contains only partial data if PPR is
|
| 204 |
+
// enabled and this is a statically generated response. This is used by the
|
| 205 |
+
// client Segment Cache after a prefetch to determine if it can skip the
|
| 206 |
+
// second request to fill in the dynamic data.
|
| 207 |
+
//
|
| 208 |
+
// It's OK for this to be `true` when the data is actually fully static, but
|
| 209 |
+
// it's not OK for this to be `false` when the data possibly contains holes.
|
| 210 |
+
// Although the value here is overly pessimistic, for prefetches, it will be
|
| 211 |
+
// replaced by a more specific value when the data is later processed into
|
| 212 |
+
// per-segment responses (see collect-segment-data.tsx)
|
| 213 |
+
//
|
| 214 |
+
// For dynamic requests, this must always be `false` because dynamic responses
|
| 215 |
+
// are never partial.
|
| 216 |
+
const isPossiblyPartialResponse = isStaticGeneration && experimental.isRoutePPREnabled === true;
|
| 217 |
+
const LayoutOrPage = layoutOrPageMod ? (0, _interopdefault.interopDefault)(layoutOrPageMod) : undefined;
|
| 218 |
+
/**
|
| 219 |
+
* The React Component to render.
|
| 220 |
+
*/ let MaybeComponent = LayoutOrPage;
|
| 221 |
+
if (process.env.NODE_ENV === 'development') {
|
| 222 |
+
const { isValidElementType } = require('next/dist/compiled/react-is');
|
| 223 |
+
if (typeof MaybeComponent !== 'undefined' && !isValidElementType(MaybeComponent)) {
|
| 224 |
+
errorMissingDefaultExport(pagePath, modType ?? 'page');
|
| 225 |
+
}
|
| 226 |
+
if (typeof ErrorComponent !== 'undefined' && !isValidElementType(ErrorComponent)) {
|
| 227 |
+
errorMissingDefaultExport(pagePath, 'error');
|
| 228 |
+
}
|
| 229 |
+
if (typeof Loading !== 'undefined' && !isValidElementType(Loading)) {
|
| 230 |
+
errorMissingDefaultExport(pagePath, 'loading');
|
| 231 |
+
}
|
| 232 |
+
if (typeof NotFound !== 'undefined' && !isValidElementType(NotFound)) {
|
| 233 |
+
errorMissingDefaultExport(pagePath, 'not-found');
|
| 234 |
+
}
|
| 235 |
+
if (typeof Forbidden !== 'undefined' && !isValidElementType(Forbidden)) {
|
| 236 |
+
errorMissingDefaultExport(pagePath, 'forbidden');
|
| 237 |
+
}
|
| 238 |
+
if (typeof Unauthorized !== 'undefined' && !isValidElementType(Unauthorized)) {
|
| 239 |
+
errorMissingDefaultExport(pagePath, 'unauthorized');
|
| 240 |
+
}
|
| 241 |
+
}
|
| 242 |
+
// Handle dynamic segment params.
|
| 243 |
+
const segmentParam = getDynamicParamFromSegment(segment);
|
| 244 |
+
// Create object holding the parent params and current params
|
| 245 |
+
let currentParams = parentParams;
|
| 246 |
+
if (segmentParam && segmentParam.value !== null) {
|
| 247 |
+
currentParams = {
|
| 248 |
+
...parentParams,
|
| 249 |
+
[segmentParam.param]: segmentParam.value
|
| 250 |
+
};
|
| 251 |
+
}
|
| 252 |
+
// Resolve the segment param
|
| 253 |
+
const actualSegment = segmentParam ? segmentParam.treeSegment : segment;
|
| 254 |
+
const isSegmentViewEnabled = process.env.NODE_ENV === 'development' && ctx.renderOpts.devtoolSegmentExplorer;
|
| 255 |
+
const dir = process.env.NEXT_RUNTIME === 'edge' ? process.env.__NEXT_EDGE_PROJECT_DIR : ctx.renderOpts.dir || '';
|
| 256 |
+
// Use the same condition to render metadataOutlet as metadata
|
| 257 |
+
const metadataOutlet = StreamingMetadataOutlet ? /*#__PURE__*/ (0, _jsxruntime.jsx)(StreamingMetadataOutlet, {}) : /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataOutlet, {
|
| 258 |
+
ready: getMetadataReady
|
| 259 |
+
});
|
| 260 |
+
const [notFoundElement, notFoundFilePath] = await createBoundaryConventionElement({
|
| 261 |
+
ctx,
|
| 262 |
+
conventionName: 'not-found',
|
| 263 |
+
Component: NotFound,
|
| 264 |
+
styles: notFoundStyles,
|
| 265 |
+
tree
|
| 266 |
+
});
|
| 267 |
+
const [forbiddenElement] = await createBoundaryConventionElement({
|
| 268 |
+
ctx,
|
| 269 |
+
conventionName: 'forbidden',
|
| 270 |
+
Component: Forbidden,
|
| 271 |
+
styles: forbiddenStyles,
|
| 272 |
+
tree
|
| 273 |
+
});
|
| 274 |
+
const [unauthorizedElement] = await createBoundaryConventionElement({
|
| 275 |
+
ctx,
|
| 276 |
+
conventionName: 'unauthorized',
|
| 277 |
+
Component: Unauthorized,
|
| 278 |
+
styles: unauthorizedStyles,
|
| 279 |
+
tree
|
| 280 |
+
});
|
| 281 |
+
// TODO: Combine this `map` traversal with the loop below that turns the array
|
| 282 |
+
// into an object.
|
| 283 |
+
const parallelRouteMap = await Promise.all(Object.keys(parallelRoutes).map(async (parallelRouteKey)=>{
|
| 284 |
+
const isChildrenRouteKey = parallelRouteKey === 'children';
|
| 285 |
+
const parallelRoute = parallelRoutes[parallelRouteKey];
|
| 286 |
+
const notFoundComponent = isChildrenRouteKey ? notFoundElement : undefined;
|
| 287 |
+
const forbiddenComponent = isChildrenRouteKey ? forbiddenElement : undefined;
|
| 288 |
+
const unauthorizedComponent = isChildrenRouteKey ? unauthorizedElement : undefined;
|
| 289 |
+
// if we're prefetching and that there's a Loading component, we bail out
|
| 290 |
+
// otherwise we keep rendering for the prefetch.
|
| 291 |
+
// We also want to bail out if there's no Loading component in the tree.
|
| 292 |
+
let childCacheNodeSeedData = null;
|
| 293 |
+
if (// Before PPR, the way instant navigations work in Next.js is we
|
| 294 |
+
// prefetch everything up to the first route segment that defines a
|
| 295 |
+
// loading.tsx boundary. (We do the same if there's no loading
|
| 296 |
+
// boundary in the entire tree, because we don't want to prefetch too
|
| 297 |
+
// much) The rest of the tree is deferred until the actual navigation.
|
| 298 |
+
// It does not take into account whether the data is dynamic — even if
|
| 299 |
+
// the tree is completely static, it will still defer everything
|
| 300 |
+
// inside the loading boundary.
|
| 301 |
+
//
|
| 302 |
+
// This behavior predates PPR and is only relevant if the
|
| 303 |
+
// PPR flag is not enabled.
|
| 304 |
+
isPrefetch && (Loading || !(0, _hasloadingcomponentintree.hasLoadingComponentInTree)(parallelRoute)) && // The approach with PPR is different — loading.tsx behaves like a
|
| 305 |
+
// regular Suspense boundary and has no special behavior.
|
| 306 |
+
//
|
| 307 |
+
// With PPR, we prefetch as deeply as possible, and only defer when
|
| 308 |
+
// dynamic data is accessed. If so, we only defer the nearest parent
|
| 309 |
+
// Suspense boundary of the dynamic data access, regardless of whether
|
| 310 |
+
// the boundary is defined by loading.tsx or a normal <Suspense>
|
| 311 |
+
// component in userspace.
|
| 312 |
+
//
|
| 313 |
+
// NOTE: In practice this usually means we'll end up prefetching more
|
| 314 |
+
// than we were before PPR, which may or may not be considered a
|
| 315 |
+
// performance regression by some apps. The plan is to address this
|
| 316 |
+
// before General Availability of PPR by introducing granular
|
| 317 |
+
// per-segment fetching, so we can reuse as much of the tree as
|
| 318 |
+
// possible during both prefetches and dynamic navigations. But during
|
| 319 |
+
// the beta period, we should be clear about this trade off in our
|
| 320 |
+
// communications.
|
| 321 |
+
!experimental.isRoutePPREnabled) {
|
| 322 |
+
// Don't prefetch this child. This will trigger a lazy fetch by the
|
| 323 |
+
// client router.
|
| 324 |
+
} else {
|
| 325 |
+
// Create the child component
|
| 326 |
+
if (process.env.NODE_ENV === 'development' && missingSlots) {
|
| 327 |
+
var _parsedTree_conventionPath;
|
| 328 |
+
// When we detect the default fallback (which triggers a 404), we collect the missing slots
|
| 329 |
+
// to provide more helpful debug information during development mode.
|
| 330 |
+
const parsedTree = (0, _parseloadertree.parseLoaderTree)(parallelRoute);
|
| 331 |
+
if ((_parsedTree_conventionPath = parsedTree.conventionPath) == null ? void 0 : _parsedTree_conventionPath.endsWith(_default.PARALLEL_ROUTE_DEFAULT_PATH)) {
|
| 332 |
+
missingSlots.add(parallelRouteKey);
|
| 333 |
+
}
|
| 334 |
+
}
|
| 335 |
+
const seedData = await createComponentTreeInternal({
|
| 336 |
+
loaderTree: parallelRoute,
|
| 337 |
+
parentParams: currentParams,
|
| 338 |
+
rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove,
|
| 339 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 340 |
+
injectedJS: injectedJSWithCurrentLayout,
|
| 341 |
+
injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout,
|
| 342 |
+
// `getMetadataReady` and `getViewportReady` are used to conditionally throw. In the case of parallel routes we will have more than one page
|
| 343 |
+
// but we only want to throw on the first one.
|
| 344 |
+
getMetadataReady: isChildrenRouteKey ? getMetadataReady : ()=>Promise.resolve(),
|
| 345 |
+
getViewportReady: isChildrenRouteKey ? getViewportReady : ()=>Promise.resolve(),
|
| 346 |
+
ctx,
|
| 347 |
+
missingSlots,
|
| 348 |
+
preloadCallbacks,
|
| 349 |
+
authInterrupts,
|
| 350 |
+
// `StreamingMetadataOutlet` is used to conditionally throw. In the case of parallel routes we will have more than one page
|
| 351 |
+
// but we only want to throw on the first one.
|
| 352 |
+
StreamingMetadataOutlet: isChildrenRouteKey ? StreamingMetadataOutlet : null
|
| 353 |
+
});
|
| 354 |
+
childCacheNodeSeedData = seedData;
|
| 355 |
+
}
|
| 356 |
+
const templateNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(Template, {
|
| 357 |
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(RenderFromTemplateContext, {})
|
| 358 |
+
});
|
| 359 |
+
const templateFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'template');
|
| 360 |
+
const errorFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'error');
|
| 361 |
+
const loadingFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'loading');
|
| 362 |
+
const wrappedErrorStyles = isSegmentViewEnabled && errorFilePath ? /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 363 |
+
type: "error",
|
| 364 |
+
pagePath: errorFilePath,
|
| 365 |
+
children: errorStyles
|
| 366 |
+
}) : errorStyles;
|
| 367 |
+
// Add a suffix to avoid conflict with the segment view node representing rendered file.
|
| 368 |
+
// existence: not-found.tsx@boundary
|
| 369 |
+
// rendered: not-found.tsx
|
| 370 |
+
const fileNameSuffix = _segmentexplorerpath.BOUNDARY_SUFFIX;
|
| 371 |
+
const segmentViewBoundaries = isSegmentViewEnabled ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
| 372 |
+
children: [
|
| 373 |
+
notFoundFilePath && /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 374 |
+
type: `${_segmentexplorerpath.BOUNDARY_PREFIX}not-found`,
|
| 375 |
+
pagePath: notFoundFilePath + fileNameSuffix
|
| 376 |
+
}),
|
| 377 |
+
loadingFilePath && /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 378 |
+
type: `${_segmentexplorerpath.BOUNDARY_PREFIX}loading`,
|
| 379 |
+
pagePath: loadingFilePath + fileNameSuffix
|
| 380 |
+
}),
|
| 381 |
+
errorFilePath && /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 382 |
+
type: `${_segmentexplorerpath.BOUNDARY_PREFIX}error`,
|
| 383 |
+
pagePath: errorFilePath + fileNameSuffix
|
| 384 |
+
})
|
| 385 |
+
]
|
| 386 |
+
}) : null;
|
| 387 |
+
return [
|
| 388 |
+
parallelRouteKey,
|
| 389 |
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(LayoutRouter, {
|
| 390 |
+
parallelRouterKey: parallelRouteKey,
|
| 391 |
+
// TODO-APP: Add test for loading returning `undefined`. This currently can't be tested as the `webdriver()` tab will wait for the full page to load before returning.
|
| 392 |
+
error: ErrorComponent,
|
| 393 |
+
errorStyles: wrappedErrorStyles,
|
| 394 |
+
errorScripts: errorScripts,
|
| 395 |
+
template: // Only render SegmentViewNode when there's an actual template
|
| 396 |
+
isSegmentViewEnabled && templateFilePath ? /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 397 |
+
type: "template",
|
| 398 |
+
pagePath: templateFilePath,
|
| 399 |
+
children: templateNode
|
| 400 |
+
}) : templateNode,
|
| 401 |
+
templateStyles: templateStyles,
|
| 402 |
+
templateScripts: templateScripts,
|
| 403 |
+
notFound: notFoundComponent,
|
| 404 |
+
forbidden: forbiddenComponent,
|
| 405 |
+
unauthorized: unauthorizedComponent,
|
| 406 |
+
...isSegmentViewEnabled && {
|
| 407 |
+
segmentViewBoundaries
|
| 408 |
+
},
|
| 409 |
+
...gracefullyDegrade && {
|
| 410 |
+
gracefullyDegrade
|
| 411 |
+
}
|
| 412 |
+
}),
|
| 413 |
+
childCacheNodeSeedData
|
| 414 |
+
];
|
| 415 |
+
}));
|
| 416 |
+
// Convert the parallel route map into an object after all promises have been resolved.
|
| 417 |
+
let parallelRouteProps = {};
|
| 418 |
+
let parallelRouteCacheNodeSeedData = {};
|
| 419 |
+
for (const parallelRoute of parallelRouteMap){
|
| 420 |
+
const [parallelRouteKey, parallelRouteProp, flightData] = parallelRoute;
|
| 421 |
+
parallelRouteProps[parallelRouteKey] = parallelRouteProp;
|
| 422 |
+
parallelRouteCacheNodeSeedData[parallelRouteKey] = flightData;
|
| 423 |
+
}
|
| 424 |
+
let loadingElement = Loading ? /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {}, "l") : null;
|
| 425 |
+
const loadingFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'loading');
|
| 426 |
+
if (isSegmentViewEnabled && loadingElement) {
|
| 427 |
+
if (loadingFilePath) {
|
| 428 |
+
loadingElement = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 429 |
+
type: "loading",
|
| 430 |
+
pagePath: loadingFilePath,
|
| 431 |
+
children: loadingElement
|
| 432 |
+
}, cacheNodeKey + '-loading');
|
| 433 |
+
}
|
| 434 |
+
}
|
| 435 |
+
const loadingData = loadingElement ? [
|
| 436 |
+
loadingElement,
|
| 437 |
+
loadingStyles,
|
| 438 |
+
loadingScripts
|
| 439 |
+
] : null;
|
| 440 |
+
// When the segment does not have a layout or page we still have to add the layout router to ensure the path holds the loading component
|
| 441 |
+
if (!MaybeComponent) {
|
| 442 |
+
return [
|
| 443 |
+
actualSegment,
|
| 444 |
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.default.Fragment, {
|
| 445 |
+
children: [
|
| 446 |
+
layerAssets,
|
| 447 |
+
parallelRouteProps.children
|
| 448 |
+
]
|
| 449 |
+
}, cacheNodeKey),
|
| 450 |
+
parallelRouteCacheNodeSeedData,
|
| 451 |
+
loadingData,
|
| 452 |
+
isPossiblyPartialResponse
|
| 453 |
+
];
|
| 454 |
+
}
|
| 455 |
+
const Component = MaybeComponent;
|
| 456 |
+
// If force-dynamic is used and the current render supports postponing, we
|
| 457 |
+
// replace it with a node that will postpone the render. This ensures that the
|
| 458 |
+
// postpone is invoked during the react render phase and not during the next
|
| 459 |
+
// render phase.
|
| 460 |
+
// @TODO this does not actually do what it seems like it would or should do. The idea is that
|
| 461 |
+
// if we are rendering in a force-dynamic mode and we can postpone we should only make the segments
|
| 462 |
+
// that ask for force-dynamic to be dynamic, allowing other segments to still prerender. However
|
| 463 |
+
// because this comes after the children traversal and the static generation store is mutated every segment
|
| 464 |
+
// along the parent path of a force-dynamic segment will hit this condition effectively making the entire
|
| 465 |
+
// render force-dynamic. We should refactor this function so that we can correctly track which segments
|
| 466 |
+
// need to be dynamic
|
| 467 |
+
if (workStore.isStaticGeneration && workStore.forceDynamic && experimental.isRoutePPREnabled) {
|
| 468 |
+
return [
|
| 469 |
+
actualSegment,
|
| 470 |
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.default.Fragment, {
|
| 471 |
+
children: [
|
| 472 |
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(Postpone, {
|
| 473 |
+
reason: 'dynamic = "force-dynamic" was used',
|
| 474 |
+
route: workStore.route
|
| 475 |
+
}),
|
| 476 |
+
layerAssets
|
| 477 |
+
]
|
| 478 |
+
}, cacheNodeKey),
|
| 479 |
+
parallelRouteCacheNodeSeedData,
|
| 480 |
+
loadingData,
|
| 481 |
+
true
|
| 482 |
+
];
|
| 483 |
+
}
|
| 484 |
+
const isClientComponent = (0, _clientandserverreferences.isClientReference)(layoutOrPageMod);
|
| 485 |
+
if (process.env.NODE_ENV === 'development' && 'params' in parallelRouteProps) {
|
| 486 |
+
// @TODO consider making this an error and running the check in build as well
|
| 487 |
+
console.error(`"params" is a reserved prop in Layouts and Pages and cannot be used as the name of a parallel route in ${segment}`);
|
| 488 |
+
}
|
| 489 |
+
if (isPage) {
|
| 490 |
+
const PageComponent = Component;
|
| 491 |
+
// Assign searchParams to props if this is a page
|
| 492 |
+
let pageElement;
|
| 493 |
+
if (isClientComponent) {
|
| 494 |
+
if (isStaticGeneration) {
|
| 495 |
+
const promiseOfParams = createPrerenderParamsForClientSegment(currentParams, workStore);
|
| 496 |
+
const promiseOfSearchParams = createPrerenderSearchParamsForClientPage(workStore);
|
| 497 |
+
pageElement = /*#__PURE__*/ (0, _jsxruntime.jsx)(ClientPageRoot, {
|
| 498 |
+
Component: PageComponent,
|
| 499 |
+
searchParams: query,
|
| 500 |
+
params: currentParams,
|
| 501 |
+
promises: [
|
| 502 |
+
promiseOfSearchParams,
|
| 503 |
+
promiseOfParams
|
| 504 |
+
]
|
| 505 |
+
});
|
| 506 |
+
} else {
|
| 507 |
+
pageElement = /*#__PURE__*/ (0, _jsxruntime.jsx)(ClientPageRoot, {
|
| 508 |
+
Component: PageComponent,
|
| 509 |
+
searchParams: query,
|
| 510 |
+
params: currentParams
|
| 511 |
+
});
|
| 512 |
+
}
|
| 513 |
+
} else {
|
| 514 |
+
// If we are passing params to a server component Page we need to track
|
| 515 |
+
// their usage in case the current render mode tracks dynamic API usage.
|
| 516 |
+
const params = createServerParamsForServerSegment(currentParams, workStore);
|
| 517 |
+
// If we are passing searchParams to a server component Page we need to
|
| 518 |
+
// track their usage in case the current render mode tracks dynamic API
|
| 519 |
+
// usage.
|
| 520 |
+
let searchParams = createServerSearchParamsForServerPage(query, workStore);
|
| 521 |
+
if ((0, _clientandserverreferences.isUseCacheFunction)(PageComponent)) {
|
| 522 |
+
const UseCachePageComponent = PageComponent;
|
| 523 |
+
if (!experimental.dynamicIO) {
|
| 524 |
+
// The "use cache" wrapper takes care of converting this into an
|
| 525 |
+
// erroring search params promise when passing it to the original
|
| 526 |
+
// function.
|
| 527 |
+
searchParams = Promise.resolve({});
|
| 528 |
+
}
|
| 529 |
+
pageElement = /*#__PURE__*/ (0, _jsxruntime.jsx)(UseCachePageComponent, {
|
| 530 |
+
params: params,
|
| 531 |
+
searchParams: searchParams,
|
| 532 |
+
$$isPageComponent: true
|
| 533 |
+
});
|
| 534 |
+
} else {
|
| 535 |
+
pageElement = /*#__PURE__*/ (0, _jsxruntime.jsx)(PageComponent, {
|
| 536 |
+
params: params,
|
| 537 |
+
searchParams: searchParams
|
| 538 |
+
});
|
| 539 |
+
}
|
| 540 |
+
}
|
| 541 |
+
const isDefaultSegment = segment === _segment.DEFAULT_SEGMENT_KEY;
|
| 542 |
+
const pageFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'page') ?? (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'defaultPage');
|
| 543 |
+
const segmentType = isDefaultSegment ? 'default' : 'page';
|
| 544 |
+
const wrappedPageElement = isSegmentViewEnabled && pageFilePath ? /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 545 |
+
type: segmentType,
|
| 546 |
+
pagePath: pageFilePath,
|
| 547 |
+
children: pageElement
|
| 548 |
+
}, cacheNodeKey + '-' + segmentType) : pageElement;
|
| 549 |
+
return [
|
| 550 |
+
actualSegment,
|
| 551 |
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.default.Fragment, {
|
| 552 |
+
children: [
|
| 553 |
+
wrappedPageElement,
|
| 554 |
+
layerAssets,
|
| 555 |
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(OutletBoundary, {
|
| 556 |
+
children: [
|
| 557 |
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataOutlet, {
|
| 558 |
+
ready: getViewportReady
|
| 559 |
+
}),
|
| 560 |
+
metadataOutlet
|
| 561 |
+
]
|
| 562 |
+
})
|
| 563 |
+
]
|
| 564 |
+
}, cacheNodeKey),
|
| 565 |
+
parallelRouteCacheNodeSeedData,
|
| 566 |
+
loadingData,
|
| 567 |
+
isPossiblyPartialResponse
|
| 568 |
+
];
|
| 569 |
+
} else {
|
| 570 |
+
const SegmentComponent = Component;
|
| 571 |
+
const isRootLayoutWithChildrenSlotAndAtLeastOneMoreSlot = rootLayoutAtThisLevel && 'children' in parallelRoutes && Object.keys(parallelRoutes).length > 1;
|
| 572 |
+
let segmentNode;
|
| 573 |
+
if (isClientComponent) {
|
| 574 |
+
let clientSegment;
|
| 575 |
+
if (isStaticGeneration) {
|
| 576 |
+
const promiseOfParams = createPrerenderParamsForClientSegment(currentParams, workStore);
|
| 577 |
+
clientSegment = /*#__PURE__*/ (0, _jsxruntime.jsx)(ClientSegmentRoot, {
|
| 578 |
+
Component: SegmentComponent,
|
| 579 |
+
slots: parallelRouteProps,
|
| 580 |
+
params: currentParams,
|
| 581 |
+
promise: promiseOfParams
|
| 582 |
+
});
|
| 583 |
+
} else {
|
| 584 |
+
clientSegment = /*#__PURE__*/ (0, _jsxruntime.jsx)(ClientSegmentRoot, {
|
| 585 |
+
Component: SegmentComponent,
|
| 586 |
+
slots: parallelRouteProps,
|
| 587 |
+
params: currentParams
|
| 588 |
+
});
|
| 589 |
+
}
|
| 590 |
+
if (isRootLayoutWithChildrenSlotAndAtLeastOneMoreSlot) {
|
| 591 |
+
let notfoundClientSegment;
|
| 592 |
+
let forbiddenClientSegment;
|
| 593 |
+
let unauthorizedClientSegment;
|
| 594 |
+
// TODO-APP: This is a hack to support unmatched parallel routes, which will throw `notFound()`.
|
| 595 |
+
// This ensures that a `HTTPAccessFallbackBoundary` is available for when that happens,
|
| 596 |
+
// but it's not ideal, as it needlessly invokes the `NotFound` component and renders the `RootLayout` twice.
|
| 597 |
+
// We should instead look into handling the fallback behavior differently in development mode so that it doesn't
|
| 598 |
+
// rely on the `NotFound` behavior.
|
| 599 |
+
notfoundClientSegment = createErrorBoundaryClientSegmentRoot({
|
| 600 |
+
ErrorBoundaryComponent: NotFound,
|
| 601 |
+
errorElement: notFoundElement,
|
| 602 |
+
ClientSegmentRoot,
|
| 603 |
+
layerAssets,
|
| 604 |
+
SegmentComponent,
|
| 605 |
+
currentParams
|
| 606 |
+
});
|
| 607 |
+
forbiddenClientSegment = createErrorBoundaryClientSegmentRoot({
|
| 608 |
+
ErrorBoundaryComponent: Forbidden,
|
| 609 |
+
errorElement: forbiddenElement,
|
| 610 |
+
ClientSegmentRoot,
|
| 611 |
+
layerAssets,
|
| 612 |
+
SegmentComponent,
|
| 613 |
+
currentParams
|
| 614 |
+
});
|
| 615 |
+
unauthorizedClientSegment = createErrorBoundaryClientSegmentRoot({
|
| 616 |
+
ErrorBoundaryComponent: Unauthorized,
|
| 617 |
+
errorElement: unauthorizedElement,
|
| 618 |
+
ClientSegmentRoot,
|
| 619 |
+
layerAssets,
|
| 620 |
+
SegmentComponent,
|
| 621 |
+
currentParams
|
| 622 |
+
});
|
| 623 |
+
if (notfoundClientSegment || forbiddenClientSegment || unauthorizedClientSegment) {
|
| 624 |
+
segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsxs)(HTTPAccessFallbackBoundary, {
|
| 625 |
+
notFound: notfoundClientSegment,
|
| 626 |
+
forbidden: forbiddenClientSegment,
|
| 627 |
+
unauthorized: unauthorizedClientSegment,
|
| 628 |
+
children: [
|
| 629 |
+
layerAssets,
|
| 630 |
+
clientSegment
|
| 631 |
+
]
|
| 632 |
+
}, cacheNodeKey);
|
| 633 |
+
} else {
|
| 634 |
+
segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.default.Fragment, {
|
| 635 |
+
children: [
|
| 636 |
+
layerAssets,
|
| 637 |
+
clientSegment
|
| 638 |
+
]
|
| 639 |
+
}, cacheNodeKey);
|
| 640 |
+
}
|
| 641 |
+
} else {
|
| 642 |
+
segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.default.Fragment, {
|
| 643 |
+
children: [
|
| 644 |
+
layerAssets,
|
| 645 |
+
clientSegment
|
| 646 |
+
]
|
| 647 |
+
}, cacheNodeKey);
|
| 648 |
+
}
|
| 649 |
+
} else {
|
| 650 |
+
const params = createServerParamsForServerSegment(currentParams, workStore);
|
| 651 |
+
let serverSegment;
|
| 652 |
+
if ((0, _clientandserverreferences.isUseCacheFunction)(SegmentComponent)) {
|
| 653 |
+
const UseCacheLayoutComponent = SegmentComponent;
|
| 654 |
+
serverSegment = /*#__PURE__*/ (0, _jsxruntime.jsx)(UseCacheLayoutComponent, {
|
| 655 |
+
...parallelRouteProps,
|
| 656 |
+
params: params,
|
| 657 |
+
$$isLayoutComponent: true
|
| 658 |
+
});
|
| 659 |
+
} else {
|
| 660 |
+
serverSegment = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentComponent, {
|
| 661 |
+
...parallelRouteProps,
|
| 662 |
+
params: params
|
| 663 |
+
});
|
| 664 |
+
}
|
| 665 |
+
if (isRootLayoutWithChildrenSlotAndAtLeastOneMoreSlot) {
|
| 666 |
+
// TODO-APP: This is a hack to support unmatched parallel routes, which will throw `notFound()`.
|
| 667 |
+
// This ensures that a `HTTPAccessFallbackBoundary` is available for when that happens,
|
| 668 |
+
// but it's not ideal, as it needlessly invokes the `NotFound` component and renders the `RootLayout` twice.
|
| 669 |
+
// We should instead look into handling the fallback behavior differently in development mode so that it doesn't
|
| 670 |
+
// rely on the `NotFound` behavior.
|
| 671 |
+
segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsxs)(HTTPAccessFallbackBoundary, {
|
| 672 |
+
notFound: notFoundElement ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
| 673 |
+
children: [
|
| 674 |
+
layerAssets,
|
| 675 |
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(SegmentComponent, {
|
| 676 |
+
params: params,
|
| 677 |
+
children: [
|
| 678 |
+
notFoundStyles,
|
| 679 |
+
notFoundElement
|
| 680 |
+
]
|
| 681 |
+
})
|
| 682 |
+
]
|
| 683 |
+
}) : undefined,
|
| 684 |
+
children: [
|
| 685 |
+
layerAssets,
|
| 686 |
+
serverSegment
|
| 687 |
+
]
|
| 688 |
+
}, cacheNodeKey);
|
| 689 |
+
} else {
|
| 690 |
+
segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.default.Fragment, {
|
| 691 |
+
children: [
|
| 692 |
+
layerAssets,
|
| 693 |
+
serverSegment
|
| 694 |
+
]
|
| 695 |
+
}, cacheNodeKey);
|
| 696 |
+
}
|
| 697 |
+
}
|
| 698 |
+
const layoutFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'layout');
|
| 699 |
+
const wrappedSegmentNode = isSegmentViewEnabled && layoutFilePath ? /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 700 |
+
type: "layout",
|
| 701 |
+
pagePath: layoutFilePath,
|
| 702 |
+
children: segmentNode
|
| 703 |
+
}, "layout") : segmentNode;
|
| 704 |
+
// For layouts we just render the component
|
| 705 |
+
return [
|
| 706 |
+
actualSegment,
|
| 707 |
+
wrappedSegmentNode,
|
| 708 |
+
parallelRouteCacheNodeSeedData,
|
| 709 |
+
loadingData,
|
| 710 |
+
isPossiblyPartialResponse
|
| 711 |
+
];
|
| 712 |
+
}
|
| 713 |
+
}
|
| 714 |
+
async function MetadataOutlet({ ready }) {
|
| 715 |
+
const r = ready();
|
| 716 |
+
// We can avoid a extra microtask by unwrapping the instrumented promise directly if available.
|
| 717 |
+
if (r.status === 'rejected') {
|
| 718 |
+
throw r.value;
|
| 719 |
+
} else if (r.status !== 'fulfilled') {
|
| 720 |
+
await r;
|
| 721 |
+
}
|
| 722 |
+
return null;
|
| 723 |
+
}
|
| 724 |
+
MetadataOutlet.displayName = _metadataconstants.OUTLET_BOUNDARY_NAME;
|
| 725 |
+
function createErrorBoundaryClientSegmentRoot({ ErrorBoundaryComponent, errorElement, ClientSegmentRoot, layerAssets, SegmentComponent, currentParams }) {
|
| 726 |
+
if (ErrorBoundaryComponent) {
|
| 727 |
+
const notFoundParallelRouteProps = {
|
| 728 |
+
children: errorElement
|
| 729 |
+
};
|
| 730 |
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
| 731 |
+
children: [
|
| 732 |
+
layerAssets,
|
| 733 |
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(ClientSegmentRoot, {
|
| 734 |
+
Component: SegmentComponent,
|
| 735 |
+
slots: notFoundParallelRouteProps,
|
| 736 |
+
params: currentParams
|
| 737 |
+
})
|
| 738 |
+
]
|
| 739 |
+
});
|
| 740 |
+
}
|
| 741 |
+
return null;
|
| 742 |
+
}
|
| 743 |
+
function getRootParams(loaderTree, getDynamicParamFromSegment) {
|
| 744 |
+
return getRootParamsImpl({}, loaderTree, getDynamicParamFromSegment);
|
| 745 |
+
}
|
| 746 |
+
function getRootParamsImpl(parentParams, loaderTree, getDynamicParamFromSegment) {
|
| 747 |
+
const { segment, modules: { layout }, parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(loaderTree);
|
| 748 |
+
const segmentParam = getDynamicParamFromSegment(segment);
|
| 749 |
+
let currentParams = parentParams;
|
| 750 |
+
if (segmentParam && segmentParam.value !== null) {
|
| 751 |
+
currentParams = {
|
| 752 |
+
...parentParams,
|
| 753 |
+
[segmentParam.param]: segmentParam.value
|
| 754 |
+
};
|
| 755 |
+
}
|
| 756 |
+
const isRootLayout = typeof layout !== 'undefined';
|
| 757 |
+
if (isRootLayout) {
|
| 758 |
+
return currentParams;
|
| 759 |
+
} else if (!parallelRoutes.children) {
|
| 760 |
+
// This should really be an error but there are bugs in Turbopack that cause
|
| 761 |
+
// the _not-found LoaderTree to not have any layouts. For rootParams sake
|
| 762 |
+
// this is somewhat irrelevant when you are not customizing the 404 page.
|
| 763 |
+
// If you are customizing 404
|
| 764 |
+
// TODO update rootParams to make all params optional if `/app/not-found.tsx` is defined
|
| 765 |
+
return currentParams;
|
| 766 |
+
} else {
|
| 767 |
+
return getRootParamsImpl(currentParams, // We stop looking for root params as soon as we hit the first layout
|
| 768 |
+
// and it is not possible to use parallel route children above the root layout
|
| 769 |
+
// so every parallelRoutes object that this function can visit will necessarily
|
| 770 |
+
// have a single `children` prop and no others.
|
| 771 |
+
parallelRoutes.children, getDynamicParamFromSegment);
|
| 772 |
+
}
|
| 773 |
+
}
|
| 774 |
+
async function createBoundaryConventionElement({ ctx, conventionName, Component, styles, tree }) {
|
| 775 |
+
const isSegmentViewEnabled = process.env.NODE_ENV === 'development' && ctx.renderOpts.devtoolSegmentExplorer;
|
| 776 |
+
const dir = process.env.NEXT_RUNTIME === 'edge' ? process.env.__NEXT_EDGE_PROJECT_DIR : ctx.renderOpts.dir || '';
|
| 777 |
+
const { SegmentViewNode } = ctx.componentMod;
|
| 778 |
+
const element = Component ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
| 779 |
+
children: [
|
| 780 |
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {}),
|
| 781 |
+
styles
|
| 782 |
+
]
|
| 783 |
+
}) : undefined;
|
| 784 |
+
const pagePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, conventionName);
|
| 785 |
+
const wrappedElement = isSegmentViewEnabled && element ? /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewNode, {
|
| 786 |
+
type: conventionName,
|
| 787 |
+
pagePath: pagePath,
|
| 788 |
+
children: element
|
| 789 |
+
}, cacheNodeKey + '-' + conventionName) : element;
|
| 790 |
+
return [
|
| 791 |
+
wrappedElement,
|
| 792 |
+
pagePath
|
| 793 |
+
];
|
| 794 |
+
}
|
| 795 |
+
|
| 796 |
+
//# sourceMappingURL=create-component-tree.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-error-handler.js
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
createFlightReactServerErrorHandler: null,
|
| 7 |
+
createHTMLErrorHandler: null,
|
| 8 |
+
createHTMLReactServerErrorHandler: null,
|
| 9 |
+
getDigestForWellKnownError: null,
|
| 10 |
+
isUserLandError: null
|
| 11 |
+
});
|
| 12 |
+
function _export(target, all) {
|
| 13 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 14 |
+
enumerable: true,
|
| 15 |
+
get: all[name]
|
| 16 |
+
});
|
| 17 |
+
}
|
| 18 |
+
_export(exports, {
|
| 19 |
+
createFlightReactServerErrorHandler: function() {
|
| 20 |
+
return createFlightReactServerErrorHandler;
|
| 21 |
+
},
|
| 22 |
+
createHTMLErrorHandler: function() {
|
| 23 |
+
return createHTMLErrorHandler;
|
| 24 |
+
},
|
| 25 |
+
createHTMLReactServerErrorHandler: function() {
|
| 26 |
+
return createHTMLReactServerErrorHandler;
|
| 27 |
+
},
|
| 28 |
+
getDigestForWellKnownError: function() {
|
| 29 |
+
return getDigestForWellKnownError;
|
| 30 |
+
},
|
| 31 |
+
isUserLandError: function() {
|
| 32 |
+
return isUserLandError;
|
| 33 |
+
}
|
| 34 |
+
});
|
| 35 |
+
const _stringhash = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/string-hash"));
|
| 36 |
+
const _formatservererror = require("../../lib/format-server-error");
|
| 37 |
+
const _tracer = require("../lib/trace/tracer");
|
| 38 |
+
const _pipereadable = require("../pipe-readable");
|
| 39 |
+
const _bailouttocsr = require("../../shared/lib/lazy-dynamic/bailout-to-csr");
|
| 40 |
+
const _hooksservercontext = require("../../client/components/hooks-server-context");
|
| 41 |
+
const _isnextroutererror = require("../../client/components/is-next-router-error");
|
| 42 |
+
const _dynamicrendering = require("./dynamic-rendering");
|
| 43 |
+
const _iserror = require("../../lib/is-error");
|
| 44 |
+
const _errortelemetryutils = require("../../lib/error-telemetry-utils");
|
| 45 |
+
const _reactlargeshellerror = require("./react-large-shell-error");
|
| 46 |
+
function _interop_require_default(obj) {
|
| 47 |
+
return obj && obj.__esModule ? obj : {
|
| 48 |
+
default: obj
|
| 49 |
+
};
|
| 50 |
+
}
|
| 51 |
+
function getDigestForWellKnownError(error) {
|
| 52 |
+
// If we're bailing out to CSR, we don't need to log the error.
|
| 53 |
+
if ((0, _bailouttocsr.isBailoutToCSRError)(error)) return error.digest;
|
| 54 |
+
// If this is a navigation error, we don't need to log the error.
|
| 55 |
+
if ((0, _isnextroutererror.isNextRouterError)(error)) return error.digest;
|
| 56 |
+
// If this error occurs, we know that we should be stopping the static
|
| 57 |
+
// render. This is only thrown in static generation when PPR is not enabled,
|
| 58 |
+
// which causes the whole page to be marked as dynamic. We don't need to
|
| 59 |
+
// tell the user about this error, as it's not actionable.
|
| 60 |
+
if ((0, _hooksservercontext.isDynamicServerError)(error)) return error.digest;
|
| 61 |
+
// If this is a prerender interrupted error, we don't need to log the error.
|
| 62 |
+
if ((0, _dynamicrendering.isPrerenderInterruptedError)(error)) return error.digest;
|
| 63 |
+
return undefined;
|
| 64 |
+
}
|
| 65 |
+
function createFlightReactServerErrorHandler(shouldFormatError, onReactServerRenderError) {
|
| 66 |
+
return (thrownValue)=>{
|
| 67 |
+
if (typeof thrownValue === 'string') {
|
| 68 |
+
// TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.
|
| 69 |
+
return (0, _stringhash.default)(thrownValue).toString();
|
| 70 |
+
}
|
| 71 |
+
// If the response was closed, we don't need to log the error.
|
| 72 |
+
if ((0, _pipereadable.isAbortError)(thrownValue)) return;
|
| 73 |
+
const digest = getDigestForWellKnownError(thrownValue);
|
| 74 |
+
if (digest) {
|
| 75 |
+
return digest;
|
| 76 |
+
}
|
| 77 |
+
if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {
|
| 78 |
+
// TODO: Aggregate
|
| 79 |
+
console.error(thrownValue);
|
| 80 |
+
return undefined;
|
| 81 |
+
}
|
| 82 |
+
const err = (0, _iserror.getProperError)(thrownValue);
|
| 83 |
+
// If the error already has a digest, respect the original digest,
|
| 84 |
+
// so it won't get re-generated into another new error.
|
| 85 |
+
if (!err.digest) {
|
| 86 |
+
// TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.
|
| 87 |
+
err.digest = (0, _stringhash.default)(err.message + err.stack || '').toString();
|
| 88 |
+
}
|
| 89 |
+
// Format server errors in development to add more helpful error messages
|
| 90 |
+
if (shouldFormatError) {
|
| 91 |
+
(0, _formatservererror.formatServerError)(err);
|
| 92 |
+
}
|
| 93 |
+
// Record exception in an active span, if available.
|
| 94 |
+
const span = (0, _tracer.getTracer)().getActiveScopeSpan();
|
| 95 |
+
if (span) {
|
| 96 |
+
span.recordException(err);
|
| 97 |
+
span.setStatus({
|
| 98 |
+
code: _tracer.SpanStatusCode.ERROR,
|
| 99 |
+
message: err.message
|
| 100 |
+
});
|
| 101 |
+
}
|
| 102 |
+
onReactServerRenderError(err);
|
| 103 |
+
return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);
|
| 104 |
+
};
|
| 105 |
+
}
|
| 106 |
+
function createHTMLReactServerErrorHandler(shouldFormatError, isNextExport, reactServerErrors, silenceLogger, onReactServerRenderError) {
|
| 107 |
+
return (thrownValue)=>{
|
| 108 |
+
var _err_message;
|
| 109 |
+
if (typeof thrownValue === 'string') {
|
| 110 |
+
// TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.
|
| 111 |
+
return (0, _stringhash.default)(thrownValue).toString();
|
| 112 |
+
}
|
| 113 |
+
// If the response was closed, we don't need to log the error.
|
| 114 |
+
if ((0, _pipereadable.isAbortError)(thrownValue)) return;
|
| 115 |
+
const digest = getDigestForWellKnownError(thrownValue);
|
| 116 |
+
if (digest) {
|
| 117 |
+
return digest;
|
| 118 |
+
}
|
| 119 |
+
if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {
|
| 120 |
+
// TODO: Aggregate
|
| 121 |
+
console.error(thrownValue);
|
| 122 |
+
return undefined;
|
| 123 |
+
}
|
| 124 |
+
const err = (0, _iserror.getProperError)(thrownValue);
|
| 125 |
+
// If the error already has a digest, respect the original digest,
|
| 126 |
+
// so it won't get re-generated into another new error.
|
| 127 |
+
if (!err.digest) {
|
| 128 |
+
// TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.
|
| 129 |
+
err.digest = (0, _stringhash.default)(err.message + (err.stack || '')).toString();
|
| 130 |
+
}
|
| 131 |
+
// @TODO by putting this here and not at the top it is possible that
|
| 132 |
+
// we don't error the build in places we actually expect to
|
| 133 |
+
if (!reactServerErrors.has(err.digest)) {
|
| 134 |
+
reactServerErrors.set(err.digest, err);
|
| 135 |
+
}
|
| 136 |
+
// Format server errors in development to add more helpful error messages
|
| 137 |
+
if (shouldFormatError) {
|
| 138 |
+
(0, _formatservererror.formatServerError)(err);
|
| 139 |
+
}
|
| 140 |
+
// Don't log the suppressed error during export
|
| 141 |
+
if (!(isNextExport && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {
|
| 142 |
+
// Record exception in an active span, if available.
|
| 143 |
+
const span = (0, _tracer.getTracer)().getActiveScopeSpan();
|
| 144 |
+
if (span) {
|
| 145 |
+
span.recordException(err);
|
| 146 |
+
span.setStatus({
|
| 147 |
+
code: _tracer.SpanStatusCode.ERROR,
|
| 148 |
+
message: err.message
|
| 149 |
+
});
|
| 150 |
+
}
|
| 151 |
+
if (!silenceLogger) {
|
| 152 |
+
onReactServerRenderError == null ? void 0 : onReactServerRenderError(err);
|
| 153 |
+
}
|
| 154 |
+
}
|
| 155 |
+
return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);
|
| 156 |
+
};
|
| 157 |
+
}
|
| 158 |
+
function createHTMLErrorHandler(shouldFormatError, isNextExport, reactServerErrors, allCapturedErrors, silenceLogger, onHTMLRenderSSRError) {
|
| 159 |
+
return (thrownValue, errorInfo)=>{
|
| 160 |
+
var _err_message;
|
| 161 |
+
if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {
|
| 162 |
+
// TODO: Aggregate
|
| 163 |
+
console.error(thrownValue);
|
| 164 |
+
return undefined;
|
| 165 |
+
}
|
| 166 |
+
let isSSRError = true;
|
| 167 |
+
allCapturedErrors.push(thrownValue);
|
| 168 |
+
// If the response was closed, we don't need to log the error.
|
| 169 |
+
if ((0, _pipereadable.isAbortError)(thrownValue)) return;
|
| 170 |
+
const digest = getDigestForWellKnownError(thrownValue);
|
| 171 |
+
if (digest) {
|
| 172 |
+
return digest;
|
| 173 |
+
}
|
| 174 |
+
const err = (0, _iserror.getProperError)(thrownValue);
|
| 175 |
+
// If the error already has a digest, respect the original digest,
|
| 176 |
+
// so it won't get re-generated into another new error.
|
| 177 |
+
if (err.digest) {
|
| 178 |
+
if (reactServerErrors.has(err.digest)) {
|
| 179 |
+
// This error is likely an obfuscated error from react-server.
|
| 180 |
+
// We recover the original error here.
|
| 181 |
+
thrownValue = reactServerErrors.get(err.digest);
|
| 182 |
+
isSSRError = false;
|
| 183 |
+
} else {
|
| 184 |
+
// The error is not from react-server but has a digest
|
| 185 |
+
// from other means so we don't need to produce a new one
|
| 186 |
+
}
|
| 187 |
+
} else {
|
| 188 |
+
err.digest = (0, _stringhash.default)(err.message + ((errorInfo == null ? void 0 : errorInfo.componentStack) || err.stack || '')).toString();
|
| 189 |
+
}
|
| 190 |
+
// Format server errors in development to add more helpful error messages
|
| 191 |
+
if (shouldFormatError) {
|
| 192 |
+
(0, _formatservererror.formatServerError)(err);
|
| 193 |
+
}
|
| 194 |
+
// Don't log the suppressed error during export
|
| 195 |
+
if (!(isNextExport && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {
|
| 196 |
+
// Record exception in an active span, if available.
|
| 197 |
+
const span = (0, _tracer.getTracer)().getActiveScopeSpan();
|
| 198 |
+
if (span) {
|
| 199 |
+
span.recordException(err);
|
| 200 |
+
span.setStatus({
|
| 201 |
+
code: _tracer.SpanStatusCode.ERROR,
|
| 202 |
+
message: err.message
|
| 203 |
+
});
|
| 204 |
+
}
|
| 205 |
+
if (!silenceLogger && // HTML errors contain RSC errors as well, filter them out before reporting
|
| 206 |
+
isSSRError) {
|
| 207 |
+
onHTMLRenderSSRError(err, errorInfo);
|
| 208 |
+
}
|
| 209 |
+
}
|
| 210 |
+
return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);
|
| 211 |
+
};
|
| 212 |
+
}
|
| 213 |
+
function isUserLandError(err) {
|
| 214 |
+
return !(0, _pipereadable.isAbortError)(err) && !(0, _bailouttocsr.isBailoutToCSRError)(err) && !(0, _isnextroutererror.isNextRouterError)(err);
|
| 215 |
+
}
|
| 216 |
+
|
| 217 |
+
//# sourceMappingURL=create-error-handler.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
createFlightRouterStateFromLoaderTree: null,
|
| 7 |
+
createRouteTreePrefetch: null
|
| 8 |
+
});
|
| 9 |
+
function _export(target, all) {
|
| 10 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: all[name]
|
| 13 |
+
});
|
| 14 |
+
}
|
| 15 |
+
_export(exports, {
|
| 16 |
+
createFlightRouterStateFromLoaderTree: function() {
|
| 17 |
+
return createFlightRouterStateFromLoaderTree;
|
| 18 |
+
},
|
| 19 |
+
createRouteTreePrefetch: function() {
|
| 20 |
+
return createRouteTreePrefetch;
|
| 21 |
+
}
|
| 22 |
+
});
|
| 23 |
+
const _types = require("./types");
|
| 24 |
+
const _segment = require("../../shared/lib/segment");
|
| 25 |
+
function createFlightRouterStateFromLoaderTreeImpl([segment, parallelRoutes, { layout, loading }], getDynamicParamFromSegment, searchParams, includeHasLoadingBoundary, didFindRootLayout) {
|
| 26 |
+
const dynamicParam = getDynamicParamFromSegment(segment);
|
| 27 |
+
const treeSegment = dynamicParam ? dynamicParam.treeSegment : segment;
|
| 28 |
+
const segmentTree = [
|
| 29 |
+
(0, _segment.addSearchParamsIfPageSegment)(treeSegment, searchParams),
|
| 30 |
+
{}
|
| 31 |
+
];
|
| 32 |
+
// Mark the first segment that has a layout as the "root" layout
|
| 33 |
+
if (!didFindRootLayout && typeof layout !== 'undefined') {
|
| 34 |
+
didFindRootLayout = true;
|
| 35 |
+
segmentTree[4] = true;
|
| 36 |
+
}
|
| 37 |
+
let childHasLoadingBoundary = false;
|
| 38 |
+
const children = {};
|
| 39 |
+
Object.keys(parallelRoutes).forEach((parallelRouteKey)=>{
|
| 40 |
+
const child = createFlightRouterStateFromLoaderTreeImpl(parallelRoutes[parallelRouteKey], getDynamicParamFromSegment, searchParams, includeHasLoadingBoundary, didFindRootLayout);
|
| 41 |
+
if (includeHasLoadingBoundary && child[5] !== _types.HasLoadingBoundary.SubtreeHasNoLoadingBoundary) {
|
| 42 |
+
childHasLoadingBoundary = true;
|
| 43 |
+
}
|
| 44 |
+
children[parallelRouteKey] = child;
|
| 45 |
+
});
|
| 46 |
+
segmentTree[1] = children;
|
| 47 |
+
if (includeHasLoadingBoundary) {
|
| 48 |
+
// During a route tree prefetch, the FlightRouterState includes whether a
|
| 49 |
+
// tree has a loading boundary. The client uses this to determine if it can
|
| 50 |
+
// skip the data prefetch request — if `hasLoadingBoundary` is `false`, the
|
| 51 |
+
// data prefetch response will be empty, so there's no reason to request it.
|
| 52 |
+
// NOTE: It would be better to accumulate this while building the loader
|
| 53 |
+
// tree so we don't have to keep re-deriving it, but since this won't be
|
| 54 |
+
// once PPR is enabled everywhere, it's not that important.
|
| 55 |
+
segmentTree[5] = loading ? _types.HasLoadingBoundary.SegmentHasLoadingBoundary : childHasLoadingBoundary ? _types.HasLoadingBoundary.SubtreeHasLoadingBoundary : _types.HasLoadingBoundary.SubtreeHasNoLoadingBoundary;
|
| 56 |
+
}
|
| 57 |
+
return segmentTree;
|
| 58 |
+
}
|
| 59 |
+
function createFlightRouterStateFromLoaderTree(loaderTree, getDynamicParamFromSegment, searchParams) {
|
| 60 |
+
const includeHasLoadingBoundary = false;
|
| 61 |
+
const didFindRootLayout = false;
|
| 62 |
+
return createFlightRouterStateFromLoaderTreeImpl(loaderTree, getDynamicParamFromSegment, searchParams, includeHasLoadingBoundary, didFindRootLayout);
|
| 63 |
+
}
|
| 64 |
+
function createRouteTreePrefetch(loaderTree, getDynamicParamFromSegment) {
|
| 65 |
+
// Search params should not be added to page segment's cache key during a
|
| 66 |
+
// route tree prefetch request, because they do not affect the structure of
|
| 67 |
+
// the route. The client cache has its own logic to handle search params.
|
| 68 |
+
const searchParams = {};
|
| 69 |
+
// During a route tree prefetch, we include `hasLoadingBoundary` in
|
| 70 |
+
// the response.
|
| 71 |
+
const includeHasLoadingBoundary = true;
|
| 72 |
+
const didFindRootLayout = false;
|
| 73 |
+
return createFlightRouterStateFromLoaderTreeImpl(loaderTree, getDynamicParamFromSegment, searchParams, includeHasLoadingBoundary, didFindRootLayout);
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
//# sourceMappingURL=create-flight-router-state-from-loader-tree.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/csrf-protection.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// micromatch is only available at node runtime, so it cannot be used here since the code path that calls this function
|
| 2 |
+
// can be run from edge. This is a simple implementation that safely achieves the required functionality.
|
| 3 |
+
// the goal is to match the functionality for remotePatterns as defined here -
|
| 4 |
+
// https://nextjs.org/docs/app/api-reference/components/image#remotepatterns
|
| 5 |
+
// TODO - retrofit micromatch to work in edge and use that instead
|
| 6 |
+
"use strict";
|
| 7 |
+
Object.defineProperty(exports, "__esModule", {
|
| 8 |
+
value: true
|
| 9 |
+
});
|
| 10 |
+
Object.defineProperty(exports, "isCsrfOriginAllowed", {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: function() {
|
| 13 |
+
return isCsrfOriginAllowed;
|
| 14 |
+
}
|
| 15 |
+
});
|
| 16 |
+
function matchWildcardDomain(domain, pattern) {
|
| 17 |
+
const domainParts = domain.split('.');
|
| 18 |
+
const patternParts = pattern.split('.');
|
| 19 |
+
if (patternParts.length < 1) {
|
| 20 |
+
// pattern is empty and therefore invalid to match against
|
| 21 |
+
return false;
|
| 22 |
+
}
|
| 23 |
+
if (domainParts.length < patternParts.length) {
|
| 24 |
+
// domain has too few segments and thus cannot match
|
| 25 |
+
return false;
|
| 26 |
+
}
|
| 27 |
+
// Prevent wildcards from matching entire domains (e.g. '**' or '*.com')
|
| 28 |
+
// This ensures wildcards can only match subdomains, not the main domain
|
| 29 |
+
if (patternParts.length === 1 && (patternParts[0] === '*' || patternParts[0] === '**')) {
|
| 30 |
+
return false;
|
| 31 |
+
}
|
| 32 |
+
while(patternParts.length){
|
| 33 |
+
const patternPart = patternParts.pop();
|
| 34 |
+
const domainPart = domainParts.pop();
|
| 35 |
+
switch(patternPart){
|
| 36 |
+
case '':
|
| 37 |
+
{
|
| 38 |
+
// invalid pattern. pattern segments must be non empty
|
| 39 |
+
return false;
|
| 40 |
+
}
|
| 41 |
+
case '*':
|
| 42 |
+
{
|
| 43 |
+
// wildcard matches anything so we continue if the domain part is non-empty
|
| 44 |
+
if (domainPart) {
|
| 45 |
+
continue;
|
| 46 |
+
} else {
|
| 47 |
+
return false;
|
| 48 |
+
}
|
| 49 |
+
}
|
| 50 |
+
case '**':
|
| 51 |
+
{
|
| 52 |
+
// if this is not the last item in the pattern the pattern is invalid
|
| 53 |
+
if (patternParts.length > 0) {
|
| 54 |
+
return false;
|
| 55 |
+
}
|
| 56 |
+
// recursive wildcard matches anything so we terminate here if the domain part is non empty
|
| 57 |
+
return domainPart !== undefined;
|
| 58 |
+
}
|
| 59 |
+
default:
|
| 60 |
+
{
|
| 61 |
+
if (domainPart !== patternPart) {
|
| 62 |
+
return false;
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
}
|
| 66 |
+
}
|
| 67 |
+
// We exhausted the pattern. If we also exhausted the domain we have a match
|
| 68 |
+
return domainParts.length === 0;
|
| 69 |
+
}
|
| 70 |
+
const isCsrfOriginAllowed = (originDomain, allowedOrigins = [])=>{
|
| 71 |
+
return allowedOrigins.some((allowedOrigin)=>allowedOrigin && (allowedOrigin === originDomain || matchWildcardDomain(originDomain, allowedOrigin)));
|
| 72 |
+
};
|
| 73 |
+
|
| 74 |
+
//# sourceMappingURL=csrf-protection.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "dynamicAccessAsyncStorageInstance", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return dynamicAccessAsyncStorageInstance;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _asynclocalstorage = require("./async-local-storage");
|
| 12 |
+
const dynamicAccessAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();
|
| 13 |
+
|
| 14 |
+
//# sourceMappingURL=dynamic-access-async-storage-instance.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "dynamicAccessAsyncStorage", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return _dynamicaccessasyncstorageinstance.dynamicAccessAsyncStorageInstance;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _dynamicaccessasyncstorageinstance = require("./dynamic-access-async-storage-instance");
|
| 12 |
+
|
| 13 |
+
//# sourceMappingURL=dynamic-access-async-storage.external.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/dynamic-rendering.js
ADDED
|
@@ -0,0 +1,569 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* The functions provided by this module are used to communicate certain properties
|
| 3 |
+
* about the currently running code so that Next.js can make decisions on how to handle
|
| 4 |
+
* the current execution in different rendering modes such as pre-rendering, resuming, and SSR.
|
| 5 |
+
*
|
| 6 |
+
* Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.
|
| 7 |
+
* Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts
|
| 8 |
+
* of a React tree as dynamic while still keeping other parts static. There are really two different kinds of
|
| 9 |
+
* Dynamic indications.
|
| 10 |
+
*
|
| 11 |
+
* The first is simply an intention to be dynamic. unstable_noStore is an example of this where
|
| 12 |
+
* the currently executing code simply declares that the current scope is dynamic but if you use it
|
| 13 |
+
* inside unstable_cache it can still be cached. This type of indication can be removed if we ever
|
| 14 |
+
* make the default dynamic to begin with because the only way you would ever be static is inside
|
| 15 |
+
* a cache scope which this indication does not affect.
|
| 16 |
+
*
|
| 17 |
+
* The second is an indication that a dynamic data source was read. This is a stronger form of dynamic
|
| 18 |
+
* because it means that it is inappropriate to cache this at all. using a dynamic data source inside
|
| 19 |
+
* unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should
|
| 20 |
+
* read that data outside the cache and pass it in as an argument to the cached function.
|
| 21 |
+
*/ "use strict";
|
| 22 |
+
Object.defineProperty(exports, "__esModule", {
|
| 23 |
+
value: true
|
| 24 |
+
});
|
| 25 |
+
0 && (module.exports = {
|
| 26 |
+
Postpone: null,
|
| 27 |
+
PreludeState: null,
|
| 28 |
+
abortAndThrowOnSynchronousRequestDataAccess: null,
|
| 29 |
+
abortOnSynchronousPlatformIOAccess: null,
|
| 30 |
+
accessedDynamicData: null,
|
| 31 |
+
annotateDynamicAccess: null,
|
| 32 |
+
consumeDynamicAccess: null,
|
| 33 |
+
createDynamicTrackingState: null,
|
| 34 |
+
createDynamicValidationState: null,
|
| 35 |
+
createHangingInputAbortSignal: null,
|
| 36 |
+
createPostponedAbortSignal: null,
|
| 37 |
+
formatDynamicAPIAccesses: null,
|
| 38 |
+
getFirstDynamicReason: null,
|
| 39 |
+
isDynamicPostpone: null,
|
| 40 |
+
isPrerenderInterruptedError: null,
|
| 41 |
+
markCurrentScopeAsDynamic: null,
|
| 42 |
+
postponeWithTracking: null,
|
| 43 |
+
throwIfDisallowedDynamic: null,
|
| 44 |
+
throwToInterruptStaticGeneration: null,
|
| 45 |
+
trackAllowedDynamicAccess: null,
|
| 46 |
+
trackDynamicDataInDynamicRender: null,
|
| 47 |
+
trackFallbackParamAccessed: null,
|
| 48 |
+
trackSynchronousPlatformIOAccessInDev: null,
|
| 49 |
+
trackSynchronousRequestDataAccessInDev: null,
|
| 50 |
+
useDynamicRouteParams: null
|
| 51 |
+
});
|
| 52 |
+
function _export(target, all) {
|
| 53 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 54 |
+
enumerable: true,
|
| 55 |
+
get: all[name]
|
| 56 |
+
});
|
| 57 |
+
}
|
| 58 |
+
_export(exports, {
|
| 59 |
+
Postpone: function() {
|
| 60 |
+
return Postpone;
|
| 61 |
+
},
|
| 62 |
+
PreludeState: function() {
|
| 63 |
+
return PreludeState;
|
| 64 |
+
},
|
| 65 |
+
abortAndThrowOnSynchronousRequestDataAccess: function() {
|
| 66 |
+
return abortAndThrowOnSynchronousRequestDataAccess;
|
| 67 |
+
},
|
| 68 |
+
abortOnSynchronousPlatformIOAccess: function() {
|
| 69 |
+
return abortOnSynchronousPlatformIOAccess;
|
| 70 |
+
},
|
| 71 |
+
accessedDynamicData: function() {
|
| 72 |
+
return accessedDynamicData;
|
| 73 |
+
},
|
| 74 |
+
annotateDynamicAccess: function() {
|
| 75 |
+
return annotateDynamicAccess;
|
| 76 |
+
},
|
| 77 |
+
consumeDynamicAccess: function() {
|
| 78 |
+
return consumeDynamicAccess;
|
| 79 |
+
},
|
| 80 |
+
createDynamicTrackingState: function() {
|
| 81 |
+
return createDynamicTrackingState;
|
| 82 |
+
},
|
| 83 |
+
createDynamicValidationState: function() {
|
| 84 |
+
return createDynamicValidationState;
|
| 85 |
+
},
|
| 86 |
+
createHangingInputAbortSignal: function() {
|
| 87 |
+
return createHangingInputAbortSignal;
|
| 88 |
+
},
|
| 89 |
+
createPostponedAbortSignal: function() {
|
| 90 |
+
return createPostponedAbortSignal;
|
| 91 |
+
},
|
| 92 |
+
formatDynamicAPIAccesses: function() {
|
| 93 |
+
return formatDynamicAPIAccesses;
|
| 94 |
+
},
|
| 95 |
+
getFirstDynamicReason: function() {
|
| 96 |
+
return getFirstDynamicReason;
|
| 97 |
+
},
|
| 98 |
+
isDynamicPostpone: function() {
|
| 99 |
+
return isDynamicPostpone;
|
| 100 |
+
},
|
| 101 |
+
isPrerenderInterruptedError: function() {
|
| 102 |
+
return isPrerenderInterruptedError;
|
| 103 |
+
},
|
| 104 |
+
markCurrentScopeAsDynamic: function() {
|
| 105 |
+
return markCurrentScopeAsDynamic;
|
| 106 |
+
},
|
| 107 |
+
postponeWithTracking: function() {
|
| 108 |
+
return postponeWithTracking;
|
| 109 |
+
},
|
| 110 |
+
throwIfDisallowedDynamic: function() {
|
| 111 |
+
return throwIfDisallowedDynamic;
|
| 112 |
+
},
|
| 113 |
+
throwToInterruptStaticGeneration: function() {
|
| 114 |
+
return throwToInterruptStaticGeneration;
|
| 115 |
+
},
|
| 116 |
+
trackAllowedDynamicAccess: function() {
|
| 117 |
+
return trackAllowedDynamicAccess;
|
| 118 |
+
},
|
| 119 |
+
trackDynamicDataInDynamicRender: function() {
|
| 120 |
+
return trackDynamicDataInDynamicRender;
|
| 121 |
+
},
|
| 122 |
+
trackFallbackParamAccessed: function() {
|
| 123 |
+
return trackFallbackParamAccessed;
|
| 124 |
+
},
|
| 125 |
+
trackSynchronousPlatformIOAccessInDev: function() {
|
| 126 |
+
return trackSynchronousPlatformIOAccessInDev;
|
| 127 |
+
},
|
| 128 |
+
trackSynchronousRequestDataAccessInDev: function() {
|
| 129 |
+
return trackSynchronousRequestDataAccessInDev;
|
| 130 |
+
},
|
| 131 |
+
useDynamicRouteParams: function() {
|
| 132 |
+
return useDynamicRouteParams;
|
| 133 |
+
}
|
| 134 |
+
});
|
| 135 |
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
| 136 |
+
const _hooksservercontext = require("../../client/components/hooks-server-context");
|
| 137 |
+
const _staticgenerationbailout = require("../../client/components/static-generation-bailout");
|
| 138 |
+
const _workunitasyncstorageexternal = require("./work-unit-async-storage.external");
|
| 139 |
+
const _workasyncstorageexternal = require("../app-render/work-async-storage.external");
|
| 140 |
+
const _dynamicrenderingutils = require("../dynamic-rendering-utils");
|
| 141 |
+
const _metadataconstants = require("../../lib/metadata/metadata-constants");
|
| 142 |
+
const _scheduler = require("../../lib/scheduler");
|
| 143 |
+
function _interop_require_default(obj) {
|
| 144 |
+
return obj && obj.__esModule ? obj : {
|
| 145 |
+
default: obj
|
| 146 |
+
};
|
| 147 |
+
}
|
| 148 |
+
const hasPostpone = typeof _react.default.unstable_postpone === 'function';
|
| 149 |
+
function createDynamicTrackingState(isDebugDynamicAccesses) {
|
| 150 |
+
return {
|
| 151 |
+
isDebugDynamicAccesses,
|
| 152 |
+
dynamicAccesses: [],
|
| 153 |
+
syncDynamicErrorWithStack: null
|
| 154 |
+
};
|
| 155 |
+
}
|
| 156 |
+
function createDynamicValidationState() {
|
| 157 |
+
return {
|
| 158 |
+
hasSuspenseAboveBody: false,
|
| 159 |
+
hasDynamicMetadata: false,
|
| 160 |
+
hasDynamicViewport: false,
|
| 161 |
+
hasAllowedDynamic: false,
|
| 162 |
+
dynamicErrors: []
|
| 163 |
+
};
|
| 164 |
+
}
|
| 165 |
+
function getFirstDynamicReason(trackingState) {
|
| 166 |
+
var _trackingState_dynamicAccesses_;
|
| 167 |
+
return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;
|
| 168 |
+
}
|
| 169 |
+
function markCurrentScopeAsDynamic(store, workUnitStore, expression) {
|
| 170 |
+
if (workUnitStore) {
|
| 171 |
+
if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {
|
| 172 |
+
// inside cache scopes marking a scope as dynamic has no effect because the outer cache scope
|
| 173 |
+
// creates a cache boundary. This is subtly different from reading a dynamic data source which is
|
| 174 |
+
// forbidden inside a cache scope.
|
| 175 |
+
return;
|
| 176 |
+
}
|
| 177 |
+
}
|
| 178 |
+
// If we're forcing dynamic rendering or we're forcing static rendering, we
|
| 179 |
+
// don't need to do anything here because the entire page is already dynamic
|
| 180 |
+
// or it's static and it should not throw or postpone here.
|
| 181 |
+
if (store.forceDynamic || store.forceStatic) return;
|
| 182 |
+
if (store.dynamicShouldError) {
|
| 183 |
+
throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", {
|
| 184 |
+
value: "E553",
|
| 185 |
+
enumerable: false,
|
| 186 |
+
configurable: true
|
| 187 |
+
});
|
| 188 |
+
}
|
| 189 |
+
if (workUnitStore) {
|
| 190 |
+
if (workUnitStore.type === 'prerender-ppr') {
|
| 191 |
+
postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);
|
| 192 |
+
} else if (workUnitStore.type === 'prerender-legacy') {
|
| 193 |
+
workUnitStore.revalidate = 0;
|
| 194 |
+
// We aren't prerendering but we are generating a static page. We need to bail out of static generation
|
| 195 |
+
const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
|
| 196 |
+
value: "E550",
|
| 197 |
+
enumerable: false,
|
| 198 |
+
configurable: true
|
| 199 |
+
});
|
| 200 |
+
store.dynamicUsageDescription = expression;
|
| 201 |
+
store.dynamicUsageStack = err.stack;
|
| 202 |
+
throw err;
|
| 203 |
+
} else if (process.env.NODE_ENV === 'development' && workUnitStore && workUnitStore.type === 'request') {
|
| 204 |
+
workUnitStore.usedDynamic = true;
|
| 205 |
+
}
|
| 206 |
+
}
|
| 207 |
+
}
|
| 208 |
+
function trackFallbackParamAccessed(store, expression) {
|
| 209 |
+
const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
| 210 |
+
if (!prerenderStore || prerenderStore.type !== 'prerender-ppr') return;
|
| 211 |
+
postponeWithTracking(store.route, expression, prerenderStore.dynamicTracking);
|
| 212 |
+
}
|
| 213 |
+
function throwToInterruptStaticGeneration(expression, store, prerenderStore) {
|
| 214 |
+
// We aren't prerendering but we are generating a static page. We need to bail out of static generation
|
| 215 |
+
const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
|
| 216 |
+
value: "E558",
|
| 217 |
+
enumerable: false,
|
| 218 |
+
configurable: true
|
| 219 |
+
});
|
| 220 |
+
prerenderStore.revalidate = 0;
|
| 221 |
+
store.dynamicUsageDescription = expression;
|
| 222 |
+
store.dynamicUsageStack = err.stack;
|
| 223 |
+
throw err;
|
| 224 |
+
}
|
| 225 |
+
function trackDynamicDataInDynamicRender(_store, workUnitStore) {
|
| 226 |
+
if (workUnitStore) {
|
| 227 |
+
if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {
|
| 228 |
+
// inside cache scopes marking a scope as dynamic has no effect because the outer cache scope
|
| 229 |
+
// creates a cache boundary. This is subtly different from reading a dynamic data source which is
|
| 230 |
+
// forbidden inside a cache scope.
|
| 231 |
+
return;
|
| 232 |
+
}
|
| 233 |
+
// TODO: it makes no sense to have these work unit store types during a dev render.
|
| 234 |
+
if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-client' || workUnitStore.type === 'prerender-legacy') {
|
| 235 |
+
workUnitStore.revalidate = 0;
|
| 236 |
+
}
|
| 237 |
+
if (process.env.NODE_ENV === 'development' && workUnitStore.type === 'request') {
|
| 238 |
+
workUnitStore.usedDynamic = true;
|
| 239 |
+
}
|
| 240 |
+
}
|
| 241 |
+
}
|
| 242 |
+
function abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {
|
| 243 |
+
const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;
|
| 244 |
+
const error = createPrerenderInterruptedError(reason);
|
| 245 |
+
prerenderStore.controller.abort(error);
|
| 246 |
+
const dynamicTracking = prerenderStore.dynamicTracking;
|
| 247 |
+
if (dynamicTracking) {
|
| 248 |
+
dynamicTracking.dynamicAccesses.push({
|
| 249 |
+
// When we aren't debugging, we don't need to create another error for the
|
| 250 |
+
// stack trace.
|
| 251 |
+
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
| 252 |
+
expression
|
| 253 |
+
});
|
| 254 |
+
}
|
| 255 |
+
}
|
| 256 |
+
function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {
|
| 257 |
+
const dynamicTracking = prerenderStore.dynamicTracking;
|
| 258 |
+
abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
|
| 259 |
+
// It is important that we set this tracking value after aborting. Aborts are executed
|
| 260 |
+
// synchronously except for the case where you abort during render itself. By setting this
|
| 261 |
+
// value late we can use it to determine if any of the aborted tasks are the task that
|
| 262 |
+
// called the sync IO expression in the first place.
|
| 263 |
+
if (dynamicTracking) {
|
| 264 |
+
if (dynamicTracking.syncDynamicErrorWithStack === null) {
|
| 265 |
+
dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
|
| 266 |
+
}
|
| 267 |
+
}
|
| 268 |
+
}
|
| 269 |
+
function trackSynchronousPlatformIOAccessInDev(requestStore) {
|
| 270 |
+
// We don't actually have a controller to abort but we do the semantic equivalent by
|
| 271 |
+
// advancing the request store out of prerender mode
|
| 272 |
+
requestStore.prerenderPhase = false;
|
| 273 |
+
}
|
| 274 |
+
function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {
|
| 275 |
+
const prerenderSignal = prerenderStore.controller.signal;
|
| 276 |
+
if (prerenderSignal.aborted === false) {
|
| 277 |
+
// TODO it would be better to move this aborted check into the callsite so we can avoid making
|
| 278 |
+
// the error object when it isn't relevant to the aborting of the prerender however
|
| 279 |
+
// since we need the throw semantics regardless of whether we abort it is easier to land
|
| 280 |
+
// this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer
|
| 281 |
+
// to ideal implementation
|
| 282 |
+
abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
|
| 283 |
+
// It is important that we set this tracking value after aborting. Aborts are executed
|
| 284 |
+
// synchronously except for the case where you abort during render itself. By setting this
|
| 285 |
+
// value late we can use it to determine if any of the aborted tasks are the task that
|
| 286 |
+
// called the sync IO expression in the first place.
|
| 287 |
+
const dynamicTracking = prerenderStore.dynamicTracking;
|
| 288 |
+
if (dynamicTracking) {
|
| 289 |
+
if (dynamicTracking.syncDynamicErrorWithStack === null) {
|
| 290 |
+
dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
|
| 291 |
+
}
|
| 292 |
+
}
|
| 293 |
+
}
|
| 294 |
+
throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);
|
| 295 |
+
}
|
| 296 |
+
const trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;
|
| 297 |
+
function Postpone({ reason, route }) {
|
| 298 |
+
const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
| 299 |
+
const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;
|
| 300 |
+
postponeWithTracking(route, reason, dynamicTracking);
|
| 301 |
+
}
|
| 302 |
+
function postponeWithTracking(route, expression, dynamicTracking) {
|
| 303 |
+
assertPostpone();
|
| 304 |
+
if (dynamicTracking) {
|
| 305 |
+
dynamicTracking.dynamicAccesses.push({
|
| 306 |
+
// When we aren't debugging, we don't need to create another error for the
|
| 307 |
+
// stack trace.
|
| 308 |
+
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
| 309 |
+
expression
|
| 310 |
+
});
|
| 311 |
+
}
|
| 312 |
+
_react.default.unstable_postpone(createPostponeReason(route, expression));
|
| 313 |
+
}
|
| 314 |
+
function createPostponeReason(route, expression) {
|
| 315 |
+
return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;
|
| 316 |
+
}
|
| 317 |
+
function isDynamicPostpone(err) {
|
| 318 |
+
if (typeof err === 'object' && err !== null && typeof err.message === 'string') {
|
| 319 |
+
return isDynamicPostponeReason(err.message);
|
| 320 |
+
}
|
| 321 |
+
return false;
|
| 322 |
+
}
|
| 323 |
+
function isDynamicPostponeReason(reason) {
|
| 324 |
+
return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');
|
| 325 |
+
}
|
| 326 |
+
if (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {
|
| 327 |
+
throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), "__NEXT_ERROR_CODE", {
|
| 328 |
+
value: "E296",
|
| 329 |
+
enumerable: false,
|
| 330 |
+
configurable: true
|
| 331 |
+
});
|
| 332 |
+
}
|
| 333 |
+
const NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';
|
| 334 |
+
function createPrerenderInterruptedError(message) {
|
| 335 |
+
const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
| 336 |
+
value: "E394",
|
| 337 |
+
enumerable: false,
|
| 338 |
+
configurable: true
|
| 339 |
+
});
|
| 340 |
+
error.digest = NEXT_PRERENDER_INTERRUPTED;
|
| 341 |
+
return error;
|
| 342 |
+
}
|
| 343 |
+
function isPrerenderInterruptedError(error) {
|
| 344 |
+
return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;
|
| 345 |
+
}
|
| 346 |
+
function accessedDynamicData(dynamicAccesses) {
|
| 347 |
+
return dynamicAccesses.length > 0;
|
| 348 |
+
}
|
| 349 |
+
function consumeDynamicAccess(serverDynamic, clientDynamic) {
|
| 350 |
+
// We mutate because we only call this once we are no longer writing
|
| 351 |
+
// to the dynamicTrackingState and it's more efficient than creating a new
|
| 352 |
+
// array.
|
| 353 |
+
serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);
|
| 354 |
+
return serverDynamic.dynamicAccesses;
|
| 355 |
+
}
|
| 356 |
+
function formatDynamicAPIAccesses(dynamicAccesses) {
|
| 357 |
+
return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{
|
| 358 |
+
stack = stack.split('\n')// Remove the "Error: " prefix from the first line of the stack trace as
|
| 359 |
+
// well as the first 4 lines of the stack trace which is the distance
|
| 360 |
+
// from the user code and the `new Error().stack` call.
|
| 361 |
+
.slice(4).filter((line)=>{
|
| 362 |
+
// Exclude Next.js internals from the stack trace.
|
| 363 |
+
if (line.includes('node_modules/next/')) {
|
| 364 |
+
return false;
|
| 365 |
+
}
|
| 366 |
+
// Exclude anonymous functions from the stack trace.
|
| 367 |
+
if (line.includes(' (<anonymous>)')) {
|
| 368 |
+
return false;
|
| 369 |
+
}
|
| 370 |
+
// Exclude Node.js internals from the stack trace.
|
| 371 |
+
if (line.includes(' (node:')) {
|
| 372 |
+
return false;
|
| 373 |
+
}
|
| 374 |
+
return true;
|
| 375 |
+
}).join('\n');
|
| 376 |
+
return `Dynamic API Usage Debug - ${expression}:\n${stack}`;
|
| 377 |
+
});
|
| 378 |
+
}
|
| 379 |
+
function assertPostpone() {
|
| 380 |
+
if (!hasPostpone) {
|
| 381 |
+
throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), "__NEXT_ERROR_CODE", {
|
| 382 |
+
value: "E224",
|
| 383 |
+
enumerable: false,
|
| 384 |
+
configurable: true
|
| 385 |
+
});
|
| 386 |
+
}
|
| 387 |
+
}
|
| 388 |
+
function createPostponedAbortSignal(reason) {
|
| 389 |
+
assertPostpone();
|
| 390 |
+
const controller = new AbortController();
|
| 391 |
+
// We get our hands on a postpone instance by calling postpone and catching the throw
|
| 392 |
+
try {
|
| 393 |
+
_react.default.unstable_postpone(reason);
|
| 394 |
+
} catch (x) {
|
| 395 |
+
controller.abort(x);
|
| 396 |
+
}
|
| 397 |
+
return controller.signal;
|
| 398 |
+
}
|
| 399 |
+
function createHangingInputAbortSignal(workUnitStore) {
|
| 400 |
+
const controller = new AbortController();
|
| 401 |
+
if (workUnitStore.cacheSignal) {
|
| 402 |
+
// If we have a cacheSignal it means we're in a prospective render. If the input
|
| 403 |
+
// we're waiting on is coming from another cache, we do want to wait for it so that
|
| 404 |
+
// we can resolve this cache entry too.
|
| 405 |
+
workUnitStore.cacheSignal.inputReady().then(()=>{
|
| 406 |
+
controller.abort();
|
| 407 |
+
});
|
| 408 |
+
} else {
|
| 409 |
+
// Otherwise we're in the final render and we should already have all our caches
|
| 410 |
+
// filled. We might still be waiting on some microtasks so we wait one tick before
|
| 411 |
+
// giving up. When we give up, we still want to render the content of this cache
|
| 412 |
+
// as deeply as we can so that we can suspend as deeply as possible in the tree
|
| 413 |
+
// or not at all if we don't end up waiting for the input.
|
| 414 |
+
(0, _scheduler.scheduleOnNextTick)(()=>controller.abort());
|
| 415 |
+
}
|
| 416 |
+
return controller.signal;
|
| 417 |
+
}
|
| 418 |
+
function annotateDynamicAccess(expression, prerenderStore) {
|
| 419 |
+
const dynamicTracking = prerenderStore.dynamicTracking;
|
| 420 |
+
if (dynamicTracking) {
|
| 421 |
+
dynamicTracking.dynamicAccesses.push({
|
| 422 |
+
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
| 423 |
+
expression
|
| 424 |
+
});
|
| 425 |
+
}
|
| 426 |
+
}
|
| 427 |
+
function useDynamicRouteParams(expression) {
|
| 428 |
+
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
| 429 |
+
if (workStore && workStore.isStaticGeneration && workStore.fallbackRouteParams && workStore.fallbackRouteParams.size > 0) {
|
| 430 |
+
// There are fallback route params, we should track these as dynamic
|
| 431 |
+
// accesses.
|
| 432 |
+
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
| 433 |
+
if (workUnitStore) {
|
| 434 |
+
// We're prerendering with dynamicIO or PPR or both
|
| 435 |
+
if (workUnitStore.type === 'prerender-client') {
|
| 436 |
+
// We are in a prerender with dynamicIO semantics
|
| 437 |
+
// We are going to hang here and never resolve. This will cause the currently
|
| 438 |
+
// rendering component to effectively be a dynamic hole
|
| 439 |
+
_react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, expression));
|
| 440 |
+
} else if (workUnitStore.type === 'prerender-ppr') {
|
| 441 |
+
// We're prerendering with PPR
|
| 442 |
+
postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);
|
| 443 |
+
} else if (workUnitStore.type === 'prerender-legacy') {
|
| 444 |
+
throwToInterruptStaticGeneration(expression, workStore, workUnitStore);
|
| 445 |
+
}
|
| 446 |
+
}
|
| 447 |
+
}
|
| 448 |
+
}
|
| 449 |
+
const hasSuspenseRegex = /\n\s+at Suspense \(<anonymous>\)/;
|
| 450 |
+
const hasSuspenseAfterBodyOrHtmlRegex = /\n\s+at (?:body|html) \(<anonymous>\)[\s\S]*?\n\s+at Suspense \(<anonymous>\)/;
|
| 451 |
+
const hasMetadataRegex = new RegExp(`\\n\\s+at ${_metadataconstants.METADATA_BOUNDARY_NAME}[\\n\\s]`);
|
| 452 |
+
const hasViewportRegex = new RegExp(`\\n\\s+at ${_metadataconstants.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`);
|
| 453 |
+
const hasOutletRegex = new RegExp(`\\n\\s+at ${_metadataconstants.OUTLET_BOUNDARY_NAME}[\\n\\s]`);
|
| 454 |
+
function trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {
|
| 455 |
+
if (hasOutletRegex.test(componentStack)) {
|
| 456 |
+
// We don't need to track that this is dynamic. It is only so when something else is also dynamic.
|
| 457 |
+
return;
|
| 458 |
+
} else if (hasMetadataRegex.test(componentStack)) {
|
| 459 |
+
dynamicValidation.hasDynamicMetadata = true;
|
| 460 |
+
return;
|
| 461 |
+
} else if (hasViewportRegex.test(componentStack)) {
|
| 462 |
+
dynamicValidation.hasDynamicViewport = true;
|
| 463 |
+
return;
|
| 464 |
+
} else if (hasSuspenseAfterBodyOrHtmlRegex.test(componentStack)) {
|
| 465 |
+
// This prerender has a Suspense boundary above the body which
|
| 466 |
+
// effectively opts the page into allowing 100% dynamic rendering
|
| 467 |
+
dynamicValidation.hasAllowedDynamic = true;
|
| 468 |
+
dynamicValidation.hasSuspenseAboveBody = true;
|
| 469 |
+
return;
|
| 470 |
+
} else if (hasSuspenseRegex.test(componentStack)) {
|
| 471 |
+
// this error had a Suspense boundary above it so we don't need to report it as a source
|
| 472 |
+
// of disallowed
|
| 473 |
+
dynamicValidation.hasAllowedDynamic = true;
|
| 474 |
+
return;
|
| 475 |
+
} else if (clientDynamic.syncDynamicErrorWithStack) {
|
| 476 |
+
// This task was the task that called the sync error.
|
| 477 |
+
dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);
|
| 478 |
+
return;
|
| 479 |
+
} else {
|
| 480 |
+
const message = `Route "${workStore.route}": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a "use cache" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;
|
| 481 |
+
const error = createErrorWithComponentOrOwnerStack(message, componentStack);
|
| 482 |
+
dynamicValidation.dynamicErrors.push(error);
|
| 483 |
+
return;
|
| 484 |
+
}
|
| 485 |
+
}
|
| 486 |
+
/**
|
| 487 |
+
* In dev mode, we prefer using the owner stack, otherwise the provided
|
| 488 |
+
* component stack is used.
|
| 489 |
+
*/ function createErrorWithComponentOrOwnerStack(message, componentStack) {
|
| 490 |
+
const ownerStack = process.env.NODE_ENV !== 'production' && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;
|
| 491 |
+
const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
| 492 |
+
value: "E394",
|
| 493 |
+
enumerable: false,
|
| 494 |
+
configurable: true
|
| 495 |
+
});
|
| 496 |
+
error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);
|
| 497 |
+
return error;
|
| 498 |
+
}
|
| 499 |
+
var PreludeState = /*#__PURE__*/ function(PreludeState) {
|
| 500 |
+
PreludeState[PreludeState["Full"] = 0] = "Full";
|
| 501 |
+
PreludeState[PreludeState["Empty"] = 1] = "Empty";
|
| 502 |
+
PreludeState[PreludeState["Errored"] = 2] = "Errored";
|
| 503 |
+
return PreludeState;
|
| 504 |
+
}({});
|
| 505 |
+
function logDisallowedDynamicError(workStore, error) {
|
| 506 |
+
console.error(error);
|
| 507 |
+
if (!workStore.dev) {
|
| 508 |
+
if (workStore.hasReadableErrorStacks) {
|
| 509 |
+
console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.`);
|
| 510 |
+
} else {
|
| 511 |
+
console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
| 512 |
+
- Start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.
|
| 513 |
+
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`);
|
| 514 |
+
}
|
| 515 |
+
}
|
| 516 |
+
}
|
| 517 |
+
function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {
|
| 518 |
+
if (workStore.invalidDynamicUsageError) {
|
| 519 |
+
logDisallowedDynamicError(workStore, workStore.invalidDynamicUsageError);
|
| 520 |
+
throw new _staticgenerationbailout.StaticGenBailoutError();
|
| 521 |
+
}
|
| 522 |
+
if (prelude !== 0) {
|
| 523 |
+
if (dynamicValidation.hasSuspenseAboveBody) {
|
| 524 |
+
// This route has opted into allowing fully dynamic rendering
|
| 525 |
+
// by including a Suspense boundary above the body. In this case
|
| 526 |
+
// a lack of a shell is not considered disallowed so we simply return
|
| 527 |
+
return;
|
| 528 |
+
}
|
| 529 |
+
if (serverDynamic.syncDynamicErrorWithStack) {
|
| 530 |
+
// There is no shell and the server did something sync dynamic likely
|
| 531 |
+
// leading to an early termination of the prerender before the shell
|
| 532 |
+
// could be completed. We terminate the build/validating render.
|
| 533 |
+
logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);
|
| 534 |
+
throw new _staticgenerationbailout.StaticGenBailoutError();
|
| 535 |
+
}
|
| 536 |
+
// We didn't have any sync bailouts but there may be user code which
|
| 537 |
+
// blocked the root. We would have captured these during the prerender
|
| 538 |
+
// and can log them here and then terminate the build/validating render
|
| 539 |
+
const dynamicErrors = dynamicValidation.dynamicErrors;
|
| 540 |
+
if (dynamicErrors.length > 0) {
|
| 541 |
+
for(let i = 0; i < dynamicErrors.length; i++){
|
| 542 |
+
logDisallowedDynamicError(workStore, dynamicErrors[i]);
|
| 543 |
+
}
|
| 544 |
+
throw new _staticgenerationbailout.StaticGenBailoutError();
|
| 545 |
+
}
|
| 546 |
+
// If we got this far then the only other thing that could be blocking
|
| 547 |
+
// the root is dynamic Viewport. If this is dynamic then
|
| 548 |
+
// you need to opt into that by adding a Suspense boundary above the body
|
| 549 |
+
// to indicate your are ok with fully dynamic rendering.
|
| 550 |
+
if (dynamicValidation.hasDynamicViewport) {
|
| 551 |
+
console.error(`Route "${workStore.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);
|
| 552 |
+
throw new _staticgenerationbailout.StaticGenBailoutError();
|
| 553 |
+
}
|
| 554 |
+
if (prelude === 1) {
|
| 555 |
+
// If we ever get this far then we messed up the tracking of invalid dynamic.
|
| 556 |
+
// We still adhere to the constraint that you must produce a shell but invite the
|
| 557 |
+
// user to report this as a bug in Next.js.
|
| 558 |
+
console.error(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);
|
| 559 |
+
throw new _staticgenerationbailout.StaticGenBailoutError();
|
| 560 |
+
}
|
| 561 |
+
} else {
|
| 562 |
+
if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {
|
| 563 |
+
console.error(`Route "${workStore.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);
|
| 564 |
+
throw new _staticgenerationbailout.StaticGenBailoutError();
|
| 565 |
+
}
|
| 566 |
+
}
|
| 567 |
+
}
|
| 568 |
+
|
| 569 |
+
//# sourceMappingURL=dynamic-rendering.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/encryption-utils-server.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// This file should never be bundled into application's runtime code and should
|
| 2 |
+
// stay in the Next.js server.
|
| 3 |
+
"use strict";
|
| 4 |
+
Object.defineProperty(exports, "__esModule", {
|
| 5 |
+
value: true
|
| 6 |
+
});
|
| 7 |
+
Object.defineProperty(exports, "generateEncryptionKeyBase64", {
|
| 8 |
+
enumerable: true,
|
| 9 |
+
get: function() {
|
| 10 |
+
return generateEncryptionKeyBase64;
|
| 11 |
+
}
|
| 12 |
+
});
|
| 13 |
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
| 14 |
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
| 15 |
+
const _cachedir = require("../cache-dir");
|
| 16 |
+
const _encryptionutils = require("./encryption-utils");
|
| 17 |
+
function _interop_require_default(obj) {
|
| 18 |
+
return obj && obj.__esModule ? obj : {
|
| 19 |
+
default: obj
|
| 20 |
+
};
|
| 21 |
+
}
|
| 22 |
+
// Keep the key in memory as it should never change during the lifetime of the server in
|
| 23 |
+
// both development and production.
|
| 24 |
+
let __next_encryption_key_generation_promise = null;
|
| 25 |
+
const CONFIG_FILE = '.rscinfo';
|
| 26 |
+
const ENCRYPTION_KEY = 'encryption.key';
|
| 27 |
+
const ENCRYPTION_EXPIRE_AT = 'encryption.expire_at';
|
| 28 |
+
const EXPIRATION = 1000 * 60 * 60 * 24 * 14 // 14 days
|
| 29 |
+
;
|
| 30 |
+
async function writeCache(distDir, configValue) {
|
| 31 |
+
const cacheBaseDir = (0, _cachedir.getStorageDirectory)(distDir);
|
| 32 |
+
if (!cacheBaseDir) return;
|
| 33 |
+
const configPath = _path.default.join(cacheBaseDir, CONFIG_FILE);
|
| 34 |
+
if (!_fs.default.existsSync(cacheBaseDir)) {
|
| 35 |
+
await _fs.default.promises.mkdir(cacheBaseDir, {
|
| 36 |
+
recursive: true
|
| 37 |
+
});
|
| 38 |
+
}
|
| 39 |
+
await _fs.default.promises.writeFile(configPath, JSON.stringify({
|
| 40 |
+
[ENCRYPTION_KEY]: configValue,
|
| 41 |
+
[ENCRYPTION_EXPIRE_AT]: Date.now() + EXPIRATION
|
| 42 |
+
}));
|
| 43 |
+
}
|
| 44 |
+
// This utility is used to get a key for the cache directory. If the
|
| 45 |
+
// key is not present, it will generate a new one and store it in the
|
| 46 |
+
// cache directory inside dist.
|
| 47 |
+
// The key will also expire after a certain amount of time. Once it
|
| 48 |
+
// expires, a new one will be generated.
|
| 49 |
+
// During the lifetime of the server, it will be reused and never refreshed.
|
| 50 |
+
async function loadOrGenerateKey(distDir, isBuild, generateKey) {
|
| 51 |
+
const cacheBaseDir = (0, _cachedir.getStorageDirectory)(distDir);
|
| 52 |
+
if (!cacheBaseDir) {
|
| 53 |
+
// There's no persistent storage available. We generate a new key.
|
| 54 |
+
// This also covers development time.
|
| 55 |
+
return await generateKey();
|
| 56 |
+
}
|
| 57 |
+
const configPath = _path.default.join(cacheBaseDir, CONFIG_FILE);
|
| 58 |
+
async function hasCachedKey() {
|
| 59 |
+
if (!_fs.default.existsSync(configPath)) return false;
|
| 60 |
+
try {
|
| 61 |
+
const config = JSON.parse(await _fs.default.promises.readFile(configPath, 'utf8'));
|
| 62 |
+
if (!config) return false;
|
| 63 |
+
if (typeof config[ENCRYPTION_KEY] !== 'string' || typeof config[ENCRYPTION_EXPIRE_AT] !== 'number') {
|
| 64 |
+
return false;
|
| 65 |
+
}
|
| 66 |
+
// For build time, we need to rotate the key if it's expired. Otherwise
|
| 67 |
+
// (next start) we have to keep the key as it is so the runtime key matches
|
| 68 |
+
// the build time key.
|
| 69 |
+
if (isBuild && config[ENCRYPTION_EXPIRE_AT] < Date.now()) {
|
| 70 |
+
return false;
|
| 71 |
+
}
|
| 72 |
+
const cachedKey = config[ENCRYPTION_KEY];
|
| 73 |
+
// If encryption key is provided via env, and it's not same as valid cache,
|
| 74 |
+
// we should not use the cached key and respect the env key.
|
| 75 |
+
if (cachedKey && process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY && cachedKey !== process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY) {
|
| 76 |
+
return false;
|
| 77 |
+
}
|
| 78 |
+
return cachedKey;
|
| 79 |
+
} catch {
|
| 80 |
+
// Broken config file. We should generate a new key and overwrite it.
|
| 81 |
+
return false;
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
const maybeValidKey = await hasCachedKey();
|
| 85 |
+
if (typeof maybeValidKey === 'string') {
|
| 86 |
+
return maybeValidKey;
|
| 87 |
+
}
|
| 88 |
+
const key = await generateKey();
|
| 89 |
+
await writeCache(distDir, key);
|
| 90 |
+
return key;
|
| 91 |
+
}
|
| 92 |
+
async function generateEncryptionKeyBase64({ isBuild, distDir }) {
|
| 93 |
+
// This avoids it being generated multiple times in parallel.
|
| 94 |
+
if (!__next_encryption_key_generation_promise) {
|
| 95 |
+
__next_encryption_key_generation_promise = loadOrGenerateKey(distDir, isBuild, async ()=>{
|
| 96 |
+
const providedKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY;
|
| 97 |
+
if (providedKey) {
|
| 98 |
+
return providedKey;
|
| 99 |
+
}
|
| 100 |
+
const key = await crypto.subtle.generateKey({
|
| 101 |
+
name: 'AES-GCM',
|
| 102 |
+
length: 256
|
| 103 |
+
}, true, [
|
| 104 |
+
'encrypt',
|
| 105 |
+
'decrypt'
|
| 106 |
+
]);
|
| 107 |
+
const exported = await crypto.subtle.exportKey('raw', key);
|
| 108 |
+
return btoa((0, _encryptionutils.arrayBufferToString)(exported));
|
| 109 |
+
});
|
| 110 |
+
}
|
| 111 |
+
return __next_encryption_key_generation_promise;
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
//# sourceMappingURL=encryption-utils-server.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/encryption-utils.js
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
arrayBufferToString: null,
|
| 7 |
+
decrypt: null,
|
| 8 |
+
encrypt: null,
|
| 9 |
+
getActionEncryptionKey: null,
|
| 10 |
+
getClientReferenceManifestForRsc: null,
|
| 11 |
+
getServerModuleMap: null,
|
| 12 |
+
setReferenceManifestsSingleton: null,
|
| 13 |
+
stringToUint8Array: null
|
| 14 |
+
});
|
| 15 |
+
function _export(target, all) {
|
| 16 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 17 |
+
enumerable: true,
|
| 18 |
+
get: all[name]
|
| 19 |
+
});
|
| 20 |
+
}
|
| 21 |
+
_export(exports, {
|
| 22 |
+
arrayBufferToString: function() {
|
| 23 |
+
return arrayBufferToString;
|
| 24 |
+
},
|
| 25 |
+
decrypt: function() {
|
| 26 |
+
return decrypt;
|
| 27 |
+
},
|
| 28 |
+
encrypt: function() {
|
| 29 |
+
return encrypt;
|
| 30 |
+
},
|
| 31 |
+
getActionEncryptionKey: function() {
|
| 32 |
+
return getActionEncryptionKey;
|
| 33 |
+
},
|
| 34 |
+
getClientReferenceManifestForRsc: function() {
|
| 35 |
+
return getClientReferenceManifestForRsc;
|
| 36 |
+
},
|
| 37 |
+
getServerModuleMap: function() {
|
| 38 |
+
return getServerModuleMap;
|
| 39 |
+
},
|
| 40 |
+
setReferenceManifestsSingleton: function() {
|
| 41 |
+
return setReferenceManifestsSingleton;
|
| 42 |
+
},
|
| 43 |
+
stringToUint8Array: function() {
|
| 44 |
+
return stringToUint8Array;
|
| 45 |
+
}
|
| 46 |
+
});
|
| 47 |
+
const _invarianterror = require("../../shared/lib/invariant-error");
|
| 48 |
+
const _apppaths = require("../../shared/lib/router/utils/app-paths");
|
| 49 |
+
const _workasyncstorageexternal = require("./work-async-storage.external");
|
| 50 |
+
let __next_loaded_action_key;
|
| 51 |
+
function arrayBufferToString(buffer) {
|
| 52 |
+
const bytes = new Uint8Array(buffer);
|
| 53 |
+
const len = bytes.byteLength;
|
| 54 |
+
// @anonrig: V8 has a limit of 65535 arguments in a function.
|
| 55 |
+
// For len < 65535, this is faster.
|
| 56 |
+
// https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623
|
| 57 |
+
if (len < 65535) {
|
| 58 |
+
return String.fromCharCode.apply(null, bytes);
|
| 59 |
+
}
|
| 60 |
+
let binary = '';
|
| 61 |
+
for(let i = 0; i < len; i++){
|
| 62 |
+
binary += String.fromCharCode(bytes[i]);
|
| 63 |
+
}
|
| 64 |
+
return binary;
|
| 65 |
+
}
|
| 66 |
+
function stringToUint8Array(binary) {
|
| 67 |
+
const len = binary.length;
|
| 68 |
+
const arr = new Uint8Array(len);
|
| 69 |
+
for(let i = 0; i < len; i++){
|
| 70 |
+
arr[i] = binary.charCodeAt(i);
|
| 71 |
+
}
|
| 72 |
+
return arr;
|
| 73 |
+
}
|
| 74 |
+
function encrypt(key, iv, data) {
|
| 75 |
+
return crypto.subtle.encrypt({
|
| 76 |
+
name: 'AES-GCM',
|
| 77 |
+
iv
|
| 78 |
+
}, key, data);
|
| 79 |
+
}
|
| 80 |
+
function decrypt(key, iv, data) {
|
| 81 |
+
return crypto.subtle.decrypt({
|
| 82 |
+
name: 'AES-GCM',
|
| 83 |
+
iv
|
| 84 |
+
}, key, data);
|
| 85 |
+
}
|
| 86 |
+
// This is a global singleton that is used to encode/decode the action bound args from
|
| 87 |
+
// the closure. This can't be using a AsyncLocalStorage as it might happen on the module
|
| 88 |
+
// level. Since the client reference manifest won't be mutated, let's use a global singleton
|
| 89 |
+
// to keep it.
|
| 90 |
+
const SERVER_ACTION_MANIFESTS_SINGLETON = Symbol.for('next.server.action-manifests');
|
| 91 |
+
function setReferenceManifestsSingleton({ page, clientReferenceManifest, serverActionsManifest, serverModuleMap }) {
|
| 92 |
+
var _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON;
|
| 93 |
+
// @ts-expect-error
|
| 94 |
+
const clientReferenceManifestsPerPage = (_globalThis_SERVER_ACTION_MANIFESTS_SINGLETON = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]) == null ? void 0 : _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON.clientReferenceManifestsPerPage;
|
| 95 |
+
// @ts-expect-error
|
| 96 |
+
globalThis[SERVER_ACTION_MANIFESTS_SINGLETON] = {
|
| 97 |
+
clientReferenceManifestsPerPage: {
|
| 98 |
+
...clientReferenceManifestsPerPage,
|
| 99 |
+
[(0, _apppaths.normalizeAppPath)(page)]: clientReferenceManifest
|
| 100 |
+
},
|
| 101 |
+
serverActionsManifest,
|
| 102 |
+
serverModuleMap
|
| 103 |
+
};
|
| 104 |
+
}
|
| 105 |
+
function getServerModuleMap() {
|
| 106 |
+
const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];
|
| 107 |
+
if (!serverActionsManifestSingleton) {
|
| 108 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), "__NEXT_ERROR_CODE", {
|
| 109 |
+
value: "E606",
|
| 110 |
+
enumerable: false,
|
| 111 |
+
configurable: true
|
| 112 |
+
});
|
| 113 |
+
}
|
| 114 |
+
return serverActionsManifestSingleton.serverModuleMap;
|
| 115 |
+
}
|
| 116 |
+
function getClientReferenceManifestForRsc() {
|
| 117 |
+
const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];
|
| 118 |
+
if (!serverActionsManifestSingleton) {
|
| 119 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), "__NEXT_ERROR_CODE", {
|
| 120 |
+
value: "E606",
|
| 121 |
+
enumerable: false,
|
| 122 |
+
configurable: true
|
| 123 |
+
});
|
| 124 |
+
}
|
| 125 |
+
const { clientReferenceManifestsPerPage } = serverActionsManifestSingleton;
|
| 126 |
+
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
| 127 |
+
if (!workStore) {
|
| 128 |
+
// If there's no work store defined, we can assume that a client reference
|
| 129 |
+
// manifest is needed during module evaluation, e.g. to create a server
|
| 130 |
+
// action using a higher-order function. This might also use client
|
| 131 |
+
// components which need to be serialized by Flight, and therefore client
|
| 132 |
+
// references need to be resolvable. To make this work, we're returning a
|
| 133 |
+
// merged manifest across all pages. This is fine as long as the module IDs
|
| 134 |
+
// are not page specific, which they are not for Webpack. TODO: Fix this in
|
| 135 |
+
// Turbopack.
|
| 136 |
+
return mergeClientReferenceManifests(clientReferenceManifestsPerPage);
|
| 137 |
+
}
|
| 138 |
+
const clientReferenceManifest = clientReferenceManifestsPerPage[workStore.route];
|
| 139 |
+
if (!clientReferenceManifest) {
|
| 140 |
+
throw Object.defineProperty(new _invarianterror.InvariantError(`Missing Client Reference Manifest for ${workStore.route}.`), "__NEXT_ERROR_CODE", {
|
| 141 |
+
value: "E570",
|
| 142 |
+
enumerable: false,
|
| 143 |
+
configurable: true
|
| 144 |
+
});
|
| 145 |
+
}
|
| 146 |
+
return clientReferenceManifest;
|
| 147 |
+
}
|
| 148 |
+
async function getActionEncryptionKey() {
|
| 149 |
+
if (__next_loaded_action_key) {
|
| 150 |
+
return __next_loaded_action_key;
|
| 151 |
+
}
|
| 152 |
+
const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];
|
| 153 |
+
if (!serverActionsManifestSingleton) {
|
| 154 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), "__NEXT_ERROR_CODE", {
|
| 155 |
+
value: "E606",
|
| 156 |
+
enumerable: false,
|
| 157 |
+
configurable: true
|
| 158 |
+
});
|
| 159 |
+
}
|
| 160 |
+
const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifestSingleton.serverActionsManifest.encryptionKey;
|
| 161 |
+
if (rawKey === undefined) {
|
| 162 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('Missing encryption key for Server Actions'), "__NEXT_ERROR_CODE", {
|
| 163 |
+
value: "E571",
|
| 164 |
+
enumerable: false,
|
| 165 |
+
configurable: true
|
| 166 |
+
});
|
| 167 |
+
}
|
| 168 |
+
__next_loaded_action_key = await crypto.subtle.importKey('raw', stringToUint8Array(atob(rawKey)), 'AES-GCM', true, [
|
| 169 |
+
'encrypt',
|
| 170 |
+
'decrypt'
|
| 171 |
+
]);
|
| 172 |
+
return __next_loaded_action_key;
|
| 173 |
+
}
|
| 174 |
+
function mergeClientReferenceManifests(clientReferenceManifestsPerPage) {
|
| 175 |
+
const clientReferenceManifests = Object.values(clientReferenceManifestsPerPage);
|
| 176 |
+
const mergedClientReferenceManifest = {
|
| 177 |
+
clientModules: {},
|
| 178 |
+
edgeRscModuleMapping: {},
|
| 179 |
+
rscModuleMapping: {}
|
| 180 |
+
};
|
| 181 |
+
for (const clientReferenceManifest of clientReferenceManifests){
|
| 182 |
+
mergedClientReferenceManifest.clientModules = {
|
| 183 |
+
...mergedClientReferenceManifest.clientModules,
|
| 184 |
+
...clientReferenceManifest.clientModules
|
| 185 |
+
};
|
| 186 |
+
mergedClientReferenceManifest.edgeRscModuleMapping = {
|
| 187 |
+
...mergedClientReferenceManifest.edgeRscModuleMapping,
|
| 188 |
+
...clientReferenceManifest.edgeRscModuleMapping
|
| 189 |
+
};
|
| 190 |
+
mergedClientReferenceManifest.rscModuleMapping = {
|
| 191 |
+
...mergedClientReferenceManifest.rscModuleMapping,
|
| 192 |
+
...clientReferenceManifest.rscModuleMapping
|
| 193 |
+
};
|
| 194 |
+
}
|
| 195 |
+
return mergedClientReferenceManifest;
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
//# sourceMappingURL=encryption-utils.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/flight-render-result.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "FlightRenderResult", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return FlightRenderResult;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _approuterheaders = require("../../client/components/app-router-headers");
|
| 12 |
+
const _renderresult = /*#__PURE__*/ _interop_require_default(require("../render-result"));
|
| 13 |
+
function _interop_require_default(obj) {
|
| 14 |
+
return obj && obj.__esModule ? obj : {
|
| 15 |
+
default: obj
|
| 16 |
+
};
|
| 17 |
+
}
|
| 18 |
+
class FlightRenderResult extends _renderresult.default {
|
| 19 |
+
constructor(response, metadata = {}){
|
| 20 |
+
super(response, {
|
| 21 |
+
contentType: _approuterheaders.RSC_CONTENT_TYPE_HEADER,
|
| 22 |
+
metadata
|
| 23 |
+
});
|
| 24 |
+
}
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
//# sourceMappingURL=flight-render-result.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-asset-query-string.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "getAssetQueryString", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return getAssetQueryString;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const isDev = process.env.NODE_ENV === 'development';
|
| 12 |
+
const isTurbopack = !!process.env.TURBOPACK;
|
| 13 |
+
function getAssetQueryString(ctx, addTimestamp) {
|
| 14 |
+
let qs = '';
|
| 15 |
+
// In development we add the request timestamp to allow react to
|
| 16 |
+
// reload assets when a new RSC response is received.
|
| 17 |
+
// Turbopack handles HMR of assets itself and react doesn't need to reload them
|
| 18 |
+
// so this approach is not needed for Turbopack.
|
| 19 |
+
const shouldAddVersion = isDev && !isTurbopack && addTimestamp;
|
| 20 |
+
if (shouldAddVersion) {
|
| 21 |
+
qs += `?v=${ctx.requestTimestamp}`;
|
| 22 |
+
}
|
| 23 |
+
if (ctx.renderOpts.deploymentId) {
|
| 24 |
+
qs += `${shouldAddVersion ? '&' : '?'}dpl=${ctx.renderOpts.deploymentId}`;
|
| 25 |
+
}
|
| 26 |
+
return qs;
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
//# sourceMappingURL=get-asset-query-string.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "getLinkAndScriptTags", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return getLinkAndScriptTags;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
function getLinkAndScriptTags(clientReferenceManifest, filePath, injectedCSS, injectedScripts, collectNewImports) {
|
| 12 |
+
var _clientReferenceManifest_entryJSFiles;
|
| 13 |
+
const filePathWithoutExt = filePath.replace(/\.[^.]+$/, '');
|
| 14 |
+
const cssChunks = new Set();
|
| 15 |
+
const jsChunks = new Set();
|
| 16 |
+
const entryCSSFiles = clientReferenceManifest.entryCSSFiles[filePathWithoutExt];
|
| 17 |
+
const entryJSFiles = ((_clientReferenceManifest_entryJSFiles = clientReferenceManifest.entryJSFiles) == null ? void 0 : _clientReferenceManifest_entryJSFiles[filePathWithoutExt]) ?? [];
|
| 18 |
+
if (entryCSSFiles) {
|
| 19 |
+
for (const css of entryCSSFiles){
|
| 20 |
+
if (!injectedCSS.has(css.path)) {
|
| 21 |
+
if (collectNewImports) {
|
| 22 |
+
injectedCSS.add(css.path);
|
| 23 |
+
}
|
| 24 |
+
cssChunks.add(css);
|
| 25 |
+
}
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
if (entryJSFiles) {
|
| 29 |
+
for (const file of entryJSFiles){
|
| 30 |
+
if (!injectedScripts.has(file)) {
|
| 31 |
+
if (collectNewImports) {
|
| 32 |
+
injectedScripts.add(file);
|
| 33 |
+
}
|
| 34 |
+
jsChunks.add(file);
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
return {
|
| 39 |
+
styles: [
|
| 40 |
+
...cssChunks
|
| 41 |
+
],
|
| 42 |
+
scripts: [
|
| 43 |
+
...jsChunks
|
| 44 |
+
]
|
| 45 |
+
};
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
//# sourceMappingURL=get-css-inlined-link-tags.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-layer-assets.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "getLayerAssets", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return getLayerAssets;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _jsxruntime = require("react/jsx-runtime");
|
| 12 |
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
| 13 |
+
const _getcssinlinedlinktags = require("./get-css-inlined-link-tags");
|
| 14 |
+
const _getpreloadablefonts = require("./get-preloadable-fonts");
|
| 15 |
+
const _getassetquerystring = require("./get-asset-query-string");
|
| 16 |
+
const _encodeuripath = require("../../shared/lib/encode-uri-path");
|
| 17 |
+
const _rendercssresource = require("./render-css-resource");
|
| 18 |
+
function _interop_require_default(obj) {
|
| 19 |
+
return obj && obj.__esModule ? obj : {
|
| 20 |
+
default: obj
|
| 21 |
+
};
|
| 22 |
+
}
|
| 23 |
+
function getLayerAssets({ ctx, layoutOrPagePath, injectedCSS: injectedCSSWithCurrentLayout, injectedJS: injectedJSWithCurrentLayout, injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout, preloadCallbacks }) {
|
| 24 |
+
const { styles: styleTags, scripts: scriptTags } = layoutOrPagePath ? (0, _getcssinlinedlinktags.getLinkAndScriptTags)(ctx.clientReferenceManifest, layoutOrPagePath, injectedCSSWithCurrentLayout, injectedJSWithCurrentLayout, true) : {
|
| 25 |
+
styles: [],
|
| 26 |
+
scripts: []
|
| 27 |
+
};
|
| 28 |
+
const preloadedFontFiles = layoutOrPagePath ? (0, _getpreloadablefonts.getPreloadableFonts)(ctx.renderOpts.nextFontManifest, layoutOrPagePath, injectedFontPreloadTagsWithCurrentLayout) : null;
|
| 29 |
+
if (preloadedFontFiles) {
|
| 30 |
+
if (preloadedFontFiles.length) {
|
| 31 |
+
for(let i = 0; i < preloadedFontFiles.length; i++){
|
| 32 |
+
const fontFilename = preloadedFontFiles[i];
|
| 33 |
+
const ext = /\.(woff|woff2|eot|ttf|otf)$/.exec(fontFilename)[1];
|
| 34 |
+
const type = `font/${ext}`;
|
| 35 |
+
const href = `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFilename)}`;
|
| 36 |
+
preloadCallbacks.push(()=>{
|
| 37 |
+
ctx.componentMod.preloadFont(href, type, ctx.renderOpts.crossOrigin, ctx.nonce);
|
| 38 |
+
});
|
| 39 |
+
}
|
| 40 |
+
} else {
|
| 41 |
+
try {
|
| 42 |
+
let url = new URL(ctx.assetPrefix);
|
| 43 |
+
preloadCallbacks.push(()=>{
|
| 44 |
+
ctx.componentMod.preconnect(url.origin, 'anonymous', ctx.nonce);
|
| 45 |
+
});
|
| 46 |
+
} catch (error) {
|
| 47 |
+
// assetPrefix must not be a fully qualified domain name. We assume
|
| 48 |
+
// we should preconnect to same origin instead
|
| 49 |
+
preloadCallbacks.push(()=>{
|
| 50 |
+
ctx.componentMod.preconnect('/', 'anonymous', ctx.nonce);
|
| 51 |
+
});
|
| 52 |
+
}
|
| 53 |
+
}
|
| 54 |
+
}
|
| 55 |
+
const styles = (0, _rendercssresource.renderCssResource)(styleTags, ctx, preloadCallbacks);
|
| 56 |
+
const scripts = scriptTags ? scriptTags.map((href, index)=>{
|
| 57 |
+
const fullSrc = `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(href)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`;
|
| 58 |
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)("script", {
|
| 59 |
+
src: fullSrc,
|
| 60 |
+
async: true,
|
| 61 |
+
nonce: ctx.nonce
|
| 62 |
+
}, `script-${index}`);
|
| 63 |
+
}) : [];
|
| 64 |
+
return styles.length || scripts.length ? [
|
| 65 |
+
...styles,
|
| 66 |
+
...scripts
|
| 67 |
+
] : null;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
//# sourceMappingURL=get-layer-assets.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-preloadable-fonts.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "getPreloadableFonts", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return getPreloadableFonts;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
function getPreloadableFonts(nextFontManifest, filePath, injectedFontPreloadTags) {
|
| 12 |
+
if (!nextFontManifest || !filePath) {
|
| 13 |
+
return null;
|
| 14 |
+
}
|
| 15 |
+
const filepathWithoutExtension = filePath.replace(/\.[^.]+$/, '');
|
| 16 |
+
const fontFiles = new Set();
|
| 17 |
+
let foundFontUsage = false;
|
| 18 |
+
const preloadedFontFiles = nextFontManifest.app[filepathWithoutExtension];
|
| 19 |
+
if (preloadedFontFiles) {
|
| 20 |
+
foundFontUsage = true;
|
| 21 |
+
for (const fontFile of preloadedFontFiles){
|
| 22 |
+
if (!injectedFontPreloadTags.has(fontFile)) {
|
| 23 |
+
fontFiles.add(fontFile);
|
| 24 |
+
injectedFontPreloadTags.add(fontFile);
|
| 25 |
+
}
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
if (fontFiles.size) {
|
| 29 |
+
return [
|
| 30 |
+
...fontFiles
|
| 31 |
+
].sort();
|
| 32 |
+
} else if (foundFontUsage && injectedFontPreloadTags.size === 0) {
|
| 33 |
+
return [];
|
| 34 |
+
} else {
|
| 35 |
+
return null;
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
//# sourceMappingURL=get-preloadable-fonts.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "getScriptNonceFromHeader", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return getScriptNonceFromHeader;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _htmlescape = require("../htmlescape");
|
| 12 |
+
function getScriptNonceFromHeader(cspHeaderValue) {
|
| 13 |
+
var _directive_split_slice_map_find;
|
| 14 |
+
const directives = cspHeaderValue// Directives are split by ';'.
|
| 15 |
+
.split(';').map((directive)=>directive.trim());
|
| 16 |
+
// First try to find the directive for the 'script-src', otherwise try to
|
| 17 |
+
// fallback to the 'default-src'.
|
| 18 |
+
const directive = directives.find((dir)=>dir.startsWith('script-src')) || directives.find((dir)=>dir.startsWith('default-src'));
|
| 19 |
+
// If no directive could be found, then we're done.
|
| 20 |
+
if (!directive) {
|
| 21 |
+
return;
|
| 22 |
+
}
|
| 23 |
+
// Extract the nonce from the directive
|
| 24 |
+
const nonce = (_directive_split_slice_map_find = directive.split(' ')// Remove the 'strict-src'/'default-src' string, this can't be the nonce.
|
| 25 |
+
.slice(1).map((source)=>source.trim())// Find the first source with the 'nonce-' prefix.
|
| 26 |
+
.find((source)=>source.startsWith("'nonce-") && source.length > 8 && source.endsWith("'"))) == null ? void 0 : _directive_split_slice_map_find.slice(7, -1);
|
| 27 |
+
// If we could't find the nonce, then we're done.
|
| 28 |
+
if (!nonce) {
|
| 29 |
+
return;
|
| 30 |
+
}
|
| 31 |
+
// Don't accept the nonce value if it contains HTML escape characters.
|
| 32 |
+
// Technically, the spec requires a base64'd value, but this is just an
|
| 33 |
+
// extra layer.
|
| 34 |
+
if (_htmlescape.ESCAPE_REGEX.test(nonce)) {
|
| 35 |
+
throw Object.defineProperty(new Error('Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters'), "__NEXT_ERROR_CODE", {
|
| 36 |
+
value: "E440",
|
| 37 |
+
enumerable: false,
|
| 38 |
+
configurable: true
|
| 39 |
+
});
|
| 40 |
+
}
|
| 41 |
+
return nonce;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
//# sourceMappingURL=get-script-nonce-from-header.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-segment-param.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "getSegmentParam", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return getSegmentParam;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _interceptionroutes = require("../../shared/lib/router/utils/interception-routes");
|
| 12 |
+
function getSegmentParam(segment) {
|
| 13 |
+
const interceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((marker)=>segment.startsWith(marker));
|
| 14 |
+
// if an interception marker is part of the path segment, we need to jump ahead
|
| 15 |
+
// to the relevant portion for param parsing
|
| 16 |
+
if (interceptionMarker) {
|
| 17 |
+
segment = segment.slice(interceptionMarker.length);
|
| 18 |
+
}
|
| 19 |
+
if (segment.startsWith('[[...') && segment.endsWith(']]')) {
|
| 20 |
+
return {
|
| 21 |
+
// TODO-APP: Optional catchall does not currently work with parallel routes,
|
| 22 |
+
// so for now aren't handling a potential interception marker.
|
| 23 |
+
type: 'optional-catchall',
|
| 24 |
+
param: segment.slice(5, -2)
|
| 25 |
+
};
|
| 26 |
+
}
|
| 27 |
+
if (segment.startsWith('[...') && segment.endsWith(']')) {
|
| 28 |
+
return {
|
| 29 |
+
type: interceptionMarker ? 'catchall-intercepted' : 'catchall',
|
| 30 |
+
param: segment.slice(4, -1)
|
| 31 |
+
};
|
| 32 |
+
}
|
| 33 |
+
if (segment.startsWith('[') && segment.endsWith(']')) {
|
| 34 |
+
return {
|
| 35 |
+
type: interceptionMarker ? 'dynamic-intercepted' : 'dynamic',
|
| 36 |
+
param: segment.slice(1, -1)
|
| 37 |
+
};
|
| 38 |
+
}
|
| 39 |
+
return null;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
//# sourceMappingURL=get-segment-param.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
dynamicParamTypes: null,
|
| 7 |
+
getShortDynamicParamType: null
|
| 8 |
+
});
|
| 9 |
+
function _export(target, all) {
|
| 10 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: all[name]
|
| 13 |
+
});
|
| 14 |
+
}
|
| 15 |
+
_export(exports, {
|
| 16 |
+
dynamicParamTypes: function() {
|
| 17 |
+
return dynamicParamTypes;
|
| 18 |
+
},
|
| 19 |
+
getShortDynamicParamType: function() {
|
| 20 |
+
return getShortDynamicParamType;
|
| 21 |
+
}
|
| 22 |
+
});
|
| 23 |
+
const dynamicParamTypes = {
|
| 24 |
+
catchall: 'c',
|
| 25 |
+
'catchall-intercepted': 'ci',
|
| 26 |
+
'optional-catchall': 'oc',
|
| 27 |
+
dynamic: 'd',
|
| 28 |
+
'dynamic-intercepted': 'di'
|
| 29 |
+
};
|
| 30 |
+
function getShortDynamicParamType(type) {
|
| 31 |
+
const short = dynamicParamTypes[type];
|
| 32 |
+
if (!short) {
|
| 33 |
+
throw Object.defineProperty(new Error('Unknown dynamic param type'), "__NEXT_ERROR_CODE", {
|
| 34 |
+
value: "E378",
|
| 35 |
+
enumerable: false,
|
| 36 |
+
configurable: true
|
| 37 |
+
});
|
| 38 |
+
}
|
| 39 |
+
return short;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
//# sourceMappingURL=get-short-dynamic-param-type.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "hasLoadingComponentInTree", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return hasLoadingComponentInTree;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
function hasLoadingComponentInTree(tree) {
|
| 12 |
+
const [, parallelRoutes, { loading }] = tree;
|
| 13 |
+
if (loading) {
|
| 14 |
+
return true;
|
| 15 |
+
}
|
| 16 |
+
return Object.values(parallelRoutes).some((parallelRoute)=>hasLoadingComponentInTree(parallelRoute));
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
//# sourceMappingURL=has-loading-component-in-tree.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/interop-default.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* Interop between "export default" and "module.exports".
|
| 3 |
+
*/ "use strict";
|
| 4 |
+
Object.defineProperty(exports, "__esModule", {
|
| 5 |
+
value: true
|
| 6 |
+
});
|
| 7 |
+
Object.defineProperty(exports, "interopDefault", {
|
| 8 |
+
enumerable: true,
|
| 9 |
+
get: function() {
|
| 10 |
+
return interopDefault;
|
| 11 |
+
}
|
| 12 |
+
});
|
| 13 |
+
function interopDefault(mod) {
|
| 14 |
+
return mod.default || mod;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
//# sourceMappingURL=interop-default.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "makeGetServerInsertedHTML", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return makeGetServerInsertedHTML;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _jsxruntime = require("react/jsx-runtime");
|
| 12 |
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
| 13 |
+
const _httpaccessfallback = require("../../client/components/http-access-fallback/http-access-fallback");
|
| 14 |
+
const _redirect = require("../../client/components/redirect");
|
| 15 |
+
const _redirecterror = require("../../client/components/redirect-error");
|
| 16 |
+
const _server = require("react-dom/server");
|
| 17 |
+
const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper");
|
| 18 |
+
const _redirectstatuscode = require("../../client/components/redirect-status-code");
|
| 19 |
+
const _addpathprefix = require("../../shared/lib/router/utils/add-path-prefix");
|
| 20 |
+
function _interop_require_default(obj) {
|
| 21 |
+
return obj && obj.__esModule ? obj : {
|
| 22 |
+
default: obj
|
| 23 |
+
};
|
| 24 |
+
}
|
| 25 |
+
function makeGetServerInsertedHTML({ polyfills, renderServerInsertedHTML, serverCapturedErrors, tracingMetadata, basePath }) {
|
| 26 |
+
let flushedErrorMetaTagsUntilIndex = 0;
|
| 27 |
+
// flag for static content that only needs to be flushed once
|
| 28 |
+
let hasFlushedInitially = false;
|
| 29 |
+
const polyfillTags = polyfills.map((polyfill)=>{
|
| 30 |
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)("script", {
|
| 31 |
+
...polyfill
|
| 32 |
+
}, polyfill.src);
|
| 33 |
+
});
|
| 34 |
+
return async function getServerInsertedHTML() {
|
| 35 |
+
// Loop through all the errors that have been captured but not yet
|
| 36 |
+
// flushed.
|
| 37 |
+
const errorMetaTags = [];
|
| 38 |
+
while(flushedErrorMetaTagsUntilIndex < serverCapturedErrors.length){
|
| 39 |
+
const error = serverCapturedErrors[flushedErrorMetaTagsUntilIndex];
|
| 40 |
+
flushedErrorMetaTagsUntilIndex++;
|
| 41 |
+
if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {
|
| 42 |
+
errorMetaTags.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
|
| 43 |
+
name: "robots",
|
| 44 |
+
content: "noindex"
|
| 45 |
+
}, error.digest), process.env.NODE_ENV === 'development' ? /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
|
| 46 |
+
name: "next-error",
|
| 47 |
+
content: "not-found"
|
| 48 |
+
}, "next-error") : null);
|
| 49 |
+
} else if ((0, _redirecterror.isRedirectError)(error)) {
|
| 50 |
+
const redirectUrl = (0, _addpathprefix.addPathPrefix)((0, _redirect.getURLFromRedirectError)(error), basePath);
|
| 51 |
+
const statusCode = (0, _redirect.getRedirectStatusCodeFromError)(error);
|
| 52 |
+
const isPermanent = statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect ? true : false;
|
| 53 |
+
if (redirectUrl) {
|
| 54 |
+
errorMetaTags.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
|
| 55 |
+
id: "__next-page-redirect",
|
| 56 |
+
httpEquiv: "refresh",
|
| 57 |
+
content: `${isPermanent ? 0 : 1};url=${redirectUrl}`
|
| 58 |
+
}, error.digest));
|
| 59 |
+
}
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
const traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
|
| 63 |
+
name: key,
|
| 64 |
+
content: value
|
| 65 |
+
}, `next-trace-data-${index}`));
|
| 66 |
+
const serverInsertedHTML = renderServerInsertedHTML();
|
| 67 |
+
// Skip React rendering if we know the content is empty.
|
| 68 |
+
if (polyfillTags.length === 0 && traceMetaTags.length === 0 && errorMetaTags.length === 0 && Array.isArray(serverInsertedHTML) && serverInsertedHTML.length === 0) {
|
| 69 |
+
return '';
|
| 70 |
+
}
|
| 71 |
+
const stream = await (0, _server.renderToReadableStream)(/*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
| 72 |
+
children: [
|
| 73 |
+
/* Insert the polyfills if they haven't been flushed yet. */ hasFlushedInitially ? null : polyfillTags,
|
| 74 |
+
serverInsertedHTML,
|
| 75 |
+
hasFlushedInitially ? null : traceMetaTags,
|
| 76 |
+
errorMetaTags
|
| 77 |
+
]
|
| 78 |
+
}), {
|
| 79 |
+
// Larger chunk because this isn't sent over the network.
|
| 80 |
+
// Let's set it to 1MB.
|
| 81 |
+
progressiveChunkSize: 1024 * 1024
|
| 82 |
+
});
|
| 83 |
+
hasFlushedInitially = true;
|
| 84 |
+
// There's no need to wait for the stream to be ready
|
| 85 |
+
// e.g. calling `await stream.allReady` because `streamToString` will
|
| 86 |
+
// wait and decode the stream progressively with better parallelism.
|
| 87 |
+
return (0, _nodewebstreamshelper.streamToString)(stream);
|
| 88 |
+
};
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
//# sourceMappingURL=make-get-server-inserted-html.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* For chromium based browsers (Chrome, Edge, etc.) and Safari,
|
| 3 |
+
* icons need to stay under <head> to be picked up by the browser.
|
| 4 |
+
*
|
| 5 |
+
*/ "use strict";
|
| 6 |
+
Object.defineProperty(exports, "__esModule", {
|
| 7 |
+
value: true
|
| 8 |
+
});
|
| 9 |
+
Object.defineProperty(exports, "createServerInsertedMetadata", {
|
| 10 |
+
enumerable: true,
|
| 11 |
+
get: function() {
|
| 12 |
+
return createServerInsertedMetadata;
|
| 13 |
+
}
|
| 14 |
+
});
|
| 15 |
+
const REINSERT_ICON_SCRIPT = `\
|
| 16 |
+
document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))`;
|
| 17 |
+
function createServerInsertedMetadata(nonce) {
|
| 18 |
+
let inserted = false;
|
| 19 |
+
return async function getServerInsertedMetadata() {
|
| 20 |
+
if (inserted) {
|
| 21 |
+
return '';
|
| 22 |
+
}
|
| 23 |
+
inserted = true;
|
| 24 |
+
return `<script ${nonce ? `nonce="${nonce}"` : ''}>${REINSERT_ICON_SCRIPT}</script>`;
|
| 25 |
+
};
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
//# sourceMappingURL=create-server-inserted-metadata.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// NOTE: this is marked as shared/external because it's stateful
|
| 2 |
+
// and the state needs to be shared between app-render (which waits for pending imports)
|
| 3 |
+
// and helpers used in transformed page code (which register pending imports)
|
| 4 |
+
"use strict";
|
| 5 |
+
Object.defineProperty(exports, "__esModule", {
|
| 6 |
+
value: true
|
| 7 |
+
});
|
| 8 |
+
0 && (module.exports = {
|
| 9 |
+
trackPendingChunkLoad: null,
|
| 10 |
+
trackPendingImport: null,
|
| 11 |
+
trackPendingModules: null
|
| 12 |
+
});
|
| 13 |
+
function _export(target, all) {
|
| 14 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 15 |
+
enumerable: true,
|
| 16 |
+
get: all[name]
|
| 17 |
+
});
|
| 18 |
+
}
|
| 19 |
+
_export(exports, {
|
| 20 |
+
trackPendingChunkLoad: function() {
|
| 21 |
+
return _trackmoduleloadinginstance.trackPendingChunkLoad;
|
| 22 |
+
},
|
| 23 |
+
trackPendingImport: function() {
|
| 24 |
+
return _trackmoduleloadinginstance.trackPendingImport;
|
| 25 |
+
},
|
| 26 |
+
trackPendingModules: function() {
|
| 27 |
+
return _trackmoduleloadinginstance.trackPendingModules;
|
| 28 |
+
}
|
| 29 |
+
});
|
| 30 |
+
const _trackmoduleloadinginstance = require("./track-module-loading.instance");
|
| 31 |
+
|
| 32 |
+
//# sourceMappingURL=track-module-loading.external.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
trackPendingChunkLoad: null,
|
| 7 |
+
trackPendingImport: null,
|
| 8 |
+
trackPendingModules: null
|
| 9 |
+
});
|
| 10 |
+
function _export(target, all) {
|
| 11 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 12 |
+
enumerable: true,
|
| 13 |
+
get: all[name]
|
| 14 |
+
});
|
| 15 |
+
}
|
| 16 |
+
_export(exports, {
|
| 17 |
+
trackPendingChunkLoad: function() {
|
| 18 |
+
return trackPendingChunkLoad;
|
| 19 |
+
},
|
| 20 |
+
trackPendingImport: function() {
|
| 21 |
+
return trackPendingImport;
|
| 22 |
+
},
|
| 23 |
+
trackPendingModules: function() {
|
| 24 |
+
return trackPendingModules;
|
| 25 |
+
}
|
| 26 |
+
});
|
| 27 |
+
const _cachesignal = require("../cache-signal");
|
| 28 |
+
const _isthenable = require("../../../shared/lib/is-thenable");
|
| 29 |
+
/**
|
| 30 |
+
* Tracks all in-flight async imports and chunk loads.
|
| 31 |
+
* Initialized lazily, because we don't want this to error in case it gets pulled into an edge runtime module.
|
| 32 |
+
*/ let _moduleLoadingSignal;
|
| 33 |
+
function getModuleLoadingSignal() {
|
| 34 |
+
if (!_moduleLoadingSignal) {
|
| 35 |
+
_moduleLoadingSignal = new _cachesignal.CacheSignal();
|
| 36 |
+
}
|
| 37 |
+
return _moduleLoadingSignal;
|
| 38 |
+
}
|
| 39 |
+
function trackPendingChunkLoad(promise) {
|
| 40 |
+
const moduleLoadingSignal = getModuleLoadingSignal();
|
| 41 |
+
moduleLoadingSignal.trackRead(promise);
|
| 42 |
+
}
|
| 43 |
+
function trackPendingImport(exportsOrPromise) {
|
| 44 |
+
const moduleLoadingSignal = getModuleLoadingSignal();
|
| 45 |
+
// requiring an async module returns a promise.
|
| 46 |
+
// if it's sync, there's nothing to track.
|
| 47 |
+
if ((0, _isthenable.isThenable)(exportsOrPromise)) {
|
| 48 |
+
// A client reference proxy might look like a promise, but we can only call `.then()` on it, not e.g. `.finally()`.
|
| 49 |
+
// Turn it into a real promise to avoid issues elsewhere.
|
| 50 |
+
const promise = Promise.resolve(exportsOrPromise);
|
| 51 |
+
moduleLoadingSignal.trackRead(promise);
|
| 52 |
+
}
|
| 53 |
+
}
|
| 54 |
+
function trackPendingModules(cacheSignal) {
|
| 55 |
+
const moduleLoadingSignal = getModuleLoadingSignal();
|
| 56 |
+
// We can't just use `cacheSignal.trackRead(moduleLoadingSignal.cacheReady())`,
|
| 57 |
+
// because we might start and finish multiple batches of module loads while waiting for caches,
|
| 58 |
+
// and `moduleLoadingSignal.cacheReady()` would resolve after the first batch.
|
| 59 |
+
// Instead, we'll keep notifying `cacheSignal` of each import/chunk-load.
|
| 60 |
+
const unsubscribe = moduleLoadingSignal.subscribeToReads(cacheSignal);
|
| 61 |
+
// Later, when `cacheSignal` is no longer waiting for any caches (or imports that we've notified it of),
|
| 62 |
+
// we can unsubscribe it.
|
| 63 |
+
cacheSignal.cacheReady().then(unsubscribe);
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
//# sourceMappingURL=track-module-loading.instance.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "parseAndValidateFlightRouterState", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return parseAndValidateFlightRouterState;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _types = require("./types");
|
| 12 |
+
const _superstruct = require("next/dist/compiled/superstruct");
|
| 13 |
+
function parseAndValidateFlightRouterState(stateHeader) {
|
| 14 |
+
if (typeof stateHeader === 'undefined') {
|
| 15 |
+
return undefined;
|
| 16 |
+
}
|
| 17 |
+
if (Array.isArray(stateHeader)) {
|
| 18 |
+
throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), "__NEXT_ERROR_CODE", {
|
| 19 |
+
value: "E418",
|
| 20 |
+
enumerable: false,
|
| 21 |
+
configurable: true
|
| 22 |
+
});
|
| 23 |
+
}
|
| 24 |
+
// We limit the size of the router state header to ~40kb. This is to prevent
|
| 25 |
+
// a malicious user from sending a very large header and slowing down the
|
| 26 |
+
// resolving of the router state.
|
| 27 |
+
// This is around 2,000 nested or parallel route segment states:
|
| 28 |
+
// '{"children":["",{}]}'.length === 20.
|
| 29 |
+
if (stateHeader.length > 20 * 2000) {
|
| 30 |
+
throw Object.defineProperty(new Error('The router state header was too large.'), "__NEXT_ERROR_CODE", {
|
| 31 |
+
value: "E142",
|
| 32 |
+
enumerable: false,
|
| 33 |
+
configurable: true
|
| 34 |
+
});
|
| 35 |
+
}
|
| 36 |
+
try {
|
| 37 |
+
const state = JSON.parse(decodeURIComponent(stateHeader));
|
| 38 |
+
(0, _superstruct.assert)(state, _types.flightRouterStateSchema);
|
| 39 |
+
return state;
|
| 40 |
+
} catch {
|
| 41 |
+
throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), "__NEXT_ERROR_CODE", {
|
| 42 |
+
value: "E10",
|
| 43 |
+
enumerable: false,
|
| 44 |
+
configurable: true
|
| 45 |
+
});
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
//# sourceMappingURL=parse-and-validate-flight-router-state.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/parse-loader-tree.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "parseLoaderTree", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return parseLoaderTree;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _segment = require("../../shared/lib/segment");
|
| 12 |
+
function parseLoaderTree(tree) {
|
| 13 |
+
const [segment, parallelRoutes, modules] = tree;
|
| 14 |
+
const { layout, template } = modules;
|
| 15 |
+
let { page } = modules;
|
| 16 |
+
// a __DEFAULT__ segment means that this route didn't match any of the
|
| 17 |
+
// segments in the route, so we should use the default page
|
| 18 |
+
page = segment === _segment.DEFAULT_SEGMENT_KEY ? modules.defaultPage : page;
|
| 19 |
+
const conventionPath = (layout == null ? void 0 : layout[1]) || (template == null ? void 0 : template[1]) || (page == null ? void 0 : page[1]);
|
| 20 |
+
return {
|
| 21 |
+
page,
|
| 22 |
+
segment,
|
| 23 |
+
modules,
|
| 24 |
+
/* it can be either layout / template / page */ conventionPath,
|
| 25 |
+
parallelRoutes
|
| 26 |
+
};
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
//# sourceMappingURL=parse-loader-tree.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/postponed-state.js
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
DynamicState: null,
|
| 7 |
+
getDynamicDataPostponedState: null,
|
| 8 |
+
getDynamicHTMLPostponedState: null,
|
| 9 |
+
getPostponedFromState: null,
|
| 10 |
+
parsePostponedState: null
|
| 11 |
+
});
|
| 12 |
+
function _export(target, all) {
|
| 13 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 14 |
+
enumerable: true,
|
| 15 |
+
get: all[name]
|
| 16 |
+
});
|
| 17 |
+
}
|
| 18 |
+
_export(exports, {
|
| 19 |
+
DynamicState: function() {
|
| 20 |
+
return DynamicState;
|
| 21 |
+
},
|
| 22 |
+
getDynamicDataPostponedState: function() {
|
| 23 |
+
return getDynamicDataPostponedState;
|
| 24 |
+
},
|
| 25 |
+
getDynamicHTMLPostponedState: function() {
|
| 26 |
+
return getDynamicHTMLPostponedState;
|
| 27 |
+
},
|
| 28 |
+
getPostponedFromState: function() {
|
| 29 |
+
return getPostponedFromState;
|
| 30 |
+
},
|
| 31 |
+
parsePostponedState: function() {
|
| 32 |
+
return parsePostponedState;
|
| 33 |
+
}
|
| 34 |
+
});
|
| 35 |
+
const _resumedatacache = require("../resume-data-cache/resume-data-cache");
|
| 36 |
+
var DynamicState = /*#__PURE__*/ function(DynamicState) {
|
| 37 |
+
/**
|
| 38 |
+
* The dynamic access occurred during the RSC render phase.
|
| 39 |
+
*/ DynamicState[DynamicState["DATA"] = 1] = "DATA";
|
| 40 |
+
/**
|
| 41 |
+
* The dynamic access occurred during the HTML shell render phase.
|
| 42 |
+
*/ DynamicState[DynamicState["HTML"] = 2] = "HTML";
|
| 43 |
+
return DynamicState;
|
| 44 |
+
}({});
|
| 45 |
+
async function getDynamicHTMLPostponedState(data, fallbackRouteParams, resumeDataCache) {
|
| 46 |
+
if (!fallbackRouteParams || fallbackRouteParams.size === 0) {
|
| 47 |
+
const postponedString = JSON.stringify(data);
|
| 48 |
+
// Serialized as `<postponedString.length>:<postponedString><renderResumeDataCache>`
|
| 49 |
+
return `${postponedString.length}:${postponedString}${await (0, _resumedatacache.stringifyResumeDataCache)((0, _resumedatacache.createRenderResumeDataCache)(resumeDataCache))}`;
|
| 50 |
+
}
|
| 51 |
+
const replacements = Array.from(fallbackRouteParams);
|
| 52 |
+
const replacementsString = JSON.stringify(replacements);
|
| 53 |
+
const dataString = JSON.stringify(data);
|
| 54 |
+
// Serialized as `<replacements.length><replacements><data>`
|
| 55 |
+
const postponedString = `${replacementsString.length}${replacementsString}${dataString}`;
|
| 56 |
+
// Serialized as `<postponedString.length>:<postponedString><renderResumeDataCache>`
|
| 57 |
+
return `${postponedString.length}:${postponedString}${await (0, _resumedatacache.stringifyResumeDataCache)(resumeDataCache)}`;
|
| 58 |
+
}
|
| 59 |
+
async function getDynamicDataPostponedState(resumeDataCache) {
|
| 60 |
+
return `4:null${await (0, _resumedatacache.stringifyResumeDataCache)((0, _resumedatacache.createRenderResumeDataCache)(resumeDataCache))}`;
|
| 61 |
+
}
|
| 62 |
+
function parsePostponedState(state, params) {
|
| 63 |
+
try {
|
| 64 |
+
var _state_match;
|
| 65 |
+
const postponedStringLengthMatch = (_state_match = state.match(/^([0-9]*):/)) == null ? void 0 : _state_match[1];
|
| 66 |
+
if (!postponedStringLengthMatch) {
|
| 67 |
+
throw Object.defineProperty(new Error(`Invariant: invalid postponed state ${state}`), "__NEXT_ERROR_CODE", {
|
| 68 |
+
value: "E314",
|
| 69 |
+
enumerable: false,
|
| 70 |
+
configurable: true
|
| 71 |
+
});
|
| 72 |
+
}
|
| 73 |
+
const postponedStringLength = parseInt(postponedStringLengthMatch);
|
| 74 |
+
// We add a `:` to the end of the length as the first character of the
|
| 75 |
+
// postponed string is the length of the replacement entries.
|
| 76 |
+
const postponedString = state.slice(postponedStringLengthMatch.length + 1, postponedStringLengthMatch.length + postponedStringLength + 1);
|
| 77 |
+
const renderResumeDataCache = (0, _resumedatacache.createRenderResumeDataCache)(state.slice(postponedStringLengthMatch.length + postponedStringLength + 1));
|
| 78 |
+
try {
|
| 79 |
+
if (postponedString === 'null') {
|
| 80 |
+
return {
|
| 81 |
+
type: 1,
|
| 82 |
+
renderResumeDataCache
|
| 83 |
+
};
|
| 84 |
+
}
|
| 85 |
+
if (/^[0-9]/.test(postponedString)) {
|
| 86 |
+
var _postponedString_match;
|
| 87 |
+
const match = (_postponedString_match = postponedString.match(/^([0-9]*)/)) == null ? void 0 : _postponedString_match[1];
|
| 88 |
+
if (!match) {
|
| 89 |
+
throw Object.defineProperty(new Error(`Invariant: invalid postponed state ${JSON.stringify(postponedString)}`), "__NEXT_ERROR_CODE", {
|
| 90 |
+
value: "E314",
|
| 91 |
+
enumerable: false,
|
| 92 |
+
configurable: true
|
| 93 |
+
});
|
| 94 |
+
}
|
| 95 |
+
// This is the length of the replacements entries.
|
| 96 |
+
const length = parseInt(match);
|
| 97 |
+
const replacements = JSON.parse(postponedString.slice(match.length, // We then go to the end of the string.
|
| 98 |
+
match.length + length));
|
| 99 |
+
let postponed = postponedString.slice(match.length + length);
|
| 100 |
+
for (const [key, searchValue] of replacements){
|
| 101 |
+
const value = (params == null ? void 0 : params[key]) ?? '';
|
| 102 |
+
const replaceValue = Array.isArray(value) ? value.join('/') : value;
|
| 103 |
+
postponed = postponed.replaceAll(searchValue, replaceValue);
|
| 104 |
+
}
|
| 105 |
+
return {
|
| 106 |
+
type: 2,
|
| 107 |
+
data: JSON.parse(postponed),
|
| 108 |
+
renderResumeDataCache
|
| 109 |
+
};
|
| 110 |
+
}
|
| 111 |
+
return {
|
| 112 |
+
type: 2,
|
| 113 |
+
data: JSON.parse(postponedString),
|
| 114 |
+
renderResumeDataCache
|
| 115 |
+
};
|
| 116 |
+
} catch (err) {
|
| 117 |
+
console.error('Failed to parse postponed state', err);
|
| 118 |
+
return {
|
| 119 |
+
type: 1,
|
| 120 |
+
renderResumeDataCache
|
| 121 |
+
};
|
| 122 |
+
}
|
| 123 |
+
} catch (err) {
|
| 124 |
+
console.error('Failed to parse postponed state', err);
|
| 125 |
+
return {
|
| 126 |
+
type: 1,
|
| 127 |
+
renderResumeDataCache: (0, _resumedatacache.createPrerenderResumeDataCache)()
|
| 128 |
+
};
|
| 129 |
+
}
|
| 130 |
+
}
|
| 131 |
+
function getPostponedFromState(state) {
|
| 132 |
+
if (state.type === 1) {
|
| 133 |
+
return null;
|
| 134 |
+
}
|
| 135 |
+
return state.data;
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
//# sourceMappingURL=postponed-state.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/prospective-render-utils.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "printDebugThrownValueForProspectiveRender", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return printDebugThrownValueForProspectiveRender;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _createerrorhandler = require("./create-error-handler");
|
| 12 |
+
const _reactlargeshellerror = require("./react-large-shell-error");
|
| 13 |
+
function printDebugThrownValueForProspectiveRender(thrownValue, route) {
|
| 14 |
+
// We don't need to print well-known Next.js errors.
|
| 15 |
+
if ((0, _createerrorhandler.getDigestForWellKnownError)(thrownValue)) {
|
| 16 |
+
return;
|
| 17 |
+
}
|
| 18 |
+
if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {
|
| 19 |
+
// TODO: Aggregate
|
| 20 |
+
console.error(thrownValue);
|
| 21 |
+
return undefined;
|
| 22 |
+
}
|
| 23 |
+
let message;
|
| 24 |
+
if (typeof thrownValue === 'object' && thrownValue !== null && typeof thrownValue.message === 'string') {
|
| 25 |
+
message = thrownValue.message;
|
| 26 |
+
if (typeof thrownValue.stack === 'string') {
|
| 27 |
+
const originalErrorStack = thrownValue.stack;
|
| 28 |
+
const stackStart = originalErrorStack.indexOf('\n');
|
| 29 |
+
if (stackStart > -1) {
|
| 30 |
+
const error = Object.defineProperty(new Error(`Route ${route} errored during the prospective render. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled.
|
| 31 |
+
|
| 32 |
+
Original Error: ${message}`), "__NEXT_ERROR_CODE", {
|
| 33 |
+
value: "E362",
|
| 34 |
+
enumerable: false,
|
| 35 |
+
configurable: true
|
| 36 |
+
});
|
| 37 |
+
error.stack = 'Error: ' + error.message + originalErrorStack.slice(stackStart);
|
| 38 |
+
console.error(error);
|
| 39 |
+
return;
|
| 40 |
+
}
|
| 41 |
+
}
|
| 42 |
+
} else if (typeof thrownValue === 'string') {
|
| 43 |
+
message = thrownValue;
|
| 44 |
+
}
|
| 45 |
+
if (message) {
|
| 46 |
+
console.error(`Route ${route} errored during the prospective render. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided.
|
| 47 |
+
|
| 48 |
+
Original Message: ${message}`);
|
| 49 |
+
return;
|
| 50 |
+
}
|
| 51 |
+
console.error(`Route ${route} errored during the prospective render. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`);
|
| 52 |
+
console.error(thrownValue);
|
| 53 |
+
return;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
//# sourceMappingURL=prospective-render-utils.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/react-large-shell-error.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// TODO: isWellKnownError -> isNextInternalError
|
| 2 |
+
// isReactLargeShellError -> isWarning
|
| 3 |
+
"use strict";
|
| 4 |
+
Object.defineProperty(exports, "__esModule", {
|
| 5 |
+
value: true
|
| 6 |
+
});
|
| 7 |
+
Object.defineProperty(exports, "isReactLargeShellError", {
|
| 8 |
+
enumerable: true,
|
| 9 |
+
get: function() {
|
| 10 |
+
return isReactLargeShellError;
|
| 11 |
+
}
|
| 12 |
+
});
|
| 13 |
+
function isReactLargeShellError(error) {
|
| 14 |
+
return typeof error === 'object' && error !== null && 'message' in error && typeof error.message === 'string' && error.message.startsWith('This rendered a large document (>');
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
//# sourceMappingURL=react-large-shell-error.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/react-server.node.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// This file should be opted into the react-server layer
|
| 2 |
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
| 3 |
+
"use strict";
|
| 4 |
+
Object.defineProperty(exports, "__esModule", {
|
| 5 |
+
value: true
|
| 6 |
+
});
|
| 7 |
+
0 && (module.exports = {
|
| 8 |
+
createTemporaryReferenceSet: null,
|
| 9 |
+
decodeAction: null,
|
| 10 |
+
decodeFormState: null,
|
| 11 |
+
decodeReply: null,
|
| 12 |
+
decodeReplyFromBusboy: null
|
| 13 |
+
});
|
| 14 |
+
function _export(target, all) {
|
| 15 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 16 |
+
enumerable: true,
|
| 17 |
+
get: all[name]
|
| 18 |
+
});
|
| 19 |
+
}
|
| 20 |
+
_export(exports, {
|
| 21 |
+
createTemporaryReferenceSet: function() {
|
| 22 |
+
return _servernode.createTemporaryReferenceSet;
|
| 23 |
+
},
|
| 24 |
+
decodeAction: function() {
|
| 25 |
+
return _servernode.decodeAction;
|
| 26 |
+
},
|
| 27 |
+
decodeFormState: function() {
|
| 28 |
+
return _servernode.decodeFormState;
|
| 29 |
+
},
|
| 30 |
+
decodeReply: function() {
|
| 31 |
+
return _servernode.decodeReply;
|
| 32 |
+
},
|
| 33 |
+
decodeReplyFromBusboy: function() {
|
| 34 |
+
return _servernode.decodeReplyFromBusboy;
|
| 35 |
+
}
|
| 36 |
+
});
|
| 37 |
+
const _servernode = require("react-server-dom-webpack/server.node");
|
| 38 |
+
|
| 39 |
+
//# sourceMappingURL=react-server.node.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/render-css-resource.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "renderCssResource", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return renderCssResource;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _jsxruntime = require("react/jsx-runtime");
|
| 12 |
+
const _encodeuripath = require("../../shared/lib/encode-uri-path");
|
| 13 |
+
const _getassetquerystring = require("./get-asset-query-string");
|
| 14 |
+
function renderCssResource(entryCssFiles, ctx, preloadCallbacks) {
|
| 15 |
+
return entryCssFiles.map((entryCssFile, index)=>{
|
| 16 |
+
// `Precedence` is an opt-in signal for React to handle resource
|
| 17 |
+
// loading and deduplication, etc. It's also used as the key to sort
|
| 18 |
+
// resources so they will be injected in the correct order.
|
| 19 |
+
// During HMR, it's critical to use different `precedence` values
|
| 20 |
+
// for different stylesheets, so their order will be kept.
|
| 21 |
+
// https://github.com/facebook/react/pull/25060
|
| 22 |
+
const precedence = process.env.NODE_ENV === 'development' ? 'next_' + entryCssFile.path : 'next';
|
| 23 |
+
// In dev, Safari and Firefox will cache the resource during HMR:
|
| 24 |
+
// - https://github.com/vercel/next.js/issues/5860
|
| 25 |
+
// - https://bugs.webkit.org/show_bug.cgi?id=187726
|
| 26 |
+
// Because of this, we add a `?v=` query to bypass the cache during
|
| 27 |
+
// development. We need to also make sure that the number is always
|
| 28 |
+
// increasing.
|
| 29 |
+
const fullHref = `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(entryCssFile.path)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`;
|
| 30 |
+
if (entryCssFile.inlined && !ctx.parsedRequestHeaders.isRSCRequest) {
|
| 31 |
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)("style", {
|
| 32 |
+
nonce: ctx.nonce,
|
| 33 |
+
// @ts-ignore
|
| 34 |
+
precedence: precedence,
|
| 35 |
+
href: fullHref,
|
| 36 |
+
children: entryCssFile.content
|
| 37 |
+
}, index);
|
| 38 |
+
}
|
| 39 |
+
preloadCallbacks == null ? void 0 : preloadCallbacks.push(()=>{
|
| 40 |
+
ctx.componentMod.preloadStyle(fullHref, ctx.renderOpts.crossOrigin, ctx.nonce);
|
| 41 |
+
});
|
| 42 |
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", {
|
| 43 |
+
rel: "stylesheet",
|
| 44 |
+
href: fullHref,
|
| 45 |
+
// @ts-ignore
|
| 46 |
+
precedence: precedence,
|
| 47 |
+
crossOrigin: ctx.renderOpts.crossOrigin,
|
| 48 |
+
nonce: ctx.nonce
|
| 49 |
+
}, index);
|
| 50 |
+
});
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
//# sourceMappingURL=render-css-resource.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/required-scripts.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "getRequiredScripts", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return getRequiredScripts;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _encodeuripath = require("../../shared/lib/encode-uri-path");
|
| 12 |
+
const _reactdom = /*#__PURE__*/ _interop_require_default(require("react-dom"));
|
| 13 |
+
function _interop_require_default(obj) {
|
| 14 |
+
return obj && obj.__esModule ? obj : {
|
| 15 |
+
default: obj
|
| 16 |
+
};
|
| 17 |
+
}
|
| 18 |
+
function getRequiredScripts(buildManifest, assetPrefix, crossOrigin, SRIManifest, qs, nonce, pagePath) {
|
| 19 |
+
var _buildManifest_rootMainFilesTree;
|
| 20 |
+
let preinitScripts;
|
| 21 |
+
let preinitScriptCommands = [];
|
| 22 |
+
const bootstrapScript = {
|
| 23 |
+
src: '',
|
| 24 |
+
crossOrigin
|
| 25 |
+
};
|
| 26 |
+
const files = (((_buildManifest_rootMainFilesTree = buildManifest.rootMainFilesTree) == null ? void 0 : _buildManifest_rootMainFilesTree[pagePath]) || buildManifest.rootMainFiles).map(_encodeuripath.encodeURIPath);
|
| 27 |
+
if (files.length === 0) {
|
| 28 |
+
throw Object.defineProperty(new Error('Invariant: missing bootstrap script. This is a bug in Next.js'), "__NEXT_ERROR_CODE", {
|
| 29 |
+
value: "E459",
|
| 30 |
+
enumerable: false,
|
| 31 |
+
configurable: true
|
| 32 |
+
});
|
| 33 |
+
}
|
| 34 |
+
if (SRIManifest) {
|
| 35 |
+
bootstrapScript.src = `${assetPrefix}/_next/` + files[0] + qs;
|
| 36 |
+
bootstrapScript.integrity = SRIManifest[files[0]];
|
| 37 |
+
for(let i = 1; i < files.length; i++){
|
| 38 |
+
const src = `${assetPrefix}/_next/` + files[i] + qs;
|
| 39 |
+
const integrity = SRIManifest[files[i]];
|
| 40 |
+
preinitScriptCommands.push(src, integrity);
|
| 41 |
+
}
|
| 42 |
+
preinitScripts = ()=>{
|
| 43 |
+
// preinitScriptCommands is a double indexed array of src/integrity pairs
|
| 44 |
+
for(let i = 0; i < preinitScriptCommands.length; i += 2){
|
| 45 |
+
_reactdom.default.preinit(preinitScriptCommands[i], {
|
| 46 |
+
as: 'script',
|
| 47 |
+
integrity: preinitScriptCommands[i + 1],
|
| 48 |
+
crossOrigin,
|
| 49 |
+
nonce
|
| 50 |
+
});
|
| 51 |
+
}
|
| 52 |
+
};
|
| 53 |
+
} else {
|
| 54 |
+
bootstrapScript.src = `${assetPrefix}/_next/` + files[0] + qs;
|
| 55 |
+
for(let i = 1; i < files.length; i++){
|
| 56 |
+
const src = `${assetPrefix}/_next/` + files[i] + qs;
|
| 57 |
+
preinitScriptCommands.push(src);
|
| 58 |
+
}
|
| 59 |
+
preinitScripts = ()=>{
|
| 60 |
+
// preinitScriptCommands is a singled indexed array of src values
|
| 61 |
+
for(let i = 0; i < preinitScriptCommands.length; i++){
|
| 62 |
+
_reactdom.default.preinit(preinitScriptCommands[i], {
|
| 63 |
+
as: 'script',
|
| 64 |
+
nonce,
|
| 65 |
+
crossOrigin
|
| 66 |
+
});
|
| 67 |
+
}
|
| 68 |
+
};
|
| 69 |
+
}
|
| 70 |
+
return [
|
| 71 |
+
preinitScripts,
|
| 72 |
+
bootstrapScript
|
| 73 |
+
];
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
//# sourceMappingURL=required-scripts.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/segment-explorer-path.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
BOUNDARY_PREFIX: null,
|
| 7 |
+
BOUNDARY_SUFFIX: null,
|
| 8 |
+
BUILTIN_PREFIX: null,
|
| 9 |
+
getBoundaryOriginFileType: null,
|
| 10 |
+
getConventionPathByType: null,
|
| 11 |
+
isBoundaryFile: null,
|
| 12 |
+
normalizeBoundaryFilename: null,
|
| 13 |
+
normalizeConventionFilePath: null
|
| 14 |
+
});
|
| 15 |
+
function _export(target, all) {
|
| 16 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 17 |
+
enumerable: true,
|
| 18 |
+
get: all[name]
|
| 19 |
+
});
|
| 20 |
+
}
|
| 21 |
+
_export(exports, {
|
| 22 |
+
BOUNDARY_PREFIX: function() {
|
| 23 |
+
return BOUNDARY_PREFIX;
|
| 24 |
+
},
|
| 25 |
+
BOUNDARY_SUFFIX: function() {
|
| 26 |
+
return BOUNDARY_SUFFIX;
|
| 27 |
+
},
|
| 28 |
+
BUILTIN_PREFIX: function() {
|
| 29 |
+
return BUILTIN_PREFIX;
|
| 30 |
+
},
|
| 31 |
+
getBoundaryOriginFileType: function() {
|
| 32 |
+
return getBoundaryOriginFileType;
|
| 33 |
+
},
|
| 34 |
+
getConventionPathByType: function() {
|
| 35 |
+
return getConventionPathByType;
|
| 36 |
+
},
|
| 37 |
+
isBoundaryFile: function() {
|
| 38 |
+
return isBoundaryFile;
|
| 39 |
+
},
|
| 40 |
+
normalizeBoundaryFilename: function() {
|
| 41 |
+
return normalizeBoundaryFilename;
|
| 42 |
+
},
|
| 43 |
+
normalizeConventionFilePath: function() {
|
| 44 |
+
return normalizeConventionFilePath;
|
| 45 |
+
}
|
| 46 |
+
});
|
| 47 |
+
const BUILTIN_PREFIX = '__next_builtin__';
|
| 48 |
+
function normalizeConventionFilePath(projectDir, conventionPath) {
|
| 49 |
+
const cwd = process.env.NEXT_RUNTIME === 'edge' ? '' : process.cwd();
|
| 50 |
+
const nextInternalPrefixRegex = /^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/;
|
| 51 |
+
let relativePath = (conventionPath || '')// remove turbopack [project] prefix
|
| 52 |
+
.replace(/^\[project\][\\/]/, '')// remove the project root from the path
|
| 53 |
+
.replace(projectDir, '')// remove cwd prefix
|
| 54 |
+
.replace(cwd, '')// remove /(src/)?app/ dir prefix
|
| 55 |
+
.replace(/^([\\/])*(src[\\/])?app[\\/]/, '');
|
| 56 |
+
// If it's internal file only keep the filename, strip nextjs internal prefix
|
| 57 |
+
if (nextInternalPrefixRegex.test(relativePath)) {
|
| 58 |
+
relativePath = relativePath.replace(nextInternalPrefixRegex, '');
|
| 59 |
+
// Add a special prefix to let segment explorer know it's a built-in component
|
| 60 |
+
relativePath = `${BUILTIN_PREFIX}${relativePath}`;
|
| 61 |
+
}
|
| 62 |
+
return relativePath;
|
| 63 |
+
}
|
| 64 |
+
const BOUNDARY_SUFFIX = '@boundary';
|
| 65 |
+
function normalizeBoundaryFilename(filename) {
|
| 66 |
+
return filename.replace(new RegExp(`^${BUILTIN_PREFIX}`), '').replace(new RegExp(`${BOUNDARY_SUFFIX}$`), '');
|
| 67 |
+
}
|
| 68 |
+
const BOUNDARY_PREFIX = 'boundary:';
|
| 69 |
+
function isBoundaryFile(fileType) {
|
| 70 |
+
return fileType.startsWith(BOUNDARY_PREFIX);
|
| 71 |
+
}
|
| 72 |
+
function getBoundaryOriginFileType(fileType) {
|
| 73 |
+
return fileType.replace(BOUNDARY_PREFIX, '');
|
| 74 |
+
}
|
| 75 |
+
function getConventionPathByType(tree, dir, conventionType) {
|
| 76 |
+
const modules = tree[2];
|
| 77 |
+
const conventionPath = modules[conventionType] ? modules[conventionType][1] : undefined;
|
| 78 |
+
if (conventionPath) {
|
| 79 |
+
return normalizeConventionFilePath(dir, conventionPath);
|
| 80 |
+
}
|
| 81 |
+
return undefined;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
//# sourceMappingURL=segment-explorer-path.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/server-inserted-html.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Provider for the `useServerInsertedHTML` API to register callbacks to insert
|
| 2 |
+
// elements into the HTML stream.
|
| 3 |
+
"use strict";
|
| 4 |
+
Object.defineProperty(exports, "__esModule", {
|
| 5 |
+
value: true
|
| 6 |
+
});
|
| 7 |
+
Object.defineProperty(exports, "createServerInsertedHTML", {
|
| 8 |
+
enumerable: true,
|
| 9 |
+
get: function() {
|
| 10 |
+
return createServerInsertedHTML;
|
| 11 |
+
}
|
| 12 |
+
});
|
| 13 |
+
const _jsxruntime = require("react/jsx-runtime");
|
| 14 |
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
| 15 |
+
const _serverinsertedhtmlsharedruntime = require("../../shared/lib/server-inserted-html.shared-runtime");
|
| 16 |
+
function _interop_require_default(obj) {
|
| 17 |
+
return obj && obj.__esModule ? obj : {
|
| 18 |
+
default: obj
|
| 19 |
+
};
|
| 20 |
+
}
|
| 21 |
+
function createServerInsertedHTML() {
|
| 22 |
+
const serverInsertedHTMLCallbacks = [];
|
| 23 |
+
const addInsertedHtml = (handler)=>{
|
| 24 |
+
serverInsertedHTMLCallbacks.push(handler);
|
| 25 |
+
};
|
| 26 |
+
return {
|
| 27 |
+
ServerInsertedHTMLProvider ({ children }) {
|
| 28 |
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext.Provider, {
|
| 29 |
+
value: addInsertedHtml,
|
| 30 |
+
children: children
|
| 31 |
+
});
|
| 32 |
+
},
|
| 33 |
+
renderServerInsertedHTML () {
|
| 34 |
+
return serverInsertedHTMLCallbacks.map((callback, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_react.default.Fragment, {
|
| 35 |
+
children: callback()
|
| 36 |
+
}, '__next_server_inserted__' + index));
|
| 37 |
+
}
|
| 38 |
+
};
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
//# sourceMappingURL=server-inserted-html.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/strip-flight-headers.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "stripFlightHeaders", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return stripFlightHeaders;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _approuterheaders = require("../../client/components/app-router-headers");
|
| 12 |
+
function stripFlightHeaders(headers) {
|
| 13 |
+
for (const header of _approuterheaders.FLIGHT_HEADERS){
|
| 14 |
+
delete headers[header.toLowerCase()];
|
| 15 |
+
}
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
//# sourceMappingURL=strip-flight-headers.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/types.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
HasLoadingBoundary: null,
|
| 7 |
+
flightRouterStateSchema: null
|
| 8 |
+
});
|
| 9 |
+
function _export(target, all) {
|
| 10 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: all[name]
|
| 13 |
+
});
|
| 14 |
+
}
|
| 15 |
+
_export(exports, {
|
| 16 |
+
HasLoadingBoundary: function() {
|
| 17 |
+
return HasLoadingBoundary;
|
| 18 |
+
},
|
| 19 |
+
flightRouterStateSchema: function() {
|
| 20 |
+
return flightRouterStateSchema;
|
| 21 |
+
}
|
| 22 |
+
});
|
| 23 |
+
const _superstruct = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/superstruct"));
|
| 24 |
+
function _interop_require_default(obj) {
|
| 25 |
+
return obj && obj.__esModule ? obj : {
|
| 26 |
+
default: obj
|
| 27 |
+
};
|
| 28 |
+
}
|
| 29 |
+
const dynamicParamTypesSchema = _superstruct.default.enums([
|
| 30 |
+
'c',
|
| 31 |
+
'ci',
|
| 32 |
+
'oc',
|
| 33 |
+
'd',
|
| 34 |
+
'di'
|
| 35 |
+
]);
|
| 36 |
+
const segmentSchema = _superstruct.default.union([
|
| 37 |
+
_superstruct.default.string(),
|
| 38 |
+
_superstruct.default.tuple([
|
| 39 |
+
_superstruct.default.string(),
|
| 40 |
+
_superstruct.default.string(),
|
| 41 |
+
dynamicParamTypesSchema
|
| 42 |
+
])
|
| 43 |
+
]);
|
| 44 |
+
const flightRouterStateSchema = _superstruct.default.tuple([
|
| 45 |
+
segmentSchema,
|
| 46 |
+
_superstruct.default.record(_superstruct.default.string(), _superstruct.default.lazy(()=>flightRouterStateSchema)),
|
| 47 |
+
_superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.string())),
|
| 48 |
+
_superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.union([
|
| 49 |
+
_superstruct.default.literal('refetch'),
|
| 50 |
+
_superstruct.default.literal('refresh'),
|
| 51 |
+
_superstruct.default.literal('inside-shared-layout')
|
| 52 |
+
]))),
|
| 53 |
+
_superstruct.default.optional(_superstruct.default.boolean())
|
| 54 |
+
]);
|
| 55 |
+
var HasLoadingBoundary = /*#__PURE__*/ function(HasLoadingBoundary) {
|
| 56 |
+
// There is a loading boundary in this particular segment
|
| 57 |
+
HasLoadingBoundary[HasLoadingBoundary["SegmentHasLoadingBoundary"] = 1] = "SegmentHasLoadingBoundary";
|
| 58 |
+
// There is a loading boundary somewhere in the subtree (but not in
|
| 59 |
+
// this segment)
|
| 60 |
+
HasLoadingBoundary[HasLoadingBoundary["SubtreeHasLoadingBoundary"] = 2] = "SubtreeHasLoadingBoundary";
|
| 61 |
+
// There is no loading boundary in this segment or any of its descendants
|
| 62 |
+
HasLoadingBoundary[HasLoadingBoundary["SubtreeHasNoLoadingBoundary"] = 3] = "SubtreeHasNoLoadingBoundary";
|
| 63 |
+
return HasLoadingBoundary;
|
| 64 |
+
}({});
|
| 65 |
+
|
| 66 |
+
//# sourceMappingURL=types.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/use-flight-response.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
createInlinedDataReadableStream: null,
|
| 7 |
+
useFlightStream: null
|
| 8 |
+
});
|
| 9 |
+
function _export(target, all) {
|
| 10 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 11 |
+
enumerable: true,
|
| 12 |
+
get: all[name]
|
| 13 |
+
});
|
| 14 |
+
}
|
| 15 |
+
_export(exports, {
|
| 16 |
+
createInlinedDataReadableStream: function() {
|
| 17 |
+
return createInlinedDataReadableStream;
|
| 18 |
+
},
|
| 19 |
+
useFlightStream: function() {
|
| 20 |
+
return useFlightStream;
|
| 21 |
+
}
|
| 22 |
+
});
|
| 23 |
+
const _htmlescape = require("../htmlescape");
|
| 24 |
+
const _workunitasyncstorageexternal = require("./work-unit-async-storage.external");
|
| 25 |
+
const _invarianterror = require("../../shared/lib/invariant-error");
|
| 26 |
+
const isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge';
|
| 27 |
+
const INLINE_FLIGHT_PAYLOAD_BOOTSTRAP = 0;
|
| 28 |
+
const INLINE_FLIGHT_PAYLOAD_DATA = 1;
|
| 29 |
+
const INLINE_FLIGHT_PAYLOAD_FORM_STATE = 2;
|
| 30 |
+
const INLINE_FLIGHT_PAYLOAD_BINARY = 3;
|
| 31 |
+
const flightResponses = new WeakMap();
|
| 32 |
+
const encoder = new TextEncoder();
|
| 33 |
+
function useFlightStream(flightStream, clientReferenceManifest, nonce) {
|
| 34 |
+
const response = flightResponses.get(flightStream);
|
| 35 |
+
if (response) {
|
| 36 |
+
return response;
|
| 37 |
+
}
|
| 38 |
+
// react-server-dom-webpack/client.edge must not be hoisted for require cache clearing to work correctly
|
| 39 |
+
const { createFromReadableStream } = // eslint-disable-next-line import/no-extraneous-dependencies
|
| 40 |
+
require('react-server-dom-webpack/client');
|
| 41 |
+
const newResponse = createFromReadableStream(flightStream, {
|
| 42 |
+
serverConsumerManifest: {
|
| 43 |
+
moduleLoading: clientReferenceManifest.moduleLoading,
|
| 44 |
+
moduleMap: isEdgeRuntime ? clientReferenceManifest.edgeSSRModuleMapping : clientReferenceManifest.ssrModuleMapping,
|
| 45 |
+
serverModuleMap: null
|
| 46 |
+
},
|
| 47 |
+
nonce
|
| 48 |
+
});
|
| 49 |
+
// Edge pages are never prerendered so they necessarily cannot have a workUnitStore type
|
| 50 |
+
// that requires the nextTick behavior. This is why it is safe to access a node only API here
|
| 51 |
+
if (process.env.NEXT_RUNTIME !== 'edge') {
|
| 52 |
+
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
| 53 |
+
if (!workUnitStore) {
|
| 54 |
+
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workUnitAsyncStorage to have a store.'), "__NEXT_ERROR_CODE", {
|
| 55 |
+
value: "E696",
|
| 56 |
+
enumerable: false,
|
| 57 |
+
configurable: true
|
| 58 |
+
});
|
| 59 |
+
}
|
| 60 |
+
if (workUnitStore.type === 'prerender-client') {
|
| 61 |
+
const responseOnNextTick = new Promise((r)=>{
|
| 62 |
+
process.nextTick(()=>{
|
| 63 |
+
r(newResponse);
|
| 64 |
+
});
|
| 65 |
+
});
|
| 66 |
+
flightResponses.set(flightStream, responseOnNextTick);
|
| 67 |
+
return responseOnNextTick;
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
flightResponses.set(flightStream, newResponse);
|
| 71 |
+
return newResponse;
|
| 72 |
+
}
|
| 73 |
+
function createInlinedDataReadableStream(flightStream, nonce, formState) {
|
| 74 |
+
const startScriptTag = nonce ? `<script nonce=${JSON.stringify(nonce)}>` : '<script>';
|
| 75 |
+
const flightReader = flightStream.getReader();
|
| 76 |
+
const decoder = new TextDecoder('utf-8', {
|
| 77 |
+
fatal: true
|
| 78 |
+
});
|
| 79 |
+
const readable = new ReadableStream({
|
| 80 |
+
type: 'bytes',
|
| 81 |
+
start (controller) {
|
| 82 |
+
try {
|
| 83 |
+
writeInitialInstructions(controller, startScriptTag, formState);
|
| 84 |
+
} catch (error) {
|
| 85 |
+
// during encoding or enqueueing forward the error downstream
|
| 86 |
+
controller.error(error);
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
async pull (controller) {
|
| 90 |
+
try {
|
| 91 |
+
const { done, value } = await flightReader.read();
|
| 92 |
+
if (value) {
|
| 93 |
+
try {
|
| 94 |
+
const decodedString = decoder.decode(value, {
|
| 95 |
+
stream: !done
|
| 96 |
+
});
|
| 97 |
+
// The chunk cannot be decoded as valid UTF-8 string as it might
|
| 98 |
+
// have arbitrary binary data.
|
| 99 |
+
writeFlightDataInstruction(controller, startScriptTag, decodedString);
|
| 100 |
+
} catch {
|
| 101 |
+
// The chunk cannot be decoded as valid UTF-8 string.
|
| 102 |
+
writeFlightDataInstruction(controller, startScriptTag, value);
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
if (done) {
|
| 106 |
+
controller.close();
|
| 107 |
+
}
|
| 108 |
+
} catch (error) {
|
| 109 |
+
// There was a problem in the upstream reader or during decoding or enqueuing
|
| 110 |
+
// forward the error downstream
|
| 111 |
+
controller.error(error);
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
});
|
| 115 |
+
return readable;
|
| 116 |
+
}
|
| 117 |
+
function writeInitialInstructions(controller, scriptStart, formState) {
|
| 118 |
+
if (formState != null) {
|
| 119 |
+
controller.enqueue(encoder.encode(`${scriptStart}(self.__next_f=self.__next_f||[]).push(${(0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([
|
| 120 |
+
INLINE_FLIGHT_PAYLOAD_BOOTSTRAP
|
| 121 |
+
]))});self.__next_f.push(${(0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([
|
| 122 |
+
INLINE_FLIGHT_PAYLOAD_FORM_STATE,
|
| 123 |
+
formState
|
| 124 |
+
]))})</script>`));
|
| 125 |
+
} else {
|
| 126 |
+
controller.enqueue(encoder.encode(`${scriptStart}(self.__next_f=self.__next_f||[]).push(${(0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([
|
| 127 |
+
INLINE_FLIGHT_PAYLOAD_BOOTSTRAP
|
| 128 |
+
]))})</script>`));
|
| 129 |
+
}
|
| 130 |
+
}
|
| 131 |
+
function writeFlightDataInstruction(controller, scriptStart, chunk) {
|
| 132 |
+
let htmlInlinedData;
|
| 133 |
+
if (typeof chunk === 'string') {
|
| 134 |
+
htmlInlinedData = (0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([
|
| 135 |
+
INLINE_FLIGHT_PAYLOAD_DATA,
|
| 136 |
+
chunk
|
| 137 |
+
]));
|
| 138 |
+
} else {
|
| 139 |
+
// The chunk cannot be embedded as a UTF-8 string in the script tag.
|
| 140 |
+
// Instead let's inline it in base64.
|
| 141 |
+
// Credits to Devon Govett (devongovett) for the technique.
|
| 142 |
+
// https://github.com/devongovett/rsc-html-stream
|
| 143 |
+
const base64 = btoa(String.fromCodePoint(...chunk));
|
| 144 |
+
htmlInlinedData = (0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([
|
| 145 |
+
INLINE_FLIGHT_PAYLOAD_BINARY,
|
| 146 |
+
base64
|
| 147 |
+
]));
|
| 148 |
+
}
|
| 149 |
+
controller.enqueue(encoder.encode(`${scriptStart}self.__next_f.push(${htmlInlinedData})</script>`));
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
//# sourceMappingURL=use-flight-response.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "walkTreeWithFlightRouterState", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return walkTreeWithFlightRouterState;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _matchsegments = require("../../client/components/match-segments");
|
| 12 |
+
const _getcssinlinedlinktags = require("./get-css-inlined-link-tags");
|
| 13 |
+
const _getpreloadablefonts = require("./get-preloadable-fonts");
|
| 14 |
+
const _createflightrouterstatefromloadertree = require("./create-flight-router-state-from-loader-tree");
|
| 15 |
+
const _hasloadingcomponentintree = require("./has-loading-component-in-tree");
|
| 16 |
+
const _segment = require("../../shared/lib/segment");
|
| 17 |
+
const _createcomponenttree = require("./create-component-tree");
|
| 18 |
+
const _getsegmentparam = require("./get-segment-param");
|
| 19 |
+
async function walkTreeWithFlightRouterState({ loaderTreeToFilter, parentParams, flightRouterState, parentIsInsideSharedLayout, rscHead, injectedCSS, injectedJS, injectedFontPreloadTags, rootLayoutIncluded, getViewportReady, getMetadataReady, ctx, preloadCallbacks, StreamingMetadataOutlet }) {
|
| 20 |
+
const { renderOpts: { nextFontManifest, experimental }, query, isPrefetch, getDynamicParamFromSegment, parsedRequestHeaders } = ctx;
|
| 21 |
+
const [segment, parallelRoutes, modules] = loaderTreeToFilter;
|
| 22 |
+
const parallelRoutesKeys = Object.keys(parallelRoutes);
|
| 23 |
+
const { layout } = modules;
|
| 24 |
+
const isLayout = typeof layout !== 'undefined';
|
| 25 |
+
/**
|
| 26 |
+
* Checks if the current segment is a root layout.
|
| 27 |
+
*/ const rootLayoutAtThisLevel = isLayout && !rootLayoutIncluded;
|
| 28 |
+
/**
|
| 29 |
+
* Checks if the current segment or any level above it has a root layout.
|
| 30 |
+
*/ const rootLayoutIncludedAtThisLevelOrAbove = rootLayoutIncluded || rootLayoutAtThisLevel;
|
| 31 |
+
// Because this function walks to a deeper point in the tree to start rendering we have to track the dynamic parameters up to the point where rendering starts
|
| 32 |
+
const segmentParam = getDynamicParamFromSegment(segment);
|
| 33 |
+
const currentParams = // Handle null case where dynamic param is optional
|
| 34 |
+
segmentParam && segmentParam.value !== null ? {
|
| 35 |
+
...parentParams,
|
| 36 |
+
[segmentParam.param]: segmentParam.value
|
| 37 |
+
} : parentParams;
|
| 38 |
+
const actualSegment = (0, _segment.addSearchParamsIfPageSegment)(segmentParam ? segmentParam.treeSegment : segment, query);
|
| 39 |
+
/**
|
| 40 |
+
* Decide if the current segment is where rendering has to start.
|
| 41 |
+
*/ const renderComponentsOnThisLevel = // No further router state available
|
| 42 |
+
!flightRouterState || // Segment in router state does not match current segment
|
| 43 |
+
!(0, _matchsegments.matchSegment)(actualSegment, flightRouterState[0]) || // Last item in the tree
|
| 44 |
+
parallelRoutesKeys.length === 0 || // Explicit refresh
|
| 45 |
+
flightRouterState[3] === 'refetch';
|
| 46 |
+
// Pre-PPR, the `loading` component signals to the router how deep to render the component tree
|
| 47 |
+
// to ensure prefetches are quick and inexpensive. If there's no `loading` component anywhere in the tree being rendered,
|
| 48 |
+
// the prefetch will be short-circuited to avoid requesting a potentially very expensive subtree. If there's a `loading`
|
| 49 |
+
// somewhere in the tree, we'll recursively render the component tree up until we encounter that loading component, and then stop.
|
| 50 |
+
// Check if we're inside the "new" part of the navigation — inside the
|
| 51 |
+
// shared layout. In the case of a prefetch, this can be true even if the
|
| 52 |
+
// segment matches, because the client might send a matching segment to
|
| 53 |
+
// indicate that it already has the data in its cache. But in order to find
|
| 54 |
+
// the correct loading boundary, we still need to track where the shared
|
| 55 |
+
// layout begins.
|
| 56 |
+
//
|
| 57 |
+
// TODO: We should rethink the protocol for dynamic requests. It might not
|
| 58 |
+
// make sense for the client to send a FlightRouterState, since that type is
|
| 59 |
+
// overloaded with other concerns.
|
| 60 |
+
const isInsideSharedLayout = renderComponentsOnThisLevel || parentIsInsideSharedLayout || flightRouterState[3] === 'inside-shared-layout';
|
| 61 |
+
if (isInsideSharedLayout && !experimental.isRoutePPREnabled && // If PPR is disabled, and this is a request for the route tree, then we
|
| 62 |
+
// never render any components. Only send the router state.
|
| 63 |
+
(parsedRequestHeaders.isRouteTreePrefetchRequest || // Otherwise, check for the presence of a `loading` component.
|
| 64 |
+
isPrefetch && !Boolean(modules.loading) && !(0, _hasloadingcomponentintree.hasLoadingComponentInTree)(loaderTreeToFilter))) {
|
| 65 |
+
// Send only the router state.
|
| 66 |
+
// TODO: Even for a dynamic route, we should cache these responses,
|
| 67 |
+
// because they do not contain any render data (neither segment data nor
|
| 68 |
+
// the head). They can be made even more cacheable once we move the route
|
| 69 |
+
// params into a separate data structure.
|
| 70 |
+
const overriddenSegment = flightRouterState && // TODO: Why does canSegmentBeOverridden exist? Why don't we always just
|
| 71 |
+
// use `actualSegment`? Is it to avoid overwriting some state that's
|
| 72 |
+
// tracked by the client? Dig deeper to see if we can simplify this.
|
| 73 |
+
canSegmentBeOverridden(actualSegment, flightRouterState[0]) ? flightRouterState[0] : actualSegment;
|
| 74 |
+
const routerState = parsedRequestHeaders.isRouteTreePrefetchRequest ? (0, _createflightrouterstatefromloadertree.createRouteTreePrefetch)(loaderTreeToFilter, getDynamicParamFromSegment) : (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(loaderTreeToFilter, getDynamicParamFromSegment, query);
|
| 75 |
+
return [
|
| 76 |
+
[
|
| 77 |
+
overriddenSegment,
|
| 78 |
+
routerState,
|
| 79 |
+
null,
|
| 80 |
+
[
|
| 81 |
+
null,
|
| 82 |
+
null
|
| 83 |
+
],
|
| 84 |
+
true
|
| 85 |
+
]
|
| 86 |
+
];
|
| 87 |
+
}
|
| 88 |
+
if (renderComponentsOnThisLevel) {
|
| 89 |
+
const overriddenSegment = flightRouterState && // TODO: Why does canSegmentBeOverridden exist? Why don't we always just
|
| 90 |
+
// use `actualSegment`? Is it to avoid overwriting some state that's
|
| 91 |
+
// tracked by the client? Dig deeper to see if we can simplify this.
|
| 92 |
+
canSegmentBeOverridden(actualSegment, flightRouterState[0]) ? flightRouterState[0] : actualSegment;
|
| 93 |
+
const routerState = (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(// Create router state using the slice of the loaderTree
|
| 94 |
+
loaderTreeToFilter, getDynamicParamFromSegment, query);
|
| 95 |
+
// Create component tree using the slice of the loaderTree
|
| 96 |
+
const seedData = await (0, _createcomponenttree.createComponentTree)(// This ensures flightRouterPath is valid and filters down the tree
|
| 97 |
+
{
|
| 98 |
+
ctx,
|
| 99 |
+
loaderTree: loaderTreeToFilter,
|
| 100 |
+
parentParams: currentParams,
|
| 101 |
+
injectedCSS,
|
| 102 |
+
injectedJS,
|
| 103 |
+
injectedFontPreloadTags,
|
| 104 |
+
// This is intentionally not "rootLayoutIncludedAtThisLevelOrAbove" as createComponentTree starts at the current level and does a check for "rootLayoutAtThisLevel" too.
|
| 105 |
+
rootLayoutIncluded,
|
| 106 |
+
getViewportReady,
|
| 107 |
+
getMetadataReady,
|
| 108 |
+
preloadCallbacks,
|
| 109 |
+
authInterrupts: experimental.authInterrupts,
|
| 110 |
+
StreamingMetadataOutlet
|
| 111 |
+
});
|
| 112 |
+
return [
|
| 113 |
+
[
|
| 114 |
+
overriddenSegment,
|
| 115 |
+
routerState,
|
| 116 |
+
seedData,
|
| 117 |
+
rscHead,
|
| 118 |
+
false
|
| 119 |
+
]
|
| 120 |
+
];
|
| 121 |
+
}
|
| 122 |
+
// If we are not rendering on this level we need to check if the current
|
| 123 |
+
// segment has a layout. If so, we need to track all the used CSS to make
|
| 124 |
+
// the result consistent.
|
| 125 |
+
const layoutPath = layout == null ? void 0 : layout[1];
|
| 126 |
+
const injectedCSSWithCurrentLayout = new Set(injectedCSS);
|
| 127 |
+
const injectedJSWithCurrentLayout = new Set(injectedJS);
|
| 128 |
+
const injectedFontPreloadTagsWithCurrentLayout = new Set(injectedFontPreloadTags);
|
| 129 |
+
if (layoutPath) {
|
| 130 |
+
(0, _getcssinlinedlinktags.getLinkAndScriptTags)(ctx.clientReferenceManifest, layoutPath, injectedCSSWithCurrentLayout, injectedJSWithCurrentLayout, true);
|
| 131 |
+
(0, _getpreloadablefonts.getPreloadableFonts)(nextFontManifest, layoutPath, injectedFontPreloadTagsWithCurrentLayout);
|
| 132 |
+
}
|
| 133 |
+
const paths = [];
|
| 134 |
+
// Walk through all parallel routes.
|
| 135 |
+
for (const parallelRouteKey of parallelRoutesKeys){
|
| 136 |
+
const parallelRoute = parallelRoutes[parallelRouteKey];
|
| 137 |
+
const subPaths = await walkTreeWithFlightRouterState({
|
| 138 |
+
ctx,
|
| 139 |
+
loaderTreeToFilter: parallelRoute,
|
| 140 |
+
parentParams: currentParams,
|
| 141 |
+
flightRouterState: flightRouterState && flightRouterState[1][parallelRouteKey],
|
| 142 |
+
parentIsInsideSharedLayout: isInsideSharedLayout,
|
| 143 |
+
rscHead,
|
| 144 |
+
injectedCSS: injectedCSSWithCurrentLayout,
|
| 145 |
+
injectedJS: injectedJSWithCurrentLayout,
|
| 146 |
+
injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout,
|
| 147 |
+
rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove,
|
| 148 |
+
getViewportReady,
|
| 149 |
+
getMetadataReady,
|
| 150 |
+
preloadCallbacks,
|
| 151 |
+
StreamingMetadataOutlet
|
| 152 |
+
});
|
| 153 |
+
for (const subPath of subPaths){
|
| 154 |
+
// we don't need to send over default routes in the flight data
|
| 155 |
+
// because they are always ignored by the client, unless it's a refetch
|
| 156 |
+
if (subPath[0] === _segment.DEFAULT_SEGMENT_KEY && flightRouterState && !!flightRouterState[1][parallelRouteKey][0] && flightRouterState[1][parallelRouteKey][3] !== 'refetch') {
|
| 157 |
+
continue;
|
| 158 |
+
}
|
| 159 |
+
paths.push([
|
| 160 |
+
actualSegment,
|
| 161 |
+
parallelRouteKey,
|
| 162 |
+
...subPath
|
| 163 |
+
]);
|
| 164 |
+
}
|
| 165 |
+
}
|
| 166 |
+
return paths;
|
| 167 |
+
}
|
| 168 |
+
/*
|
| 169 |
+
* This function is used to determine if an existing segment can be overridden
|
| 170 |
+
* by the incoming segment.
|
| 171 |
+
*/ const canSegmentBeOverridden = (existingSegment, segment)=>{
|
| 172 |
+
var _getSegmentParam;
|
| 173 |
+
if (Array.isArray(existingSegment) || !Array.isArray(segment)) {
|
| 174 |
+
return false;
|
| 175 |
+
}
|
| 176 |
+
return ((_getSegmentParam = (0, _getsegmentparam.getSegmentParam)(existingSegment)) == null ? void 0 : _getSegmentParam.param) === segment[0];
|
| 177 |
+
};
|
| 178 |
+
|
| 179 |
+
//# sourceMappingURL=walk-tree-with-flight-router-state.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "workAsyncStorageInstance", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return workAsyncStorageInstance;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _asynclocalstorage = require("./async-local-storage");
|
| 12 |
+
const workAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();
|
| 13 |
+
|
| 14 |
+
//# sourceMappingURL=work-async-storage-instance.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-async-storage.external.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "workAsyncStorage", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return _workasyncstorageinstance.workAsyncStorageInstance;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _workasyncstorageinstance = require("./work-async-storage-instance");
|
| 12 |
+
|
| 13 |
+
//# sourceMappingURL=work-async-storage.external.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
Object.defineProperty(exports, "workUnitAsyncStorageInstance", {
|
| 6 |
+
enumerable: true,
|
| 7 |
+
get: function() {
|
| 8 |
+
return workUnitAsyncStorageInstance;
|
| 9 |
+
}
|
| 10 |
+
});
|
| 11 |
+
const _asynclocalstorage = require("./async-local-storage");
|
| 12 |
+
const workUnitAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();
|
| 13 |
+
|
| 14 |
+
//# sourceMappingURL=work-unit-async-storage-instance.js.map
|
.next/standalone/node_modules/.pnpm/next@15.4.3_@opentelemetry+api@1.9.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use strict";
|
| 2 |
+
Object.defineProperty(exports, "__esModule", {
|
| 3 |
+
value: true
|
| 4 |
+
});
|
| 5 |
+
0 && (module.exports = {
|
| 6 |
+
getDraftModeProviderForCacheScope: null,
|
| 7 |
+
getExpectedRequestStore: null,
|
| 8 |
+
getHmrRefreshHash: null,
|
| 9 |
+
getPrerenderResumeDataCache: null,
|
| 10 |
+
getRenderResumeDataCache: null,
|
| 11 |
+
throwForMissingRequestStore: null,
|
| 12 |
+
workUnitAsyncStorage: null
|
| 13 |
+
});
|
| 14 |
+
function _export(target, all) {
|
| 15 |
+
for(var name in all)Object.defineProperty(target, name, {
|
| 16 |
+
enumerable: true,
|
| 17 |
+
get: all[name]
|
| 18 |
+
});
|
| 19 |
+
}
|
| 20 |
+
_export(exports, {
|
| 21 |
+
getDraftModeProviderForCacheScope: function() {
|
| 22 |
+
return getDraftModeProviderForCacheScope;
|
| 23 |
+
},
|
| 24 |
+
getExpectedRequestStore: function() {
|
| 25 |
+
return getExpectedRequestStore;
|
| 26 |
+
},
|
| 27 |
+
getHmrRefreshHash: function() {
|
| 28 |
+
return getHmrRefreshHash;
|
| 29 |
+
},
|
| 30 |
+
getPrerenderResumeDataCache: function() {
|
| 31 |
+
return getPrerenderResumeDataCache;
|
| 32 |
+
},
|
| 33 |
+
getRenderResumeDataCache: function() {
|
| 34 |
+
return getRenderResumeDataCache;
|
| 35 |
+
},
|
| 36 |
+
throwForMissingRequestStore: function() {
|
| 37 |
+
return throwForMissingRequestStore;
|
| 38 |
+
},
|
| 39 |
+
workUnitAsyncStorage: function() {
|
| 40 |
+
return _workunitasyncstorageinstance.workUnitAsyncStorageInstance;
|
| 41 |
+
}
|
| 42 |
+
});
|
| 43 |
+
const _workunitasyncstorageinstance = require("./work-unit-async-storage-instance");
|
| 44 |
+
const _approuterheaders = require("../../client/components/app-router-headers");
|
| 45 |
+
function getExpectedRequestStore(callingExpression) {
|
| 46 |
+
const workUnitStore = _workunitasyncstorageinstance.workUnitAsyncStorageInstance.getStore();
|
| 47 |
+
if (!workUnitStore) {
|
| 48 |
+
throwForMissingRequestStore(callingExpression);
|
| 49 |
+
}
|
| 50 |
+
switch(workUnitStore.type){
|
| 51 |
+
case 'request':
|
| 52 |
+
return workUnitStore;
|
| 53 |
+
case 'prerender':
|
| 54 |
+
case 'prerender-client':
|
| 55 |
+
case 'prerender-ppr':
|
| 56 |
+
case 'prerender-legacy':
|
| 57 |
+
// This should not happen because we should have checked it already.
|
| 58 |
+
throw Object.defineProperty(new Error(`\`${callingExpression}\` cannot be called inside a prerender. This is a bug in Next.js.`), "__NEXT_ERROR_CODE", {
|
| 59 |
+
value: "E401",
|
| 60 |
+
enumerable: false,
|
| 61 |
+
configurable: true
|
| 62 |
+
});
|
| 63 |
+
case 'cache':
|
| 64 |
+
throw Object.defineProperty(new Error(`\`${callingExpression}\` cannot be called inside "use cache". Call it outside and pass an argument instead. Read more: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", {
|
| 65 |
+
value: "E37",
|
| 66 |
+
enumerable: false,
|
| 67 |
+
configurable: true
|
| 68 |
+
});
|
| 69 |
+
case 'unstable-cache':
|
| 70 |
+
throw Object.defineProperty(new Error(`\`${callingExpression}\` cannot be called inside unstable_cache. Call it outside and pass an argument instead. Read more: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), "__NEXT_ERROR_CODE", {
|
| 71 |
+
value: "E69",
|
| 72 |
+
enumerable: false,
|
| 73 |
+
configurable: true
|
| 74 |
+
});
|
| 75 |
+
default:
|
| 76 |
+
const _exhaustiveCheck = workUnitStore;
|
| 77 |
+
return _exhaustiveCheck;
|
| 78 |
+
}
|
| 79 |
+
}
|
| 80 |
+
function throwForMissingRequestStore(callingExpression) {
|
| 81 |
+
throw Object.defineProperty(new Error(`\`${callingExpression}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`), "__NEXT_ERROR_CODE", {
|
| 82 |
+
value: "E251",
|
| 83 |
+
enumerable: false,
|
| 84 |
+
configurable: true
|
| 85 |
+
});
|
| 86 |
+
}
|
| 87 |
+
function getPrerenderResumeDataCache(workUnitStore) {
|
| 88 |
+
if (workUnitStore.type === 'prerender' || // TODO eliminate fetch caching in client scope and stop exposing this data cache during SSR
|
| 89 |
+
workUnitStore.type === 'prerender-client' || workUnitStore.type === 'prerender-ppr') {
|
| 90 |
+
return workUnitStore.prerenderResumeDataCache;
|
| 91 |
+
}
|
| 92 |
+
return null;
|
| 93 |
+
}
|
| 94 |
+
function getRenderResumeDataCache(workUnitStore) {
|
| 95 |
+
switch(workUnitStore.type){
|
| 96 |
+
case 'request':
|
| 97 |
+
return workUnitStore.renderResumeDataCache;
|
| 98 |
+
case 'prerender':
|
| 99 |
+
case 'prerender-client':
|
| 100 |
+
if (workUnitStore.renderResumeDataCache) {
|
| 101 |
+
// If we are in a prerender, we might have a render resume data cache
|
| 102 |
+
// that is used to read from prefilled caches.
|
| 103 |
+
return workUnitStore.renderResumeDataCache;
|
| 104 |
+
}
|
| 105 |
+
// fallthrough
|
| 106 |
+
case 'prerender-ppr':
|
| 107 |
+
// Otherwise we return the mutable resume data cache here as an immutable
|
| 108 |
+
// version of the cache as it can also be used for reading.
|
| 109 |
+
return workUnitStore.prerenderResumeDataCache;
|
| 110 |
+
default:
|
| 111 |
+
return null;
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
function getHmrRefreshHash(workStore, workUnitStore) {
|
| 115 |
+
var _workUnitStore_cookies_get;
|
| 116 |
+
if (!workStore.dev) {
|
| 117 |
+
return undefined;
|
| 118 |
+
}
|
| 119 |
+
return workUnitStore.type === 'cache' || workUnitStore.type === 'prerender' ? workUnitStore.hmrRefreshHash : workUnitStore.type === 'request' ? (_workUnitStore_cookies_get = workUnitStore.cookies.get(_approuterheaders.NEXT_HMR_REFRESH_HASH_COOKIE)) == null ? void 0 : _workUnitStore_cookies_get.value : undefined;
|
| 120 |
+
}
|
| 121 |
+
function getDraftModeProviderForCacheScope(workStore, workUnitStore) {
|
| 122 |
+
if (workStore.isDraftMode) {
|
| 123 |
+
switch(workUnitStore.type){
|
| 124 |
+
case 'cache':
|
| 125 |
+
case 'unstable-cache':
|
| 126 |
+
case 'request':
|
| 127 |
+
return workUnitStore.draftMode;
|
| 128 |
+
default:
|
| 129 |
+
return undefined;
|
| 130 |
+
}
|
| 131 |
+
}
|
| 132 |
+
return undefined;
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
//# sourceMappingURL=work-unit-async-storage.external.js.map
|