@tapjs/processinfo 1.0.12 → 2.0.0
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/README.md +20 -11
- package/dist/cjs/argv-to-node-options.d.ts +2 -0
- package/dist/cjs/argv-to-node-options.d.ts.map +1 -0
- package/dist/cjs/argv-to-node-options.js +6 -0
- package/dist/cjs/argv-to-node-options.js.map +1 -0
- package/dist/cjs/child_process.d.ts +205 -0
- package/dist/cjs/child_process.d.ts.map +1 -0
- package/dist/cjs/child_process.js +109 -0
- package/dist/cjs/child_process.js.map +1 -0
- package/dist/cjs/cjs.d.ts +2 -0
- package/dist/cjs/cjs.d.ts.map +1 -0
- package/dist/cjs/cjs.js +5 -0
- package/dist/cjs/cjs.js.map +1 -0
- package/dist/cjs/get-exclude.d.ts +3 -0
- package/dist/cjs/get-exclude.d.ts.map +1 -0
- package/dist/cjs/get-exclude.js +23 -0
- package/dist/cjs/get-exclude.js.map +1 -0
- package/dist/cjs/get-process-info.d.ts +25 -0
- package/dist/cjs/get-process-info.d.ts.map +1 -0
- package/dist/cjs/get-process-info.js +69 -0
- package/dist/cjs/get-process-info.js.map +1 -0
- package/dist/cjs/index.d.ts +44 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +148 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/json-file.d.ts +3 -0
- package/dist/cjs/json-file.d.ts.map +1 -0
- package/dist/cjs/json-file.js +20 -0
- package/dist/cjs/json-file.js.map +1 -0
- package/dist/cjs/loader-paths.d.ts +5 -0
- package/dist/cjs/loader-paths.d.ts.map +1 -0
- package/dist/cjs/loader-paths.js +35 -0
- package/dist/cjs/loader-paths.js.map +1 -0
- package/dist/cjs/node-options-env.d.ts +6 -0
- package/dist/cjs/node-options-env.d.ts.map +1 -0
- package/dist/cjs/node-options-env.js +58 -0
- package/dist/cjs/node-options-env.js.map +1 -0
- package/dist/cjs/node-options-to-argv.d.ts +2 -0
- package/dist/cjs/node-options-to-argv.d.ts.map +1 -0
- package/dist/cjs/node-options-to-argv.js +58 -0
- package/dist/cjs/node-options-to-argv.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/process-info-node.d.ts +24 -0
- package/dist/cjs/process-info-node.d.ts.map +1 -0
- package/dist/cjs/process-info-node.js +100 -0
- package/dist/cjs/process-info-node.js.map +1 -0
- package/dist/cjs/register-cjs.d.ts +2 -0
- package/dist/cjs/register-cjs.d.ts.map +1 -0
- package/dist/cjs/register-cjs.js +21 -0
- package/dist/cjs/register-cjs.js.map +1 -0
- package/dist/cjs/register-coverage.d.ts +7 -0
- package/dist/cjs/register-coverage.d.ts.map +1 -0
- package/dist/cjs/register-coverage.js +94 -0
- package/dist/cjs/register-coverage.js.map +1 -0
- package/dist/cjs/register-env.d.ts +2 -0
- package/dist/cjs/register-env.d.ts.map +1 -0
- package/dist/cjs/register-env.js +26 -0
- package/dist/cjs/register-env.js.map +1 -0
- package/dist/cjs/register-process-end.d.ts +2 -0
- package/dist/cjs/register-process-end.d.ts.map +1 -0
- package/dist/cjs/register-process-end.js +30 -0
- package/dist/cjs/register-process-end.js.map +1 -0
- package/dist/cjs/require-resolve-cjs.d.ts.map +1 -0
- package/dist/cjs/require-resolve-cjs.js.map +1 -0
- package/dist/cjs/require-resolve.d.ts +3 -0
- package/dist/cjs/require-resolve.js +9 -0
- package/dist/cjs/spawn-opts.d.ts +10 -0
- package/dist/cjs/spawn-opts.d.ts.map +1 -0
- package/dist/cjs/spawn-opts.js +18 -0
- package/dist/cjs/spawn-opts.js.map +1 -0
- package/dist/cjs/x.d.ts +2 -0
- package/dist/cjs/x.d.ts.map +1 -0
- package/dist/cjs/x.js +5 -0
- package/dist/cjs/x.js.map +1 -0
- package/dist/mjs/argv-to-node-options.d.ts +2 -0
- package/dist/mjs/argv-to-node-options.d.ts.map +1 -0
- package/dist/mjs/argv-to-node-options.js +2 -0
- package/dist/mjs/argv-to-node-options.js.map +1 -0
- package/dist/mjs/child_process.d.ts +205 -0
- package/dist/mjs/child_process.d.ts.map +1 -0
- package/dist/mjs/child_process.js +99 -0
- package/dist/mjs/child_process.js.map +1 -0
- package/dist/mjs/esm.d.mts +11 -0
- package/dist/mjs/esm.d.mts.map +1 -0
- package/dist/mjs/esm.mjs +45 -0
- package/dist/mjs/esm.mjs.map +1 -0
- package/dist/mjs/get-exclude.d.ts +3 -0
- package/dist/mjs/get-exclude.d.ts.map +1 -0
- package/dist/mjs/get-exclude.js +19 -0
- package/dist/mjs/get-exclude.js.map +1 -0
- package/dist/mjs/get-process-info.d.ts +25 -0
- package/dist/mjs/get-process-info.d.ts.map +1 -0
- package/dist/mjs/get-process-info.js +64 -0
- package/dist/mjs/get-process-info.js.map +1 -0
- package/dist/mjs/index.d.ts +44 -0
- package/dist/mjs/index.d.ts.map +1 -0
- package/dist/mjs/index.js +130 -0
- package/dist/mjs/index.js.map +1 -0
- package/dist/mjs/json-file.d.ts +3 -0
- package/dist/mjs/json-file.d.ts.map +1 -0
- package/dist/mjs/json-file.js +15 -0
- package/dist/mjs/json-file.js.map +1 -0
- package/dist/mjs/loader-paths.d.ts +5 -0
- package/dist/mjs/loader-paths.d.ts.map +1 -0
- package/dist/mjs/loader-paths.js +30 -0
- package/dist/mjs/loader-paths.js.map +1 -0
- package/dist/mjs/node-options-env.d.ts +6 -0
- package/dist/mjs/node-options-env.d.ts.map +1 -0
- package/dist/mjs/node-options-env.js +54 -0
- package/dist/mjs/node-options-env.js.map +1 -0
- package/dist/mjs/node-options-to-argv.d.ts +2 -0
- package/dist/mjs/node-options-to-argv.d.ts.map +1 -0
- package/dist/mjs/node-options-to-argv.js +54 -0
- package/dist/mjs/node-options-to-argv.js.map +1 -0
- package/dist/mjs/package.json +3 -0
- package/dist/mjs/process-info-node.d.ts +24 -0
- package/dist/mjs/process-info-node.d.ts.map +1 -0
- package/dist/mjs/process-info-node.js +96 -0
- package/dist/mjs/process-info-node.js.map +1 -0
- package/dist/mjs/register-cjs.d.ts +2 -0
- package/dist/mjs/register-cjs.d.ts.map +1 -0
- package/dist/mjs/register-cjs.js +17 -0
- package/dist/mjs/register-cjs.js.map +1 -0
- package/dist/mjs/register-coverage.d.ts +7 -0
- package/dist/mjs/register-coverage.d.ts.map +1 -0
- package/dist/mjs/register-coverage.js +89 -0
- package/dist/mjs/register-coverage.js.map +1 -0
- package/dist/mjs/register-env.d.ts +2 -0
- package/dist/mjs/register-env.d.ts.map +1 -0
- package/dist/mjs/register-env.js +19 -0
- package/dist/mjs/register-env.js.map +1 -0
- package/dist/mjs/register-process-end.d.ts +2 -0
- package/dist/mjs/register-process-end.d.ts.map +1 -0
- package/dist/mjs/register-process-end.js +26 -0
- package/dist/mjs/register-process-end.js.map +1 -0
- package/dist/mjs/require-resolve.d.ts +3 -0
- package/dist/mjs/require-resolve.d.ts.map +1 -0
- package/dist/mjs/require-resolve.js +9 -0
- package/dist/mjs/require-resolve.js.map +1 -0
- package/dist/mjs/spawn-opts.d.ts +10 -0
- package/dist/mjs/spawn-opts.d.ts.map +1 -0
- package/dist/mjs/spawn-opts.js +14 -0
- package/dist/mjs/spawn-opts.js.map +1 -0
- package/dist/mjs/x.d.ts +2 -0
- package/dist/mjs/x.d.ts.map +1 -0
- package/dist/mjs/x.js +2 -0
- package/dist/mjs/x.js.map +1 -0
- package/package.json +49 -19
- package/index.d.ts +0 -208
- package/lib/argv-to-node-options.cjs +0 -2
- package/lib/child_process.cjs +0 -81
- package/lib/cjs.cjs +0 -16
- package/lib/esm.mjs +0 -74
- package/lib/get-exclude.cjs +0 -21
- package/lib/get-process-info.cjs +0 -45
- package/lib/index.cjs +0 -163
- package/lib/index.d.cts +0 -208
- package/lib/index.d.ts +0 -208
- package/lib/json-file.cjs +0 -19
- package/lib/node-options-env.cjs +0 -100
- package/lib/node-options-to-argv.cjs +0 -52
- package/lib/process-info-node.cjs +0 -84
- package/lib/register-coverage.cjs +0 -74
- package/lib/register-env.cjs +0 -21
- package/lib/register-process-end.cjs +0 -29
- package/lib/spawn-opts.cjs +0 -16
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProcessInfo = exports.reset = void 0;
|
|
4
|
+
// we always want this
|
|
5
|
+
const p = process;
|
|
6
|
+
p.setSourceMapsEnabled(true);
|
|
7
|
+
const uuid_1 = require("uuid");
|
|
8
|
+
const envKey = (k) => `_TAPJS_PROCESSINFO_${k.toUpperCase()}_`;
|
|
9
|
+
const getEnv = (k) => process.env[envKey(k)];
|
|
10
|
+
const setEnv = (k, v) => (process.env[envKey(k)] = v);
|
|
11
|
+
const delEnv = (k) => delete process.env[envKey(k)];
|
|
12
|
+
const register_coverage_js_1 = require("./register-coverage.js");
|
|
13
|
+
const register_env_js_1 = require("./register-env.js");
|
|
14
|
+
const register_process_end_js_1 = require("./register-process-end.js");
|
|
15
|
+
const register_cjs_js_1 = require("./register-cjs.js");
|
|
16
|
+
// this module is hybridized. In node v20, it's the *commonjs* one that
|
|
17
|
+
// gets loaded, because the esm loader context can't modify the main thread
|
|
18
|
+
// except via communication over the port to the globalPreload env.
|
|
19
|
+
// So, we have to store our singleton on the global.
|
|
20
|
+
//
|
|
21
|
+
// If it later loads the esm form of this module, that's fine, because it'll
|
|
22
|
+
// see the global processInfo object, and not re-register anything.
|
|
23
|
+
const kProcessInfo = Symbol.for('@tapjs/processinfo.ProcessInfoNodeData');
|
|
24
|
+
const g = global;
|
|
25
|
+
// only used for tests so we can simulate multiple processes
|
|
26
|
+
const reset = () => {
|
|
27
|
+
g[kProcessInfo] = undefined;
|
|
28
|
+
return { getProcessInfo: exports.getProcessInfo };
|
|
29
|
+
};
|
|
30
|
+
exports.reset = reset;
|
|
31
|
+
const getProcessInfo = () => {
|
|
32
|
+
if (g[kProcessInfo])
|
|
33
|
+
return g[kProcessInfo];
|
|
34
|
+
g[kProcessInfo] = {
|
|
35
|
+
hrstart: process.hrtime(),
|
|
36
|
+
date: new Date().toISOString(),
|
|
37
|
+
argv: process.argv,
|
|
38
|
+
execArgv: process.execArgv,
|
|
39
|
+
NODE_OPTIONS: process.env.NODE_OPTIONS,
|
|
40
|
+
cwd: process.cwd(),
|
|
41
|
+
pid: process.pid,
|
|
42
|
+
ppid: process.ppid,
|
|
43
|
+
parent: getEnv('parent') || null,
|
|
44
|
+
uuid: (0, uuid_1.v4)(),
|
|
45
|
+
files: [],
|
|
46
|
+
};
|
|
47
|
+
if (!g[kProcessInfo].parent) {
|
|
48
|
+
g[kProcessInfo].root = g[kProcessInfo].uuid;
|
|
49
|
+
setEnv('root', g[kProcessInfo].uuid);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
g[kProcessInfo].root = getEnv('root');
|
|
53
|
+
}
|
|
54
|
+
// this is the parent of any further child processes
|
|
55
|
+
setEnv('parent', g[kProcessInfo].uuid);
|
|
56
|
+
const externalID = getEnv('external_id');
|
|
57
|
+
if (externalID) {
|
|
58
|
+
g[kProcessInfo].externalID = externalID;
|
|
59
|
+
// externalID only applies to ONE process, not all its children.
|
|
60
|
+
delEnv('external_id');
|
|
61
|
+
}
|
|
62
|
+
(0, register_cjs_js_1.register)();
|
|
63
|
+
(0, register_env_js_1.register)();
|
|
64
|
+
(0, register_coverage_js_1.register)();
|
|
65
|
+
(0, register_process_end_js_1.register)();
|
|
66
|
+
return g[kProcessInfo];
|
|
67
|
+
};
|
|
68
|
+
exports.getProcessInfo = getProcessInfo;
|
|
69
|
+
//# sourceMappingURL=get-process-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 { 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\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\n\nconst envKey = (k: string) => `_TAPJS_PROCESSINFO_${k.toUpperCase()}_`\nconst getEnv = (k: string) => process.env[envKey(k)]\nconst setEnv = (k: string, v: string) => (process.env[envKey(k)] = v)\nconst delEnv = (k: string) => delete process.env[envKey(k)]\n\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'\nimport { register as registerCJS } from './register-cjs.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 g[kProcessInfo] = {\n hrstart: process.hrtime(),\n date: new Date().toISOString(),\n argv: process.argv,\n execArgv: process.execArgv,\n NODE_OPTIONS: process.env.NODE_OPTIONS,\n cwd: process.cwd(),\n pid: process.pid,\n ppid: process.ppid,\n parent: getEnv('parent') || null,\n uuid: uuid(),\n files: [],\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"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { exec, execFile, execFileSync, execSync, fork, spawn, spawnSync } from './child_process.js';
|
|
2
|
+
export * from './child_process.js';
|
|
3
|
+
export { ProcessInfoNodeData } from './get-process-info.js';
|
|
4
|
+
export * from './process-info-node.js';
|
|
5
|
+
import { ProcessInfoNode } from './process-info-node.js';
|
|
6
|
+
export declare class ProcessInfo {
|
|
7
|
+
dir: string;
|
|
8
|
+
exclude: RegExp;
|
|
9
|
+
roots: Set<ProcessInfoNode>;
|
|
10
|
+
uuids: Map<string, ProcessInfoNode>;
|
|
11
|
+
files: Map<string, Set<ProcessInfoNode>>;
|
|
12
|
+
pendingRoot: Map<string, Set<ProcessInfoNode>>;
|
|
13
|
+
pendingParent: Map<string, Set<ProcessInfoNode>>;
|
|
14
|
+
externalIDs: Map<string, ProcessInfoNode>;
|
|
15
|
+
static load({ dir, exclude, }: {
|
|
16
|
+
dir?: string | undefined;
|
|
17
|
+
exclude?: RegExp | undefined;
|
|
18
|
+
}): Promise<ProcessInfo>;
|
|
19
|
+
static loadSync({ dir, exclude, }: {
|
|
20
|
+
dir?: string | undefined;
|
|
21
|
+
exclude?: RegExp | undefined;
|
|
22
|
+
}): ProcessInfo;
|
|
23
|
+
constructor({ dir, exclude, }?: {
|
|
24
|
+
dir?: string | undefined;
|
|
25
|
+
exclude?: RegExp | undefined;
|
|
26
|
+
});
|
|
27
|
+
clear(): void;
|
|
28
|
+
save(): Promise<void>;
|
|
29
|
+
saveSync(): Promise<void>;
|
|
30
|
+
erase(): Promise<void>;
|
|
31
|
+
eraseSync(): void;
|
|
32
|
+
load(): Promise<this>;
|
|
33
|
+
loadSync(): this;
|
|
34
|
+
static get Node(): typeof ProcessInfoNode;
|
|
35
|
+
static get ProcessInfo(): typeof ProcessInfo;
|
|
36
|
+
static get spawn(): typeof spawn;
|
|
37
|
+
static get spawnSync(): typeof spawnSync;
|
|
38
|
+
static get exec(): typeof exec;
|
|
39
|
+
static get execSync(): typeof execSync;
|
|
40
|
+
static get execFile(): typeof execFile;
|
|
41
|
+
static get execFileSync(): typeof execFileSync;
|
|
42
|
+
static get fork(): typeof fork;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,cAAc,wBAAwB,CAAA;AAItC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAOxD,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,GAAgD,EAChD,OAA0C,GAC3C;;;KAAA,GAAG,OAAO,CAAC,WAAW,CAAC;IAMxB,MAAM,CAAC,QAAQ,CAAC,EACd,GAAgD,EAChD,OAA0C,GAC3C;;;KAAA,GAAG,WAAW;gBAMH,EACV,GAAgD,EAChD,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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ProcessInfo = void 0;
|
|
18
|
+
const child_process_js_1 = require("./child_process.js");
|
|
19
|
+
__exportStar(require("./child_process.js"), exports);
|
|
20
|
+
__exportStar(require("./process-info-node.js"), exports);
|
|
21
|
+
const path_1 = require("path");
|
|
22
|
+
const process_info_node_js_1 = require("./process-info-node.js");
|
|
23
|
+
const fs_1 = require("fs");
|
|
24
|
+
const promises_1 = require("fs/promises");
|
|
25
|
+
const json_file_js_1 = require("./json-file.js");
|
|
26
|
+
class ProcessInfo {
|
|
27
|
+
dir;
|
|
28
|
+
exclude;
|
|
29
|
+
roots = new Set();
|
|
30
|
+
uuids = new Map();
|
|
31
|
+
files = new Map();
|
|
32
|
+
pendingRoot = new Map();
|
|
33
|
+
pendingParent = new Map();
|
|
34
|
+
externalIDs = new Map();
|
|
35
|
+
static async load({ dir = (0, path_1.resolve)(process.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, }) {
|
|
36
|
+
const pi = new ProcessInfo({ dir, exclude });
|
|
37
|
+
await pi.load();
|
|
38
|
+
return pi;
|
|
39
|
+
}
|
|
40
|
+
static loadSync({ dir = (0, path_1.resolve)(process.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, }) {
|
|
41
|
+
const pi = new ProcessInfo({ dir, exclude });
|
|
42
|
+
pi.loadSync();
|
|
43
|
+
return pi;
|
|
44
|
+
}
|
|
45
|
+
constructor({ dir = (0, path_1.resolve)(process.cwd(), '.tap/processinfo'), exclude = /(^|\\|\/)node_modules(\\|\/|$)/, } = {}) {
|
|
46
|
+
this.dir = dir;
|
|
47
|
+
this.exclude = exclude;
|
|
48
|
+
}
|
|
49
|
+
clear() {
|
|
50
|
+
this.roots.clear();
|
|
51
|
+
this.files.clear();
|
|
52
|
+
this.uuids.clear();
|
|
53
|
+
this.externalIDs.clear();
|
|
54
|
+
}
|
|
55
|
+
async save() {
|
|
56
|
+
await (0, promises_1.mkdir)(this.dir, { recursive: true });
|
|
57
|
+
const writes = [];
|
|
58
|
+
for (const [uuid, info] of this.uuids.entries()) {
|
|
59
|
+
const f = `${this.dir}/${uuid}.json`;
|
|
60
|
+
writes.push((0, promises_1.writeFile)(f, JSON.stringify(info) + '\n', 'utf8'));
|
|
61
|
+
}
|
|
62
|
+
await Promise.all(writes);
|
|
63
|
+
}
|
|
64
|
+
async saveSync() {
|
|
65
|
+
(0, fs_1.mkdirSync)(this.dir, { recursive: true });
|
|
66
|
+
for (const [uuid, info] of this.uuids.entries()) {
|
|
67
|
+
const f = `${this.dir}/${uuid}.json`;
|
|
68
|
+
(0, fs_1.writeFileSync)(f, JSON.stringify(info) + '\n', 'utf8');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async erase() {
|
|
72
|
+
this.clear();
|
|
73
|
+
await (0, promises_1.rm)(this.dir, { recursive: true });
|
|
74
|
+
}
|
|
75
|
+
eraseSync() {
|
|
76
|
+
this.clear();
|
|
77
|
+
(0, fs_1.rmSync)(this.dir, { recursive: true });
|
|
78
|
+
}
|
|
79
|
+
async load() {
|
|
80
|
+
const promises = [];
|
|
81
|
+
for (const entry of await (0, promises_1.readdir)(this.dir).catch(() => [])) {
|
|
82
|
+
const uuid = (0, path_1.basename)(entry, '.json');
|
|
83
|
+
if (this.uuids.has(uuid)) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const f = (0, path_1.resolve)(this.dir, entry);
|
|
87
|
+
promises.push((0, json_file_js_1.safeJSON)(f).then(data => {
|
|
88
|
+
if (!data.uuid || data.uuid !== uuid) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
new process_info_node_js_1.ProcessInfoNode(data).link(this);
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
await Promise.all(promises);
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
loadSync() {
|
|
98
|
+
let entries;
|
|
99
|
+
try {
|
|
100
|
+
entries = (0, fs_1.readdirSync)(this.dir);
|
|
101
|
+
}
|
|
102
|
+
catch (_) {
|
|
103
|
+
entries = [];
|
|
104
|
+
}
|
|
105
|
+
for (const entry of entries) {
|
|
106
|
+
const uuid = (0, path_1.basename)(entry, '.json');
|
|
107
|
+
if (this.uuids.has(uuid)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const f = (0, path_1.resolve)(this.dir, entry);
|
|
111
|
+
const data = (0, json_file_js_1.safeJSONSync)(f);
|
|
112
|
+
if (!data.uuid || data.uuid !== uuid) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
new process_info_node_js_1.ProcessInfoNode(data).link(this);
|
|
116
|
+
}
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
static get Node() {
|
|
120
|
+
return process_info_node_js_1.ProcessInfoNode;
|
|
121
|
+
}
|
|
122
|
+
static get ProcessInfo() {
|
|
123
|
+
return ProcessInfo;
|
|
124
|
+
}
|
|
125
|
+
static get spawn() {
|
|
126
|
+
return child_process_js_1.spawn;
|
|
127
|
+
}
|
|
128
|
+
static get spawnSync() {
|
|
129
|
+
return child_process_js_1.spawnSync;
|
|
130
|
+
}
|
|
131
|
+
static get exec() {
|
|
132
|
+
return child_process_js_1.exec;
|
|
133
|
+
}
|
|
134
|
+
static get execSync() {
|
|
135
|
+
return child_process_js_1.execSync;
|
|
136
|
+
}
|
|
137
|
+
static get execFile() {
|
|
138
|
+
return child_process_js_1.execFile;
|
|
139
|
+
}
|
|
140
|
+
static get execFileSync() {
|
|
141
|
+
return child_process_js_1.execFileSync;
|
|
142
|
+
}
|
|
143
|
+
static get fork() {
|
|
144
|
+
return child_process_js_1.fork;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.ProcessInfo = ProcessInfo;
|
|
148
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 * 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\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(process.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(process.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(process.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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-file.d.ts","sourceRoot":"","sources":["../../lib/json-file.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,MAAO,MAAM,QAMrC,CAAA;AAED,eAAO,MAAM,QAAQ,MAAO,MAAM,iBAGZ,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// read the file and json decode it, if anything fails, return {}
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.safeJSON = exports.safeJSONSync = void 0;
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const promises_1 = require("fs/promises");
|
|
7
|
+
const safeJSONSync = (f) => {
|
|
8
|
+
try {
|
|
9
|
+
return JSON.parse((0, fs_1.readFileSync)(f, 'utf8'));
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.safeJSONSync = safeJSONSync;
|
|
16
|
+
const safeJSON = (f) => (0, promises_1.readFile)(f, 'utf8')
|
|
17
|
+
.then(d => JSON.parse(d))
|
|
18
|
+
.catch(() => ({}));
|
|
19
|
+
exports.safeJSON = safeJSON;
|
|
20
|
+
//# sourceMappingURL=json-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-file.js","sourceRoot":"","sources":["../../lib/json-file.ts"],"names":[],"mappings":";AAAA,iEAAiE;;;AAEjE,2BAAiC;AACjC,0CAAsC;AAE/B,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE;IACxC,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;KAC3C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAA;KACV;AACH,CAAC,CAAA;AANY,QAAA,YAAY,gBAMxB;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CACpC,IAAA,mBAAQ,EAAC,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;AAHT,QAAA,QAAQ,YAGC","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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-paths.d.ts","sourceRoot":"","sources":["../../lib/loader-paths.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS,QAA2B,CAAA;AAEjD,eAAO,MAAM,SAAS,QAAuC,CAAA;AAQ7D,eAAO,MAAM,QAAQ,MAAO,MAAM,KAAG,OASpC,CAAA;AAED,eAAO,MAAM,QAAQ,MAAO,MAAM,KAAG,OASpC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.esmMatch = exports.cjsMatch = exports.esmLoader = exports.cjsLoader = void 0;
|
|
4
|
+
const require_resolve_js_1 = require("./require-resolve.js");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const url_1 = require("url");
|
|
7
|
+
exports.cjsLoader = (0, require_resolve_js_1.resolve)('../cjs/cjs.js');
|
|
8
|
+
const esmLoaderPath = (0, require_resolve_js_1.resolve)('../mjs/esm.mjs');
|
|
9
|
+
exports.esmLoader = String((0, url_1.pathToFileURL)(esmLoaderPath));
|
|
10
|
+
const res = (p) => /^\.?\.[\\/]/.test(p) ? (0, require_resolve_js_1.resolve)((0, path_1.resolve)(p)) : (0, require_resolve_js_1.resolve)(p);
|
|
11
|
+
// functions to test if a given path is the loader path
|
|
12
|
+
// we care about.
|
|
13
|
+
const cjsMatch = (p) => {
|
|
14
|
+
try {
|
|
15
|
+
return (p === '@tapjs/processinfo/cjs' ||
|
|
16
|
+
res(p) === exports.cjsLoader);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports.cjsMatch = cjsMatch;
|
|
23
|
+
const esmMatch = (p) => {
|
|
24
|
+
const d = p.startsWith('file://')
|
|
25
|
+
? (0, url_1.fileURLToPath)(p)
|
|
26
|
+
: decodeURIComponent(p);
|
|
27
|
+
try {
|
|
28
|
+
return d === '@tapjs/processinfo' || res(d) === esmLoaderPath;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.esmMatch = esmMatch;
|
|
35
|
+
//# sourceMappingURL=loader-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-paths.js","sourceRoot":"","sources":["../../lib/loader-paths.ts"],"names":[],"mappings":";;;AAAA,6DAA8C;AAC9C,+BAA6C;AAE7C,6BAAkD;AAErC,QAAA,SAAS,GAAG,IAAA,4BAAO,EAAC,eAAe,CAAC,CAAA;AACjD,MAAM,aAAa,GAAG,IAAA,4BAAO,EAAC,gBAAgB,CAAC,CAAA;AAClC,QAAA,SAAS,GAAG,MAAM,CAAC,IAAA,mBAAa,EAAC,aAAa,CAAC,CAAC,CAAA;AAE7D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CACxB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAO,EAAC,IAAA,cAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAO,EAAC,CAAC,CAAC,CAAA;AAG9D,uDAAuD;AACvD,iBAAiB;AACV,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAW,EAAE;IAC7C,IAAI;QACF,OAAO,CACL,CAAC,KAAK,wBAAwB;YAC9B,GAAG,CAAC,CAAC,CAAC,KAAK,iBAAS,CACrB,CAAA;KACF;IAAC,MAAM;QACN,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AATY,QAAA,QAAQ,YASpB;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAW,EAAE;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,CAAC,CAAC,IAAA,mBAAa,EAAC,CAAC,CAAC;QAClB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI;QACF,OAAO,CAAC,KAAK,oBAAoB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAA;KAC9D;IAAC,MAAM;QACN,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AATY,QAAA,QAAQ,YASpB","sourcesContent":["import { resolve } from './require-resolve.js'\nimport { resolve as pathResolve } from 'path'\n\nimport { fileURLToPath, pathToFileURL } from 'url'\n\nexport const cjsLoader = resolve('../cjs/cjs.js')\nconst esmLoaderPath = resolve('../mjs/esm.mjs')\nexport const esmLoader = String(pathToFileURL(esmLoaderPath))\n\nconst res = (p: string) =>\n /^\\.?\\.[\\\\/]/.test(p) ? resolve(pathResolve(p)) : resolve(p)\n\n\n// functions to test if a given path is the loader path\n// we care about.\nexport const cjsMatch = (p: string): boolean => {\n try {\n return (\n p === '@tapjs/processinfo/cjs' ||\n res(p) === cjsLoader\n )\n } catch {\n return false\n }\n}\n\nexport const esmMatch = (p: string): boolean => {\n const d = p.startsWith('file://')\n ? fileURLToPath(p)\n : decodeURIComponent(p)\n try {\n return d === '@tapjs/processinfo' || res(d) === esmLoaderPath\n } catch {\n return false\n }\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
export declare const nodeOptionsEnv: (env: NodeJS.ProcessEnv, args: ReadonlyArray<string>) => string;
|
|
6
|
+
//# sourceMappingURL=node-options-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-options-env.d.ts","sourceRoot":"","sources":["../../lib/node-options-env.ts"],"names":[],"mappings":";;;;AAoEA,eAAO,MAAM,cAAc,QACpB,OAAO,UAAU,QAChB,cAAc,MAAM,CAAC,WAM5B,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nodeOptionsEnv = void 0;
|
|
4
|
+
const argv_to_node_options_js_1 = require("./argv-to-node-options.js");
|
|
5
|
+
const loader_paths_js_1 = require("./loader-paths.js");
|
|
6
|
+
const node_options_to_argv_js_1 = require("./node-options-to-argv.js");
|
|
7
|
+
// Check if our esm and/or cjs loaders are in the list,
|
|
8
|
+
// and only add them if not.
|
|
9
|
+
const hasCJSLoader = (args) => hasLoader(args, ['-r', '--require'], loader_paths_js_1.cjsMatch);
|
|
10
|
+
const hasESMLoader = (args) => hasLoader(args, ['--experimental-loader', '--loader'], loader_paths_js_1.esmMatch);
|
|
11
|
+
const addCJS = (args) => !hasCJSLoader(args) ? args.concat('--require=' + loader_paths_js_1.cjsLoader) : args;
|
|
12
|
+
const addESM = (args) => !hasESMLoader(args) ? args.concat('--loader=' + loader_paths_js_1.esmLoader) : args;
|
|
13
|
+
const cjsOnly = (args) => hasESMLoader(args) ? false : hasCJSLoader(args);
|
|
14
|
+
const hasLoader = (args, keys, test) => {
|
|
15
|
+
for (let i = 0; i < args.length; i++) {
|
|
16
|
+
const arg = args[i];
|
|
17
|
+
// -r <value>
|
|
18
|
+
// --loader <value>
|
|
19
|
+
if (keys.includes(arg) && i < args.length - 1) {
|
|
20
|
+
if (test(args[i + 1])) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else if (arg.startsWith('--') && arg.includes('=')) {
|
|
28
|
+
// --require=<value>
|
|
29
|
+
// --loader=<value>
|
|
30
|
+
const [k, ...rest] = arg.split('=');
|
|
31
|
+
if (keys.includes(k) && test(rest.join('='))) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (!arg.startsWith('--') &&
|
|
39
|
+
arg.startsWith('-') &&
|
|
40
|
+
arg.length > 2 &&
|
|
41
|
+
keys.includes(arg.substring(0, 2))) {
|
|
42
|
+
// -r<value>
|
|
43
|
+
if (test(arg.substring(2))) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
};
|
|
53
|
+
const nodeOptionsEnv = (env, args) => {
|
|
54
|
+
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)) ? addCJS(no) : addESM(no));
|
|
56
|
+
};
|
|
57
|
+
exports.nodeOptionsEnv = nodeOptionsEnv;
|
|
58
|
+
//# sourceMappingURL=node-options-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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\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)) ? addCJS(no) : addESM(no)\n )\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-options-to-argv.d.ts","sourceRoot":"","sources":["../../lib/node-options-to-argv.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,OAAQ,MAAM,GAAG,SAAS,KAAG,MAAM,EAmDhE,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nodeOptionsToArgv = void 0;
|
|
4
|
+
const nodeOptionsToArgv = (no) => {
|
|
5
|
+
if (!no)
|
|
6
|
+
return [];
|
|
7
|
+
const argv = [];
|
|
8
|
+
let escaping = false;
|
|
9
|
+
let inquote = false;
|
|
10
|
+
let tokStart = 0;
|
|
11
|
+
let tok = '';
|
|
12
|
+
for (let i = 0; i < no.length; i++) {
|
|
13
|
+
const c = no.charAt(i);
|
|
14
|
+
switch (c) {
|
|
15
|
+
case '"':
|
|
16
|
+
if (escaping) {
|
|
17
|
+
tok += no.slice(tokStart, i - 1) + '"';
|
|
18
|
+
tokStart = i + 1;
|
|
19
|
+
escaping = false;
|
|
20
|
+
}
|
|
21
|
+
else if (inquote) {
|
|
22
|
+
tok += no.slice(tokStart, i);
|
|
23
|
+
tokStart = i + 1;
|
|
24
|
+
inquote = false;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
inquote = true;
|
|
28
|
+
tok += no.slice(tokStart, i);
|
|
29
|
+
tokStart = i + 1;
|
|
30
|
+
}
|
|
31
|
+
continue;
|
|
32
|
+
case '\\':
|
|
33
|
+
if (inquote) {
|
|
34
|
+
escaping = true;
|
|
35
|
+
}
|
|
36
|
+
continue;
|
|
37
|
+
case ' ':
|
|
38
|
+
if (inquote)
|
|
39
|
+
continue;
|
|
40
|
+
tok += no.slice(tokStart, i);
|
|
41
|
+
tokStart = i + 1;
|
|
42
|
+
argv.push(tok);
|
|
43
|
+
tok = '';
|
|
44
|
+
continue;
|
|
45
|
+
default:
|
|
46
|
+
escaping = false;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (inquote) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
tok += no.slice(tokStart);
|
|
54
|
+
argv.push(tok);
|
|
55
|
+
return argv;
|
|
56
|
+
};
|
|
57
|
+
exports.nodeOptionsToArgv = nodeOptionsToArgv;
|
|
58
|
+
//# sourceMappingURL=node-options-to-argv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-options-to-argv.js","sourceRoot":"","sources":["../../lib/node-options-to-argv.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAAC,EAAsB,EAAY,EAAE;IACpE,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAA;IAClB,MAAM,IAAI,GAAG,EAAE,CAAA;IACf,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,QAAQ,CAAC,EAAE;YACT,KAAK,GAAG;gBACN,IAAI,QAAQ,EAAE;oBACZ,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;oBACtC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;oBAChB,QAAQ,GAAG,KAAK,CAAA;iBACjB;qBAAM,IAAI,OAAO,EAAE;oBAClB,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBAC5B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;oBAChB,OAAO,GAAG,KAAK,CAAA;iBAChB;qBAAM;oBACL,OAAO,GAAG,IAAI,CAAA;oBACd,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBAC5B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;iBACjB;gBACD,SAAQ;YAEV,KAAK,IAAI;gBACP,IAAI,OAAO,EAAE;oBACX,QAAQ,GAAG,IAAI,CAAA;iBAChB;gBACD,SAAQ;YAEV,KAAK,GAAG;gBACN,IAAI,OAAO;oBAAE,SAAQ;gBACrB,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC5B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;gBAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACd,GAAG,GAAG,EAAE,CAAA;gBACR,SAAQ;YAEV;gBACE,QAAQ,GAAG,KAAK,CAAA;gBAChB,SAAQ;SACX;KACF;IACD,IAAI,OAAO,EAAE;QACX,OAAO,EAAE,CAAA;KACV;IACD,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAnDY,QAAA,iBAAiB,qBAmD7B","sourcesContent":["export const nodeOptionsToArgv = (no: string | undefined): string[] => {\n if (!no) return []\n const argv = []\n let escaping = false\n let inquote = false\n let tokStart = 0\n let tok = ''\n for (let i = 0; i < no.length; i++) {\n const c = no.charAt(i)\n switch (c) {\n case '\"':\n if (escaping) {\n tok += no.slice(tokStart, i - 1) + '\"'\n tokStart = i + 1\n escaping = false\n } else if (inquote) {\n tok += no.slice(tokStart, i)\n tokStart = i + 1\n inquote = false\n } else {\n inquote = true\n tok += no.slice(tokStart, i)\n tokStart = i + 1\n }\n continue\n\n case '\\\\':\n if (inquote) {\n escaping = true\n }\n continue\n\n case ' ':\n if (inquote) continue\n tok += no.slice(tokStart, i)\n tokStart = i + 1\n argv.push(tok)\n tok = ''\n continue\n\n default:\n escaping = false\n continue\n }\n }\n if (inquote) {\n return []\n }\n tok += no.slice(tokStart)\n argv.push(tok)\n return argv\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ProcessInfo } from './index.js';
|
|
2
|
+
import type { ProcessInfoNodeData } from './get-process-info.js';
|
|
3
|
+
export declare class ProcessInfoNode {
|
|
4
|
+
#private;
|
|
5
|
+
date: string;
|
|
6
|
+
argv: string[];
|
|
7
|
+
execArgv: string[];
|
|
8
|
+
NODE_OPTIONS?: string;
|
|
9
|
+
cwd: string;
|
|
10
|
+
pid: number;
|
|
11
|
+
ppid: number;
|
|
12
|
+
uuid: string;
|
|
13
|
+
files: string[];
|
|
14
|
+
parent?: ProcessInfoNode | null;
|
|
15
|
+
root?: ProcessInfoNode | null;
|
|
16
|
+
children?: Set<ProcessInfoNode> | null;
|
|
17
|
+
externalID: string | null;
|
|
18
|
+
constructor(data: ProcessInfoNodeData);
|
|
19
|
+
toJSON(): {
|
|
20
|
+
[k: string]: any;
|
|
21
|
+
};
|
|
22
|
+
link(db: ProcessInfo): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=process-info-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-info-node.d.ts","sourceRoot":"","sources":["../../lib/process-info-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,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,KAAK,EAAE,MAAM,EAAE,CAAK;IACpB,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,UAAU,EAAE,MAAM,GAAG,IAAI,CAAO;gBAIpB,IAAI,EAAE,mBAAmB;IAKrC,MAAM;;;IAcN,IAAI,CAAC,EAAE,EAAE,WAAW;CAiErB"}
|