/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 (5021B)
import { ResponseAbortedName, createAbortController } from './web/spec-extension/adapters/next-request'; import { DetachedPromise } from '../lib/detached-promise'; import { getTracer } from './lib/trace/tracer'; import { NextNodeServerSpan } from './lib/trace/constants'; import { getClientComponentLoaderMetrics } from './client-component-renderer-logger'; export function isAbortError(e) { return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === ResponseAbortedName; } function createWriterFromResponse(res, waitUntilForEnd) { let started = false; // Create a promise that will resolve once the response has drained. See // https://nodejs.org/api/stream.html#stream_event_drain let drained = new DetachedPromise(); function onDrain() { drained.resolve(); } res.on('drain', onDrain); // If the finish event fires, it means we shouldn't block and wait for the // drain event. res.once('close', ()=>{ res.off('drain', onDrain); drained.resolve(); }); // Create a promise that will resolve once the response has finished. See // https://nodejs.org/api/http.html#event-finish_1 const finished = new DetachedPromise(); res.once('finish', ()=>{ finished.resolve(); }); // Create a writable stream that will write to the response. return new WritableStream({ write: async (chunk)=>{ // You'd think we'd want to use `start` instead of placing this in `write` // but this ensures that we don't actually flush the headers until we've // started writing chunks. if (!started) { started = true; if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) { const metrics = getClientComponentLoaderMetrics(); if (metrics) { performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, { start: metrics.clientComponentLoadStart, end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes }); } } res.flushHeaders(); getTracer().trace(NextNodeServerSpan.startResponse, { spanName: 'start response' }, ()=>undefined); } try { const ok = res.write(chunk); // Added by the `compression` middleware, this is a function that will // flush the partially-compressed response to the client. if ('flush' in res && typeof res.flush === 'function') { res.flush(); } // If the write returns false, it means there's some backpressure, so // wait until it's streamed before continuing. if (!ok) { await drained.promise; // Reset the drained promise so that we can wait for the next drain event. drained = new DetachedPromise(); } } catch (err) { res.end(); throw Object.defineProperty(new Error('failed to write chunk to response', { cause: err }), "__NEXT_ERROR_CODE", { value: "E321", enumerable: false, configurable: true }); } }, abort: (err)=>{ if (res.writableFinished) return; res.destroy(err); }, close: async ()=>{ // if a waitUntil promise was passed, wait for it to resolve before // ending the response. if (waitUntilForEnd) { await waitUntilForEnd; } if (res.writableFinished) return; res.end(); return finished.promise; } }); } export async function pipeToNodeResponse(readable, res, waitUntilForEnd) { try { // If the response has already errored, then just return now. const { errored, destroyed } = res; if (errored || destroyed) return; // Create a new AbortController so that we can abort the readable if the // client disconnects. const controller = createAbortController(res); const writer = createWriterFromResponse(res, waitUntilForEnd); await readable.pipeTo(writer, { signal: controller.signal }); } catch (err) { // If this isn't related to an abort error, re-throw it. if (isAbortError(err)) return; throw Object.defineProperty(new Error('failed to pipe response', { cause: err }), "__NEXT_ERROR_CODE", { value: "E180", enumerable: false, configurable: true }); } } //# sourceMappingURL=pipe-readable.js.map