stitchkit 0.59.3 → 0.60.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.
Files changed (122) hide show
  1. package/README.md +14 -4
  2. package/dist/agent-runtime/admission-lanes.d.ts +35 -0
  3. package/dist/agent-runtime/admission-lanes.d.ts.map +1 -0
  4. package/dist/agent-runtime/coordinator.d.ts +36 -2
  5. package/dist/agent-runtime/coordinator.d.ts.map +1 -1
  6. package/dist/agent-runtime/events.d.ts +7 -0
  7. package/dist/agent-runtime/events.d.ts.map +1 -1
  8. package/dist/agent-runtime/history.d.ts +7 -0
  9. package/dist/agent-runtime/history.d.ts.map +1 -1
  10. package/dist/agent-runtime/models.d.ts +2 -3
  11. package/dist/agent-runtime/models.d.ts.map +1 -1
  12. package/dist/agent-runtime/observability.d.ts.map +1 -1
  13. package/dist/agent-runtime/run-execution.d.ts +31 -0
  14. package/dist/agent-runtime/run-execution.d.ts.map +1 -0
  15. package/dist/agent-runtime/runtime-internals.d.ts +25 -0
  16. package/dist/agent-runtime/runtime-internals.d.ts.map +1 -0
  17. package/dist/agent-runtime/runtime-result.d.ts +11 -0
  18. package/dist/agent-runtime/runtime-result.d.ts.map +1 -0
  19. package/dist/agent-runtime/runtime.d.ts +16 -15
  20. package/dist/agent-runtime/runtime.d.ts.map +1 -1
  21. package/dist/agent-runtime/schemas.d.ts.map +1 -1
  22. package/dist/agent-runtime/store-driver.d.ts.map +1 -1
  23. package/dist/agent-runtime/store.d.ts +9 -2
  24. package/dist/agent-runtime/store.d.ts.map +1 -1
  25. package/dist/agent-runtime/terminal-commit.d.ts.map +1 -1
  26. package/dist/agent-runtime/terminal-status.d.ts +13 -0
  27. package/dist/agent-runtime/terminal-status.d.ts.map +1 -0
  28. package/dist/agent-runtime.d.ts +5 -3
  29. package/dist/agent-runtime.d.ts.map +1 -1
  30. package/dist/agent-runtime.js +211 -156
  31. package/dist/application/activity.d.ts +7 -2
  32. package/dist/application/activity.d.ts.map +1 -1
  33. package/dist/application/grammy.d.ts +6 -0
  34. package/dist/application/grammy.d.ts.map +1 -1
  35. package/dist/application/health.d.ts +20 -1
  36. package/dist/application/health.d.ts.map +1 -1
  37. package/dist/application/kernel.d.ts +49 -3
  38. package/dist/application/kernel.d.ts.map +1 -1
  39. package/dist/application/opentelemetry.d.ts +25 -0
  40. package/dist/application/opentelemetry.d.ts.map +1 -0
  41. package/dist/application/schemas.d.ts +42 -0
  42. package/dist/application/schemas.d.ts.map +1 -1
  43. package/dist/application-opentelemetry.d.ts +2 -0
  44. package/dist/application-opentelemetry.d.ts.map +1 -0
  45. package/dist/application-opentelemetry.js +248 -0
  46. package/dist/application.d.ts +4 -4
  47. package/dist/application.d.ts.map +1 -1
  48. package/dist/application.js +69 -1243
  49. package/dist/cli.js +6 -6
  50. package/dist/contract/errors.d.ts +6 -0
  51. package/dist/contract/errors.d.ts.map +1 -1
  52. package/dist/contract/index.js +1 -1
  53. package/dist/declaration.d.ts +345 -0
  54. package/dist/declaration.d.ts.map +1 -0
  55. package/dist/declaration.js +183 -0
  56. package/dist/index-1zencgcb.js +651 -0
  57. package/dist/{index-sa2mbwa7.js → index-2akar0rq.js} +2 -2
  58. package/dist/{index-41wm56v0.js → index-3hn10n4c.js} +1 -1
  59. package/dist/{index-f6pymtqe.js → index-3w74r08v.js} +2 -2
  60. package/dist/{index-7c0gkyvj.js → index-6fbp58g8.js} +2 -2
  61. package/dist/{index-gnvzyw0k.js → index-8es1hrv4.js} +2 -2
  62. package/dist/index-8eywc9zv.js +100 -0
  63. package/dist/{index-3nwng7hs.js → index-8pc5s3pz.js} +4 -4
  64. package/dist/{index-28cqssm3.js → index-9h1vba8n.js} +6 -0
  65. package/dist/{index-0nc0cddp.js → index-a59da114.js} +17 -28
  66. package/dist/{index-0tszzfxp.js → index-f7521k0x.js} +25 -19
  67. package/dist/{index-y2rb7dwx.js → index-pzyt11ch.js} +5 -1
  68. package/dist/{index-mr617n62.js → index-svqhcrrj.js} +1 -1
  69. package/dist/{index-ps5pxp3h.js → index-v6e8hnkx.js} +7 -1
  70. package/dist/{index-1tkyng3g.js → index-vkk06pv1.js} +1 -9
  71. package/dist/index-x8v8b7rc.js +560 -0
  72. package/dist/index.js +1 -1
  73. package/dist/internal/observability-sink.d.ts.map +1 -1
  74. package/dist/internal/route-pattern.d.ts +9 -0
  75. package/dist/internal/route-pattern.d.ts.map +1 -1
  76. package/dist/node.d.ts +1 -1
  77. package/dist/node.d.ts.map +1 -1
  78. package/dist/node.js +12 -12
  79. package/dist/observability/index.js +5 -5
  80. package/dist/observability/sanitize.d.ts +3 -1
  81. package/dist/observability/sanitize.d.ts.map +1 -1
  82. package/dist/remote.js +3 -3
  83. package/dist/server/error-hook.d.ts +10 -3
  84. package/dist/server/error-hook.d.ts.map +1 -1
  85. package/dist/server/index.d.ts +1 -1
  86. package/dist/server/index.d.ts.map +1 -1
  87. package/dist/server/index.js +16 -19
  88. package/dist/server/middleware/cors.d.ts +5 -2
  89. package/dist/server/middleware/cors.d.ts.map +1 -1
  90. package/dist/server/openapi.d.ts.map +1 -1
  91. package/dist/server/router.d.ts.map +1 -1
  92. package/dist/server/socket-io-config.d.ts +68 -3
  93. package/dist/server/socket-io-config.d.ts.map +1 -1
  94. package/dist/server/socket-io-node.d.ts +1 -1
  95. package/dist/server/socket-io-node.d.ts.map +1 -1
  96. package/dist/server/socket-io.d.ts +1 -1
  97. package/dist/server/socket-io.d.ts.map +1 -1
  98. package/dist/testing/managed-resource-conformance-contract.d.ts +114 -0
  99. package/dist/testing/managed-resource-conformance-contract.d.ts.map +1 -0
  100. package/dist/testing/managed-resource-conformance-driver.d.ts +20 -0
  101. package/dist/testing/managed-resource-conformance-driver.d.ts.map +1 -0
  102. package/dist/testing/managed-resource-conformance-scenarios.d.ts +33 -0
  103. package/dist/testing/managed-resource-conformance-scenarios.d.ts.map +1 -0
  104. package/dist/testing/managed-resource-conformance.d.ts +5 -0
  105. package/dist/testing/managed-resource-conformance.d.ts.map +1 -0
  106. package/dist/testing/surface-manifest.d.ts.map +1 -1
  107. package/dist/testing.d.ts +1 -0
  108. package/dist/testing.d.ts.map +1 -1
  109. package/dist/testing.js +664 -78
  110. package/dist/tools/flatten-join.d.ts +2 -0
  111. package/dist/tools/flatten-join.d.ts.map +1 -1
  112. package/dist/tools/flatten.d.ts.map +1 -1
  113. package/dist/tools/mcp-prepare.d.ts +0 -2
  114. package/dist/tools/mcp-prepare.d.ts.map +1 -1
  115. package/dist/tools/runtime-tool.d.ts +0 -3
  116. package/dist/tools/runtime-tool.d.ts.map +1 -1
  117. package/dist/tools/schema.d.ts +0 -4
  118. package/dist/tools/schema.d.ts.map +1 -1
  119. package/dist/tools.js +9 -9
  120. package/llms-full.txt +1212 -67
  121. package/llms.txt +2 -0
  122. package/package.json +16 -3
@@ -1,10 +1,56 @@
1
- import type { ShutdownOptions } from '../server/shutdown';
1
+ import type { z } from 'zod';
2
2
  import type { ManagedResource } from './resource';
3
- import { type ApplicationShutdownResult, type ApplicationSnapshot } from './schemas';
3
+ import { type ApplicationResourceShutdown, type ApplicationShutdownResult, type ApplicationSnapshot } from './schemas';
4
+ /** The phase a managed resource failed in — the vocabulary of `failures`. */
5
+ export type ApplicationResourcePhase = ApplicationResourceShutdown['failures'][number];
6
+ /** One resource failure with the cause the phase label cannot carry. */
7
+ export interface ApplicationResourceFailure {
8
+ readonly resourceId: string;
9
+ readonly phase: ApplicationResourcePhase;
10
+ /** The value the resource actually threw or rejected with. */
11
+ readonly error: unknown;
12
+ }
13
+ /**
14
+ * The budgets an application shutdown accepts.
15
+ *
16
+ * The same two names the server and the agent runtime use, and only those:
17
+ * `retryAfterSeconds` is an HTTP response concern that belongs to the managed
18
+ * server resource, and accepting it here typed and validated an option nothing
19
+ * in the kernel ever read.
20
+ */
21
+ export declare const ApplicationShutdownOptionsSchema: z.ZodObject<{
22
+ gracePeriodMs: z.ZodDefault<z.ZodNumber>;
23
+ forceTimeoutMs: z.ZodDefault<z.ZodNumber>;
24
+ signal: z.ZodOptional<z.ZodCustom<AbortSignal, AbortSignal>>;
25
+ }, z.core.$strip>;
26
+ export type ApplicationShutdownOptions = z.input<typeof ApplicationShutdownOptionsSchema>;
4
27
  export interface ApplicationConfig {
5
28
  readonly id: string;
6
29
  readonly resources?: readonly ManagedResource[];
7
30
  readonly onSnapshot?: (snapshot: ApplicationSnapshot) => void | Promise<void>;
31
+ /**
32
+ * Observe why a phase failed.
33
+ *
34
+ * `ApplicationResourceShutdown.failures` names the phase and nothing else, so
35
+ * an operator reading it learns that `drain` failed and has no way to learn
36
+ * why. The published response stays a verdict — this is the internal half of
37
+ * the same rule: outward a generic answer, inward everything.
38
+ *
39
+ * Called for every failure of a resource's OWN code, in every phase:
40
+ * `start`, `ready`, `completion`, `admission`, `drain`, `close` — including
41
+ * the `close` that runs while rolling a failed startup back — and `force`.
42
+ * It is NOT called for the kernel's own interruption of a startup that a
43
+ * shutdown overtook: nothing failed there, and reporting it would bury the
44
+ * one failure that did.
45
+ *
46
+ * A throwing observer cannot break the lifecycle it observes, and neither can
47
+ * a REJECTING one: an `async` observer type-checks against a `void` return,
48
+ * and its rejected promise is invisible to a synchronous `try/catch` around
49
+ * the call. Returning a promise is therefore part of the signature, and the
50
+ * kernel isolates it — it does not await it, so an observer cannot slow a
51
+ * shutdown down either.
52
+ */
53
+ readonly onResourceFailure?: (failure: ApplicationResourceFailure) => void | Promise<void>;
8
54
  }
9
55
  export interface ApplicationOperationLease {
10
56
  readonly released: boolean;
@@ -20,7 +66,7 @@ export interface ApplicationHandle {
20
66
  start(): Promise<ApplicationSnapshot>;
21
67
  getSnapshot(): ApplicationSnapshot;
22
68
  subscribe(listener: (snapshot: ApplicationSnapshot) => void): () => void;
23
- shutdown(options?: ShutdownOptions): Promise<ApplicationShutdownResult>;
69
+ shutdown(options?: ApplicationShutdownOptions): Promise<ApplicationShutdownResult>;
24
70
  }
25
71
  export declare class ApplicationAdmissionError extends Error {
26
72
  readonly code = "APPLICATION_NOT_ACCEPTING";
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/application/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAKL,KAAK,yBAAyB,EAE9B,KAAK,mBAAmB,EAGzB,MAAM,WAAW,CAAC;AAyBnB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,IAAI,yBAAyB,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,WAAW,IAAI,mBAAmB,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACzE;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,+BAA+B;IAE5C,cAGC;CACF;AA2BD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAwlB9E"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/application/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAE9B,KAAK,mBAAmB,EAGzB,MAAM,WAAW,CAAC;AAEnB,6EAA6E;AAC7E,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAsCvF,wEAAwE;AACxE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC;;;;iBAI3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,IAAI,yBAAyB,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,WAAW,IAAI,mBAAmB,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACpF;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,+BAA+B;IAE5C,cAGC;CACF;AA2BD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAuqB9E"}
@@ -0,0 +1,25 @@
1
+ import type { Attributes, MetricOptions, ObservableGauge } from '@opentelemetry/api';
2
+ import type { ActivityProjection } from './activity';
3
+ import type { ApplicationHandle } from './kernel';
4
+ import type { ManagedSchedule } from './schedule';
5
+ export interface ApplicationTelemetryMeter {
6
+ createObservableGauge(name: string, options?: MetricOptions): ObservableGauge<Attributes>;
7
+ }
8
+ export interface ApplicationOpenTelemetryCollectionError {
9
+ readonly instrument: string;
10
+ readonly error: unknown;
11
+ }
12
+ export interface ApplicationOpenTelemetryConfig {
13
+ readonly meter: ApplicationTelemetryMeter;
14
+ readonly application: Pick<ApplicationHandle, 'getSnapshot'>;
15
+ readonly activities?: readonly Pick<ActivityProjection<string>, 'getSnapshot'>[];
16
+ readonly schedules?: readonly Pick<ManagedSchedule, 'status'>[];
17
+ onCollectionError?(failure: ApplicationOpenTelemetryCollectionError): void | Promise<void>;
18
+ }
19
+ export interface ApplicationOpenTelemetryBinding {
20
+ readonly closed: boolean;
21
+ close(): void;
22
+ }
23
+ /** Register pull-only observable gauges over canonical application snapshots. */
24
+ export declare function createApplicationOpenTelemetry(config: ApplicationOpenTelemetryConfig): ApplicationOpenTelemetryBinding;
25
+ //# sourceMappingURL=opentelemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opentelemetry.d.ts","sourceRoot":"","sources":["../../src/application/opentelemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EAEb,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYlD,MAAM,WAAW,yBAAyB;IACxC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC;IAChE,iBAAiB,CAAC,CAAC,OAAO,EAAE,uCAAuC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;CACf;AAwOD,iFAAiF;AACjF,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,8BAA8B,GACrC,+BAA+B,CAwJjC"}
@@ -105,6 +105,48 @@ export declare const ApplicationSnapshotSchema: z.ZodReadonly<z.ZodObject<{
105
105
  }, z.core.$strip>>>>;
106
106
  }, z.core.$strip>>;
107
107
  export type ApplicationSnapshot = z.infer<typeof ApplicationSnapshotSchema>;
108
+ /**
109
+ * What a probe or a status endpoint may publish.
110
+ *
111
+ * The internal snapshot names every resource and its `dependsOn` edges — the
112
+ * application's dependency graph — plus the process epoch and live traffic
113
+ * counters. That is the right shape for `getSnapshot()` and for telemetry, and
114
+ * the wrong shape for a URL: these handlers are meant to be mounted publicly,
115
+ * and an orchestrator needs a verdict, not our topology.
116
+ *
117
+ * `degraded` and `failed` counts keep the verdict actionable without saying
118
+ * which resource: an operator reading a probe learns that something is wrong
119
+ * and reaches for `getSnapshot()`, which never left the process.
120
+ */
121
+ export declare const ApplicationStatusProjectionSchema: z.ZodReadonly<z.ZodObject<{
122
+ id: z.ZodString;
123
+ lifecycle: z.ZodEnum<{
124
+ created: "created";
125
+ draining: "draining";
126
+ failed: "failed";
127
+ ready: "ready";
128
+ starting: "starting";
129
+ stopped: "stopped";
130
+ stopping: "stopping";
131
+ }>;
132
+ health: z.ZodEnum<{
133
+ degraded: "degraded";
134
+ healthy: "healthy";
135
+ unhealthy: "unhealthy";
136
+ unknown: "unknown";
137
+ }>;
138
+ ready: z.ZodBoolean;
139
+ capturedAt: z.ZodString;
140
+ resources: z.ZodReadonly<z.ZodObject<{
141
+ total: z.ZodNumber;
142
+ ready: z.ZodNumber;
143
+ degraded: z.ZodNumber;
144
+ failed: z.ZodNumber;
145
+ }, z.core.$strip>>;
146
+ }, z.core.$strip>>;
147
+ export type ApplicationStatusProjection = z.infer<typeof ApplicationStatusProjectionSchema>;
148
+ /** Project the internal snapshot onto what an endpoint may publish. */
149
+ export declare function projectApplicationStatus(snapshot: ApplicationSnapshot): ApplicationStatusProjection;
108
150
  export declare const ApplicationResourceShutdownSchema: z.ZodReadonly<z.ZodObject<{
109
151
  id: z.ZodString;
110
152
  state: z.ZodEnum<{
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/application/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,aAIS,CAAC;AAC1C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,0BAA0B;;;;;;;;EAQrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB;;;;;EAA0D,CAAC;AAC/F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;;;;;EAOrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAI9E,eAAO,MAAM,kCAAkC;;;;;kBAOlC,CAAC;AACd,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;kBAS7B,CAAC;AACd,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAazB,CAAC;AACd,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;kBAQjC,CAAC;AACd,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAY/B,CAAC;AACd,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/application/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,aAIS,CAAC;AAC1C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,0BAA0B;;;;;;;;EAQrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB;;;;;EAA0D,CAAC;AAC/F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;;;;;EAOrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAI9E,eAAO,MAAM,kCAAkC;;;;;kBAOlC,CAAC;AACd,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;kBAS7B,CAAC;AACd,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAazB,CAAC;AACd,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;kBAgBjC,CAAC;AACd,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,uEAAuE;AACvE,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,GAC5B,2BAA2B,CAoB7B;AAED,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;kBAQjC,CAAC;AACd,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAY/B,CAAC;AACd,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { type ApplicationOpenTelemetryBinding, type ApplicationOpenTelemetryCollectionError, type ApplicationOpenTelemetryConfig, type ApplicationTelemetryMeter, createApplicationOpenTelemetry, } from './application/opentelemetry';
2
+ //# sourceMappingURL=application-opentelemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-opentelemetry.d.ts","sourceRoot":"","sources":["../src/application-opentelemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,uCAAuC,EAC5C,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,248 @@
1
+ import {
2
+ ActivitySnapshotSchema,
3
+ ManagedScheduleStatusSchema
4
+ } from "./index-x8v8b7rc.js";
5
+ import {
6
+ ApplicationSnapshotSchema
7
+ } from "./index-8eywc9zv.js";
8
+
9
+ // src/application/opentelemetry.ts
10
+ var MAX_ACTIVITY_SOURCES = 64;
11
+ var MAX_SCHEDULE_SOURCES = 64;
12
+ var MAX_RESOURCE_SERIES = 128;
13
+ var applicationAttributes = (snapshot) => ({
14
+ "application.id": snapshot.id
15
+ });
16
+ var resourceAttributes = (snapshot, resource) => ({
17
+ "application.id": snapshot.id,
18
+ "resource.id": resource.id,
19
+ "resource.required": resource.required,
20
+ "resource.state": resource.state,
21
+ "resource.health": resource.health
22
+ });
23
+ var scheduleAttributes = (application, schedule) => ({
24
+ "application.id": application.id,
25
+ "schedule.id": schedule.descriptor.id,
26
+ "schedule.state": schedule.state
27
+ });
28
+ var activityAttributes = (application, activity, stage) => ({
29
+ "application.id": application.id,
30
+ "activity.id": activity.id,
31
+ "activity.stage": stage.id
32
+ });
33
+ var applicationMetrics = [
34
+ {
35
+ name: "stitchkit.application.lifecycle",
36
+ description: "Current application lifecycle and health state.",
37
+ unit: "1",
38
+ observe(result, snapshot) {
39
+ result.observe(1, {
40
+ ...applicationAttributes(snapshot),
41
+ "application.lifecycle": snapshot.lifecycle,
42
+ "application.health": snapshot.health
43
+ });
44
+ }
45
+ },
46
+ {
47
+ name: "stitchkit.application.ready",
48
+ description: "Whether the application currently accepts readiness traffic.",
49
+ unit: "1",
50
+ observe: (result, snapshot) => result.observe(snapshot.ready ? 1 : 0, applicationAttributes(snapshot))
51
+ },
52
+ {
53
+ name: "stitchkit.application.admission.accepting",
54
+ description: "Whether application admission is currently open.",
55
+ unit: "1",
56
+ observe: (result, snapshot) => result.observe(snapshot.admission.accepting ? 1 : 0, applicationAttributes(snapshot))
57
+ },
58
+ {
59
+ name: "stitchkit.application.admission.accepted",
60
+ description: "Absolute number of operations accepted in this application lifetime.",
61
+ unit: "1",
62
+ observe: (result, snapshot) => result.observe(snapshot.admission.accepted, applicationAttributes(snapshot))
63
+ },
64
+ {
65
+ name: "stitchkit.application.admission.completed",
66
+ description: "Absolute number of operations completed in this application lifetime.",
67
+ unit: "1",
68
+ observe: (result, snapshot) => result.observe(snapshot.admission.completed, applicationAttributes(snapshot))
69
+ },
70
+ {
71
+ name: "stitchkit.application.admission.pending",
72
+ description: "Current number of admitted operations still pending.",
73
+ unit: "1",
74
+ observe: (result, snapshot) => result.observe(snapshot.admission.pending, applicationAttributes(snapshot))
75
+ },
76
+ {
77
+ name: "stitchkit.application.resource.ready",
78
+ description: "Whether each declared managed resource is currently ready.",
79
+ unit: "1",
80
+ observe(result, snapshot) {
81
+ for (const resource of snapshot.resources) {
82
+ result.observe(resource.ready ? 1 : 0, resourceAttributes(snapshot, resource));
83
+ }
84
+ }
85
+ }
86
+ ];
87
+ var scheduleMetric = (name, description, value) => ({
88
+ name,
89
+ description,
90
+ unit: "1",
91
+ observe(result, snapshot) {
92
+ for (const schedule of snapshot.schedules) {
93
+ result.observe(value(schedule), scheduleAttributes(snapshot.application, schedule));
94
+ }
95
+ }
96
+ });
97
+ var scheduleMetrics = [
98
+ scheduleMetric("stitchkit.application.schedule.accepting", "Whether a schedule accepts new ticks.", (value) => value.accepting ? 1 : 0),
99
+ scheduleMetric("stitchkit.application.schedule.active", "Current active runs for a schedule.", (value) => value.active),
100
+ scheduleMetric("stitchkit.application.schedule.queued", "Whether a schedule has one queued run.", (value) => value.queued ? 1 : 0),
101
+ scheduleMetric("stitchkit.application.schedule.runs_started", "Absolute schedule runs started.", (value) => value.runsStarted),
102
+ scheduleMetric("stitchkit.application.schedule.runs_completed", "Absolute schedule runs completed.", (value) => value.runsCompleted),
103
+ scheduleMetric("stitchkit.application.schedule.runs_failed", "Absolute schedule runs failed.", (value) => value.runsFailed),
104
+ scheduleMetric("stitchkit.application.schedule.ticks_skipped", "Absolute schedule ticks skipped.", (value) => value.ticksSkipped)
105
+ ];
106
+ var activityMetric = (name, description, value) => ({
107
+ name,
108
+ description,
109
+ unit: "1",
110
+ observe(result, snapshot) {
111
+ for (const activity of snapshot.activities) {
112
+ for (const stage of activity.stages) {
113
+ result.observe(value(stage), activityAttributes(snapshot.application, activity, stage));
114
+ }
115
+ }
116
+ }
117
+ });
118
+ var activityMetrics = [
119
+ activityMetric("stitchkit.application.activity.active", "Current active activities by stage.", (value) => value.active),
120
+ activityMetric("stitchkit.application.activity.queued", "Current queued activities by stage.", (value) => value.queued),
121
+ activityMetric("stitchkit.application.activity.completed", "Absolute completed activities by stage.", (value) => value.completed),
122
+ activityMetric("stitchkit.application.activity.failed", "Absolute failed activities by stage.", (value) => value.failed)
123
+ ];
124
+ function requireUniqueIds(ids, label) {
125
+ if (new Set(ids).size !== ids.length) {
126
+ throw new Error(`[stitchkit] application OpenTelemetry ${label} ids must be unique`);
127
+ }
128
+ }
129
+ function requireStableIds(actual, expected, label) {
130
+ if (actual.length !== expected.length || actual.some((id, index) => id !== expected[index])) {
131
+ throw new Error(`[stitchkit] application OpenTelemetry ${label} ids changed after binding`);
132
+ }
133
+ }
134
+ function createApplicationOpenTelemetry(config) {
135
+ const activities = [...config.activities ?? []];
136
+ const schedules = [...config.schedules ?? []];
137
+ if (activities.length > MAX_ACTIVITY_SOURCES) {
138
+ throw new Error(`[stitchkit] application OpenTelemetry supports at most ${MAX_ACTIVITY_SOURCES} activity sources`);
139
+ }
140
+ if (schedules.length > MAX_SCHEDULE_SOURCES) {
141
+ throw new Error(`[stitchkit] application OpenTelemetry supports at most ${MAX_SCHEDULE_SOURCES} schedule sources`);
142
+ }
143
+ const initialApplication = ApplicationSnapshotSchema.parse(config.application.getSnapshot());
144
+ if (initialApplication.resources.length > MAX_RESOURCE_SERIES) {
145
+ throw new Error(`[stitchkit] application OpenTelemetry supports at most ${MAX_RESOURCE_SERIES} resource series`);
146
+ }
147
+ const applicationId = initialApplication.id;
148
+ const resourceIds = initialApplication.resources.map((resource) => resource.id);
149
+ const initialActivities = activities.map((source) => ActivitySnapshotSchema.parse(source.getSnapshot()));
150
+ const activityIds = initialActivities.map((snapshot) => snapshot.id);
151
+ const activityStageIds = initialActivities.map((snapshot) => snapshot.stages.map((stage) => stage.id));
152
+ const initialSchedules = schedules.map((source) => ManagedScheduleStatusSchema.parse(source.status));
153
+ const scheduleIds = initialSchedules.map((snapshot) => snapshot.descriptor.id);
154
+ requireUniqueIds(activityIds, "activity");
155
+ requireUniqueIds(scheduleIds, "schedule");
156
+ const registrations = [];
157
+ let closed = false;
158
+ const reportCollectionError = (instrument, error) => {
159
+ if (!config.onCollectionError)
160
+ return;
161
+ Promise.resolve().then(() => config.onCollectionError?.({ instrument, error })).catch(() => {});
162
+ };
163
+ const removeRegistrations = (reportErrors) => {
164
+ for (const registration of registrations) {
165
+ try {
166
+ registration.gauge.removeCallback(registration.callback);
167
+ } catch (error) {
168
+ if (reportErrors)
169
+ reportCollectionError(registration.name, error);
170
+ }
171
+ }
172
+ };
173
+ const pullApplication = () => {
174
+ const snapshot = ApplicationSnapshotSchema.parse(config.application.getSnapshot());
175
+ if (snapshot.id !== applicationId) {
176
+ throw new Error("[stitchkit] application OpenTelemetry application id changed after binding");
177
+ }
178
+ requireStableIds(snapshot.resources.map((resource) => resource.id), resourceIds, "resource");
179
+ return snapshot;
180
+ };
181
+ const pullSchedules = () => schedules.map((source, index) => {
182
+ const snapshot = ManagedScheduleStatusSchema.parse(source.status);
183
+ if (snapshot.descriptor.id !== scheduleIds[index]) {
184
+ throw new Error("[stitchkit] application OpenTelemetry schedule id changed after binding");
185
+ }
186
+ return snapshot;
187
+ });
188
+ const pullActivities = () => activities.map((source, index) => {
189
+ const snapshot = ActivitySnapshotSchema.parse(source.getSnapshot());
190
+ if (snapshot.id !== activityIds[index]) {
191
+ throw new Error("[stitchkit] application OpenTelemetry activity id changed after binding");
192
+ }
193
+ requireStableIds(snapshot.stages.map((stage) => stage.id), activityStageIds[index] ?? [], "activity stage");
194
+ return snapshot;
195
+ });
196
+ const register = (definition, pull) => {
197
+ const gauge = config.meter.createObservableGauge(definition.name, {
198
+ description: definition.description,
199
+ unit: definition.unit
200
+ });
201
+ const callback = (result) => {
202
+ if (closed)
203
+ return;
204
+ try {
205
+ definition.observe(result, pull());
206
+ } catch (error) {
207
+ reportCollectionError(definition.name, error);
208
+ }
209
+ };
210
+ registrations.push({ name: definition.name, gauge, callback });
211
+ gauge.addCallback(callback);
212
+ };
213
+ try {
214
+ for (const definition of applicationMetrics) {
215
+ register(definition, pullApplication);
216
+ }
217
+ for (const definition of scheduleMetrics) {
218
+ register(definition, () => ({
219
+ application: pullApplication(),
220
+ schedules: pullSchedules()
221
+ }));
222
+ }
223
+ for (const definition of activityMetrics) {
224
+ register(definition, () => ({
225
+ application: pullApplication(),
226
+ activities: pullActivities()
227
+ }));
228
+ }
229
+ } catch (error) {
230
+ closed = true;
231
+ removeRegistrations(false);
232
+ throw error;
233
+ }
234
+ return {
235
+ get closed() {
236
+ return closed;
237
+ },
238
+ close() {
239
+ if (closed)
240
+ return;
241
+ closed = true;
242
+ removeRegistrations(true);
243
+ }
244
+ };
245
+ }
246
+ export {
247
+ createApplicationOpenTelemetry
248
+ };
@@ -1,10 +1,10 @@
1
- export { type ActivityId, ActivityIdSchema, type ActivityLiveState, ActivityLiveStateSchema, type ActivityProjection, type ActivityProjectionConfig, type ActivityProjectionSubscriberError, type ActivitySnapshot, ActivitySnapshotSchema, type ActivityStageId, ActivityStageIdSchema, type ActivityStageSnapshot, ActivityStageSnapshotSchema, type ActivityToken, type ActivityTransition, createActivityProjection, } from './application/activity';
1
+ export { type ActivityId, ActivityIdSchema, type ActivityLiveState, ActivityLiveStateSchema, type ActivityProjection, type ActivityProjectionConfig, type ActivityProjectionSubscriberError, type ActivitySnapshot, ActivitySnapshotSchema, type ActivityStageId, ActivityStageIdSchema, type ActivityStageSnapshot, ActivityStageSnapshotSchema, type ActivityToken, ActivityTokenBrand, type ActivityTransition, createActivityProjection, } from './application/activity';
2
2
  export { type ApplicationEventSink, type ApplicationEventSinkConfig, type ApplicationLifecycleEvent, ApplicationLifecycleEventSchema, applicationLifecycleEvent, createApplicationEventSink, } from './application/events';
3
- export { type ApplicationHealthHandlerOptions, ApplicationHealthHandlerOptionsSchema, createApplicationHealthHandler, } from './application/health';
4
- export { type ApplicationAdmission, ApplicationAdmissionError, type ApplicationConfig, type ApplicationHandle, type ApplicationOperationLease, createApplication, } from './application/kernel';
3
+ export { type ApplicationHealthHandlerOptions, ApplicationHealthHandlerOptionsSchema, type ApplicationOperationalHandlers, type ApplicationOperationalHandlersOptions, ApplicationOperationalHandlersOptionsSchema, createApplicationHealthHandler, createApplicationOperationalHandlers, } from './application/health';
4
+ export { type ApplicationAdmission, ApplicationAdmissionError, type ApplicationConfig, type ApplicationHandle, type ApplicationOperationLease, type ApplicationResourceFailure, type ApplicationResourcePhase, type ApplicationShutdownOptions, ApplicationShutdownOptionsSchema, createApplication, } from './application/kernel';
5
5
  export { type ApplicationSnapshotSink, type ApplicationSnapshotSinkConfig, type ApplicationSnapshotSinkError, type ApplicationSnapshotSinkStatus, ApplicationSnapshotSinkStatusSchema, createApplicationSnapshotSink, type RevisionedApplicationSnapshot, } from './application/latest-sink';
6
6
  export { defineManagedResource, type ManagedResource, type ManagedResourceContext, type ManagedResourceStartResult, } from './application/resource';
7
7
  export { createManagedSchedule, type ManagedSchedule, type ManagedScheduleClock, type ManagedScheduleConfig, type ManagedScheduleDescriptor, ManagedScheduleDescriptorSchema, type ManagedScheduleErrorPolicy, ManagedScheduleErrorPolicySchema, type ManagedScheduleOverlap, ManagedScheduleOverlapSchema, type ManagedScheduleRunContext, type ManagedScheduleStatus, ManagedScheduleStatusSchema, type ManagedScheduleTimer, } from './application/schedule';
8
- export { type ApplicationAdmissionSnapshot, ApplicationAdmissionSnapshotSchema, type ApplicationHealth, ApplicationHealthSchema, type ApplicationId, ApplicationIdSchema, type ApplicationLifecycle, ApplicationLifecycleSchema, type ApplicationResourceShutdown, ApplicationResourceShutdownSchema, type ApplicationShutdownResult, ApplicationShutdownResultSchema, type ApplicationSnapshot, ApplicationSnapshotSchema, type ManagedResourceSnapshot, ManagedResourceSnapshotSchema, type ManagedResourceState, ManagedResourceStateSchema, } from './application/schemas';
8
+ export { type ApplicationAdmissionSnapshot, ApplicationAdmissionSnapshotSchema, type ApplicationHealth, ApplicationHealthSchema, type ApplicationId, ApplicationIdSchema, type ApplicationLifecycle, ApplicationLifecycleSchema, type ApplicationResourceShutdown, ApplicationResourceShutdownSchema, type ApplicationShutdownResult, ApplicationShutdownResultSchema, type ApplicationSnapshot, ApplicationSnapshotSchema, type ApplicationStatusProjection, ApplicationStatusProjectionSchema, type ManagedResourceSnapshot, ManagedResourceSnapshotSchema, type ManagedResourceState, ManagedResourceStateSchema, projectApplicationStatus, } from './application/schemas';
9
9
  export { type ManagedServerResourceConfig, managedServerResource, } from './application/server-resource';
10
10
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,+BAA+B,EACpC,qCAAqC,EACrC,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,mCAAmC,EACnC,6BAA6B,EAC7B,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,gCAAgC,EAChC,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,4BAA4B,EACjC,kCAAkC,EAClC,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,2BAA2B,EAChC,iCAAiC,EACjC,KAAK,yBAAyB,EAC9B,+BAA+B,EAC/B,KAAK,mBAAmB,EACxB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,2BAA2B,EAChC,qBAAqB,GACtB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,+BAA+B,EACpC,qCAAqC,EACrC,KAAK,8BAA8B,EACnC,KAAK,qCAAqC,EAC1C,2CAA2C,EAC3C,8BAA8B,EAC9B,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,mCAAmC,EACnC,6BAA6B,EAC7B,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,gCAAgC,EAChC,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,4BAA4B,EACjC,kCAAkC,EAClC,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,2BAA2B,EAChC,iCAAiC,EACjC,KAAK,yBAAyB,EAC9B,+BAA+B,EAC/B,KAAK,mBAAmB,EACxB,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,iCAAiC,EACjC,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,2BAA2B,EAChC,qBAAqB,GACtB,MAAM,+BAA+B,CAAC"}