@spine-event-engine/server 2.0.0-snapshot.11
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 +209 -0
- package/REFERENCE.md +760 -0
- package/dist/browser/browser-server.d.ts +95 -0
- package/dist/browser/browser-server.d.ts.map +1 -0
- package/dist/browser/browser-server.js +719 -0
- package/dist/browser/browser-server.js.map +1 -0
- package/dist/browser/durable-subscription-bindings.d.ts +122 -0
- package/dist/browser/durable-subscription-bindings.d.ts.map +1 -0
- package/dist/browser/durable-subscription-bindings.js +524 -0
- package/dist/browser/durable-subscription-bindings.js.map +1 -0
- package/dist/browser/index.d.ts +12 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +24 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/options.d.ts +183 -0
- package/dist/browser/options.d.ts.map +1 -0
- package/dist/browser/options.js +15 -0
- package/dist/browser/options.js.map +1 -0
- package/dist/bus/command-bus.d.ts +63 -0
- package/dist/bus/command-bus.d.ts.map +1 -0
- package/dist/bus/command-bus.js +236 -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 +592 -0
- package/dist/context/bounded-context.d.ts.map +1 -0
- package/dist/context/bounded-context.js +1897 -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 +387 -0
- package/dist/context/entity-inbox.js.map +1 -0
- package/dist/context/local-inbox-handoff.d.ts +248 -0
- package/dist/context/local-inbox-handoff.d.ts.map +1 -0
- package/dist/context/local-inbox-handoff.js +340 -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 +177 -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 +93 -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 +151 -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 +236 -0
- package/dist/delivery/delivery.d.ts.map +1 -0
- package/dist/delivery/delivery.js +539 -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 +83 -0
- package/dist/delivery/inbox-storage.d.ts.map +1 -0
- package/dist/delivery/inbox-storage.js +336 -0
- package/dist/delivery/inbox-storage.js.map +1 -0
- package/dist/delivery/inbox.d.ts +272 -0
- package/dist/delivery/inbox.d.ts.map +1 -0
- package/dist/delivery/inbox.js +183 -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 +361 -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 +605 -0
- package/dist/entity/entity.d.ts.map +1 -0
- package/dist/entity/entity.js +981 -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/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 +120 -0
- package/dist/handler/command-registration-readiness.js.map +1 -0
- package/dist/handler/declared-rejections.d.ts +11 -0
- package/dist/handler/declared-rejections.d.ts.map +1 -0
- package/dist/handler/declared-rejections.js +34 -0
- package/dist/handler/declared-rejections.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 +185 -0
- package/dist/handler/generated-handler-registry.d.ts.map +1 -0
- package/dist/handler/generated-handler-registry.js +439 -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 +226 -0
- package/dist/handler/generated-registry-discovery.js.map +1 -0
- package/dist/handler/handler-decorators.d.ts +151 -0
- package/dist/handler/handler-decorators.d.ts.map +1 -0
- package/dist/handler/handler-decorators.js +275 -0
- package/dist/handler/handler-decorators.js.map +1 -0
- package/dist/handler/handler-metadata.d.ts +553 -0
- package/dist/handler/handler-metadata.d.ts.map +1 -0
- package/dist/handler/handler-metadata.js +437 -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 +171 -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/handler/standalone.d.ts +25 -0
- package/dist/handler/standalone.d.ts.map +1 -0
- package/dist/handler/standalone.js +38 -0
- package/dist/handler/standalone.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 +75 -0
- package/dist/repository/primitive-id.d.ts.map +1 -0
- package/dist/repository/primitive-id.js +85 -0
- package/dist/repository/primitive-id.js.map +1 -0
- package/dist/repository/repository.d.ts +667 -0
- package/dist/repository/repository.d.ts.map +1 -0
- package/dist/repository/repository.js +3510 -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 +217 -0
- package/dist/runtime/signal-metadata.d.ts.map +1 -0
- package/dist/runtime/signal-metadata.js +333 -0
- package/dist/runtime/signal-metadata.js.map +1 -0
- package/dist/runtime/signal-publisher.d.ts +144 -0
- package/dist/runtime/signal-publisher.d.ts.map +1 -0
- package/dist/runtime/signal-publisher.js +248 -0
- package/dist/runtime/signal-publisher.js.map +1 -0
- package/dist/runtime/standalone-handler-runtime.d.ts +114 -0
- package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -0
- package/dist/runtime/standalone-handler-runtime.js +307 -0
- package/dist/runtime/standalone-handler-runtime.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 +2062 -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 +673 -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 +327 -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 +100 -0
- package/dist/server/server-log.js.map +1 -0
- package/dist/server/server.d.ts +221 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +704 -0
- package/dist/server/server.js.map +1 -0
- package/dist/services/query-reader.d.ts +19 -0
- package/dist/services/query-reader.d.ts.map +1 -0
- package/dist/services/query-reader.js +43 -0
- package/dist/services/query-reader.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 +1582 -0
- package/dist/services/spine-services.js.map +1 -0
- package/dist/spi/delivery.d.ts +5 -0
- package/dist/spi/delivery.d.ts.map +1 -0
- package/dist/spi/delivery.js +18 -0
- package/dist/spi/delivery.js.map +1 -0
- package/dist/spi/handler-registry.d.ts +8 -0
- package/dist/spi/handler-registry.d.ts.map +1 -0
- package/dist/spi/handler-registry.js +15 -0
- package/dist/spi/handler-registry.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 +681 -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 +36 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +54 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,275 @@
|
|
|
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 { EntityHandlers, } from "./handler-metadata.js";
|
|
15
|
+
const handlerDecoratorMetadataKey = Symbol("@spine-event-engine/server.handlerDecorators");
|
|
16
|
+
/**
|
|
17
|
+
* Records the generated domain rejections a command-accepting handler may throw.
|
|
18
|
+
*
|
|
19
|
+
* @param declarations Generated rejection companions.
|
|
20
|
+
* @returns A method decorator that records the declared rejection schemas.
|
|
21
|
+
*/
|
|
22
|
+
export function Throws(...declarations) {
|
|
23
|
+
if (declarations.length === 0) {
|
|
24
|
+
throw new TypeError("@Throws requires at least one generated rejection declaration.");
|
|
25
|
+
}
|
|
26
|
+
const schemas = declarations.map((declaration) => {
|
|
27
|
+
const value = declaration;
|
|
28
|
+
const schema = value !== null && typeof value === "object"
|
|
29
|
+
? value.schema
|
|
30
|
+
: undefined;
|
|
31
|
+
if (schema === null ||
|
|
32
|
+
typeof schema !== "object" ||
|
|
33
|
+
typeof schema.typeName !== "string") {
|
|
34
|
+
throw new TypeError("@Throws accepts only generated rejection declarations.");
|
|
35
|
+
}
|
|
36
|
+
return schema;
|
|
37
|
+
});
|
|
38
|
+
const typeNames = schemas.map((schema) => schema.typeName);
|
|
39
|
+
if (new Set(typeNames).size !== typeNames.length) {
|
|
40
|
+
throw new TypeError("@Throws cannot declare the same rejection more than once.");
|
|
41
|
+
}
|
|
42
|
+
return (_value, context) => {
|
|
43
|
+
DecoratorMetadata.methodName(context);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Creates command-assignment decorator metadata or a schema-bearing decorator.
|
|
48
|
+
*
|
|
49
|
+
* @param schemaOrValue Command schema or decorated method implementation.
|
|
50
|
+
* @param context Standard decorator context for bare usage.
|
|
51
|
+
* @returns A decorator for schema-bearing usage, or `undefined` after bare usage.
|
|
52
|
+
*/
|
|
53
|
+
export function Assign(schemaOrValue, context) {
|
|
54
|
+
return DecoratorMetadata.decorateOrCreate("command-assignment", schemaOrValue, context);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates command-handler decorator metadata or a schema-bearing decorator.
|
|
58
|
+
* Command input declares a Process Manager command substitution; Event or rejection
|
|
59
|
+
* input declares an Event Bus command reaction. Schema-bearing metadata cannot
|
|
60
|
+
* provide generated emitted schemas and is rejected during materialization.
|
|
61
|
+
*
|
|
62
|
+
* @param schemaOrValue Generated Command, Event, or rejection schema, or
|
|
63
|
+
* decorated method implementation.
|
|
64
|
+
* @param context Standard decorator context for bare usage.
|
|
65
|
+
* @returns A decorator for schema-bearing usage, or `undefined` after bare usage.
|
|
66
|
+
*/
|
|
67
|
+
export function Command(schemaOrValue, context) {
|
|
68
|
+
return DecoratorMetadata.decorateOrCreate("command-reaction", schemaOrValue, context);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Creates subscriber decorator metadata or a schema-bearing decorator.
|
|
72
|
+
*
|
|
73
|
+
* @param schemaOrValue Event, rejection, or descriptor-marked Entity state
|
|
74
|
+
* schema, or the decorated method implementation.
|
|
75
|
+
* @param context Standard decorator context for bare usage.
|
|
76
|
+
* @returns A decorator for schema-bearing usage, or `undefined` after bare usage.
|
|
77
|
+
*/
|
|
78
|
+
export function Subscribe(schemaOrValue, context) {
|
|
79
|
+
return DecoratorMetadata.decorateOrCreate("event-subscription", schemaOrValue, context);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates event-reaction decorator metadata or a schema-bearing decorator.
|
|
83
|
+
*
|
|
84
|
+
* @param schemaOrValue Event schema or decorated method implementation.
|
|
85
|
+
* @param context Standard decorator context for bare usage.
|
|
86
|
+
* @returns A decorator for schema-bearing usage, or `undefined` after bare usage.
|
|
87
|
+
*/
|
|
88
|
+
export function React(schemaOrValue, context) {
|
|
89
|
+
return DecoratorMetadata.decorateOrCreate("event-reaction", schemaOrValue, context);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Creates one Event field equality filter for an Event-consuming handler.
|
|
93
|
+
*
|
|
94
|
+
* Generated handler analysis validates the declaration and carries it into
|
|
95
|
+
* immutable repository metadata. The decorator itself does not inspect or
|
|
96
|
+
* invoke the handler.
|
|
97
|
+
*
|
|
98
|
+
* @param options Event source field and canonical expected value.
|
|
99
|
+
* @returns Decorator for a public instance handler method.
|
|
100
|
+
*/
|
|
101
|
+
export function Where(options) {
|
|
102
|
+
const snapshot = WhereValues.snapshot(options);
|
|
103
|
+
return (_value, context) => {
|
|
104
|
+
void snapshot;
|
|
105
|
+
DecoratorMetadata.methodName(context);
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Creates legacy framework event-application metadata.
|
|
110
|
+
*
|
|
111
|
+
* New application aggregates must not use `@Apply`; managed aggregates are no
|
|
112
|
+
* longer event-sourced and the framework owns state transactions. This
|
|
113
|
+
* decorator is kept only for compatibility code that still needs explicit
|
|
114
|
+
* schema-bearing event application metadata. The optional `allowImport` flag
|
|
115
|
+
* is preserved only as part of that legacy metadata shape.
|
|
116
|
+
*
|
|
117
|
+
* @param schema Event schema accepted by the decorated method.
|
|
118
|
+
* @param options Legacy event-application metadata options.
|
|
119
|
+
* @returns Decorator that records the application metadata.
|
|
120
|
+
*/
|
|
121
|
+
export function Apply(schema, options = {}) {
|
|
122
|
+
return DecoratorMetadata.create("event-application", schema, options);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Builds schema-bearing decorator declarations for framework compatibility.
|
|
126
|
+
*
|
|
127
|
+
* The returned object is the same frozen `EntityHandlersMetadata` contract
|
|
128
|
+
* produced by `EntityHandlers.define()` and accepted by
|
|
129
|
+
* `HandlerMetadataRegistry`. Only own prototype methods of `entityType` are
|
|
130
|
+
* inspected; inherited decorated methods are intentionally not materialized by
|
|
131
|
+
* this class-owned adapter.
|
|
132
|
+
*
|
|
133
|
+
* Application code must not call this function and must not provide its own
|
|
134
|
+
* handler discovery/materialization. Generated framework registries own schema
|
|
135
|
+
* inference for bare decorators; this adapter only supports legacy
|
|
136
|
+
* schema-bearing decorator metadata.
|
|
137
|
+
*
|
|
138
|
+
* @typeParam Instance - Entity instance that owns the handlers.
|
|
139
|
+
* @typeParam StateSchema - Schema that describes the entity state.
|
|
140
|
+
* @param entityType Entity class whose own decorated methods are read.
|
|
141
|
+
* @param stateSchema Schema that describes the entity state.
|
|
142
|
+
* @returns Frozen handler metadata for the decorated methods.
|
|
143
|
+
*/
|
|
144
|
+
export function materializeDecoratedEntityHandlers(entityType, stateSchema) {
|
|
145
|
+
const decoratedHandlers = DecoratorMetadata.collect(entityType);
|
|
146
|
+
return EntityHandlers.define(entityType, stateSchema, (builder) => decoratedHandlers.map((handler) => {
|
|
147
|
+
const methodName = handler.methodName;
|
|
148
|
+
switch (handler.kind) {
|
|
149
|
+
case "command-assignment":
|
|
150
|
+
return builder.assign(DecoratorMetadata.schema(handler), methodName);
|
|
151
|
+
case "command-substitution":
|
|
152
|
+
throw new TypeError("Command substitutions require generated registry metadata with emitted schemas.");
|
|
153
|
+
case "command-reaction":
|
|
154
|
+
throw new TypeError("@Command handlers require generated registry metadata with emitted schemas.");
|
|
155
|
+
case "event-subscription":
|
|
156
|
+
return builder.subscribe(DecoratorMetadata.schema(handler), methodName);
|
|
157
|
+
case "event-reaction":
|
|
158
|
+
return builder.react(DecoratorMetadata.schema(handler), methodName);
|
|
159
|
+
case "event-application":
|
|
160
|
+
return builder.apply(DecoratorMetadata.schema(handler), methodName, {
|
|
161
|
+
allowImport: handler.allowImport ?? false,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
const DecoratorMetadata = Object.freeze({
|
|
167
|
+
methodName(context) {
|
|
168
|
+
if (context.static || context.private) {
|
|
169
|
+
throw new TypeError("Spine handler decorators must be applied to public instance methods.");
|
|
170
|
+
}
|
|
171
|
+
if (typeof context.name !== "string") {
|
|
172
|
+
throw new TypeError("Spine handler decorators require string-named methods.");
|
|
173
|
+
}
|
|
174
|
+
return context.name;
|
|
175
|
+
},
|
|
176
|
+
decorateOrCreate(kind, schemaOrValue, context) {
|
|
177
|
+
if (context !== undefined) {
|
|
178
|
+
DecoratorMetadata.create(kind)(schemaOrValue, context);
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
return DecoratorMetadata.create(kind, schemaOrValue);
|
|
182
|
+
},
|
|
183
|
+
create(kind, schema, options = {}) {
|
|
184
|
+
return (_value, context) => {
|
|
185
|
+
const methodName = DecoratorMetadata.methodName(context);
|
|
186
|
+
const record = Object.freeze({
|
|
187
|
+
kind,
|
|
188
|
+
...(schema === undefined ? {} : { schema }),
|
|
189
|
+
methodName,
|
|
190
|
+
...(kind === "event-application" ? { allowImport: options.allowImport ?? false } : {}),
|
|
191
|
+
});
|
|
192
|
+
const metadata = DecoratorMetadata.require(context);
|
|
193
|
+
const previous = DecoratorMetadata.read(metadata);
|
|
194
|
+
Object.defineProperty(metadata, handlerDecoratorMetadataKey, {
|
|
195
|
+
configurable: true,
|
|
196
|
+
enumerable: false,
|
|
197
|
+
value: Object.freeze([...previous, record]),
|
|
198
|
+
writable: true,
|
|
199
|
+
});
|
|
200
|
+
};
|
|
201
|
+
},
|
|
202
|
+
schema(handler) {
|
|
203
|
+
if (handler.schema === undefined) {
|
|
204
|
+
throw new TypeError(`Decorated handler "${handler.methodName}" was declared without a schema; ` +
|
|
205
|
+
"use generated registry metadata or explicit EntityHandlers.define() registration.");
|
|
206
|
+
}
|
|
207
|
+
return handler.schema;
|
|
208
|
+
},
|
|
209
|
+
collect(entityType) {
|
|
210
|
+
const metadata = DecoratorMetadata.classMetadata(entityType);
|
|
211
|
+
if (metadata === undefined) {
|
|
212
|
+
return Object.freeze([]);
|
|
213
|
+
}
|
|
214
|
+
const records = DecoratorMetadata.read(metadata).filter((record) => {
|
|
215
|
+
const descriptor = Object.getOwnPropertyDescriptor(entityType.prototype, record.methodName);
|
|
216
|
+
return typeof descriptor?.value === "function";
|
|
217
|
+
});
|
|
218
|
+
return Object.freeze(records);
|
|
219
|
+
},
|
|
220
|
+
installSymbol() {
|
|
221
|
+
const existingMetadata = Reflect.get(Symbol, "metadata");
|
|
222
|
+
if (typeof existingMetadata === "symbol") {
|
|
223
|
+
return existingMetadata;
|
|
224
|
+
}
|
|
225
|
+
const metadata = Symbol("Symbol.metadata");
|
|
226
|
+
Object.defineProperty(Symbol, "metadata", {
|
|
227
|
+
configurable: true,
|
|
228
|
+
enumerable: false,
|
|
229
|
+
value: metadata,
|
|
230
|
+
writable: false,
|
|
231
|
+
});
|
|
232
|
+
return metadata;
|
|
233
|
+
},
|
|
234
|
+
require(context) {
|
|
235
|
+
if (context.metadata === undefined) {
|
|
236
|
+
throw new TypeError("Spine handler decorators require standard decorator metadata support.");
|
|
237
|
+
}
|
|
238
|
+
return context.metadata;
|
|
239
|
+
},
|
|
240
|
+
classMetadata(entityType) {
|
|
241
|
+
const descriptor = Object.getOwnPropertyDescriptor(entityType, decoratorMetadataSymbol);
|
|
242
|
+
const metadata = descriptor?.value;
|
|
243
|
+
if (metadata === null || typeof metadata !== "object") {
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
return metadata;
|
|
247
|
+
},
|
|
248
|
+
read(metadata) {
|
|
249
|
+
if (!Object.hasOwn(metadata, handlerDecoratorMetadataKey)) {
|
|
250
|
+
return [];
|
|
251
|
+
}
|
|
252
|
+
const value = metadata[handlerDecoratorMetadataKey];
|
|
253
|
+
return Array.isArray(value) ? value : [];
|
|
254
|
+
},
|
|
255
|
+
});
|
|
256
|
+
const WhereValues = Object.freeze({
|
|
257
|
+
snapshot(options) {
|
|
258
|
+
const value = options;
|
|
259
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
260
|
+
throw new TypeError("Where options must be an object.");
|
|
261
|
+
}
|
|
262
|
+
const keys = Object.keys(value);
|
|
263
|
+
if (keys.length !== 2 ||
|
|
264
|
+
!keys.includes("eventField") ||
|
|
265
|
+
!keys.includes("equals") ||
|
|
266
|
+
typeof options.eventField !== "string" ||
|
|
267
|
+
options.eventField.trim().length === 0 ||
|
|
268
|
+
typeof options.equals !== "string") {
|
|
269
|
+
throw new TypeError("Where options require exactly non-empty eventField and string equals.");
|
|
270
|
+
}
|
|
271
|
+
return Object.freeze({ eventField: options.eventField, equals: options.equals });
|
|
272
|
+
},
|
|
273
|
+
});
|
|
274
|
+
const decoratorMetadataSymbol = DecoratorMetadata.installSymbol();
|
|
275
|
+
//# sourceMappingURL=handler-decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-decorators.js","sourceRoot":"","sources":["../../src/handler/handler-decorators.ts"],"names":[],"mappings":"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"}
|