@adonis-agora/telescope 0.5.2 → 0.6.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.
- package/CHANGELOG.md +6 -0
- package/dist/providers/telescope_alerts_provider.d.ts.map +1 -1
- package/dist/providers/telescope_alerts_provider.js +1 -1
- package/dist/providers/telescope_alerts_provider.js.map +1 -1
- package/dist/providers/telescope_mcp_provider.d.ts.map +1 -1
- package/dist/providers/telescope_mcp_provider.js +1 -1
- package/dist/providers/telescope_mcp_provider.js.map +1 -1
- package/dist/providers/telescope_provider.d.ts.map +1 -1
- package/dist/providers/telescope_provider.js +9 -3
- package/dist/providers/telescope_provider.js.map +1 -1
- package/dist/src/ai/index.d.ts +1 -1
- package/dist/src/ai/index.js +1 -1
- package/dist/src/alerts/alert_rule.d.ts +84 -3
- package/dist/src/alerts/alert_rule.d.ts.map +1 -1
- package/dist/src/alerts/alerter.d.ts +24 -2
- package/dist/src/alerts/alerter.d.ts.map +1 -1
- package/dist/src/alerts/alerter.js +122 -11
- package/dist/src/alerts/alerter.js.map +1 -1
- package/dist/src/alerts/define_config.d.ts +9 -1
- package/dist/src/alerts/define_config.d.ts.map +1 -1
- package/dist/src/alerts/define_config.js +8 -0
- package/dist/src/alerts/define_config.js.map +1 -1
- package/dist/src/alerts/exception_source.d.ts +16 -7
- package/dist/src/alerts/exception_source.d.ts.map +1 -1
- package/dist/src/alerts/exception_source.js +29 -17
- package/dist/src/alerts/exception_source.js.map +1 -1
- package/dist/src/alerts/index.d.ts +2 -2
- package/dist/src/alerts/index.d.ts.map +1 -1
- package/dist/src/alerts/index.js +1 -1
- package/dist/src/alerts/index.js.map +1 -1
- package/dist/src/alerts/slack_format.d.ts +8 -0
- package/dist/src/alerts/slack_format.d.ts.map +1 -1
- package/dist/src/alerts/slack_format.js +128 -3
- package/dist/src/alerts/slack_format.js.map +1 -1
- package/dist/src/client_errors/ingestor.d.ts.map +1 -1
- package/dist/src/client_errors/ingestor.js +20 -1
- package/dist/src/client_errors/ingestor.js.map +1 -1
- package/dist/src/client_errors/validation.d.ts.map +1 -1
- package/dist/src/client_errors/validation.js +7 -2
- package/dist/src/client_errors/validation.js.map +1 -1
- package/dist/src/define_config.d.ts +51 -0
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +6 -0
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/diagnostics_registry.d.ts +15 -0
- package/dist/src/diagnostics_registry.d.ts.map +1 -1
- package/dist/src/diagnostics_registry.js +19 -0
- package/dist/src/diagnostics_registry.js.map +1 -1
- package/dist/src/diagnostics_watcher.d.ts +28 -1
- package/dist/src/diagnostics_watcher.d.ts.map +1 -1
- package/dist/src/diagnostics_watcher.js +17 -2
- package/dist/src/diagnostics_watcher.js.map +1 -1
- package/dist/src/extension/types.d.ts +35 -2
- package/dist/src/extension/types.d.ts.map +1 -1
- package/dist/src/extension/types.js.map +1 -1
- package/dist/src/index.d.ts +7 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/index.d.ts +1 -1
- package/dist/src/mcp/index.js +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +7 -2
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/metrics/waterfall.d.ts.map +1 -1
- package/dist/src/metrics/waterfall.js +6 -0
- package/dist/src/metrics/waterfall.js.map +1 -1
- package/dist/src/redaction/redact.d.ts +21 -0
- package/dist/src/redaction/redact.d.ts.map +1 -1
- package/dist/src/redaction/redact.js +18 -0
- package/dist/src/redaction/redact.js.map +1 -1
- package/dist/src/redaction/redacting_store.d.ts.map +1 -1
- package/dist/src/redaction/redacting_store.js +10 -1
- package/dist/src/redaction/redacting_store.js.map +1 -1
- package/dist/src/registry.d.ts +8 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +4 -1
- package/dist/src/registry.js.map +1 -1
- package/dist/src/request_watcher.d.ts +68 -0
- package/dist/src/request_watcher.d.ts.map +1 -1
- package/dist/src/request_watcher.js +101 -0
- package/dist/src/request_watcher.js.map +1 -1
- package/dist/src/service.d.ts.map +1 -1
- package/dist/src/service.js.map +1 -1
- package/dist/src/telescope_middleware.d.ts.map +1 -1
- package/dist/src/telescope_middleware.js +5 -1
- package/dist/src/telescope_middleware.js.map +1 -1
- package/dist/src/ui/dashboard.html +58 -10
- package/dist/src/ui/ext_table.d.ts +50 -0
- package/dist/src/ui/ext_table.d.ts.map +1 -0
- package/dist/src/ui/ext_table.js +42 -0
- package/dist/src/ui/ext_table.js.map +1 -0
- package/dist/src/ui/index.d.ts +3 -1
- package/dist/src/ui/index.d.ts.map +1 -1
- package/dist/src/ui/index.js +3 -1
- package/dist/src/ui/index.js.map +1 -1
- package/dist/src/watchers/index.d.ts +1 -1
- package/dist/src/watchers/index.js +1 -1
- package/dist/src/watchers/schedule_watcher.d.ts.map +1 -1
- package/dist/src/watchers/schedule_watcher.js +6 -1
- package/dist/src/watchers/schedule_watcher.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @adonis-agora/telescope
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Parity sync from nestjs-telescope (redact binary-blob bound, client-error reorder, Slack section spread, diagnostics exclude/recordClaimed, exception alert enrichment + every-exception + isNew badge, lib:event span labels, client_exception polling, perType redaction budgets, paged ext-dashboard + trace deep-links, requestCapture gates).
|
|
8
|
+
|
|
3
9
|
## 0.5.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_alerts_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAI9B,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAH7C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,cAAc,CAA+B;gBAE/B,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAcT,IAAI;
|
|
1
|
+
{"version":3,"file":"telescope_alerts_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAI9B,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAH7C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,cAAc,CAA+B;gBAE/B,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAcT,IAAI;IA0DJ,QAAQ;CAcf"}
|
|
@@ -49,7 +49,7 @@ export default class TelescopeAlertsProvider {
|
|
|
49
49
|
// in the runtime slot. When AI is off, no hook is passed and alerts are
|
|
50
50
|
// exactly as before (no "Probable cause (AI)" section).
|
|
51
51
|
const coordinator = getTelescopeRuntime().diagnosisCoordinator;
|
|
52
|
-
const diagnose = coordinator
|
|
52
|
+
const diagnose = coordinator?.isConfigured()
|
|
53
53
|
? (entry) => coordinator.diagnoseSummary(entry)
|
|
54
54
|
: undefined;
|
|
55
55
|
const alerter = new Alerter({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_alerts_provider.js","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAA8B,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAIpB;IAHd,MAAM,GAA2B,IAAI,CAAC;IACtC,cAAc,GAA0B,IAAI,CAAC;IAErD,YAAsB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEzC,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAC7B,kBAAkB,EAClB,SAAS,CACV,CAAC;QACF,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CACvC,yBAAyB,EACzB,SAAS,CACV,CAAC;QACF,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE5B,IAAI,KAA4B,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,GAAG,mBAAmB,EAAE,CAAC,KAAK,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,mEAAmE,SAAS,CAAC,GAAG,CAAC,EAAE,CACpF,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAE3B,+EAA+E;QAC/E,wEAAwE;QACxE,wDAAwD;QACxD,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC,oBAAoB,CAAC;QAC/D,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"telescope_alerts_provider.js","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_mcp_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAkB/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC3B,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAMT,IAAI;
|
|
1
|
+
{"version":3,"file":"telescope_mcp_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAkB/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC3B,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAMT,IAAI;CAqFX"}
|
|
@@ -64,7 +64,7 @@ export default class TelescopeMcpProvider {
|
|
|
64
64
|
// runtime slot. When AI is off (no coordinator, or an inert one), NO hook is
|
|
65
65
|
// passed, so `diagnose_exception` reports "not configured" exactly as before.
|
|
66
66
|
const coordinator = getTelescopeRuntime().diagnosisCoordinator;
|
|
67
|
-
const diagnose = coordinator
|
|
67
|
+
const diagnose = coordinator?.isConfigured()
|
|
68
68
|
? async (entry) => {
|
|
69
69
|
// Feed the same-trace siblings as extra context (already redacted).
|
|
70
70
|
const related = entry.traceId !== null ? await service.byTrace(entry.traceId) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_mcp_provider.js","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAGL,aAAa,GACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACjB;IAAtB,YAAsB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEzC,OAAO;QACb,OAAO,aAAa,CAClB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAiC,eAAe,EAAE,SAAS,CAAC,CAChF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE5B,IAAI,KAA4B,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,GAAG,mBAAmB,EAAE,CAAC,KAAK,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,gEAAgE,SAAS,CAAC,GAAG,CAAC,EAAE,CACjF,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CACV,6FAA6F;gBAC3F,8BAA8B,CACjC,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE;YAC1C,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ;YACnC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI;YAC3B,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;YACjC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW;YACzC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK;YAC7B,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7F,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE;YACxC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7F,CAAC,CAAC;QACH,+EAA+E;QAC/E,6EAA6E;QAC7E,8EAA8E;QAC9E,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC,oBAAoB,CAAC;QAC/D,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"telescope_mcp_provider.js","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAgC/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAOxB,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAN7C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,aAAa,CAA8B;gBAE7B,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAUF,IAAI;
|
|
1
|
+
{"version":3,"file":"telescope_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAgC/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAOxB,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAN7C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,aAAa,CAA8B;gBAE7B,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAUF,IAAI;IAkDV;;;;OAIG;YACW,oBAAoB;IAelC;;;;;OAKG;YACW,UAAU;IAexB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAMtB,oGAAoG;IACpG,OAAO,CAAC,sBAAsB;IAaxB,QAAQ;CAWf"}
|
|
@@ -54,10 +54,13 @@ export default class TelescopeProvider {
|
|
|
54
54
|
resetTelescopeRuntime();
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
-
setTelescopeRuntime(store, config.watchers.has('request'));
|
|
57
|
+
setTelescopeRuntime(store, config.watchers.has('request'), config.requestCapture);
|
|
58
58
|
setTelescopeEntryEvents(this.entryEvents);
|
|
59
59
|
if (config.watchers.has('diagnostics')) {
|
|
60
|
-
const watcher = new DiagnosticsWatcher(store
|
|
60
|
+
const watcher = new DiagnosticsWatcher(store, {
|
|
61
|
+
exclude: config.diagnostics.exclude,
|
|
62
|
+
recordClaimed: config.diagnostics.recordClaimed,
|
|
63
|
+
});
|
|
61
64
|
watcher.start();
|
|
62
65
|
this.diagnosticsWatcher = watcher;
|
|
63
66
|
}
|
|
@@ -125,7 +128,10 @@ export default class TelescopeProvider {
|
|
|
125
128
|
applyRedaction(store, config) {
|
|
126
129
|
if (!config.redact.enabled)
|
|
127
130
|
return store;
|
|
128
|
-
return new RedactingTelescopeStore(store, {
|
|
131
|
+
return new RedactingTelescopeStore(store, {
|
|
132
|
+
keys: config.redact.keys,
|
|
133
|
+
perType: config.redact.perType,
|
|
134
|
+
});
|
|
129
135
|
}
|
|
130
136
|
/**
|
|
131
137
|
* Wrap the store with the tail-sampling decorator so dropped entries are never
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ai/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.6.0";
|
|
3
3
|
export { TelescopeAiDiagnoser } from './telescope_ai_diagnoser.js';
|
|
4
4
|
export type { AnthropicMessagesClient, DiagnoseOptions, TelescopeAiDiagnoserOptions, } from './telescope_ai_diagnoser.js';
|
|
5
5
|
export { normalizeConfidence, parseDiagnosis } from './diagnoser.js';
|
package/dist/src/ai/index.js
CHANGED
|
@@ -12,6 +12,14 @@ import type { AlertChannel } from './alert_channel.js';
|
|
|
12
12
|
* within `window` (a genuinely NEW error family), and
|
|
13
13
|
* again if the family re-appears after the window elapses.
|
|
14
14
|
* Dedup is per-process via {@link NewExceptionTracker}.
|
|
15
|
+
* - `every-exception` fires for EVERY exception (server + browser-reported
|
|
16
|
+
* `client_exception`), not just brand-new families —
|
|
17
|
+
* parity with a "notify on every error" setup. Still
|
|
18
|
+
* rate-limited by the shared `cooldown` PER FAMILY (on an
|
|
19
|
+
* independent clock from `new-exception`), so a hot loop of
|
|
20
|
+
* the same error re-pages once per cooldown rather than on
|
|
21
|
+
* every occurrence. The optional `window` is used only to
|
|
22
|
+
* count occurrences shown on the alert; it does NOT gate firing.
|
|
15
23
|
* - `exception-rate` fires when `>= threshold` exception entries were recorded
|
|
16
24
|
* in the trailing `window`.
|
|
17
25
|
*
|
|
@@ -28,6 +36,9 @@ import type { AlertChannel } from './alert_channel.js';
|
|
|
28
36
|
export type AlertRule = {
|
|
29
37
|
type: 'new-exception';
|
|
30
38
|
window: string;
|
|
39
|
+
} | {
|
|
40
|
+
type: 'every-exception';
|
|
41
|
+
window?: string;
|
|
31
42
|
} | {
|
|
32
43
|
type: 'exception-rate';
|
|
33
44
|
window: string;
|
|
@@ -58,8 +69,31 @@ export type AlertRule = {
|
|
|
58
69
|
*/
|
|
59
70
|
export type AlertMetric = 'request-p95-ms' | 'request-p99-ms' | 'query-p95-ms' | 'query-p99-ms' | 'cache-hit-rate' | 'exception-count';
|
|
60
71
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
72
|
+
* A coarse geo location resolved from a client IP, attached to an exception alert
|
|
73
|
+
* when a {@link GeoLookup} hook is configured. Every field is optional — a partial
|
|
74
|
+
* result (e.g. country only) still renders. Deliberately dependency-light: the LIB
|
|
75
|
+
* ships no geo database or HTTP client; the host owns the lookup (and its
|
|
76
|
+
* caching/rate-limiting) and returns this shape.
|
|
77
|
+
*/
|
|
78
|
+
export interface AlertGeoLocation {
|
|
79
|
+
city?: string;
|
|
80
|
+
region?: string;
|
|
81
|
+
country?: string;
|
|
82
|
+
/** ISO 3166-1 alpha-2 (e.g. `US`), used to render a flag emoji. */
|
|
83
|
+
countryCode?: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Host-supplied resolver from a client IP to a coarse {@link AlertGeoLocation}.
|
|
87
|
+
* Called ONLY when an exception alert actually fires and carries a `clientIp`, so
|
|
88
|
+
* the common no-fire path pays nothing. May be sync or async; returning `null`
|
|
89
|
+
* (or throwing — swallowed) simply omits the Location field. The lib never caches
|
|
90
|
+
* or rate-limits it — do that in the hook if the provider needs it.
|
|
91
|
+
*/
|
|
92
|
+
export type GeoLookup = (ip: string) => AlertGeoLocation | null | Promise<AlertGeoLocation | null>;
|
|
93
|
+
/**
|
|
94
|
+
* Rich exception context attached to a `new-exception` / `every-exception` alert.
|
|
95
|
+
* Pulled from the exception {@link Entry} that fired the rule. Absent on rate-rule
|
|
96
|
+
* alerts.
|
|
63
97
|
*/
|
|
64
98
|
export interface ExceptionAlertContext {
|
|
65
99
|
/** Stable family hash that was first-seen this window. */
|
|
@@ -72,14 +106,59 @@ export interface ExceptionAlertContext {
|
|
|
72
106
|
stack: string | null;
|
|
73
107
|
/** Request route/uri associated with the exception, or `null`. */
|
|
74
108
|
route: string | null;
|
|
75
|
-
/** Request method, or `null
|
|
109
|
+
/** Request method, or `null` (always `null` for a client_exception). */
|
|
76
110
|
method: string | null;
|
|
77
111
|
/** Response status code, or `null`. */
|
|
78
112
|
statusCode: number | null;
|
|
113
|
+
/**
|
|
114
|
+
* User-agent string. For a `client_exception` it's the reporting browser's UA;
|
|
115
|
+
* for a server exception it's the sibling request's UA (when captured). `null`
|
|
116
|
+
* when unavailable.
|
|
117
|
+
*/
|
|
118
|
+
userAgent: string | null;
|
|
119
|
+
/**
|
|
120
|
+
* `Referer` header of the originating request (server exception) — the page a
|
|
121
|
+
* user came from. `null` when absent or for a `client_exception` (the browser
|
|
122
|
+
* report carries its own page `url` in `route`, not a referer).
|
|
123
|
+
*/
|
|
124
|
+
referer: string | null;
|
|
125
|
+
/**
|
|
126
|
+
* React component stack from an error boundary — present ONLY for a
|
|
127
|
+
* `client_exception` that supplied one. `null` otherwise.
|
|
128
|
+
*/
|
|
129
|
+
componentStack: string | null;
|
|
130
|
+
/**
|
|
131
|
+
* Host-defined free-form debugging bag from a `client_exception` (`extra`), or
|
|
132
|
+
* `null`. Redacted/bounded at record time like any other content.
|
|
133
|
+
*/
|
|
134
|
+
extra: Record<string, unknown> | null;
|
|
135
|
+
/** True when this alert is a browser-reported `client_exception`. */
|
|
136
|
+
client: boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Originating client IP, or `null` when unknown. For a `client_exception` it's
|
|
139
|
+
* the browser IP the ingestion endpoint filled in server-side (`clientIp`);
|
|
140
|
+
* for a server exception it's the recorded request IP when available. NEVER
|
|
141
|
+
* sourced from an untrusted body.
|
|
142
|
+
*/
|
|
143
|
+
clientIp: string | null;
|
|
144
|
+
/**
|
|
145
|
+
* Coarse geo location resolved from {@link clientIp}, or `null`. Populated only
|
|
146
|
+
* when a {@link GeoLookup} hook is configured AND the alert has a `clientIp`;
|
|
147
|
+
* otherwise `null`.
|
|
148
|
+
*/
|
|
149
|
+
geo: AlertGeoLocation | null;
|
|
150
|
+
/** Request duration (ms), or `null`. */
|
|
151
|
+
durationMs: number | null;
|
|
79
152
|
/** Authenticated user id from a `user:<id>` tag, or `null`. */
|
|
80
153
|
user: string | null;
|
|
81
154
|
/** Times this family was seen in the window (>= 1; 1 on first-occurrence). */
|
|
82
155
|
occurrences: number;
|
|
156
|
+
/**
|
|
157
|
+
* True when this is the family's first occurrence in the window (`occurrences
|
|
158
|
+
* === 1`) — a brand-new error rather than a recurrence. Lets channels badge a
|
|
159
|
+
* new error distinctly from a recurring one.
|
|
160
|
+
*/
|
|
161
|
+
isNew: boolean;
|
|
83
162
|
/** Exception entry id (for the dashboard deep link). */
|
|
84
163
|
entryId: string;
|
|
85
164
|
}
|
|
@@ -150,5 +229,7 @@ export interface ResolvedAlerts {
|
|
|
150
229
|
instanceId: string;
|
|
151
230
|
/** Rules to evaluate. */
|
|
152
231
|
rules: AlertRule[];
|
|
232
|
+
/** Host IP→geo resolver, or `null` when unconfigured. */
|
|
233
|
+
geoLookup: GeoLookup | null;
|
|
153
234
|
}
|
|
154
235
|
//# sourceMappingURL=alert_rule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert_rule.d.ts","sourceRoot":"","sources":["../../../src/alerts/alert_rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD
|
|
1
|
+
{"version":3,"file":"alert_rule.d.ts","sourceRoot":"","sources":["../../../src/alerts/alert_rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Entry } from '../entry.js';
|
|
2
2
|
import type { AlertDiagnosis, ResolvedAlerts } from './alert_rule.js';
|
|
3
3
|
export interface AlerterDeps {
|
|
4
4
|
alerts: ResolvedAlerts;
|
|
@@ -62,15 +62,37 @@ export declare class Alerter {
|
|
|
62
62
|
/** Number of error families currently tracked (test/observability seam). */
|
|
63
63
|
get trackedFamilies(): number;
|
|
64
64
|
private evaluateNewException;
|
|
65
|
+
/**
|
|
66
|
+
* The `every-exception` rule: fire for EVERY exception (server + client), not
|
|
67
|
+
* just brand-new families, rate-limited PER FAMILY by the shared cooldown on an
|
|
68
|
+
* independent clock from `new-exception`. The optional `window` only counts
|
|
69
|
+
* occurrences shown on the alert; it does NOT gate firing.
|
|
70
|
+
*/
|
|
71
|
+
private evaluateEveryException;
|
|
65
72
|
/** Run the optional diagnose hook, swallowing any failure to `null`. */
|
|
66
73
|
private safeDiagnose;
|
|
67
74
|
private evaluateExceptionRate;
|
|
68
75
|
/** Find a configured rule of `type` with its array index, or `null`. */
|
|
69
76
|
private findRule;
|
|
70
77
|
private inCooldown;
|
|
78
|
+
/** Composite cooldown key so each flush rule keeps an independent per-family clock. */
|
|
79
|
+
private cooldownKey;
|
|
71
80
|
private familyInCooldown;
|
|
72
81
|
private buildRatePayload;
|
|
73
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Build the rich exception payload shared by `new-exception` and
|
|
84
|
+
* `every-exception`. Reads the exception entry's own fields (server vs client),
|
|
85
|
+
* then — when a `geoLookup` hook is configured and a client IP is present —
|
|
86
|
+
* resolves the IP to a coarse location. Geo runs ONLY on a real fire.
|
|
87
|
+
*/
|
|
88
|
+
private buildExceptionPayload;
|
|
89
|
+
/**
|
|
90
|
+
* Resolve a client IP to a coarse {@link AlertGeoLocation} via the host's
|
|
91
|
+
* `geoLookup` hook. Returns `null` when no hook is configured, no IP is present,
|
|
92
|
+
* the hook returns `null`, or the hook throws (swallowed — geo is purely
|
|
93
|
+
* additive and must never break or block an alert beyond the hook's own cost).
|
|
94
|
+
*/
|
|
95
|
+
private resolveGeo;
|
|
74
96
|
/**
|
|
75
97
|
* Fan the payload out to every channel concurrently. Each channel's failure is
|
|
76
98
|
* isolated (`Promise.allSettled`) and warn-logged ONCE per channel name so a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alerter.d.ts","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"alerter.d.ts","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EACV,cAAc,EAKd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAWzB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,OAAO;IAaN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;gBAEpB,IAAI,EAAE,WAAW;IAM9C;;;;OAIG;IACG,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAOvC,4EAA4E;IAC5E,IAAI,eAAe,IAAI,MAAM,CAE5B;YAEa,oBAAoB;IA+BlC;;;;;OAKG;YACW,sBAAsB;IAuBpC,wEAAwE;YAC1D,YAAY;YAWZ,qBAAqB;IAiBnC,wEAAwE;IACxE,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,UAAU;IAMlB,uFAAuF;IACvF,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;YACW,qBAAqB;IAqBnC;;;;;OAKG;YACW,UAAU;IAWxB;;;;OAIG;YACW,QAAQ;IAWtB,OAAO,CAAC,kBAAkB;CAM3B"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { EntryType } from '../entry.js';
|
|
1
2
|
import { NewExceptionTracker } from './new_exception_tracker.js';
|
|
2
3
|
import { durationToMs } from './parse_duration.js';
|
|
3
4
|
/** Stack frames carried in a `new-exception` alert (the Slack channel re-clips). */
|
|
4
5
|
const ALERT_STACK_FRAME_LIMIT = 12;
|
|
6
|
+
/** Window used only to count occurrences on an `every-exception` alert when the
|
|
7
|
+
* rule omits its own `window`. Firing is per-flush, so this is display-only. */
|
|
8
|
+
const DEFAULT_EVERY_WINDOW = '1h';
|
|
5
9
|
/**
|
|
6
10
|
* Wires a source of exception {@link Entry} objects → rule evaluation → channels.
|
|
7
11
|
*
|
|
@@ -55,6 +59,7 @@ export class Alerter {
|
|
|
55
59
|
this.recentExceptions.push(entry.createdAt.getTime());
|
|
56
60
|
}
|
|
57
61
|
await this.evaluateNewException(exceptionEntries, nowMs);
|
|
62
|
+
await this.evaluateEveryException(exceptionEntries, nowMs);
|
|
58
63
|
await this.evaluateExceptionRate(nowMs);
|
|
59
64
|
}
|
|
60
65
|
catch (error) {
|
|
@@ -68,7 +73,9 @@ export class Alerter {
|
|
|
68
73
|
*/
|
|
69
74
|
resolveFamily(familyHash) {
|
|
70
75
|
this.tracker.resolve(familyHash);
|
|
71
|
-
|
|
76
|
+
// Clear BOTH flush rules' independent per-family cooldown clocks.
|
|
77
|
+
this.lastFiredFamily.delete(this.cooldownKey('new-exception', familyHash));
|
|
78
|
+
this.lastFiredFamily.delete(this.cooldownKey('every-exception', familyHash));
|
|
72
79
|
}
|
|
73
80
|
/** Number of error families currently tracked (test/observability seam). */
|
|
74
81
|
get trackedFamilies() {
|
|
@@ -93,11 +100,11 @@ export class Alerter {
|
|
|
93
100
|
const isNew = this.tracker.observe(entry.familyHash, nowMs, windowMs);
|
|
94
101
|
if (!isNew)
|
|
95
102
|
continue;
|
|
96
|
-
if (this.familyInCooldown(entry.familyHash, nowMs))
|
|
103
|
+
if (this.familyInCooldown('new-exception', entry.familyHash, nowMs))
|
|
97
104
|
continue;
|
|
98
|
-
this.lastFiredFamily.set(entry.familyHash, nowMs);
|
|
105
|
+
this.lastFiredFamily.set(this.cooldownKey('new-exception', entry.familyHash), nowMs);
|
|
99
106
|
const occurrences = occurrencesByFamily.get(entry.familyHash) ?? 1;
|
|
100
|
-
const payload = this.
|
|
107
|
+
const payload = await this.buildExceptionPayload(result.rule, entry, occurrences, nowMs);
|
|
101
108
|
// Optionally enrich with an AI probable-cause section when a diagnose hook is
|
|
102
109
|
// wired. The hook is expected to be fail-safe/time-bounded (the coordinator
|
|
103
110
|
// is); we guard it anyway so a diagnosis failure never blocks the alert.
|
|
@@ -107,6 +114,36 @@ export class Alerter {
|
|
|
107
114
|
await this.dispatch(payload);
|
|
108
115
|
}
|
|
109
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* The `every-exception` rule: fire for EVERY exception (server + client), not
|
|
119
|
+
* just brand-new families, rate-limited PER FAMILY by the shared cooldown on an
|
|
120
|
+
* independent clock from `new-exception`. The optional `window` only counts
|
|
121
|
+
* occurrences shown on the alert; it does NOT gate firing.
|
|
122
|
+
*/
|
|
123
|
+
async evaluateEveryException(entries, nowMs) {
|
|
124
|
+
const result = this.findRule('every-exception');
|
|
125
|
+
if (result === null)
|
|
126
|
+
return;
|
|
127
|
+
const occurrencesByFamily = new Map();
|
|
128
|
+
for (const entry of entries) {
|
|
129
|
+
if (entry.familyHash === null)
|
|
130
|
+
continue;
|
|
131
|
+
occurrencesByFamily.set(entry.familyHash, (occurrencesByFamily.get(entry.familyHash) ?? 0) + 1);
|
|
132
|
+
}
|
|
133
|
+
for (const entry of entries) {
|
|
134
|
+
if (entry.familyHash === null)
|
|
135
|
+
continue;
|
|
136
|
+
if (this.familyInCooldown('every-exception', entry.familyHash, nowMs))
|
|
137
|
+
continue;
|
|
138
|
+
this.lastFiredFamily.set(this.cooldownKey('every-exception', entry.familyHash), nowMs);
|
|
139
|
+
const occurrences = occurrencesByFamily.get(entry.familyHash) ?? 1;
|
|
140
|
+
const payload = await this.buildExceptionPayload(result.rule, entry, occurrences, nowMs);
|
|
141
|
+
const diagnosis = await this.safeDiagnose(entry);
|
|
142
|
+
if (diagnosis !== null)
|
|
143
|
+
payload.diagnosis = diagnosis;
|
|
144
|
+
await this.dispatch(payload);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
110
147
|
/** Run the optional diagnose hook, swallowing any failure to `null`. */
|
|
111
148
|
async safeDiagnose(entry) {
|
|
112
149
|
const diagnose = this.deps.diagnose;
|
|
@@ -155,8 +192,12 @@ export class Alerter {
|
|
|
155
192
|
return false;
|
|
156
193
|
return nowMs - last < this.deps.alerts.cooldownMs;
|
|
157
194
|
}
|
|
158
|
-
|
|
159
|
-
|
|
195
|
+
/** Composite cooldown key so each flush rule keeps an independent per-family clock. */
|
|
196
|
+
cooldownKey(ruleType, familyHash) {
|
|
197
|
+
return `${ruleType}|${familyHash}`;
|
|
198
|
+
}
|
|
199
|
+
familyInCooldown(ruleType, familyHash, nowMs) {
|
|
200
|
+
const last = this.lastFiredFamily.get(this.cooldownKey(ruleType, familyHash));
|
|
160
201
|
if (last === undefined)
|
|
161
202
|
return false;
|
|
162
203
|
return nowMs - last < this.deps.alerts.cooldownMs;
|
|
@@ -173,19 +214,45 @@ export class Alerter {
|
|
|
173
214
|
: {}),
|
|
174
215
|
};
|
|
175
216
|
}
|
|
176
|
-
|
|
217
|
+
/**
|
|
218
|
+
* Build the rich exception payload shared by `new-exception` and
|
|
219
|
+
* `every-exception`. Reads the exception entry's own fields (server vs client),
|
|
220
|
+
* then — when a `geoLookup` hook is configured and a client IP is present —
|
|
221
|
+
* resolves the IP to a coarse location. Geo runs ONLY on a real fire.
|
|
222
|
+
*/
|
|
223
|
+
async buildExceptionPayload(rule, entry, occurrences, nowMs) {
|
|
224
|
+
const exception = buildExceptionContext(entry, occurrences);
|
|
225
|
+
exception.geo = await this.resolveGeo(exception.clientIp);
|
|
177
226
|
return {
|
|
178
227
|
rule,
|
|
179
228
|
value: occurrences,
|
|
180
229
|
threshold: 1,
|
|
181
230
|
firedAt: new Date(nowMs).toISOString(),
|
|
182
231
|
instanceId: this.deps.alerts.instanceId,
|
|
183
|
-
exception
|
|
232
|
+
exception,
|
|
184
233
|
...(this.deps.alerts.dashboardUrl !== null
|
|
185
234
|
? { dashboardUrl: this.deps.alerts.dashboardUrl }
|
|
186
235
|
: {}),
|
|
187
236
|
};
|
|
188
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Resolve a client IP to a coarse {@link AlertGeoLocation} via the host's
|
|
240
|
+
* `geoLookup` hook. Returns `null` when no hook is configured, no IP is present,
|
|
241
|
+
* the hook returns `null`, or the hook throws (swallowed — geo is purely
|
|
242
|
+
* additive and must never break or block an alert beyond the hook's own cost).
|
|
243
|
+
*/
|
|
244
|
+
async resolveGeo(clientIp) {
|
|
245
|
+
const hook = this.deps.alerts.geoLookup;
|
|
246
|
+
if (typeof hook !== 'function' || clientIp === null)
|
|
247
|
+
return null;
|
|
248
|
+
try {
|
|
249
|
+
return (await hook(clientIp)) ?? null;
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
this.logger(`Telescope alert geoLookup failed: ${asMessage(error)}`);
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
189
256
|
/**
|
|
190
257
|
* Fan the payload out to every channel concurrently. Each channel's failure is
|
|
191
258
|
* isolated (`Promise.allSettled`) and warn-logged ONCE per channel name so a
|
|
@@ -208,21 +275,55 @@ export class Alerter {
|
|
|
208
275
|
this.logger(`Telescope alert channel '${channel.name}' failed: ${asMessage(reason)}`);
|
|
209
276
|
}
|
|
210
277
|
}
|
|
211
|
-
/**
|
|
278
|
+
/**
|
|
279
|
+
* Build the rich exception context from an exception {@link Entry}, branching on
|
|
280
|
+
* whether it's a browser-reported `client_exception` or a server exception. Client
|
|
281
|
+
* exceptions carry their own IP (server-filled at ingest, NEVER from the body),
|
|
282
|
+
* user-agent, React component stack, and free-form `extra`; server exceptions
|
|
283
|
+
* carry route/method from the recorded request context. `geo` is left `null` here
|
|
284
|
+
* and resolved async by the alerter only on a real fire.
|
|
285
|
+
*/
|
|
212
286
|
function buildExceptionContext(entry, occurrences) {
|
|
213
287
|
const content = asContentRecord(entry.content);
|
|
214
|
-
|
|
288
|
+
const client = entry.type === EntryType.ClientException;
|
|
289
|
+
const base = {
|
|
215
290
|
familyHash: entry.familyHash ?? '',
|
|
216
291
|
class: pickString(content, ['class', 'name']) ?? 'Error',
|
|
217
292
|
message: pickString(content, ['message']) ?? '',
|
|
218
293
|
stack: clipStackFrames(pickString(content, ['stack']) ?? null),
|
|
219
294
|
route: pickString(content, ['route', 'uri', 'url']),
|
|
220
|
-
method: pickString(content, ['method']),
|
|
221
295
|
statusCode: pickNumber(content, ['statusCode', 'status']),
|
|
296
|
+
geo: null,
|
|
297
|
+
durationMs: pickNumber(content, ['durationMs']),
|
|
222
298
|
user: userFromTags(entry.tags),
|
|
223
299
|
occurrences,
|
|
300
|
+
// First occurrence of the family in the window vs a recurrence.
|
|
301
|
+
isNew: occurrences === 1,
|
|
224
302
|
entryId: entry.id,
|
|
225
303
|
};
|
|
304
|
+
if (client) {
|
|
305
|
+
return {
|
|
306
|
+
...base,
|
|
307
|
+
method: null,
|
|
308
|
+
userAgent: pickString(content, ['userAgent']),
|
|
309
|
+
referer: null,
|
|
310
|
+
componentStack: pickString(content, ['componentStack']),
|
|
311
|
+
extra: pickRecord(content, ['extra']),
|
|
312
|
+
client: true,
|
|
313
|
+
// Server-filled at ingest (client_errors validation), never from the body.
|
|
314
|
+
clientIp: pickString(content, ['clientIp']),
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
return {
|
|
318
|
+
...base,
|
|
319
|
+
method: pickString(content, ['method']),
|
|
320
|
+
userAgent: pickString(content, ['userAgent']),
|
|
321
|
+
referer: pickString(content, ['referer', 'referrer']),
|
|
322
|
+
componentStack: null,
|
|
323
|
+
extra: null,
|
|
324
|
+
client: false,
|
|
325
|
+
clientIp: pickString(content, ['ip', 'clientIp']),
|
|
326
|
+
};
|
|
226
327
|
}
|
|
227
328
|
function asContentRecord(content) {
|
|
228
329
|
return typeof content === 'object' && content !== null
|
|
@@ -247,6 +348,16 @@ function pickNumber(record, keys) {
|
|
|
247
348
|
}
|
|
248
349
|
return null;
|
|
249
350
|
}
|
|
351
|
+
/** First plain-object field among `keys`, or `null`. */
|
|
352
|
+
function pickRecord(record, keys) {
|
|
353
|
+
for (const key of keys) {
|
|
354
|
+
const value = record[key];
|
|
355
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
356
|
+
return value;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
250
361
|
/** Keep at most the first N stack frames; `null` passes through. */
|
|
251
362
|
function clipStackFrames(stack) {
|
|
252
363
|
if (stack === null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alerter.js","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,oFAAoF;AACpF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAoBnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,OAAO;IAaW;IAZZ,GAAG,CAAe;IAClB,MAAM,CAA4B;IAClC,OAAO,CAAsB;IAC9C,sEAAsE;IACrD,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,wEAAwE;IACvD,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7D,6EAA6E;IAC5D,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACpD,yEAAyE;IACxD,gBAAgB,GAAa,EAAE,CAAC;IAEjD,YAA6B,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,gBAAyB;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,sEAAsE;YACtE,uEAAuE;YACvE,2EAA2E;YAC3E,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,+DAA+D;YAC/D,IAAI,CAAC,MAAM,CAAC,sCAAsC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,4EAA4E;IAC5E,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,OAAgB,EAAE,KAAa;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,mBAAmB,CAAC,GAAG,CACrB,KAAK,CAAC,UAAU,EAChB,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACrD,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;gBAAE,SAAS;YAC7D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACtF,8EAA8E;YAC9E,4EAA4E;YAC5E,yEAAyE;YACzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,YAAY,CAAC,KAAY;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,qCAAqC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,KAAa;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,oDAAoD;QACpD,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAY,GAAG,MAAM,EAAE,CAAC;YACzF,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;YAAE,OAAO;QACnC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO;QAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,wEAAwE;IAChE,QAAQ,CACd,IAAO;QAEP,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7C,OAAO,EAAE,IAAI,EAAE,IAAuC,EAAE,KAAK,EAAE,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,KAAa;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,UAAkB,EAAE,KAAa;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACpD,CAAC;IAEO,gBAAgB,CACtB,IAAe,EACf,KAAa,EACb,SAAiB,EACjB,KAAa;QAEb,OAAO;YACL,IAAI;YACJ,KAAK;YACL,SAAS;YACT,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACvC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACxC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAC9B,IAAe,EACf,KAAY,EACZ,WAAmB,EACnB,KAAa;QAEb,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACvC,SAAS,EAAE,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACxC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,QAAQ,CAAC,OAAqB;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,OAAiC,EAAE,MAAe;QAC3E,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,IAAI,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;CACF;AAED,wEAAwE;AACxE,SAAS,qBAAqB,CAAC,KAAY,EAAE,WAAmB;IAC9D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,OAAO;QACxD,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;QAC/C,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;QAC9D,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;QACvC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,WAAW;QACX,OAAO,EAAE,KAAK,CAAC,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QACpD,CAAC,CAAE,OAAmC;QACtC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,yDAAyD;AACzD,SAAS,UAAU,CAAC,MAA+B,EAAE,IAAc;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,SAAS,UAAU,CAAC,MAA+B,EAAE,IAAc;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oEAAoE;AACpE,SAAS,eAAe,CAAC,KAAoB;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAC,IAAc;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
1
|
+
{"version":3,"file":"alerter.js","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,aAAa,CAAC;AAUpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,oFAAoF;AACpF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC;iFACiF;AACjF,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAoBlC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,OAAO;IAaW;IAZZ,GAAG,CAAe;IAClB,MAAM,CAA4B;IAClC,OAAO,CAAsB;IAC9C,sEAAsE;IACrD,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,wEAAwE;IACvD,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7D,6EAA6E;IAC5D,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACpD,yEAAyE;IACxD,gBAAgB,GAAa,EAAE,CAAC;IAEjD,YAA6B,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,gBAAyB;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,sEAAsE;YACtE,uEAAuE;YACvE,2EAA2E;YAC3E,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,+DAA+D;YAC/D,IAAI,CAAC,MAAM,CAAC,sCAAsC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,kEAAkE;QAClE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,4EAA4E;IAC5E,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,OAAgB,EAAE,KAAa;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,mBAAmB,CAAC,GAAG,CACrB,KAAK,CAAC,UAAU,EAChB,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACrD,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;gBAAE,SAAS;YAC9E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;YACrF,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACzF,8EAA8E;YAC9E,4EAA4E;YAC5E,yEAAyE;YACzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,sBAAsB,CAAC,OAAgB,EAAE,KAAa;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,mBAAmB,CAAC,GAAG,CACrB,KAAK,CAAC,UAAU,EAChB,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACrD,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,IAAI,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;gBAAE,SAAS;YAChF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;YACvF,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACzF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,YAAY,CAAC,KAAY;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,qCAAqC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,KAAa;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,oDAAoD;QACpD,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAY,GAAG,MAAM,EAAE,CAAC;YACzF,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;YAAE,OAAO;QACnC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO;QAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,wEAAwE;IAChE,QAAQ,CACd,IAAO;QAEP,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7C,OAAO,EAAE,IAAI,EAAE,IAAuC,EAAE,KAAK,EAAE,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,KAAa;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACpD,CAAC;IAED,uFAAuF;IAC/E,WAAW,CAAC,QAA6C,EAAE,UAAkB;QACnF,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;IACrC,CAAC;IAEO,gBAAgB,CACtB,QAA6C,EAC7C,UAAkB,EAClB,KAAa;QAEb,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9E,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACpD,CAAC;IAEO,gBAAgB,CACtB,IAAe,EACf,KAAa,EACb,SAAiB,EACjB,KAAa;QAEb,OAAO;YACL,IAAI;YACJ,KAAK;YACL,SAAS;YACT,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACvC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACxC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,qBAAqB,CACjC,IAAe,EACf,KAAY,EACZ,WAAmB,EACnB,KAAa;QAEb,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5D,SAAS,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACvC,SAAS;YACT,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACxC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAC,QAAuB;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACxC,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACjE,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;QACxC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,qCAAqC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,QAAQ,CAAC,OAAqB;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,OAAiC,EAAE,MAAe;QAC3E,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,IAAI,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;CACF;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,KAAY,EAAE,WAAmB;IAC9D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,CAAC;IACxD,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,OAAO;QACxD,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;QAC/C,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;QAC9D,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACzD,GAAG,EAAE,IAAI;QACT,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,WAAW;QACX,gEAAgE;QAChE,KAAK,EAAE,WAAW,KAAK,CAAC;QACxB,OAAO,EAAE,KAAK,CAAC,EAAE;KAClB,CAAC;IACF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;YAC7C,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;YACvD,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,EAAE,IAAI;YACZ,2EAA2E;YAC3E,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;SAC5C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;QACvC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QACpD,CAAC,CAAE,OAAmC;QACtC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,yDAAyD;AACzD,SAAS,UAAU,CAAC,MAA+B,EAAE,IAAc;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,SAAS,UAAU,CAAC,MAA+B,EAAE,IAAc;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wDAAwD;AACxD,SAAS,UAAU,CACjB,MAA+B,EAC/B,IAAc;IAEd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,OAAO,KAAgC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oEAAoE;AACpE,SAAS,eAAe,CAAC,KAAoB;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAC,IAAc;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|