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.
- package/README.md +396 -43
- package/cordis.patch.yml +1 -0
- package/dist/src/cli.js +950 -33
- package/dist/src/cli.js.map +1 -1
- package/dist/src/compatibility.d.ts +3 -1
- package/dist/src/compatibility.d.ts.map +1 -1
- package/dist/src/compatibility.js +146 -12
- package/dist/src/compatibility.js.map +1 -1
- package/dist/src/demo.d.ts +13 -0
- package/dist/src/demo.d.ts.map +1 -0
- package/dist/src/demo.js +85 -0
- package/dist/src/demo.js.map +1 -0
- package/dist/src/doctor.d.ts.map +1 -1
- package/dist/src/doctor.js +62 -0
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/dsh-analysis.d.ts.map +1 -1
- package/dist/src/dsh-analysis.js +2 -1
- package/dist/src/dsh-analysis.js.map +1 -1
- package/dist/src/dsh-plugin.d.ts +9 -3
- package/dist/src/dsh-plugin.d.ts.map +1 -1
- package/dist/src/dsh-plugin.js +87 -11
- package/dist/src/dsh-plugin.js.map +1 -1
- package/dist/src/dsh-runtime.d.ts +7 -0
- package/dist/src/dsh-runtime.d.ts.map +1 -1
- package/dist/src/dsh-runtime.js +21 -0
- package/dist/src/dsh-runtime.js.map +1 -1
- package/dist/src/github-advisory.d.ts +25 -0
- package/dist/src/github-advisory.d.ts.map +1 -0
- package/dist/src/github-advisory.js +335 -0
- package/dist/src/github-advisory.js.map +1 -0
- package/dist/src/graph.d.ts +2 -0
- package/dist/src/graph.d.ts.map +1 -1
- package/dist/src/graph.js +600 -4
- package/dist/src/graph.js.map +1 -1
- package/dist/src/index.d.ts +14 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +13 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/init.d.ts +44 -2
- package/dist/src/init.d.ts.map +1 -1
- package/dist/src/init.js +62 -5
- package/dist/src/init.js.map +1 -1
- package/dist/src/installed-graph.d.ts +3 -1
- package/dist/src/installed-graph.d.ts.map +1 -1
- package/dist/src/installed-graph.js +101 -2
- package/dist/src/installed-graph.js.map +1 -1
- package/dist/src/inventory.d.ts.map +1 -1
- package/dist/src/inventory.js +76 -2
- package/dist/src/inventory.js.map +1 -1
- package/dist/src/notification-policy.d.ts +20 -0
- package/dist/src/notification-policy.d.ts.map +1 -0
- package/dist/src/notification-policy.js +87 -0
- package/dist/src/notification-policy.js.map +1 -0
- package/dist/src/npm-release.d.ts.map +1 -1
- package/dist/src/npm-release.js +18 -7
- package/dist/src/npm-release.js.map +1 -1
- package/dist/src/osv.d.ts.map +1 -1
- package/dist/src/osv.js +1 -0
- package/dist/src/osv.js.map +1 -1
- package/dist/src/quickstart.d.ts +31 -0
- package/dist/src/quickstart.d.ts.map +1 -0
- package/dist/src/quickstart.js +266 -0
- package/dist/src/quickstart.js.map +1 -0
- package/dist/src/radar-history.d.ts +22 -0
- package/dist/src/radar-history.d.ts.map +1 -0
- package/dist/src/radar-history.js +80 -0
- package/dist/src/radar-history.js.map +1 -0
- package/dist/src/radar-render.d.ts.map +1 -1
- package/dist/src/radar-render.js +106 -1
- package/dist/src/radar-render.js.map +1 -1
- package/dist/src/radar-state.d.ts.map +1 -1
- package/dist/src/radar-state.js +264 -6
- package/dist/src/radar-state.js.map +1 -1
- package/dist/src/radar-status.d.ts +36 -1
- package/dist/src/radar-status.d.ts.map +1 -1
- package/dist/src/radar-status.js +199 -16
- package/dist/src/radar-status.js.map +1 -1
- package/dist/src/radar-types.d.ts +128 -3
- package/dist/src/radar-types.d.ts.map +1 -1
- package/dist/src/radar-types.js +4 -0
- package/dist/src/radar-types.js.map +1 -1
- package/dist/src/radar.d.ts +7 -1
- package/dist/src/radar.d.ts.map +1 -1
- package/dist/src/radar.js +432 -70
- package/dist/src/radar.js.map +1 -1
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +10 -0
- package/dist/src/render.js.map +1 -1
- package/dist/src/threat-intel.d.ts +46 -0
- package/dist/src/threat-intel.d.ts.map +1 -0
- package/dist/src/threat-intel.js +243 -0
- package/dist/src/threat-intel.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/vulnerability-priority.d.ts +16 -0
- package/dist/src/vulnerability-priority.d.ts.map +1 -0
- package/dist/src/vulnerability-priority.js +20 -0
- package/dist/src/vulnerability-priority.js.map +1 -0
- package/dist/src/webhook.d.ts +84 -0
- package/dist/src/webhook.d.ts.map +1 -0
- package/dist/src/webhook.js +432 -0
- package/dist/src/webhook.js.map +1 -0
- package/docs/README.zh-CN.md +394 -40
- package/package.json +22 -3
- package/schemas/quickstart.schema.json +56 -0
- 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 =
|
|
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 =
|
|
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,
|
|
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"}
|
package/dist/src/inventory.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/src/npm-release.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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 =
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
const
|
|
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}`);
|