upstream-radar 0.17.0 → 0.19.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 (45) hide show
  1. package/README.md +17 -1
  2. package/dist/src/cli.js +12 -3
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/compatibility.d.ts +7 -1
  5. package/dist/src/compatibility.d.ts.map +1 -1
  6. package/dist/src/compatibility.js +68 -6
  7. package/dist/src/compatibility.js.map +1 -1
  8. package/dist/src/dsh-analysis.d.ts.map +1 -1
  9. package/dist/src/dsh-analysis.js +5 -2
  10. package/dist/src/dsh-analysis.js.map +1 -1
  11. package/dist/src/dsh-plugin.d.ts +3 -0
  12. package/dist/src/dsh-plugin.d.ts.map +1 -1
  13. package/dist/src/dsh-plugin.js +6 -2
  14. package/dist/src/dsh-plugin.js.map +1 -1
  15. package/dist/src/index.d.ts +4 -3
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +3 -2
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/npm-candidate.d.ts +23 -0
  20. package/dist/src/npm-candidate.d.ts.map +1 -0
  21. package/dist/src/npm-candidate.js +71 -0
  22. package/dist/src/npm-candidate.js.map +1 -0
  23. package/dist/src/npm.d.ts +11 -0
  24. package/dist/src/npm.d.ts.map +1 -1
  25. package/dist/src/npm.js +51 -0
  26. package/dist/src/npm.js.map +1 -1
  27. package/dist/src/radar-render.d.ts.map +1 -1
  28. package/dist/src/radar-render.js +13 -3
  29. package/dist/src/radar-render.js.map +1 -1
  30. package/dist/src/radar-state.d.ts.map +1 -1
  31. package/dist/src/radar-state.js +52 -1
  32. package/dist/src/radar-state.js.map +1 -1
  33. package/dist/src/radar-status.d.ts.map +1 -1
  34. package/dist/src/radar-status.js +3 -1
  35. package/dist/src/radar-status.js.map +1 -1
  36. package/dist/src/radar-types.d.ts +30 -1
  37. package/dist/src/radar-types.d.ts.map +1 -1
  38. package/dist/src/radar.d.ts +5 -2
  39. package/dist/src/radar.d.ts.map +1 -1
  40. package/dist/src/radar.js +235 -3
  41. package/dist/src/radar.js.map +1 -1
  42. package/dist/src/version.d.ts +1 -1
  43. package/dist/src/version.js +1 -1
  44. package/docs/README.zh-CN.md +18 -2
  45. package/package.json +2 -2
@@ -16,15 +16,56 @@ function validAffectedSources(value) {
16
16
  const allowed = new Set(['profile', 'dsh-host']);
17
17
  return new Set(value).size === value.length && value.every(item => typeof item === 'string' && allowed.has(item));
18
18
  }
19
+ function validPackageCoordinate(value) {
20
+ const coordinate = asRecord(value);
21
+ return coordinate?.ecosystem === 'npm'
22
+ && typeof coordinate.name === 'string' && coordinate.name.length > 0 && coordinate.name.length <= 512
23
+ && typeof coordinate.version === 'string' && coordinate.version.length > 0 && coordinate.version.length <= 512;
24
+ }
25
+ function validCompatibilityDependencyCheck(value) {
26
+ const check = asRecord(value);
27
+ const findings = check?.findings;
28
+ if ((check?.status !== 'checked' && check?.status !== 'incomplete' && check?.status !== 'unavailable')
29
+ || typeof check.nodeCount !== 'number' || !Number.isSafeInteger(check.nodeCount) || check.nodeCount < 0 || check.nodeCount > 1_000_000
30
+ || typeof check.unresolvedCount !== 'number' || !Number.isSafeInteger(check.unresolvedCount) || check.unresolvedCount < 0 || check.unresolvedCount > 1_000_000
31
+ || !Array.isArray(findings) || findings.length > 32
32
+ || (check.error !== undefined && (typeof check.error !== 'string' || check.error.length > 2_048)))
33
+ return false;
34
+ return findings.every(rawFinding => {
35
+ const finding = asRecord(rawFinding);
36
+ const advisory = asRecord(finding?.advisory);
37
+ const paths = finding?.paths;
38
+ return validPackageCoordinate(finding?.package)
39
+ && typeof advisory?.id === 'string' && advisory.id.length > 0 && advisory.id.length <= 256
40
+ && typeof advisory.summary === 'string' && advisory.summary.length <= 8_192
41
+ && typeof advisory.details === 'string' && advisory.details.length <= 64 * 1_024
42
+ && (advisory.severity === 'unknown' || advisory.severity === 'info' || advisory.severity === 'low'
43
+ || advisory.severity === 'medium' || advisory.severity === 'high' || advisory.severity === 'critical')
44
+ && typeof advisory.modified === 'string' && advisory.modified.length <= 256
45
+ && (advisory.published === undefined || (typeof advisory.published === 'string' && advisory.published.length <= 256))
46
+ && (advisory.withdrawn === undefined || (typeof advisory.withdrawn === 'string' && advisory.withdrawn.length <= 256))
47
+ && Array.isArray(advisory.aliases) && advisory.aliases.length <= 100
48
+ && advisory.aliases.every(item => typeof item === 'string' && item.length <= 256)
49
+ && Array.isArray(advisory.fixedVersions) && advisory.fixedVersions.length <= 128
50
+ && advisory.fixedVersions.every(item => typeof item === 'string' && item.length <= 256)
51
+ && Array.isArray(advisory.references) && advisory.references.length <= 100
52
+ && advisory.references.every(item => typeof item === 'string' && item.length <= 4_096)
53
+ && Array.isArray(paths) && paths.length <= 4
54
+ && paths.every(path => Array.isArray(path) && path.length > 0 && path.length <= 64 && path.every(validPackageCoordinate));
55
+ });
56
+ }
19
57
  function validCompatibilityUpgradeCandidate(value) {
20
58
  const candidate = asRecord(value);
21
59
  const coordinate = asRecord(candidate?.candidate);
22
60
  const signals = candidate?.signals;
61
+ const dependencyCheck = candidate?.dependencyCheck;
23
62
  if (coordinate?.ecosystem !== 'npm'
24
63
  || typeof coordinate.name !== 'string' || coordinate.name.length === 0 || coordinate.name.length > 512
25
64
  || typeof coordinate.version !== 'string' || coordinate.version.length === 0 || coordinate.version.length > 512
26
65
  || !Array.isArray(signals) || signals.length > 64)
27
66
  return false;
67
+ if (dependencyCheck !== undefined && !validCompatibilityDependencyCheck(dependencyCheck))
68
+ return false;
28
69
  return signals.every(rawSignal => {
29
70
  const signal = asRecord(rawSignal);
30
71
  return typeof signal?.code === 'string' && signal.code.length > 0 && signal.code.length <= 256
@@ -41,8 +82,18 @@ function validCompatibilityUpgradePath(value) {
41
82
  const evaluated = path?.evaluated;
42
83
  const blockedCount = path?.blockedCount;
43
84
  const blocked = path?.blocked;
85
+ const vulnerabilityStatus = path?.vulnerabilityStatus;
86
+ const dependencyStatus = path?.dependencyStatus;
87
+ const uncheckedCount = path?.uncheckedCount;
44
88
  if (typeof evaluated !== 'number' || !Number.isSafeInteger(evaluated) || evaluated < 0 || evaluated > 1_000_000
45
89
  || typeof blockedCount !== 'number' || !Number.isSafeInteger(blockedCount) || blockedCount < 0 || blockedCount > evaluated
90
+ // 0.17.0 upgrade paths did not have this field; treat those persisted paths as legacy.
91
+ || (vulnerabilityStatus !== undefined
92
+ && vulnerabilityStatus !== 'checked' && vulnerabilityStatus !== 'unavailable' && vulnerabilityStatus !== 'not-requested')
93
+ || (dependencyStatus !== undefined
94
+ && dependencyStatus !== 'checked' && dependencyStatus !== 'partial' && dependencyStatus !== 'unavailable' && dependencyStatus !== 'not-requested')
95
+ || (uncheckedCount !== undefined
96
+ && (typeof uncheckedCount !== 'number' || !Number.isSafeInteger(uncheckedCount) || uncheckedCount < 0 || uncheckedCount > evaluated))
46
97
  || !Array.isArray(blocked) || blocked.length > 8
47
98
  || (path?.firstCandidate !== undefined && !validCompatibilityUpgradeCandidate(path.firstCandidate)))
48
99
  return false;
@@ -67,7 +118,7 @@ export function parseRadarState(value) {
67
118
  if (Object.keys(sourceHealth).length > 10 || Object.keys(activeSourceHealth).length > 1_000_000) {
68
119
  throw new Error('radar state exceeds the source health limit');
69
120
  }
70
- const sourceNames = new Set(['osv', 'npm-releases', 'github-releases']);
121
+ const sourceNames = new Set(['osv', 'npm-releases', 'npm-candidate-graphs', 'github-releases']);
71
122
  for (const [source, rawStatus] of Object.entries(sourceHealth)) {
72
123
  const status = asRecord(rawStatus);
73
124
  const failures = status?.consecutiveFailures;
@@ -1 +1 @@
1
- {"version":3,"file":"radar-state.js","sourceRoot":"","sources":["../../src/radar-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radar-state.js","sourceRoot":"","sources":["../../src/radar-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"radar-status.d.ts","sourceRoot":"","sources":["../../src/radar-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAA;AAEhG,eAAO,MAAM,mBAAmB,EAAG,sCAA+C,CAAA;AAIlF,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAA;AAC1E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;AAClE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAE3D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,iBAAiB,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,mBAAmB,CAAA;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,qBAAqB,CAAA;IACjC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,8BAA8B,EAAE,MAAM,CAAA;IACtC,gCAAgC,EAAE,MAAM,CAAA;IACxC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;CACrB;AAuBD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CA4CnB;AAmBD,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAmCnE"}
1
+ {"version":3,"file":"radar-status.d.ts","sourceRoot":"","sources":["../../src/radar-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAA;AAEhG,eAAO,MAAM,mBAAmB,EAAG,sCAA+C,CAAA;AAIlF,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAA;AAC1E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;AAClE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAE3D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,iBAAiB,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,mBAAmB,CAAA;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,qBAAqB,CAAA;IACjC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,8BAA8B,EAAE,MAAM,CAAA;IACtC,gCAAgC,EAAE,MAAM,CAAA;IACxC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;CACrB;AAuBD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CA4CnB;AAoBD,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAmCnE"}
@@ -1,5 +1,5 @@
1
1
  export const RADAR_STATUS_SCHEMA = 'upstream-radar.radar-status/v1alpha1';
2
- const RADAR_SOURCES = ['osv', 'npm-releases', 'github-releases'];
2
+ const RADAR_SOURCES = ['osv', 'npm-releases', 'npm-candidate-graphs', 'github-releases'];
3
3
  function sourceStatus(source, status) {
4
4
  if (status === undefined) {
5
5
  return { source, status: 'not-run', consecutiveFailures: 0 };
@@ -61,6 +61,8 @@ function sourceLabel(source) {
61
61
  return 'OSV';
62
62
  if (source === 'npm-releases')
63
63
  return 'npm releases';
64
+ if (source === 'npm-candidate-graphs')
65
+ return 'npm candidate dependency graphs';
64
66
  return 'GitHub releases';
65
67
  }
66
68
  function plural(value, singular, multiple = `${singular}s`) {
@@ -1 +1 @@
1
- {"version":3,"file":"radar-status.js","sourceRoot":"","sources":["../../src/radar-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radar-status.js","sourceRoot":"","sources":["../../src/radar-status.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAA+C,CAAA;AAElF,MAAM,aAAa,GAA2B,CAAC,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAA;AA0ChH,SAAS,YAAY,CAAC,MAAmB,EAAE,MAAsC;IAC/E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAA;IAC9D,CAAC;IACD,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QACjE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,GAAG,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5F,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;KAC3E,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAqC;IAC5D,OAAO,OAAO;SACX,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;SACvF,IAAI,EAAE;SACN,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACX,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,KAAiB,EACjB,OAAiC;IAEjC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/F,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IAC7E,MAAM,UAAU,GAA0B,eAAe,CAAC,MAAM,KAAK,CAAC;QACpE,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;IACzF,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAC9C,MAAM,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CACnD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EACxH,CAAC,CACF,CAAA;IACD,MAAM,8BAA8B,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAC3D,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CACpE,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CACxF,EAAE,CAAC,CAAC,EACL,CAAC,CACF,CAAA;IACD,MAAM,gCAAgC,GAAG,sBAAsB,GAAG,8BAA8B,CAAA;IAChG,MAAM,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CACnD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CACpE,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,IAAI,CAAC,CAAC,CACvD,EAAE,CAAC,CAAC,EACL,CAAC,CACF,CAAA;IACD,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU;QACV,QAAQ,EAAE,8BAA8B,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;QAC1E,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAChC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5F,sBAAsB;QACtB,8BAA8B;QAC9B,gCAAgC;QAChC,sBAAsB;QACtB,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,OAAO;QACP,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM;QACtE,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM;QAClE,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,MAAM;QACtE,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAAC,MAAM;KACxD,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,SAAS,GAAG,GAAG;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAE,CAAC,CAC1E,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAC1E,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAA;AAClF,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAClC,IAAI,MAAM,KAAK,cAAc;QAAE,OAAO,cAAc,CAAA;IACpD,IAAI,MAAM,KAAK,sBAAsB;QAAE,OAAO,iCAAiC,CAAA;IAC/E,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAQ,GAAG,GAAG,QAAQ,GAAG;IACxE,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AACxD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,KAAK,YAAY;QACrD,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAAE,yBAAyB,CAAC,GAAG;QAClF,CAAC,CAAC,MAAM,CAAC,gCAAgC,KAAK,CAAC;YAC7C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,gCAAgC,EAAE,qBAAqB,EAAE,uBAAuB,CAAC,iBAAiB,CAAA;IAC3H,MAAM,KAAK,GAAG;QACZ,uBAAuB;QACvB,eAAe,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QACpD,WAAW,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG;QACrI,UAAU,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE;QACtF,aAAa,MAAM,CAAC,QAAQ,GAAG,cAAc,EAAE;QAC/C,qBAAqB,MAAM,CAAC,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,SAAS,CAAC,EAAE;QAC9H,eAAe,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC7F,EAAE;QACF,UAAU;KACX,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS;YACxC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,CAAA;QACxH,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC,CAAA;QACxD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;IACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,2BAA2B,MAAM,CAAC,qBAAqB,EAAE,EACzD,mCAAmC,MAAM,CAAC,mBAAmB,EAAE,EAC/D,4BAA4B,MAAM,CAAC,kBAAkB,EAAE,EACvD,+BAA+B,MAAM,CAAC,oBAAoB,EAAE,CAC7D,CAAA;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0EAA0E,CAAC,CAAA;IAC5F,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;AAChC,CAAC"}
@@ -103,6 +103,14 @@ export interface AdvisoryMatch {
103
103
  package: PackageCoordinate;
104
104
  advisory: VulnerabilityAdvisory;
105
105
  }
106
+ export type CandidateDependencyGraphStatus = 'checked' | 'incomplete' | 'unavailable';
107
+ /** Result of resolving one exact upgrade candidate without loading or executing its package code. */
108
+ export interface CandidateDependencyGraphObservation {
109
+ candidate: PackageCoordinate;
110
+ status: CandidateDependencyGraphStatus;
111
+ graph?: DependencyGraph;
112
+ error?: string;
113
+ }
106
114
  export interface EventRoute {
107
115
  owner?: string;
108
116
  channels: string[];
@@ -135,16 +143,37 @@ export interface CompatibilitySignal {
135
143
  before?: string;
136
144
  after?: string;
137
145
  }
146
+ export interface CompatibilityDependencyFinding {
147
+ package: PackageCoordinate;
148
+ advisory: VulnerabilityAdvisory;
149
+ paths: PackageCoordinate[][];
150
+ }
151
+ export interface CompatibilityDependencyCheck {
152
+ status: CandidateDependencyGraphStatus;
153
+ nodeCount: number;
154
+ unresolvedCount: number;
155
+ findings: CompatibilityDependencyFinding[];
156
+ error?: string;
157
+ }
138
158
  export interface CompatibilityUpgradeCandidate {
139
159
  candidate: PackageCoordinate;
140
160
  signals: CompatibilitySignal[];
161
+ dependencyCheck?: CompatibilityDependencyCheck;
141
162
  }
163
+ export type CompatibilityVulnerabilityStatus = 'checked' | 'unavailable' | 'not-requested';
164
+ export type CompatibilityDependencyStatus = 'checked' | 'partial' | 'unavailable' | 'not-requested';
142
165
  /** A bounded explanation of which intermediate release is worth analyzing first. */
143
166
  export interface CompatibilityUpgradePath {
144
167
  /** Number of newer manifests considered from the npm packument. */
145
168
  evaluated: number;
146
169
  /** Number of considered candidates with a confirmed or strong blocker. */
147
170
  blockedCount: number;
171
+ /** Whether exact candidate versions were checked against the configured OSV source. */
172
+ vulnerabilityStatus: CompatibilityVulnerabilityStatus;
173
+ /** Whether the candidate dependency graphs were checked; partial means only the earliest bounded prefix was resolved. */
174
+ dependencyStatus?: CompatibilityDependencyStatus;
175
+ /** Number of candidate versions without a complete dependency check. */
176
+ uncheckedCount?: number;
148
177
  /** The first candidate without a deterministic blocker; this is not a safety verdict. */
149
178
  firstCandidate?: CompatibilityUpgradeCandidate;
150
179
  /** A small sample of blocked candidates, kept for an actionable alert. */
@@ -160,7 +189,7 @@ export interface CompatibilityEvent extends RadarEventBase {
160
189
  releaseNotes?: string;
161
190
  releaseNotesUrl?: string;
162
191
  }
163
- export type RadarSource = 'osv' | 'npm-releases' | 'github-releases';
192
+ export type RadarSource = 'osv' | 'npm-releases' | 'npm-candidate-graphs' | 'github-releases';
164
193
  export interface SourceHealthStatus {
165
194
  lastAttemptedAt: string;
166
195
  lastSucceededAt?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"radar-types.d.ts","sourceRoot":"","sources":["../../src/radar-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radar-types.d.ts","sourceRoot":"","sources":["../../src/radar-types.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import type { ReleaseNotesSource } from './github-release.js';
2
2
  import type { NpmReleaseObservation } from './npm-release.js';
3
- import { type AdvisoryMatch, type AnalysisTask, type PackageCoordinate, type ProjectInventory, type RadarEvent, type RadarSource, type RadarState } from './radar-types.js';
3
+ import { type AdvisoryMatch, type AnalysisTask, type CandidateDependencyGraphObservation, type PackageCoordinate, type ProjectInventory, type RadarEvent, type RadarSource, type RadarState } from './radar-types.js';
4
4
  export interface AdvisorySource {
5
5
  query(packages: readonly PackageCoordinate[]): Promise<Map<string, AdvisoryMatch[]>>;
6
6
  }
7
7
  export interface ReleaseSource {
8
8
  query(packages: readonly PackageCoordinate[]): Promise<Map<string, NpmReleaseObservation>>;
9
9
  }
10
+ export interface CandidateDependencySource {
11
+ query(packages: readonly PackageCoordinate[]): Promise<Map<string, CandidateDependencyGraphObservation>>;
12
+ }
10
13
  export interface RadarPollResult {
11
14
  checkedAt: string;
12
15
  packagesQueried: number;
@@ -21,5 +24,5 @@ export interface RadarPollResult {
21
24
  }
22
25
  export declare function emptyRadarState(): RadarState;
23
26
  /** Query exact installed versions, calculate affected paths, and emit state transitions only. */
24
- export declare function pollRadar(inventories: readonly ProjectInventory[], previousState: RadarState, source: AdvisorySource, now?: Date, releaseSource?: ReleaseSource, releaseNotesSource?: ReleaseNotesSource): Promise<RadarPollResult>;
27
+ export declare function pollRadar(inventories: readonly ProjectInventory[], previousState: RadarState, source: AdvisorySource, now?: Date, releaseSource?: ReleaseSource, releaseNotesSource?: ReleaseNotesSource, candidateDependencySource?: CandidateDependencySource): Promise<RadarPollResult>;
25
28
  //# sourceMappingURL=radar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radar.d.ts","sourceRoot":"","sources":["../../src/radar.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAG7D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAGjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EAOhB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;CACrF;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAA;CAC3F;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7D,KAAK,EAAE,UAAU,CAAA;CAClB;AAwID,wBAAgB,eAAe,IAAI,UAAU,CAS5C;AAED,iGAAiG;AACjG,wBAAsB,SAAS,CAC7B,WAAW,EAAE,SAAS,gBAAgB,EAAE,EACxC,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,cAAc,EACtB,GAAG,OAAa,EAChB,aAAa,CAAC,EAAE,aAAa,EAC7B,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,eAAe,CAAC,CA8S1B"}
1
+ {"version":3,"file":"radar.d.ts","sourceRoot":"","sources":["../../src/radar.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAG7D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mCAAmC,EAOxC,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EAQhB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;CACrF;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAA;CAC3F;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC,CAAA;CACzG;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7D,KAAK,EAAE,UAAU,CAAA;CAClB;AA8PD,wBAAgB,eAAe,IAAI,UAAU,CAS5C;AAED,iGAAiG;AACjG,wBAAsB,SAAS,CAC7B,WAAW,EAAE,SAAS,gBAAgB,EAAE,EACxC,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,cAAc,EACtB,GAAG,OAAa,EAChB,aAAa,CAAC,EAAE,aAAa,EAC7B,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,yBAAyB,CAAC,EAAE,yBAAyB,GACpD,OAAO,CAAC,eAAe,CAAC,CA+a1B"}
package/dist/src/radar.js CHANGED
@@ -2,10 +2,16 @@ import { createHash } from 'node:crypto';
2
2
  import { createAnalysisTask } from './dsh-analysis.js';
3
3
  import { assessCompatibilityChanges } from './compatibility.js';
4
4
  import { findDependencyPaths } from './graph.js';
5
+ import { MAX_CANDIDATE_GRAPHS } from './npm-candidate.js';
5
6
  import { compareSemverValues } from './semver.js';
6
7
  import { packageKey } from './osv.js';
7
8
  import { RADAR_EVENT_SCHEMA, RADAR_STATE_SCHEMA, } from './radar-types.js';
8
9
  const SOURCE_FAILURE_ALERT_THRESHOLD = 3;
10
+ const MAX_CANDIDATE_VULNERABILITY_QUERY = 50_000;
11
+ const MAX_DEEP_CANDIDATES_PER_STREAM = 4;
12
+ const MAX_CANDIDATE_DEPENDENCY_QUERY = 50_000;
13
+ const MAX_CANDIDATE_DEPENDENCY_FINDINGS = 32;
14
+ const MAX_CANDIDATE_DEPENDENCY_PATHS = 4;
9
15
  function hash(value) {
10
16
  return createHash('sha256').update(value).digest('hex').slice(0, 24);
11
17
  }
@@ -57,6 +63,102 @@ function releaseCandidateStatus(observation) {
57
63
  return 'older';
58
64
  return 'same';
59
65
  }
66
+ function candidateAdvisories(observation, matches) {
67
+ const result = new Map();
68
+ for (const candidate of observation.upgradeCandidates ?? []) {
69
+ const item = coordinate(candidate.name, candidate.version);
70
+ result.set(packageKey(item), (matches.get(packageKey(item)) ?? []).map(match => match.advisory));
71
+ }
72
+ return result;
73
+ }
74
+ function candidatePackages(releases) {
75
+ const result = new Map();
76
+ for (const observation of releases.values()) {
77
+ if (releaseCandidateStatus(observation) !== 'newer')
78
+ continue;
79
+ for (const candidate of observation.upgradeCandidates ?? []) {
80
+ const item = coordinate(candidate.name, candidate.version);
81
+ result.set(packageKey(item), item);
82
+ }
83
+ }
84
+ return [...result.values()];
85
+ }
86
+ function candidateGraphPackages(releases) {
87
+ const result = new Map();
88
+ for (const observation of releases.values()) {
89
+ if (releaseCandidateStatus(observation) !== 'newer')
90
+ continue;
91
+ for (const candidate of (observation.upgradeCandidates ?? []).slice(0, MAX_DEEP_CANDIDATES_PER_STREAM)) {
92
+ const item = coordinate(candidate.name, candidate.version);
93
+ result.set(packageKey(item), item);
94
+ }
95
+ }
96
+ return [...result.values()];
97
+ }
98
+ function candidateDependencyStatus(observation, checks, requested) {
99
+ if (!requested || observation.upgradeCandidates === undefined || observation.upgradeCandidates.length === 0) {
100
+ return 'not-requested';
101
+ }
102
+ const selected = observation.upgradeCandidates.slice(0, MAX_DEEP_CANDIDATES_PER_STREAM);
103
+ const selectedChecks = selected.map(candidate => checks.get(packageKey(coordinate(candidate.name, candidate.version))));
104
+ if (selectedChecks.some(check => check === undefined || check.status === 'unavailable')) {
105
+ return 'unavailable';
106
+ }
107
+ return observation.upgradeCandidates.length > selected.length || selectedChecks.some(check => check?.status === 'incomplete')
108
+ ? 'partial'
109
+ : 'checked';
110
+ }
111
+ function findingKey(item) {
112
+ return `${packageKey(item.package)}\0${item.advisory.id}`;
113
+ }
114
+ function collectCandidateDependencyFindings(graph, matches) {
115
+ const grouped = new Map();
116
+ for (const node of graph.nodes) {
117
+ const affected = coordinate(node.name, node.version);
118
+ const paths = findDependencyPaths(graph, node.id, {
119
+ maxPaths: MAX_CANDIDATE_DEPENDENCY_PATHS,
120
+ maxDepth: 64,
121
+ }).map(path => path.map(item => coordinate(item.name, item.version)));
122
+ if (paths.length === 0)
123
+ continue;
124
+ for (const match of matches.get(packageKey(affected)) ?? []) {
125
+ const finding = {
126
+ package: { ...match.package },
127
+ advisory: { ...match.advisory },
128
+ paths: paths.map(path => [...path]),
129
+ };
130
+ const key = findingKey(finding);
131
+ const existing = grouped.get(key);
132
+ if (existing === undefined) {
133
+ grouped.set(key, finding);
134
+ continue;
135
+ }
136
+ const known = new Set(existing.paths.map(path => JSON.stringify(path)));
137
+ for (const path of finding.paths) {
138
+ const serialized = JSON.stringify(path);
139
+ if (known.has(serialized) || existing.paths.length >= MAX_CANDIDATE_DEPENDENCY_PATHS)
140
+ continue;
141
+ existing.paths.push(path);
142
+ known.add(serialized);
143
+ }
144
+ }
145
+ }
146
+ return [...grouped.values()]
147
+ .sort((left, right) => findingKey(left).localeCompare(findingKey(right)))
148
+ .slice(0, MAX_CANDIDATE_DEPENDENCY_FINDINGS);
149
+ }
150
+ function candidateDependencyCheck(observation) {
151
+ const status = observation === undefined || observation.graph === undefined
152
+ ? 'unavailable'
153
+ : observation.status;
154
+ return {
155
+ status,
156
+ nodeCount: observation?.graph?.nodes.length ?? 0,
157
+ unresolvedCount: observation?.graph?.unresolved?.length ?? 0,
158
+ findings: [],
159
+ ...(observation?.error === undefined ? {} : { error: observation.error }),
160
+ };
161
+ }
60
162
  function sourceHealthKey(projectId, source) {
61
163
  return `${projectId}\0${source}`;
62
164
  }
@@ -116,7 +218,7 @@ export function emptyRadarState() {
116
218
  };
117
219
  }
118
220
  /** Query exact installed versions, calculate affected paths, and emit state transitions only. */
119
- export async function pollRadar(inventories, previousState, source, now = new Date(), releaseSource, releaseNotesSource) {
221
+ export async function pollRadar(inventories, previousState, source, now = new Date(), releaseSource, releaseNotesSource, candidateDependencySource) {
120
222
  if (previousState.schema !== RADAR_STATE_SCHEMA)
121
223
  throw new Error('unsupported radar state schema');
122
224
  if (!Number.isFinite(now.getTime()))
@@ -136,10 +238,11 @@ export async function pollRadar(inventories, previousState, source, now = new Da
136
238
  }
137
239
  let matches = new Map();
138
240
  let vulnerabilityCheckSucceeded = true;
241
+ let osvSourceSucceeded = true;
242
+ let osvFailureMessage;
139
243
  attemptedSources.add('osv');
140
244
  try {
141
245
  matches = await source.query([...uniquePackages.values()]);
142
- sourceHealth = recordSourceHealth(sourceHealth, 'osv', checkedAt, true);
143
246
  }
144
247
  catch (error) {
145
248
  const raw = error instanceof Error ? error.message : String(error);
@@ -148,7 +251,8 @@ export async function pollRadar(inventories, previousState, source, now = new Da
148
251
  source: 'osv',
149
252
  message,
150
253
  });
151
- sourceHealth = recordSourceHealth(sourceHealth, 'osv', checkedAt, false, message);
254
+ osvSourceSucceeded = false;
255
+ osvFailureMessage = message;
152
256
  vulnerabilityCheckSucceeded = false;
153
257
  }
154
258
  const current = vulnerabilityCheckSucceeded
@@ -253,6 +357,10 @@ export async function pollRadar(inventories, previousState, source, now = new Da
253
357
  }
254
358
  }
255
359
  let activeCompatibility = previousState.activeCompatibility;
360
+ let candidateVulnerabilityMatches = new Map();
361
+ let candidateVulnerabilityStatus = 'not-requested';
362
+ let candidateDependencyChecks = new Map();
363
+ let candidateDependencySourceRequested = false;
256
364
  if (releaseSource !== undefined) {
257
365
  attemptedSources.add('npm-releases');
258
366
  let releases;
@@ -273,6 +381,121 @@ export async function pollRadar(inventories, previousState, source, now = new Da
273
381
  releases = new Map();
274
382
  }
275
383
  if (releaseCheckSucceeded) {
384
+ const candidateQueryPackages = candidatePackages(releases);
385
+ if (candidateQueryPackages.length > 0) {
386
+ if (candidateQueryPackages.length > MAX_CANDIDATE_VULNERABILITY_QUERY) {
387
+ const message = `OSV candidate query exceeds the ${MAX_CANDIDATE_VULNERABILITY_QUERY} package limit`;
388
+ sourceErrors.push({ source: 'osv', message });
389
+ osvSourceSucceeded = false;
390
+ osvFailureMessage = message;
391
+ candidateVulnerabilityStatus = 'unavailable';
392
+ }
393
+ else {
394
+ try {
395
+ const queried = await source.query(candidateQueryPackages);
396
+ if (candidateQueryPackages.some(item => !queried.has(packageKey(item)))) {
397
+ throw new Error('OSV candidate response does not cover every submitted package version');
398
+ }
399
+ candidateVulnerabilityMatches = queried;
400
+ candidateVulnerabilityStatus = 'checked';
401
+ }
402
+ catch (error) {
403
+ const raw = error instanceof Error ? error.message : String(error);
404
+ const message = raw.replace(/[\u0000-\u001f\u007f-\u009f]/g, '?').slice(0, 2_048);
405
+ sourceErrors.push({ source: 'osv', message });
406
+ osvSourceSucceeded = false;
407
+ osvFailureMessage = message;
408
+ candidateVulnerabilityStatus = 'unavailable';
409
+ }
410
+ }
411
+ }
412
+ if (candidateDependencySource !== undefined) {
413
+ const graphCandidates = candidateGraphPackages(releases).slice(0, MAX_CANDIDATE_GRAPHS);
414
+ if (graphCandidates.length > 0) {
415
+ candidateDependencySourceRequested = true;
416
+ attemptedSources.add('npm-candidate-graphs');
417
+ let graphObservations = new Map();
418
+ let graphSourceSucceeded = false;
419
+ try {
420
+ graphObservations = await candidateDependencySource.query(graphCandidates);
421
+ if (graphCandidates.some(item => !graphObservations.has(packageKey(item)))) {
422
+ throw new Error('candidate dependency graph response does not cover every submitted package version');
423
+ }
424
+ graphSourceSucceeded = true;
425
+ sourceHealth = recordSourceHealth(sourceHealth, 'npm-candidate-graphs', checkedAt, true);
426
+ }
427
+ catch (error) {
428
+ const raw = error instanceof Error ? error.message : String(error);
429
+ const message = raw.replace(/[\u0000-\u001f\u007f-\u009f]/g, '?').slice(0, 2_048);
430
+ sourceErrors.push({
431
+ source: 'npm-candidate-graphs',
432
+ message,
433
+ });
434
+ sourceHealth = recordSourceHealth(sourceHealth, 'npm-candidate-graphs', checkedAt, false, message);
435
+ }
436
+ for (const candidate of graphCandidates) {
437
+ const key = packageKey(candidate);
438
+ candidateDependencyChecks.set(key, candidateDependencyCheck(graphSourceSucceeded ? graphObservations.get(key) : undefined));
439
+ }
440
+ if (graphSourceSucceeded) {
441
+ const dependencyQueryPackages = [...new Map([...graphObservations.values()]
442
+ .flatMap(observation => observation.graph === undefined || observation.status === 'unavailable'
443
+ ? []
444
+ : observation.graph.nodes.map(node => {
445
+ const item = coordinate(node.name, node.version);
446
+ return [packageKey(item), item];
447
+ }))).values()];
448
+ if (dependencyQueryPackages.length > MAX_CANDIDATE_DEPENDENCY_QUERY) {
449
+ const message = `OSV candidate dependency query exceeds the ${MAX_CANDIDATE_DEPENDENCY_QUERY} package limit`;
450
+ sourceErrors.push({ source: 'osv', message });
451
+ osvSourceSucceeded = false;
452
+ osvFailureMessage = message;
453
+ for (const [key, check] of candidateDependencyChecks) {
454
+ candidateDependencyChecks.set(key, {
455
+ ...check,
456
+ status: 'unavailable',
457
+ error: message,
458
+ });
459
+ }
460
+ }
461
+ else if (dependencyQueryPackages.length > 0) {
462
+ try {
463
+ const queried = await source.query(dependencyQueryPackages);
464
+ if (dependencyQueryPackages.some(item => !queried.has(packageKey(item)))) {
465
+ throw new Error('OSV candidate dependency response does not cover every submitted package version');
466
+ }
467
+ for (const candidate of graphCandidates) {
468
+ const key = packageKey(candidate);
469
+ const check = candidateDependencyChecks.get(key);
470
+ const observation = graphObservations.get(key);
471
+ if (check === undefined || observation?.graph === undefined || check.status === 'unavailable')
472
+ continue;
473
+ candidateDependencyChecks.set(key, {
474
+ ...check,
475
+ findings: collectCandidateDependencyFindings(observation.graph, queried),
476
+ });
477
+ }
478
+ }
479
+ catch (error) {
480
+ const raw = error instanceof Error ? error.message : String(error);
481
+ const message = raw.replace(/[\u0000-\u001f\u007f-\u009f]/g, '?').slice(0, 2_048);
482
+ sourceErrors.push({ source: 'osv', message });
483
+ osvSourceSucceeded = false;
484
+ osvFailureMessage = message;
485
+ for (const [key, check] of candidateDependencyChecks) {
486
+ if (check.status === 'unavailable')
487
+ continue;
488
+ candidateDependencyChecks.set(key, {
489
+ ...check,
490
+ status: 'unavailable',
491
+ error: message,
492
+ });
493
+ }
494
+ }
495
+ }
496
+ }
497
+ }
498
+ }
276
499
  let releaseNotes = new Map();
277
500
  let releaseNotesCheckSucceeded = releaseNotesSource === undefined;
278
501
  if (releaseNotesSource !== undefined) {
@@ -325,6 +548,14 @@ export async function pollRadar(inventories, previousState, source, now = new Da
325
548
  candidate: observation.candidate,
326
549
  detectedAt: checkedAt,
327
550
  ...(observation.upgradeCandidates === undefined ? {} : { upgradeCandidates: observation.upgradeCandidates }),
551
+ ...(observation.upgradeCandidates === undefined ? {} : {
552
+ candidateVulnerabilities: candidateAdvisories(observation, candidateVulnerabilityMatches),
553
+ candidateVulnerabilityStatus,
554
+ ...(candidateDependencySourceRequested ? {
555
+ candidateDependencyChecks,
556
+ candidateDependencyStatus: candidateDependencyStatus(observation, candidateDependencyChecks, true),
557
+ } : {}),
558
+ }),
328
559
  ...releaseNotesInput,
329
560
  ...releaseNotesUrlInput,
330
561
  });
@@ -365,6 +596,7 @@ export async function pollRadar(inventories, previousState, source, now = new Da
365
596
  activeCompatibility = Object.fromEntries(currentCompatibility);
366
597
  }
367
598
  }
599
+ sourceHealth = recordSourceHealth(sourceHealth, 'osv', checkedAt, osvSourceSucceeded, osvFailureMessage);
368
600
  let activeSourceHealth = previousState.activeSourceHealth ?? {};
369
601
  const currentSourceHealth = new Map(Object.entries(activeSourceHealth));
370
602
  for (const inventory of inventories) {