@tapjs/processinfo 2.2.5 → 2.2.7
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/cjs/argv-to-node-options.d.ts +1 -1
- package/dist/cjs/argv-to-node-options.d.ts.map +1 -1
- package/dist/cjs/argv-to-node-options.js.map +1 -1
- package/dist/cjs/get-exclude.d.ts.map +1 -1
- package/dist/cjs/get-exclude.js +3 -2
- package/dist/cjs/get-exclude.js.map +1 -1
- package/dist/cjs/get-process-info.js +11 -11
- package/dist/cjs/get-process-info.js.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node-options-env.d.ts.map +1 -1
- package/dist/cjs/node-options-env.js +7 -1
- package/dist/cjs/node-options-env.js.map +1 -1
- package/dist/cjs/register-coverage.d.ts.map +1 -1
- package/dist/cjs/register-coverage.js +4 -3
- package/dist/cjs/register-coverage.js.map +1 -1
- package/dist/cjs/register-env.d.ts.map +1 -1
- package/dist/cjs/register-env.js +4 -3
- package/dist/cjs/register-env.js.map +1 -1
- package/dist/cjs/register-process-end.d.ts.map +1 -1
- package/dist/cjs/register-process-end.js +4 -3
- package/dist/cjs/register-process-end.js.map +1 -1
- package/dist/cjs/spawn-opts.d.ts.map +1 -1
- package/dist/cjs/spawn-opts.js +2 -1
- package/dist/cjs/spawn-opts.js.map +1 -1
- package/dist/mjs/argv-to-node-options.d.ts +1 -1
- package/dist/mjs/argv-to-node-options.d.ts.map +1 -1
- package/dist/mjs/argv-to-node-options.js.map +1 -1
- package/dist/mjs/get-exclude.d.ts.map +1 -1
- package/dist/mjs/get-exclude.js +3 -2
- package/dist/mjs/get-exclude.js.map +1 -1
- package/dist/mjs/get-process-info.js +11 -11
- package/dist/mjs/get-process-info.js.map +1 -1
- package/dist/mjs/index.d.ts.map +1 -1
- package/dist/mjs/index.js +4 -3
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/node-options-env.d.ts.map +1 -1
- package/dist/mjs/node-options-env.js +7 -1
- package/dist/mjs/node-options-env.js.map +1 -1
- package/dist/mjs/register-coverage.d.ts.map +1 -1
- package/dist/mjs/register-coverage.js +4 -3
- package/dist/mjs/register-coverage.js.map +1 -1
- package/dist/mjs/register-env.d.ts.map +1 -1
- package/dist/mjs/register-env.js +4 -3
- package/dist/mjs/register-env.js.map +1 -1
- package/dist/mjs/register-process-end.d.ts.map +1 -1
- package/dist/mjs/register-process-end.js +4 -3
- package/dist/mjs/register-process-end.js.map +1 -1
- package/dist/mjs/spawn-opts.d.ts.map +1 -1
- package/dist/mjs/spawn-opts.js +2 -1
- package/dist/mjs/spawn-opts.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const argvToNodeOptions: (argv: string[]) => string;
|
|
1
|
+
export declare const argvToNodeOptions: (argv: readonly string[]) => string;
|
|
2
2
|
//# sourceMappingURL=argv-to-node-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv-to-node-options.d.ts","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,SAAU,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"argv-to-node-options.d.ts","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,SAAU,SAAS,MAAM,EAAE,WACD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv-to-node-options.js","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"argv-to-node-options.js","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAAC,IAAuB,EAAE,EAAE,CAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAD3C,QAAA,iBAAiB,qBAC0B","sourcesContent":["export const argvToNodeOptions = (argv: readonly string[]) =>\n argv.map(o => `\"${o.replace(/\"/g, '\\\\\"')}\"`).join(' ')\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-exclude.d.ts","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QACuG,CAAA;
|
|
1
|
+
{"version":3,"file":"get-exclude.d.ts","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QACuG,CAAA;AAclI,eAAO,MAAM,UAAU,MAAO,MAAM,iCAKnC,CAAA"}
|
package/dist/cjs/get-exclude.js
CHANGED
|
@@ -13,10 +13,11 @@ const parseExclude = (src) => {
|
|
|
13
13
|
catch (e) { }
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
+
const proc = process;
|
|
16
17
|
const getExclude = (k, useDefault = true) => {
|
|
17
|
-
const src =
|
|
18
|
+
const src = proc.env[k];
|
|
18
19
|
const exclude = parseExclude(src) || (useDefault ? exports.defaultExclude : /$./);
|
|
19
|
-
|
|
20
|
+
proc.env[k] = String(exclude);
|
|
20
21
|
return exclude;
|
|
21
22
|
};
|
|
22
23
|
exports.getExclude = getExclude;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-exclude.js","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GACzB,gIAAgI,CAAA;AAElI,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAsB,EAAE;IACnE,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC9C,IAAI,MAAM,EAAE;QACV,IAAI;YACF,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;SACxC;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;AACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"get-exclude.js","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GACzB,gIAAgI,CAAA;AAElI,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAsB,EAAE;IACnE,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC9C,IAAI,MAAM,EAAE;QACV,IAAI;YACF,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;SACxC;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,OAAO,CAAA;AAEb,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACvB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACzE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AALY,QAAA,UAAU,cAKtB","sourcesContent":["export const defaultExclude =\n /(^|[\\\\\\/])(node_modules|\\.tap|tap-testdir-.*?|tap-snapshots|tests?|[^\\\\\\/]+\\.test\\.([cm]?[jt]s|[jt]sx?)|__tests?__)([\\\\\\/]|$)/i\n\nconst parseExclude = (src: string | undefined): RegExp | undefined => {\n if (!src) return\n const parsed = src.match(/^\\/(.*)\\/([a-z]*)$/)\n if (parsed) {\n try {\n return new RegExp(parsed[1], parsed[2])\n } catch (e) {}\n }\n}\n\nconst proc = process\n\nexport const getExclude = (k: string, useDefault = true) => {\n const src = proc.env[k]\n const exclude = parseExclude(src) || (useDefault ? defaultExclude : /$./)\n proc.env[k] = String(exclude)\n return exclude\n}\n"]}
|
|
@@ -7,9 +7,9 @@ p.setSourceMapsEnabled(true);
|
|
|
7
7
|
const node_url_1 = require("node:url");
|
|
8
8
|
const uuid_1 = require("uuid");
|
|
9
9
|
const envKey = (k) => `_TAPJS_PROCESSINFO_${k.toUpperCase()}_`;
|
|
10
|
-
const getEnv = (k) =>
|
|
11
|
-
const setEnv = (k, v) => (
|
|
12
|
-
const delEnv = (k) => delete
|
|
10
|
+
const getEnv = (k) => p.env[envKey(k)];
|
|
11
|
+
const setEnv = (k, v) => (p.env[envKey(k)] = v);
|
|
12
|
+
const delEnv = (k) => delete p.env[envKey(k)];
|
|
13
13
|
const register_cjs_js_1 = require("./register-cjs.js");
|
|
14
14
|
const register_coverage_js_1 = require("./register-coverage.js");
|
|
15
15
|
const register_env_js_1 = require("./register-env.js");
|
|
@@ -32,20 +32,20 @@ exports.reset = reset;
|
|
|
32
32
|
const getProcessInfo = () => {
|
|
33
33
|
if (g[kProcessInfo])
|
|
34
34
|
return g[kProcessInfo];
|
|
35
|
-
const argv1 =
|
|
35
|
+
const argv1 = p.argv[1];
|
|
36
36
|
// we only test this in CJS, but file:// only prepended in ESM
|
|
37
37
|
/* c8 ignore start */
|
|
38
38
|
const main = argv1.startsWith('file://') ? (0, node_url_1.fileURLToPath)(argv1) : argv1;
|
|
39
39
|
/* c8 ignore stop */
|
|
40
40
|
g[kProcessInfo] = {
|
|
41
|
-
hrstart:
|
|
41
|
+
hrstart: p.hrtime(),
|
|
42
42
|
date: new Date().toISOString(),
|
|
43
|
-
argv:
|
|
44
|
-
execArgv:
|
|
45
|
-
NODE_OPTIONS:
|
|
46
|
-
cwd:
|
|
47
|
-
pid:
|
|
48
|
-
ppid:
|
|
43
|
+
argv: p.argv,
|
|
44
|
+
execArgv: p.execArgv,
|
|
45
|
+
NODE_OPTIONS: p.env.NODE_OPTIONS,
|
|
46
|
+
cwd: p.cwd(),
|
|
47
|
+
pid: p.pid,
|
|
48
|
+
ppid: p.ppid,
|
|
49
49
|
parent: getEnv('parent') || null,
|
|
50
50
|
uuid: (0, uuid_1.v4)(),
|
|
51
51
|
files: [main],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-process-info.js","sourceRoot":"","sources":["../../lib/get-process-info.ts"],"names":[],"mappings":";;;AAAA,sBAAsB;AACtB,MAAM,CAAC,GAAG,OAET,CAAA;AACD,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAE5B,uCAAwC;AACxC,+BAAiC;AA2BjC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,GAAG,CAAA;AACtE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"get-process-info.js","sourceRoot":"","sources":["../../lib/get-process-info.ts"],"names":[],"mappings":"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","sourcesContent":["// we always want this\nconst p = process as NodeJS.Process & {\n setSourceMapsEnabled(v: boolean): void\n}\np.setSourceMapsEnabled(true)\n\nimport { fileURLToPath } from 'node:url'\nimport { v4 as uuid } from 'uuid'\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\nconst envKey = (k: string) => `_TAPJS_PROCESSINFO_${k.toUpperCase()}_`\nconst getEnv = (k: string) => p.env[envKey(k)]\nconst setEnv = (k: string, v: string) => (p.env[envKey(k)] = v)\nconst delEnv = (k: string) => delete p.env[envKey(k)]\n\nimport { register as registerCJS } from './register-cjs.js'\nimport { register as registerCoverage } from './register-coverage.js'\nimport { register as registerEnv } from './register-env.js'\nimport { register as registerProcessEnd } from './register-process-end.js'\n\n// this module is hybridized. In node v20, it's the *commonjs* one that\n// gets loaded, because the esm loader context can't modify the main thread\n// except via communication over the port to the globalPreload env.\n// So, we have to store our singleton on the global.\n//\n// If it later loads the esm form of this module, that's fine, because it'll\n// see the global processInfo object, and not re-register anything.\n\nconst kProcessInfo = Symbol.for('@tapjs/processinfo.ProcessInfoNodeData')\nconst g = global as typeof globalThis & {\n [kProcessInfo]?: ProcessInfoNodeData\n}\n\n// only used for tests so we can simulate multiple processes\nexport const reset = () => {\n g[kProcessInfo] = undefined\n return { getProcessInfo }\n}\n\nexport const getProcessInfo = (): ProcessInfoNodeData => {\n if (g[kProcessInfo]) return g[kProcessInfo]\n\n const argv1 = p.argv[1]\n // we only test this in CJS, but file:// only prepended in ESM\n /* c8 ignore start */\n const main = argv1.startsWith('file://') ? fileURLToPath(argv1) : argv1\n /* c8 ignore stop */\n\n g[kProcessInfo] = {\n hrstart: p.hrtime(),\n date: new Date().toISOString(),\n argv: p.argv,\n execArgv: p.execArgv,\n NODE_OPTIONS: p.env.NODE_OPTIONS,\n cwd: p.cwd(),\n pid: p.pid,\n ppid: p.ppid,\n parent: getEnv('parent') || null,\n uuid: uuid(),\n files: [main],\n sources: Object.create(null),\n }\n\n if (!g[kProcessInfo].parent) {\n g[kProcessInfo].root = g[kProcessInfo].uuid\n setEnv('root', g[kProcessInfo].uuid)\n } else {\n g[kProcessInfo].root = getEnv('root')\n }\n // this is the parent of any further child processes\n setEnv('parent', g[kProcessInfo].uuid)\n const externalID = getEnv('external_id')\n if (externalID) {\n g[kProcessInfo].externalID = externalID\n // externalID only applies to ONE process, not all its children.\n delEnv('external_id')\n }\n\n registerCJS()\n registerEnv()\n registerCoverage()\n registerProcessEnd()\n\n return g[kProcessInfo]\n}\n"]}
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACV,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,cAAc,wBAAwB,CAAA;AAItC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACV,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,cAAc,wBAAwB,CAAA;AAItC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AASxD,qBAAa,WAAW;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,GAAG,CAAC,eAAe,CAAC,CAAY;IACvC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAY;IAC/C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAY;IACpD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAY;IAC1D,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAY;IAC5D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAY;WAExC,IAAI,CAAC,EAChB,GAA0C,EAC1C,OAA0C,GAC3C;;;KAAA,GAAG,OAAO,CAAC,WAAW,CAAC;IAMxB,MAAM,CAAC,QAAQ,CAAC,EACd,GAA0C,EAC1C,OAA0C,GAC3C;;;KAAA,GAAG,WAAW;gBAMH,EACV,GAA0C,EAC1C,OAA0C,GAC3C;;;KAAK;IAKN,KAAK;IAOC,IAAI;IAUJ,QAAQ;IAQR,KAAK;IAKX,SAAS;IAKH,IAAI;IAsBV,QAAQ;IAuBR,MAAM,KAAK,IAAI,2BAEd;IAED,MAAM,KAAK,WAAW,uBAErB;IAED,MAAM,KAAK,KAAK,iBAEf;IAED,MAAM,KAAK,SAAS,qBAEnB;IAED,MAAM,KAAK,IAAI,gBAEd;IAED,MAAM,KAAK,QAAQ,oBAElB;IAED,MAAM,KAAK,QAAQ,oBAElB;IAED,MAAM,KAAK,YAAY,wBAEtB;IAED,MAAM,KAAK,IAAI,gBAEd;CACF"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -23,6 +23,7 @@ const process_info_node_js_1 = require("./process-info-node.js");
|
|
|
23
23
|
const fs_1 = require("fs");
|
|
24
24
|
const promises_1 = require("fs/promises");
|
|
25
25
|
const json_file_js_1 = require("./json-file.js");
|
|
26
|
+
const p = process;
|
|
26
27
|
class ProcessInfo {
|
|
27
28
|
dir;
|
|
28
29
|
exclude;
|
|
@@ -32,17 +33,17 @@ class ProcessInfo {
|
|
|
32
33
|
pendingRoot = new Map();
|
|
33
34
|
pendingParent = new Map();
|
|
34
35
|
externalIDs = new Map();
|
|
35
|
-
static async load({ dir = (0, path_1.resolve)(
|
|
36
|
+
static async load({ dir = (0, path_1.resolve)(p.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, }) {
|
|
36
37
|
const pi = new ProcessInfo({ dir, exclude });
|
|
37
38
|
await pi.load();
|
|
38
39
|
return pi;
|
|
39
40
|
}
|
|
40
|
-
static loadSync({ dir = (0, path_1.resolve)(
|
|
41
|
+
static loadSync({ dir = (0, path_1.resolve)(p.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, }) {
|
|
41
42
|
const pi = new ProcessInfo({ dir, exclude });
|
|
42
43
|
pi.loadSync();
|
|
43
44
|
return pi;
|
|
44
45
|
}
|
|
45
|
-
constructor({ dir = (0, path_1.resolve)(
|
|
46
|
+
constructor({ dir = (0, path_1.resolve)(p.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, } = {}) {
|
|
46
47
|
this.dir = dir;
|
|
47
48
|
this.exclude = exclude;
|
|
48
49
|
}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAQ2B;AAI3B,qDAAkC;AAElC,yDAAsC;AAEtC,+BAAwC;AAExC,iEAAwD;AAExD,2BAAkE;AAClE,0CAA2D;AAE3D,iDAAuD;AAEvD,MAAa,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,IAAA,cAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAQ2B;AAI3B,qDAAkC;AAElC,yDAAsC;AAEtC,+BAAwC;AAExC,iEAAwD;AAExD,2BAAkE;AAClE,0CAA2D;AAE3D,iDAAuD;AAEvD,MAAM,CAAC,GAAG,OAAO,CAAA;AAEjB,MAAa,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,IAAA,cAAO,EAAC,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,IAAA,cAAO,EAAC,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,IAAA,cAAO,EAAC,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,IAAA,gBAAK,EAAC,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;YAC/C,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,CAAA;YACpC,MAAM,CAAC,IAAI,CAAC,IAAA,oBAAS,EAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;SAC/D;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAA,cAAS,EAAC,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;YAC/C,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,CAAA;YACpC,IAAA,kBAAa,EAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;SACtD;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,IAAA,aAAE,EAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAA,WAAM,EAAC,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,IAAA,kBAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;YAC3D,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxB,SAAQ;aACT;YACD,MAAM,CAAC,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClC,QAAQ,CAAC,IAAI,CACX,IAAA,uBAAQ,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACpC,OAAM;iBACP;gBACD,IAAI,sCAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtC,CAAC,CAAC,CACH,CAAA;SACF;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ;QACN,IAAI,OAAiB,CAAA;QACrB,IAAI;YACF,OAAO,GAAG,IAAA,gBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAChC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,GAAG,EAAE,CAAA;SACb;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxB,SAAQ;aACT;YACD,MAAM,CAAC,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClC,MAAM,IAAI,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpC,SAAQ;aACT;YACD,IAAI,sCAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACrC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,IAAI;QACb,OAAO,sCAAe,CAAA;IACxB,CAAC;IAED,MAAM,KAAK,WAAW;QACpB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,MAAM,KAAK,KAAK;QACd,OAAO,wBAAK,CAAA;IACd,CAAC;IAED,MAAM,KAAK,SAAS;QAClB,OAAO,4BAAS,CAAA;IAClB,CAAC;IAED,MAAM,KAAK,IAAI;QACb,OAAO,uBAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,2BAAQ,CAAA;IACjB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,2BAAQ,CAAA;IACjB,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,+BAAY,CAAA;IACrB,CAAC;IAED,MAAM,KAAK,IAAI;QACb,OAAO,uBAAI,CAAA;IACb,CAAC;CACF;AAvJD,kCAuJC","sourcesContent":["import {\n exec,\n execFile,\n execFileSync,\n execSync,\n fork,\n spawn,\n spawnSync,\n} from './child_process.js'\n\nexport { WithExternalID } from './spawn-opts.js'\n\nexport * from './child_process.js'\nexport { ProcessInfoNodeData } from './get-process-info.js'\nexport * from './process-info-node.js'\n\nimport { basename, resolve } from 'path'\n\nimport { ProcessInfoNode } from './process-info-node.js'\n\nimport { mkdirSync, readdirSync, rmSync, writeFileSync } from 'fs'\nimport { mkdir, readdir, rm, writeFile } from 'fs/promises'\n\nimport { safeJSON, safeJSONSync } from './json-file.js'\n\nconst p = process\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 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":"node-options-env.d.ts","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"node-options-env.d.ts","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":";;;;AA0EA,eAAO,MAAM,cAAc,QACpB,OAAO,UAAU,QAChB,cAAc,MAAM,CAAC,WAQ5B,CAAA"}
|
|
@@ -50,9 +50,15 @@ const hasLoader = (args, keys, test) => {
|
|
|
50
50
|
}
|
|
51
51
|
return false;
|
|
52
52
|
};
|
|
53
|
+
const addIgnoreLoadersWarning = (args) => args.includes('--no-warnings') ||
|
|
54
|
+
args.includes('--no-warnings=ExperimentalLoader')
|
|
55
|
+
? args
|
|
56
|
+
: args.concat('--no-warnings=ExperimentalLoader');
|
|
53
57
|
const nodeOptionsEnv = (env, args) => {
|
|
54
58
|
const no = (0, node_options_to_argv_js_1.nodeOptionsToArgv)(env.NODE_OPTIONS);
|
|
55
|
-
return (0, argv_to_node_options_js_1.argvToNodeOptions)(cjsOnly(args.concat(no))
|
|
59
|
+
return (0, argv_to_node_options_js_1.argvToNodeOptions)(cjsOnly(args.concat(no))
|
|
60
|
+
? addCJS(no)
|
|
61
|
+
: addIgnoreLoadersWarning(addESM(no)));
|
|
56
62
|
};
|
|
57
63
|
exports.nodeOptionsEnv = nodeOptionsEnv;
|
|
58
64
|
//# sourceMappingURL=node-options-env.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-options-env.js","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":";;;AAAA,uEAA6D;AAC7D,uDAK0B;AAC1B,uEAA6D;AAE7D,uDAAuD;AACvD,4BAA4B;AAE5B,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE,CACtC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,0BAAQ,CAAC,CAAA;AAEhD,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE,CACtC,SAAS,CAAC,IAAI,EAAE,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAE,0BAAQ,CAAC,CAAA;AAElE,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE,CAChC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,2BAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAEpE,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE,CAChC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,2BAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAEnE,MAAM,OAAO,GAAG,CAAC,IAAc,EAAE,EAAE,CACjC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AAEjD,MAAM,SAAS,GAAG,CAChB,IAAc,EACd,IAAc,EACd,IAA4B,EAC5B,EAAE;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,aAAa;QACb,mBAAmB;QACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,SAAQ;aACT;SACF;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpD,oBAAoB;YACpB,mBAAmB;YACnB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC5C,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,SAAQ;aACT;SACF;aAAM,IACL,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACrB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YACnB,GAAG,CAAC,MAAM,GAAG,CAAC;YACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAClC;YACA,YAAY;YACZ,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1B,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,SAAQ;aACT;SACF;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"node-options-env.js","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":"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","sourcesContent":["import { argvToNodeOptions } from './argv-to-node-options.js'\nimport {\n cjsLoader,\n cjsMatch,\n esmLoader,\n esmMatch,\n} from './loader-paths.js'\nimport { nodeOptionsToArgv } from './node-options-to-argv.js'\n\n// Check if our esm and/or cjs loaders are in the list,\n// and only add them if not.\n\nconst hasCJSLoader = (args: string[]) =>\n hasLoader(args, ['-r', '--require'], cjsMatch)\n\nconst hasESMLoader = (args: string[]) =>\n hasLoader(args, ['--experimental-loader', '--loader'], esmMatch)\n\nconst addCJS = (args: string[]) =>\n !hasCJSLoader(args) ? args.concat('--require=' + cjsLoader) : args\n\nconst addESM = (args: string[]) =>\n !hasESMLoader(args) ? args.concat('--loader=' + esmLoader) : args\n\nconst cjsOnly = (args: string[]) =>\n hasESMLoader(args) ? false : hasCJSLoader(args)\n\nconst hasLoader = (\n args: string[],\n keys: string[],\n test: (s: string) => boolean\n) => {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n // -r <value>\n // --loader <value>\n if (keys.includes(arg) && i < args.length - 1) {\n if (test(args[i + 1])) {\n return true\n } else {\n continue\n }\n } else if (arg.startsWith('--') && arg.includes('=')) {\n // --require=<value>\n // --loader=<value>\n const [k, ...rest] = arg.split('=')\n if (keys.includes(k) && test(rest.join('='))) {\n return true\n } else {\n continue\n }\n } else if (\n !arg.startsWith('--') &&\n arg.startsWith('-') &&\n arg.length > 2 &&\n keys.includes(arg.substring(0, 2))\n ) {\n // -r<value>\n if (test(arg.substring(2))) {\n return true\n } else {\n continue\n }\n }\n }\n return false\n}\n\nconst addIgnoreLoadersWarning = (args: readonly string[]) =>\n args.includes('--no-warnings') ||\n args.includes('--no-warnings=ExperimentalLoader')\n ? args\n : args.concat('--no-warnings=ExperimentalLoader')\n\nexport const nodeOptionsEnv = (\n env: NodeJS.ProcessEnv,\n args: ReadonlyArray<string>\n) => {\n const no = nodeOptionsToArgv(env.NODE_OPTIONS)\n return argvToNodeOptions(\n cjsOnly(args.concat(no))\n ? addCJS(no)\n : addIgnoreLoadersWarning(addESM(no))\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage.d.ts","sourceRoot":"","sources":["../../lib/register-coverage.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"register-coverage.d.ts","sourceRoot":"","sources":["../../lib/register-coverage.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAG3D,eAAO,IAAI,OAAO,EAAE,OAAO,GAAG,SAAqB,CAAA;AAiDnD,eAAO,MAAM,QAAQ,YAYpB,CAAA;AAGD,eAAO,MAAM,oBAAoB,QAC1B,MAAM,eACE,mBAAmB,SAyDjC,CAAA"}
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.coverageOnProcessEnd = exports.register = exports.SESSION = void 0;
|
|
4
4
|
// start tracking coverage, unless disabled explicltly
|
|
5
5
|
// export so that we know to collect at the end of the process
|
|
6
|
-
const
|
|
6
|
+
const p = process;
|
|
7
|
+
const enabled = p.env._TAPJS_PROCESSINFO_COVERAGE_ !== '0';
|
|
7
8
|
const fs_1 = require("fs");
|
|
8
9
|
const inspector_1 = require("inspector");
|
|
9
10
|
const module_1 = require("module");
|
|
@@ -19,7 +20,7 @@ const exclude = (0, get_exclude_js_1.getExclude)('_TAPJS_PROCESSINFO_COV_EXCLUDE
|
|
|
19
20
|
// If not set, or empty, then coverage is included for all files
|
|
20
21
|
// that pass the exclusion RegExp filter. If included in this list,
|
|
21
22
|
// then coverage will be recorded, even if it matches exclude.
|
|
22
|
-
const cfEnv =
|
|
23
|
+
const cfEnv = p.env._TAPJS_PROCESSINFO_COV_FILES_ || '';
|
|
23
24
|
const coveredFiles = cfEnv
|
|
24
25
|
.trim()
|
|
25
26
|
.split('\n')
|
|
@@ -55,7 +56,7 @@ const fileCovered = (f, s, files = []) => {
|
|
|
55
56
|
const register = () => {
|
|
56
57
|
if (!enabled)
|
|
57
58
|
return;
|
|
58
|
-
|
|
59
|
+
p.env._TAPJS_PROCESSINFO_COVERAGE_ = '1';
|
|
59
60
|
exports.SESSION = new inspector_1.Session();
|
|
60
61
|
exports.SESSION.connect();
|
|
61
62
|
exports.SESSION.post('Profiler.enable');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage.js","sourceRoot":"","sources":["../../lib/register-coverage.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,8DAA8D;AAC9D,MAAM,
|
|
1
|
+
{"version":3,"file":"register-coverage.js","sourceRoot":"","sources":["../../lib/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, readFileSync, writeFileSync } from 'fs'\nimport { Session } from 'inspector'\nimport { findSourceMap, SourceMap, SourceMapPayload } from 'module'\nimport { fileURLToPath } from 'url'\nimport { getExclude } from './get-exclude.js'\nimport { ProcessInfoNodeData } from './get-process-info.js'\nimport {getLineLengths} from './line-lengths.js'\n\nexport let SESSION: Session | undefined = undefined\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 exclude = getExclude('_TAPJS_PROCESSINFO_COV_EXCLUDE_')\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)\nconst fileCovered = (\n f: string,\n s?: SourceMapPayload,\n files: string[] = []\n) => {\n const testFiles = [f]\n if (s) {\n for (const src of s.sources || []) {\n testFiles.push(fileURLToPath(src))\n }\n }\n if (!testFiles.some(f => files.includes(f))) return false\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 for (const f of testFiles) {\n if (!exclude.test(f)) return true\n }\n return false\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 const f = fileURLToPath(obj.url)\n // see if it has a source map\n const s = findSourceMap(f)\n if (!fileCovered(f, s?.payload, processInfo.files)) {\n return false\n }\n if (s) {\n const { payload } = s\n sourceMapCache[obj.url] = Object.assign(Object.create(null), {\n lineLengths: getLineLengths(f),\n data: payload,\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-env.d.ts","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-env.d.ts","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,QAAQ,YAQpB,CAAA"}
|
package/dist/cjs/register-env.js
CHANGED
|
@@ -6,21 +6,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.register = void 0;
|
|
7
7
|
const process_on_spawn_1 = __importDefault(require("process-on-spawn"));
|
|
8
8
|
const node_options_env_js_1 = require("./node-options-env.js");
|
|
9
|
+
const p = process;
|
|
9
10
|
const envRE = /^_TAPJS_PROCESSINFO_/;
|
|
10
11
|
const { hasOwnProperty } = Object.prototype;
|
|
11
12
|
const getEnvs = (env) => {
|
|
12
13
|
// load it here so that it isn't cached before the loader attaches
|
|
13
14
|
// in self-test scenario.
|
|
14
15
|
// copy all of OUR envs, if not specifically set on the env object
|
|
15
|
-
return Object.fromEntries(Object.entries(
|
|
16
|
+
return Object.fromEntries(Object.entries(p.env)
|
|
16
17
|
.filter(([k]) => !(env && hasOwnProperty.call(env, k)) && envRE.test(k))
|
|
17
18
|
.concat([
|
|
18
|
-
['NODE_OPTIONS', (0, node_options_env_js_1.nodeOptionsEnv)(
|
|
19
|
+
['NODE_OPTIONS', (0, node_options_env_js_1.nodeOptionsEnv)(p.env, p.execArgv)],
|
|
19
20
|
]));
|
|
20
21
|
};
|
|
21
22
|
const register = () => {
|
|
22
23
|
process_on_spawn_1.default.addListener(obj => {
|
|
23
|
-
obj.env = Object.assign(obj.env || { ...
|
|
24
|
+
obj.env = Object.assign(obj.env || { ...p.env }, getEnvs(obj.env));
|
|
24
25
|
return obj;
|
|
25
26
|
});
|
|
26
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-env.js","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":";;;;;;AAAA,wEAA6C;AAC7C,+DAAsD;AAEtD,MAAM,KAAK,GAAG,sBAAsB,CAAA;AACpC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAA;AAE3C,MAAM,OAAO,GAAG,CAAC,GAAuB,EAAE,EAAE;IAC1C,kEAAkE;IAClE,yBAAyB;IACzB,kEAAkE;IAClE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"register-env.js","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":";;;;;;AAAA,wEAA6C;AAC7C,+DAAsD;AAEtD,MAAM,CAAC,GAAG,OAAO,CAAA;AACjB,MAAM,KAAK,GAAG,sBAAsB,CAAA;AACpC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAA;AAE3C,MAAM,OAAO,GAAG,CAAC,GAAuB,EAAE,EAAE;IAC1C,kEAAkE;IAClE,yBAAyB;IACzB,kEAAkE;IAClE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;SAClB,MAAM,CACL,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAChE;SACA,MAAM,CAAC;QACN,CAAC,cAAc,EAAE,IAAA,oCAAc,EAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;KACpD,CAAC,CACL,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,0BAAc,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;QAC/B,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CACrB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CACjB,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AARY,QAAA,QAAQ,YAQpB","sourcesContent":["import processOnSpawn from 'process-on-spawn'\nimport { nodeOptionsEnv } from './node-options-env.js'\n\nconst p = process\nconst envRE = /^_TAPJS_PROCESSINFO_/\nconst { hasOwnProperty } = Object.prototype\n\nconst getEnvs = (env?: NodeJS.ProcessEnv) => {\n // load it here so that it isn't cached before the loader attaches\n // in self-test scenario.\n // copy all of OUR envs, if not specifically set on the env object\n return Object.fromEntries(\n Object.entries(p.env)\n .filter(\n ([k]) => !(env && hasOwnProperty.call(env, k)) && envRE.test(k)\n )\n .concat([\n ['NODE_OPTIONS', nodeOptionsEnv(p.env, p.execArgv)],\n ])\n )\n}\n\nexport const register = () => {\n processOnSpawn.addListener(obj => {\n obj.env = Object.assign(\n obj.env || { ...p.env },\n getEnvs(obj.env)\n )\n return obj\n })\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-process-end.d.ts","sourceRoot":"","sources":["../../lib/register-process-end.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-process-end.d.ts","sourceRoot":"","sources":["../../lib/register-process-end.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ,YAqCpB,CAAA"}
|
|
@@ -7,8 +7,9 @@ const fs_1 = require("fs");
|
|
|
7
7
|
const module_1 = require("module");
|
|
8
8
|
const url_1 = require("url");
|
|
9
9
|
const register_coverage_js_1 = require("./register-coverage.js");
|
|
10
|
-
const
|
|
11
|
-
|
|
10
|
+
const proc = process;
|
|
11
|
+
const cwd = proc.env._TAPJS_PROCESSINFO_CWD_ || proc.cwd();
|
|
12
|
+
proc.env._TAPJS_PROCESSINFO_CWD_ = cwd;
|
|
12
13
|
const globals = new Set(Object.keys(global));
|
|
13
14
|
const sourceMaps = new Map();
|
|
14
15
|
const register = () => {
|
|
@@ -16,7 +17,7 @@ const register = () => {
|
|
|
16
17
|
const processInfo = (0, get_process_info_js_1.getProcessInfo)();
|
|
17
18
|
processInfo.code = code;
|
|
18
19
|
processInfo.signal = signal;
|
|
19
|
-
const runtime =
|
|
20
|
+
const runtime = proc.hrtime(processInfo.hrstart);
|
|
20
21
|
delete processInfo.hrstart;
|
|
21
22
|
processInfo.files = [...new Set(processInfo.files)];
|
|
22
23
|
// try to find the actual sources of the files we loaded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-process-end.js","sourceRoot":"","sources":["../../lib/register-process-end.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AACpC,+DAAsD;AAEtD,2BAA6C;AAC7C,mCAAiD;AACjD,6BAAmC;AACnC,iEAA6D;AAE7D,MAAM,
|
|
1
|
+
{"version":3,"file":"register-process-end.js","sourceRoot":"","sources":["../../lib/register-process-end.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AACpC,+DAAsD;AAEtD,2BAA6C;AAC7C,mCAAiD;AACjD,6BAAmC;AACnC,iEAA6D;AAE7D,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,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAA;AAExC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,IAAA,oBAAM,EACJ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,WAAW,GAAG,IAAA,oCAAc,GAAE,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,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAA;YACtD,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YACzD,MAAM,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;YAC3C,2DAA2D;YAC3D,2BAA2B;YAC3B,qBAAqB;YACrB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,oBAAoB;aACrB,CAAA;YACD,IAAI,OAAO;gBAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;SACjD;QACD,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;YACvB,WAAW,CAAC,YAAY,GAAG,YAAY,CAAA;SACxC;QAED,MAAM,CAAC,GAAG,GAAG,GAAG,qBAAqB,WAAW,CAAC,IAAI,OAAO,CAAA;QAC5D,IAAA,cAAS,EAAC,GAAG,GAAG,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,IAAA,kBAAa,EAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;QACrE,IAAA,2CAAoB,EAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACxC,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAA;AACH,CAAC,CAAA;AArCY,QAAA,QAAQ,YAqCpB","sourcesContent":["import { onExit } from 'signal-exit'\nimport { getProcessInfo } from './get-process-info.js'\n\nimport { mkdirSync, writeFileSync } from 'fs'\nimport { findSourceMap, SourceMap } from 'module'\nimport { fileURLToPath } from 'url'\nimport { coverageOnProcessEnd } from './register-coverage.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\nconst sourceMaps = new Map<string, SourceMap>()\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 for (const file of processInfo.files) {\n const sm = sourceMaps.get(file) || findSourceMap(file)\n if (sm && !sourceMaps.has(file)) sourceMaps.set(file, sm)\n const sources = sm?.payload.sources?.map(s =>\n // it SHOULD always start with file://, but could in theory\n // be literally any string.\n /* c8 ignore start */\n s.startsWith('file://') ? fileURLToPath(s) : s\n /* c8 ignore stop */\n )\n if (sources) processInfo.sources[file] = sources\n }\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":"spawn-opts.d.ts","sourceRoot":"","sources":["../../lib/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;
|
|
1
|
+
{"version":3,"file":"spawn-opts.d.ts","sourceRoot":"","sources":["../../lib/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;;yCAEV,MAAM,GAAG,MAAM;SACO,iBAAiB;CAWlD,CAAA"}
|
package/dist/cjs/spawn-opts.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.spawnOpts = void 0;
|
|
4
4
|
const node_options_env_js_1 = require("./node-options-env.js");
|
|
5
|
+
const p = process;
|
|
5
6
|
const spawnOpts = (options, exclude) => {
|
|
6
7
|
const { externalID, ...rest } = options;
|
|
7
|
-
const env = { ...(options.env ||
|
|
8
|
+
const env = { ...(options.env || p.env) };
|
|
8
9
|
env.NODE_OPTIONS = (0, node_options_env_js_1.nodeOptionsEnv)(env, []);
|
|
9
10
|
if (externalID) {
|
|
10
11
|
env._TAPJS_PROCESSINFO_EXTERNAL_ID_ = externalID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-opts.js","sourceRoot":"","sources":["../../lib/spawn-opts.ts"],"names":[],"mappings":";;;AACA,+DAAsD;
|
|
1
|
+
{"version":3,"file":"spawn-opts.js","sourceRoot":"","sources":["../../lib/spawn-opts.ts"],"names":[],"mappings":";;;AACA,+DAAsD;AAGtD,MAAM,CAAC,GAAG,OAAO,CAAA;AAEV,MAAM,SAAS,GAAG,CACvB,OAA0B,EAC1B,OAAyB,EAC2B,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,GAAG,CAAC,YAAY,GAAG,IAAA,oCAAc,EAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC1C,IAAI,UAAU,EAAE;QACd,GAAG,CAAC,+BAA+B,GAAG,UAAU,CAAA;KACjD;IACD,IAAI,OAAO,EAAE;QACX,GAAG,CAAC,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;KAClD;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAA;AACzB,CAAC,CAAA;AAdY,QAAA,SAAS,aAcrB","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): Omit<T, 'externalID'> & { env: ProcessEnvOptions } => {\n const { externalID, ...rest } = options\n const env = { ...(options.env || p.env) }\n env.NODE_OPTIONS = nodeOptionsEnv(env, [])\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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const argvToNodeOptions: (argv: string[]) => string;
|
|
1
|
+
export declare const argvToNodeOptions: (argv: readonly string[]) => string;
|
|
2
2
|
//# sourceMappingURL=argv-to-node-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv-to-node-options.d.ts","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,SAAU,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"argv-to-node-options.d.ts","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,SAAU,SAAS,MAAM,EAAE,WACD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv-to-node-options.js","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"argv-to-node-options.js","sourceRoot":"","sources":["../../lib/argv-to-node-options.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAuB,EAAE,EAAE,CAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA","sourcesContent":["export const argvToNodeOptions = (argv: readonly string[]) =>\n argv.map(o => `\"${o.replace(/\"/g, '\\\\\"')}\"`).join(' ')\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-exclude.d.ts","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QACuG,CAAA;
|
|
1
|
+
{"version":3,"file":"get-exclude.d.ts","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QACuG,CAAA;AAclI,eAAO,MAAM,UAAU,MAAO,MAAM,iCAKnC,CAAA"}
|
package/dist/mjs/get-exclude.js
CHANGED
|
@@ -10,10 +10,11 @@ const parseExclude = (src) => {
|
|
|
10
10
|
catch (e) { }
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
|
+
const proc = process;
|
|
13
14
|
export const getExclude = (k, useDefault = true) => {
|
|
14
|
-
const src =
|
|
15
|
+
const src = proc.env[k];
|
|
15
16
|
const exclude = parseExclude(src) || (useDefault ? defaultExclude : /$./);
|
|
16
|
-
|
|
17
|
+
proc.env[k] = String(exclude);
|
|
17
18
|
return exclude;
|
|
18
19
|
};
|
|
19
20
|
//# sourceMappingURL=get-exclude.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-exclude.js","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GACzB,gIAAgI,CAAA;AAElI,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAsB,EAAE;IACnE,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC9C,IAAI,MAAM,EAAE;QACV,IAAI;YACF,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;SACxC;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE;IACzD,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"get-exclude.js","sourceRoot":"","sources":["../../lib/get-exclude.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GACzB,gIAAgI,CAAA;AAElI,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAsB,EAAE;IACnE,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC9C,IAAI,MAAM,EAAE;QACV,IAAI;YACF,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;SACxC;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,OAAO,CAAA;AAEpB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACvB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACzE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA","sourcesContent":["export const defaultExclude =\n /(^|[\\\\\\/])(node_modules|\\.tap|tap-testdir-.*?|tap-snapshots|tests?|[^\\\\\\/]+\\.test\\.([cm]?[jt]s|[jt]sx?)|__tests?__)([\\\\\\/]|$)/i\n\nconst parseExclude = (src: string | undefined): RegExp | undefined => {\n if (!src) return\n const parsed = src.match(/^\\/(.*)\\/([a-z]*)$/)\n if (parsed) {\n try {\n return new RegExp(parsed[1], parsed[2])\n } catch (e) {}\n }\n}\n\nconst proc = process\n\nexport const getExclude = (k: string, useDefault = true) => {\n const src = proc.env[k]\n const exclude = parseExclude(src) || (useDefault ? defaultExclude : /$./)\n proc.env[k] = String(exclude)\n return exclude\n}\n"]}
|
|
@@ -4,9 +4,9 @@ p.setSourceMapsEnabled(true);
|
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import { v4 as uuid } from 'uuid';
|
|
6
6
|
const envKey = (k) => `_TAPJS_PROCESSINFO_${k.toUpperCase()}_`;
|
|
7
|
-
const getEnv = (k) =>
|
|
8
|
-
const setEnv = (k, v) => (
|
|
9
|
-
const delEnv = (k) => delete
|
|
7
|
+
const getEnv = (k) => p.env[envKey(k)];
|
|
8
|
+
const setEnv = (k, v) => (p.env[envKey(k)] = v);
|
|
9
|
+
const delEnv = (k) => delete p.env[envKey(k)];
|
|
10
10
|
import { register as registerCJS } from './register-cjs.js';
|
|
11
11
|
import { register as registerCoverage } from './register-coverage.js';
|
|
12
12
|
import { register as registerEnv } from './register-env.js';
|
|
@@ -28,20 +28,20 @@ export const reset = () => {
|
|
|
28
28
|
export const getProcessInfo = () => {
|
|
29
29
|
if (g[kProcessInfo])
|
|
30
30
|
return g[kProcessInfo];
|
|
31
|
-
const argv1 =
|
|
31
|
+
const argv1 = p.argv[1];
|
|
32
32
|
// we only test this in CJS, but file:// only prepended in ESM
|
|
33
33
|
/* c8 ignore start */
|
|
34
34
|
const main = argv1.startsWith('file://') ? fileURLToPath(argv1) : argv1;
|
|
35
35
|
/* c8 ignore stop */
|
|
36
36
|
g[kProcessInfo] = {
|
|
37
|
-
hrstart:
|
|
37
|
+
hrstart: p.hrtime(),
|
|
38
38
|
date: new Date().toISOString(),
|
|
39
|
-
argv:
|
|
40
|
-
execArgv:
|
|
41
|
-
NODE_OPTIONS:
|
|
42
|
-
cwd:
|
|
43
|
-
pid:
|
|
44
|
-
ppid:
|
|
39
|
+
argv: p.argv,
|
|
40
|
+
execArgv: p.execArgv,
|
|
41
|
+
NODE_OPTIONS: p.env.NODE_OPTIONS,
|
|
42
|
+
cwd: p.cwd(),
|
|
43
|
+
pid: p.pid,
|
|
44
|
+
ppid: p.ppid,
|
|
45
45
|
parent: getEnv('parent') || null,
|
|
46
46
|
uuid: uuid(),
|
|
47
47
|
files: [main],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-process-info.js","sourceRoot":"","sources":["../../lib/get-process-info.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,MAAM,CAAC,GAAG,OAET,CAAA;AACD,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AA2BjC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,GAAG,CAAA;AACtE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"get-process-info.js","sourceRoot":"","sources":["../../lib/get-process-info.ts"],"names":[],"mappings":"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","sourcesContent":["// we always want this\nconst p = process as NodeJS.Process & {\n setSourceMapsEnabled(v: boolean): void\n}\np.setSourceMapsEnabled(true)\n\nimport { fileURLToPath } from 'node:url'\nimport { v4 as uuid } from 'uuid'\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\nconst envKey = (k: string) => `_TAPJS_PROCESSINFO_${k.toUpperCase()}_`\nconst getEnv = (k: string) => p.env[envKey(k)]\nconst setEnv = (k: string, v: string) => (p.env[envKey(k)] = v)\nconst delEnv = (k: string) => delete p.env[envKey(k)]\n\nimport { register as registerCJS } from './register-cjs.js'\nimport { register as registerCoverage } from './register-coverage.js'\nimport { register as registerEnv } from './register-env.js'\nimport { register as registerProcessEnd } from './register-process-end.js'\n\n// this module is hybridized. In node v20, it's the *commonjs* one that\n// gets loaded, because the esm loader context can't modify the main thread\n// except via communication over the port to the globalPreload env.\n// So, we have to store our singleton on the global.\n//\n// If it later loads the esm form of this module, that's fine, because it'll\n// see the global processInfo object, and not re-register anything.\n\nconst kProcessInfo = Symbol.for('@tapjs/processinfo.ProcessInfoNodeData')\nconst g = global as typeof globalThis & {\n [kProcessInfo]?: ProcessInfoNodeData\n}\n\n// only used for tests so we can simulate multiple processes\nexport const reset = () => {\n g[kProcessInfo] = undefined\n return { getProcessInfo }\n}\n\nexport const getProcessInfo = (): ProcessInfoNodeData => {\n if (g[kProcessInfo]) return g[kProcessInfo]\n\n const argv1 = p.argv[1]\n // we only test this in CJS, but file:// only prepended in ESM\n /* c8 ignore start */\n const main = argv1.startsWith('file://') ? fileURLToPath(argv1) : argv1\n /* c8 ignore stop */\n\n g[kProcessInfo] = {\n hrstart: p.hrtime(),\n date: new Date().toISOString(),\n argv: p.argv,\n execArgv: p.execArgv,\n NODE_OPTIONS: p.env.NODE_OPTIONS,\n cwd: p.cwd(),\n pid: p.pid,\n ppid: p.ppid,\n parent: getEnv('parent') || null,\n uuid: uuid(),\n files: [main],\n sources: Object.create(null),\n }\n\n if (!g[kProcessInfo].parent) {\n g[kProcessInfo].root = g[kProcessInfo].uuid\n setEnv('root', g[kProcessInfo].uuid)\n } else {\n g[kProcessInfo].root = getEnv('root')\n }\n // this is the parent of any further child processes\n setEnv('parent', g[kProcessInfo].uuid)\n const externalID = getEnv('external_id')\n if (externalID) {\n g[kProcessInfo].externalID = externalID\n // externalID only applies to ONE process, not all its children.\n delEnv('external_id')\n }\n\n registerCJS()\n registerEnv()\n registerCoverage()\n registerProcessEnd()\n\n return g[kProcessInfo]\n}\n"]}
|
package/dist/mjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACV,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,cAAc,wBAAwB,CAAA;AAItC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACV,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,cAAc,wBAAwB,CAAA;AAItC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AASxD,qBAAa,WAAW;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,GAAG,CAAC,eAAe,CAAC,CAAY;IACvC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAY;IAC/C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAY;IACpD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAY;IAC1D,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAY;IAC5D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAY;WAExC,IAAI,CAAC,EAChB,GAA0C,EAC1C,OAA0C,GAC3C;;;KAAA,GAAG,OAAO,CAAC,WAAW,CAAC;IAMxB,MAAM,CAAC,QAAQ,CAAC,EACd,GAA0C,EAC1C,OAA0C,GAC3C;;;KAAA,GAAG,WAAW;gBAMH,EACV,GAA0C,EAC1C,OAA0C,GAC3C;;;KAAK;IAKN,KAAK;IAOC,IAAI;IAUJ,QAAQ;IAQR,KAAK;IAKX,SAAS;IAKH,IAAI;IAsBV,QAAQ;IAuBR,MAAM,KAAK,IAAI,2BAEd;IAED,MAAM,KAAK,WAAW,uBAErB;IAED,MAAM,KAAK,KAAK,iBAEf;IAED,MAAM,KAAK,SAAS,qBAEnB;IAED,MAAM,KAAK,IAAI,gBAEd;IAED,MAAM,KAAK,QAAQ,oBAElB;IAED,MAAM,KAAK,QAAQ,oBAElB;IAED,MAAM,KAAK,YAAY,wBAEtB;IAED,MAAM,KAAK,IAAI,gBAEd;CACF"}
|
package/dist/mjs/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { ProcessInfoNode } from './process-info-node.js';
|
|
|
6
6
|
import { mkdirSync, readdirSync, rmSync, writeFileSync } from 'fs';
|
|
7
7
|
import { mkdir, readdir, rm, writeFile } from 'fs/promises';
|
|
8
8
|
import { safeJSON, safeJSONSync } from './json-file.js';
|
|
9
|
+
const p = process;
|
|
9
10
|
export class ProcessInfo {
|
|
10
11
|
dir;
|
|
11
12
|
exclude;
|
|
@@ -15,17 +16,17 @@ export class ProcessInfo {
|
|
|
15
16
|
pendingRoot = new Map();
|
|
16
17
|
pendingParent = new Map();
|
|
17
18
|
externalIDs = new Map();
|
|
18
|
-
static async load({ dir = resolve(
|
|
19
|
+
static async load({ dir = resolve(p.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, }) {
|
|
19
20
|
const pi = new ProcessInfo({ dir, exclude });
|
|
20
21
|
await pi.load();
|
|
21
22
|
return pi;
|
|
22
23
|
}
|
|
23
|
-
static loadSync({ dir = resolve(
|
|
24
|
+
static loadSync({ dir = resolve(p.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, }) {
|
|
24
25
|
const pi = new ProcessInfo({ dir, exclude });
|
|
25
26
|
pi.loadSync();
|
|
26
27
|
return pi;
|
|
27
28
|
}
|
|
28
|
-
constructor({ dir = resolve(
|
|
29
|
+
constructor({ dir = resolve(p.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, } = {}) {
|
|
29
30
|
this.dir = dir;
|
|
30
31
|
this.exclude = exclude;
|
|
31
32
|
}
|
package/dist/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,GACV,MAAM,oBAAoB,CAAA;AAI3B,cAAc,oBAAoB,CAAA;AAElC,cAAc,wBAAwB,CAAA;AAEtC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE3D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEvD,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/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 { WithExternalID } from './spawn-opts.js'\n\nexport * from './child_process.js'\nexport { ProcessInfoNodeData } from './get-process-info.js'\nexport * from './process-info-node.js'\n\nimport { basename, resolve } from 'path'\n\nimport { ProcessInfoNode } from './process-info-node.js'\n\nimport { mkdirSync, readdirSync, rmSync, writeFileSync } from 'fs'\nimport { mkdir, readdir, rm, writeFile } from 'fs/promises'\n\nimport { safeJSON, safeJSONSync } from './json-file.js'\n\nconst p = process\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 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":"node-options-env.d.ts","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"node-options-env.d.ts","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":";;;;AA0EA,eAAO,MAAM,cAAc,QACpB,OAAO,UAAU,QAChB,cAAc,MAAM,CAAC,WAQ5B,CAAA"}
|
|
@@ -47,8 +47,14 @@ const hasLoader = (args, keys, test) => {
|
|
|
47
47
|
}
|
|
48
48
|
return false;
|
|
49
49
|
};
|
|
50
|
+
const addIgnoreLoadersWarning = (args) => args.includes('--no-warnings') ||
|
|
51
|
+
args.includes('--no-warnings=ExperimentalLoader')
|
|
52
|
+
? args
|
|
53
|
+
: args.concat('--no-warnings=ExperimentalLoader');
|
|
50
54
|
export const nodeOptionsEnv = (env, args) => {
|
|
51
55
|
const no = nodeOptionsToArgv(env.NODE_OPTIONS);
|
|
52
|
-
return argvToNodeOptions(cjsOnly(args.concat(no))
|
|
56
|
+
return argvToNodeOptions(cjsOnly(args.concat(no))
|
|
57
|
+
? addCJS(no)
|
|
58
|
+
: addIgnoreLoadersWarning(addESM(no)));
|
|
53
59
|
};
|
|
54
60
|
//# sourceMappingURL=node-options-env.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-options-env.js","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,uDAAuD;AACvD,4BAA4B;AAE5B,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE,CACtC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEhD,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE,CACtC,SAAS,CAAC,IAAI,EAAE,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAElE,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE,CAChC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAEpE,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE,CAChC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAEnE,MAAM,OAAO,GAAG,CAAC,IAAc,EAAE,EAAE,CACjC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AAEjD,MAAM,SAAS,GAAG,CAChB,IAAc,EACd,IAAc,EACd,IAA4B,EAC5B,EAAE;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,aAAa;QACb,mBAAmB;QACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,SAAQ;aACT;SACF;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpD,oBAAoB;YACpB,mBAAmB;YACnB,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC5C,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,SAAQ;aACT;SACF;aAAM,IACL,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACrB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YACnB,GAAG,CAAC,MAAM,GAAG,CAAC;YACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAClC;YACA,YAAY;YACZ,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1B,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,SAAQ;aACT;SACF;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAsB,EACtB,IAA2B,EAC3B,EAAE;IACF,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC9C,OAAO,iBAAiB,CACtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"node-options-env.js","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":"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","sourcesContent":["import { argvToNodeOptions } from './argv-to-node-options.js'\nimport {\n cjsLoader,\n cjsMatch,\n esmLoader,\n esmMatch,\n} from './loader-paths.js'\nimport { nodeOptionsToArgv } from './node-options-to-argv.js'\n\n// Check if our esm and/or cjs loaders are in the list,\n// and only add them if not.\n\nconst hasCJSLoader = (args: string[]) =>\n hasLoader(args, ['-r', '--require'], cjsMatch)\n\nconst hasESMLoader = (args: string[]) =>\n hasLoader(args, ['--experimental-loader', '--loader'], esmMatch)\n\nconst addCJS = (args: string[]) =>\n !hasCJSLoader(args) ? args.concat('--require=' + cjsLoader) : args\n\nconst addESM = (args: string[]) =>\n !hasESMLoader(args) ? args.concat('--loader=' + esmLoader) : args\n\nconst cjsOnly = (args: string[]) =>\n hasESMLoader(args) ? false : hasCJSLoader(args)\n\nconst hasLoader = (\n args: string[],\n keys: string[],\n test: (s: string) => boolean\n) => {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n // -r <value>\n // --loader <value>\n if (keys.includes(arg) && i < args.length - 1) {\n if (test(args[i + 1])) {\n return true\n } else {\n continue\n }\n } else if (arg.startsWith('--') && arg.includes('=')) {\n // --require=<value>\n // --loader=<value>\n const [k, ...rest] = arg.split('=')\n if (keys.includes(k) && test(rest.join('='))) {\n return true\n } else {\n continue\n }\n } else if (\n !arg.startsWith('--') &&\n arg.startsWith('-') &&\n arg.length > 2 &&\n keys.includes(arg.substring(0, 2))\n ) {\n // -r<value>\n if (test(arg.substring(2))) {\n return true\n } else {\n continue\n }\n }\n }\n return false\n}\n\nconst addIgnoreLoadersWarning = (args: readonly string[]) =>\n args.includes('--no-warnings') ||\n args.includes('--no-warnings=ExperimentalLoader')\n ? args\n : args.concat('--no-warnings=ExperimentalLoader')\n\nexport const nodeOptionsEnv = (\n env: NodeJS.ProcessEnv,\n args: ReadonlyArray<string>\n) => {\n const no = nodeOptionsToArgv(env.NODE_OPTIONS)\n return argvToNodeOptions(\n cjsOnly(args.concat(no))\n ? addCJS(no)\n : addIgnoreLoadersWarning(addESM(no))\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage.d.ts","sourceRoot":"","sources":["../../lib/register-coverage.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"register-coverage.d.ts","sourceRoot":"","sources":["../../lib/register-coverage.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAG3D,eAAO,IAAI,OAAO,EAAE,OAAO,GAAG,SAAqB,CAAA;AAiDnD,eAAO,MAAM,QAAQ,YAYpB,CAAA;AAGD,eAAO,MAAM,oBAAoB,QAC1B,MAAM,eACE,mBAAmB,SAyDjC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// start tracking coverage, unless disabled explicltly
|
|
2
2
|
// export so that we know to collect at the end of the process
|
|
3
|
-
const
|
|
3
|
+
const p = process;
|
|
4
|
+
const enabled = p.env._TAPJS_PROCESSINFO_COVERAGE_ !== '0';
|
|
4
5
|
import { mkdirSync, writeFileSync } from 'fs';
|
|
5
6
|
import { Session } from 'inspector';
|
|
6
7
|
import { findSourceMap } from 'module';
|
|
@@ -16,7 +17,7 @@ const exclude = getExclude('_TAPJS_PROCESSINFO_COV_EXCLUDE_');
|
|
|
16
17
|
// If not set, or empty, then coverage is included for all files
|
|
17
18
|
// that pass the exclusion RegExp filter. If included in this list,
|
|
18
19
|
// then coverage will be recorded, even if it matches exclude.
|
|
19
|
-
const cfEnv =
|
|
20
|
+
const cfEnv = p.env._TAPJS_PROCESSINFO_COV_FILES_ || '';
|
|
20
21
|
const coveredFiles = cfEnv
|
|
21
22
|
.trim()
|
|
22
23
|
.split('\n')
|
|
@@ -52,7 +53,7 @@ const fileCovered = (f, s, files = []) => {
|
|
|
52
53
|
export const register = () => {
|
|
53
54
|
if (!enabled)
|
|
54
55
|
return;
|
|
55
|
-
|
|
56
|
+
p.env._TAPJS_PROCESSINFO_COVERAGE_ = '1';
|
|
56
57
|
SESSION = new Session();
|
|
57
58
|
SESSION.connect();
|
|
58
59
|
SESSION.post('Profiler.enable');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage.js","sourceRoot":"","sources":["../../lib/register-coverage.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,8DAA8D;AAC9D,MAAM,
|
|
1
|
+
{"version":3,"file":"register-coverage.js","sourceRoot":"","sources":["../../lib/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, readFileSync, writeFileSync } from 'fs'\nimport { Session } from 'inspector'\nimport { findSourceMap, SourceMap, SourceMapPayload } from 'module'\nimport { fileURLToPath } from 'url'\nimport { getExclude } from './get-exclude.js'\nimport { ProcessInfoNodeData } from './get-process-info.js'\nimport {getLineLengths} from './line-lengths.js'\n\nexport let SESSION: Session | undefined = undefined\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 exclude = getExclude('_TAPJS_PROCESSINFO_COV_EXCLUDE_')\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)\nconst fileCovered = (\n f: string,\n s?: SourceMapPayload,\n files: string[] = []\n) => {\n const testFiles = [f]\n if (s) {\n for (const src of s.sources || []) {\n testFiles.push(fileURLToPath(src))\n }\n }\n if (!testFiles.some(f => files.includes(f))) return false\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 for (const f of testFiles) {\n if (!exclude.test(f)) return true\n }\n return false\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 const f = fileURLToPath(obj.url)\n // see if it has a source map\n const s = findSourceMap(f)\n if (!fileCovered(f, s?.payload, processInfo.files)) {\n return false\n }\n if (s) {\n const { payload } = s\n sourceMapCache[obj.url] = Object.assign(Object.create(null), {\n lineLengths: getLineLengths(f),\n data: payload,\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-env.d.ts","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-env.d.ts","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,QAAQ,YAQpB,CAAA"}
|
package/dist/mjs/register-env.js
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import processOnSpawn from 'process-on-spawn';
|
|
2
2
|
import { nodeOptionsEnv } from './node-options-env.js';
|
|
3
|
+
const p = process;
|
|
3
4
|
const envRE = /^_TAPJS_PROCESSINFO_/;
|
|
4
5
|
const { hasOwnProperty } = Object.prototype;
|
|
5
6
|
const getEnvs = (env) => {
|
|
6
7
|
// load it here so that it isn't cached before the loader attaches
|
|
7
8
|
// in self-test scenario.
|
|
8
9
|
// copy all of OUR envs, if not specifically set on the env object
|
|
9
|
-
return Object.fromEntries(Object.entries(
|
|
10
|
+
return Object.fromEntries(Object.entries(p.env)
|
|
10
11
|
.filter(([k]) => !(env && hasOwnProperty.call(env, k)) && envRE.test(k))
|
|
11
12
|
.concat([
|
|
12
|
-
['NODE_OPTIONS', nodeOptionsEnv(
|
|
13
|
+
['NODE_OPTIONS', nodeOptionsEnv(p.env, p.execArgv)],
|
|
13
14
|
]));
|
|
14
15
|
};
|
|
15
16
|
export const register = () => {
|
|
16
17
|
processOnSpawn.addListener(obj => {
|
|
17
|
-
obj.env = Object.assign(obj.env || { ...
|
|
18
|
+
obj.env = Object.assign(obj.env || { ...p.env }, getEnvs(obj.env));
|
|
18
19
|
return obj;
|
|
19
20
|
});
|
|
20
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-env.js","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,KAAK,GAAG,sBAAsB,CAAA;AACpC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAA;AAE3C,MAAM,OAAO,GAAG,CAAC,GAAuB,EAAE,EAAE;IAC1C,kEAAkE;IAClE,yBAAyB;IACzB,kEAAkE;IAClE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"register-env.js","sourceRoot":"","sources":["../../lib/register-env.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,CAAC,GAAG,OAAO,CAAA;AACjB,MAAM,KAAK,GAAG,sBAAsB,CAAA;AACpC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAA;AAE3C,MAAM,OAAO,GAAG,CAAC,GAAuB,EAAE,EAAE;IAC1C,kEAAkE;IAClE,yBAAyB;IACzB,kEAAkE;IAClE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;SAClB,MAAM,CACL,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAChE;SACA,MAAM,CAAC;QACN,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;KACpD,CAAC,CACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;QAC/B,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CACrB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CACjB,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import processOnSpawn from 'process-on-spawn'\nimport { nodeOptionsEnv } from './node-options-env.js'\n\nconst p = process\nconst envRE = /^_TAPJS_PROCESSINFO_/\nconst { hasOwnProperty } = Object.prototype\n\nconst getEnvs = (env?: NodeJS.ProcessEnv) => {\n // load it here so that it isn't cached before the loader attaches\n // in self-test scenario.\n // copy all of OUR envs, if not specifically set on the env object\n return Object.fromEntries(\n Object.entries(p.env)\n .filter(\n ([k]) => !(env && hasOwnProperty.call(env, k)) && envRE.test(k)\n )\n .concat([\n ['NODE_OPTIONS', nodeOptionsEnv(p.env, p.execArgv)],\n ])\n )\n}\n\nexport const register = () => {\n processOnSpawn.addListener(obj => {\n obj.env = Object.assign(\n obj.env || { ...p.env },\n getEnvs(obj.env)\n )\n return obj\n })\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-process-end.d.ts","sourceRoot":"","sources":["../../lib/register-process-end.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-process-end.d.ts","sourceRoot":"","sources":["../../lib/register-process-end.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ,YAqCpB,CAAA"}
|
|
@@ -4,8 +4,9 @@ import { mkdirSync, writeFileSync } from 'fs';
|
|
|
4
4
|
import { findSourceMap } from 'module';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
6
|
import { coverageOnProcessEnd } from './register-coverage.js';
|
|
7
|
-
const
|
|
8
|
-
|
|
7
|
+
const proc = process;
|
|
8
|
+
const cwd = proc.env._TAPJS_PROCESSINFO_CWD_ || proc.cwd();
|
|
9
|
+
proc.env._TAPJS_PROCESSINFO_CWD_ = cwd;
|
|
9
10
|
const globals = new Set(Object.keys(global));
|
|
10
11
|
const sourceMaps = new Map();
|
|
11
12
|
export const register = () => {
|
|
@@ -13,7 +14,7 @@ export const register = () => {
|
|
|
13
14
|
const processInfo = getProcessInfo();
|
|
14
15
|
processInfo.code = code;
|
|
15
16
|
processInfo.signal = signal;
|
|
16
|
-
const runtime =
|
|
17
|
+
const runtime = proc.hrtime(processInfo.hrstart);
|
|
17
18
|
delete processInfo.hrstart;
|
|
18
19
|
processInfo.files = [...new Set(processInfo.files)];
|
|
19
20
|
// try to find the actual sources of the files we loaded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-process-end.js","sourceRoot":"","sources":["../../lib/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,aAAa,EAAa,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,
|
|
1
|
+
{"version":3,"file":"register-process-end.js","sourceRoot":"","sources":["../../lib/register-process-end.ts"],"names":[],"mappings":"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","sourcesContent":["import { onExit } from 'signal-exit'\nimport { getProcessInfo } from './get-process-info.js'\n\nimport { mkdirSync, writeFileSync } from 'fs'\nimport { findSourceMap, SourceMap } from 'module'\nimport { fileURLToPath } from 'url'\nimport { coverageOnProcessEnd } from './register-coverage.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\nconst sourceMaps = new Map<string, SourceMap>()\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 for (const file of processInfo.files) {\n const sm = sourceMaps.get(file) || findSourceMap(file)\n if (sm && !sourceMaps.has(file)) sourceMaps.set(file, sm)\n const sources = sm?.payload.sources?.map(s =>\n // it SHOULD always start with file://, but could in theory\n // be literally any string.\n /* c8 ignore start */\n s.startsWith('file://') ? fileURLToPath(s) : s\n /* c8 ignore stop */\n )\n if (sources) processInfo.sources[file] = sources\n }\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":"spawn-opts.d.ts","sourceRoot":"","sources":["../../lib/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;
|
|
1
|
+
{"version":3,"file":"spawn-opts.d.ts","sourceRoot":"","sources":["../../lib/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;;yCAEV,MAAM,GAAG,MAAM;SACO,iBAAiB;CAWlD,CAAA"}
|
package/dist/mjs/spawn-opts.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { nodeOptionsEnv } from './node-options-env.js';
|
|
2
|
+
const p = process;
|
|
2
3
|
export const spawnOpts = (options, exclude) => {
|
|
3
4
|
const { externalID, ...rest } = options;
|
|
4
|
-
const env = { ...(options.env ||
|
|
5
|
+
const env = { ...(options.env || p.env) };
|
|
5
6
|
env.NODE_OPTIONS = nodeOptionsEnv(env, []);
|
|
6
7
|
if (externalID) {
|
|
7
8
|
env._TAPJS_PROCESSINFO_EXTERNAL_ID_ = externalID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-opts.js","sourceRoot":"","sources":["../../lib/spawn-opts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"spawn-opts.js","sourceRoot":"","sources":["../../lib/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,EAC2B,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,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC1C,IAAI,UAAU,EAAE;QACd,GAAG,CAAC,+BAA+B,GAAG,UAAU,CAAA;KACjD;IACD,IAAI,OAAO,EAAE;QACX,GAAG,CAAC,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;KAClD;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): Omit<T, 'externalID'> & { env: ProcessEnvOptions } => {\n const { externalID, ...rest } = options\n const env = { ...(options.env || p.env) }\n env.NODE_OPTIONS = nodeOptionsEnv(env, [])\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"]}
|