@noodleseed/one 0.17.0 → 0.18.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/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/alerts-ops.d.ts +2 -0
- package/dist/commands/alerts-ops.d.ts.map +1 -0
- package/dist/commands/alerts-ops.js +249 -0
- package/dist/commands/alerts-ops.js.map +1 -0
- package/dist/commands/analytics-ops.d.ts +13 -0
- package/dist/commands/analytics-ops.d.ts.map +1 -1
- package/dist/commands/analytics-ops.js +5 -2
- package/dist/commands/analytics-ops.js.map +1 -1
- package/dist/commands/catalog-data-resources.d.ts.map +1 -1
- package/dist/commands/catalog-data-resources.js +45 -0
- package/dist/commands/catalog-data-resources.js.map +1 -1
- package/dist/commands/github-ops.d.ts.map +1 -1
- package/dist/commands/github-ops.js +24 -4
- package/dist/commands/github-ops.js.map +1 -1
- package/dist/commands/github-runs-ops.d.ts +32 -0
- package/dist/commands/github-runs-ops.d.ts.map +1 -0
- package/dist/commands/github-runs-ops.js +132 -0
- package/dist/commands/github-runs-ops.js.map +1 -0
- package/dist/commands/mcp-apps.js +27 -0
- package/dist/commands/mcp-apps.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +1 -3
- package/dist/prompts.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +5 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +3 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/recording.js +18 -23
- package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts +4 -1
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +3 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +2 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +1 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +6 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-compile-helpers.d.ts +3 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-compile-helpers.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-compile-helpers.js +7 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-compile-helpers.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-emit.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-emit.js +3 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-emit.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +3 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.js +9 -3
- package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.js +1 -1
- package/node_modules/@noodle-borg/service/dist/alert-evaluator.d.ts +57 -0
- package/node_modules/@noodle-borg/service/dist/alert-evaluator.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/alert-evaluator.js +158 -0
- package/node_modules/@noodle-borg/service/dist/alert-evaluator.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/alert-webhook.d.ts +72 -0
- package/node_modules/@noodle-borg/service/dist/alert-webhook.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/alert-webhook.js +138 -0
- package/node_modules/@noodle-borg/service/dist/alert-webhook.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/github/pending-installations.d.ts +15 -8
- package/node_modules/@noodle-borg/service/dist/github/pending-installations.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/github/pending-installations.js +16 -9
- package/node_modules/@noodle-borg/service/dist/github/pending-installations.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.d.ts +10 -2
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +9 -1
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +20 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/alerts-dispatch.d.ts +28 -0
- package/node_modules/@noodle-borg/service/dist/routes/alerts-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/alerts-dispatch.js +50 -0
- package/node_modules/@noodle-borg/service/dist/routes/alerts-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/alerts.d.ts +39 -0
- package/node_modules/@noodle-borg/service/dist/routes/alerts.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/alerts.js +204 -0
- package/node_modules/@noodle-borg/service/dist/routes/alerts.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts +149 -0
- package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/contracts.js +81 -0
- package/node_modules/@noodle-borg/service/dist/routes/contracts.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-connection.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-connection.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.js +37 -2
- package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-runs.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/github-runs.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/github-runs.js +33 -0
- package/node_modules/@noodle-borg/service/dist/routes/github-runs.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/github-setup.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-setup.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-setup.js +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/github-setup.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-webhook.d.ts +29 -0
- package/node_modules/@noodle-borg/service/dist/routes/github-webhook.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/github-webhook.js +355 -0
- package/node_modules/@noodle-borg/service/dist/routes/github-webhook.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.d.ts +27 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.js +61 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +20 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +54 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +42 -1
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +37 -53
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/alert-rules-json-file.d.ts +21 -0
- package/node_modules/@noodle-borg/service/dist/store/alert-rules-json-file.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/alert-rules-json-file.js +115 -0
- package/node_modules/@noodle-borg/service/dist/store/alert-rules-json-file.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/alert-rules.d.ts +108 -0
- package/node_modules/@noodle-borg/service/dist/store/alert-rules.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/alert-rules.js +181 -0
- package/node_modules/@noodle-borg/service/dist/store/alert-rules.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.js +4 -0
- package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/github-connections.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/github-connections.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/github-connections.js +4 -0
- package/node_modules/@noodle-borg/service/dist/store/github-connections.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.d.ts +22 -0
- package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.js +116 -0
- package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/github-runs.d.ts +51 -0
- package/node_modules/@noodle-borg/service/dist/store/github-runs.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/github-runs.js +158 -0
- package/node_modules/@noodle-borg/service/dist/store/github-runs.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/pending-installations-postgres.d.ts +19 -0
- package/node_modules/@noodle-borg/service/dist/store/pending-installations-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/pending-installations-postgres.js +46 -0
- package/node_modules/@noodle-borg/service/dist/store/pending-installations-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-alerts.d.ts +26 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-alerts.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-alerts.js +142 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-alerts.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.d.ts +9 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js +113 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-github.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-github.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-github.js +7 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres-github.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +49 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +9 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.js +17 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +104 -0
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js +2 -0
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- package/package.json +2 -2
|
@@ -16,6 +16,7 @@ import { isAuthServerPath } from './oauth/paths.js';
|
|
|
16
16
|
import { createLocalPolicyAdmissionGate } from './policy.js';
|
|
17
17
|
import { CachingPolicyAssignmentStore } from './policy-cache.js';
|
|
18
18
|
import { InMemoryPolicyCounterStore } from './policy-counters.js';
|
|
19
|
+
import { dispatchAlertRoutes } from './routes/alerts-dispatch.js';
|
|
19
20
|
import { dispatchAnalyticsReads } from './routes/analytics-dispatch.js';
|
|
20
21
|
import { handleAppArchive, handleAppRestore } from './routes/archive.js';
|
|
21
22
|
import { handleAssetPreflight } from './routes/asset-control-plane.js';
|
|
@@ -24,15 +25,17 @@ import { handleAuditEvents, handleDeployments } from './routes/deployments.js';
|
|
|
24
25
|
import { handleHostedSmoke, handleInspect } from './routes/diagnostics.js';
|
|
25
26
|
import { dispatchGithubRoutes } from './routes/github-dispatch.js';
|
|
26
27
|
import { handleUserAppLogs } from './routes/logs.js';
|
|
27
|
-
import {
|
|
28
|
-
import { parseAppArchivePath, parseAppRestorePath, parseAuditEventsPath, parseConfigPath, parseDeploymentsPath,
|
|
28
|
+
import { dispatchOrgAdminRoutes } from './routes/org-admin-dispatch.js';
|
|
29
|
+
import { parseAppArchivePath, parseAppRestorePath, parseAuditEventsPath, parseConfigPath, parseDeploymentsPath, parsePlanPath, parsePolicyPath, parseTenantAccessPath, parseTenantAssetPreflightPath, parseTenantDeployPath, parseTenantInspectPath, parseTenantLogsPath, parseTenantRollbackPath, parseTenantSmokePath, parseTenantStatusPath, } from './routes/paths.js';
|
|
29
30
|
import { handlePlan } from './routes/plans.js';
|
|
30
31
|
import { handlePolicies } from './routes/policies.js';
|
|
31
32
|
import { dispatchResourceReads } from './routes/resource-read-dispatch.js';
|
|
32
33
|
import { handleRollback } from './routes/rollback.js';
|
|
34
|
+
import { InMemoryAlertRuleStore } from './store/alert-rules.js';
|
|
33
35
|
import { InMemoryAuditStore, StdoutAuditSink } from './store/audit.js';
|
|
34
36
|
import { InMemoryControlPlaneStore } from './store/control-plane.js';
|
|
35
37
|
import { InMemoryGithubConnectionStore } from './store/github-connections.js';
|
|
38
|
+
import { InMemoryGithubDeployRunStore } from './store/github-runs.js';
|
|
36
39
|
const DEFAULT_MAX_BODY = 1 << 20;
|
|
37
40
|
/** Well-known prefix for OAuth 2.0 Protected Resource Metadata (RFC 9728); the resource path follows it. */
|
|
38
41
|
const PRM_PREFIX = '/.well-known/oauth-protected-resource';
|
|
@@ -46,6 +49,8 @@ export function createServiceHandler(registry, options = {}) {
|
|
|
46
49
|
const controlPlane = options.controlPlaneStore ?? new InMemoryControlPlaneStore();
|
|
47
50
|
const configStore = options.configStore ?? registry.configStore;
|
|
48
51
|
const githubConnectionStore = options.githubConnectionStore ?? new InMemoryGithubConnectionStore();
|
|
52
|
+
const alertRuleStore = options.alertRuleStore ?? new InMemoryAlertRuleStore();
|
|
53
|
+
const githubDeployRunStore = options.githubDeployRunStore ?? new InMemoryGithubDeployRunStore();
|
|
49
54
|
const pendingGithubInstallationStore = options.pendingGithubInstallationStore ?? new InMemoryPendingGithubInstallationStore();
|
|
50
55
|
const anonymousLimiter = new AnonymousConsumerLimiter();
|
|
51
56
|
registry.setPlatformConnectors({
|
|
@@ -308,35 +313,18 @@ export function createServiceHandler(registry, options = {}) {
|
|
|
308
313
|
});
|
|
309
314
|
return;
|
|
310
315
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
applySecurityHeaders(res, tls);
|
|
324
|
-
if (enforceHttps(req, res, tls))
|
|
325
|
-
return;
|
|
326
|
-
handleOrgUpdate(req, res, gate, controlPlane, maxBody, orgRef, audit).catch(() => {
|
|
327
|
-
if (!res.headersSent)
|
|
328
|
-
sendJson(res, 500, { error: 'internal error' });
|
|
329
|
-
});
|
|
330
|
-
return;
|
|
331
|
-
}
|
|
332
|
-
if (orgRef !== undefined && req.method === 'GET') {
|
|
333
|
-
applySecurityHeaders(res, tls);
|
|
334
|
-
if (enforceHttps(req, res, tls))
|
|
335
|
-
return;
|
|
336
|
-
handleOrgInspect(req, res, gate, controlPlane, orgRef).catch(() => {
|
|
337
|
-
if (!res.headersSent)
|
|
338
|
-
sendJson(res, 500, { error: 'internal error' });
|
|
339
|
-
});
|
|
316
|
+
// Org-admin control plane (orgs, org item, members, invitations) lives in
|
|
317
|
+
// routes/org-admin-dispatch.ts; its path families are disjoint from the resource reads below.
|
|
318
|
+
if (dispatchOrgAdminRoutes(req, res, url, {
|
|
319
|
+
gate,
|
|
320
|
+
controlPlane,
|
|
321
|
+
audit,
|
|
322
|
+
maxBody,
|
|
323
|
+
applySecurityHeaders,
|
|
324
|
+
enforceHttps,
|
|
325
|
+
sendJson,
|
|
326
|
+
tls,
|
|
327
|
+
})) {
|
|
340
328
|
return;
|
|
341
329
|
}
|
|
342
330
|
// ADR 0128 read surface (apps/envs/deployment-item GETs) lives in routes/resource-read-dispatch.ts;
|
|
@@ -353,28 +341,6 @@ export function createServiceHandler(registry, options = {}) {
|
|
|
353
341
|
})) {
|
|
354
342
|
return;
|
|
355
343
|
}
|
|
356
|
-
const membersRef = parseMembersPath(url.pathname);
|
|
357
|
-
if (membersRef !== undefined) {
|
|
358
|
-
applySecurityHeaders(res, tls);
|
|
359
|
-
if (enforceHttps(req, res, tls))
|
|
360
|
-
return;
|
|
361
|
-
handleMembers(req, res, gate, controlPlane, maxBody, membersRef, audit).catch(() => {
|
|
362
|
-
if (!res.headersSent)
|
|
363
|
-
sendJson(res, 500, { error: 'internal error' });
|
|
364
|
-
});
|
|
365
|
-
return;
|
|
366
|
-
}
|
|
367
|
-
const invitationsRef = parseInvitationsPath(url.pathname);
|
|
368
|
-
if (invitationsRef !== undefined) {
|
|
369
|
-
applySecurityHeaders(res, tls);
|
|
370
|
-
if (enforceHttps(req, res, tls))
|
|
371
|
-
return;
|
|
372
|
-
handleInvitations(req, res, gate, controlPlane, maxBody, invitationsRef, audit, url).catch(() => {
|
|
373
|
-
if (!res.headersSent)
|
|
374
|
-
sendJson(res, 500, { error: 'internal error' });
|
|
375
|
-
});
|
|
376
|
-
return;
|
|
377
|
-
}
|
|
378
344
|
const configRef = parseConfigPath(url.pathname);
|
|
379
345
|
if (configRef !== undefined &&
|
|
380
346
|
(req.method === 'GET' || req.method === 'PUT' || req.method === 'DELETE')) {
|
|
@@ -520,12 +486,30 @@ export function createServiceHandler(registry, options = {}) {
|
|
|
520
486
|
})) {
|
|
521
487
|
return;
|
|
522
488
|
}
|
|
489
|
+
// Analytics alerting (E2, ADR 0130): alert-rule CRUD + manual test-fire. The evaluator loop
|
|
490
|
+
// lives in serve.ts; routes live in routes/alerts-dispatch.ts.
|
|
491
|
+
if (dispatchAlertRoutes(req, res, url, {
|
|
492
|
+
gate,
|
|
493
|
+
controlPlane,
|
|
494
|
+
alertRuleStore,
|
|
495
|
+
audit,
|
|
496
|
+
maxBody,
|
|
497
|
+
allowLoopbackWebhooks: options.alertWebhookAllowLoopback === true,
|
|
498
|
+
applySecurityHeaders,
|
|
499
|
+
enforceHttps,
|
|
500
|
+
sendJson,
|
|
501
|
+
tls,
|
|
502
|
+
...(options.clock !== undefined ? { clock: options.clock } : {}),
|
|
503
|
+
})) {
|
|
504
|
+
return;
|
|
505
|
+
}
|
|
523
506
|
// GHD-1 GitHub connection routes (ADR 0111): repository connection CRUD + the install-url/claim
|
|
524
507
|
// hand-off. Lives in routes/github-dispatch.ts to keep this composition root under the size gate.
|
|
525
508
|
if (dispatchGithubRoutes(req, res, url, {
|
|
526
509
|
gate,
|
|
527
510
|
controlPlane,
|
|
528
511
|
githubConnectionStore,
|
|
512
|
+
githubDeployRunStore,
|
|
529
513
|
githubAppClient: options.githubAppClient,
|
|
530
514
|
githubApp: options.githubApp,
|
|
531
515
|
pendingGithubInstallationStore,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TenantRef } from '../store.js';
|
|
2
|
+
import { type AlertFiringState, type AlertRuleRecord, type AlertRuleStore, type CreateAlertRuleInput } from './alert-rules.js';
|
|
3
|
+
/**
|
|
4
|
+
* JSON-file {@link AlertRuleStore}: one file per rule at `<dataDir>/alert-rules/<id>.json`,
|
|
5
|
+
* written atomically (temp file + `rename`, matching `JsonFileGithubConnectionStore`). Rule ids
|
|
6
|
+
* are service-minted UUIDs and every read/write path re-validates the id shape, so an id is
|
|
7
|
+
* always a safe filename component (no traversal).
|
|
8
|
+
*/
|
|
9
|
+
export declare class JsonFileAlertRuleStore implements AlertRuleStore {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(dataDir: string, options?: {
|
|
12
|
+
now?: () => Date;
|
|
13
|
+
});
|
|
14
|
+
createAlertRule(input: CreateAlertRuleInput): Promise<AlertRuleRecord>;
|
|
15
|
+
listAlertRules(ref: TenantRef): Promise<readonly AlertRuleRecord[]>;
|
|
16
|
+
getAlertRule(ref: TenantRef, id: string): Promise<AlertRuleRecord | undefined>;
|
|
17
|
+
deleteAlertRule(ref: TenantRef, id: string): Promise<boolean>;
|
|
18
|
+
listEnabledAlertRules(): Promise<readonly AlertRuleRecord[]>;
|
|
19
|
+
updateAlertFiringState(id: string, state: AlertFiringState): Promise<AlertRuleRecord | undefined>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=alert-rules-json-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-rules-json-file.d.ts","sourceRoot":"","sources":["../../src/store/alert-rules-json-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAK1B,MAAM,kBAAkB,CAAC;AAG1B;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;gBAM/C,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;KAAO;IAc/D,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAQhE,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAWnE,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAWpF,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASvD,qBAAqB,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAIlE,sBAAsB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;CA+CxC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { mkdir, readdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { compareAlertRules, newAlertRuleRecord, validateAlertRuleId, withFiringState, } from './alert-rules.js';
|
|
5
|
+
import { validateSlug } from './validate.js';
|
|
6
|
+
/**
|
|
7
|
+
* JSON-file {@link AlertRuleStore}: one file per rule at `<dataDir>/alert-rules/<id>.json`,
|
|
8
|
+
* written atomically (temp file + `rename`, matching `JsonFileGithubConnectionStore`). Rule ids
|
|
9
|
+
* are service-minted UUIDs and every read/write path re-validates the id shape, so an id is
|
|
10
|
+
* always a safe filename component (no traversal).
|
|
11
|
+
*/
|
|
12
|
+
export class JsonFileAlertRuleStore {
|
|
13
|
+
#dir;
|
|
14
|
+
#now;
|
|
15
|
+
/** Serializes read-modify-write mutations (firing-state updates), mirroring the github file store. */
|
|
16
|
+
#mutationQueue = Promise.resolve();
|
|
17
|
+
constructor(dataDir, options = {}) {
|
|
18
|
+
this.#dir = join(dataDir, 'alert-rules');
|
|
19
|
+
this.#now = options.now ?? (() => new Date());
|
|
20
|
+
}
|
|
21
|
+
#withMutation(operation) {
|
|
22
|
+
const run = this.#mutationQueue.then(operation, operation);
|
|
23
|
+
this.#mutationQueue = run.then(() => undefined, () => undefined);
|
|
24
|
+
return run;
|
|
25
|
+
}
|
|
26
|
+
createAlertRule(input) {
|
|
27
|
+
return this.#withMutation(async () => {
|
|
28
|
+
const record = newAlertRuleRecord(input, this.#now);
|
|
29
|
+
await this.#writeRecord(record);
|
|
30
|
+
return record;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
async listAlertRules(ref) {
|
|
34
|
+
const org = validateSlug('org', ref.org);
|
|
35
|
+
const app = validateSlug('app', ref.app);
|
|
36
|
+
const env = validateSlug('env', ref.env);
|
|
37
|
+
return (await this.#loadAll())
|
|
38
|
+
.filter((record) => record.orgSlug === org && record.appSlug === app && record.environment === env)
|
|
39
|
+
.sort(compareAlertRules);
|
|
40
|
+
}
|
|
41
|
+
async getAlertRule(ref, id) {
|
|
42
|
+
const org = validateSlug('org', ref.org);
|
|
43
|
+
const app = validateSlug('app', ref.app);
|
|
44
|
+
const env = validateSlug('env', ref.env);
|
|
45
|
+
const record = await this.#readRecord(validateAlertRuleId(id));
|
|
46
|
+
if (record === undefined)
|
|
47
|
+
return undefined;
|
|
48
|
+
return record.orgSlug === org && record.appSlug === app && record.environment === env
|
|
49
|
+
? record
|
|
50
|
+
: undefined;
|
|
51
|
+
}
|
|
52
|
+
deleteAlertRule(ref, id) {
|
|
53
|
+
return this.#withMutation(async () => {
|
|
54
|
+
const found = await this.getAlertRule(ref, id);
|
|
55
|
+
if (found === undefined)
|
|
56
|
+
return false;
|
|
57
|
+
await rm(join(this.#dir, `${found.id}.json`), { force: true });
|
|
58
|
+
return true;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async listEnabledAlertRules() {
|
|
62
|
+
return (await this.#loadAll()).filter((record) => record.enabled);
|
|
63
|
+
}
|
|
64
|
+
updateAlertFiringState(id, state) {
|
|
65
|
+
return this.#withMutation(async () => {
|
|
66
|
+
const record = await this.#readRecord(validateAlertRuleId(id));
|
|
67
|
+
if (record === undefined)
|
|
68
|
+
return undefined;
|
|
69
|
+
const updated = withFiringState(record, state);
|
|
70
|
+
await this.#writeRecord(updated);
|
|
71
|
+
return updated;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async #readRecord(id) {
|
|
75
|
+
try {
|
|
76
|
+
const text = await readFile(join(this.#dir, `${id}.json`), 'utf8');
|
|
77
|
+
return JSON.parse(text);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async #loadAll() {
|
|
84
|
+
let names;
|
|
85
|
+
try {
|
|
86
|
+
names = await readdir(this.#dir);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (error.code === 'ENOENT')
|
|
90
|
+
return [];
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
const records = [];
|
|
94
|
+
for (const name of names) {
|
|
95
|
+
if (!name.endsWith('.json'))
|
|
96
|
+
continue; // skip in-flight *.tmp files
|
|
97
|
+
try {
|
|
98
|
+
const text = await readFile(join(this.#dir, name), 'utf8');
|
|
99
|
+
records.push(JSON.parse(text));
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Fail-soft: a corrupt/unreadable record must not crash the caller — skip it.
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return records;
|
|
106
|
+
}
|
|
107
|
+
async #writeRecord(record) {
|
|
108
|
+
await mkdir(this.#dir, { recursive: true });
|
|
109
|
+
const target = join(this.#dir, `${record.id}.json`);
|
|
110
|
+
const tmp = `${target}.${randomUUID()}.tmp`;
|
|
111
|
+
await writeFile(tmp, `${JSON.stringify(record, null, 2)}\n`, 'utf8');
|
|
112
|
+
await rename(tmp, target);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=alert-rules-json-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-rules-json-file.js","sourceRoot":"","sources":["../../src/store/alert-rules-json-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { TenantRef } from '../store.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analytics alert rules (E2, [ADR 0130](../../../../docs/decisions/0130-analytics-alerting-rules-and-webhook-channel.md)):
|
|
4
|
+
* a rule is data scoped to org/app/env, evaluated periodically against the tenant's request-event
|
|
5
|
+
* aggregations, edge-triggered (fire on the non-breaching → breaching transition; re-fire while
|
|
6
|
+
* breaching only after the cooldown). The MVP channel is a webhook URL.
|
|
7
|
+
*
|
|
8
|
+
* `webhookUrl` is SENSITIVE — hosted webhook endpoints routinely embed capability tokens in the
|
|
9
|
+
* path/query. It exists only inside the store and the delivery path; routes serialize rules through
|
|
10
|
+
* a redacting view and no log line, error message, or audit detail may ever carry it.
|
|
11
|
+
*/
|
|
12
|
+
export declare const ALERT_METRICS: readonly ["error_share", "error_count", "calls", "p95_ms"];
|
|
13
|
+
export type AlertMetric = (typeof ALERT_METRICS)[number];
|
|
14
|
+
export declare const ALERT_WINDOWS_MINUTES: readonly [5, 15, 60];
|
|
15
|
+
export type AlertWindowMinutes = (typeof ALERT_WINDOWS_MINUTES)[number];
|
|
16
|
+
export declare const DEFAULT_ALERT_COOLDOWN_MINUTES = 15;
|
|
17
|
+
/** Cheap abuse bound: an env's owner cannot turn the evaluator into a webhook flood. */
|
|
18
|
+
export declare const MAX_ALERT_RULES_PER_ENV = 20;
|
|
19
|
+
export interface AlertRuleRecord {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly orgSlug: string;
|
|
22
|
+
readonly appSlug: string;
|
|
23
|
+
readonly environment: string;
|
|
24
|
+
readonly name?: string;
|
|
25
|
+
readonly metric: AlertMetric;
|
|
26
|
+
readonly threshold: number;
|
|
27
|
+
readonly windowMinutes: AlertWindowMinutes;
|
|
28
|
+
/** MVP supports only `>=`; persisted so a later slice can widen without a data migration. */
|
|
29
|
+
readonly comparison: '>=';
|
|
30
|
+
/** SENSITIVE (may embed tokens): never logged, never serialized into responses. */
|
|
31
|
+
readonly webhookUrl: string;
|
|
32
|
+
readonly enabled: boolean;
|
|
33
|
+
readonly cooldownMinutes: number;
|
|
34
|
+
readonly createdBySubject?: string;
|
|
35
|
+
readonly createdAt: string;
|
|
36
|
+
readonly updatedAt: string;
|
|
37
|
+
/** Edge-trigger state: whether the last evaluation observed a breach. */
|
|
38
|
+
readonly breaching: boolean;
|
|
39
|
+
/** Observed metric value at the last state change or fire. */
|
|
40
|
+
readonly lastObserved?: number;
|
|
41
|
+
readonly lastFiredAt?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface CreateAlertRuleInput {
|
|
44
|
+
readonly orgSlug: string;
|
|
45
|
+
readonly appSlug: string;
|
|
46
|
+
readonly environment: string;
|
|
47
|
+
readonly name?: string;
|
|
48
|
+
readonly metric: AlertMetric;
|
|
49
|
+
readonly threshold: number;
|
|
50
|
+
readonly windowMinutes: AlertWindowMinutes;
|
|
51
|
+
readonly webhookUrl: string;
|
|
52
|
+
/** Default `true`. */
|
|
53
|
+
readonly enabled?: boolean;
|
|
54
|
+
/** Default {@link DEFAULT_ALERT_COOLDOWN_MINUTES}. */
|
|
55
|
+
readonly cooldownMinutes?: number;
|
|
56
|
+
readonly createdBySubject?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface AlertFiringState {
|
|
59
|
+
readonly breaching: boolean;
|
|
60
|
+
readonly lastObserved: number;
|
|
61
|
+
/** When present, records a fire; when absent the existing `lastFiredAt` is preserved. */
|
|
62
|
+
readonly lastFiredAt?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Store surface for analytics alert rules. Backends: in-memory (tests/dev default), JSON-file
|
|
66
|
+
* (`dataDir` local persistence), and Postgres (hosted) — selected in `serveService` the same way
|
|
67
|
+
* as the request-event store.
|
|
68
|
+
*/
|
|
69
|
+
export interface AlertRuleStore {
|
|
70
|
+
createAlertRule(input: CreateAlertRuleInput): Promise<AlertRuleRecord>;
|
|
71
|
+
listAlertRules(ref: TenantRef): Promise<readonly AlertRuleRecord[]>;
|
|
72
|
+
getAlertRule(ref: TenantRef, id: string): Promise<AlertRuleRecord | undefined>;
|
|
73
|
+
/** `true` iff the rule existed in this tenant scope and was deleted. */
|
|
74
|
+
deleteAlertRule(ref: TenantRef, id: string): Promise<boolean>;
|
|
75
|
+
/** Every enabled rule across all tenants — the evaluator sweep input. */
|
|
76
|
+
listEnabledAlertRules(): Promise<readonly AlertRuleRecord[]>;
|
|
77
|
+
/** Persist edge-trigger state; `undefined` when the rule no longer exists. */
|
|
78
|
+
updateAlertFiringState(id: string, state: AlertFiringState): Promise<AlertRuleRecord | undefined>;
|
|
79
|
+
}
|
|
80
|
+
export declare function validateAlertRuleId(id: string): string;
|
|
81
|
+
/** True when the segment is shaped like a service-minted rule id (path parsing, non-throwing). */
|
|
82
|
+
export declare function isAlertRuleId(id: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Shared shape validation for rule creation, used by every backend. Applies defaults. Policy
|
|
85
|
+
* validation of the webhook URL (https-only, loopback carve-out, private-IP rejection) is the
|
|
86
|
+
* route's job (`validateAlertWebhookUrl`); the store only rejects structurally broken values.
|
|
87
|
+
*/
|
|
88
|
+
export declare function validateCreateAlertRuleInput(input: CreateAlertRuleInput): Required<Pick<CreateAlertRuleInput, 'enabled' | 'cooldownMinutes'>> & CreateAlertRuleInput;
|
|
89
|
+
/** Build the durable record from a validated input (shared by the in-memory and JSON-file backends). */
|
|
90
|
+
export declare function newAlertRuleRecord(input: CreateAlertRuleInput, now: () => Date): AlertRuleRecord;
|
|
91
|
+
/** Apply a firing-state update, preserving `lastFiredAt` when the update does not carry one. */
|
|
92
|
+
export declare function withFiringState(record: AlertRuleRecord, state: AlertFiringState): AlertRuleRecord;
|
|
93
|
+
/** Stable list order across backends: `createdAt`, then `id` (matches the Postgres `ORDER BY`). */
|
|
94
|
+
export declare function compareAlertRules(a: AlertRuleRecord, b: AlertRuleRecord): number;
|
|
95
|
+
/** In-memory {@link AlertRuleStore}: the tests/dev default; mirrors `InMemoryGithubConnectionStore`. */
|
|
96
|
+
export declare class InMemoryAlertRuleStore implements AlertRuleStore {
|
|
97
|
+
#private;
|
|
98
|
+
constructor(options?: {
|
|
99
|
+
now?: () => Date;
|
|
100
|
+
});
|
|
101
|
+
createAlertRule(input: CreateAlertRuleInput): Promise<AlertRuleRecord>;
|
|
102
|
+
listAlertRules(ref: TenantRef): Promise<readonly AlertRuleRecord[]>;
|
|
103
|
+
getAlertRule(ref: TenantRef, id: string): Promise<AlertRuleRecord | undefined>;
|
|
104
|
+
deleteAlertRule(ref: TenantRef, id: string): Promise<boolean>;
|
|
105
|
+
listEnabledAlertRules(): Promise<readonly AlertRuleRecord[]>;
|
|
106
|
+
updateAlertFiringState(id: string, state: AlertFiringState): Promise<AlertRuleRecord | undefined>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=alert-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-rules.d.ts","sourceRoot":"","sources":["../../src/store/alert-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;;;;;;GASG;AAEH,eAAO,MAAM,aAAa,4DAA6D,CAAC;AACxF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,qBAAqB,sBAAuB,CAAC;AAC1D,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,wFAAwF;AACxF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAQ1C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sBAAsB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;IACpE,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAC/E,wEAAwE;IACxE,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,yEAAyE;IACzE,qBAAqB,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;IAC7D,8EAA8E;IAC9E,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;CACnG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,kGAAkG;AAClG,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,oBAAoB,GAC1B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,iBAAiB,CAAC,CAAC,GAAG,oBAAoB,CAsD5F;AAWD,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,eAAe,CAqBhG;AAED,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,GAAG,eAAe,CAQjG;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAEhF;AAcD,wGAAwG;AACxG,qBAAa,sBAAuB,YAAW,cAAc;;gBAI/C,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;KAAO;IAMxC,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAMtE,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAOnE,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAM9E,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7D,qBAAqB,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAI5D,sBAAsB,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;CAOxC"}
|