/opt/canhelp/node_modules/next/dist/esm/lib
NameSizeModeActions
eslint/-0755rm
framework/-0755rm
fs/-0755rm
helpers/-0755rm
memory/-0755rm
metadata/-0755rm
typescript/-0755rm
batcher.js20580644editdlrm
batcher.js.map42230644editdlrm
build-custom-route.js9030644editdlrm
build-custom-route.js.map24250644editdlrm
client-and-server-references.js6940644editdlrm
client-and-server-references.js.map16700644editdlrm
coalesced-function.js8680644editdlrm
coalesced-function.js.map20030644editdlrm
compile-error.js860644editdlrm
compile-error.js.map2160644editdlrm
constants.js83860644editdlrm
constants.js.map135700644editdlrm
create-client-router-filter.js21660644editdlrm
create-client-router-filter.js.map40100644editdlrm
default-transpiled-packages.json100644editdlrm
detached-promise.js6790644editdlrm
detached-promise.js.map12830644editdlrm
detect-typo.js13190644editdlrm
detect-typo.js.map27740644editdlrm
download-swc.js48300644editdlrm
download-swc.js.map82020644editdlrm
error-telemetry-utils.js13910644editdlrm
error-telemetry-utils.js.map23800644editdlrm
fallback.js29330644editdlrm
fallback.js.map38460644editdlrm
fatal-error.js820644editdlrm
fatal-error.js.map2100644editdlrm
file-exists.js8140644editdlrm
file-exists.js.map14470644editdlrm
find-config.js29380644editdlrm
find-config.js.map50320644editdlrm
find-pages-dir.js8810644editdlrm
find-pages-dir.js.map15600644editdlrm
find-root.js25100644editdlrm
find-root.js.map42820644editdlrm
format-cli-help-output.js25780644editdlrm
format-cli-help-output.js.map49000644editdlrm
format-dynamic-import-path.js7060644editdlrm
format-dynamic-import-path.js.map11890644editdlrm
format-server-error.js24070644editdlrm
format-server-error.js.map37500644editdlrm
generate-interception-routes-rewrites.js26510644editdlrm
generate-interception-routes-rewrites.js.map43580644editdlrm
get-files-in-dir.js5100644editdlrm
get-files-in-dir.js.map11780644editdlrm
get-network-host.js10440644editdlrm
get-network-host.js.map19160644editdlrm
get-package-version.js15470644editdlrm
get-package-version.js.map31930644editdlrm
get-project-dir.js14650644editdlrm
get-project-dir.js.map23940644editdlrm
has-necessary-dependencies.js13570644editdlrm
has-necessary-dependencies.js.map37320644editdlrm
import-next-warning.js3220644editdlrm
import-next-warning.js.map5060644editdlrm
inline-static-env.js39780644editdlrm
inline-static-env.js.map71300644editdlrm
install-dependencies.js8860644editdlrm
install-dependencies.js.map19680644editdlrm
interop-default.js1150644editdlrm
interop-default.js.map2930644editdlrm
is-api-route.js1710644editdlrm
is-api-route.js.map3630644editdlrm
is-app-page-route.js1240644editdlrm
is-app-page-route.js.map3160644editdlrm
is-app-route-route.js1270644editdlrm
is-app-route-route.js.map3220644editdlrm
is-edge-runtime.js2180644editdlrm
is-edge-runtime.js.map5710644editdlrm
is-error.js19320644editdlrm
is-error.js.map28310644editdlrm
is-internal-component.js3870644editdlrm
is-internal-component.js.map6980644editdlrm
is-serializable-props.js41650644editdlrm
is-serializable-props.js.map64740644editdlrm
known-edge-safe-packages.json180644editdlrm
load-custom-routes.js221900644editdlrm
load-custom-routes.js.map386290644editdlrm
mime-type.js2240644editdlrm
mime-type.js.map4480644editdlrm
mkcert.js60370644editdlrm
mkcert.js.map96840644editdlrm
multi-file-writer.js24190644editdlrm
multi-file-writer.js.map42030644editdlrm
needs-experimental-react.js2580644editdlrm
needs-experimental-react.js.map6800644editdlrm
non-nullable.js1300644editdlrm
non-nullable.js.map3350644editdlrm
normalize-path.js1720644editdlrm
normalize-path.js.map4260644editdlrm
oxford-comma-list.js2330644editdlrm
oxford-comma-list.js.map7010644editdlrm
page-types.js2290644editdlrm
page-types.js.map2620644editdlrm
patch-incorrect-lockfile.js53600644editdlrm
patch-incorrect-lockfile.js.map92290644editdlrm
pick.js1780644editdlrm
pick.js.map4960644editdlrm
picocolors.js33720644editdlrm
picocolors.js.map60240644editdlrm
pretty-bytes.js28640644editdlrm
pretty-bytes.js.map41280644editdlrm
realpath.js5090644editdlrm
realpath.js.map8370644editdlrm
recursive-copy.js23780644editdlrm
recursive-copy.js.map44830644editdlrm
recursive-delete.js22260644editdlrm
recursive-delete.js.map41960644editdlrm
recursive-readdir.js52300644editdlrm
recursive-readdir.js.map84950644editdlrm
redirect-status.js8340644editdlrm
redirect-status.js.map17850644editdlrm
require-instrumentation-client.js12780644editdlrm
require-instrumentation-client.js.map19470644editdlrm
resolve-from.js16890644editdlrm
resolve-from.js.map26450644editdlrm
route-pattern-normalizer.js44320644editdlrm
route-pattern-normalizer.js.map65670644editdlrm
scheduler.js23320644editdlrm
scheduler.js.map34640644editdlrm
semver-noop.js2710644editdlrm
semver-noop.js.map4360644editdlrm
server-external-packages.json12810644editdlrm
setup-exception-listeners.js2780644editdlrm
setup-exception-listeners.js.map5900644editdlrm
static-env.js21120644editdlrm
static-env.js.map37930644editdlrm
try-to-parse-path.js24520644editdlrm
try-to-parse-path.js.map44780644editdlrm
turbopack-warning.js69480644editdlrm
turbopack-warning.js.map116590644editdlrm
url.js13220644editdlrm
url.js.map28840644editdlrm
verify-partytown-setup.js28420644editdlrm
verify-partytown-setup.js.map50880644editdlrm
verify-root-layout.js37940644editdlrm
verify-root-layout.js.map66280644editdlrm
verify-typescript-setup.js52820644editdlrm
verify-typescript-setup.js.map90110644editdlrm
verifyAndLint.js26940644editdlrm
verifyAndLint.js.map47470644editdlrm
wait.js2480644editdlrm
wait.js.map4780644editdlrm
with-promise-cache.js3800644editdlrm
with-promise-cache.js.map13790644editdlrm
worker.js79810644editdlrm
worker.js.map131850644editdlrm
Edit: /opt/canhelp/node_modules/next/dist/esm/lib/worker.js (7981B)
import { Worker as JestWorker } from 'next/dist/compiled/jest-worker'; import { Transform } from 'stream'; import { formatDebugAddress, formatNodeOptions, getNodeDebugType, getParsedDebugAddress, getParsedNodeOptionsWithoutInspect } from '../server/lib/utils'; const RESTARTED = Symbol('restarted'); const cleanupWorkers = (worker)=>{ var _worker__workerPool; for (const curWorker of ((_worker__workerPool = worker._workerPool) == null ? void 0 : _worker__workerPool._workers) || []){ var _curWorker__child; (_curWorker__child = curWorker._child) == null ? void 0 : _curWorker__child.kill('SIGINT'); } }; export function getNextBuildDebuggerPortOffset(_) { // 0: export worker return 0; } export class Worker { constructor(workerPath, options){ let { enableSourceMaps, timeout, onRestart, logger = console, debuggerPortOffset, isolatedMemory, ...farmOptions } = options; let restartPromise; let resolveRestartPromise; let activeTasks = 0; this._worker = undefined; // ensure we end workers if they weren't before exit process.on('exit', ()=>{ this.close(); }); const nodeOptions = getParsedNodeOptionsWithoutInspect(); if (debuggerPortOffset !== -1) { const nodeDebugType = getNodeDebugType(); if (nodeDebugType) { const address = getParsedDebugAddress(); address.port = address.port + // current process runs on `address.port` 1 + debuggerPortOffset; nodeOptions[nodeDebugType] = formatDebugAddress(address); } } if (enableSourceMaps) { nodeOptions['enable-source-maps'] = true; } if (isolatedMemory) { delete nodeOptions['max-old-space-size']; delete nodeOptions['max_old_space_size']; } const createWorker = ()=>{ var _farmOptions_forkOptions; this._worker = new JestWorker(workerPath, { ...farmOptions, forkOptions: { ...farmOptions.forkOptions, env: { ...process.env, ...((_farmOptions_forkOptions = farmOptions.forkOptions) == null ? void 0 : _farmOptions_forkOptions.env) || {}, IS_NEXT_WORKER: 'true', NODE_OPTIONS: formatNodeOptions(nodeOptions) } }, maxRetries: 0 }); restartPromise = new Promise((resolve)=>resolveRestartPromise = resolve); /** * Jest Worker has two worker types, ChildProcessWorker (uses child_process) and NodeThreadWorker (uses worker_threads) * Next.js uses ChildProcessWorker by default, but it can be switched to NodeThreadWorker with an experimental flag * * We only want to handle ChildProcessWorker's orphan process issue, so we access the private property "_child": * https://github.com/facebook/jest/blob/b38d7d345a81d97d1dc3b68b8458b1837fbf19be/packages/jest-worker/src/workers/ChildProcessWorker.ts * * But this property is not available in NodeThreadWorker, so we need to check if we are using ChildProcessWorker */ if (!farmOptions.enableWorkerThreads) { var _this__worker__workerPool; for (const worker of ((_this__worker__workerPool = this._worker._workerPool) == null ? void 0 : _this__worker__workerPool._workers) || []){ var _worker__child, // if a child process emits a particular message, we track that as activity // so the parent process can keep track of progress _worker__child1; (_worker__child = worker._child) == null ? void 0 : _worker__child.on('exit', (code, signal)=>{ if ((code || signal && signal !== 'SIGINT') && this._worker) { logger.error(`Next.js build worker exited with code: ${code} and signal: ${signal}`); // if a child process doesn't exit gracefully, we want to bubble up the exit code to the parent process process.exit(code ?? 1); } }); (_worker__child1 = worker._child) == null ? void 0 : _worker__child1.on('message', ([, data])=>{ if (data && typeof data === 'object' && 'type' in data && data.type === 'activity') { onActivity(); } }); } } let aborted = false; const onActivityAbort = ()=>{ if (!aborted) { options.onActivityAbort == null ? void 0 : options.onActivityAbort.call(options); aborted = true; } }; // Listen to the worker's stdout and stderr, if there's any thing logged, abort the activity first const abortActivityStreamOnLog = new Transform({ transform (_chunk, _encoding, callback) { onActivityAbort(); callback(); } }); // Stop the activity if there's any output from the worker this._worker.getStdout().pipe(abortActivityStreamOnLog); this._worker.getStderr().pipe(abortActivityStreamOnLog); // Pipe the worker's stdout and stderr to the parent process this._worker.getStdout().pipe(process.stdout); this._worker.getStderr().pipe(process.stderr); }; createWorker(); const onHanging = ()=>{ const worker = this._worker; if (!worker) return; const resolve = resolveRestartPromise; createWorker(); logger.warn(`Sending SIGTERM signal to static worker due to timeout${timeout ? ` of ${timeout / 1000} seconds` : ''}. Subsequent errors may be a result of the worker exiting.`); worker.end().then(()=>{ resolve(RESTARTED); }); }; let hangingTimer = false; const onActivity = ()=>{ if (hangingTimer) clearTimeout(hangingTimer); if (options.onActivity) options.onActivity(); hangingTimer = activeTasks > 0 && setTimeout(onHanging, timeout); }; for (const method of farmOptions.exposedMethods){ if (method.startsWith('_')) continue; this[method] = timeout ? async (...args)=>{ activeTasks++; try { let attempts = 0; for(;;){ onActivity(); const result = await Promise.race([ this._worker[method](...args), restartPromise ]); if (result !== RESTARTED) return result; if (onRestart) onRestart(method, args, ++attempts); } } finally{ activeTasks--; onActivity(); } } : this._worker[method].bind(this._worker); } } end() { const worker = this._worker; if (!worker) { throw Object.defineProperty(new Error('Farm is ended, no more calls can be done to it'), "__NEXT_ERROR_CODE", { value: "E265", enumerable: false, configurable: true }); } cleanupWorkers(worker); this._worker = undefined; return worker.end(); } /** * Quietly end the worker if it exists */ close() { if (this._worker) { cleanupWorkers(this._worker); this._worker.end(); } } } //# sourceMappingURL=worker.js.map