codex-multi-auth 0.1.3 → 0.1.5

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.
Files changed (86) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -10
  3. package/assets/readme-hero.svg +31 -31
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +51 -13
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/auth/auth.d.ts +6 -2
  8. package/dist/lib/auth/auth.d.ts.map +1 -1
  9. package/dist/lib/auth/auth.js +34 -11
  10. package/dist/lib/auth/auth.js.map +1 -1
  11. package/dist/lib/auth/server.d.ts +1 -1
  12. package/dist/lib/auth/server.js +3 -3
  13. package/dist/lib/codex-cli/state.d.ts +9 -0
  14. package/dist/lib/codex-cli/state.d.ts.map +1 -1
  15. package/dist/lib/codex-cli/state.js +14 -0
  16. package/dist/lib/codex-cli/state.js.map +1 -1
  17. package/dist/lib/codex-cli/writer.d.ts.map +1 -1
  18. package/dist/lib/codex-cli/writer.js +106 -14
  19. package/dist/lib/codex-cli/writer.js.map +1 -1
  20. package/dist/lib/codex-manager/settings-hub.d.ts +16 -1
  21. package/dist/lib/codex-manager/settings-hub.d.ts.map +1 -1
  22. package/dist/lib/codex-manager/settings-hub.js +28 -2
  23. package/dist/lib/codex-manager/settings-hub.js.map +1 -1
  24. package/dist/lib/codex-manager.d.ts +1 -0
  25. package/dist/lib/codex-manager.d.ts.map +1 -1
  26. package/dist/lib/codex-manager.js +319 -16
  27. package/dist/lib/codex-manager.js.map +1 -1
  28. package/dist/lib/context-overflow.js +10 -10
  29. package/dist/lib/oauth-success.html +192 -260
  30. package/dist/lib/parallel-probe.d.ts +7 -0
  31. package/dist/lib/parallel-probe.d.ts.map +1 -1
  32. package/dist/lib/parallel-probe.js +37 -9
  33. package/dist/lib/parallel-probe.js.map +1 -1
  34. package/dist/lib/prompts/codex.js +2 -2
  35. package/dist/lib/refresh-queue.d.ts +4 -5
  36. package/dist/lib/refresh-queue.d.ts.map +1 -1
  37. package/dist/lib/refresh-queue.js +99 -21
  38. package/dist/lib/refresh-queue.js.map +1 -1
  39. package/dist/lib/request/fetch-helpers.d.ts +12 -4
  40. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  41. package/dist/lib/request/fetch-helpers.js +53 -25
  42. package/dist/lib/request/fetch-helpers.js.map +1 -1
  43. package/dist/lib/request/helpers/tool-utils.d.ts.map +1 -1
  44. package/dist/lib/request/helpers/tool-utils.js +36 -6
  45. package/dist/lib/request/helpers/tool-utils.js.map +1 -1
  46. package/dist/lib/request/rate-limit-backoff.d.ts +7 -0
  47. package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -1
  48. package/dist/lib/request/rate-limit-backoff.js +24 -4
  49. package/dist/lib/request/rate-limit-backoff.js.map +1 -1
  50. package/dist/lib/request/request-transformer.d.ts +10 -0
  51. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  52. package/dist/lib/request/request-transformer.js +61 -37
  53. package/dist/lib/request/request-transformer.js.map +1 -1
  54. package/dist/lib/rotation.d.ts +19 -0
  55. package/dist/lib/rotation.d.ts.map +1 -1
  56. package/dist/lib/rotation.js +60 -39
  57. package/dist/lib/rotation.js.map +1 -1
  58. package/dist/lib/ui/copy.d.ts +1 -1
  59. package/dist/lib/ui/copy.js +1 -1
  60. package/dist/lib/utils.d.ts +6 -0
  61. package/dist/lib/utils.d.ts.map +1 -1
  62. package/dist/lib/utils.js +11 -0
  63. package/dist/lib/utils.js.map +1 -1
  64. package/node_modules/@codex-ai/plugin/dist/index.d.ts +1 -1
  65. package/node_modules/@codex-ai/plugin/dist/tool.d.ts +41 -41
  66. package/node_modules/@codex-ai/plugin/dist/tool.js +28 -28
  67. package/package.json +9 -5
  68. package/scripts/audit-dev-allowlist.js +186 -94
  69. package/scripts/bench-format/hashline-v2.mjs +642 -642
  70. package/scripts/bench-format/render.mjs +496 -496
  71. package/scripts/bench-format/stats.mjs +54 -54
  72. package/scripts/bench-format/tasks.mjs +151 -151
  73. package/scripts/benchmark-render-dashboard.mjs +49 -49
  74. package/scripts/benchmark-runtime-path.mjs +166 -0
  75. package/scripts/codex-multi-auth.js +1 -1
  76. package/scripts/codex.js +86 -26
  77. package/scripts/copy-oauth-success.js +42 -3
  78. package/scripts/install-codex-auth-utils.js +69 -0
  79. package/scripts/install-codex-auth.js +23 -14
  80. package/scripts/test-all-models.sh +7 -7
  81. package/scripts/test-model-matrix.js +108 -80
  82. package/scripts/validate-model-map.sh +7 -7
  83. package/vendor/codex-ai-plugin/dist/index.d.ts +1 -1
  84. package/vendor/codex-ai-plugin/dist/tool.d.ts +41 -41
  85. package/vendor/codex-ai-plugin/dist/tool.js +28 -28
  86. package/vendor/codex-ai-sdk/dist/index.d.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../lib/rotation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../lib/rotation.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export declare const UI_COPY: {
41
41
  readonly pastePrompt: "Paste callback URL or code here (Q to cancel):";
42
42
  readonly browserOpened: "Browser opened.";
43
43
  readonly browserOpenFail: "Could not open browser. Use this link:";
44
- readonly waitingCallback: "Waiting for login callback on 127.0.0.1:1455...";
44
+ readonly waitingCallback: "Waiting for login callback on localhost:1455...";
45
45
  readonly callbackMissed: "No callback received. Paste manually.";
46
46
  readonly cancelled: "Sign-in cancelled.";
47
47
  readonly cancelledBackToMenu: "Sign-in cancelled. Going back to menu.";
@@ -41,7 +41,7 @@ export const UI_COPY = {
41
41
  pastePrompt: "Paste callback URL or code here (Q to cancel):",
42
42
  browserOpened: "Browser opened.",
43
43
  browserOpenFail: "Could not open browser. Use this link:",
44
- waitingCallback: "Waiting for login callback on 127.0.0.1:1455...",
44
+ waitingCallback: "Waiting for login callback on localhost:1455...",
45
45
  callbackMissed: "No callback received. Paste manually.",
46
46
  cancelled: "Sign-in cancelled.",
47
47
  cancelledBackToMenu: "Sign-in cancelled. Going back to menu.",
@@ -8,6 +8,12 @@
8
8
  * @returns True if value is a plain object
9
9
  */
10
10
  export declare function isRecord(value: unknown): value is Record<string, unknown>;
11
+ /**
12
+ * Detects AbortError-compatible failures from fetch/abort-controller flows.
13
+ * @param error - Unknown thrown value
14
+ * @returns True when the error should be treated as an abort signal
15
+ */
16
+ export declare function isAbortError(error: unknown): boolean;
11
17
  /**
12
18
  * Returns the current timestamp in milliseconds.
13
19
  * Wrapper for Date.now() to enable testing with mocked time.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAkBpD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIpD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAkBpD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
package/dist/lib/utils.js CHANGED
@@ -10,6 +10,17 @@
10
10
  export function isRecord(value) {
11
11
  return typeof value === "object" && value !== null && !Array.isArray(value);
12
12
  }
13
+ /**
14
+ * Detects AbortError-compatible failures from fetch/abort-controller flows.
15
+ * @param error - Unknown thrown value
16
+ * @returns True when the error should be treated as an abort signal
17
+ */
18
+ export function isAbortError(error) {
19
+ if (!(error instanceof Error))
20
+ return false;
21
+ const maybe = error;
22
+ return maybe.name === "AbortError" || maybe.code === "ABORT_ERR";
23
+ }
13
24
  /**
14
25
  * Returns the current timestamp in milliseconds.
15
26
  * Wrapper for Date.now() to enable testing with mocked time.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK;IACpB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAkC,CAAC;IACjD,OAAO,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK;IACpB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,2 +1,2 @@
1
- export type PluginInput = any;
1
+ export type PluginInput = any;
2
2
  export type Plugin = any;
@@ -1,42 +1,42 @@
1
- export interface ToolContext {
2
- [key: string]: any;
3
- directory: string;
4
- worktree: string;
5
- ask: (request: any) => Promise<any> | any;
6
- }
7
-
8
- export interface ToolDefinition<TArgs = any, TResult = any> {
9
- description?: string;
10
- args?: Record<string, any>;
11
- parameters?: unknown;
12
- execute: (args: TArgs, context: ToolContext) => Promise<TResult> | TResult;
13
- [key: string]: any;
14
- }
15
-
16
- export interface SchemaNode {
17
- optional: () => SchemaNode;
18
- describe: (_text: string) => SchemaNode;
19
- min: (_value: number) => SchemaNode;
20
- max: (_value: number) => SchemaNode;
21
- default: (_value: unknown) => SchemaNode;
22
- int: () => SchemaNode;
23
- array: (_node?: unknown) => SchemaNode;
24
- [key: string]: any;
25
- }
26
-
27
- export interface ToolFactory {
28
- <TArgs = any, TResult = any>(definition: ToolDefinition<TArgs, TResult>): ToolDefinition<TArgs, TResult>;
29
- schema: {
30
- string: () => SchemaNode;
31
- number: () => SchemaNode;
32
- boolean: () => SchemaNode;
33
- object: (shape: Record<string, unknown>) => SchemaNode;
34
- enum: (values: readonly unknown[]) => SchemaNode;
35
- literal: (value: unknown) => SchemaNode;
36
- array: (node: unknown) => SchemaNode;
37
- any: () => SchemaNode;
38
- unknown: () => SchemaNode;
39
- };
40
- }
41
-
1
+ export interface ToolContext {
2
+ [key: string]: any;
3
+ directory: string;
4
+ worktree: string;
5
+ ask: (request: any) => Promise<any> | any;
6
+ }
7
+
8
+ export interface ToolDefinition<TArgs = any, TResult = any> {
9
+ description?: string;
10
+ args?: Record<string, any>;
11
+ parameters?: unknown;
12
+ execute: (args: TArgs, context: ToolContext) => Promise<TResult> | TResult;
13
+ [key: string]: any;
14
+ }
15
+
16
+ export interface SchemaNode {
17
+ optional: () => SchemaNode;
18
+ describe: (_text: string) => SchemaNode;
19
+ min: (_value: number) => SchemaNode;
20
+ max: (_value: number) => SchemaNode;
21
+ default: (_value: unknown) => SchemaNode;
22
+ int: () => SchemaNode;
23
+ array: (_node?: unknown) => SchemaNode;
24
+ [key: string]: any;
25
+ }
26
+
27
+ export interface ToolFactory {
28
+ <TArgs = any, TResult = any>(definition: ToolDefinition<TArgs, TResult>): ToolDefinition<TArgs, TResult>;
29
+ schema: {
30
+ string: () => SchemaNode;
31
+ number: () => SchemaNode;
32
+ boolean: () => SchemaNode;
33
+ object: (shape: Record<string, unknown>) => SchemaNode;
34
+ enum: (values: readonly unknown[]) => SchemaNode;
35
+ literal: (value: unknown) => SchemaNode;
36
+ array: (node: unknown) => SchemaNode;
37
+ any: () => SchemaNode;
38
+ unknown: () => SchemaNode;
39
+ };
40
+ }
41
+
42
42
  export declare const tool: ToolFactory;
@@ -1,29 +1,29 @@
1
- const chain = {
2
- optional() { return this; },
3
- describe() { return this; },
4
- min() { return this; },
5
- max() { return this; },
6
- default() { return this; },
7
- int() { return this; },
8
- array() { return this; },
9
- };
10
-
11
- function node() {
12
- return Object.create(chain);
13
- }
14
-
15
- export function tool(definition) {
16
- return definition;
17
- }
18
-
19
- tool.schema = {
20
- string: () => node(),
21
- number: () => node(),
22
- boolean: () => node(),
23
- object: () => node(),
24
- enum: () => node(),
25
- literal: () => node(),
26
- array: () => node(),
27
- any: () => node(),
28
- unknown: () => node(),
1
+ const chain = {
2
+ optional() { return this; },
3
+ describe() { return this; },
4
+ min() { return this; },
5
+ max() { return this; },
6
+ default() { return this; },
7
+ int() { return this; },
8
+ array() { return this; },
9
+ };
10
+
11
+ function node() {
12
+ return Object.create(chain);
13
+ }
14
+
15
+ export function tool(definition) {
16
+ return definition;
17
+ }
18
+
19
+ tool.schema = {
20
+ string: () => node(),
21
+ number: () => node(),
22
+ boolean: () => node(),
23
+ object: () => node(),
24
+ enum: () => node(),
25
+ literal: () => node(),
26
+ array: () => node(),
27
+ any: () => node(),
28
+ unknown: () => node(),
29
29
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-multi-auth",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "OpenAI Codex CLI multi-account OAuth manager with resilient routing and quota-aware diagnostics",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -57,8 +57,10 @@
57
57
  "bench:edit-formats": "node scripts/benchmark-edit-formats.mjs --preset=codex-core",
58
58
  "bench:edit-formats:smoke": "node scripts/benchmark-edit-formats.mjs --smoke --preset=codex-core",
59
59
  "bench:edit-formats:render": "node scripts/benchmark-render-dashboard.mjs",
60
+ "bench:runtime-path": "npm run build && node scripts/benchmark-runtime-path.mjs",
61
+ "bench:runtime-path:quick": "node scripts/benchmark-runtime-path.mjs",
60
62
  "test:coverage": "vitest run --coverage",
61
- "coverage": "vitest run --coverage",
63
+ "coverage": "npm run build && vitest run --coverage",
62
64
  "audit:prod": "npm audit --omit=dev --audit-level=high",
63
65
  "audit:all": "npm audit --audit-level=high",
64
66
  "audit:dev:allowlist": "node scripts/audit-dev-allowlist.js",
@@ -116,14 +118,16 @@
116
118
  "dependencies": {
117
119
  "@openauthjs/openauth": "^0.4.3",
118
120
  "@codex-ai/plugin": "file:vendor/codex-ai-plugin",
119
- "hono": "^4.12.0",
121
+ "hono": "4.12.3",
120
122
  "zod": "^4.3.6"
121
123
  },
122
124
  "overrides": {
123
- "hono": "^4.12.0",
125
+ "hono": "4.12.3",
126
+ "minimatch": "10.2.4",
127
+ "rollup": "4.59.0",
124
128
  "vite": "^7.3.1",
125
129
  "@typescript-eslint/typescript-estree": {
126
- "minimatch": "^9.0.5"
130
+ "minimatch": "9.0.9"
127
131
  }
128
132
  }
129
133
  }
@@ -1,20 +1,12 @@
1
- #!/usr/bin/env node
2
-
3
1
  import { spawnSync } from "node:child_process";
2
+ import { pathToFileURL } from "node:url";
4
3
 
5
- const ALLOWED_HIGH_OR_CRITICAL_PACKAGES = new Set([
6
- "eslint",
7
- "ajv",
8
- "@eslint-community/eslint-utils",
9
- "@typescript-eslint/eslint-plugin",
10
- "@typescript-eslint/parser",
11
- "@typescript-eslint/type-utils",
12
- "@typescript-eslint/typescript-estree",
13
- "@typescript-eslint/utils",
14
- "minimatch",
4
+ const ALLOWED_HIGH_OR_CRITICAL_ADVISORIES = new Map([
5
+ // Example:
6
+ // ["1113465", { package: "minimatch", expiresOn: "2026-06-30" }],
15
7
  ]);
16
8
 
17
- function summarizeVia(via) {
9
+ export function summarizeVia(via) {
18
10
  if (!Array.isArray(via)) return [];
19
11
  return via
20
12
  .map((item) => {
@@ -27,102 +19,202 @@ function summarizeVia(via) {
27
19
  .slice(0, 5);
28
20
  }
29
21
 
30
- const isWindows = process.platform === "win32";
31
- const command = isWindows ? process.env.ComSpec || "cmd.exe" : "npm";
32
- const commandArgs = isWindows
33
- ? ["/d", "/s", "/c", "npm audit --json"]
34
- : ["audit", "--json"];
35
- const audit = spawnSync(command, commandArgs, {
36
- encoding: "utf8",
37
- stdio: ["ignore", "pipe", "pipe"],
38
- env: {
39
- ...process.env,
40
- // npm run -s can suppress child npm JSON output; force a readable level.
41
- npm_config_loglevel:
42
- process.env.npm_config_loglevel === "silent"
43
- ? "notice"
44
- : process.env.npm_config_loglevel || "notice",
45
- },
46
- });
47
-
48
- const stdout = (audit.stdout ?? "").trim();
49
- const stderr = (audit.stderr ?? "").trim();
50
- const combined = [stdout, stderr].filter(Boolean).join("\n");
51
-
52
- if (!combined) {
53
- if ((audit.status ?? 1) === 0) {
54
- console.log("No vulnerabilities found in npm audit output.");
55
- process.exit(0);
22
+ export function extractAdvisoryIds(via) {
23
+ if (!Array.isArray(via)) return [];
24
+ const advisoryIds = [];
25
+ for (const item of via) {
26
+ if (!item || typeof item !== "object") {
27
+ continue;
28
+ }
29
+ const source = "source" in item ? item.source : undefined;
30
+ if (typeof source === "number" || typeof source === "string") {
31
+ advisoryIds.push(String(source));
32
+ }
33
+ }
34
+ return advisoryIds;
35
+ }
36
+
37
+ export function isAdvisoryAllowed(packageName, advisoryId, now = Date.now()) {
38
+ const rule = ALLOWED_HIGH_OR_CRITICAL_ADVISORIES.get(advisoryId);
39
+ if (!rule || typeof rule !== "object") {
40
+ return false;
41
+ }
42
+ if (typeof rule.package === "string" && rule.package !== packageName) {
43
+ return false;
44
+ }
45
+ if (typeof rule.expiresOn === "string") {
46
+ const expiresAt = Date.parse(rule.expiresOn);
47
+ if (!Number.isFinite(expiresAt) || now > expiresAt) {
48
+ return false;
49
+ }
50
+ }
51
+ return true;
52
+ }
53
+
54
+ export function getAuditCommand(platform = process.platform, env = process.env) {
55
+ const isWindows = platform === "win32";
56
+ return {
57
+ command: isWindows ? env.ComSpec || "cmd.exe" : "npm",
58
+ commandArgs: isWindows
59
+ ? ["/d", "/s", "/c", "npm audit --json"]
60
+ : ["audit", "--json"],
61
+ };
62
+ }
63
+
64
+ function resolveVulnerabilities(auditJson) {
65
+ if (
66
+ auditJson &&
67
+ typeof auditJson === "object" &&
68
+ auditJson.vulnerabilities &&
69
+ typeof auditJson.vulnerabilities === "object"
70
+ ) {
71
+ return auditJson.vulnerabilities;
56
72
  }
57
- console.error("Failed to read npm audit output.");
58
- process.exit(1);
73
+ return {};
59
74
  }
60
75
 
61
- // npm can emit human-readable success text (no JSON) on some versions/configs.
62
- if (!combined.includes("{") && /found 0 vulnerabilities/i.test(combined)) {
63
- console.log("No vulnerabilities found in npm audit output.");
64
- process.exit(0);
76
+ export function partitionHighCriticalVulnerabilities(
77
+ vulnerabilities,
78
+ advisoryAllowed = isAdvisoryAllowed,
79
+ ) {
80
+ const unexpected = [];
81
+ const allowlisted = [];
82
+ for (const [name, details] of Object.entries(vulnerabilities)) {
83
+ if (!details || typeof details !== "object") continue;
84
+ const severity = typeof details.severity === "string" ? details.severity : "unknown";
85
+ if (severity !== "high" && severity !== "critical") continue;
86
+ const entry = {
87
+ name,
88
+ severity,
89
+ via: summarizeVia(details.via),
90
+ advisoryIds: extractAdvisoryIds(details.via),
91
+ fixAvailable: details.fixAvailable ?? false,
92
+ };
93
+ const hasAdvisories = entry.advisoryIds.length > 0;
94
+ const allAdvisoriesAllowlisted =
95
+ hasAdvisories &&
96
+ entry.advisoryIds.every((advisoryId) => advisoryAllowed(name, advisoryId));
97
+ if (allAdvisoriesAllowlisted) {
98
+ allowlisted.push(entry);
99
+ continue;
100
+ }
101
+ unexpected.push(entry);
102
+ }
103
+ return { unexpected, allowlisted };
65
104
  }
66
105
 
67
- let auditJson;
68
- try {
69
- const jsonCandidate =
70
- (stdout.startsWith("{") ? stdout : "") ||
71
- (stderr.startsWith("{") ? stderr : "") ||
72
- combined.slice(combined.indexOf("{"));
73
- auditJson = JSON.parse(jsonCandidate.replace(/^\uFEFF/, ""));
74
- } catch (error) {
75
- console.error("Failed to parse npm audit JSON output.");
76
- if (stderr) {
77
- console.error(stderr);
106
+ function parseAuditOutput(audit) {
107
+ const stdout = (audit.stdout ?? "").trim();
108
+ const stderr = (audit.stderr ?? "").trim();
109
+ const combined = [stdout, stderr].filter(Boolean).join("\n");
110
+ if (!combined) {
111
+ return {
112
+ type: "empty",
113
+ ok: (audit.status ?? 1) === 0,
114
+ stderr,
115
+ };
116
+ }
117
+ if (!combined.includes("{") && /found 0 vulnerabilities/i.test(combined)) {
118
+ return { type: "none" };
119
+ }
120
+ try {
121
+ const jsonCandidate =
122
+ (stdout.startsWith("{") ? stdout : "") ||
123
+ (stderr.startsWith("{") ? stderr : "") ||
124
+ combined.slice(combined.indexOf("{"));
125
+ return {
126
+ type: "json",
127
+ json: JSON.parse(jsonCandidate.replace(/^\uFEFF/, "")),
128
+ };
129
+ } catch (error) {
130
+ return {
131
+ type: "parse_error",
132
+ stderr,
133
+ message: error instanceof Error ? error.message : String(error),
134
+ };
78
135
  }
79
- console.error(error instanceof Error ? error.message : String(error));
80
- process.exit(1);
81
136
  }
82
137
 
83
- const vulnerabilities =
84
- auditJson && typeof auditJson === "object" && auditJson.vulnerabilities && typeof auditJson.vulnerabilities === "object"
85
- ? auditJson.vulnerabilities
86
- : {};
138
+ export function runAuditDevAllowlist(options = {}) {
139
+ const {
140
+ platform = process.platform,
141
+ env = process.env,
142
+ spawn = spawnSync,
143
+ log = console.log,
144
+ warn = console.warn,
145
+ error = console.error,
146
+ now = Date.now,
147
+ } = options;
87
148
 
88
- const unexpected = [];
89
- const allowlisted = [];
149
+ const { command, commandArgs } = getAuditCommand(platform, env);
150
+ const audit = spawn(command, commandArgs, {
151
+ encoding: "utf8",
152
+ stdio: ["ignore", "pipe", "pipe"],
153
+ env: {
154
+ ...env,
155
+ // npm run -s can suppress child npm JSON output; force a readable level.
156
+ npm_config_loglevel:
157
+ env.npm_config_loglevel === "silent"
158
+ ? "notice"
159
+ : env.npm_config_loglevel || "notice",
160
+ },
161
+ });
90
162
 
91
- for (const [name, details] of Object.entries(vulnerabilities)) {
92
- if (!details || typeof details !== "object") continue;
93
- const severity = typeof details.severity === "string" ? details.severity : "unknown";
94
- if (severity !== "high" && severity !== "critical") continue;
163
+ const parsed = parseAuditOutput(audit);
164
+ if (parsed.type === "empty") {
165
+ if (parsed.ok) {
166
+ log("No vulnerabilities found in npm audit output.");
167
+ return 0;
168
+ }
169
+ error("Failed to read npm audit output.");
170
+ return 1;
171
+ }
172
+ if (parsed.type === "none") {
173
+ log("No vulnerabilities found in npm audit output.");
174
+ return 0;
175
+ }
176
+ if (parsed.type === "parse_error") {
177
+ error("Failed to parse npm audit JSON output.");
178
+ if (parsed.stderr) {
179
+ error(parsed.stderr);
180
+ }
181
+ error(parsed.message);
182
+ return 1;
183
+ }
95
184
 
96
- const entry = {
97
- name,
98
- severity,
99
- via: summarizeVia(details.via),
100
- fixAvailable: details.fixAvailable ?? false,
101
- };
185
+ const vulnerabilities = resolveVulnerabilities(parsed.json);
186
+ const { unexpected, allowlisted } = partitionHighCriticalVulnerabilities(
187
+ vulnerabilities,
188
+ (packageName, advisoryId) => isAdvisoryAllowed(packageName, advisoryId, now()),
189
+ );
102
190
 
103
- if (ALLOWED_HIGH_OR_CRITICAL_PACKAGES.has(name)) {
104
- allowlisted.push(entry);
105
- continue;
191
+ if (unexpected.length > 0) {
192
+ error("Unexpected high/critical vulnerabilities detected in dev dependency audit:");
193
+ for (const entry of unexpected) {
194
+ error(
195
+ `- ${entry.name} (${entry.severity}) advisories=${entry.advisoryIds.join(", ") || "none"} via ${entry.via.join(", ") || "unknown"} fixAvailable=${String(entry.fixAvailable)}`,
196
+ );
197
+ }
198
+ return 1;
106
199
  }
107
- unexpected.push(entry);
108
- }
109
200
 
110
- if (unexpected.length > 0) {
111
- console.error("Unexpected high/critical vulnerabilities detected in dev dependency audit:");
112
- for (const entry of unexpected) {
113
- console.error(
114
- `- ${entry.name} (${entry.severity}) via ${entry.via.join(", ") || "unknown"} fixAvailable=${String(entry.fixAvailable)}`,
115
- );
201
+ if (allowlisted.length > 0) {
202
+ warn("Allowlisted high/critical dev vulnerabilities detected:");
203
+ for (const entry of allowlisted) {
204
+ warn(
205
+ `- ${entry.name} (${entry.severity}) advisories=${entry.advisoryIds.join(", ") || "none"} via ${entry.via.join(", ") || "unknown"} fixAvailable=${String(entry.fixAvailable)}`,
206
+ );
207
+ }
208
+ warn("No unexpected high/critical vulnerabilities found.");
116
209
  }
117
- process.exit(1);
210
+
211
+ return 0;
118
212
  }
119
213
 
120
- if (allowlisted.length > 0) {
121
- console.warn("Allowlisted high/critical dev vulnerabilities detected:");
122
- for (const entry of allowlisted) {
123
- console.warn(
124
- `- ${entry.name} (${entry.severity}) via ${entry.via.join(", ") || "unknown"} fixAvailable=${String(entry.fixAvailable)}`,
125
- );
126
- }
127
- console.warn("No unexpected high/critical vulnerabilities found.");
214
+ const isEntryPoint =
215
+ typeof process.argv[1] === "string" &&
216
+ import.meta.url === pathToFileURL(process.argv[1]).href;
217
+
218
+ if (isEntryPoint) {
219
+ process.exit(runAuditDevAllowlist());
128
220
  }