@telora/daemon 0.15.37 → 0.15.42

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 (47) hide show
  1. package/build-info.json +2 -2
  2. package/dist/assembly-resolvers.d.ts +1 -1
  3. package/dist/assembly-resolvers.d.ts.map +1 -1
  4. package/dist/feeds/ghsa.d.ts +97 -0
  5. package/dist/feeds/ghsa.d.ts.map +1 -0
  6. package/dist/feeds/ghsa.js +226 -0
  7. package/dist/feeds/ghsa.js.map +1 -0
  8. package/dist/feeds/local.d.ts +55 -0
  9. package/dist/feeds/local.d.ts.map +1 -0
  10. package/dist/feeds/local.js +196 -0
  11. package/dist/feeds/local.js.map +1 -0
  12. package/dist/feeds/osv.d.ts +98 -0
  13. package/dist/feeds/osv.d.ts.map +1 -0
  14. package/dist/feeds/osv.js +277 -0
  15. package/dist/feeds/osv.js.map +1 -0
  16. package/dist/focus-engine.d.ts.map +1 -1
  17. package/dist/focus-engine.js +47 -0
  18. package/dist/focus-engine.js.map +1 -1
  19. package/dist/focus-executor.d.ts +53 -0
  20. package/dist/focus-executor.d.ts.map +1 -1
  21. package/dist/focus-executor.js +41 -26
  22. package/dist/focus-executor.js.map +1 -1
  23. package/dist/scanners/deps.d.ts +101 -0
  24. package/dist/scanners/deps.d.ts.map +1 -0
  25. package/dist/scanners/deps.js +242 -0
  26. package/dist/scanners/deps.js.map +1 -0
  27. package/dist/scanners/signatures.d.ts +44 -0
  28. package/dist/scanners/signatures.d.ts.map +1 -0
  29. package/dist/scanners/signatures.js +140 -0
  30. package/dist/scanners/signatures.js.map +1 -0
  31. package/dist/scanners/workflow.d.ts +42 -0
  32. package/dist/scanners/workflow.d.ts.map +1 -0
  33. package/dist/scanners/workflow.js +325 -0
  34. package/dist/scanners/workflow.js.map +1 -0
  35. package/dist/security-auto-inject.d.ts +114 -0
  36. package/dist/security-auto-inject.d.ts.map +1 -0
  37. package/dist/security-auto-inject.js +148 -0
  38. package/dist/security-auto-inject.js.map +1 -0
  39. package/dist/security-rescan-resolution.d.ts +84 -0
  40. package/dist/security-rescan-resolution.d.ts.map +1 -0
  41. package/dist/security-rescan-resolution.js +114 -0
  42. package/dist/security-rescan-resolution.js.map +1 -0
  43. package/dist/security-scan-engine.d.ts +102 -0
  44. package/dist/security-scan-engine.d.ts.map +1 -0
  45. package/dist/security-scan-engine.js +202 -0
  46. package/dist/security-scan-engine.js.map +1 -0
  47. package/package.json +3 -2
@@ -57,52 +57,67 @@ export function initGovernor(gov) {
57
57
  governor = gov;
58
58
  }
59
59
  /**
60
- * Pre-spawn guard: enforce rank-ordered execution.
60
+ * Pre-spawn guard: rank-ordered walk that collects every agent-actionable
61
+ * delivery into the spawn set.
61
62
  *
62
- * Walk deliveries in priority_rank order (already sorted by API).
63
- * A delivery is actionable only if all lower-ranked deliveries are non-blocking.
63
+ * "Actionable" and "blocking" are independent properties of a status:
64
+ *
65
+ * - actionable = `isStatusAgentActionable(status)` -- queued | coding |
66
+ * awaiting_verify. Work the team can pick up.
67
+ * - blocking = `isStatusBlocking(status)` -- statuses that gate
68
+ * subsequent ranks (queued, coding, planning, paused).
69
+ *
70
+ * A delivery may be actionable and blocking (queued, coding -- the common
71
+ * case), actionable and non-blocking (`awaiting_verify` -- has remediation
72
+ * work from a review pass, but the next-ranked queued delivery should not
73
+ * wait on it), or non-actionable and blocking (planning, paused -- gates
74
+ * the queue and the team has nothing to do here).
75
+ *
76
+ * Walk semantics:
77
+ * - Collect every actionable delivery into the spawn set.
78
+ * - Stop the walk when we hit the first blocking-and-not-actionable status
79
+ * (planning, paused). Lower-ranked deliveries past this point are gated.
80
+ * - Skip past non-blocking non-actionable statuses (done, cancelled, verify,
81
+ * in_review) without breaking the walk.
64
82
  *
65
83
  * Returns:
66
84
  * - 'planning' when the focus has zero deliveries (agent will scope them).
67
- * - 'execute' with the filtered actionable deliveries when work is queued.
68
- * - 'skip' when a non-actionable blocking status holds at the front of the queue.
85
+ * - 'execute' with the collected actionable deliveries.
86
+ * - 'skip' when the walk found zero actionable deliveries.
69
87
  *
70
- * Multi-delivery handling: when bulk-queue lands all `planning` deliveries to
71
- * `queued` at focus activation (see migration
72
- * 20260501221417_bulk_queue_planning_deliveries_on_focus_activation.sql), this
73
- * filter returns ALL queued/coding deliveries. The team lead receives the
74
- * complete list at spawn and decides ordering and parallelism. Rank order is
75
- * still surfaced via the delivery listing (lower rank rendered first), but it
76
- * is informational guidance, not a serializer.
88
+ * Why awaiting_verify must be in the spawn set: the auto-review loop
89
+ * routes a delivery from `in_review` -> `awaiting_verify` when the review
90
+ * agent finds remediation work, clears `review_requested_at`, and emits a
91
+ * `review_completed` loop trigger. The next poll re-derives phase from
92
+ * `ACTIVE_STATUSES` (which includes awaiting_verify), so the focus is
93
+ * eligible to spawn. If this guard then skips past `awaiting_verify`, no
94
+ * team ever picks up the remediation issues and the loop dies after the
95
+ * first pass. See delivery ac5c69f7.
77
96
  */
78
- function findActionableDeliveries(deliveries, focusName) {
79
- // Zero deliveries -- the team's first act is to scope them.
97
+ export function findActionableDeliveries(deliveries, focusName) {
80
98
  if (deliveries.length === 0) {
81
99
  return { kind: 'planning' };
82
100
  }
83
- let nextActionable = null;
101
+ const actionable = [];
84
102
  for (const d of deliveries) {
85
103
  const status = d.executionStatus ?? '';
86
- if (!isStatusBlocking(status))
87
- continue;
88
104
  if (isStatusAgentActionable(status)) {
89
- nextActionable = d;
105
+ actionable.push(d);
106
+ continue;
90
107
  }
91
- else {
92
- // Blocking status (planning, paused) prevents subsequent deliveries
108
+ if (isStatusBlocking(status)) {
93
109
  console.log(`[focus-executor] Delivery "${d.name}" (rank ${d.priorityRank}) ` +
94
110
  `is in "${status}" state -- blocking subsequent deliveries in focus "${focusName}"`);
111
+ break;
95
112
  }
96
- break;
113
+ // non-blocking + non-actionable (done, cancelled, verify, in_review):
114
+ // skip past without gating
97
115
  }
98
- if (!nextActionable || !isStatusAgentActionable(nextActionable.executionStatus ?? '')) {
116
+ if (actionable.length === 0) {
99
117
  console.log(`[focus-executor] No actionable deliveries for focus "${focusName}" -- skipping spawn`);
100
118
  return { kind: 'skip' };
101
119
  }
102
- return {
103
- kind: 'execute',
104
- deliveries: deliveries.filter(d => isStatusAgentActionable(d.executionStatus ?? '')),
105
- };
120
+ return { kind: 'execute', deliveries: actionable };
106
121
  }
107
122
  // ── Team spawning ────────────────────────────────────────────────────
108
123
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"focus-executor.js","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus-executor.js","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * npm-audit deps scanner for the security scan engine.
3
+ *
4
+ * Spawns `npm audit --json` in the product's repo path and maps the v7+
5
+ * audit output into FindingDraft rows for the 'deps' IOC class. npm audit
6
+ * exits non-zero whenever findings exist; that is normal behaviour, not
7
+ * an error. We only treat the run as failed when the JSON itself is
8
+ * unparseable.
9
+ *
10
+ * Severity mapping: npm uses {info, low, moderate, high, critical}; the
11
+ * security_findings schema uses {low, medium, high, critical}. We map
12
+ * `moderate` -> `medium` and skip `info` entries (advisory-only noise).
13
+ *
14
+ * @module scanners/deps
15
+ */
16
+ import type { Scanner, Severity } from '../security-scan-engine.js';
17
+ import { type OsvAdvisory } from '../feeds/osv.js';
18
+ import { type GhsaAdvisory } from '../feeds/ghsa.js';
19
+ import { type IocFeedEntry } from '../feeds/local.js';
20
+ type NpmSeverity = 'info' | 'low' | 'moderate' | 'high' | 'critical';
21
+ interface NpmAuditViaObject {
22
+ source?: number;
23
+ name?: string;
24
+ url?: string;
25
+ title?: string;
26
+ severity?: NpmSeverity;
27
+ cwe?: string[];
28
+ cvss?: {
29
+ score?: number;
30
+ vectorString?: string;
31
+ };
32
+ range?: string;
33
+ }
34
+ type NpmAuditVia = string | NpmAuditViaObject;
35
+ interface NpmAuditVulnerability {
36
+ name?: string;
37
+ severity?: NpmSeverity;
38
+ via?: NpmAuditVia[];
39
+ range?: string;
40
+ nodes?: string[];
41
+ fixAvailable?: boolean | {
42
+ name: string;
43
+ version: string;
44
+ isSemVerMajor: boolean;
45
+ };
46
+ }
47
+ interface NpmAuditOutput {
48
+ vulnerabilities?: Record<string, NpmAuditVulnerability>;
49
+ metadata?: {
50
+ vulnerabilities?: Record<NpmSeverity, number>;
51
+ dependencies?: Record<string, number> | {
52
+ total?: number;
53
+ };
54
+ };
55
+ }
56
+ export interface NpmAuditResult {
57
+ stdout: string;
58
+ exitCode: number;
59
+ }
60
+ export type NpmAuditRunner = (repoPath: string) => Promise<NpmAuditResult>;
61
+ declare function mapSeverity(s: NpmSeverity | undefined): Severity | null;
62
+ declare function parseAuditJson(raw: string): NpmAuditOutput;
63
+ export interface DepsScannerExternalDeps {
64
+ runNpmAudit: NpmAuditRunner;
65
+ /** Optional OSV adapter; default uses the real OSV.dev client. */
66
+ queryOsv?: (input: {
67
+ packages: Array<{
68
+ name: string;
69
+ version: string;
70
+ ecosystem: 'npm';
71
+ }>;
72
+ }) => Promise<{
73
+ advisories: OsvAdvisory[];
74
+ warnings: string[];
75
+ }>;
76
+ /** Optional GHSA adapter; default uses the real GHSA REST client. */
77
+ queryGhsa?: (input: {
78
+ packages: Array<{
79
+ name: string;
80
+ ecosystem: 'npm';
81
+ }>;
82
+ githubToken?: string;
83
+ }) => Promise<{
84
+ advisories: GhsaAdvisory[];
85
+ warnings: string[];
86
+ }>;
87
+ /** Optional local IOC feed loader; default reads from security_ioc_feed_entries. */
88
+ loadLocalIocFeed?: (organizationId: string, iocClass?: string) => Promise<IocFeedEntry[]>;
89
+ }
90
+ export declare function createDepsScanner(opts: DepsScannerExternalDeps): Scanner;
91
+ declare function computePackagesAudited(audit: NpmAuditOutput): number;
92
+ export declare const depsScanner: Scanner;
93
+ /** Test seam re-export for unit tests. */
94
+ export declare const _internal: {
95
+ defaultRunNpmAudit: NpmAuditRunner;
96
+ mapSeverity: typeof mapSeverity;
97
+ parseAuditJson: typeof parseAuditJson;
98
+ computePackagesAudited: typeof computePackagesAudited;
99
+ };
100
+ export {};
101
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/scanners/deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * npm-audit deps scanner for the security scan engine.
3
+ *
4
+ * Spawns `npm audit --json` in the product's repo path and maps the v7+
5
+ * audit output into FindingDraft rows for the 'deps' IOC class. npm audit
6
+ * exits non-zero whenever findings exist; that is normal behaviour, not
7
+ * an error. We only treat the run as failed when the JSON itself is
8
+ * unparseable.
9
+ *
10
+ * Severity mapping: npm uses {info, low, moderate, high, critical}; the
11
+ * security_findings schema uses {low, medium, high, critical}. We map
12
+ * `moderate` -> `medium` and skip `info` entries (advisory-only noise).
13
+ *
14
+ * @module scanners/deps
15
+ */
16
+ import { spawn } from 'node:child_process';
17
+ import { queryOsv } from '../feeds/osv.js';
18
+ import { queryGhsa } from '../feeds/ghsa.js';
19
+ import { loadLocalIocFeed, matchesPattern } from '../feeds/local.js';
20
+ const defaultRunNpmAudit = (repoPath) => new Promise((resolve, reject) => {
21
+ const child = spawn('npm', ['audit', '--json'], {
22
+ cwd: repoPath,
23
+ stdio: ['ignore', 'pipe', 'pipe'],
24
+ });
25
+ let stdout = '';
26
+ child.stdout?.on('data', (chunk) => {
27
+ stdout += chunk.toString('utf8');
28
+ });
29
+ // stderr is discarded -- npm emits progress/warnings there that
30
+ // are not useful for the audit decision.
31
+ child.on('error', (err) => {
32
+ reject(err);
33
+ });
34
+ child.on('close', (code) => {
35
+ resolve({ stdout, exitCode: code ?? 0 });
36
+ });
37
+ });
38
+ // ---------------------------------------------------------------------------
39
+ // Severity mapping
40
+ // ---------------------------------------------------------------------------
41
+ function mapSeverity(s) {
42
+ switch (s) {
43
+ case 'low':
44
+ return 'low';
45
+ case 'moderate':
46
+ return 'medium';
47
+ case 'high':
48
+ return 'high';
49
+ case 'critical':
50
+ return 'critical';
51
+ case 'info':
52
+ case undefined:
53
+ default:
54
+ return null;
55
+ }
56
+ }
57
+ // ---------------------------------------------------------------------------
58
+ // JSON shape guard
59
+ // ---------------------------------------------------------------------------
60
+ function isRecord(value) {
61
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
62
+ }
63
+ function parseAuditJson(raw) {
64
+ const parsed = JSON.parse(raw);
65
+ if (!isRecord(parsed)) {
66
+ throw new Error('npm audit JSON: top-level value is not an object');
67
+ }
68
+ // Shallow validation -- we treat unknown fields as opaque payload data
69
+ // rather than failing the scan on schema drift.
70
+ return parsed;
71
+ }
72
+ function extractPackagesFromVulns(vulns) {
73
+ // npm audit doesn't include a version in vulnerabilities, just a range.
74
+ // We use the range as a coarse 'version' for OSV's query -- OSV's batch
75
+ // tolerates ranges via an empty version when set carefully, but to keep
76
+ // the contract simple we pass the leftmost concrete version when we can
77
+ // extract one, otherwise '0.0.0' so OSV returns no match (and we still
78
+ // surface the npm-audit finding without enrichment).
79
+ const out = [];
80
+ for (const [name, advisory] of Object.entries(vulns)) {
81
+ const range = typeof advisory.range === 'string' ? advisory.range : '';
82
+ const version = range.match(/\d+\.\d+\.\d+/)?.[0] ?? '0.0.0';
83
+ out.push({ name, version });
84
+ }
85
+ return out;
86
+ }
87
+ export function createDepsScanner(opts) {
88
+ const osv = opts.queryOsv ?? ((input) => queryOsv({ packages: input.packages }));
89
+ const ghsa = opts.queryGhsa ?? ((input) => queryGhsa({ packages: input.packages, githubToken: input.githubToken }));
90
+ const local = opts.loadLocalIocFeed ?? loadLocalIocFeed;
91
+ return {
92
+ iocClass: 'deps',
93
+ async scan(ctx) {
94
+ const { stdout, exitCode } = await opts.runNpmAudit(ctx.repoPath);
95
+ let audit;
96
+ try {
97
+ audit = parseAuditJson(stdout);
98
+ }
99
+ catch (err) {
100
+ // Non-zero exit with empty/invalid JSON -- the scanner cannot
101
+ // distinguish "no vulnerabilities" from "npm crashed". Surface
102
+ // the failure to the engine.
103
+ throw new Error(`npm audit JSON parse failed (exit ${exitCode}): ${err.message}`);
104
+ }
105
+ const vulns = audit.vulnerabilities ?? {};
106
+ const warnings = [];
107
+ // Cross-reference -- OSV + GHSA + local IOC feed, all resilient.
108
+ const packagesForFeed = extractPackagesFromVulns(vulns);
109
+ const [osvResult, ghsaResult, localEntries] = await Promise.all([
110
+ osv({ packages: packagesForFeed.map((p) => ({ ...p, ecosystem: 'npm' })) }).catch((err) => ({
111
+ advisories: [],
112
+ warnings: [`osv: ${err.message}`],
113
+ })),
114
+ ghsa({ packages: packagesForFeed.map((p) => ({ name: p.name, ecosystem: 'npm' })) }).catch((err) => ({ advisories: [], warnings: [`ghsa: ${err.message}`] })),
115
+ local(ctx.config.organizationId, 'deps').catch((err) => {
116
+ warnings.push(`local-ioc-feed: ${err.message}`);
117
+ return [];
118
+ }),
119
+ ]);
120
+ warnings.push(...osvResult.warnings, ...ghsaResult.warnings);
121
+ const osvByPackage = new Map();
122
+ for (const adv of osvResult.advisories) {
123
+ for (const a of adv.affected) {
124
+ if (a.package.ecosystem.toLowerCase() === 'npm') {
125
+ const list = osvByPackage.get(a.package.name) ?? [];
126
+ list.push(adv);
127
+ osvByPackage.set(a.package.name, list);
128
+ }
129
+ }
130
+ }
131
+ const ghsaByPackage = new Map();
132
+ for (const adv of ghsaResult.advisories) {
133
+ for (const v of adv.vulnerabilities) {
134
+ if (v.package.ecosystem.toLowerCase() === 'npm') {
135
+ const list = ghsaByPackage.get(v.package.name) ?? [];
136
+ list.push(adv);
137
+ ghsaByPackage.set(v.package.name, list);
138
+ }
139
+ }
140
+ }
141
+ // Deduplicate findings across npm-audit + local-ioc by (identifier).
142
+ const findings = [];
143
+ const seen = new Set();
144
+ for (const [packageName, advisory] of Object.entries(vulns)) {
145
+ const severity = mapSeverity(advisory.severity);
146
+ if (severity === null)
147
+ continue;
148
+ const range = typeof advisory.range === 'string' ? advisory.range : '*';
149
+ const identifier = `${packageName}@${range}`;
150
+ if (seen.has(identifier))
151
+ continue;
152
+ seen.add(identifier);
153
+ const payload = {
154
+ name: packageName,
155
+ severity: advisory.severity,
156
+ via: advisory.via ?? [],
157
+ range,
158
+ nodes: advisory.nodes ?? [],
159
+ fixAvailable: advisory.fixAvailable ?? false,
160
+ osv: osvByPackage.get(packageName) ?? [],
161
+ ghsa: ghsaByPackage.get(packageName) ?? [],
162
+ };
163
+ findings.push({ iocClass: 'deps', severity, identifier, payload });
164
+ }
165
+ // Local IOC entries with ioc_class='deps' add findings even if
166
+ // upstream audit/feeds are silent. Pattern is matched against
167
+ // each audited package's "name@range".
168
+ for (const entry of localEntries) {
169
+ if (entry.iocClass !== 'deps')
170
+ continue;
171
+ for (const [name, advisory] of Object.entries(vulns)) {
172
+ const range = typeof advisory.range === 'string' ? advisory.range : '*';
173
+ const candidate = `${name}@${range}`;
174
+ if (!matchesPattern(candidate, entry))
175
+ continue;
176
+ const identifier = `${candidate}#ioc:${entry.id}`;
177
+ if (seen.has(identifier))
178
+ continue;
179
+ seen.add(identifier);
180
+ findings.push({
181
+ iocClass: 'deps',
182
+ severity: entry.severity,
183
+ identifier,
184
+ payload: {
185
+ source: 'local_ioc_feed',
186
+ entry_id: entry.id,
187
+ pattern_type: entry.patternType,
188
+ pattern: entry.pattern,
189
+ advisory_text: entry.advisoryText,
190
+ matched: candidate,
191
+ },
192
+ });
193
+ }
194
+ }
195
+ const packagesAudited = computePackagesAudited(audit);
196
+ const coverage = {
197
+ packages_audited: packagesAudited,
198
+ advisories_returned: Object.keys(vulns).length,
199
+ npm_audit_exit_code: exitCode,
200
+ osv_advisories: osvResult.advisories.length,
201
+ ghsa_advisories: ghsaResult.advisories.length,
202
+ local_ioc_entries: localEntries.length,
203
+ };
204
+ if (warnings.length > 0) {
205
+ coverage.warnings = warnings;
206
+ }
207
+ return { findings, coverage };
208
+ },
209
+ };
210
+ }
211
+ function computePackagesAudited(audit) {
212
+ const deps = audit.metadata?.dependencies;
213
+ if (!deps)
214
+ return 0;
215
+ if (typeof deps === 'object' && 'total' in deps && typeof deps.total === 'number') {
216
+ return deps.total;
217
+ }
218
+ // Some npm versions emit a flat record of counts; sum the numeric values.
219
+ if (isRecord(deps)) {
220
+ let total = 0;
221
+ for (const v of Object.values(deps)) {
222
+ if (typeof v === 'number')
223
+ total += v;
224
+ }
225
+ return total;
226
+ }
227
+ return 0;
228
+ }
229
+ // ---------------------------------------------------------------------------
230
+ // Default export -- real spawn-backed scanner registered by the engine.
231
+ // ---------------------------------------------------------------------------
232
+ export const depsScanner = createDepsScanner({
233
+ runNpmAudit: defaultRunNpmAudit,
234
+ });
235
+ /** Test seam re-export for unit tests. */
236
+ export const _internal = {
237
+ defaultRunNpmAudit,
238
+ mapSeverity,
239
+ parseAuditJson,
240
+ computePackagesAudited,
241
+ };
242
+ //# sourceMappingURL=deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/scanners/deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * npm audit signatures scanner -- security scan engine plugin.
3
+ *
4
+ * Runs `npm audit signatures --json` against the product's repo and converts
5
+ * each unverified or invalid-signature entry into a FindingDraft. Signature
6
+ * verification has no npm-provided severity tier, so every finding is marked
7
+ * 'medium' -- a signature problem is always actionable, but not on its own a
8
+ * critical-severity issue without further context.
9
+ *
10
+ * Pattern reference: verification-engine.ts (dep-injection seam for spawn).
11
+ *
12
+ * @module scanners/signatures
13
+ */
14
+ import type { Scanner } from '../security-scan-engine.js';
15
+ export interface NpmAuditSignaturesResult {
16
+ stdout: string;
17
+ stderr: string;
18
+ exitCode: number | null;
19
+ }
20
+ export type RunNpmAuditSignatures = (cwd: string) => Promise<NpmAuditSignaturesResult>;
21
+ interface SignatureEntry {
22
+ name: string;
23
+ version: string;
24
+ raw: Record<string, unknown>;
25
+ reason: string;
26
+ }
27
+ /**
28
+ * Parse the npm audit signatures JSON envelope. Tolerates shape variations
29
+ * across npm versions -- `invalid` and `missing` may be absent or empty.
30
+ * Throws if the payload is not valid JSON or not an object.
31
+ */
32
+ export declare function parseSignaturesReport(stdout: string): {
33
+ invalid: SignatureEntry[];
34
+ missing: SignatureEntry[];
35
+ totalChecked: number;
36
+ };
37
+ export interface SignaturesScannerDeps {
38
+ runNpmAuditSignatures: RunNpmAuditSignatures;
39
+ }
40
+ export declare function createSignaturesScanner(deps: SignaturesScannerDeps): Scanner;
41
+ /** Default scanner wired to the real npm CLI. */
42
+ export declare const signaturesScanner: Scanner;
43
+ export {};
44
+ //# sourceMappingURL=signatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../src/scanners/signatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAIV,OAAO,EACR,MAAM,4BAA4B,CAAC;AAMpC,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAwCvF,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAiCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IACrD,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB,CA4BA;AAMD,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAiC5E;AAED,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,EAAE,OAE9B,CAAC"}