upstream-radar 0.32.0 → 0.33.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.
Files changed (106) hide show
  1. package/README.md +396 -43
  2. package/cordis.patch.yml +1 -0
  3. package/dist/src/cli.js +950 -33
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/compatibility.d.ts +3 -1
  6. package/dist/src/compatibility.d.ts.map +1 -1
  7. package/dist/src/compatibility.js +146 -12
  8. package/dist/src/compatibility.js.map +1 -1
  9. package/dist/src/demo.d.ts +13 -0
  10. package/dist/src/demo.d.ts.map +1 -0
  11. package/dist/src/demo.js +85 -0
  12. package/dist/src/demo.js.map +1 -0
  13. package/dist/src/doctor.d.ts.map +1 -1
  14. package/dist/src/doctor.js +62 -0
  15. package/dist/src/doctor.js.map +1 -1
  16. package/dist/src/dsh-analysis.d.ts.map +1 -1
  17. package/dist/src/dsh-analysis.js +2 -1
  18. package/dist/src/dsh-analysis.js.map +1 -1
  19. package/dist/src/dsh-plugin.d.ts +9 -3
  20. package/dist/src/dsh-plugin.d.ts.map +1 -1
  21. package/dist/src/dsh-plugin.js +87 -11
  22. package/dist/src/dsh-plugin.js.map +1 -1
  23. package/dist/src/dsh-runtime.d.ts +7 -0
  24. package/dist/src/dsh-runtime.d.ts.map +1 -1
  25. package/dist/src/dsh-runtime.js +21 -0
  26. package/dist/src/dsh-runtime.js.map +1 -1
  27. package/dist/src/github-advisory.d.ts +25 -0
  28. package/dist/src/github-advisory.d.ts.map +1 -0
  29. package/dist/src/github-advisory.js +335 -0
  30. package/dist/src/github-advisory.js.map +1 -0
  31. package/dist/src/graph.d.ts +2 -0
  32. package/dist/src/graph.d.ts.map +1 -1
  33. package/dist/src/graph.js +600 -4
  34. package/dist/src/graph.js.map +1 -1
  35. package/dist/src/index.d.ts +14 -6
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +13 -5
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/init.d.ts +44 -2
  40. package/dist/src/init.d.ts.map +1 -1
  41. package/dist/src/init.js +62 -5
  42. package/dist/src/init.js.map +1 -1
  43. package/dist/src/installed-graph.d.ts +3 -1
  44. package/dist/src/installed-graph.d.ts.map +1 -1
  45. package/dist/src/installed-graph.js +101 -2
  46. package/dist/src/installed-graph.js.map +1 -1
  47. package/dist/src/inventory.d.ts.map +1 -1
  48. package/dist/src/inventory.js +76 -2
  49. package/dist/src/inventory.js.map +1 -1
  50. package/dist/src/notification-policy.d.ts +20 -0
  51. package/dist/src/notification-policy.d.ts.map +1 -0
  52. package/dist/src/notification-policy.js +87 -0
  53. package/dist/src/notification-policy.js.map +1 -0
  54. package/dist/src/npm-release.d.ts.map +1 -1
  55. package/dist/src/npm-release.js +18 -7
  56. package/dist/src/npm-release.js.map +1 -1
  57. package/dist/src/osv.d.ts.map +1 -1
  58. package/dist/src/osv.js +1 -0
  59. package/dist/src/osv.js.map +1 -1
  60. package/dist/src/quickstart.d.ts +31 -0
  61. package/dist/src/quickstart.d.ts.map +1 -0
  62. package/dist/src/quickstart.js +266 -0
  63. package/dist/src/quickstart.js.map +1 -0
  64. package/dist/src/radar-history.d.ts +22 -0
  65. package/dist/src/radar-history.d.ts.map +1 -0
  66. package/dist/src/radar-history.js +80 -0
  67. package/dist/src/radar-history.js.map +1 -0
  68. package/dist/src/radar-render.d.ts.map +1 -1
  69. package/dist/src/radar-render.js +106 -1
  70. package/dist/src/radar-render.js.map +1 -1
  71. package/dist/src/radar-state.d.ts.map +1 -1
  72. package/dist/src/radar-state.js +264 -6
  73. package/dist/src/radar-state.js.map +1 -1
  74. package/dist/src/radar-status.d.ts +36 -1
  75. package/dist/src/radar-status.d.ts.map +1 -1
  76. package/dist/src/radar-status.js +199 -16
  77. package/dist/src/radar-status.js.map +1 -1
  78. package/dist/src/radar-types.d.ts +128 -3
  79. package/dist/src/radar-types.d.ts.map +1 -1
  80. package/dist/src/radar-types.js +4 -0
  81. package/dist/src/radar-types.js.map +1 -1
  82. package/dist/src/radar.d.ts +7 -1
  83. package/dist/src/radar.d.ts.map +1 -1
  84. package/dist/src/radar.js +432 -70
  85. package/dist/src/radar.js.map +1 -1
  86. package/dist/src/render.d.ts.map +1 -1
  87. package/dist/src/render.js +10 -0
  88. package/dist/src/render.js.map +1 -1
  89. package/dist/src/threat-intel.d.ts +46 -0
  90. package/dist/src/threat-intel.d.ts.map +1 -0
  91. package/dist/src/threat-intel.js +243 -0
  92. package/dist/src/threat-intel.js.map +1 -0
  93. package/dist/src/version.d.ts +1 -1
  94. package/dist/src/version.js +1 -1
  95. package/dist/src/vulnerability-priority.d.ts +16 -0
  96. package/dist/src/vulnerability-priority.d.ts.map +1 -0
  97. package/dist/src/vulnerability-priority.js +20 -0
  98. package/dist/src/vulnerability-priority.js.map +1 -0
  99. package/dist/src/webhook.d.ts +84 -0
  100. package/dist/src/webhook.d.ts.map +1 -0
  101. package/dist/src/webhook.js +432 -0
  102. package/dist/src/webhook.js.map +1 -0
  103. package/docs/README.zh-CN.md +394 -40
  104. package/package.json +22 -3
  105. package/schemas/quickstart.schema.json +56 -0
  106. package/schemas/webhook.schema.json +53 -0
@@ -6,6 +6,26 @@ import { DEPENDENCY_GRAPH_SCHEMA, } from './radar-types.js';
6
6
  const MAX_MANIFEST_BYTES = 8 * 1024 * 1024;
7
7
  const MAX_NODES = 100_000;
8
8
  const MAX_EDGES = 250_000;
9
+ const DSH_RUNTIME_PACKAGE_NAME = '@deepseek-ai/dsh';
10
+ const HOST_RUNTIME_EDGE_KIND = 'host-runtime';
11
+ /**
12
+ * Installed npm manifests are source material, not Radar configuration. Some
13
+ * packages in the DSH host tree publish an empty or non-string optional
14
+ * `main`/`type` field; it carries no dependency information, so omit it only
15
+ * at this read-only graph boundary and keep the stricter inventory parser
16
+ * unchanged.
17
+ */
18
+ function parseInstalledManifestSnapshot(value) {
19
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
20
+ return parsePackageManifestSnapshot(value);
21
+ }
22
+ const normalized = { ...value };
23
+ if (typeof normalized.main !== 'string' || normalized.main.length === 0)
24
+ delete normalized.main;
25
+ if (typeof normalized.type !== 'string' || normalized.type.length === 0)
26
+ delete normalized.type;
27
+ return parsePackageManifestSnapshot(normalized);
28
+ }
9
29
  function asStringRecord(value) {
10
30
  if (typeof value !== 'object' || value === null || Array.isArray(value))
11
31
  return {};
@@ -71,7 +91,7 @@ async function readProfileManifest(packageDirectory, profileRoot, profileRootRea
71
91
  catch {
72
92
  throw new Error(`installed package manifest is not valid JSON: ${packageDirectory}`);
73
93
  }
74
- const manifest = parsePackageManifestSnapshot(parsed);
94
+ const manifest = parseInstalledManifestSnapshot(parsed);
75
95
  return { id: nodeId(profileRoot, packageDirectory), directory: packageDirectory, source: 'profile', manifest };
76
96
  }
77
97
  async function readHostManifest(packageDirectory, hostNodeModulesDirectory) {
@@ -88,7 +108,7 @@ async function readHostManifest(packageDirectory, hostNodeModulesDirectory) {
88
108
  catch {
89
109
  throw new Error(`DSH host package manifest is not valid JSON: ${packageDirectory}`);
90
110
  }
91
- const manifest = parsePackageManifestSnapshot(parsed);
111
+ const manifest = parseInstalledManifestSnapshot(parsed);
92
112
  return {
93
113
  id: hostNodeId(hostNodeModulesDirectory, packageDirectory),
94
114
  directory: realDirectory,
@@ -96,6 +116,27 @@ async function readHostManifest(packageDirectory, hostNodeModulesDirectory) {
96
116
  manifest,
97
117
  };
98
118
  }
119
+ /** Read the DSH executable package when it lives beside, rather than inside, its dependency plane. */
120
+ async function readRuntimeManifest(packageDirectory) {
121
+ const realDirectory = await realpath(packageDirectory);
122
+ const manifestPath = await realpath(join(packageDirectory, 'package.json'));
123
+ const contents = await readFile(manifestPath, 'utf8');
124
+ if (Buffer.byteLength(contents) > MAX_MANIFEST_BYTES) {
125
+ throw new Error(`DSH runtime package manifest exceeds the ${MAX_MANIFEST_BYTES} byte limit: ${packageDirectory}`);
126
+ }
127
+ let parsed;
128
+ try {
129
+ parsed = JSON.parse(contents);
130
+ }
131
+ catch {
132
+ throw new Error(`DSH runtime package manifest is not valid JSON: ${packageDirectory}`);
133
+ }
134
+ const manifest = parseInstalledManifestSnapshot(parsed);
135
+ if (manifest.name !== DSH_RUNTIME_PACKAGE_NAME) {
136
+ throw new Error(`DSH runtime package manifest name does not match ${DSH_RUNTIME_PACKAGE_NAME}: ${packageDirectory}`);
137
+ }
138
+ return { id: 'dsh-host/runtime', directory: realDirectory, source: 'dsh-host', manifest };
139
+ }
99
140
  async function findProfilePackage(parentDirectory, dependencyName, profileRoot, profileRootReal) {
100
141
  if (!isPackageName(dependencyName))
101
142
  return undefined;
@@ -161,6 +202,10 @@ export async function parseInstalledNodeModulesGraph(profileDirectory, rootPacka
161
202
  }
162
203
  if (!isPackageName(rootPackage.name))
163
204
  throw new Error(`invalid installed root package name: ${rootPackage.name}`);
205
+ if (options.hostRuntimePackage !== undefined
206
+ && (options.hostRuntimePackage.ecosystem !== 'npm' || options.hostRuntimePackage.name !== DSH_RUNTIME_PACKAGE_NAME)) {
207
+ throw new Error(`DSH host runtime package must be ${DSH_RUNTIME_PACKAGE_NAME}`);
208
+ }
164
209
  const root = await findProfilePackage(profileRoot, rootPackage.name, profileRoot, profileRootReal);
165
210
  if (root === undefined) {
166
211
  throw new Error(`installed root package is not present in the DSH profile: ${rootPackage.name}@${rootPackage.version}`);
@@ -172,6 +217,59 @@ export async function parseInstalledNodeModulesGraph(profileDirectory, rootPacka
172
217
  const edges = [];
173
218
  const unresolved = [];
174
219
  const queue = [root.id];
220
+ if (hostNodeModulesDirectoryReal !== undefined && options.hostRuntimePackage !== undefined) {
221
+ const resolvedHostNodeModulesDirectory = hostNodeModulesDirectory;
222
+ if (resolvedHostNodeModulesDirectory === undefined)
223
+ throw new Error('DSH host dependency plane is unexpectedly unavailable');
224
+ const runtimePackageDirectory = options.hostRuntimePackageDirectory;
225
+ let runtimeRoot;
226
+ if (runtimePackageDirectory !== undefined) {
227
+ let runtimeDirectoryReal;
228
+ try {
229
+ runtimeDirectoryReal = await realpath(runtimePackageDirectory);
230
+ }
231
+ catch (error) {
232
+ const code = error.code;
233
+ if (code !== 'ENOENT' && code !== 'ENOTDIR')
234
+ throw error;
235
+ }
236
+ if (runtimeDirectoryReal !== undefined) {
237
+ runtimeRoot = isLexicallyInside(hostNodeModulesDirectoryReal, runtimeDirectoryReal)
238
+ ? await readHostManifest(runtimePackageDirectory, resolvedHostNodeModulesDirectory)
239
+ : await readRuntimeManifest(runtimePackageDirectory);
240
+ }
241
+ }
242
+ else {
243
+ runtimeRoot = await findHostPackage('@deepseek-ai/dsh', resolvedHostNodeModulesDirectory);
244
+ }
245
+ if (runtimeRoot !== undefined) {
246
+ if (runtimeRoot.manifest.name !== options.hostRuntimePackage.name) {
247
+ throw new Error(`DSH runtime package manifest name does not match discovered coordinate: expected ${options.hostRuntimePackage.name}, found ${runtimeRoot.manifest.name}`);
248
+ }
249
+ if (runtimeRoot.manifest.version !== options.hostRuntimePackage.version) {
250
+ throw new Error(`DSH runtime package does not match discovered coordinate: expected @deepseek-ai/dsh@${options.hostRuntimePackage.version}, found ${runtimeRoot.manifest.version}`);
251
+ }
252
+ if (!packages.has(runtimeRoot.id)) {
253
+ if (packages.size >= MAX_NODES)
254
+ throw new Error(`installed dependency graph exceeds the ${MAX_NODES} node limit`);
255
+ packages.set(runtimeRoot.id, runtimeRoot);
256
+ queue.push(runtimeRoot.id);
257
+ }
258
+ if (!edges.some(edge => edge.from === root.id && edge.to === runtimeRoot.id && edge.kind === HOST_RUNTIME_EDGE_KIND)) {
259
+ if (edges.length >= MAX_EDGES)
260
+ throw new Error(`installed dependency graph exceeds the ${MAX_EDGES} edge limit`);
261
+ edges.push({ from: root.id, to: runtimeRoot.id, kind: HOST_RUNTIME_EDGE_KIND });
262
+ }
263
+ }
264
+ else {
265
+ unresolved.push({
266
+ from: root.id,
267
+ name: options.hostRuntimePackage.name,
268
+ kind: HOST_RUNTIME_EDGE_KIND,
269
+ spec: `=${options.hostRuntimePackage.version}`,
270
+ });
271
+ }
272
+ }
175
273
  for (let index = 0; index < queue.length; index += 1) {
176
274
  const currentId = queue[index];
177
275
  if (currentId === undefined)
@@ -218,6 +316,7 @@ export async function parseInstalledNodeModulesGraph(profileDirectory, rootPacka
218
316
  hostRuntime: {
219
317
  source: options.hostRuntimeSource ?? 'dsh-profile-fallback',
220
318
  resolvedNodes: [...packages.values()].filter(item => item.source === 'dsh-host').length,
319
+ ...(options.hostRuntimePackage === undefined ? {} : { package: { ...options.hostRuntimePackage } }),
221
320
  },
222
321
  }),
223
322
  ...(reachableUnresolved.length === 0 ? {} : { unresolved: reachableUnresolved }),
@@ -1 +1 @@
1
- {"version":3,"file":"installed-graph.js","sourceRoot":"","sources":["../../src/installed-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installed-graph.js","sourceRoot":"","sources":["../../src/installed-graph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,uBAAuB,EAG5B,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAA;AAyFzB,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAIpF;AA4ID,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAqB5D"}
1
+ {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,uBAAuB,EAK5B,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAA;AAsJzB,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAIpF;AA4JD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAqB5D"}
@@ -23,6 +23,64 @@ function stringArray(value, label) {
23
23
  throw new Error(`${label} must be an array with at most 100 entries`);
24
24
  return value.map((item, index) => string(item, `${label}[${index}]`, 1_024));
25
25
  }
26
+ function environmentVariableName(value, label) {
27
+ const parsed = optionalString(value, label, 256);
28
+ if (parsed !== undefined && !/^[A-Za-z_][A-Za-z0-9_]*$/.test(parsed)) {
29
+ throw new Error(`${label} must be a valid environment variable name`);
30
+ }
31
+ return parsed;
32
+ }
33
+ const NOTIFICATION_SEVERITIES = new Set([
34
+ 'info',
35
+ 'low',
36
+ 'medium',
37
+ 'high',
38
+ 'critical',
39
+ ]);
40
+ function clockTime(value, label) {
41
+ const parsed = string(value, label, 5);
42
+ if (!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(parsed)) {
43
+ throw new Error(`${label} must use HH:MM in 24-hour time`);
44
+ }
45
+ return parsed;
46
+ }
47
+ function timezone(value, label) {
48
+ const parsed = string(value, label, 128);
49
+ try {
50
+ new Intl.DateTimeFormat('en-US', { timeZone: parsed }).format();
51
+ }
52
+ catch {
53
+ throw new Error(`${label} must be a valid IANA timezone`);
54
+ }
55
+ return parsed;
56
+ }
57
+ function notificationPolicy(value, label) {
58
+ if (value === undefined)
59
+ return undefined;
60
+ const source = record(value, label);
61
+ const minimumSeverity = source.minimumSeverity === undefined
62
+ ? undefined
63
+ : string(source.minimumSeverity, `${label}.minimumSeverity`, 16);
64
+ if (minimumSeverity !== undefined && !NOTIFICATION_SEVERITIES.has(minimumSeverity)) {
65
+ throw new Error(`${label}.minimumSeverity must be info, low, medium, high or critical`);
66
+ }
67
+ const quietSource = source.quietHours === undefined ? undefined : record(source.quietHours, `${label}.quietHours`);
68
+ if (quietSource === undefined) {
69
+ return minimumSeverity === undefined ? {} : { minimumSeverity };
70
+ }
71
+ const quietHours = {
72
+ timezone: timezone(quietSource.timezone, `${label}.quietHours.timezone`),
73
+ start: clockTime(quietSource.start, `${label}.quietHours.start`),
74
+ end: clockTime(quietSource.end, `${label}.quietHours.end`),
75
+ };
76
+ if (quietHours.start === quietHours.end) {
77
+ throw new Error(`${label}.quietHours.start and end must be different`);
78
+ }
79
+ return {
80
+ ...(minimumSeverity === undefined ? {} : { minimumSeverity }),
81
+ quietHours,
82
+ };
83
+ }
26
84
  function stringRecord(value, label) {
27
85
  if (value === undefined)
28
86
  return undefined;
@@ -120,7 +178,7 @@ function graph(value, label) {
120
178
  const ids = new Set(nodes.map(node => node.id));
121
179
  if (ids.size !== nodes.length)
122
180
  throw new Error(`${label} contains duplicate node ids`);
123
- const kinds = new Set(['runtime', 'development', 'optional', 'peer']);
181
+ const kinds = new Set(['runtime', 'development', 'optional', 'peer', 'host-runtime']);
124
182
  const edges = source.edges.map((rawEdge, index) => {
125
183
  const edge = record(rawEdge, `${label}.edges[${index}]`);
126
184
  const from = string(edge.from, `${label}.edges[${index}].from`, 4_096);
@@ -136,7 +194,7 @@ function graph(value, label) {
136
194
  if (!ids.has(rootNodeId))
137
195
  throw new Error(`${label} root references a missing node`);
138
196
  const graphSource = source.source === undefined ? undefined : string(source.source, `${label}.source`, 64);
139
- if (graphSource !== undefined && graphSource !== 'npm-lock' && graphSource !== 'installed-node-modules') {
197
+ if (graphSource !== undefined && graphSource !== 'npm-lock' && graphSource !== 'pnpm-lock' && graphSource !== 'installed-node-modules') {
140
198
  throw new Error(`${label}.source has an unsupported value`);
141
199
  }
142
200
  const hostRuntimeValue = source.hostRuntime === undefined ? undefined : record(source.hostRuntime, `${label}.hostRuntime`);
@@ -152,6 +210,12 @@ function graph(value, label) {
152
210
  if (resolvedNodes !== undefined && (!Number.isSafeInteger(resolvedNodes) || resolvedNodes < 0 || resolvedNodes > MAX_NODES_PER_GRAPH)) {
153
211
  throw new Error(`${label}.hostRuntime.resolvedNodes must be a non-negative bounded integer`);
154
212
  }
213
+ const hostRuntimePackage = hostRuntimeValue === undefined || hostRuntimeValue.package === undefined
214
+ ? undefined
215
+ : coordinate(hostRuntimeValue.package, `${label}.hostRuntime.package`);
216
+ if (hostRuntimePackage !== undefined && hostRuntimePackage.name !== '@deepseek-ai/dsh') {
217
+ throw new Error(`${label}.hostRuntime.package must be @deepseek-ai/dsh`);
218
+ }
155
219
  const unresolvedValue = source.unresolved;
156
220
  if (unresolvedValue !== undefined && (!Array.isArray(unresolvedValue) || unresolvedValue.length > MAX_EDGES_PER_GRAPH)) {
157
221
  throw new Error(`${label}.unresolved must contain at most ${MAX_EDGES_PER_GRAPH} entries`);
@@ -182,6 +246,7 @@ function graph(value, label) {
182
246
  hostRuntime: {
183
247
  source: hostRuntimeSource,
184
248
  resolvedNodes: resolvedNodes,
249
+ ...(hostRuntimePackage === undefined ? {} : { package: hostRuntimePackage }),
185
250
  },
186
251
  }),
187
252
  ...(digest === undefined ? {} : { digest }),
@@ -220,8 +285,14 @@ function project(value, index) {
220
285
  const workspace = optionalString(projectSource.workspace, `${label}.project.workspace`);
221
286
  const owner = optionalString(projectSource.owner, `${label}.project.owner`, 1_024);
222
287
  const channels = stringArray(projectSource.channels, `${label}.project.channels`);
288
+ const webhookUrlEnv = environmentVariableName(projectSource.webhookUrlEnv, `${label}.project.webhookUrlEnv`);
289
+ const webhookSecretEnv = environmentVariableName(projectSource.webhookSecretEnv, `${label}.project.webhookSecretEnv`);
290
+ if (webhookSecretEnv !== undefined && webhookUrlEnv === undefined) {
291
+ throw new Error(`${label}.project.webhookSecretEnv requires webhookUrlEnv`);
292
+ }
223
293
  const environmentSource = source.environment === undefined ? undefined : record(source.environment, `${label}.environment`);
224
294
  const nodeVersion = optionalString(environmentSource?.nodeVersion, `${label}.environment.nodeVersion`, 128);
295
+ const notificationPolicyValue = notificationPolicy(source.notificationPolicy, `${label}.notificationPolicy`);
225
296
  return {
226
297
  schema: INVENTORY_SCHEMA,
227
298
  project: {
@@ -231,8 +302,11 @@ function project(value, index) {
231
302
  ...(workspace === undefined ? {} : { workspace }),
232
303
  ...(owner === undefined ? {} : { owner }),
233
304
  ...(channels === undefined ? {} : { channels }),
305
+ ...(webhookUrlEnv === undefined ? {} : { webhookUrlEnv }),
306
+ ...(webhookSecretEnv === undefined ? {} : { webhookSecretEnv }),
234
307
  },
235
308
  ...(environmentSource === undefined ? {} : { environment: nodeVersion === undefined ? {} : { nodeVersion } }),
309
+ ...(notificationPolicyValue === undefined ? {} : { notificationPolicy: notificationPolicyValue }),
236
310
  plugins: source.plugins.map((item, pluginIndex) => plugin(item, `${label}.plugins[${pluginIndex}]`)),
237
311
  };
238
312
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/inventory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/inventory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { AnalysisTask, ProjectInventory, RadarEvent, RadarNotificationPolicy, RadarState } from './radar-types.js';
2
+ export type NotificationSuppressionReason = 'below-minimum-severity' | 'quiet-hours';
3
+ export interface NotificationDecision {
4
+ deliver: boolean;
5
+ reasons: NotificationSuppressionReason[];
6
+ }
7
+ /** Return true only while the exact muted event version is still within its expiry. */
8
+ export declare function isRadarIncidentMuted(state: RadarState | undefined, event: RadarEvent, now?: Date): boolean;
9
+ /**
10
+ * Decide delivery only. Radar's active maps, transition history, and pending
11
+ * tasks are deliberately outside this decision so quieting an alert cannot
12
+ * make the underlying evidence disappear.
13
+ */
14
+ export declare function decideRadarNotification(event: RadarEvent, policy: RadarNotificationPolicy | undefined, now?: Date): NotificationDecision;
15
+ export declare function createNotificationPolicyMap(inventories: readonly ProjectInventory[]): ReadonlyMap<string, RadarNotificationPolicy>;
16
+ export declare function decideProjectRadarNotification(event: RadarEvent, policies: ReadonlyMap<string, RadarNotificationPolicy>, now?: Date): NotificationDecision;
17
+ export declare function filterNotifiableRadarEvents(events: readonly RadarEvent[], policies: ReadonlyMap<string, RadarNotificationPolicy>, now?: Date, state?: RadarState): RadarEvent[];
18
+ /** Count tasks deliberately held by policy, without removing them from state. */
19
+ export declare function countPolicyHeldAnalysisTasks(tasks: readonly AnalysisTask[], policies: ReadonlyMap<string, RadarNotificationPolicy>, now?: Date): number;
20
+ //# sourceMappingURL=notification-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-policy.d.ts","sourceRoot":"","sources":["../../src/notification-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,uBAAuB,EAEvB,UAAU,EACX,MAAM,kBAAkB,CAAA;AAEzB,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,GAAG,aAAa,CAAA;AAEpF,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,6BAA6B,EAAE,CAAA;CACzC;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,KAAK,EAAE,UAAU,EACjB,GAAG,OAAa,GACf,OAAO,CAMT;AA6CD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,uBAAuB,GAAG,SAAS,EAC3C,GAAG,OAAa,GACf,oBAAoB,CActB;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GACvC,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAM9C;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACtD,GAAG,OAAa,GACf,oBAAoB,CAEtB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACtD,GAAG,OAAa,EAChB,KAAK,CAAC,EAAE,UAAU,GACjB,UAAU,EAAE,CAGd;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACtD,GAAG,OAAa,GACf,MAAM,CAGR"}
@@ -0,0 +1,87 @@
1
+ /** Return true only while the exact muted event version is still within its expiry. */
2
+ export function isRadarIncidentMuted(state, event, now = new Date()) {
3
+ if (!Number.isFinite(now.getTime()))
4
+ throw new Error('incident mute decision time is invalid');
5
+ const mute = state?.incidentMutes?.[event.incidentId];
6
+ if (mute === undefined || mute.eventId !== event.id)
7
+ return false;
8
+ const mutedUntil = Date.parse(mute.mutedUntil);
9
+ return Number.isFinite(mutedUntil) && mutedUntil > now.getTime();
10
+ }
11
+ const SEVERITY_RANK = {
12
+ unknown: 0,
13
+ info: 1,
14
+ low: 2,
15
+ medium: 3,
16
+ high: 4,
17
+ critical: 5,
18
+ };
19
+ function eventSeverity(event) {
20
+ return event.kind === 'vulnerability' || event.kind === 'malware'
21
+ ? event.advisory.severity
22
+ : undefined;
23
+ }
24
+ function isImmediateEvent(event) {
25
+ return event.kind === 'malware' || (event.kind === 'vulnerability' && event.advisory.severity === 'critical');
26
+ }
27
+ function localMinutes(date, timezone) {
28
+ const parts = new Intl.DateTimeFormat('en-US', {
29
+ timeZone: timezone,
30
+ hour: '2-digit',
31
+ minute: '2-digit',
32
+ hourCycle: 'h23',
33
+ }).formatToParts(date);
34
+ const hour = Number(parts.find(part => part.type === 'hour')?.value);
35
+ const minute = Number(parts.find(part => part.type === 'minute')?.value);
36
+ if (!Number.isInteger(hour) || !Number.isInteger(minute)) {
37
+ throw new Error(`could not read local time in timezone ${timezone}`);
38
+ }
39
+ return hour * 60 + minute;
40
+ }
41
+ function isInQuietHours(date, quietHours) {
42
+ const current = localMinutes(date, quietHours.timezone);
43
+ const start = Number(quietHours.start.slice(0, 2)) * 60 + Number(quietHours.start.slice(3, 5));
44
+ const end = Number(quietHours.end.slice(0, 2)) * 60 + Number(quietHours.end.slice(3, 5));
45
+ return start < end
46
+ ? current >= start && current < end
47
+ : current >= start || current < end;
48
+ }
49
+ /**
50
+ * Decide delivery only. Radar's active maps, transition history, and pending
51
+ * tasks are deliberately outside this decision so quieting an alert cannot
52
+ * make the underlying evidence disappear.
53
+ */
54
+ export function decideRadarNotification(event, policy, now = new Date()) {
55
+ if (!Number.isFinite(now.getTime()))
56
+ throw new Error('notification policy time is invalid');
57
+ if (policy === undefined || isImmediateEvent(event))
58
+ return { deliver: true, reasons: [] };
59
+ const reasons = [];
60
+ const severity = eventSeverity(event);
61
+ if (policy.minimumSeverity !== undefined && severity !== undefined
62
+ && SEVERITY_RANK[severity] < SEVERITY_RANK[policy.minimumSeverity]) {
63
+ reasons.push('below-minimum-severity');
64
+ }
65
+ if (policy.quietHours !== undefined && isInQuietHours(now, policy.quietHours)) {
66
+ reasons.push('quiet-hours');
67
+ }
68
+ return { deliver: reasons.length === 0, reasons };
69
+ }
70
+ export function createNotificationPolicyMap(inventories) {
71
+ return new Map(inventories.flatMap(inventory => inventory.notificationPolicy === undefined
72
+ ? []
73
+ : [[inventory.project.id, inventory.notificationPolicy]]));
74
+ }
75
+ export function decideProjectRadarNotification(event, policies, now = new Date()) {
76
+ return decideRadarNotification(event, policies.get(event.project.id), now);
77
+ }
78
+ export function filterNotifiableRadarEvents(events, policies, now = new Date(), state) {
79
+ return events.filter(event => decideProjectRadarNotification(event, policies, now).deliver
80
+ && !isRadarIncidentMuted(state, event, now));
81
+ }
82
+ /** Count tasks deliberately held by policy, without removing them from state. */
83
+ export function countPolicyHeldAnalysisTasks(tasks, policies, now = new Date()) {
84
+ return tasks.filter(task => task.event !== undefined
85
+ && !decideProjectRadarNotification(task.event, policies, now).deliver).length;
86
+ }
87
+ //# sourceMappingURL=notification-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-policy.js","sourceRoot":"","sources":["../../src/notification-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"npm-release.d.ts","sourceRoot":"","sources":["../../src/npm-release.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAQlF,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAA;AAEnF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,iBAAiB,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,uBAAuB,CAAA;IACjC,SAAS,EAAE,uBAAuB,CAAA;IAClC,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAA;IAC7C,0EAA0E;IAC1E,eAAe,CAAC,EAAE,yBAAyB,CAAA;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA+ED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC,YAAY,OAAO,GAAE,uBAA4B,EAOhD;YAEa,cAAc;IAYtB,KAAK,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CA0D5F;CACF"}
1
+ {"version":3,"file":"npm-release.d.ts","sourceRoot":"","sources":["../../src/npm-release.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAQlF,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAA;AAEnF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,iBAAiB,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,uBAAuB,CAAA;IACjC,SAAS,EAAE,uBAAuB,CAAA;IAClC,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAA;IAC7C,0EAA0E;IAC1E,eAAe,CAAC,EAAE,yBAAyB,CAAA;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA+ED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC,YAAY,OAAO,GAAE,uBAA4B,EAOhD;YAEa,cAAc;IAiBtB,KAAK,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CA6D5F;CACF"}
@@ -99,14 +99,20 @@ export class NpmReleaseClient {
99
99
  }
100
100
  async fetchPackument(name) {
101
101
  const url = new URL(encodeURIComponent(name), this.registry);
102
- return boundedJson(await this.fetcher(url, {
102
+ const response = await this.fetcher(url, {
103
103
  headers: {
104
104
  accept: 'application/vnd.npm.install-v1+json, application/json',
105
105
  'user-agent': `upstream-radar/${TOOL_VERSION}`,
106
106
  },
107
107
  redirect: 'follow',
108
108
  signal: AbortSignal.timeout(this.timeoutMs),
109
- }));
109
+ });
110
+ // A DSH plugin may be private, GitHub-only, or still unpublished. That is
111
+ // not a registry outage: skip its release comparison while continuing to
112
+ // monitor the exact lockfile graph and any published host packages.
113
+ if (response.status === 404)
114
+ return undefined;
115
+ return boundedJson(response);
110
116
  }
111
117
  async query(input) {
112
118
  const unique = [...new Map(input.map(item => [packageKey(item), item])).values()];
@@ -128,16 +134,21 @@ export class NpmReleaseClient {
128
134
  const name = queue.shift();
129
135
  if (name === undefined)
130
136
  return;
131
- packuments.set(name, await this.fetchPackument(name));
137
+ const packument = await this.fetchPackument(name);
138
+ if (packument !== undefined)
139
+ packuments.set(name, packument);
132
140
  }
133
141
  });
134
142
  await Promise.all(workers);
135
143
  const result = new Map();
136
144
  for (const [name, coordinates] of byName) {
137
- const packument = asRecord(packuments.get(name));
138
- const tags = asRecord(packument?.['dist-tags']);
139
- const versions = asRecord(packument?.versions);
140
- const times = asRecord(packument?.time);
145
+ const packument = packuments.get(name);
146
+ if (packument === undefined)
147
+ continue;
148
+ const packumentRecord = asRecord(packument);
149
+ const tags = asRecord(packumentRecord?.['dist-tags']);
150
+ const versions = asRecord(packumentRecord?.versions);
151
+ const times = asRecord(packumentRecord?.time);
141
152
  const latestVersion = typeof tags?.latest === 'string' ? tags.latest : undefined;
142
153
  if (latestVersion === undefined || versions === undefined)
143
154
  throw new Error(`npm packument has no latest release for ${name}`);