@spine-event-engine/server 2.0.0-snapshot.2
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/LICENSE +201 -0
- package/README.md +569 -0
- package/REFERENCE.md +488 -0
- package/dist/bus/command-bus.d.ts +61 -0
- package/dist/bus/command-bus.d.ts.map +1 -0
- package/dist/bus/command-bus.js +201 -0
- package/dist/bus/command-bus.js.map +1 -0
- package/dist/bus/command-dispatcher-registry.d.ts +33 -0
- package/dist/bus/command-dispatcher-registry.d.ts.map +1 -0
- package/dist/bus/command-dispatcher-registry.js +75 -0
- package/dist/bus/command-dispatcher-registry.js.map +1 -0
- package/dist/bus/command-dispatcher.d.ts +25 -0
- package/dist/bus/command-dispatcher.d.ts.map +1 -0
- package/dist/bus/command-dispatcher.js +15 -0
- package/dist/bus/command-dispatcher.js.map +1 -0
- package/dist/bus/command-errors.d.ts +23 -0
- package/dist/bus/command-errors.d.ts.map +1 -0
- package/dist/bus/command-errors.js +52 -0
- package/dist/bus/command-errors.js.map +1 -0
- package/dist/bus/event-bus.d.ts +113 -0
- package/dist/bus/event-bus.d.ts.map +1 -0
- package/dist/bus/event-bus.js +518 -0
- package/dist/bus/event-bus.js.map +1 -0
- package/dist/bus/event-dispatcher-origin-schemas.d.ts +17 -0
- package/dist/bus/event-dispatcher-origin-schemas.d.ts.map +1 -0
- package/dist/bus/event-dispatcher-origin-schemas.js +32 -0
- package/dist/bus/event-dispatcher-origin-schemas.js.map +1 -0
- package/dist/bus/event-dispatcher-registry.d.ts +48 -0
- package/dist/bus/event-dispatcher-registry.d.ts.map +1 -0
- package/dist/bus/event-dispatcher-registry.js +176 -0
- package/dist/bus/event-dispatcher-registry.js.map +1 -0
- package/dist/bus/event-dispatcher.d.ts +48 -0
- package/dist/bus/event-dispatcher.d.ts.map +1 -0
- package/dist/bus/event-dispatcher.js +15 -0
- package/dist/bus/event-dispatcher.js.map +1 -0
- package/dist/context/bounded-context.d.ts +606 -0
- package/dist/context/bounded-context.d.ts.map +1 -0
- package/dist/context/bounded-context.js +1780 -0
- package/dist/context/bounded-context.js.map +1 -0
- package/dist/context/entity-inbox.d.ts +63 -0
- package/dist/context/entity-inbox.d.ts.map +1 -0
- package/dist/context/entity-inbox.js +380 -0
- package/dist/context/entity-inbox.js.map +1 -0
- package/dist/context/local-inbox-handoff.d.ts +244 -0
- package/dist/context/local-inbox-handoff.d.ts.map +1 -0
- package/dist/context/local-inbox-handoff.js +334 -0
- package/dist/context/local-inbox-handoff.js.map +1 -0
- package/dist/context/projection-handoff.d.ts +46 -0
- package/dist/context/projection-handoff.d.ts.map +1 -0
- package/dist/context/projection-handoff.js +172 -0
- package/dist/context/projection-handoff.js.map +1 -0
- package/dist/context/tenant-index.d.ts +41 -0
- package/dist/context/tenant-index.d.ts.map +1 -0
- package/dist/context/tenant-index.js +92 -0
- package/dist/context/tenant-index.js.map +1 -0
- package/dist/delivery/conditional-pickup.d.ts +25 -0
- package/dist/delivery/conditional-pickup.d.ts.map +1 -0
- package/dist/delivery/conditional-pickup.js +26 -0
- package/dist/delivery/conditional-pickup.js.map +1 -0
- package/dist/delivery/delivery-builder.d.ts +216 -0
- package/dist/delivery/delivery-builder.d.ts.map +1 -0
- package/dist/delivery/delivery-builder.js +323 -0
- package/dist/delivery/delivery-builder.js.map +1 -0
- package/dist/delivery/delivery-lease.d.ts +15 -0
- package/dist/delivery/delivery-lease.d.ts.map +1 -0
- package/dist/delivery/delivery-lease.js +44 -0
- package/dist/delivery/delivery-lease.js.map +1 -0
- package/dist/delivery/delivery-loop.d.ts +113 -0
- package/dist/delivery/delivery-loop.d.ts.map +1 -0
- package/dist/delivery/delivery-loop.js +119 -0
- package/dist/delivery/delivery-loop.js.map +1 -0
- package/dist/delivery/delivery-monitor.d.ts +165 -0
- package/dist/delivery/delivery-monitor.d.ts.map +1 -0
- package/dist/delivery/delivery-monitor.js +168 -0
- package/dist/delivery/delivery-monitor.js.map +1 -0
- package/dist/delivery/delivery-ports.d.ts +141 -0
- package/dist/delivery/delivery-ports.d.ts.map +1 -0
- package/dist/delivery/delivery-ports.js +15 -0
- package/dist/delivery/delivery-ports.js.map +1 -0
- package/dist/delivery/delivery-run-control.d.ts +50 -0
- package/dist/delivery/delivery-run-control.d.ts.map +1 -0
- package/dist/delivery/delivery-run-control.js +66 -0
- package/dist/delivery/delivery-run-control.js.map +1 -0
- package/dist/delivery/delivery-run-coordinator.d.ts +218 -0
- package/dist/delivery/delivery-run-coordinator.d.ts.map +1 -0
- package/dist/delivery/delivery-run-coordinator.js +609 -0
- package/dist/delivery/delivery-run-coordinator.js.map +1 -0
- package/dist/delivery/delivery-storage-error.d.ts +13 -0
- package/dist/delivery/delivery-storage-error.d.ts.map +1 -0
- package/dist/delivery/delivery-storage-error.js +30 -0
- package/dist/delivery/delivery-storage-error.js.map +1 -0
- package/dist/delivery/delivery-supervisor.d.ts +175 -0
- package/dist/delivery/delivery-supervisor.d.ts.map +1 -0
- package/dist/delivery/delivery-supervisor.js +469 -0
- package/dist/delivery/delivery-supervisor.js.map +1 -0
- package/dist/delivery/delivery-worker.d.ts +180 -0
- package/dist/delivery/delivery-worker.d.ts.map +1 -0
- package/dist/delivery/delivery-worker.js +232 -0
- package/dist/delivery/delivery-worker.js.map +1 -0
- package/dist/delivery/delivery.d.ts +238 -0
- package/dist/delivery/delivery.d.ts.map +1 -0
- package/dist/delivery/delivery.js +400 -0
- package/dist/delivery/delivery.js.map +1 -0
- package/dist/delivery/inbox-records.d.ts +19 -0
- package/dist/delivery/inbox-records.d.ts.map +1 -0
- package/dist/delivery/inbox-records.js +291 -0
- package/dist/delivery/inbox-records.js.map +1 -0
- package/dist/delivery/inbox-storage.d.ts +81 -0
- package/dist/delivery/inbox-storage.d.ts.map +1 -0
- package/dist/delivery/inbox-storage.js +353 -0
- package/dist/delivery/inbox-storage.js.map +1 -0
- package/dist/delivery/inbox.d.ts +263 -0
- package/dist/delivery/inbox.d.ts.map +1 -0
- package/dist/delivery/inbox.js +172 -0
- package/dist/delivery/inbox.js.map +1 -0
- package/dist/delivery/parked-delivery-obligations.d.ts +182 -0
- package/dist/delivery/parked-delivery-obligations.d.ts.map +1 -0
- package/dist/delivery/parked-delivery-obligations.js +390 -0
- package/dist/delivery/parked-delivery-obligations.js.map +1 -0
- package/dist/delivery/shard-index.d.ts +41 -0
- package/dist/delivery/shard-index.d.ts.map +1 -0
- package/dist/delivery/shard-index.js +67 -0
- package/dist/delivery/shard-index.js.map +1 -0
- package/dist/delivery/sharded-work-registry.d.ts +114 -0
- package/dist/delivery/sharded-work-registry.d.ts.map +1 -0
- package/dist/delivery/sharded-work-registry.js +360 -0
- package/dist/delivery/sharded-work-registry.js.map +1 -0
- package/dist/entity/entity-metadata.d.ts +173 -0
- package/dist/entity/entity-metadata.d.ts.map +1 -0
- package/dist/entity/entity-metadata.js +187 -0
- package/dist/entity/entity-metadata.js.map +1 -0
- package/dist/entity/entity-storage-descriptor.d.ts +64 -0
- package/dist/entity/entity-storage-descriptor.d.ts.map +1 -0
- package/dist/entity/entity-storage-descriptor.js +227 -0
- package/dist/entity/entity-storage-descriptor.js.map +1 -0
- package/dist/entity/entity-transaction.d.ts +372 -0
- package/dist/entity/entity-transaction.d.ts.map +1 -0
- package/dist/entity/entity-transaction.js +413 -0
- package/dist/entity/entity-transaction.js.map +1 -0
- package/dist/entity/entity-transition-validation.d.ts +47 -0
- package/dist/entity/entity-transition-validation.d.ts.map +1 -0
- package/dist/entity/entity-transition-validation.js +327 -0
- package/dist/entity/entity-transition-validation.js.map +1 -0
- package/dist/entity/entity.d.ts +499 -0
- package/dist/entity/entity.d.ts.map +1 -0
- package/dist/entity/entity.js +829 -0
- package/dist/entity/entity.js.map +1 -0
- package/dist/entity/implicit-required-id.d.ts +15 -0
- package/dist/entity/implicit-required-id.d.ts.map +1 -0
- package/dist/entity/implicit-required-id.js +123 -0
- package/dist/entity/implicit-required-id.js.map +1 -0
- package/dist/entity/spec-scanner.d.ts +14 -0
- package/dist/entity/spec-scanner.d.ts.map +1 -0
- package/dist/entity/spec-scanner.js +37 -0
- package/dist/entity/spec-scanner.js.map +1 -0
- package/dist/handler/build-time-handler-analyzer.d.ts +150 -0
- package/dist/handler/build-time-handler-analyzer.d.ts.map +1 -0
- package/dist/handler/build-time-handler-analyzer.js +1101 -0
- package/dist/handler/build-time-handler-analyzer.js.map +1 -0
- package/dist/handler/command-registration-readiness.d.ts +99 -0
- package/dist/handler/command-registration-readiness.d.ts.map +1 -0
- package/dist/handler/command-registration-readiness.js +118 -0
- package/dist/handler/command-registration-readiness.js.map +1 -0
- package/dist/handler/event-handler-filter.d.ts +43 -0
- package/dist/handler/event-handler-filter.d.ts.map +1 -0
- package/dist/handler/event-handler-filter.js +128 -0
- package/dist/handler/event-handler-filter.js.map +1 -0
- package/dist/handler/event-registration-readiness.d.ts +196 -0
- package/dist/handler/event-registration-readiness.d.ts.map +1 -0
- package/dist/handler/event-registration-readiness.js +187 -0
- package/dist/handler/event-registration-readiness.js.map +1 -0
- package/dist/handler/external.d.ts +10 -0
- package/dist/handler/external.d.ts.map +1 -0
- package/dist/handler/external.js +15 -0
- package/dist/handler/external.js.map +1 -0
- package/dist/handler/generated-handler-registry.d.ts +154 -0
- package/dist/handler/generated-handler-registry.d.ts.map +1 -0
- package/dist/handler/generated-handler-registry.js +223 -0
- package/dist/handler/generated-handler-registry.js.map +1 -0
- package/dist/handler/generated-registry-discovery.d.ts +94 -0
- package/dist/handler/generated-registry-discovery.d.ts.map +1 -0
- package/dist/handler/generated-registry-discovery.js +228 -0
- package/dist/handler/generated-registry-discovery.js.map +1 -0
- package/dist/handler/generated-registry-writer.d.ts +58 -0
- package/dist/handler/generated-registry-writer.d.ts.map +1 -0
- package/dist/handler/generated-registry-writer.js +458 -0
- package/dist/handler/generated-registry-writer.js.map +1 -0
- package/dist/handler/handler-codegen.d.ts +48 -0
- package/dist/handler/handler-codegen.d.ts.map +1 -0
- package/dist/handler/handler-codegen.js +214 -0
- package/dist/handler/handler-codegen.js.map +1 -0
- package/dist/handler/handler-decorators.d.ts +134 -0
- package/dist/handler/handler-decorators.d.ts.map +1 -0
- package/dist/handler/handler-decorators.js +239 -0
- package/dist/handler/handler-decorators.js.map +1 -0
- package/dist/handler/handler-metadata.d.ts +510 -0
- package/dist/handler/handler-metadata.d.ts.map +1 -0
- package/dist/handler/handler-metadata.js +391 -0
- package/dist/handler/handler-metadata.js.map +1 -0
- package/dist/handler/registration-readiness-metadata.d.ts +68 -0
- package/dist/handler/registration-readiness-metadata.d.ts.map +1 -0
- package/dist/handler/registration-readiness-metadata.js +170 -0
- package/dist/handler/registration-readiness-metadata.js.map +1 -0
- package/dist/handler/rejection-source.d.ts +11 -0
- package/dist/handler/rejection-source.d.ts.map +1 -0
- package/dist/handler/rejection-source.js +25 -0
- package/dist/handler/rejection-source.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/external-messages.d.ts +49 -0
- package/dist/integration/external-messages.d.ts.map +1 -0
- package/dist/integration/external-messages.js +112 -0
- package/dist/integration/external-messages.js.map +1 -0
- package/dist/integration/integration-broker.d.ts +74 -0
- package/dist/integration/integration-broker.d.ts.map +1 -0
- package/dist/integration/integration-broker.js +444 -0
- package/dist/integration/integration-broker.js.map +1 -0
- package/dist/integration/third-party-context.d.ts +56 -0
- package/dist/integration/third-party-context.d.ts.map +1 -0
- package/dist/integration/third-party-context.js +130 -0
- package/dist/integration/third-party-context.js.map +1 -0
- package/dist/repository/command-errors.d.ts +25 -0
- package/dist/repository/command-errors.d.ts.map +1 -0
- package/dist/repository/command-errors.js +43 -0
- package/dist/repository/command-errors.js.map +1 -0
- package/dist/repository/command-routing.d.ts +72 -0
- package/dist/repository/command-routing.d.ts.map +1 -0
- package/dist/repository/command-routing.js +98 -0
- package/dist/repository/command-routing.js.map +1 -0
- package/dist/repository/commit-fence.d.ts +22 -0
- package/dist/repository/commit-fence.d.ts.map +1 -0
- package/dist/repository/commit-fence.js +37 -0
- package/dist/repository/commit-fence.js.map +1 -0
- package/dist/repository/event-routing.d.ts +71 -0
- package/dist/repository/event-routing.d.ts.map +1 -0
- package/dist/repository/event-routing.js +96 -0
- package/dist/repository/event-routing.js.map +1 -0
- package/dist/repository/primitive-id.d.ts +86 -0
- package/dist/repository/primitive-id.d.ts.map +1 -0
- package/dist/repository/primitive-id.js +110 -0
- package/dist/repository/primitive-id.js.map +1 -0
- package/dist/repository/repository.d.ts +670 -0
- package/dist/repository/repository.d.ts.map +1 -0
- package/dist/repository/repository.js +3298 -0
- package/dist/repository/repository.js.map +1 -0
- package/dist/repository/routing-declarations.d.ts +75 -0
- package/dist/repository/routing-declarations.d.ts.map +1 -0
- package/dist/repository/routing-declarations.js +101 -0
- package/dist/repository/routing-declarations.js.map +1 -0
- package/dist/repository/state-update-routing.d.ts +66 -0
- package/dist/repository/state-update-routing.d.ts.map +1 -0
- package/dist/repository/state-update-routing.js +91 -0
- package/dist/repository/state-update-routing.js.map +1 -0
- package/dist/runtime/runtime.d.ts +156 -0
- package/dist/runtime/runtime.d.ts.map +1 -0
- package/dist/runtime/runtime.js +215 -0
- package/dist/runtime/runtime.js.map +1 -0
- package/dist/runtime/signal-intake.d.ts +84 -0
- package/dist/runtime/signal-intake.d.ts.map +1 -0
- package/dist/runtime/signal-intake.js +94 -0
- package/dist/runtime/signal-intake.js.map +1 -0
- package/dist/runtime/signal-metadata.d.ts +242 -0
- package/dist/runtime/signal-metadata.d.ts.map +1 -0
- package/dist/runtime/signal-metadata.js +368 -0
- package/dist/runtime/signal-metadata.js.map +1 -0
- package/dist/server/browser-server.d.ts +49 -0
- package/dist/server/browser-server.d.ts.map +1 -0
- package/dist/server/browser-server.js +633 -0
- package/dist/server/browser-server.js.map +1 -0
- package/dist/server/durable-subscription-bindings.d.ts +122 -0
- package/dist/server/durable-subscription-bindings.d.ts.map +1 -0
- package/dist/server/durable-subscription-bindings.js +524 -0
- package/dist/server/durable-subscription-bindings.js.map +1 -0
- package/dist/server/environment-attachment.d.ts +356 -0
- package/dist/server/environment-attachment.d.ts.map +1 -0
- package/dist/server/environment-attachment.js +2061 -0
- package/dist/server/environment-attachment.js.map +1 -0
- package/dist/server/environment-delivery-records.d.ts +77 -0
- package/dist/server/environment-delivery-records.d.ts.map +1 -0
- package/dist/server/environment-delivery-records.js +282 -0
- package/dist/server/environment-delivery-records.js.map +1 -0
- package/dist/server/environment-delivery-worker.d.ts +161 -0
- package/dist/server/environment-delivery-worker.d.ts.map +1 -0
- package/dist/server/environment-delivery-worker.js +664 -0
- package/dist/server/environment-delivery-worker.js.map +1 -0
- package/dist/server/environment.d.ts +43 -0
- package/dist/server/environment.d.ts.map +1 -0
- package/dist/server/environment.js +90 -0
- package/dist/server/environment.js.map +1 -0
- package/dist/server/managed-child-subscription.d.ts +11 -0
- package/dist/server/managed-child-subscription.d.ts.map +1 -0
- package/dist/server/managed-child-subscription.js +44 -0
- package/dist/server/managed-child-subscription.js.map +1 -0
- package/dist/server/managed-server-application.d.ts +324 -0
- package/dist/server/managed-server-application.d.ts.map +1 -0
- package/dist/server/managed-server-application.js +937 -0
- package/dist/server/managed-server-application.js.map +1 -0
- package/dist/server/node-coordinator.d.ts +191 -0
- package/dist/server/node-coordinator.d.ts.map +1 -0
- package/dist/server/node-coordinator.js +552 -0
- package/dist/server/node-coordinator.js.map +1 -0
- package/dist/server/process-server-coordinator.d.ts +15 -0
- package/dist/server/process-server-coordinator.d.ts.map +1 -0
- package/dist/server/process-server-coordinator.js +112 -0
- package/dist/server/process-server-coordinator.js.map +1 -0
- package/dist/server/reserved-spine-rpc-paths.json +8 -0
- package/dist/server/retryable-close.d.ts +28 -0
- package/dist/server/retryable-close.d.ts.map +1 -0
- package/dist/server/retryable-close.js +129 -0
- package/dist/server/retryable-close.js.map +1 -0
- package/dist/server/server-environment.d.ts +180 -0
- package/dist/server/server-environment.d.ts.map +1 -0
- package/dist/server/server-environment.js +418 -0
- package/dist/server/server-environment.js.map +1 -0
- package/dist/server/server-log.d.ts +18 -0
- package/dist/server/server-log.d.ts.map +1 -0
- package/dist/server/server-log.js +96 -0
- package/dist/server/server-log.js.map +1 -0
- package/dist/server/server.d.ts +389 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +752 -0
- package/dist/server/server.js.map +1 -0
- package/dist/services/spine-services.d.ts +88 -0
- package/dist/services/spine-services.d.ts.map +1 -0
- package/dist/services/spine-services.js +1586 -0
- package/dist/services/spine-services.js.map +1 -0
- package/dist/stand/stand.d.ts +294 -0
- package/dist/stand/stand.d.ts.map +1 -0
- package/dist/stand/stand.js +680 -0
- package/dist/stand/stand.js.map +1 -0
- package/dist/stand/subscription-observer.d.ts +53 -0
- package/dist/stand/subscription-observer.d.ts.map +1 -0
- package/dist/stand/subscription-observer.js +444 -0
- package/dist/stand/subscription-observer.js.map +1 -0
- package/dist/stand/subscription-records.d.ts +12 -0
- package/dist/stand/subscription-records.d.ts.map +1 -0
- package/dist/stand/subscription-records.js +99 -0
- package/dist/stand/subscription-records.js.map +1 -0
- package/dist/stand/subscription-registry.d.ts +285 -0
- package/dist/stand/subscription-registry.d.ts.map +1 -0
- package/dist/stand/subscription-registry.js +403 -0
- package/dist/stand/subscription-registry.js.map +1 -0
- package/dist/stand/subscription-runtime.d.ts +102 -0
- package/dist/stand/subscription-runtime.d.ts.map +1 -0
- package/dist/stand/subscription-runtime.js +380 -0
- package/dist/stand/subscription-runtime.js.map +1 -0
- package/dist/testing/index.d.ts +14 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +34 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type InboxMessage as WireInboxMessage, type InboxMessageId as WireInboxMessageId } from "@spine-event-engine/proto/delivery";
|
|
2
|
+
import { RecordSpec } from "@spine-event-engine/storage";
|
|
3
|
+
import { type InboxMessage } from "./inbox.js";
|
|
4
|
+
/**
|
|
5
|
+
* Identifies the public inbox view that maps directly to the durable record.
|
|
6
|
+
*/
|
|
7
|
+
export type InboxRecordMessage = InboxMessage;
|
|
8
|
+
/**
|
|
9
|
+
* Converts between the ergonomic port view and the generated durable record.
|
|
10
|
+
*/
|
|
11
|
+
export declare const InboxRecords: Readonly<{
|
|
12
|
+
read(record: WireInboxMessage, expectedId?: WireInboxMessageId): InboxMessage;
|
|
13
|
+
write(message: InboxMessage): WireInboxMessage;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Defines the direct generated record specification for durable inbox rows.
|
|
17
|
+
*/
|
|
18
|
+
export declare const inboxRecordSpec: RecordSpec<WireInboxMessageId, WireInboxMessage>;
|
|
19
|
+
//# sourceMappingURL=inbox-records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-records.d.ts","sourceRoot":"","sources":["../../src/delivery/inbox-records.ts"],"names":[],"mappings":"AAwBA,OAAO,EAQL,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,cAAc,IAAI,kBAAkB,EAC1C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAA6B,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGpF,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAAC;IAC9E,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CAAC;CAChD,CAOC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,kBAAkB,EAAE,gBAAgB,CAgD3E,CAAC"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
import { clone, create, fromBinary, ScalarType, toBinary } from "@bufbuild/protobuf";
|
|
15
|
+
import { AnySchema, Int32ValueSchema, Int64ValueSchema, StringValueSchema, TimestampSchema, } from "@bufbuild/protobuf/wkt";
|
|
16
|
+
import { CommandSchema, EventSchema } from "@spine-event-engine/proto";
|
|
17
|
+
import { InboxIdSchema, InboxLabel, InboxMessageIdSchema, InboxMessageSchema, InboxMessageStatus, InboxSignalIdSchema, ShardIndexSchema, } from "@spine-event-engine/proto/delivery";
|
|
18
|
+
import { ColumnTypes, RecordColumn, RecordSpec } from "@spine-event-engine/storage";
|
|
19
|
+
import { DeliveryStorageCorruptionError } from "./delivery-storage-error.js";
|
|
20
|
+
import { InboxMessageError, } from "./inbox.js";
|
|
21
|
+
import { ShardIndex } from "./shard-index.js";
|
|
22
|
+
/**
|
|
23
|
+
* Converts between the ergonomic port view and the generated durable record.
|
|
24
|
+
*/
|
|
25
|
+
export const InboxRecords = Object.freeze({
|
|
26
|
+
read(record, expectedId) {
|
|
27
|
+
return Values.read(record, expectedId);
|
|
28
|
+
},
|
|
29
|
+
write(message) {
|
|
30
|
+
return Values.write(message);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* Defines the direct generated record specification for durable inbox rows.
|
|
35
|
+
*/
|
|
36
|
+
export const inboxRecordSpec = new RecordSpec({
|
|
37
|
+
sourceType: InboxMessageSchema,
|
|
38
|
+
recordType: InboxMessageSchema,
|
|
39
|
+
idSchema: InboxMessageIdSchema,
|
|
40
|
+
extractId: (record) => Values.id(record),
|
|
41
|
+
columns: [
|
|
42
|
+
new RecordColumn("inbox_id", ColumnTypes.fromField(InboxMessageSchema.field.inboxId), (record) => record.inboxId),
|
|
43
|
+
new RecordColumn("signal_id", ColumnTypes.fromField(InboxMessageSchema.field.signalId), (record) => record.signalId),
|
|
44
|
+
new RecordColumn("shard_index", ColumnTypes.scalar(ScalarType.INT32), (record) => Values.shard(record).index),
|
|
45
|
+
new RecordColumn("shard_total", ColumnTypes.scalar(ScalarType.INT32), (record) => Values.shard(record).ofTotal),
|
|
46
|
+
new RecordColumn("status", ColumnTypes.fromField(InboxMessageSchema.field.status), (record) => record.status),
|
|
47
|
+
new RecordColumn("when_received", ColumnTypes.fromField(InboxMessageSchema.field.whenReceived), (record) => record.whenReceived),
|
|
48
|
+
new RecordColumn("version", ColumnTypes.fromField(InboxMessageSchema.field.version), (record) => record.version),
|
|
49
|
+
new RecordColumn("message_id", ColumnTypes.scalar(ScalarType.STRING), (record) => Values.text(record.id?.uuid, "Inbox message ID")),
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
const Values = Object.freeze({
|
|
53
|
+
write(input) {
|
|
54
|
+
const message = Values.input(input);
|
|
55
|
+
Values.target(message.inboxId.targetId, InboxMessageError);
|
|
56
|
+
Values.payloadForLabel(message.label, message.signal, InboxMessageError);
|
|
57
|
+
const payload = message.signal === undefined ? { case: undefined } : Values.payload(message.signal);
|
|
58
|
+
return create(InboxMessageSchema, {
|
|
59
|
+
id: create(InboxMessageIdSchema, {
|
|
60
|
+
uuid: message.id.value,
|
|
61
|
+
index: create(ShardIndexSchema, {
|
|
62
|
+
index: message.shard.index,
|
|
63
|
+
ofTotal: message.shard.ofTotal,
|
|
64
|
+
}),
|
|
65
|
+
}),
|
|
66
|
+
signalId: create(InboxSignalIdSchema, { value: message.signalId }),
|
|
67
|
+
inboxId: create(InboxIdSchema, {
|
|
68
|
+
entityId: {
|
|
69
|
+
id: clone(AnySchema, message.inboxId.targetId),
|
|
70
|
+
},
|
|
71
|
+
typeUrl: message.inboxId.targetTypeUrl,
|
|
72
|
+
}),
|
|
73
|
+
payload,
|
|
74
|
+
label: Values.label(message.label),
|
|
75
|
+
status: Values.status(message.status),
|
|
76
|
+
whenReceived: Values.timestamp(message.whenReceived.getTime()),
|
|
77
|
+
version: Number(message.version),
|
|
78
|
+
...(message.keepUntil === undefined
|
|
79
|
+
? {}
|
|
80
|
+
: { keepUntil: Values.timestamp(message.keepUntil.getTime()) }),
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
read(record, expectedId) {
|
|
84
|
+
const id = Values.id(record);
|
|
85
|
+
const shard = Values.shard(record);
|
|
86
|
+
if (expectedId !== undefined &&
|
|
87
|
+
(id.uuid !== expectedId.uuid ||
|
|
88
|
+
id.index?.index !== expectedId.index?.index ||
|
|
89
|
+
id.index?.ofTotal !== expectedId.index?.ofTotal))
|
|
90
|
+
throw new DeliveryStorageCorruptionError("Inbox message does not match its storage ID.");
|
|
91
|
+
const inbox = record.inboxId;
|
|
92
|
+
const entity = inbox?.entityId?.id;
|
|
93
|
+
const signal = record.signalId?.value;
|
|
94
|
+
if (inbox === undefined ||
|
|
95
|
+
typeof entity?.typeUrl !== "string" ||
|
|
96
|
+
entity.typeUrl.trim().length === 0 ||
|
|
97
|
+
typeof signal !== "string" ||
|
|
98
|
+
signal.trim().length === 0 ||
|
|
99
|
+
typeof inbox.typeUrl !== "string" ||
|
|
100
|
+
inbox.typeUrl.trim().length === 0 ||
|
|
101
|
+
record.whenReceived === undefined ||
|
|
102
|
+
!Number.isSafeInteger(record.version) ||
|
|
103
|
+
record.version < 0)
|
|
104
|
+
throw new DeliveryStorageCorruptionError("Inbox message record is invalid.");
|
|
105
|
+
if (!(entity.value instanceof Uint8Array))
|
|
106
|
+
throw new DeliveryStorageCorruptionError("Inbox target ID is invalid.");
|
|
107
|
+
Values.target(entity, DeliveryStorageCorruptionError);
|
|
108
|
+
const payload = record.payload.case === undefined
|
|
109
|
+
? undefined
|
|
110
|
+
: Values.signal(record.payload.case, record.payload.value);
|
|
111
|
+
Values.payloadForLabel(Values.readLabel(record.label), payload, DeliveryStorageCorruptionError);
|
|
112
|
+
return Object.freeze({
|
|
113
|
+
id: Object.freeze({ value: Values.text(id.uuid, "Inbox message ID"), shard }),
|
|
114
|
+
inboxId: Object.freeze({ targetId: clone(AnySchema, entity), targetTypeUrl: inbox.typeUrl }),
|
|
115
|
+
signalId: signal,
|
|
116
|
+
...(payload === undefined ? {} : { signal: payload }),
|
|
117
|
+
label: Values.readLabel(record.label),
|
|
118
|
+
status: Values.readStatus(record.status),
|
|
119
|
+
shard,
|
|
120
|
+
whenReceived: Values.date(record.whenReceived, "Inbox receive time"),
|
|
121
|
+
version: BigInt(record.version),
|
|
122
|
+
...(record.keepUntil === undefined
|
|
123
|
+
? {}
|
|
124
|
+
: { keepUntil: Values.date(record.keepUntil, "Inbox keep-until time") }),
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
input(value) {
|
|
128
|
+
const id = value.id;
|
|
129
|
+
const inbox = value.inboxId;
|
|
130
|
+
const shard = value.shard;
|
|
131
|
+
if (typeof id.value !== "string" ||
|
|
132
|
+
id.value.trim().length === 0 ||
|
|
133
|
+
!(id.shard instanceof ShardIndex) ||
|
|
134
|
+
!(shard instanceof ShardIndex) ||
|
|
135
|
+
id.shard.key() !== shard.key())
|
|
136
|
+
throw new InboxMessageError("Inbox message ID shard does not match message shard.");
|
|
137
|
+
if (typeof inbox.targetId.typeUrl !== "string" ||
|
|
138
|
+
inbox.targetId.typeUrl.trim().length === 0 ||
|
|
139
|
+
!(inbox.targetId.value instanceof Uint8Array) ||
|
|
140
|
+
typeof inbox.targetTypeUrl !== "string" ||
|
|
141
|
+
inbox.targetTypeUrl.trim().length === 0 ||
|
|
142
|
+
typeof value.signalId !== "string" ||
|
|
143
|
+
value.signalId.trim().length === 0 ||
|
|
144
|
+
!(value.whenReceived instanceof Date) ||
|
|
145
|
+
!Number.isFinite(value.whenReceived.getTime()) ||
|
|
146
|
+
typeof value.version !== "bigint" ||
|
|
147
|
+
value.version < 0n ||
|
|
148
|
+
value.version > BigInt(0x7fffffff))
|
|
149
|
+
throw new InboxMessageError("Inbox message is invalid.");
|
|
150
|
+
Values.inputLabel(value.label);
|
|
151
|
+
Values.inputStatus(value.status);
|
|
152
|
+
if (value.keepUntil !== undefined &&
|
|
153
|
+
(!(value.keepUntil instanceof Date) || !Number.isFinite(value.keepUntil.getTime())))
|
|
154
|
+
throw new InboxMessageError("Inbox keep-until time is invalid.");
|
|
155
|
+
return value;
|
|
156
|
+
},
|
|
157
|
+
payload(signal) {
|
|
158
|
+
if (signal.typeUrl === "type.spine.io/spine.core.Command")
|
|
159
|
+
return { case: "command", value: fromBinary(CommandSchema, signal.value) };
|
|
160
|
+
if (signal.typeUrl === "type.spine.io/spine.core.Event")
|
|
161
|
+
return { case: "event", value: fromBinary(EventSchema, signal.value) };
|
|
162
|
+
throw new InboxMessageError("Inbox signal must contain a command or event payload.");
|
|
163
|
+
},
|
|
164
|
+
target(value, ErrorType) {
|
|
165
|
+
try {
|
|
166
|
+
switch (value.typeUrl) {
|
|
167
|
+
case "type.googleapis.com/google.protobuf.StringValue":
|
|
168
|
+
if (fromBinary(StringValueSchema, value.value).value.trim().length === 0)
|
|
169
|
+
throw new TypeError("String target ID is blank.");
|
|
170
|
+
break;
|
|
171
|
+
case "type.googleapis.com/google.protobuf.Int32Value":
|
|
172
|
+
fromBinary(Int32ValueSchema, value.value);
|
|
173
|
+
break;
|
|
174
|
+
case "type.googleapis.com/google.protobuf.Int64Value":
|
|
175
|
+
fromBinary(Int64ValueSchema, value.value);
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
throw new ErrorType("Inbox target ID is invalid.", { cause: error });
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
payloadForLabel(label, signal, ErrorType) {
|
|
184
|
+
const expected = label === "HANDLE_COMMAND"
|
|
185
|
+
? "type.spine.io/spine.core.Command"
|
|
186
|
+
: "type.spine.io/spine.core.Event";
|
|
187
|
+
if (signal?.typeUrl !== expected)
|
|
188
|
+
throw new ErrorType("Inbox delivery label does not match its signal payload.");
|
|
189
|
+
},
|
|
190
|
+
signal(kind, payload) {
|
|
191
|
+
return kind === "command"
|
|
192
|
+
? create(AnySchema, {
|
|
193
|
+
typeUrl: "type.spine.io/spine.core.Command",
|
|
194
|
+
value: toBinary(CommandSchema, payload),
|
|
195
|
+
})
|
|
196
|
+
: create(AnySchema, {
|
|
197
|
+
typeUrl: "type.spine.io/spine.core.Event",
|
|
198
|
+
value: toBinary(EventSchema, payload),
|
|
199
|
+
});
|
|
200
|
+
},
|
|
201
|
+
id(record) {
|
|
202
|
+
if (record.id === undefined)
|
|
203
|
+
throw new DeliveryStorageCorruptionError("Inbox message ID is missing.");
|
|
204
|
+
return record.id;
|
|
205
|
+
},
|
|
206
|
+
shard(record) {
|
|
207
|
+
const index = record.id?.index;
|
|
208
|
+
if (index === undefined)
|
|
209
|
+
throw new DeliveryStorageCorruptionError("Inbox message ID shard is missing.");
|
|
210
|
+
try {
|
|
211
|
+
return new ShardIndex(index.index, index.ofTotal);
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
throw new DeliveryStorageCorruptionError("Inbox message shard is invalid.", { cause: error });
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
timestamp(ms) {
|
|
218
|
+
const seconds = Math.floor(ms / 1_000);
|
|
219
|
+
return create(TimestampSchema, {
|
|
220
|
+
seconds: BigInt(seconds),
|
|
221
|
+
nanos: (ms - seconds * 1_000) * 1_000_000,
|
|
222
|
+
});
|
|
223
|
+
},
|
|
224
|
+
date(value, label) {
|
|
225
|
+
const ms = Number(value.seconds) * 1000 + Math.floor(value.nanos / 1_000_000);
|
|
226
|
+
if (!Number.isInteger(value.nanos) ||
|
|
227
|
+
value.nanos < 0 ||
|
|
228
|
+
value.nanos >= 1_000_000_000 ||
|
|
229
|
+
!Number.isSafeInteger(ms))
|
|
230
|
+
throw new DeliveryStorageCorruptionError(`${label} is invalid.`);
|
|
231
|
+
return new Date(ms);
|
|
232
|
+
},
|
|
233
|
+
label(value) {
|
|
234
|
+
return {
|
|
235
|
+
HANDLE_COMMAND: InboxLabel.HANDLE_COMMAND,
|
|
236
|
+
UPDATE_SUBSCRIBER: InboxLabel.UPDATE_SUBSCRIBER,
|
|
237
|
+
REACT_UPON_EVENT: InboxLabel.REACT_UPON_EVENT,
|
|
238
|
+
CATCH_UP: InboxLabel.CATCH_UP,
|
|
239
|
+
}[value];
|
|
240
|
+
},
|
|
241
|
+
status(value) {
|
|
242
|
+
return {
|
|
243
|
+
TO_DELIVER: InboxMessageStatus.TO_DELIVER,
|
|
244
|
+
SCHEDULED: InboxMessageStatus.SCHEDULED,
|
|
245
|
+
DELIVERED: InboxMessageStatus.DELIVERED,
|
|
246
|
+
TO_CATCH_UP: InboxMessageStatus.TO_CATCH_UP,
|
|
247
|
+
}[value];
|
|
248
|
+
},
|
|
249
|
+
readLabel(value) {
|
|
250
|
+
const result = {
|
|
251
|
+
[InboxLabel.HANDLE_COMMAND]: "HANDLE_COMMAND",
|
|
252
|
+
[InboxLabel.UPDATE_SUBSCRIBER]: "UPDATE_SUBSCRIBER",
|
|
253
|
+
[InboxLabel.REACT_UPON_EVENT]: "REACT_UPON_EVENT",
|
|
254
|
+
[InboxLabel.CATCH_UP]: "CATCH_UP",
|
|
255
|
+
};
|
|
256
|
+
if (result[value] === undefined)
|
|
257
|
+
throw new DeliveryStorageCorruptionError("Inbox label is invalid.");
|
|
258
|
+
return result[value];
|
|
259
|
+
},
|
|
260
|
+
readStatus(value) {
|
|
261
|
+
const result = {
|
|
262
|
+
[InboxMessageStatus.TO_DELIVER]: "TO_DELIVER",
|
|
263
|
+
[InboxMessageStatus.SCHEDULED]: "SCHEDULED",
|
|
264
|
+
[InboxMessageStatus.DELIVERED]: "DELIVERED",
|
|
265
|
+
[InboxMessageStatus.TO_CATCH_UP]: "TO_CATCH_UP",
|
|
266
|
+
};
|
|
267
|
+
if (result[value] === undefined)
|
|
268
|
+
throw new DeliveryStorageCorruptionError("Inbox status is invalid.");
|
|
269
|
+
return result[value];
|
|
270
|
+
},
|
|
271
|
+
inputLabel(value) {
|
|
272
|
+
if (!(value === "HANDLE_COMMAND" ||
|
|
273
|
+
value === "UPDATE_SUBSCRIBER" ||
|
|
274
|
+
value === "REACT_UPON_EVENT" ||
|
|
275
|
+
value === "CATCH_UP"))
|
|
276
|
+
throw new InboxMessageError("Inbox delivery label is invalid.");
|
|
277
|
+
},
|
|
278
|
+
inputStatus(value) {
|
|
279
|
+
if (!(value === "TO_DELIVER" ||
|
|
280
|
+
value === "SCHEDULED" ||
|
|
281
|
+
value === "DELIVERED" ||
|
|
282
|
+
value === "TO_CATCH_UP"))
|
|
283
|
+
throw new InboxMessageError("Inbox delivery status is invalid.");
|
|
284
|
+
},
|
|
285
|
+
text(value, label) {
|
|
286
|
+
if (typeof value !== "string" || value.trim().length === 0)
|
|
287
|
+
throw new DeliveryStorageCorruptionError(`${label} is invalid.`);
|
|
288
|
+
return value;
|
|
289
|
+
},
|
|
290
|
+
});
|
|
291
|
+
//# sourceMappingURL=inbox-records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-records.js","sourceRoot":"","sources":["../../src/delivery/inbox-records.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { StorageContext, StorageFactory } from "@spine-event-engine/storage";
|
|
2
|
+
import { type InboxMessage, type InboxMessageId, type InboxReadOptions, type InboxWriteResult } from "./inbox.js";
|
|
3
|
+
import { ShardIndex } from "./shard-index.js";
|
|
4
|
+
import type { DeliveryWorkSession } from "./delivery-ports.js";
|
|
5
|
+
/**
|
|
6
|
+
* Stores direct generated inbox records in the configured durable family.
|
|
7
|
+
*/
|
|
8
|
+
export declare class InboxStorage {
|
|
9
|
+
#private;
|
|
10
|
+
/**
|
|
11
|
+
* Opens direct inbox storage.
|
|
12
|
+
*
|
|
13
|
+
* @param options Configures the storage context, factory, and optional clock.
|
|
14
|
+
*/
|
|
15
|
+
constructor(options: InboxStorageOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Reads ordered direct inbox rows from one shard.
|
|
18
|
+
*
|
|
19
|
+
* @param shard Identifies the shard to query.
|
|
20
|
+
* @param options Filters and bounds the returned page.
|
|
21
|
+
* @returns The matching durable inbox messages.
|
|
22
|
+
*/
|
|
23
|
+
read(shard: ShardIndex, options?: InboxReadOptions): Promise<readonly InboxMessage[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Reads one exact direct inbox row.
|
|
26
|
+
*
|
|
27
|
+
* @param id Identifies the message and shard.
|
|
28
|
+
* @returns The durable message, or `undefined` when it is absent.
|
|
29
|
+
*/
|
|
30
|
+
readMessage(id: InboxMessageId): Promise<InboxMessage | undefined>;
|
|
31
|
+
/**
|
|
32
|
+
* Writes one direct inbox row without overwriting a collision.
|
|
33
|
+
*
|
|
34
|
+
* @param message Supplies the message to persist.
|
|
35
|
+
* @returns Whether the row was written or matched an existing duplicate.
|
|
36
|
+
*/
|
|
37
|
+
write(message: InboxMessage): Promise<InboxWriteResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Marks one exact pending row delivered.
|
|
40
|
+
*
|
|
41
|
+
* @param message Supplies the expected pending snapshot.
|
|
42
|
+
* @returns The delivered row, or `undefined` when the snapshot no longer matches.
|
|
43
|
+
*/
|
|
44
|
+
markDelivered(message: InboxMessage): Promise<InboxMessage | undefined>;
|
|
45
|
+
/**
|
|
46
|
+
* Removes one eligible delivered row when the leased session remains current.
|
|
47
|
+
*
|
|
48
|
+
* @param message Supplies the exact delivered snapshot to remove.
|
|
49
|
+
* @param session Supplies the leased session that owns the message shard.
|
|
50
|
+
* @param options Propagates cancellation and a delivery deadline.
|
|
51
|
+
* @returns Whether the provider atomically removed the exact durable row.
|
|
52
|
+
*/
|
|
53
|
+
removeDelivered(message: InboxMessage, session: DeliveryWorkSession, options?: import("./delivery-ports.js").DeliveryOperationOptions): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Returns one exact pending row while the caller owns its shard.
|
|
56
|
+
*
|
|
57
|
+
* @param message Supplies the expected pending snapshot.
|
|
58
|
+
* @returns The admitted row, or `undefined` when it is unavailable or duplicated.
|
|
59
|
+
*/
|
|
60
|
+
admit(message: InboxMessage): Promise<InboxMessage | undefined>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Configures direct durable inbox storage.
|
|
64
|
+
*/
|
|
65
|
+
export interface InboxStorageOptions {
|
|
66
|
+
/**
|
|
67
|
+
* Storage context that owns this inbox family.
|
|
68
|
+
*/
|
|
69
|
+
readonly context: StorageContext;
|
|
70
|
+
/**
|
|
71
|
+
* Factory that opens the direct inbox record storage.
|
|
72
|
+
*/
|
|
73
|
+
readonly storageFactory: StorageFactory;
|
|
74
|
+
/**
|
|
75
|
+
* Returns the current time used when evaluating delivered-row retention.
|
|
76
|
+
*
|
|
77
|
+
* @returns The current time.
|
|
78
|
+
*/
|
|
79
|
+
readonly now?: () => Date;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=inbox-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-storage.d.ts","sourceRoot":"","sources":["../../src/delivery/inbox-storage.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAiB,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGjG,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO/D;;GAEG;AACH,qBAAa,YAAY;;IAKvB;;;;OAIG;gBACS,OAAO,EAAE,mBAAmB;IAOxC;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IA0B/F;;;;;OAKG;IACG,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWxE;;;;;OAKG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmB7D;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA2B7E;;;;;;;OAOG;IACG,eAAe,CACnB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,OAAO,qBAAqB,EAAE,wBAAwB,GAC/D,OAAO,CAAC,OAAO,CAAC;IAuCnB;;;;;OAKG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAwDtE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAGlC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B"}
|