anton-bakker-deploy-engine 0.6.1 → 0.7.1
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/dist/engine.d.ts +12 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +125 -0
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/restore-backup.d.ts.map +1 -1
- package/dist/restore-backup.js.map +1 -1
- package/dist/restore-pitr.d.ts.map +1 -1
- package/dist/restore-pitr.js.map +1 -1
- package/dist/telemetry.d.ts +43 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +143 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tui.d.ts +59 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +178 -0
- package/dist/tui.js.map +1 -0
- package/dist/types.d.ts +100 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/verify.js.map +1 -1
- package/dist/version-manifest.d.ts +32 -0
- package/dist/version-manifest.d.ts.map +1 -0
- package/dist/version-manifest.js +83 -0
- package/dist/version-manifest.js.map +1 -0
- package/package.json +1 -1
package/dist/engine.d.ts
CHANGED
|
@@ -13,6 +13,18 @@ export declare class PipelineEngine {
|
|
|
13
13
|
stateDir?: string;
|
|
14
14
|
});
|
|
15
15
|
private freshState;
|
|
16
|
+
/**
|
|
17
|
+
* Validate dependencies: check for missing gate IDs and circular dependencies.
|
|
18
|
+
* Called from constructor before reading state file.
|
|
19
|
+
* Throws Error if validation fails.
|
|
20
|
+
*/
|
|
21
|
+
private validateDependencies;
|
|
22
|
+
/**
|
|
23
|
+
* Check if all dependencies of a gate are met (status === 'passed').
|
|
24
|
+
* Returns { met: true } if all dependencies are satisfied, or
|
|
25
|
+
* { met: false, unmet: string[] } with the list of unmet dependency IDs.
|
|
26
|
+
*/
|
|
27
|
+
private dependenciesMet;
|
|
16
28
|
/** Subscribe to pipeline lifecycle events */
|
|
17
29
|
on(listener: PipelineEventListener): void;
|
|
18
30
|
private emit;
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EAA6B,cAAc,EACzD,aAAa,EAAE,gBAAgB,EACG,qBAAqB,EACxD,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EAA6B,cAAc,EACzD,aAAa,EAAE,gBAAgB,EACG,qBAAqB,EACxD,MAAM,YAAY,CAAC;AAOpB,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,SAAS,CAA+B;gBAEpC,IAAI,EAAE;QAChB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACnC,GAAG,EAAE,gBAAgB,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA4BD,OAAO,CAAC,UAAU;IAclB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAkE5B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmBvB,6CAA6C;IAC7C,EAAE,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIzC,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IASjB,2DAA2D;IACrD,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;YAuJtB,IAAI;YA2BJ,WAAW;YAuBX,mBAAmB;YAQnB,iBAAiB;YAIjB,cAAc;IA2B5B,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,UAAU;IASlB,kCAAkC;IAClC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;CAS/D"}
|
package/dist/engine.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
import { readFileSync, writeFileSync, mkdirSync, existsSync, renameSync } from 'fs';
|
|
8
8
|
import { join } from 'path';
|
|
9
9
|
import { computeStateHash } from './types.js';
|
|
10
|
+
import { recordTelemetry, emitGateEvent } from './telemetry.js';
|
|
11
|
+
import { writeVersionManifest } from './version-manifest.js';
|
|
10
12
|
const DEFAULT_CHECK_TIMEOUT = 60_000;
|
|
11
13
|
export class PipelineEngine {
|
|
12
14
|
gates;
|
|
@@ -20,6 +22,8 @@ export class PipelineEngine {
|
|
|
20
22
|
this.checks = opts.checks;
|
|
21
23
|
this.ctx = opts.ctx;
|
|
22
24
|
this.stateDir = opts.stateDir || join(opts.ctx.projectRoot, 'orchestrator');
|
|
25
|
+
// Validate dependencies BEFORE reading state file
|
|
26
|
+
this.validateDependencies();
|
|
23
27
|
const statePath = this.statePath();
|
|
24
28
|
if (!opts.ctx.dryRun && existsSync(statePath)) {
|
|
25
29
|
const raw = readFileSync(statePath, 'utf-8');
|
|
@@ -53,6 +57,90 @@ export class PipelineEngine {
|
|
|
53
57
|
gates: [],
|
|
54
58
|
};
|
|
55
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Validate dependencies: check for missing gate IDs and circular dependencies.
|
|
62
|
+
* Called from constructor before reading state file.
|
|
63
|
+
* Throws Error if validation fails.
|
|
64
|
+
*/
|
|
65
|
+
validateDependencies() {
|
|
66
|
+
const gateIds = new Set(this.gates.map(g => g.id));
|
|
67
|
+
// Check for missing gate IDs in dependsOn
|
|
68
|
+
for (const gate of this.gates) {
|
|
69
|
+
if (gate.dependsOn) {
|
|
70
|
+
for (const depId of gate.dependsOn) {
|
|
71
|
+
if (!gateIds.has(depId)) {
|
|
72
|
+
throw new Error(`Gate '${gate.id}' depends on non-existent gate '${depId}'`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Build adjacency list for cycle detection
|
|
78
|
+
const adj = new Map();
|
|
79
|
+
for (const gate of this.gates) {
|
|
80
|
+
adj.set(gate.id, gate.dependsOn || []);
|
|
81
|
+
}
|
|
82
|
+
// DFS cycle detection with WHITE/GREY/BLACK colouring
|
|
83
|
+
// WHITE = unvisited, GREY = in current path, BLACK = fully processed
|
|
84
|
+
const WHITE = 0, GREY = 1, BLACK = 2;
|
|
85
|
+
const colour = new Map();
|
|
86
|
+
const parent = new Map();
|
|
87
|
+
for (const id of gateIds) {
|
|
88
|
+
colour.set(id, WHITE);
|
|
89
|
+
parent.set(id, null);
|
|
90
|
+
}
|
|
91
|
+
const buildCyclePath = (start, end) => {
|
|
92
|
+
// Build path from start back to end (the cycle)
|
|
93
|
+
const path = [end];
|
|
94
|
+
let current = start;
|
|
95
|
+
while (current !== end) {
|
|
96
|
+
path.unshift(current);
|
|
97
|
+
current = parent.get(current);
|
|
98
|
+
}
|
|
99
|
+
path.unshift(end);
|
|
100
|
+
return path.join(' → ');
|
|
101
|
+
};
|
|
102
|
+
const dfs = (node) => {
|
|
103
|
+
colour.set(node, GREY);
|
|
104
|
+
for (const neighbour of adj.get(node) || []) {
|
|
105
|
+
if (colour.get(neighbour) === GREY) {
|
|
106
|
+
// Back edge found — cycle detected
|
|
107
|
+
const cyclePath = buildCyclePath(node, neighbour);
|
|
108
|
+
throw new Error(`Circular dependency detected: ${cyclePath}`);
|
|
109
|
+
}
|
|
110
|
+
if (colour.get(neighbour) === WHITE) {
|
|
111
|
+
parent.set(neighbour, node);
|
|
112
|
+
dfs(neighbour);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
colour.set(node, BLACK);
|
|
116
|
+
};
|
|
117
|
+
for (const id of gateIds) {
|
|
118
|
+
if (colour.get(id) === WHITE) {
|
|
119
|
+
dfs(id);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Check if all dependencies of a gate are met (status === 'passed').
|
|
125
|
+
* Returns { met: true } if all dependencies are satisfied, or
|
|
126
|
+
* { met: false, unmet: string[] } with the list of unmet dependency IDs.
|
|
127
|
+
*/
|
|
128
|
+
dependenciesMet(gate) {
|
|
129
|
+
if (!gate.dependsOn || gate.dependsOn.length === 0) {
|
|
130
|
+
return { met: true };
|
|
131
|
+
}
|
|
132
|
+
const unmet = [];
|
|
133
|
+
for (const depId of gate.dependsOn) {
|
|
134
|
+
const depGate = this.state.gates.find(g => g.id === depId);
|
|
135
|
+
if (!depGate || depGate.status !== 'passed') {
|
|
136
|
+
unmet.push(depId);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (unmet.length === 0) {
|
|
140
|
+
return { met: true };
|
|
141
|
+
}
|
|
142
|
+
return { met: false, unmet };
|
|
143
|
+
}
|
|
56
144
|
/** Subscribe to pipeline lifecycle events */
|
|
57
145
|
on(listener) {
|
|
58
146
|
this.listeners.push(listener);
|
|
@@ -103,6 +191,10 @@ export class PipelineEngine {
|
|
|
103
191
|
startedAt: new Date().toISOString(), completedAt: new Date().toISOString(), duration: 0,
|
|
104
192
|
});
|
|
105
193
|
this.saveState();
|
|
194
|
+
// Fire-and-forget: telemetry never blocks or fails the pipeline
|
|
195
|
+
void recordTelemetry(this.ctx, this.state);
|
|
196
|
+
// Fire-and-forget: version manifest write never blocks or fails the pipeline
|
|
197
|
+
void writeVersionManifest(this.ctx, this.state);
|
|
106
198
|
return this.buildReport(Date.now() - start);
|
|
107
199
|
}
|
|
108
200
|
}
|
|
@@ -119,6 +211,10 @@ export class PipelineEngine {
|
|
|
119
211
|
startedAt: new Date().toISOString(), completedAt: new Date().toISOString(), duration: 0,
|
|
120
212
|
});
|
|
121
213
|
this.saveState();
|
|
214
|
+
// Fire-and-forget: telemetry never blocks or fails the pipeline
|
|
215
|
+
void recordTelemetry(this.ctx, this.state);
|
|
216
|
+
// Fire-and-forget: version manifest write never blocks or fails the pipeline
|
|
217
|
+
void writeVersionManifest(this.ctx, this.state);
|
|
122
218
|
return this.buildReport(Date.now() - start);
|
|
123
219
|
}
|
|
124
220
|
}
|
|
@@ -134,6 +230,18 @@ export class PipelineEngine {
|
|
|
134
230
|
this.ctx.log(`⏭️ Gate ${gate.name}: skipped (condition not met)`);
|
|
135
231
|
continue;
|
|
136
232
|
}
|
|
233
|
+
// Skip if dependencies not met
|
|
234
|
+
const depCheck = this.dependenciesMet(gate);
|
|
235
|
+
if (!depCheck.met) {
|
|
236
|
+
const skipped = {
|
|
237
|
+
id: gate.id, name: gate.name, status: 'skipped', onFail: gate.onFail,
|
|
238
|
+
checks: [], startedAt: new Date().toISOString(), completedAt: new Date().toISOString(), duration: 0,
|
|
239
|
+
};
|
|
240
|
+
this.state.gates.push(skipped);
|
|
241
|
+
this.emit('gate:skip', gate.id, undefined, { reason: 'dependency-not-met', unmet: depCheck.unmet });
|
|
242
|
+
this.ctx.log(`⏭️ Gate ${gate.name}: skipped (dependencies not met: ${depCheck.unmet.join(', ')})`);
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
137
245
|
// Skip if already passed (resume)
|
|
138
246
|
const existing = this.state.gates.find(g => g.id === gate.id);
|
|
139
247
|
if (existing?.status === 'passed') {
|
|
@@ -148,6 +256,11 @@ export class PipelineEngine {
|
|
|
148
256
|
else
|
|
149
257
|
this.state.gates.push(gateResult);
|
|
150
258
|
this.saveState();
|
|
259
|
+
// Fire-and-forget: emit gate event immediately so partial deploys have telemetry
|
|
260
|
+
emitGateEvent(this.ctx, this.state, {
|
|
261
|
+
id: gateResult.id, name: gateResult.name,
|
|
262
|
+
status: gateResult.status, durationMs: gateResult.duration,
|
|
263
|
+
});
|
|
151
264
|
if (gateResult.status === 'failed') {
|
|
152
265
|
this.ctx.log(`❌ Gate ${gate.name} FAILED → ${gate.onFail.toUpperCase()}`);
|
|
153
266
|
this.emit('rollback:trigger', gate.id, undefined, { action: gate.onFail });
|
|
@@ -155,6 +268,10 @@ export class PipelineEngine {
|
|
|
155
268
|
this.state.completedAt = new Date().toISOString();
|
|
156
269
|
this.saveState();
|
|
157
270
|
this.emit('pipeline:end', undefined, undefined, { result: this.state.result });
|
|
271
|
+
// Fire-and-forget: telemetry never blocks or fails the pipeline
|
|
272
|
+
void recordTelemetry(this.ctx, this.state);
|
|
273
|
+
// Fire-and-forget: version manifest write never blocks or fails the pipeline
|
|
274
|
+
void writeVersionManifest(this.ctx, this.state);
|
|
158
275
|
return this.buildReport(Date.now() - start, gate);
|
|
159
276
|
}
|
|
160
277
|
// Bake time — monitor alarms after gate passes
|
|
@@ -176,6 +293,10 @@ export class PipelineEngine {
|
|
|
176
293
|
this.state.completedAt = new Date().toISOString();
|
|
177
294
|
this.saveState();
|
|
178
295
|
this.emit('pipeline:end', undefined, undefined, { result: this.state.result });
|
|
296
|
+
// Fire-and-forget: telemetry never blocks or fails the pipeline
|
|
297
|
+
void recordTelemetry(this.ctx, this.state);
|
|
298
|
+
// Fire-and-forget: version manifest write never blocks or fails the pipeline
|
|
299
|
+
void writeVersionManifest(this.ctx, this.state);
|
|
179
300
|
return this.buildReport(Date.now() - start, gate);
|
|
180
301
|
}
|
|
181
302
|
}
|
|
@@ -185,6 +306,10 @@ export class PipelineEngine {
|
|
|
185
306
|
this.saveState();
|
|
186
307
|
this.saveReport(Date.now() - start);
|
|
187
308
|
this.emit('pipeline:end', undefined, undefined, { result: 'passed' });
|
|
309
|
+
// Fire-and-forget: telemetry never blocks or fails the pipeline
|
|
310
|
+
void recordTelemetry(this.ctx, this.state);
|
|
311
|
+
// Fire-and-forget: version manifest write never blocks or fails the pipeline
|
|
312
|
+
void writeVersionManifest(this.ctx, this.state);
|
|
188
313
|
return this.buildReport(Date.now() - start);
|
|
189
314
|
}
|
|
190
315
|
async bake(gate) {
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,MAAM,OAAO,cAAc;IACjB,KAAK,CAAmB;IACxB,MAAM,CAA6B;IACnC,KAAK,CAAgB;IACrB,QAAQ,CAAS;IACjB,GAAG,CAAmB;IACtB,SAAS,GAA4B,EAAE,CAAC;IAEhD,YAAY,IAKX;QACC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE5E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,kBAAkB;YAClB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;YACjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,wBAAwB,CAAC,CAAC;YACxI,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1F,OAAO;YACL,KAAK,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACjE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW;YACjC,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,EAAE,CAAC,QAA+B;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAEO,IAAI,CAAC,IAAuB,EAAE,IAAa,EAAE,KAAc,EAAE,MAAgC;QACnG,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YAClE,IAAI,EAAE,KAAK,EAAE,MAAM;SACpB,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,CAAC;IAC1E,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO;QAC5B,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,OAAQ,OAAmC,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAEzF,+BAA+B;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC5E,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,8BAA8B,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;gBAClK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACpB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;oBACpF,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBAC/D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC;iBACxF,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAClD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACpB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;oBAC5E,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBACtE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC;iBACxF,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,4BAA4B;YAC5B,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1D,MAAM,OAAO,GAAe;oBAC1B,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;oBACpE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC;iBACpG,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YAED,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,QAAQ,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;gBAC/D,SAAS;YACX,CAAC;YAED,eAAe;YACf,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,GAAG,IAAI,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;;gBAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3E,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YAED,+CAA+C;YAC/C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,gDAAgD;oBAChD,MAAM,cAAc,GAAe;wBACjC,GAAG,UAAU,EAAE,MAAM,EAAE,QAAQ;wBAC/B,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;wBAC5G,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACrC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;qBAChE,CAAC;oBACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;oBAClE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;oBAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,yBAAyB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oBACtF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;oBACjG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC1E,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBAClD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC/E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAoB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QAEhC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAoB;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAC;QACtD,MAAM,OAAO,GAAkB,IAAI,CAAC,QAAQ;YAC1C,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7D,CAAC,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAElE,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;YACjD,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YAC1D,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAC5C,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxG,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,UAAoB,EAAE,OAAe,EAAE,MAAc;QACrF,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,UAAoB,EAAE,OAAe,EAAE,MAAc;QACnF,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAc;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,SAAS,0BAA0B,CAAC,CAAC;YACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,SAAS,GAAG,EAAE,CAAC;QAChG,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClB,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,OAAO,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;aAC9G,CAAC,CAAC;YACH,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzH,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChG,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;YACzC,MAAM,MAAM,GAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;YACxG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,SAAS,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,QAAgB,EAAE,UAA2B;QAC/D,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;gBACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;gBAClE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;gBAClE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;gBACpE,QAAQ;gBACR,UAAU,EAAE,UAAU,EAAE,EAAE;gBAC1B,MAAM,EAAE,UAAU,EAAE,MAAM;aAC3B;SACF,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,QAAgB;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACxD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,kCAAkC;IAClC,MAAM,CAAC,UAAU,CAAC,QAAgB,EAAE,WAAmB;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,WAAW,OAAO,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,10 @@ export { verifyAmplifyOutputs, verifyBuildArtifact, parseTableCount, assertTable
|
|
|
10
10
|
export { SlackNotifier } from './slack.js';
|
|
11
11
|
export { secretsScan, npmAudit, sbomGenerate } from './checks.js';
|
|
12
12
|
export { computeStateHash } from './types.js';
|
|
13
|
-
export
|
|
13
|
+
export { DeployTui, renderFrame } from './tui.js';
|
|
14
|
+
export type { TuiState, Category, Step, StepStatus } from './tui.js';
|
|
15
|
+
export type { CheckResult, GateDefinition, GateResult, EnvironmentConfig, PipelineState, PipelineReport, CheckExecutor, ExecutionContext, PipelineEvent, PipelineEventType, PipelineEventListener, SlackSeverity, SlackEventConfig, SlackMessageConfig, SlackNotifierOptions, TelemetryConfig, VersionManifestConfig, DeployEvent, GateSummaryEntry, TierVersion, VersionManifest, } from './types.js';
|
|
16
|
+
export { recordTelemetry, emitGateEvent, buildDeployEvent, writeTelemetryEvent } from './telemetry.js';
|
|
14
17
|
export { pitrRestore, validatePitrTimestamp } from './restore-pitr.js';
|
|
15
18
|
export { backupRestore } from './restore-backup.js';
|
|
16
19
|
export { saveManifest, listManifests, loadManifest, buildManifestKey } from './restore-manifest.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,YAAY,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGrE,YAAY,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKvG,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGpG,YAAY,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,10 @@ export { SlackNotifier } from './slack.js';
|
|
|
16
16
|
export { secretsScan, npmAudit, sbomGenerate } from './checks.js';
|
|
17
17
|
// Utilities
|
|
18
18
|
export { computeStateHash } from './types.js';
|
|
19
|
+
// Terminal UI
|
|
20
|
+
export { DeployTui, renderFrame } from './tui.js';
|
|
21
|
+
// Telemetry (deploy event recording)
|
|
22
|
+
export { recordTelemetry, emitGateEvent, buildDeployEvent, writeTelemetryEvent } from './telemetry.js';
|
|
19
23
|
// ── Restore / Backup ──────────────────────────────────────────────────
|
|
20
24
|
// PITR restore engine
|
|
21
25
|
export { pitrRestore, validatePitrTimestamp } from './restore-pitr.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEjE,4CAA4C;AAC5C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElE,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEjE,4CAA4C;AAC5C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElE,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA4BlD,qCAAqC;AACrC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEvG,yEAAyE;AAEzE,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,6BAA6B;AAC7B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore-backup.d.ts","sourceRoot":"","sources":["../src/restore-backup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restore-backup.d.ts","sourceRoot":"","sources":["../src/restore-backup.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EAEb,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAqG5B;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,oBAAoB,EAC7B,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAyDxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore-backup.js","sourceRoot":"","sources":["../src/restore-backup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,kBAAkB,EAClB,WAAW,EACX,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"restore-backup.js","sourceRoot":"","sources":["../src/restore-backup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore-pitr.d.ts","sourceRoot":"","sources":["../src/restore-pitr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restore-pitr.d.ts","sourceRoot":"","sources":["../src/restore-pitr.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,aAAa,EAEb,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAS5B;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,SAAK,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAM7G;AA0KD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA0DxB"}
|
package/dist/restore-pitr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore-pitr.js","sourceRoot":"","sources":["../src/restore-pitr.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gCAAgC,EAChC,gCAAgC,EAChC,kBAAkB,EAClB,WAAW,EACX,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"restore-pitr.js","sourceRoot":"","sources":["../src/restore-pitr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* telemetry.ts
|
|
3
|
+
* Location: anton-bakker-deploy-engine/src/telemetry.ts
|
|
4
|
+
*
|
|
5
|
+
* Fire-and-forget deploy event recording to consumer-configured DynamoDB.
|
|
6
|
+
* Uses dynamic import for @aws-sdk/client-dynamodb to preserve the
|
|
7
|
+
* zero-hard-dependency contract (consumer must install the SDK).
|
|
8
|
+
*/
|
|
9
|
+
import type { DeployEvent, TelemetryConfig, PipelineState, ExecutionContext, GateSummaryEntry } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Build a DeployEvent from a finalised PipelineState and TelemetryConfig.
|
|
12
|
+
* Pure function — no side effects, no I/O.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildDeployEvent(state: PipelineState, config: TelemetryConfig): DeployEvent;
|
|
15
|
+
/**
|
|
16
|
+
* Write a DeployEvent to the consumer-configured DynamoDB table.
|
|
17
|
+
* Uses dynamic import to avoid a hard runtime dependency on the AWS SDK.
|
|
18
|
+
* Throws on failure — callers should wrap in try/catch.
|
|
19
|
+
*/
|
|
20
|
+
export declare function writeTelemetryEvent(event: DeployEvent, config: TelemetryConfig): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Fire-and-forget wrapper: record a deploy event to DynamoDB.
|
|
23
|
+
* Never throws — errors are logged via ctx.log.
|
|
24
|
+
*
|
|
25
|
+
* Guards:
|
|
26
|
+
* - Returns immediately if ctx.telemetry is absent
|
|
27
|
+
* - Returns without writing if ctx.dryRun is true
|
|
28
|
+
* - Swallows all errors from writeTelemetryEvent
|
|
29
|
+
*/
|
|
30
|
+
export declare function recordTelemetry(ctx: ExecutionContext, state: PipelineState): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Fire-and-forget: emit a single gate completion event to DynamoDB immediately.
|
|
33
|
+
* Called after each gate passes/fails/skips so that partial deploy telemetry
|
|
34
|
+
* survives process crashes.
|
|
35
|
+
*
|
|
36
|
+
* SK pattern: `gate#{startedAt}#{gateId}` (unique per gate per deploy)
|
|
37
|
+
*
|
|
38
|
+
* Guards:
|
|
39
|
+
* - Returns immediately if ctx.telemetry is absent or ctx.dryRun is true
|
|
40
|
+
* - Never throws — all errors swallowed
|
|
41
|
+
*/
|
|
42
|
+
export declare function emitGateEvent(ctx: ExecutionContext, state: PipelineState, gate: GateSummaryEntry): void;
|
|
43
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,WAAW,CAmC3F;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BpG;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAkCvG"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* telemetry.ts
|
|
3
|
+
* Location: anton-bakker-deploy-engine/src/telemetry.ts
|
|
4
|
+
*
|
|
5
|
+
* Fire-and-forget deploy event recording to consumer-configured DynamoDB.
|
|
6
|
+
* Uses dynamic import for @aws-sdk/client-dynamodb to preserve the
|
|
7
|
+
* zero-hard-dependency contract (consumer must install the SDK).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Build a DeployEvent from a finalised PipelineState and TelemetryConfig.
|
|
11
|
+
* Pure function — no side effects, no I/O.
|
|
12
|
+
*/
|
|
13
|
+
export function buildDeployEvent(state, config) {
|
|
14
|
+
const completedAt = state.completedAt ?? new Date().toISOString();
|
|
15
|
+
const startedAt = state.startedAt;
|
|
16
|
+
const durationMs = new Date(completedAt).getTime() - new Date(startedAt).getTime();
|
|
17
|
+
const outcome = state.result;
|
|
18
|
+
const gateSummary = state.gates.map(g => ({
|
|
19
|
+
id: g.id,
|
|
20
|
+
name: g.name,
|
|
21
|
+
status: g.status,
|
|
22
|
+
durationMs: g.duration,
|
|
23
|
+
}));
|
|
24
|
+
const failedGate = state.gates.find(g => g.status === 'failed');
|
|
25
|
+
const event = {
|
|
26
|
+
pk: `project#${config.projectId}`,
|
|
27
|
+
sk: `deploy#${startedAt}`,
|
|
28
|
+
projectId: config.projectId,
|
|
29
|
+
environment: state.environment,
|
|
30
|
+
commit: state.commit,
|
|
31
|
+
commitShort: state.commitShort,
|
|
32
|
+
outcome,
|
|
33
|
+
startedAt,
|
|
34
|
+
completedAt,
|
|
35
|
+
durationMs,
|
|
36
|
+
gateSummary,
|
|
37
|
+
};
|
|
38
|
+
if (outcome !== 'passed' && failedGate) {
|
|
39
|
+
event.failedGateId = failedGate.id;
|
|
40
|
+
}
|
|
41
|
+
return event;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Write a DeployEvent to the consumer-configured DynamoDB table.
|
|
45
|
+
* Uses dynamic import to avoid a hard runtime dependency on the AWS SDK.
|
|
46
|
+
* Throws on failure — callers should wrap in try/catch.
|
|
47
|
+
*/
|
|
48
|
+
export async function writeTelemetryEvent(event, config) {
|
|
49
|
+
// Dynamic import keeps @aws-sdk/client-dynamodb as an optional dep
|
|
50
|
+
const { DynamoDBClient } = await import('@aws-sdk/client-dynamodb');
|
|
51
|
+
const { DynamoDBDocumentClient, PutCommand } = await import('@aws-sdk/lib-dynamodb');
|
|
52
|
+
const client = DynamoDBDocumentClient.from(new DynamoDBClient({ region: config.region }));
|
|
53
|
+
const item = {
|
|
54
|
+
pk: event.pk,
|
|
55
|
+
sk: event.sk,
|
|
56
|
+
projectId: event.projectId,
|
|
57
|
+
environment: event.environment,
|
|
58
|
+
commit: event.commit,
|
|
59
|
+
commitShort: event.commitShort,
|
|
60
|
+
outcome: event.outcome,
|
|
61
|
+
startedAt: event.startedAt,
|
|
62
|
+
completedAt: event.completedAt,
|
|
63
|
+
durationMs: event.durationMs,
|
|
64
|
+
gateSummary: event.gateSummary,
|
|
65
|
+
};
|
|
66
|
+
if (event.failedGateId !== undefined) {
|
|
67
|
+
item.failedGateId = event.failedGateId;
|
|
68
|
+
}
|
|
69
|
+
await client.send(new PutCommand({
|
|
70
|
+
TableName: config.tableName,
|
|
71
|
+
Item: item,
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Fire-and-forget wrapper: record a deploy event to DynamoDB.
|
|
76
|
+
* Never throws — errors are logged via ctx.log.
|
|
77
|
+
*
|
|
78
|
+
* Guards:
|
|
79
|
+
* - Returns immediately if ctx.telemetry is absent
|
|
80
|
+
* - Returns without writing if ctx.dryRun is true
|
|
81
|
+
* - Swallows all errors from writeTelemetryEvent
|
|
82
|
+
*/
|
|
83
|
+
export async function recordTelemetry(ctx, state) {
|
|
84
|
+
if (!ctx.telemetry) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (ctx.dryRun) {
|
|
88
|
+
ctx.log('[dryRun] telemetry skipped');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const event = buildDeployEvent(state, ctx.telemetry);
|
|
92
|
+
try {
|
|
93
|
+
await writeTelemetryEvent(event, ctx.telemetry);
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
ctx.log(`[telemetry] write failed (non-fatal): ${err.message}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Fire-and-forget: emit a single gate completion event to DynamoDB immediately.
|
|
101
|
+
* Called after each gate passes/fails/skips so that partial deploy telemetry
|
|
102
|
+
* survives process crashes.
|
|
103
|
+
*
|
|
104
|
+
* SK pattern: `gate#{startedAt}#{gateId}` (unique per gate per deploy)
|
|
105
|
+
*
|
|
106
|
+
* Guards:
|
|
107
|
+
* - Returns immediately if ctx.telemetry is absent or ctx.dryRun is true
|
|
108
|
+
* - Never throws — all errors swallowed
|
|
109
|
+
*/
|
|
110
|
+
export function emitGateEvent(ctx, state, gate) {
|
|
111
|
+
if (!ctx.telemetry || ctx.dryRun)
|
|
112
|
+
return;
|
|
113
|
+
const config = ctx.telemetry;
|
|
114
|
+
// Fire-and-forget — async but not awaited
|
|
115
|
+
void (async () => {
|
|
116
|
+
try {
|
|
117
|
+
const { DynamoDBClient } = await import('@aws-sdk/client-dynamodb');
|
|
118
|
+
const { DynamoDBDocumentClient, PutCommand } = await import('@aws-sdk/lib-dynamodb');
|
|
119
|
+
const client = DynamoDBDocumentClient.from(new DynamoDBClient({ region: config.region }));
|
|
120
|
+
await client.send(new PutCommand({
|
|
121
|
+
TableName: config.tableName,
|
|
122
|
+
Item: {
|
|
123
|
+
pk: `project#${config.projectId}`,
|
|
124
|
+
sk: `gate#${state.startedAt}#${gate.id}`,
|
|
125
|
+
projectId: config.projectId,
|
|
126
|
+
environment: state.environment,
|
|
127
|
+
commit: state.commit,
|
|
128
|
+
commitShort: state.commitShort,
|
|
129
|
+
gateId: gate.id,
|
|
130
|
+
gateName: gate.name,
|
|
131
|
+
status: gate.status,
|
|
132
|
+
durationMs: gate.durationMs,
|
|
133
|
+
recordedAt: new Date().toISOString(),
|
|
134
|
+
ttl: Math.floor(Date.now() / 1000) + 7_776_000, // 90 days
|
|
135
|
+
},
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Fire-and-forget — never block the pipeline
|
|
140
|
+
}
|
|
141
|
+
})();
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|