/
opt
/
canhelp
/
node_modules
/
next
/
dist
/
server
/
app-render
/
/opt/canhelp/node_modules/next/dist/server/app-render
mkdir
upload
Name
Size
Mode
Actions
metadata-insertion/
-
0755
rm
module-loading/
-
0755
rm
rsc/
-
0755
rm
action-async-storage-instance.d.ts
144
0644
edit
dl
rm
action-async-storage-instance.js
446
0644
edit
dl
rm
action-async-storage-instance.js.map
502
0644
edit
dl
rm
action-async-storage.external.d.ts
359
0644
edit
dl
rm
action-async-storage.external.js
399
0644
edit
dl
rm
action-async-storage.external.js.map
704
0644
edit
dl
rm
action-handler.d.ts
1807
0644
edit
dl
rm
action-handler.js
48691
0644
edit
dl
rm
action-handler.js.map
68350
0644
edit
dl
rm
action-utils.d.ts
518
0644
edit
dl
rm
action-utils.js
3867
0644
edit
dl
rm
action-utils.js.map
5488
0644
edit
dl
rm
after-task-async-storage-instance.d.ts
157
0644
edit
dl
rm
after-task-async-storage-instance.js
459
0644
edit
dl
rm
after-task-async-storage-instance.js.map
522
0644
edit
dl
rm
after-task-async-storage.external.d.ts
649
0644
edit
dl
rm
after-task-async-storage.external.js
419
0644
edit
dl
rm
after-task-async-storage.external.js.map
971
0644
edit
dl
rm
app-render-prerender-utils.d.ts
1889
0644
edit
dl
rm
app-render-prerender-utils.js
7252
0644
edit
dl
rm
app-render-prerender-utils.js.map
10883
0644
edit
dl
rm
app-render-render-utils.d.ts
335
0644
edit
dl
rm
app-render-render-utils.js
1152
0644
edit
dl
rm
app-render-render-utils.js.map
1608
0644
edit
dl
rm
app-render.d.ts
4106
0644
edit
dl
rm
app-render.js
165965
0644
edit
dl
rm
app-render.js.map
240673
0644
edit
dl
rm
async-local-storage.d.ts
316
0644
edit
dl
rm
async-local-storage.js
2071
0644
edit
dl
rm
async-local-storage.js.map
2799
0644
edit
dl
rm
cache-signal.d.ts
1279
0644
edit
dl
rm
cache-signal.js
5984
0644
edit
dl
rm
cache-signal.js.map
8141
0644
edit
dl
rm
collect-segment-data.d.ts
1125
0644
edit
dl
rm
collect-segment-data.js
13386
0644
edit
dl
rm
collect-segment-data.js.map
22382
0644
edit
dl
rm
create-component-styles-and-scripts.d.ts
410
0644
edit
dl
rm
create-component-styles-and-scripts.js
1689
0644
edit
dl
rm
create-component-styles-and-scripts.js.map
2420
0644
edit
dl
rm
create-component-tree.d.ts
1030
0644
edit
dl
rm
create-component-tree.js
41700
0644
edit
dl
rm
create-component-tree.js.map
59353
0644
edit
dl
rm
create-error-handler.d.ts
1390
0644
edit
dl
rm
create-error-handler.js
10386
0644
edit
dl
rm
create-error-handler.js.map
14097
0644
edit
dl
rm
create-flight-router-state-from-loader-tree.d.ts
500
0644
edit
dl
rm
create-flight-router-state-from-loader-tree.js
3821
0644
edit
dl
rm
create-flight-router-state-from-loader-tree.js.map
5715
0644
edit
dl
rm
csrf-protection.d.ts
104
0644
edit
dl
rm
csrf-protection.js
3021
0644
edit
dl
rm
csrf-protection.js.map
3937
0644
edit
dl
rm
dynamic-access-async-storage-instance.d.ts
163
0644
edit
dl
rm
dynamic-access-async-storage-instance.js
475
0644
edit
dl
rm
dynamic-access-async-storage-instance.js.map
536
0644
edit
dl
rm
dynamic-access-async-storage.external.d.ts
393
0644
edit
dl
rm
dynamic-access-async-storage.external.js
443
0644
edit
dl
rm
dynamic-access-async-storage.external.js.map
762
0644
edit
dl
rm
dynamic-rendering.d.ts
6174
0644
edit
dl
rm
dynamic-rendering.js
33117
0644
edit
dl
rm
dynamic-rendering.js.map
45831
0644
edit
dl
rm
encryption-utils-server.d.ts
141
0644
edit
dl
rm
encryption-utils-server.js
4823
0644
edit
dl
rm
encryption-utils-server.js.map
7153
0644
edit
dl
rm
encryption-utils.d.ts
1443
0644
edit
dl
rm
encryption-utils.js
7849
0644
edit
dl
rm
encryption-utils.js.map
11257
0644
edit
dl
rm
encryption.d.ts
241
0644
edit
dl
rm
encryption.js
11856
0644
edit
dl
rm
encryption.js.map
16682
0644
edit
dl
rm
entry-base.d.ts
2199
0644
edit
dl
rm
entry-base.js
8467
0644
edit
dl
rm
entry-base.js.map
6257
0644
edit
dl
rm
flight-render-result.d.ts
353
0644
edit
dl
rm
flight-render-result.js
794
0644
edit
dl
rm
flight-render-result.js.map
967
0644
edit
dl
rm
get-asset-query-string.d.ts
153
0644
edit
dl
rm
get-asset-query-string.js
999
0644
edit
dl
rm
get-asset-query-string.js.map
1591
0644
edit
dl
rm
get-css-inlined-link-tags.d.ts
524
0644
edit
dl
rm
get-css-inlined-link-tags.js
1549
0644
edit
dl
rm
get-css-inlined-link-tags.js.map
2576
0644
edit
dl
rm
get-layer-assets.d.ts
599
0644
edit
dl
rm
get-layer-assets.js
3329
0644
edit
dl
rm
get-layer-assets.js.map
5503
0644
edit
dl
rm
get-preloadable-fonts.d.ts
709
0644
edit
dl
rm
get-preloadable-fonts.js
1160
0644
edit
dl
rm
get-preloadable-fonts.js.map
2386
0644
edit
dl
rm
get-script-nonce-from-header.d.ts
94
0644
edit
dl
rm
get-script-nonce-from-header.js
2017
0644
edit
dl
rm
get-script-nonce-from-header.js.map
2785
0644
edit
dl
rm
get-segment-param.d.ts
228
0644
edit
dl
rm
get-segment-param.js
1524
0644
edit
dl
rm
get-segment-param.js.map
2340
0644
edit
dl
rm
get-short-dynamic-param-type.d.ts
362
0644
edit
dl
rm
get-short-dynamic-param-type.js
1069
0644
edit
dl
rm
get-short-dynamic-param-type.js.map
1199
0644
edit
dl
rm
has-loading-component-in-tree.d.ts
135
0644
edit
dl
rm
has-loading-component-in-tree.js
544
0644
edit
dl
rm
has-loading-component-in-tree.js.map
813
0644
edit
dl
rm
interop-default.d.ts
121
0644
edit
dl
rm
interop-default.js
391
0644
edit
dl
rm
interop-default.js.map
409
0644
edit
dl
rm
make-get-server-inserted-html.d.ts
500
0644
edit
dl
rm
make-get-server-inserted-html.js
4641
0644
edit
dl
rm
make-get-server-inserted-html.js.map
6518
0644
edit
dl
rm
parse-and-validate-flight-router-state.d.ts
388
0644
edit
dl
rm
parse-and-validate-flight-router-state.js
1835
0644
edit
dl
rm
parse-and-validate-flight-router-state.js.map
2429
0644
edit
dl
rm
parse-loader-tree.d.ts
430
0644
edit
dl
rm
parse-loader-tree.js
1009
0644
edit
dl
rm
parse-loader-tree.js.map
1426
0644
edit
dl
rm
postponed-state.d.ts
2153
0644
edit
dl
rm
postponed-state.js
6425
0644
edit
dl
rm
postponed-state.js.map
9211
0644
edit
dl
rm
prospective-render-utils.d.ts
115
0644
edit
dl
rm
prospective-render-utils.js
2587
0644
edit
dl
rm
prospective-render-utils.js.map
3412
0644
edit
dl
rm
react-large-shell-error.d.ts
107
0644
edit
dl
rm
react-large-shell-error.js
596
0644
edit
dl
rm
react-large-shell-error.js.map
789
0644
edit
dl
rm
react-server.node.d.ts
152
0644
edit
dl
rm
react-server.node.js
1111
0644
edit
dl
rm
react-server.node.js.map
714
0644
edit
dl
rm
render-css-resource.d.ts
612
0644
edit
dl
rm
render-css-resource.js
2460
0644
edit
dl
rm
render-css-resource.js.map
3947
0644
edit
dl
rm
required-scripts.d.ts
444
0644
edit
dl
rm
required-scripts.js
2855
0644
edit
dl
rm
required-scripts.js.map
4291
0644
edit
dl
rm
segment-explorer-path.d.ts
956
0644
edit
dl
rm
segment-explorer-path.js
3854
0644
edit
dl
rm
segment-explorer-path.js.map
5293
0644
edit
dl
rm
server-inserted-html.d.ts
293
0644
edit
dl
rm
server-inserted-html.js
1503
0644
edit
dl
rm
server-inserted-html.js.map
1771
0644
edit
dl
rm
strip-flight-headers.d.ts
245
0644
edit
dl
rm
strip-flight-headers.js
494
0644
edit
dl
rm
strip-flight-headers.js.map
725
0644
edit
dl
rm
types.d.ts
10185
0644
edit
dl
rm
types.js
2923
0644
edit
dl
rm
types.js.map
13265
0644
edit
dl
rm
use-flight-response.d.ts
1136
0644
edit
dl
rm
use-flight-response.js
6844
0644
edit
dl
rm
use-flight-response.js.map
11174
0644
edit
dl
rm
walk-tree-with-flight-router-state.d.ts
1394
0644
edit
dl
rm
walk-tree-with-flight-router-state.js
11174
0644
edit
dl
rm
walk-tree-with-flight-router-state.js.map
17316
0644
edit
dl
rm
work-async-storage-instance.d.ts
136
0644
edit
dl
rm
work-async-storage-instance.js
438
0644
edit
dl
rm
work-async-storage-instance.js.map
490
0644
edit
dl
rm
work-async-storage.external.d.ts
3745
0644
edit
dl
rm
work-async-storage.external.js
387
0644
edit
dl
rm
work-async-storage.external.js.map
4214
0644
edit
dl
rm
work-unit-async-storage-instance.d.ts
153
0644
edit
dl
rm
work-unit-async-storage-instance.js
455
0644
edit
dl
rm
work-unit-async-storage-instance.js.map
516
0644
edit
dl
rm
work-unit-async-storage.external.d.ts
12301
0644
edit
dl
rm
work-unit-async-storage.external.js
7822
0644
edit
dl
rm
work-unit-async-storage.external.js.map
21037
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/next/dist/server/app-render/collect-segment-data.js
(13386B)
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "collectSegmentData", { enumerable: true, get: function() { return collectSegmentData; } }); const _jsxruntime = require("react/jsx-runtime"); const _client = require("react-server-dom-webpack/client"); const _static = require("react-server-dom-webpack/static"); const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper"); const _scheduler = require("../../lib/scheduler"); const _segmentvalueencoding = require("../../shared/lib/segment-cache/segment-value-encoding"); const _createerrorhandler = require("./create-error-handler"); const filterStackFrame = process.env.NODE_ENV !== 'production' ? require('../lib/source-maps').filterStackFrameDEV : undefined; const findSourceMapURL = process.env.NODE_ENV !== 'production' ? require('../lib/source-maps').findSourceMapURLDEV : undefined; function onSegmentPrerenderError(error) { const digest = (0, _createerrorhandler.getDigestForWellKnownError)(error); if (digest) { return digest; } // We don't need to log the errors because we would have already done that // when generating the original Flight stream for the whole page. } async function collectSegmentData(isClientParamParsingEnabled, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest) { // Traverse the router tree and generate a prefetch response for each segment. // A mutable map to collect the results as we traverse the route tree. const resultMap = new Map(); // Before we start, warm up the module cache by decoding the page data once. // Then we can assume that any remaining async tasks that occur the next time // are due to hanging promises caused by dynamic data access. Note we only // have to do this once per page, not per individual segment. // try { await (0, _client.createFromReadableStream)((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer), { findSourceMapURL, serverConsumerManifest }); await (0, _scheduler.waitAtLeastOneReactRenderTask)(); } catch {} // Create an abort controller that we'll use to stop the stream. const abortController = new AbortController(); const onCompletedProcessingRouteTree = async ()=>{ // Since all we're doing is decoding and re-encoding a cached prerender, if // serializing the stream takes longer than a microtask, it must because of // hanging promises caused by dynamic data. await (0, _scheduler.waitAtLeastOneReactRenderTask)(); abortController.abort(); }; // Generate a stream for the route tree prefetch. While we're walking the // tree, we'll also spawn additional tasks to generate the segment prefetches. // The promises for these tasks are pushed to a mutable array that we will // await once the route tree is fully rendered. const segmentTasks = []; const { prelude: treeStream } = await (0, _static.unstable_prerender)(// RootTreePrefetch is not a valid return type for a React component, but // we need to use a component so that when we decode the original stream // inside of it, the side effects are transferred to the new stream. // @ts-expect-error /*#__PURE__*/ (0, _jsxruntime.jsx)(PrefetchTreeData, { isClientParamParsingEnabled: isClientParamParsingEnabled, fullPageDataBuffer: fullPageDataBuffer, serverConsumerManifest: serverConsumerManifest, clientModules: clientModules, staleTime: staleTime, segmentTasks: segmentTasks, onCompletedProcessingRouteTree: onCompletedProcessingRouteTree }), clientModules, { filterStackFrame, signal: abortController.signal, onError: onSegmentPrerenderError }); // Write the route tree to a special `/_tree` segment. const treeBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(treeStream); resultMap.set('/_tree', treeBuffer); // Now that we've finished rendering the route tree, all the segment tasks // should have been spawned. Await them in parallel and write the segment // prefetches to the result map. for (const [segmentPath, buffer] of (await Promise.all(segmentTasks))){ resultMap.set(segmentPath, buffer); } return resultMap; } async function PrefetchTreeData({ isClientParamParsingEnabled, fullPageDataBuffer, serverConsumerManifest, clientModules, staleTime, segmentTasks, onCompletedProcessingRouteTree }) { // We're currently rendering a Flight response for the route tree prefetch. // Inside this component, decode the Flight stream for the whole page. This is // a hack to transfer the side effects from the original Flight stream (e.g. // Float preloads) onto the Flight stream for the tree prefetch. // TODO: React needs a better way to do this. Needed for Server Actions, too. const initialRSCPayload = await (0, _client.createFromReadableStream)(createUnclosingPrefetchStream((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer)), { findSourceMapURL, serverConsumerManifest }); const buildId = initialRSCPayload.b; // FlightDataPath is an unsound type, hence the additional checks. const flightDataPaths = initialRSCPayload.f; if (flightDataPaths.length !== 1 && flightDataPaths[0].length !== 3) { console.error('Internal Next.js error: InitialRSCPayload does not match the expected ' + 'shape for a prerendered page during segment prefetch generation.'); return null; } const flightRouterState = flightDataPaths[0][0]; const seedData = flightDataPaths[0][1]; const head = flightDataPaths[0][2]; // Compute the route metadata tree by traversing the FlightRouterState. As we // walk the tree, we will also spawn a task to produce a prefetch response for // each segment. const tree = collectSegmentDataImpl(isClientParamParsingEnabled, flightRouterState, buildId, seedData, clientModules, _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY, segmentTasks); const isHeadPartial = await isPartialRSCData(head, clientModules); // Notify the abort controller that we're done processing the route tree. // Anything async that happens after this point must be due to hanging // promises in the original stream. onCompletedProcessingRouteTree(); // Render the route tree to a special `/_tree` segment. const treePrefetch = { buildId, tree, head, isHeadPartial, staleTime }; return treePrefetch; } function collectSegmentDataImpl(isClientParamParsingEnabled, route, buildId, seedData, clientModules, requestKey, segmentTasks) { // Metadata about the segment. Sent as part of the tree prefetch. Null if // there are no children. let slotMetadata = null; const children = route[1]; const seedDataChildren = seedData !== null ? seedData[2] : null; for(const parallelRouteKey in children){ const childRoute = children[parallelRouteKey]; const childSegment = childRoute[0]; const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null; const childRequestKey = (0, _segmentvalueencoding.appendSegmentRequestKeyPart)(requestKey, parallelRouteKey, (0, _segmentvalueencoding.createSegmentRequestKeyPart)(childSegment)); const childTree = collectSegmentDataImpl(isClientParamParsingEnabled, childRoute, buildId, childSeedData, clientModules, childRequestKey, segmentTasks); if (slotMetadata === null) { slotMetadata = {}; } slotMetadata[parallelRouteKey] = childTree; } if (seedData !== null) { // Spawn a task to write the segment data to a new Flight stream. segmentTasks.push(// Since we're already in the middle of a render, wait until after the // current task to escape the current rendering context. (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, seedData, requestKey, clientModules))); } else { // This segment does not have any seed data. Skip generating a prefetch // response for it. We'll still include it in the route tree, though. // TODO: We should encode in the route tree whether a segment is missing // so we don't attempt to fetch it for no reason. As of now this shouldn't // ever happen in practice, though. } const segment = route[0]; let name; let paramType = null; let paramKey = null; if (typeof segment === 'string') { name = segment; paramKey = segment; paramType = null; } else { name = segment[0]; paramKey = segment[1]; paramType = segment[2]; } // Metadata about the segment. Sent to the client as part of the // tree prefetch. return { name, paramType, // This value is ommitted from the prefetch response when clientParamParsing // is enabled. The flag only exists while we're testing the feature, in // case there's a bug and we need to revert. // TODO: Remove once clientParamParsing is enabled everywhere. paramKey: isClientParamParsingEnabled ? null : paramKey, slots: slotMetadata, isRootLayout: route[4] === true }; } async function renderSegmentPrefetch(buildId, seedData, requestKey, clientModules) { // Render the segment data to a stream. // In the future, this is where we can include additional metadata, like the // stale time and cache tags. const rsc = seedData[1]; const loading = seedData[3]; const segmentPrefetch = { buildId, rsc, loading, isPartial: await isPartialRSCData(rsc, clientModules) }; // Since all we're doing is decoding and re-encoding a cached prerender, if // it takes longer than a microtask, it must because of hanging promises // caused by dynamic data. Abort the stream at the end of the current task. const abortController = new AbortController(); (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>abortController.abort()); const { prelude: segmentStream } = await (0, _static.unstable_prerender)(segmentPrefetch, clientModules, { filterStackFrame, signal: abortController.signal, onError: onSegmentPrerenderError }); const segmentBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(segmentStream); if (requestKey === _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY) { return [ '/_index', segmentBuffer ]; } else { return [ requestKey, segmentBuffer ]; } } async function isPartialRSCData(rsc, clientModules) { // We can determine if a segment contains only partial data if it takes longer // than a task to encode, because dynamic data is encoded as an infinite // promise. We must do this in a separate Flight prerender from the one that // actually generates the prefetch stream because we need to include // `isPartial` in the stream itself. let isPartial = false; const abortController = new AbortController(); (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>{ // If we haven't yet finished the outer task, then it must be because we // accessed dynamic data. isPartial = true; abortController.abort(); }); await (0, _static.unstable_prerender)(rsc, clientModules, { filterStackFrame, signal: abortController.signal, onError () {}, onPostpone () { // If something postponed, i.e. when Cache Components is not enabled, we can // infer that the RSC data is partial. isPartial = true; } }); return isPartial; } function createUnclosingPrefetchStream(originalFlightStream) { // When PPR is enabled, prefetch streams may contain references that never // resolve, because that's how we encode dynamic data access. In the decoded // object returned by the Flight client, these are reified into hanging // promises that suspend during render, which is effectively what we want. // The UI resolves when it switches to the dynamic data stream // (via useDeferredValue(dynamic, static)). // // However, the Flight implementation currently errors if the server closes // the response before all the references are resolved. As a cheat to work // around this, we wrap the original stream in a new stream that never closes, // and therefore doesn't error. const reader = originalFlightStream.getReader(); return new ReadableStream({ async pull (controller) { while(true){ const { done, value } = await reader.read(); if (!done) { // Pass to the target stream and keep consuming the Flight response // from the server. controller.enqueue(value); continue; } // The server stream has closed. Exit, but intentionally do not close // the target stream. return; } } }); } //# sourceMappingURL=collect-segment-data.js.map
Save
cmd:
run