(xs: string[])
| 103 | } |
| 104 | |
| 105 | function dedupeStr(xs: string[]): string[] { |
| 106 | const seen = new Set<string>(); const out: string[] = []; |
| 107 | for (const x of xs) if (x && !seen.has(x)) { seen.add(x); out.push(x); } |
| 108 | return out; |
| 109 | } |
| 110 | |
| 111 | /** Read a receipt JSON file QodeX wrote at end-of-run. Returns null if absent/unreadable. */ |
| 112 | export async function readReceiptFile(filePath: string): Promise<RunReceipt | null> { |
no test coverage detected