/opt/canhelp/node_modules/next/dist/esm/server
NameSizeModeActions
after/-0755rm
api-utils/-0755rm
app-render/-0755rm
async-storage/-0755rm
base-http/-0755rm
dev/-0755rm
instrumentation/-0755rm
lib/-0755rm
node-environment-extensions/-0755rm
normalizers/-0755rm
og/-0755rm
request/-0755rm
response-cache/-0755rm
resume-data-cache/-0755rm
route-definitions/-0755rm
route-matcher-managers/-0755rm
route-matcher-providers/-0755rm
route-matchers/-0755rm
route-matches/-0755rm
route-modules/-0755rm
stream-utils/-0755rm
typescript/-0755rm
use-cache/-0755rm
web/-0755rm
accept-header.js38520644editdlrm
accept-header.js.map64540644editdlrm
base-server.js965210644editdlrm
base-server.js.map1621330644editdlrm
body-streams.js29790644editdlrm
body-streams.js.map54080644editdlrm
cache-dir.js3240644editdlrm
cache-dir.js.map6980644editdlrm
ci-info.js6560644editdlrm
ci-info.js.map13170644editdlrm
client-component-renderer-logger.js17390644editdlrm
client-component-renderer-logger.js.map29840644editdlrm
config-schema.js273500644editdlrm
config-schema.js.map541600644editdlrm
config-shared.js66020644editdlrm
config-shared.js.map580730644editdlrm
config-utils.js56760644editdlrm
config-utils.js.map65820644editdlrm
config.js714880644editdlrm
config.js.map996810644editdlrm
create-deduped-by-callsite-server-error-logger.js23300644editdlrm
create-deduped-by-callsite-server-error-logger.js.map36410644editdlrm
crypto-utils.js23300644editdlrm
crypto-utils.js.map42990644editdlrm
dynamic-rendering-utils.js29840644editdlrm
dynamic-rendering-utils.js.map48830644editdlrm
font-utils.js15540644editdlrm
font-utils.js.map30730644editdlrm
get-app-route-from-entrypoint.js4520644editdlrm
get-app-route-from-entrypoint.js.map8520644editdlrm
get-page-files.js5470644editdlrm
get-page-files.js.map16990644editdlrm
get-route-from-entrypoint.js7940644editdlrm
get-route-from-entrypoint.js.map13980644editdlrm
htmlescape.js5100644editdlrm
htmlescape.js.map9610644editdlrm
image-optimizer.js334240644editdlrm
image-optimizer.js.map553920644editdlrm
internal-utils.js5780644editdlrm
internal-utils.js.map13080644editdlrm
load-components.js62050644editdlrm
load-components.js.map131850644editdlrm
load-default-error-components.js15560644editdlrm
load-default-error-components.js.map38870644editdlrm
load-manifest.external.js23080644editdlrm
load-manifest.external.js.map57630644editdlrm
match-bundle.js3200644editdlrm
match-bundle.js.map7050644editdlrm
next-server.js654510644editdlrm
next-server.js.map1101450644editdlrm
next-typescript.js910644editdlrm
next-typescript.js.map2150644editdlrm
next.js135400644editdlrm
next.js.map269300644editdlrm
node-environment-baseline.js8760644editdlrm
node-environment-baseline.js.map15540644editdlrm
node-environment.js7570644editdlrm
node-environment.js.map11650644editdlrm
node-polyfill-crypto.js5440644editdlrm
node-polyfill-crypto.js.map10130644editdlrm
optimize-amp.js3600644editdlrm
optimize-amp.js.map8230644editdlrm
patch-error-inspect.js175330644editdlrm
patch-error-inspect.js.map285930644editdlrm
pipe-readable.js50210644editdlrm
pipe-readable.js.map77020644editdlrm
post-process.js18000644editdlrm
post-process.js.map39970644editdlrm
ReactDOMServerPages.d.ts380644editdlrm
ReactDOMServerPages.js5840644editdlrm
ReactDOMServerPages.js.map9560644editdlrm
render-result.js72040644editdlrm
render-result.js.map142390644editdlrm
render.js534870644editdlrm
render.js.map854420644editdlrm
request-meta.js13410644editdlrm
request-meta.js.map94330644editdlrm
require-hook.js22770644editdlrm
require-hook.js.map43970644editdlrm
require.js30420644editdlrm
require.js.map61070644editdlrm
revalidation-utils.js29170644editdlrm
revalidation-utils.js.map57080644editdlrm
route-kind.js8290644editdlrm
route-kind.js.map9270644editdlrm
send-payload.js21740644editdlrm
send-payload.js.map42120644editdlrm
send-response.js30400644editdlrm
send-response.js.map45980644editdlrm
serve-static.js13340644editdlrm
serve-static.js.map26030644editdlrm
server-route-utils.js10610644editdlrm
server-route-utils.js.map19990644editdlrm
server-utils.js153150644editdlrm
server-utils.js.map261390644editdlrm
setup-http-agent-env.js8320644editdlrm
setup-http-agent-env.js.map14390644editdlrm
utils.js26720644editdlrm
utils.js.map41390644editdlrm
Edit: /opt/canhelp/node_modules/next/dist/esm/server/pipe-readable.js.map (7702B)
{"version":3,"sources":["../../src/server/pipe-readable.ts"],"sourcesContent":["import type { ServerResponse } from 'node:http'\n\nimport {\n ResponseAbortedName,\n createAbortController,\n} from './web/spec-extension/adapters/next-request'\nimport { DetachedPromise } from '../lib/detached-promise'\nimport { getTracer } from './lib/trace/tracer'\nimport { NextNodeServerSpan } from './lib/trace/constants'\nimport { getClientComponentLoaderMetrics } from './client-component-renderer-logger'\n\nexport function isAbortError(e: any): e is Error & { name: 'AbortError' } {\n return e?.name === 'AbortError' || e?.name === ResponseAbortedName\n}\n\nfunction createWriterFromResponse(\n res: ServerResponse,\n waitUntilForEnd?: Promise\n): WritableStream {\n let started = false\n\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new DetachedPromise()\n function onDrain() {\n drained.resolve()\n }\n res.on('drain', onDrain)\n\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', () => {\n res.off('drain', onDrain)\n drained.resolve()\n })\n\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new DetachedPromise()\n res.once('finish', () => {\n finished.resolve()\n })\n\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk) => {\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true\n\n if (\n 'performance' in globalThis &&\n process.env.NEXT_OTEL_PERFORMANCE_PREFIX\n ) {\n const metrics = getClientComponentLoaderMetrics()\n if (metrics) {\n performance.measure(\n `${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,\n {\n start: metrics.clientComponentLoadStart,\n end:\n metrics.clientComponentLoadStart +\n metrics.clientComponentLoadTimes,\n }\n )\n }\n }\n\n res.flushHeaders()\n getTracer().trace(\n NextNodeServerSpan.startResponse,\n {\n spanName: 'start response',\n },\n () => undefined\n )\n }\n\n try {\n const ok = res.write(chunk)\n\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush()\n }\n\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise\n\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new DetachedPromise()\n }\n } catch (err) {\n res.end()\n throw new Error('failed to write chunk to response', { cause: err })\n }\n },\n abort: (err) => {\n if (res.writableFinished) return\n\n res.destroy(err)\n },\n close: async () => {\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd\n }\n\n if (res.writableFinished) return\n\n res.end()\n return finished.promise\n },\n })\n}\n\nexport async function pipeToNodeResponse(\n readable: ReadableStream,\n res: ServerResponse,\n waitUntilForEnd?: Promise\n) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res\n if (errored || destroyed) return\n\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = createAbortController(res)\n\n const writer = createWriterFromResponse(res, waitUntilForEnd)\n\n await readable.pipeTo(writer, { signal: controller.signal })\n } catch (err: any) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return\n\n throw new Error('failed to pipe response', { cause: err })\n }\n}\n"],"names":["ResponseAbortedName","createAbortController","DetachedPromise","getTracer","NextNodeServerSpan","getClientComponentLoaderMetrics","isAbortError","e","name","createWriterFromResponse","res","waitUntilForEnd","started","drained","onDrain","resolve","on","once","off","finished","WritableStream","write","chunk","globalThis","process","env","NEXT_OTEL_PERFORMANCE_PREFIX","metrics","performance","measure","start","clientComponentLoadStart","end","clientComponentLoadTimes","flushHeaders","trace","startResponse","spanName","undefined","ok","flush","promise","err","Error","cause","abort","writableFinished","destroy","close","pipeToNodeResponse","readable","errored","destroyed","controller","writer","pipeTo","signal"],"mappings":"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","ignoreList":[0]}