@tapjs/processinfo 3.1.9 → 3.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/canonical-source.d.ts.map +1 -1
- package/dist/commonjs/canonical-source.js.map +1 -1
- package/dist/commonjs/child_process.d.ts +0 -4
- package/dist/commonjs/child_process.d.ts.map +1 -1
- package/dist/commonjs/child_process.js +8 -8
- package/dist/commonjs/child_process.js.map +1 -1
- package/dist/commonjs/find-source-map-safe.d.ts.map +1 -1
- package/dist/commonjs/find-source-map-safe.js.map +1 -1
- package/dist/commonjs/get-exclude.d.ts.map +1 -1
- package/dist/commonjs/get-exclude.js.map +1 -1
- package/dist/commonjs/get-import-meta-url-cjs.d.cts.map +1 -1
- package/dist/commonjs/get-process-info.js.map +1 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/json-file.d.ts.map +1 -1
- package/dist/commonjs/json-file.js.map +1 -1
- package/dist/commonjs/line-lengths.d.ts +0 -1
- package/dist/commonjs/line-lengths.d.ts.map +1 -1
- package/dist/commonjs/loader-paths.d.ts.map +1 -1
- package/dist/commonjs/lookup-sources.d.ts.map +1 -1
- package/dist/commonjs/lookup-sources.js.map +1 -1
- package/dist/commonjs/node-options-env.d.ts +0 -4
- package/dist/commonjs/node-options-env.d.ts.map +1 -1
- package/dist/commonjs/node-options-env.js.map +1 -1
- package/dist/commonjs/path-to-url.d.ts.map +1 -1
- package/dist/commonjs/process-info-node.d.ts +0 -1
- package/dist/commonjs/process-info-node.d.ts.map +1 -1
- package/dist/commonjs/process-info-node.js.map +1 -1
- package/dist/commonjs/register-coverage.d.ts +0 -1
- package/dist/commonjs/register-coverage.d.ts.map +1 -1
- package/dist/commonjs/register-coverage.js.map +1 -1
- package/dist/commonjs/register-process-end.js.map +1 -1
- package/dist/commonjs/set-sources.d.ts.map +1 -1
- package/dist/commonjs/set-sources.js.map +1 -1
- package/dist/commonjs/spawn-opts.d.ts.map +1 -1
- package/dist/commonjs/spawn-opts.js.map +1 -1
- package/dist/commonjs/url-to-path.d.ts.map +1 -1
- package/dist/esm/canonical-source.d.ts.map +1 -1
- package/dist/esm/canonical-source.js.map +1 -1
- package/dist/esm/child_process.d.ts +0 -4
- package/dist/esm/child_process.d.ts.map +1 -1
- package/dist/esm/child_process.js +1 -0
- package/dist/esm/child_process.js.map +1 -1
- package/dist/esm/find-source-map-safe.d.ts.map +1 -1
- package/dist/esm/find-source-map-safe.js.map +1 -1
- package/dist/esm/get-exclude.d.ts.map +1 -1
- package/dist/esm/get-exclude.js.map +1 -1
- package/dist/esm/get-import-meta-url.d.ts.map +1 -1
- package/dist/esm/get-process-info.js.map +1 -1
- package/dist/esm/hooks.d.mts +3 -0
- package/dist/esm/hooks.d.mts.map +1 -1
- package/dist/esm/hooks.mjs +31 -7
- package/dist/esm/hooks.mjs.map +1 -1
- package/dist/esm/import.mjs +24 -18
- package/dist/esm/import.mjs.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/json-file.d.ts.map +1 -1
- package/dist/esm/json-file.js.map +1 -1
- package/dist/esm/line-lengths.d.ts +0 -1
- package/dist/esm/line-lengths.d.ts.map +1 -1
- package/dist/esm/loader-paths.d.ts.map +1 -1
- package/dist/esm/lookup-sources.d.ts.map +1 -1
- package/dist/esm/lookup-sources.js.map +1 -1
- package/dist/esm/node-options-env.d.ts +0 -4
- package/dist/esm/node-options-env.d.ts.map +1 -1
- package/dist/esm/node-options-env.js.map +1 -1
- package/dist/esm/path-to-url.d.ts.map +1 -1
- package/dist/esm/process-info-node.d.ts +0 -1
- package/dist/esm/process-info-node.d.ts.map +1 -1
- package/dist/esm/process-info-node.js.map +1 -1
- package/dist/esm/register-coverage.d.ts +0 -1
- package/dist/esm/register-coverage.d.ts.map +1 -1
- package/dist/esm/register-coverage.js.map +1 -1
- package/dist/esm/register-process-end.js.map +1 -1
- package/dist/esm/set-sources.d.ts.map +1 -1
- package/dist/esm/set-sources.js.map +1 -1
- package/dist/esm/spawn-opts.d.ts.map +1 -1
- package/dist/esm/spawn-opts.js.map +1 -1
- package/dist/esm/url-to-path.d.ts.map +1 -1
- package/package.json +11 -7
package/dist/esm/hooks.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// hooks used by loader-legacy.mjs and loader.mjs
|
|
2
|
-
import { readFile } from 'node:fs/promises';
|
|
3
2
|
import { parse } from 'node:path';
|
|
4
3
|
import { fileURLToPath } from 'node:url';
|
|
5
4
|
import { getExclude } from './get-exclude.js';
|
|
@@ -8,6 +7,7 @@ import { fakeMains } from './get-main.js';
|
|
|
8
7
|
import { getProcessInfo as _getProcessInfo, reset as processInfoReset, } from './get-process-info.js';
|
|
9
8
|
import { saveLineLengths } from './line-lengths.js';
|
|
10
9
|
import { likelyHasSourceMap } from './lookup-sources.js';
|
|
10
|
+
import { readFileSync } from 'node:fs';
|
|
11
11
|
let getProcessInfo = _getProcessInfo;
|
|
12
12
|
let PORT = undefined;
|
|
13
13
|
const exclude = getExclude('_TAPJS_PROCESSINFO_EXCLUDE_', false);
|
|
@@ -42,7 +42,7 @@ if (typeof port !== 'undefined') {
|
|
|
42
42
|
export const initialize = ({ port }) => {
|
|
43
43
|
PORT = port;
|
|
44
44
|
};
|
|
45
|
-
const record =
|
|
45
|
+
export const record = (url, content, originSource) => {
|
|
46
46
|
const filename = url.startsWith('file://') ? fileURLToPath(url) : url;
|
|
47
47
|
if (exclude.test(filename)) {
|
|
48
48
|
return;
|
|
@@ -55,8 +55,12 @@ const record = async (url, content, originSource) => {
|
|
|
55
55
|
(content === undefined && url.startsWith('file://'))) {
|
|
56
56
|
// try to read the file, fall back to the content we have, or ''
|
|
57
57
|
// if any source maps anywhere, flag it as possibly having one
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
try {
|
|
59
|
+
originSource ??= readFileSync(filename, 'utf8') ?? '';
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
originSource = String(content ?? '');
|
|
63
|
+
}
|
|
60
64
|
}
|
|
61
65
|
maybeSM = smMagicComment.test(originSource);
|
|
62
66
|
if (PORT) {
|
|
@@ -69,11 +73,31 @@ const record = async (url, content, originSource) => {
|
|
|
69
73
|
else {
|
|
70
74
|
// call lazily so we don't double-register
|
|
71
75
|
getProcessInfo().files.push(filename);
|
|
72
|
-
saveLineLengths(filename, content);
|
|
76
|
+
saveLineLengths(filename, String(content));
|
|
73
77
|
if (maybeSM)
|
|
74
78
|
likelyHasSourceMap(url);
|
|
75
79
|
}
|
|
76
80
|
};
|
|
81
|
+
// Used by synchronous module.registerHooks
|
|
82
|
+
export const loadSync = (url, context, nextLoad) => {
|
|
83
|
+
if (url.startsWith('file://')) {
|
|
84
|
+
const filename = fileURLToPath(url);
|
|
85
|
+
const { ext } = parse(filename);
|
|
86
|
+
if (!ext) {
|
|
87
|
+
record(url);
|
|
88
|
+
return {
|
|
89
|
+
...context,
|
|
90
|
+
format: 'commonjs',
|
|
91
|
+
shortCircuit: true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// get line lengths from final source
|
|
96
|
+
// if origin source doesn't match, check for possible source map
|
|
97
|
+
const ret = nextLoad(url, context);
|
|
98
|
+
record(url, ret.source);
|
|
99
|
+
return ret;
|
|
100
|
+
};
|
|
77
101
|
export const load = async (url, context, nextLoad) => {
|
|
78
102
|
if (url.startsWith('file://')) {
|
|
79
103
|
const filename = fileURLToPath(url);
|
|
@@ -85,7 +109,7 @@ export const load = async (url, context, nextLoad) => {
|
|
|
85
109
|
// TODO: should we just let this fail? It fails *without* the loader,
|
|
86
110
|
// after all.
|
|
87
111
|
if (!ext) {
|
|
88
|
-
|
|
112
|
+
record(url);
|
|
89
113
|
return {
|
|
90
114
|
...context,
|
|
91
115
|
format: 'commonjs',
|
|
@@ -97,7 +121,7 @@ export const load = async (url, context, nextLoad) => {
|
|
|
97
121
|
// if origin source doesn't match, check for possible source map
|
|
98
122
|
const originSource = context.source;
|
|
99
123
|
const ret = await nextLoad(url, context);
|
|
100
|
-
|
|
124
|
+
record(url, ret.source, originSource);
|
|
101
125
|
return ret;
|
|
102
126
|
};
|
|
103
127
|
// just for testing purposes
|
package/dist/esm/hooks.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.mjs","sourceRoot":"","sources":["../../src/hooks.mts"],"names":[],"mappings":"AAAA,iDAAiD;
|
|
1
|
+
{"version":3,"file":"hooks.mjs","sourceRoot":"","sources":["../../src/hooks.mts"],"names":[],"mappings":"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","sourcesContent":["// hooks used by loader-legacy.mjs and loader.mjs\nimport { parse } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport type { MessagePort } from 'node:worker_threads'\nimport { getExclude } from './get-exclude.js'\nimport { getImportMetaURL } from './get-import-meta-url.js'\nimport { fakeMains } from './get-main.js'\nimport {\n getProcessInfo as _getProcessInfo,\n reset as processInfoReset,\n} from './get-process-info.js'\nimport { saveLineLengths } from './line-lengths.js'\nimport { likelyHasSourceMap } from './lookup-sources.js'\nimport { readFileSync } from 'node:fs'\nimport { LoadHookSync, ModuleSource } from 'node:module'\n\nlet getProcessInfo = _getProcessInfo\nlet PORT: undefined | MessagePort = undefined\n\nconst exclude = getExclude('_TAPJS_PROCESSINFO_EXCLUDE_', false)\nconst smMagicComment = /\\/[*\\/]#\\s+sourceMappingURL=[^\\s]+/\n\nexport const globalPreload = (context: { port?: MessagePort }) => {\n // this will be something like path/to/dist/esm/lib/esm.mjs\n // but we need path/to/dist/commonjs/cjs.js\n const base = getImportMetaURL('../commonjs/[global preload].js')\n const { port } = context || {}\n PORT = port\n return `\nif (typeof port !== 'undefined') {\n const { createRequire } = getBuiltin('module')\n const { fileURLToPath } = getBuiltin('url')\n const require = createRequire(${JSON.stringify(base)})\n const { getProcessInfo } = require('./get-process-info.js')\n const { saveLineLengths } = require('./line-lengths.js')\n const { likelyHasSourceMap } = require('./lookup-sources.js')\n // must be called eagerly here.\n // this does all the registration as well.\n const processInfo = getProcessInfo()\n port.onmessage = (e) => {\n const { filename, content, url } = e.data\n processInfo.files.push(filename)\n saveLineLengths(filename, content)\n if (url) likelyHasSourceMap(url)\n }\n port.unref()\n}\n`\n}\n\nexport const initialize = ({ port }: { port: MessagePort }) => {\n PORT = port\n}\n\nexport const record = (\n url: string,\n content?: ModuleSource,\n originSource?: string,\n) => {\n const filename = url.startsWith('file://') ? fileURLToPath(url) : url\n if (exclude.test(filename)) {\n return\n }\n if (fakeMains.includes(filename)) {\n return\n }\n\n let maybeSM = false\n if (\n originSource !== content ||\n (content === undefined && url.startsWith('file://'))\n ) {\n // try to read the file, fall back to the content we have, or ''\n // if any source maps anywhere, flag it as possibly having one\n try {\n originSource ??= readFileSync(filename, 'utf8') ?? ''\n } catch {\n originSource = String(content ?? '')\n }\n }\n maybeSM = smMagicComment.test(originSource as string)\n\n if (PORT) {\n PORT.postMessage({\n filename,\n content,\n ...(maybeSM && { url }),\n })\n } else {\n // call lazily so we don't double-register\n getProcessInfo().files.push(filename)\n saveLineLengths(filename, String(content))\n if (maybeSM) likelyHasSourceMap(url)\n }\n}\n\n// Used by synchronous module.registerHooks\nexport const loadSync: LoadHookSync = (url, context, nextLoad) => {\n if (url.startsWith('file://')) {\n const filename = fileURLToPath(url)\n const { ext } = parse(filename)\n if (!ext) {\n record(url)\n return {\n ...context,\n format: 'commonjs',\n shortCircuit: true,\n }\n }\n }\n\n // get line lengths from final source\n // if origin source doesn't match, check for possible source map\n const ret = nextLoad(url, context)\n record(url, ret.source)\n return ret\n}\n\nexport const load = async (\n url: string,\n context: any,\n nextLoad: Function,\n) => {\n if (url.startsWith('file://')) {\n const filename = fileURLToPath(url)\n const { ext } = parse(filename)\n // Package bins will sometimes have an extensionless bin script\n // instead of just naming their extensioned file and letting npm\n // symlink it for them. Don't blow up when this happens, just tell\n // node that it's commonjs.\n // TODO: should we just let this fail? It fails *without* the loader,\n // after all.\n if (!ext) {\n record(url)\n return {\n ...context,\n format: 'commonjs',\n shortCircuit: true,\n }\n }\n }\n\n // get line lengths from final source\n // if origin source doesn't match, check for possible source map\n const originSource = context.source\n const ret = await nextLoad(url, context)\n record(url, ret.source, originSource)\n return ret\n}\n\n// just for testing purposes\nexport const reset = () => {\n PORT = undefined\n getProcessInfo = processInfoReset().getProcessInfo\n}\n"]}
|
package/dist/esm/import.mjs
CHANGED
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
//@ts-ignore - added in node 20.6
|
|
2
2
|
// this is the argument for --import, which does the initial main-thread
|
|
3
3
|
// work, and then registers the loader without globalPreload
|
|
4
|
-
import
|
|
4
|
+
import MODULE from 'node:module';
|
|
5
5
|
import { MessageChannel } from 'node:worker_threads';
|
|
6
6
|
import { getImportMetaURL } from './get-import-meta-url.js';
|
|
7
7
|
import { getProcessInfo } from './get-process-info.js';
|
|
8
8
|
import { saveLineLengths } from './line-lengths.js';
|
|
9
9
|
import { likelyHasSourceMap } from './lookup-sources.js';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
import { loadSync } from './hooks.mjs';
|
|
11
|
+
if (MODULE.registerHooks) {
|
|
12
|
+
MODULE.registerHooks({ load: loadSync });
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const { port1, port2 } = new MessageChannel();
|
|
16
|
+
// must be called eagerly here.
|
|
17
|
+
// this does all the registration as well.
|
|
18
|
+
const processInfo = getProcessInfo();
|
|
19
|
+
port1.on('message', ({ filename, content, url }) => {
|
|
20
|
+
processInfo.files.push(filename);
|
|
21
|
+
saveLineLengths(filename, content);
|
|
22
|
+
if (url)
|
|
23
|
+
likelyHasSourceMap(url);
|
|
24
|
+
});
|
|
25
|
+
port1.unref();
|
|
26
|
+
port2.unref();
|
|
27
|
+
MODULE.register(getImportMetaURL(`./loader.mjs`), {
|
|
28
|
+
parentURL: import.meta.url,
|
|
29
|
+
data: { port: port2 },
|
|
30
|
+
transferList: [port2],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
27
33
|
//# sourceMappingURL=import.mjs.map
|
package/dist/esm/import.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.mjs","sourceRoot":"","sources":["../../src/import.mts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,wEAAwE;AACxE,4DAA4D;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"import.mjs","sourceRoot":"","sources":["../../src/import.mts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,wEAAwE;AACxE,4DAA4D;AAC5D,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,IAAK,MAAiC,CAAC,aAAa,EAAE,CAAC;IACrD,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC1C,CAAC;KAAM,CAAC;IACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,cAAc,EAAE,CAAA;IAE7C,+BAA+B;IAC/B,0CAA0C;IAC1C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;QACjD,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClC,IAAI,GAAG;YAAE,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE;QAChD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACrB,YAAY,EAAE,CAAC,KAAK,CAAC;KACtB,CAAC,CAAA;AACJ,CAAC","sourcesContent":["//@ts-ignore - added in node 20.6\n// this is the argument for --import, which does the initial main-thread\n// work, and then registers the loader without globalPreload\nimport MODULE from 'node:module'\nimport { MessageChannel } from 'node:worker_threads'\nimport { getImportMetaURL } from './get-import-meta-url.js'\nimport { getProcessInfo } from './get-process-info.js'\nimport { saveLineLengths } from './line-lengths.js'\nimport { likelyHasSourceMap } from './lookup-sources.js'\nimport { loadSync } from './hooks.mjs'\n\nif ((MODULE as Partial<typeof MODULE>).registerHooks) {\n MODULE.registerHooks({ load: loadSync })\n} else {\n const { port1, port2 } = new MessageChannel()\n\n // must be called eagerly here.\n // this does all the registration as well.\n const processInfo = getProcessInfo()\n port1.on('message', ({ filename, content, url }) => {\n processInfo.files.push(filename)\n saveLineLengths(filename, content)\n if (url) likelyHasSourceMap(url)\n })\n\n port1.unref()\n port2.unref()\n MODULE.register(getImportMetaURL(`./loader.mjs`), {\n parentURL: import.meta.url,\n data: { port: port2 },\n transferList: [port2],\n })\n}\n"]}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n exec,\n execFile,\n execFileSync,\n execSync,\n fork,\n spawn,\n spawnSync,\n} from './child_process.js'\n\nexport * from './child_process.js'\nexport * from './process-info-node.js'\nexport { WithExternalID } from './spawn-opts.js'\n\nimport { mkdirSync, readdirSync, rmSync, Stats, writeFileSync } from 'fs'\nimport { mkdir, readdir, rm, stat, writeFile } from 'fs/promises'\nimport { basename, resolve } from 'path'\nimport { getExclude } from './get-exclude.js'\nimport { safeJSON, safeJSONSync } from './json-file.js'\nimport { ProcessInfoNode } from './process-info-node.js'\n\nconst p = process\nconst tryStat = async (f: string, stats: Map<string, Stats | null>) => {\n stats.set(f, await stat(f).catch(() => null))\n}\n\nexport class ProcessInfo {\n dir: string\n exclude: RegExp\n roots: Set<ProcessInfoNode> = new Set()\n uuids: Map<string, ProcessInfoNode> = new Map()\n files: Map<string, Set<ProcessInfoNode>> = new Map()\n pendingRoot: Map<string, Set<ProcessInfoNode>> = new Map()\n pendingParent: Map<string, Set<ProcessInfoNode>> = new Map()\n externalIDs: Map<string, ProcessInfoNode> = new Map()\n\n static async load({\n dir = resolve(p.cwd(), '.tap/processinfo'),\n exclude = /(^|\\\\|\\/)node_modules(\\\\|\\/|$)/,\n }): Promise<ProcessInfo> {\n const pi = new ProcessInfo({ dir, exclude })\n await pi.load()\n return pi\n }\n\n static loadSync({\n dir = resolve(p.cwd(), '.tap/processinfo'),\n exclude = /(^|\\\\|\\/)node_modules(\\\\|\\/|$)/,\n }): ProcessInfo {\n const pi = new ProcessInfo({ dir, exclude })\n pi.loadSync()\n return pi\n }\n\n constructor({\n dir = resolve(p.cwd(), '.tap/processinfo'),\n exclude = /(^|\\\\|\\/)node_modules(\\\\|\\/|$)/,\n } = {}) {\n this.dir = dir\n this.exclude = exclude\n }\n\n clear() {\n this.roots.clear()\n this.files.clear()\n this.uuids.clear()\n this.externalIDs.clear()\n }\n\n async save() {\n await mkdir(this.dir, { recursive: true })\n const writes = []\n for (const [uuid, info] of this.uuids.entries()) {\n const f = `${this.dir}/${uuid}.json`\n writes.push(writeFile(f, JSON.stringify(info) + '\\n', 'utf8'))\n }\n await Promise.all(writes)\n }\n\n async saveSync() {\n mkdirSync(this.dir, { recursive: true })\n for (const [uuid, info] of this.uuids.entries()) {\n const f = `${this.dir}/${uuid}.json`\n writeFileSync(f, JSON.stringify(info) + '\\n', 'utf8')\n }\n }\n\n async erase() {\n this.clear()\n await rm(this.dir, { recursive: true })\n }\n\n eraseSync() {\n this.clear()\n rmSync(this.dir, { recursive: true })\n }\n\n async load() {\n const promises = []\n for (const entry of await readdir(this.dir).catch(() => [])) {\n const uuid = basename(entry, '.json')\n if (this.uuids.has(uuid)) {\n continue\n }\n const f = resolve(this.dir, entry)\n promises.push(\n safeJSON(f).then(data => {\n if (!data.uuid || data.uuid !== uuid) {\n return\n }\n new ProcessInfoNode(data).link(this)\n }),\n )\n }\n await Promise.all(promises)\n\n return this\n }\n\n loadSync() {\n let entries: string[]\n try {\n entries = readdirSync(this.dir)\n } catch (_) {\n entries = []\n }\n for (const entry of entries) {\n const uuid = basename(entry, '.json')\n if (this.uuids.has(uuid)) {\n continue\n }\n const f = resolve(this.dir, entry)\n const data = safeJSONSync(f)\n if (!data.uuid || data.uuid !== uuid) {\n continue\n }\n new ProcessInfoNode(data).link(this)\n }\n\n return this\n }\n\n #statFiles(\n node: ProcessInfoNode,\n stats: Map<string, Stats | null>,\n exclude: RegExp,\n ) {\n const promises: Promise<void>[] = []\n\n for (const f of node.files) {\n if (exclude.test(f)) continue\n // race\n /* c8 ignore start */\n if (stats.has(f)) continue\n /* c8 ignore stop */\n promises.push(tryStat(f, stats))\n const src = node.sources[f]\n if (src) {\n for (const s of src) {\n /* c8 ignore start */\n if (stats.has(s)) continue\n /* c8 ignore stop */\n promises.push(tryStat(s, stats))\n }\n }\n }\n for (const c of node.descendants ?? []) {\n promises.push(...this.#statFiles(c, stats, exclude))\n }\n return promises\n }\n\n // if any files are newer than the date, or null, then add it\n // if a file has changed, but its sources haven't, then assume\n // it's still the same content, and not \"changed\"\n #hasNewerFiles(\n node: ProcessInfoNode,\n stats: Map<string, Stats | null>,\n exclude: RegExp,\n ) {\n const p = Date.parse(node.date)\n for (const f of node.files) {\n if (exclude.test(f)) continue\n const st = stats.get(f)\n if (!st) {\n return true\n }\n let c = Number(st.mtime) > p\n if (!c) continue\n const src = node.sources[f]\n if (!src?.length) return true\n else {\n for (const s of src) {\n const sst = stats.get(s)\n if (!sst || Number(sst.mtime) > p) {\n return true\n }\n }\n }\n }\n // no direct files are newer, check descendants\n // if one of them have a changed file, then that's a yes\n for (const c of node.descendants ?? []) {\n if (this.#hasNewerFiles(c, stats, exclude)) {\n return true\n }\n }\n return false\n }\n\n /**\n * Get a subset of this.externalIDs where one or more of the\n * files have changed since the date on the node.\n */\n async externalIDsChanged(\n filter: (p: string, node: ProcessInfoNode) => boolean = () => true,\n ) {\n const exclude = getExclude('_TAPJS_PROCESSINFO_EXCLUDE_', false)\n const changed = new Map<string, ProcessInfoNode>()\n const promises: Promise<void>[] = []\n const stats = new Map<string, Stats | null>()\n for (const [id, node] of this.externalIDs.entries()) {\n if (!filter(id, node)) continue\n promises.push(...this.#statFiles(node, stats, exclude))\n }\n // consider limiting with promise-call-limit?\n await Promise.all(promises)\n\n for (const [id, node] of this.externalIDs.entries()) {\n if (filter(id, node) && this.#hasNewerFiles(node, stats, exclude)) {\n changed.set(id, node)\n }\n }\n return changed\n }\n\n static get Node() {\n return ProcessInfoNode\n }\n\n static get ProcessInfo() {\n return ProcessInfo\n }\n\n static get spawn() {\n return spawn\n }\n\n static get spawnSync() {\n return spawnSync\n }\n\n static get exec() {\n return exec\n }\n\n static get execSync() {\n return execSync\n }\n\n static get execFile() {\n return execFile\n }\n\n static get execFileSync() {\n return execFileSync\n }\n\n static get fork() {\n return fork\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,GACV,MAAM,oBAAoB,CAAA;AAE3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AAGtC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAS,aAAa,EAAE,MAAM,IAAI,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,CAAC,GAAG,OAAO,CAAA;AACjB,MAAM,OAAO,GAAG,KAAK,EAAE,CAAS,EAAE,KAAgC,EAAE,EAAE;IACpE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,OAAO,WAAW;IACtB,GAAG,CAAQ;IACX,OAAO,CAAQ;IACf,KAAK,GAAyB,IAAI,GAAG,EAAE,CAAA;IACvC,KAAK,GAAiC,IAAI,GAAG,EAAE,CAAA;IAC/C,KAAK,GAAsC,IAAI,GAAG,EAAE,CAAA;IACpD,WAAW,GAAsC,IAAI,GAAG,EAAE,CAAA;IAC1D,aAAa,GAAsC,IAAI,GAAG,EAAE,CAAA;IAC5D,WAAW,GAAiC,IAAI,GAAG,EAAE,CAAA;IAErD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAChB,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,EAC1C,OAAO,GAAG,gCAAgC,GAC3C;QACC,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,EACd,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,EAC1C,OAAO,GAAG,gCAAgC,GAC3C;QACC,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5C,EAAE,CAAC,QAAQ,EAAE,CAAA;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAED,YAAY,EACV,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,EAC1C,OAAO,GAAG,gCAAgC,GAC3C,GAAG,EAAE;QACJ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,CAAA;YACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,CAAA;YACpC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,SAAQ;YACV,CAAC;YACD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClC,QAAQ,CAAC,IAAI,CACX,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACrC,OAAM;gBACR,CAAC;gBACD,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtC,CAAC,CAAC,CACH,CAAA;QACH,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ;QACN,IAAI,OAAiB,CAAA;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,EAAE,CAAA;QACd,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,SAAQ;YACV,CAAC;YACD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACrC,SAAQ;YACV,CAAC;YACD,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CACR,IAAqB,EACrB,KAAgC,EAChC,OAAe;QAEf,MAAM,QAAQ,GAAoB,EAAE,CAAA;QAEpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,SAAQ;YAC7B,OAAO;YACP,qBAAqB;YACrB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAQ;YAC1B,oBAAoB;YACpB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACR,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACpB,qBAAqB;oBACrB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,SAAQ;oBAC1B,oBAAoB;oBACpB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,6DAA6D;IAC7D,8DAA8D;IAC9D,iDAAiD;IACjD,cAAc,CACZ,IAAqB,EACrB,KAAgC,EAChC,OAAe;QAEf,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,SAAQ;YAC7B,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,CAAC,CAAC;gBAAE,SAAQ;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC3B,IAAI,CAAC,GAAG,EAAE,MAAM;gBAAE,OAAO,IAAI,CAAA;iBACxB,CAAC;gBACJ,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBACxB,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;wBAClC,OAAO,IAAI,CAAA;oBACb,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,+CAA+C;QAC/C,wDAAwD;QACxD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAwD,GAAG,EAAE,CAAC,IAAI;QAElE,MAAM,OAAO,GAAG,UAAU,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;QAClD,MAAM,QAAQ,GAAoB,EAAE,CAAA;QACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAA;QAC7C,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;gBAAE,SAAQ;YAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACzD,CAAC;QACD,6CAA6C;QAC7C,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE3B,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,KAAK,IAAI;QACb,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,KAAK,WAAW;QACpB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,MAAM,KAAK,KAAK;QACd,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,KAAK,SAAS;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,KAAK,IAAI;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,MAAM,KAAK,IAAI;QACb,OAAO,IAAI,CAAA;IACb,CAAC;CACF","sourcesContent":["import {\n exec,\n execFile,\n execFileSync,\n execSync,\n fork,\n spawn,\n spawnSync,\n} from './child_process.js'\n\nexport * from './child_process.js'\nexport * from './process-info-node.js'\nexport { WithExternalID } from './spawn-opts.js'\n\nimport { mkdirSync, readdirSync, rmSync, Stats, writeFileSync } from 'fs'\nimport { mkdir, readdir, rm, stat, writeFile } from 'fs/promises'\nimport { basename, resolve } from 'path'\nimport { getExclude } from './get-exclude.js'\nimport { safeJSON, safeJSONSync } from './json-file.js'\nimport { ProcessInfoNode } from './process-info-node.js'\n\nconst p = process\nconst tryStat = async (f: string, stats: Map<string, Stats | null>) => {\n stats.set(f, await stat(f).catch(() => null))\n}\n\nexport class ProcessInfo {\n dir: string\n exclude: RegExp\n roots: Set<ProcessInfoNode> = new Set()\n uuids: Map<string, ProcessInfoNode> = new Map()\n files: Map<string, Set<ProcessInfoNode>> = new Map()\n pendingRoot: Map<string, Set<ProcessInfoNode>> = new Map()\n pendingParent: Map<string, Set<ProcessInfoNode>> = new Map()\n externalIDs: Map<string, ProcessInfoNode> = new Map()\n\n static async load({\n dir = resolve(p.cwd(), '.tap/processinfo'),\n exclude = /(^|\\\\|\\/)node_modules(\\\\|\\/|$)/,\n }): Promise<ProcessInfo> {\n const pi = new ProcessInfo({ dir, exclude })\n await pi.load()\n return pi\n }\n\n static loadSync({\n dir = resolve(p.cwd(), '.tap/processinfo'),\n exclude = /(^|\\\\|\\/)node_modules(\\\\|\\/|$)/,\n }): ProcessInfo {\n const pi = new ProcessInfo({ dir, exclude })\n pi.loadSync()\n return pi\n }\n\n constructor({\n dir = resolve(p.cwd(), '.tap/processinfo'),\n exclude = /(^|\\\\|\\/)node_modules(\\\\|\\/|$)/,\n } = {}) {\n this.dir = dir\n this.exclude = exclude\n }\n\n clear() {\n this.roots.clear()\n this.files.clear()\n this.uuids.clear()\n this.externalIDs.clear()\n }\n\n async save() {\n await mkdir(this.dir, { recursive: true })\n const writes = []\n for (const [uuid, info] of this.uuids.entries()) {\n const f = `${this.dir}/${uuid}.json`\n writes.push(writeFile(f, JSON.stringify(info) + '\\n', 'utf8'))\n }\n await Promise.all(writes)\n }\n\n async saveSync() {\n mkdirSync(this.dir, { recursive: true })\n for (const [uuid, info] of this.uuids.entries()) {\n const f = `${this.dir}/${uuid}.json`\n writeFileSync(f, JSON.stringify(info) + '\\n', 'utf8')\n }\n }\n\n async erase() {\n this.clear()\n await rm(this.dir, { recursive: true })\n }\n\n eraseSync() {\n this.clear()\n rmSync(this.dir, { recursive: true })\n }\n\n async load() {\n const promises = []\n for (const entry of await readdir(this.dir).catch(() => [])) {\n const uuid = basename(entry, '.json')\n if (this.uuids.has(uuid)) {\n continue\n }\n const f = resolve(this.dir, entry)\n promises.push(\n safeJSON(f).then(data => {\n if (!data.uuid || data.uuid !== uuid) {\n return\n }\n new ProcessInfoNode(data).link(this)\n }),\n )\n }\n await Promise.all(promises)\n\n return this\n }\n\n loadSync() {\n let entries: string[]\n try {\n entries = readdirSync(this.dir)\n } catch (_) {\n entries = []\n }\n for (const entry of entries) {\n const uuid = basename(entry, '.json')\n if (this.uuids.has(uuid)) {\n continue\n }\n const f = resolve(this.dir, entry)\n const data = safeJSONSync(f)\n if (!data.uuid || data.uuid !== uuid) {\n continue\n }\n new ProcessInfoNode(data).link(this)\n }\n\n return this\n }\n\n #statFiles(\n node: ProcessInfoNode,\n stats: Map<string, Stats | null>,\n exclude: RegExp,\n ) {\n const promises: Promise<void>[] = []\n\n for (const f of node.files) {\n if (exclude.test(f)) continue\n // race\n /* c8 ignore start */\n if (stats.has(f)) continue\n /* c8 ignore stop */\n promises.push(tryStat(f, stats))\n const src = node.sources[f]\n if (src) {\n for (const s of src) {\n /* c8 ignore start */\n if (stats.has(s)) continue\n /* c8 ignore stop */\n promises.push(tryStat(s, stats))\n }\n }\n }\n for (const c of node.descendants ?? []) {\n promises.push(...this.#statFiles(c, stats, exclude))\n }\n return promises\n }\n\n // if any files are newer than the date, or null, then add it\n // if a file has changed, but its sources haven't, then assume\n // it's still the same content, and not \"changed\"\n #hasNewerFiles(\n node: ProcessInfoNode,\n stats: Map<string, Stats | null>,\n exclude: RegExp,\n ) {\n const p = Date.parse(node.date)\n for (const f of node.files) {\n if (exclude.test(f)) continue\n const st = stats.get(f)\n if (!st) {\n return true\n }\n let c = Number(st.mtime) > p\n if (!c) continue\n const src = node.sources[f]\n if (!src?.length) return true\n else {\n for (const s of src) {\n const sst = stats.get(s)\n if (!sst || Number(sst.mtime) > p) {\n return true\n }\n }\n }\n }\n // no direct files are newer, check descendants\n // if one of them have a changed file, then that's a yes\n for (const c of node.descendants ?? []) {\n if (this.#hasNewerFiles(c, stats, exclude)) {\n return true\n }\n }\n return false\n }\n\n /**\n * Get a subset of this.externalIDs where one or more of the\n * files have changed since the date on the node.\n */\n async externalIDsChanged(\n filter: (p: string, node: ProcessInfoNode) => boolean = () => true,\n ) {\n const exclude = getExclude('_TAPJS_PROCESSINFO_EXCLUDE_', false)\n const changed = new Map<string, ProcessInfoNode>()\n const promises: Promise<void>[] = []\n const stats = new Map<string, Stats | null>()\n for (const [id, node] of this.externalIDs.entries()) {\n if (!filter(id, node)) continue\n promises.push(...this.#statFiles(node, stats, exclude))\n }\n // consider limiting with promise-call-limit?\n await Promise.all(promises)\n\n for (const [id, node] of this.externalIDs.entries()) {\n if (filter(id, node) && this.#hasNewerFiles(node, stats, exclude)) {\n changed.set(id, node)\n }\n }\n return changed\n }\n\n static get Node() {\n return ProcessInfoNode\n }\n\n static get ProcessInfo() {\n return ProcessInfo\n }\n\n static get spawn() {\n return spawn\n }\n\n static get spawnSync() {\n return spawnSync\n }\n\n static get exec() {\n return exec\n }\n\n static get execSync() {\n return execSync\n }\n\n static get execFile() {\n return execFile\n }\n\n static get execFileSync() {\n return execFileSync\n }\n\n static get fork() {\n return fork\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-file.d.ts","sourceRoot":"","sources":["../../src/json-file.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"json-file.d.ts","sourceRoot":"","sources":["../../src/json-file.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,QAMrC,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,iBAGZ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-file.js","sourceRoot":"","sources":["../../src/json-file.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE;IACxC,IAAI;
|
|
1
|
+
{"version":3,"file":"json-file.js","sourceRoot":"","sources":["../../src/json-file.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CACpC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;KAChB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA","sourcesContent":["// read the file and json decode it, if anything fails, return {}\n\nimport { readFileSync } from 'fs'\nimport { readFile } from 'fs/promises'\n\nexport const safeJSONSync = (f: string) => {\n try {\n return JSON.parse(readFileSync(f, 'utf8'))\n } catch (e) {\n return {}\n }\n}\n\nexport const safeJSON = (f: string) =>\n readFile(f, 'utf8')\n .then(d => JSON.parse(d))\n .catch(() => ({}))\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
export declare const saveLineLengths: (filename: string, content?: string | Buffer) => void;
|
|
3
2
|
export declare const getLineLengths: (filename: string) => number[] | undefined;
|
|
4
3
|
//# sourceMappingURL=line-lengths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-lengths.d.ts","sourceRoot":"","sources":["../../src/line-lengths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"line-lengths.d.ts","sourceRoot":"","sources":["../../src/line-lengths.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,UAAU,MAAM,GAAG,MAAM,SAa1B,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,yBAG9C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-paths.d.ts","sourceRoot":"","sources":["../../src/loader-paths.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,QAA+C,CAAA;AACxE,eAAO,MAAM,YAAY,QAAwC,CAAA;AAIjE,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"loader-paths.d.ts","sourceRoot":"","sources":["../../src/loader-paths.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,QAA+C,CAAA;AACxE,eAAO,MAAM,YAAY,QAAwC,CAAA;AAIjE,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,OAQvC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,OAQvC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-sources.d.ts","sourceRoot":"","sources":["../../src/lookup-sources.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,YAAY,uBAA8B,CAAA;AAEvD,eAAO,MAAM,qBAAqB,YAmBjC,CAAA;AAED,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"lookup-sources.d.ts","sourceRoot":"","sources":["../../src/lookup-sources.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,YAAY,uBAA8B,CAAA;AAEvD,eAAO,MAAM,qBAAqB,YAmBjC,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,aAAa,OAAO,yBAC9B,CAAA;AAGjC,eAAO,MAAM,UAAU,GAAI,aAAY,OAAe,0BAMrD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,SAG7C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-sources.js","sourceRoot":"","sources":["../../src/lookup-sources.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,sBAAsB;AACtB,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,gEAAgE;AAChE,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,uEAAuE;AACvE,0EAA0E;AAC1E,oDAAoD;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,mDAAmD;AACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAA;AAEvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"lookup-sources.js","sourceRoot":"","sources":["../../src/lookup-sources.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,sBAAsB;AACtB,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,gEAAgE;AAChE,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,uEAAuE;AACvE,0EAA0E;AAC1E,oDAAoD;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,mDAAmD;AACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAA;AAEvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QACjC,4BAA4B;QAC5B,qBAAqB;QACrB,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,sEAAsE;YACtE,mEAAmE;YACnE,mDAAmD;YACnD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAA;YACpC,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC9B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,UAAoB,EAAE,EAAE,CACjE,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEjC,IAAI,qBAAqB,GAAG,KAAK,CAAA;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,aAAsB,KAAK,EAAE,EAAE;IACxD,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC5D,IAAI,UAAU;YAAE,qBAAqB,GAAG,IAAI,CAAA;QAC5C,qBAAqB,EAAE,CAAA;IACzB,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE;IAChD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5C,qBAAqB,EAAE,CAAA;AACzB,CAAC,CAAA","sourcesContent":["// For some reason that is very mysterious as of the time of writing this,\n// node sporadically will in rare cases hang and fail to gracefully exit if\n// a sufficiently large number of findSourceMap calls are made during the\n// process exit event.\n//\n// However, we cannot look up source maps until *after* the module load\n// event is completely finished and the module is about to be executed,\n// because that is when the source map is added to node's cache.\n//\n// To work around this, every time a module is loaded, we attempt to\n// determine whether it likely has the magic sourceMappingURL comment.\n// If so, then we put it in a list, and at each message, attempt to load\n// the sources for all modules in the list. Then, on process exit, if\n// there's anything still pending that likely has a source map, we only\n// have to look up at most one module (ie, if the last module loaded had a\n// source map), which seems to not trigger the hang.\n\nimport { findSourceMapSafe } from './find-source-map-safe.js'\n\n// the list of modules that likely have source maps\nconst maybeSM = new Set<string>()\nexport const sourcesCache = new Map<string, string[]>()\n\nexport const loadPendingSourceMaps = () => {\n for (const url of maybeSM) {\n const sm = findSourceMapSafe(url)\n // only possible on node 19+\n /* c8 ignore start */\n if (sm === false) {\n // can only happen if node found the SM comment, and tried to load it,\n // but got an error creating the sourcemap, because it's invalid or\n // the file is not present. No need to keep trying.\n maybeSM.delete(url)\n } else {\n /* c8 ignore stop */\n const sources = sm?.payload?.sources\n if (sources) {\n sourcesCache.set(url, sources)\n maybeSM.delete(url)\n }\n }\n }\n}\n\nexport const lookupSources = (url: string, processEnd?: boolean) =>\n getSources(processEnd).get(url)\n\nlet didFinalLookupAttempt = false\nexport const getSources = (processEnd: boolean = false) => {\n if (maybeSM.size && (!processEnd || !didFinalLookupAttempt)) {\n if (processEnd) didFinalLookupAttempt = true\n loadPendingSourceMaps()\n }\n return sourcesCache\n}\n\nexport const likelyHasSourceMap = (url: string) => {\n if (!sourcesCache.has(url)) maybeSM.add(url)\n loadPendingSourceMaps()\n}\n"]}
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
4
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
5
1
|
export declare const nodeOptionsEnv: (env: NodeJS.ProcessEnv, args: readonly string[]) => string;
|
|
6
2
|
//# sourceMappingURL=node-options-env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-options-env.d.ts","sourceRoot":"","sources":["../../src/node-options-env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-options-env.d.ts","sourceRoot":"","sources":["../../src/node-options-env.ts"],"names":[],"mappings":"AAqKA,eAAO,MAAM,cAAc,GACzB,KAAK,MAAM,CAAC,UAAU,EACtB,MAAM,SAAS,MAAM,EAAE,WAKxB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-options-env.js","sourceRoot":"","sources":["../../src/node-options-env.ts"],"names":[],"mappings":"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","sourcesContent":["import { nodeOptionsToArgv, argvToNodeOptions } from 'node-options-to-argv'\nimport {\n importLoader,\n importMatch,\n legacyLoader,\n legacyMatch,\n} from './loader-paths.js'\n\nimport Module from 'node:module'\n\nconst getKeyValue = (\n args: readonly string[],\n i: number,\n): [boolean, string, string | undefined] => {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (arg.includes('=')) {\n const [k, ...rest] = arg.split('=') as [string, ...string[]]\n return [true, k, rest.join('=')]\n } else if (i < args.length - 1) {\n return [false, arg, args[i + 1]]\n } else {\n return [false, arg, undefined]\n }\n}\n\nconst useImport = !!(Module as { register?: (...a: any[]) => any })\n .register\n\n// JUST test if we need to do anything at all with the env.\n// if the loader is set already in the args, even incorrectly, return true\nconst hasLoader = (args: readonly string[]): boolean => {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (!arg.startsWith('--') || arg === '--') break\n const [eq, k, v] = getKeyValue(args, i)\n if (!v) {\n // wasn't a key-value pair\n continue\n }\n if (!eq) i++\n if (\n (k === '--experimental-loader' || k === '--loader') &&\n legacyMatch(v)\n ) {\n return true\n }\n if (k === '--import' && importMatch(v)) return true\n }\n return false\n}\n\nconst rmLoader = (args: string[]) => {\n const doNotWantKeys = ['--experimental-loader', '--loader', '--import']\n\n const result: string[] = []\n\n let doubledash = false\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (!arg.startsWith('--') || doubledash) {\n result.push(arg)\n continue\n }\n if (arg === '--') {\n result.push(arg)\n doubledash = true\n continue\n }\n\n const [eq, k, v] = getKeyValue(args, i)\n if (!v) {\n // wasn't a key-value pair\n result.push(arg)\n continue\n }\n if (!eq) i++\n if (doNotWantKeys.includes(k) && (importMatch(v) || legacyMatch(v))) {\n // it's ours, remove it\n continue\n }\n // not ours, leave it\n result.push(arg)\n const next = args[i]\n if (!eq && typeof next === 'string') result.push(next)\n continue\n }\n return result\n}\n\nconst addLoader = (args: string[]) => {\n const addKey = useImport ? '--import' : '--loader'\n const addValue = useImport ? importLoader : legacyLoader\n const doNotWantKeys = [\n '--experimental-loader',\n useImport ? '--loader' : '--import',\n ]\n const test = useImport ? importMatch : legacyMatch\n\n const result: string[] = []\n\n let doubledash = false\n let found = false\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (!arg.startsWith('--') || doubledash) {\n result.push(arg)\n continue\n }\n if (arg === '--') {\n result.push(arg)\n doubledash = true\n continue\n }\n\n const [eq, k, v] = getKeyValue(args, i)\n if (!v) {\n // wasn't a key-value pair\n result.push(arg)\n continue\n }\n if (!eq) i++\n if (doNotWantKeys.includes(k) && (importMatch(v) || legacyMatch(v))) {\n // it's ours, but not how we want it, omit\n continue\n }\n\n if (k === addKey && test(v)) {\n // already present, don't let it be set multiple times.\n if (found) continue\n found = true\n result.push(arg)\n const next = args[i]\n if (!eq && typeof next === 'string') result.push(next)\n } else {\n // not ours\n result.push(arg)\n const next = args[i]\n if (!eq && typeof next === 'string') result.push(next)\n continue\n }\n }\n if (!found) result.push(`${addKey}=${addValue}`)\n return !useImport ? addIgnoreLoadersWarning(result) : result\n}\n\nconst addIgnoreLoadersWarning = (args: readonly string[]) =>\n (\n args.includes('--no-warnings') ||\n args.includes('--no-warnings=ExperimentalLoader')\n ) ?\n args\n : args.concat('--no-warnings')\n\nexport const nodeOptionsEnv = (\n env: NodeJS.ProcessEnv,\n args: readonly string[],\n) => {\n // if we already have the loader in args, don't add to NODE_OPTIONS\n const no = nodeOptionsToArgv(env.NODE_OPTIONS)\n return argvToNodeOptions(hasLoader(args) ? rmLoader(no) : addLoader(no))\n}\n"]}
|
|
1
|
+
{"version":3,"file":"node-options-env.js","sourceRoot":"","sources":["../../src/node-options-env.ts"],"names":[],"mappings":"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","sourcesContent":["import { nodeOptionsToArgv, argvToNodeOptions } from 'node-options-to-argv'\nimport {\n importLoader,\n importMatch,\n legacyLoader,\n legacyMatch,\n} from './loader-paths.js'\n\nimport Module from 'node:module'\n\nconst getKeyValue = (\n args: readonly string[],\n i: number,\n): [boolean, string, string | undefined] => {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (arg.includes('=')) {\n const [k, ...rest] = arg.split('=') as [string, ...string[]]\n return [true, k, rest.join('=')]\n } else if (i < args.length - 1) {\n return [false, arg, args[i + 1]]\n } else {\n return [false, arg, undefined]\n }\n}\n\nconst useImport = !!(Module as { register?: (...a: any[]) => any })\n .register\n\n// JUST test if we need to do anything at all with the env.\n// if the loader is set already in the args, even incorrectly, return true\nconst hasLoader = (args: readonly string[]): boolean => {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (!arg.startsWith('--') || arg === '--') break\n const [eq, k, v] = getKeyValue(args, i)\n if (!v) {\n // wasn't a key-value pair\n continue\n }\n if (!eq) i++\n if (\n (k === '--experimental-loader' || k === '--loader') &&\n legacyMatch(v)\n ) {\n return true\n }\n if (k === '--import' && importMatch(v)) return true\n }\n return false\n}\n\nconst rmLoader = (args: string[]) => {\n const doNotWantKeys = ['--experimental-loader', '--loader', '--import']\n\n const result: string[] = []\n\n let doubledash = false\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (!arg.startsWith('--') || doubledash) {\n result.push(arg)\n continue\n }\n if (arg === '--') {\n result.push(arg)\n doubledash = true\n continue\n }\n\n const [eq, k, v] = getKeyValue(args, i)\n if (!v) {\n // wasn't a key-value pair\n result.push(arg)\n continue\n }\n if (!eq) i++\n if (doNotWantKeys.includes(k) && (importMatch(v) || legacyMatch(v))) {\n // it's ours, remove it\n continue\n }\n // not ours, leave it\n result.push(arg)\n const next = args[i]\n if (!eq && typeof next === 'string') result.push(next)\n continue\n }\n return result\n}\n\nconst addLoader = (args: string[]) => {\n const addKey = useImport ? '--import' : '--loader'\n const addValue = useImport ? importLoader : legacyLoader\n const doNotWantKeys = [\n '--experimental-loader',\n useImport ? '--loader' : '--import',\n ]\n const test = useImport ? importMatch : legacyMatch\n\n const result: string[] = []\n\n let doubledash = false\n let found = false\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n /* c8 ignore start */\n if (typeof arg !== 'string') throw new Error('invalid arg')\n /* c8 ignore stop */\n if (!arg.startsWith('--') || doubledash) {\n result.push(arg)\n continue\n }\n if (arg === '--') {\n result.push(arg)\n doubledash = true\n continue\n }\n\n const [eq, k, v] = getKeyValue(args, i)\n if (!v) {\n // wasn't a key-value pair\n result.push(arg)\n continue\n }\n if (!eq) i++\n if (doNotWantKeys.includes(k) && (importMatch(v) || legacyMatch(v))) {\n // it's ours, but not how we want it, omit\n continue\n }\n\n if (k === addKey && test(v)) {\n // already present, don't let it be set multiple times.\n if (found) continue\n found = true\n result.push(arg)\n const next = args[i]\n if (!eq && typeof next === 'string') result.push(next)\n } else {\n // not ours\n result.push(arg)\n const next = args[i]\n if (!eq && typeof next === 'string') result.push(next)\n continue\n }\n }\n if (!found) result.push(`${addKey}=${addValue}`)\n return !useImport ? addIgnoreLoadersWarning(result) : result\n}\n\nconst addIgnoreLoadersWarning = (args: readonly string[]) =>\n (\n args.includes('--no-warnings') ||\n args.includes('--no-warnings=ExperimentalLoader')\n ) ?\n args\n : args.concat('--no-warnings')\n\nexport const nodeOptionsEnv = (\n env: NodeJS.ProcessEnv,\n args: readonly string[],\n) => {\n // if we already have the loader in args, don't add to NODE_OPTIONS\n const no = nodeOptionsToArgv(env.NODE_OPTIONS)\n return argvToNodeOptions(hasLoader(args) ? rmLoader(no) : addLoader(no))\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-to-url.d.ts","sourceRoot":"","sources":["../../src/path-to-url.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"path-to-url.d.ts","sourceRoot":"","sources":["../../src/path-to-url.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,GAAG,GAAG,KAAG,MAGhB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-info-node.d.ts","sourceRoot":"","sources":["../../src/process-info-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process-info-node.d.ts","sourceRoot":"","sources":["../../src/process-info-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,mBAAmB;IAElC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAG1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAGjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,qBAAa,eAAe;;IAC1B,IAAI,EAAG,MAAM,CAAA;IACb,IAAI,EAAG,MAAM,EAAE,CAAA;IACf,QAAQ,EAAG,MAAM,EAAE,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAG,MAAM,CAAA;IACZ,GAAG,EAAG,MAAM,CAAA;IACZ,IAAI,EAAG,MAAM,CAAA;IACb,IAAI,EAAG,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,KAAK,EAAE,MAAM,EAAE,CAAK;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAsB;IACvD,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAO;IACtC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAO;IACpC,QAAQ,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAO;IAC7C,WAAW,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAO;IAC/C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAO;gBAIpB,IAAI,EAAE,mBAAmB;IAKrC,MAAM;;;IAaN,IAAI,CAAC,EAAE,EAAE,WAAW;CA0ErB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-info-node.js","sourceRoot":"","sources":["../../src/process-info-node.ts"],"names":[],"mappings":"AA4BA,MAAM,OAAO,eAAe;IAC1B,IAAI,CAAS;IACb,IAAI,CAAW;IACf,QAAQ,CAAW;IACnB,YAAY,CAAS;IACrB,GAAG,CAAS;IACZ,GAAG,CAAS;IACZ,IAAI,CAAS;IACb,IAAI,CAAS;IACb,IAAI,CAAgB;IACpB,MAAM,CAAwB;IAC9B,OAAO,CAAS;IAChB,YAAY,CAAW;IACvB,KAAK,GAAa,EAAE,CAAA;IACpB,OAAO,GAA6B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,GAA4B,IAAI,CAAA;IACtC,IAAI,GAA4B,IAAI,CAAA;IACpC,QAAQ,GAAiC,IAAI,CAAA;IAC7C,WAAW,GAAgC,IAAI,CAAA;IAC/C,UAAU,GAAkB,IAAI,CAAA;IAEhC,KAAK,CAAqB;IAE1B,YAAY,IAAyB;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAClB,GAAG,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,CAAC,CAAC;gBAC7C,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CACb,CACJ,CAAA;IACH,CAAC;IAED,IAAI,CAAC,EAAe;QAClB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"process-info-node.js","sourceRoot":"","sources":["../../src/process-info-node.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ProcessInfo } from './index.js'\n\nexport interface ProcessInfoNodeData {\n // set initially, but deleted before it is written\n hrstart?: [number, number]\n\n // always set\n date: string\n argv: string[]\n execArgv: string[]\n NODE_OPTIONS?: string\n cwd: string\n pid: number\n ppid: number\n parent: string | null\n uuid: string\n files: string[]\n sources: Record<string, string[]>\n\n // fields that are only set when the process completes\n root?: string | null\n externalID?: string | null\n code?: number | null\n signal?: NodeJS.Signals | null\n runtime?: number\n globalsAdded?: string[]\n}\n\nexport class ProcessInfoNode {\n date!: string\n argv!: string[]\n execArgv!: string[]\n NODE_OPTIONS?: string\n cwd!: string\n pid!: number\n ppid!: number\n uuid!: string\n code?: number | null\n signal?: NodeJS.Signals | null\n runtime?: number\n globalsAdded?: string[]\n files: string[] = []\n sources: Record<string, string[]> = Object.create(null)\n parent?: ProcessInfoNode | null = null\n root?: ProcessInfoNode | null = null\n children?: Set<ProcessInfoNode> | null = null\n descendants: Set<ProcessInfoNode> | null = null\n externalID: string | null = null\n\n #data: ProcessInfoNodeData\n\n constructor(data: ProcessInfoNodeData) {\n this.#data = data\n Object.assign(this, data)\n }\n\n toJSON() {\n return Object.fromEntries(\n Object.entries(this)\n .filter(([_, val]) => val !== null && val !== undefined)\n .map(([key, val]) =>\n val instanceof ProcessInfoNode ? [key, val.uuid]\n : key === 'children' || key === 'descendants' ?\n [key, [...val].map(c => c.uuid)]\n : [key, val],\n ),\n )\n }\n\n link(db: ProcessInfo) {\n db.uuids.set(this.uuid, this)\n if (this.#data.parent) {\n this.parent = db.uuids.get(this.#data.parent) || this.parent\n }\n if (this.#data.root) {\n this.root = db.uuids.get(this.#data.root) ?? this.root\n }\n\n if (this.parent === null) {\n this.root = this\n const pendingRoot = db.pendingRoot.get(this.uuid)\n if (pendingRoot) {\n this.descendants = pendingRoot\n for (const n of pendingRoot) {\n n.root = this\n }\n db.pendingRoot.delete(this.uuid)\n }\n db.roots.add(this)\n } else if (typeof this.root === 'string') {\n const pendingRoot = db.pendingRoot.get(this.root)\n if (pendingRoot) {\n pendingRoot.add(this)\n } else {\n db.pendingRoot.set(this.root, new Set([this]))\n }\n } else if (this.root) {\n this.root.descendants ??= new Set()\n this.root.descendants.add(this)\n }\n\n if (typeof this.parent === 'string') {\n const pendingParent = db.pendingParent.get(this.parent)\n if (pendingParent) {\n pendingParent.add(this)\n } else {\n db.pendingParent.set(this.parent, new Set([this]))\n }\n } else if (this.parent) {\n if (!this.parent.children) {\n this.parent.children = new Set([this])\n } else {\n this.parent.children.add(this)\n }\n }\n\n const pendingParent = db.pendingParent.get(this.uuid)\n if (pendingParent) {\n this.children = pendingParent\n for (const n of this.children) {\n n.parent = this\n }\n db.pendingParent.delete(this.uuid)\n }\n\n for (const f of this.files as string[]) {\n const files = db.files.get(f)\n if (!files) {\n db.files.set(f, new Set<ProcessInfoNode>([this]))\n } else {\n files.add(this)\n }\n }\n\n if (this.externalID) {\n // newer tagged entry wins\n const e = db.externalIDs.get(this.externalID)\n if (e && Date.parse(e.date) > Date.parse(this.date)) {\n return\n }\n db.externalIDs.set(this.externalID, this)\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage.d.ts","sourceRoot":"","sources":["../../src/register-coverage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-coverage.d.ts","sourceRoot":"","sources":["../../src/register-coverage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AASxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE5D,eAAO,IAAI,OAAO,EAAE,OAAO,GAAG,SAAqB,CAAA;AAyEnD,eAAO,MAAM,QAAQ,YAYpB,CAAA;AAGD,eAAO,MAAM,oBAAoB,GAC/B,KAAK,MAAM,EACX,aAAa,mBAAmB,SAuEjC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage.js","sourceRoot":"","sources":["../../src/register-coverage.ts"],"names":[],"mappings":"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","sourcesContent":["// start tracking coverage, unless disabled explicltly\n// export so that we know to collect at the end of the process\nconst p = process\nconst enabled = p.env._TAPJS_PROCESSINFO_COVERAGE_ !== '0'\nimport { mkdirSync, writeFileSync } from 'node:fs'\nimport { Session } from 'node:inspector'\nimport { SourceMapPayload } from 'node:module'\nimport { resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { canonicalSource } from './canonical-source.js'\nimport { findSourceMapSafe } from './find-source-map-safe.js'\nimport { getExclude } from './get-exclude.js'\nimport { getLineLengths } from './line-lengths.js'\nimport { lookupSources } from './lookup-sources.js'\nimport { ProcessInfoNodeData } from './process-info-node.js'\n\nexport let SESSION: Session | undefined = undefined\n\n// This is a \\n delimited list of files to show coverage for\n// If not set, or empty, then coverage is included for all files\n// that pass the exclusion RegExp filter. If included in this list,\n// then coverage will be recorded, even if it matches exclude.\nconst cfEnv = p.env._TAPJS_PROCESSINFO_COV_FILES_ || ''\nconst coveredFiles: string[] = cfEnv\n .trim()\n .split('\\n')\n .filter(f => !!f)\n\n// NB: coverage exclusion is in addition to processinfo\n// exclusion. Only show coverage for a file we care\n// about at least somewhat, but coverage is a subset.\nconst cxEnv = p.env._TAPJS_PROCESSINFO_COV_EXCLUDE_FILES_ || ''\nconst uncoveredFiles: string[] = cxEnv\n .trim()\n .split('\\n')\n .filter(f => !!f)\n\nconst exclude =\n p.env._TAPJS_PROCESSINFO_COV_EXCLUDE_ ?\n getExclude('_TAPJS_PROCESSINFO_COV_EXCLUDE_', false)\n : /[\\\\\\/]node_modules[\\\\\\/]/\nconst fileEx = getExclude('_TAPJS_PROCESSINFO_EXCLUDE_', false)\n\nconst fileCovered = (\n f: string,\n sources: string[] = [],\n files: string[] = [],\n) => {\n const testFiles = [f]\n for (const src of sources || []) {\n testFiles.push(\n resolve(src.startsWith('file://') ? fileURLToPath(src) : src),\n )\n }\n\n // never include coverage if the file is fully ignored.\n if (!testFiles.some(f => files.includes(f))) {\n // just in case it was missed somehow, make sure it *should* be excluded\n for (const f of testFiles) {\n if (fileEx.test(f)) {\n return false\n }\n }\n // otherwise, it was missed by the loader recording somehow\n // this can happen with commonjs transpilations in some cases\n files.push(f)\n }\n\n // if at least one of them are explicitly covered, then include it,\n // otherwise omit if we explicitly listed\n if (coveredFiles.length) {\n return testFiles.some(f => coveredFiles.includes(f))\n }\n\n // if any of the filenames are explicitly excluded, no coverage\n // otherwise, it is covered\n return !testFiles.some(\n f => uncoveredFiles.includes(f) || exclude?.test(f),\n )\n}\n\n// C8 can't see that this function runs, best theory is that it\n// collides with what it's doing with the coverage it's collecting\n// This ignore can possibly be removed once this is being tested\n// with a version of tap that uses this library, but it might just\n// be an unresolveable bootstrap problem.\n// The test does verify that it ran, because otherwise, there would\n// be no coverage, and it verifies that it gets the expected coverage.\n/* c8 ignore start */\nexport const register = () => {\n if (!enabled) return\n p.env._TAPJS_PROCESSINFO_COVERAGE_ = '1'\n\n SESSION = new Session()\n SESSION.connect()\n SESSION.post('Profiler.enable')\n SESSION.post('Runtime.enable')\n SESSION.post('Profiler.startPreciseCoverage', {\n callCount: true,\n detailed: true,\n })\n}\n/* c8 ignore stop */\n\nexport const coverageOnProcessEnd = (\n cwd: string,\n processInfo: ProcessInfoNodeData,\n) => {\n // Similar to the coverage tracking bootstrap problem above, c8\n // doesn't see that this function runs, even though it DOES see\n // that the function defined below runs, which is weird.\n /* c8 ignore start */\n if (!SESSION) return\n const session = SESSION\n\n const f = `${cwd}/.tap/coverage/${processInfo.uuid}.json`\n mkdirSync(`${cwd}/.tap/coverage`, { recursive: true })\n\n session.post('Profiler.takePreciseCoverage', (er, cov) => {\n session.post('Profiler.stopPreciseCoverage')\n /* c8 ignore stop */\n\n // something very strange and bad happened\n /* c8 ignore start */\n if (er) {\n throw er\n }\n /* c8 ignore stop */\n\n // Create a source-map-cache that c8 uses in report generation\n const sourceMapCache: {\n [k: string]: {\n lineLengths: number[]\n data: SourceMapPayload\n }\n } = {}\n Object.assign(cov, {\n 'source-map-cache': sourceMapCache,\n })\n\n cov.result = cov.result.filter(obj => {\n if (!/^file:/.test(obj.url)) {\n return false\n }\n obj.url = canonicalSource(obj.url)\n const f = fileURLToPath(obj.url)\n // see if it has a source map\n // need to look up via the url, not the file path, because mocks\n // attach a tapmock search param, which is in node's internal key.\n const sources = lookupSources(obj.url, true)\n if (!fileCovered(f, sources, processInfo.files)) {\n return false\n }\n // Most of the time this will be cached at the time of recording, but\n // if it's the last module loaded, or transpiled in-place by ts-node,\n // the sourcemap won't be pre-loaded and will have to be looked up.\n const s = findSourceMapSafe(obj.url)\n const { payload } = s || { payload: null }\n if (payload) {\n sourceMapCache[obj.url] = Object.assign(Object.create(null), {\n /* c8 ignore start */\n // node's SourceMap objects provide this as of 20.5.0\n //@ts-ignore\n lineLengths: s?.lineLengths || getLineLengths(f),\n /* c8 ignore stop */\n data: {\n ...payload,\n sources: payload.sources?.map(s => canonicalSource(s)),\n },\n })\n }\n return true\n })\n\n writeFileSync(f, JSON.stringify(cov, null, 2) + '\\n', 'utf8')\n /* c8 ignore start */\n })\n}\n/* c8 ignore stop */\n"]}
|
|
1
|
+
{"version":3,"file":"register-coverage.js","sourceRoot":"","sources":["../../src/register-coverage.ts"],"names":[],"mappings":"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","sourcesContent":["// start tracking coverage, unless disabled explicltly\n// export so that we know to collect at the end of the process\nconst p = process\nconst enabled = p.env._TAPJS_PROCESSINFO_COVERAGE_ !== '0'\nimport { mkdirSync, writeFileSync } from 'node:fs'\nimport { Session } from 'node:inspector'\nimport { SourceMapPayload } from 'node:module'\nimport { resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { canonicalSource } from './canonical-source.js'\nimport { findSourceMapSafe } from './find-source-map-safe.js'\nimport { getExclude } from './get-exclude.js'\nimport { getLineLengths } from './line-lengths.js'\nimport { lookupSources } from './lookup-sources.js'\nimport { ProcessInfoNodeData } from './process-info-node.js'\n\nexport let SESSION: Session | undefined = undefined\n\n// This is a \\n delimited list of files to show coverage for\n// If not set, or empty, then coverage is included for all files\n// that pass the exclusion RegExp filter. If included in this list,\n// then coverage will be recorded, even if it matches exclude.\nconst cfEnv = p.env._TAPJS_PROCESSINFO_COV_FILES_ || ''\nconst coveredFiles: string[] = cfEnv\n .trim()\n .split('\\n')\n .filter(f => !!f)\n\n// NB: coverage exclusion is in addition to processinfo\n// exclusion. Only show coverage for a file we care\n// about at least somewhat, but coverage is a subset.\nconst cxEnv = p.env._TAPJS_PROCESSINFO_COV_EXCLUDE_FILES_ || ''\nconst uncoveredFiles: string[] = cxEnv\n .trim()\n .split('\\n')\n .filter(f => !!f)\n\nconst exclude =\n p.env._TAPJS_PROCESSINFO_COV_EXCLUDE_ ?\n getExclude('_TAPJS_PROCESSINFO_COV_EXCLUDE_', false)\n : /[\\\\\\/]node_modules[\\\\\\/]/\nconst fileEx = getExclude('_TAPJS_PROCESSINFO_EXCLUDE_', false)\n\nconst fileCovered = (\n f: string,\n sources: string[] = [],\n files: string[] = [],\n) => {\n const testFiles = [f]\n for (const src of sources || []) {\n testFiles.push(\n resolve(src.startsWith('file://') ? fileURLToPath(src) : src),\n )\n }\n\n // never include coverage if the file is fully ignored.\n if (!testFiles.some(f => files.includes(f))) {\n // just in case it was missed somehow, make sure it *should* be excluded\n for (const f of testFiles) {\n if (fileEx.test(f)) {\n return false\n }\n }\n // otherwise, it was missed by the loader recording somehow\n // this can happen with commonjs transpilations in some cases\n files.push(f)\n }\n\n // if at least one of them are explicitly covered, then include it,\n // otherwise omit if we explicitly listed\n if (coveredFiles.length) {\n return testFiles.some(f => coveredFiles.includes(f))\n }\n\n // if any of the filenames are explicitly excluded, no coverage\n // otherwise, it is covered\n return !testFiles.some(\n f => uncoveredFiles.includes(f) || exclude?.test(f),\n )\n}\n\n// C8 can't see that this function runs, best theory is that it\n// collides with what it's doing with the coverage it's collecting\n// This ignore can possibly be removed once this is being tested\n// with a version of tap that uses this library, but it might just\n// be an unresolveable bootstrap problem.\n// The test does verify that it ran, because otherwise, there would\n// be no coverage, and it verifies that it gets the expected coverage.\n/* c8 ignore start */\nexport const register = () => {\n if (!enabled) return\n p.env._TAPJS_PROCESSINFO_COVERAGE_ = '1'\n\n SESSION = new Session()\n SESSION.connect()\n SESSION.post('Profiler.enable')\n SESSION.post('Runtime.enable')\n SESSION.post('Profiler.startPreciseCoverage', {\n callCount: true,\n detailed: true,\n })\n}\n/* c8 ignore stop */\n\nexport const coverageOnProcessEnd = (\n cwd: string,\n processInfo: ProcessInfoNodeData,\n) => {\n // Similar to the coverage tracking bootstrap problem above, c8\n // doesn't see that this function runs, even though it DOES see\n // that the function defined below runs, which is weird.\n /* c8 ignore start */\n if (!SESSION) return\n const session = SESSION\n\n const f = `${cwd}/.tap/coverage/${processInfo.uuid}.json`\n mkdirSync(`${cwd}/.tap/coverage`, { recursive: true })\n\n session.post('Profiler.takePreciseCoverage', (er, cov) => {\n session.post('Profiler.stopPreciseCoverage')\n /* c8 ignore stop */\n\n // something very strange and bad happened\n /* c8 ignore start */\n if (er) {\n throw er\n }\n /* c8 ignore stop */\n\n // Create a source-map-cache that c8 uses in report generation\n const sourceMapCache: {\n [k: string]: {\n lineLengths: number[]\n data: SourceMapPayload\n }\n } = {}\n Object.assign(cov, {\n 'source-map-cache': sourceMapCache,\n })\n\n cov.result = cov.result.filter(obj => {\n if (!/^file:/.test(obj.url)) {\n return false\n }\n obj.url = canonicalSource(obj.url)\n const f = fileURLToPath(obj.url)\n // see if it has a source map\n // need to look up via the url, not the file path, because mocks\n // attach a tapmock search param, which is in node's internal key.\n const sources = lookupSources(obj.url, true)\n if (!fileCovered(f, sources, processInfo.files)) {\n return false\n }\n // Most of the time this will be cached at the time of recording, but\n // if it's the last module loaded, or transpiled in-place by ts-node,\n // the sourcemap won't be pre-loaded and will have to be looked up.\n const s = findSourceMapSafe(obj.url)\n const { payload } = s || { payload: null }\n if (payload) {\n sourceMapCache[obj.url] = Object.assign(Object.create(null), {\n /* c8 ignore start */\n // node's SourceMap objects provide this as of 20.5.0\n //@ts-ignore\n lineLengths: s?.lineLengths || getLineLengths(f),\n /* c8 ignore stop */\n data: {\n ...payload,\n sources: payload.sources?.map(s => canonicalSource(s)),\n },\n })\n }\n return true\n })\n\n writeFileSync(f, JSON.stringify(cov, null, 2) + '\\n', 'utf8')\n /* c8 ignore start */\n })\n}\n/* c8 ignore stop */\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-process-end.js","sourceRoot":"","sources":["../../src/register-process-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,IAAI,GAAG,OAAO,CAAA;AAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAC1D,IAAI,CAAC,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAA;AACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,CACJ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;QACpC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO,WAAW,CAAC,OAAO,CAAA;QAC1B,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QACnD,wDAAwD;QACxD,2DAA2D;QAC3D,6DAA6D;QAC7D,UAAU,CAAC,WAAW,CAAC,CAAA;QACvB,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACrE,IAAI,YAAY,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"register-process-end.js","sourceRoot":"","sources":["../../src/register-process-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,IAAI,GAAG,OAAO,CAAA;AAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAC1D,IAAI,CAAC,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAA;AACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,CACJ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;QACpC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO,WAAW,CAAC,OAAO,CAAA;QAC1B,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QACnD,wDAAwD;QACxD,2DAA2D;QAC3D,6DAA6D;QAC7D,UAAU,CAAC,WAAW,CAAC,CAAA;QACvB,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACrE,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,YAAY,GAAG,YAAY,CAAA;QACzC,CAAC;QAED,MAAM,CAAC,GAAG,GAAG,GAAG,qBAAqB,WAAW,CAAC,IAAI,OAAO,CAAA;QAC5D,SAAS,CAAC,GAAG,GAAG,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;QACrE,oBAAoB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACxC,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { onExit } from 'signal-exit'\nimport { getProcessInfo } from './get-process-info.js'\n\nimport { mkdirSync, writeFileSync } from 'fs'\nimport { coverageOnProcessEnd } from './register-coverage.js'\nimport { setSources } from './set-sources.js'\n\nconst proc = process\n\nconst cwd = proc.env._TAPJS_PROCESSINFO_CWD_ || proc.cwd()\nproc.env._TAPJS_PROCESSINFO_CWD_ = cwd\nconst globals = new Set(Object.keys(global))\n\nexport const register = () => {\n onExit(\n (code, signal) => {\n const processInfo = getProcessInfo()\n processInfo.code = code\n processInfo.signal = signal\n const runtime = proc.hrtime(processInfo.hrstart)\n delete processInfo.hrstart\n processInfo.files = [...new Set(processInfo.files)]\n // try to find the actual sources of the files we loaded\n // This can't be done up front, because the sourcemap isn't\n // present during the load phase, since it's in the contents.\n setSources(processInfo)\n processInfo.runtime = runtime[0] * 1e3 + runtime[1] / 1e6\n const globalsAdded = Object.keys(global).filter(k => !globals.has(k))\n if (globalsAdded.length) {\n processInfo.globalsAdded = globalsAdded\n }\n\n const f = `${cwd}/.tap/processinfo/${processInfo.uuid}.json`\n mkdirSync(`${cwd}/.tap/processinfo`, { recursive: true })\n writeFileSync(f, JSON.stringify(processInfo, null, 2) + '\\n', 'utf8')\n coverageOnProcessEnd(cwd, processInfo)\n },\n { alwaysLast: true },\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-sources.d.ts","sourceRoot":"","sources":["../../src/set-sources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAShD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"set-sources.d.ts","sourceRoot":"","sources":["../../src/set-sources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAShD,eAAO,MAAM,UAAU,GAAI,IAAI,mBAAmB,SAQjD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-sources.js","sourceRoot":"","sources":["../../src/set-sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,IAAI,YAAmC,CAAA;AAEvC,kEAAkE;AAClE,yDAAyD;AACzD,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAuB,EAAE,EAAE;IACpD,YAAY,KAAK,UAAU,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"set-sources.js","sourceRoot":"","sources":["../../src/set-sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,IAAI,YAAmC,CAAA;AAEvC,kEAAkE;AAClE,yDAAyD;AACzD,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAuB,EAAE,EAAE;IACpD,YAAY,KAAK,UAAU,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;AACH,CAAC,CAAA","sourcesContent":["import { fileURLToPath } from 'url'\nimport { ProcessInfoNodeData } from './index.js'\nimport { getSources } from './lookup-sources.js'\nimport { urlToPath } from './url-to-path.js'\n\nlet sourcesCache: Map<string, string[]>\n\n// set the processInfo.sources for a given file, but don't clobber\n// if called multiple times, or create duplicate entries.\n// Should only be called *after* the file in question has been loaded.\nexport const setSources = (pi: ProcessInfoNodeData) => {\n sourcesCache ??= getSources()\n for (const [url, sources] of sourcesCache.entries()) {\n const file = fileURLToPath(url)\n const s = pi.sources[file] || []\n s.push(...sources.map(s => urlToPath(s)))\n pi.sources[file] = [...new Set(s)]\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-opts.d.ts","sourceRoot":"","sources":["../../src/spawn-opts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAG3D,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"spawn-opts.d.ts","sourceRoot":"","sources":["../../src/spawn-opts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAG3D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACtD,SAAS,cAAc,CAAC,CAAC,CAAC,EAC1B,UAAU,MAAM,GAAG,MAAM,EACzB,OAAO,SAAS,MAAM,EAAE,KACvB,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG;IAAE,GAAG,EAAE,iBAAiB,CAAA;CAiBlD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-opts.js","sourceRoot":"","sources":["../../src/spawn-opts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,MAAM,CAAC,GAAG,OAAO,CAAA;AAEjB,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAA0B,EAC1B,OAAyB,EACzB,IAAwB,EAC4B,EAAE;IACtD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IACvC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;IACzC,kEAAkE;IAClE,MAAM,CAAC,GAAG;QACR,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;KACxB,CAAA;IACD,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACzC,IAAI,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"spawn-opts.js","sourceRoot":"","sources":["../../src/spawn-opts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,MAAM,CAAC,GAAG,OAAO,CAAA;AAEjB,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAA0B,EAC1B,OAAyB,EACzB,IAAwB,EAC4B,EAAE;IACtD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IACvC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;IACzC,kEAAkE;IAClE,MAAM,CAAC,GAAG;QACR,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;KACxB,CAAA;IACD,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACzC,IAAI,UAAU,EAAE,CAAC;QACf,GAAG,CAAC,+BAA+B,GAAG,UAAU,CAAA;IAClD,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAA;AACzB,CAAC,CAAA","sourcesContent":["import { ProcessEnvOptions } from 'child_process'\nimport { nodeOptionsEnv } from './node-options-env.js'\n\nexport type WithExternalID<T> = T & { externalID?: string }\nconst p = process\n\nexport const spawnOpts = <T extends { [k: string]: any }>(\n options: WithExternalID<T>,\n exclude?: RegExp | string,\n args?: readonly string[],\n): Omit<T, 'externalID'> & { env: ProcessEnvOptions } => {\n const { externalID, ...rest } = options\n const env = { ...(options.env || p.env) }\n // only add if lacking in args, but this can come in multiple ways\n const a = [\n ...(options.execArgv ?? []),\n ...(args ?? []),\n ...(options.args ?? []),\n ]\n env.NODE_OPTIONS = nodeOptionsEnv(env, a)\n if (externalID) {\n env._TAPJS_PROCESSINFO_EXTERNAL_ID_ = externalID\n }\n if (exclude) {\n env._TAPJS_PROCESSINFO_EXCLUDE_ = String(exclude)\n }\n return { ...rest, env }\n}\n"]}
|