(events: readonly EnrichedTelemetryEvent[])
| 110 | } |
| 111 | |
| 112 | saveToDisk(events: readonly EnrichedTelemetryEvent[]): void { |
| 113 | if (events.length === 0) return; |
| 114 | const path = join(this.telemetryDir(), `failed_${randomBytes(6).toString('hex')}.jsonl`); |
| 115 | const text = events.map((event) => JSON.stringify(event)).join('\n') + '\n'; |
| 116 | writeFileSync(path, text, { encoding: 'utf-8', mode: 0o600, flag: 'wx' }); |
| 117 | try { |
| 118 | chmodSync(path, 0o600); |
| 119 | } catch { |
| 120 | // best effort on platforms that do not support chmod. |
| 121 | } |
| 122 | } |
| 123 | |
| 124 | async retryDiskEvents(): Promise<void> { |
| 125 | let entries: string[]; |
no test coverage detected