@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,94 @@
|
|
|
1
|
+
import { HandlerRegistryIngestor } from "./generated-handler-registry.js";
|
|
2
|
+
import { HandlerMetadataRegistry } from "./handler-metadata.js";
|
|
3
|
+
/**
|
|
4
|
+
* Stable error code for generated registry discovery failures.
|
|
5
|
+
*/
|
|
6
|
+
export type RegistryDiscoveryErrorCode = "MODULE_IMPORT_FAILED" | "MISSING_REGISTRY_EXPORT" | "INVALID_REGISTRY_MODULE" | "REGISTRY_INGESTION_FAILED" | "UNSUPPORTED_MODULE_SCHEME" | "INVALID_MODULE_REF" | "DUPLICATE_REGISTRY_MODULE";
|
|
7
|
+
/**
|
|
8
|
+
* Options for loading one or more generated registry modules.
|
|
9
|
+
*/
|
|
10
|
+
export interface GeneratedRegistryDiscoveryOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Explicit filesystem paths or file: URLs to load.
|
|
13
|
+
*/
|
|
14
|
+
readonly modules: readonly (string | URL)[];
|
|
15
|
+
/**
|
|
16
|
+
* Export name expected from each generated module.
|
|
17
|
+
*/
|
|
18
|
+
readonly exportName?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Optional retry token used to bypass Node's dynamic import cache for canonical modules.
|
|
21
|
+
*/
|
|
22
|
+
readonly cacheBust?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error thrown when generated registry discovery or loading fails.
|
|
26
|
+
*/
|
|
27
|
+
export declare class GeneratedRegistryDiscoveryError extends Error {
|
|
28
|
+
/**
|
|
29
|
+
* Stable code for callers/tests that need structured failure handling.
|
|
30
|
+
*/
|
|
31
|
+
readonly code: RegistryDiscoveryErrorCode;
|
|
32
|
+
/**
|
|
33
|
+
* Normalized imported module identifier.
|
|
34
|
+
*/
|
|
35
|
+
readonly moduleId: string;
|
|
36
|
+
/**
|
|
37
|
+
* Optional underlying import or ingestion error.
|
|
38
|
+
*/
|
|
39
|
+
readonly cause: unknown;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a registry discovery error.
|
|
42
|
+
*
|
|
43
|
+
* @param code Stable code that identifies the failed operation.
|
|
44
|
+
* @param message Human-readable failure description.
|
|
45
|
+
* @param moduleId Normalized identifier of the affected module.
|
|
46
|
+
* @param cause Underlying import or ingestion failure.
|
|
47
|
+
*/
|
|
48
|
+
constructor(code: RegistryDiscoveryErrorCode, message: string, moduleId: string, cause?: unknown);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Framework-owned runtime loader for generated handler registry modules.
|
|
52
|
+
*/
|
|
53
|
+
export declare class GeneratedRegistryDiscovery {
|
|
54
|
+
#private;
|
|
55
|
+
/**
|
|
56
|
+
* Creates a generated-registry loader.
|
|
57
|
+
*
|
|
58
|
+
* @param ingestor Adapter that validates and registers loaded metadata.
|
|
59
|
+
*/
|
|
60
|
+
constructor(ingestor?: HandlerRegistryIngestor);
|
|
61
|
+
/**
|
|
62
|
+
* Builds the conventional generated registry module path for one package or app root.
|
|
63
|
+
*
|
|
64
|
+
* @param root Package or application root directory.
|
|
65
|
+
* @returns Absolute path to the conventional registry module.
|
|
66
|
+
*/
|
|
67
|
+
static conventionalModulePath(root: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* Builds the conventional generated registry module URL for one package or app root.
|
|
70
|
+
*
|
|
71
|
+
* @param root Package or application root directory.
|
|
72
|
+
* @returns File URL for the conventional registry module.
|
|
73
|
+
*/
|
|
74
|
+
static conventionalModuleUrl(root: string): URL;
|
|
75
|
+
/**
|
|
76
|
+
* Loads generated handler registries from explicit filesystem paths or file URLs.
|
|
77
|
+
*
|
|
78
|
+
* @param options Module references and optional load configuration.
|
|
79
|
+
* @returns Frozen loaded registry values in module order.
|
|
80
|
+
*/
|
|
81
|
+
load(options: GeneratedRegistryDiscoveryOptions): Promise<readonly unknown[]>;
|
|
82
|
+
/**
|
|
83
|
+
* Loads generated handler registries and ingests them into a caller-owned metadata registry.
|
|
84
|
+
*
|
|
85
|
+
* Registration stages all new metadata before mutating the caller-owned registry.
|
|
86
|
+
*
|
|
87
|
+
* @param options Module references and optional load configuration.
|
|
88
|
+
* @param registry Metadata registry to update, if one already exists.
|
|
89
|
+
* @returns Registry containing the loaded generated metadata.
|
|
90
|
+
*/
|
|
91
|
+
register(options: GeneratedRegistryDiscoveryOptions, registry?: HandlerMetadataRegistry): Promise<HandlerMetadataRegistry>;
|
|
92
|
+
private loadModules;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=generated-registry-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-registry-discovery.d.ts","sourceRoot":"","sources":["../../src/handler/generated-registry-discovery.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEL,uBAAuB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAMhE;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAClC,sBAAsB,GACtB,yBAAyB,GACzB,yBAAyB,GACzB,2BAA2B,GAC3B,2BAA2B,GAC3B,oBAAoB,GACpB,2BAA2B,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAGhD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IAGxD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,SAAkB,KAAK,EAAE,OAAO,CAAC;IAEjC;;;;;;;OAOG;gBAED,IAAI,EAAE,0BAA0B,EAChC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO;CASlB;AAED;;GAEG;AACH,qBAAa,0BAA0B;;IAGrC;;;;OAIG;gBACS,QAAQ,GAAE,uBAAuD;IAI7E;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAInD;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAI/C;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC;IAMnF;;;;;;;;OAQG;IACG,QAAQ,CACZ,OAAO,EAAE,iCAAiC,EAC1C,QAAQ,CAAC,EAAE,uBAAuB,GACjC,OAAO,CAAC,uBAAuB,CAAC;YA8BrB,WAAW;CAqB1B"}
|
|
@@ -0,0 +1,226 @@
|
|
|
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 { resolve } from "node:path";
|
|
15
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
16
|
+
import { HandlerRegistryIngestor, } from "./generated-handler-registry.js";
|
|
17
|
+
import { HandlerMetadataRegistry } from "./handler-metadata.js";
|
|
18
|
+
const defaultExportName = "generatedHandlerRegistry";
|
|
19
|
+
const generatedRegistryFile = "generated/handler/generated-handler-registry.js";
|
|
20
|
+
const moduleSchemeRe = /^[A-Za-z][A-Za-z\d+.-]*:/;
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when generated registry discovery or loading fails.
|
|
23
|
+
*/
|
|
24
|
+
export class GeneratedRegistryDiscoveryError extends Error {
|
|
25
|
+
// prettier-ignore
|
|
26
|
+
/**
|
|
27
|
+
* Stable code for callers/tests that need structured failure handling.
|
|
28
|
+
*/
|
|
29
|
+
code;
|
|
30
|
+
/**
|
|
31
|
+
* Normalized imported module identifier.
|
|
32
|
+
*/
|
|
33
|
+
moduleId;
|
|
34
|
+
/**
|
|
35
|
+
* Optional underlying import or ingestion error.
|
|
36
|
+
*/
|
|
37
|
+
cause;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a registry discovery error.
|
|
40
|
+
*
|
|
41
|
+
* @param code Stable code that identifies the failed operation.
|
|
42
|
+
* @param message Human-readable failure description.
|
|
43
|
+
* @param moduleId Normalized identifier of the affected module.
|
|
44
|
+
* @param cause Underlying import or ingestion failure.
|
|
45
|
+
*/
|
|
46
|
+
constructor(code, message, moduleId, cause) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.name = "GeneratedRegistryDiscoveryError";
|
|
49
|
+
this.code = code;
|
|
50
|
+
this.moduleId = moduleId;
|
|
51
|
+
this.cause = cause;
|
|
52
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Framework-owned runtime loader for generated handler registry modules.
|
|
57
|
+
*/
|
|
58
|
+
export class GeneratedRegistryDiscovery {
|
|
59
|
+
#ingestor;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a generated-registry loader.
|
|
62
|
+
*
|
|
63
|
+
* @param ingestor Adapter that validates and registers loaded metadata.
|
|
64
|
+
*/
|
|
65
|
+
constructor(ingestor = new HandlerRegistryIngestor()) {
|
|
66
|
+
this.#ingestor = ingestor;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Builds the conventional generated registry module path for one package or app root.
|
|
70
|
+
*
|
|
71
|
+
* @param root Package or application root directory.
|
|
72
|
+
* @returns Absolute path to the conventional registry module.
|
|
73
|
+
*/
|
|
74
|
+
static conventionalModulePath(root) {
|
|
75
|
+
return resolve(root, generatedRegistryFile);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Builds the conventional generated registry module URL for one package or app root.
|
|
79
|
+
*
|
|
80
|
+
* @param root Package or application root directory.
|
|
81
|
+
* @returns File URL for the conventional registry module.
|
|
82
|
+
*/
|
|
83
|
+
static conventionalModuleUrl(root) {
|
|
84
|
+
return pathToFileURL(GeneratedRegistryDiscovery.conventionalModulePath(root));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Loads generated handler registries from explicit filesystem paths or file URLs.
|
|
88
|
+
*
|
|
89
|
+
* @param options Module references and optional load configuration.
|
|
90
|
+
* @returns Frozen loaded registry values in module order.
|
|
91
|
+
*/
|
|
92
|
+
async load(options) {
|
|
93
|
+
const loaded = await this.loadModules(options);
|
|
94
|
+
return Object.freeze(loaded.map((entry) => entry.registry));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Loads generated handler registries and ingests them into a caller-owned metadata registry.
|
|
98
|
+
*
|
|
99
|
+
* Registration stages all new metadata before mutating the caller-owned registry.
|
|
100
|
+
*
|
|
101
|
+
* @param options Module references and optional load configuration.
|
|
102
|
+
* @param registry Metadata registry to update, if one already exists.
|
|
103
|
+
* @returns Registry containing the loaded generated metadata.
|
|
104
|
+
*/
|
|
105
|
+
async register(options, registry) {
|
|
106
|
+
const loaded = await this.loadModules(options);
|
|
107
|
+
const target = registry ?? new HandlerMetadataRegistry();
|
|
108
|
+
const existing = target.listEntityHandlers();
|
|
109
|
+
const staged = new HandlerMetadataRegistry(existing);
|
|
110
|
+
for (const entry of loaded) {
|
|
111
|
+
try {
|
|
112
|
+
this.#ingestor.register(entry.registry, staged);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
throw new GeneratedRegistryDiscoveryError("REGISTRY_INGESTION_FAILED", `Generated handler registry module "${entry.moduleId}" could not be ingested.`, entry.moduleId, error);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (registry === undefined) {
|
|
119
|
+
return staged;
|
|
120
|
+
}
|
|
121
|
+
for (const metadata of staged.listEntityHandlers().slice(existing.length)) {
|
|
122
|
+
registry.register(metadata);
|
|
123
|
+
}
|
|
124
|
+
return registry;
|
|
125
|
+
}
|
|
126
|
+
async loadModules(options) {
|
|
127
|
+
const exportName = options.exportName ?? defaultExportName;
|
|
128
|
+
const moduleRefs = [...options.modules];
|
|
129
|
+
const moduleIds = moduleRefs.map((moduleRef) => RegistryModules.normalize(moduleRef));
|
|
130
|
+
const loaded = [];
|
|
131
|
+
RegistryModules.assertUnique(moduleIds);
|
|
132
|
+
for (const moduleId of moduleIds) {
|
|
133
|
+
const exports = await RegistryModules.import(RegistryModules.cacheable(moduleId, options));
|
|
134
|
+
loaded.push({
|
|
135
|
+
moduleId,
|
|
136
|
+
registry: RegistryModules.registry(exports, moduleId, exportName),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return Object.freeze(loaded);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const RegistryModules = Object.freeze({
|
|
143
|
+
async import(moduleId) {
|
|
144
|
+
try {
|
|
145
|
+
return await import(moduleId);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
throw new GeneratedRegistryDiscoveryError("MODULE_IMPORT_FAILED", `Could not import generated handler registry module "${moduleId}".`, moduleId, error);
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
cacheable(moduleId, options) {
|
|
152
|
+
if (options.cacheBust === undefined || options.cacheBust.length === 0) {
|
|
153
|
+
return moduleId;
|
|
154
|
+
}
|
|
155
|
+
const moduleUrl = new URL(moduleId);
|
|
156
|
+
moduleUrl.searchParams.set("spine-registry-cache", options.cacheBust);
|
|
157
|
+
return moduleUrl.href;
|
|
158
|
+
},
|
|
159
|
+
registry(exports, moduleId, exportName) {
|
|
160
|
+
const value = RegistryModules.export(exports, exportName);
|
|
161
|
+
if (value === undefined) {
|
|
162
|
+
throw new GeneratedRegistryDiscoveryError("MISSING_REGISTRY_EXPORT", `Generated handler registry module "${moduleId}" does not export "${exportName}".`, moduleId);
|
|
163
|
+
}
|
|
164
|
+
if (RegistryModules.isRegistry(value)) {
|
|
165
|
+
return value;
|
|
166
|
+
}
|
|
167
|
+
throw new GeneratedRegistryDiscoveryError("INVALID_REGISTRY_MODULE", `Generated handler registry module "${moduleId}" exports invalid "${exportName}" metadata.`, moduleId);
|
|
168
|
+
},
|
|
169
|
+
export(exports, exportName) {
|
|
170
|
+
if (exports === null || typeof exports !== "object") {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
return exports[exportName];
|
|
174
|
+
},
|
|
175
|
+
isRegistry(value) {
|
|
176
|
+
if (value === null || typeof value !== "object") {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
const receivers = value.receivers;
|
|
180
|
+
return Array.isArray(receivers);
|
|
181
|
+
},
|
|
182
|
+
normalize(moduleRef) {
|
|
183
|
+
if (moduleRef instanceof URL) {
|
|
184
|
+
return RegistryModules.url(moduleRef);
|
|
185
|
+
}
|
|
186
|
+
if (RegistryModules.isUrl(moduleRef)) {
|
|
187
|
+
return RegistryModules.url(RegistryModules.parse(moduleRef));
|
|
188
|
+
}
|
|
189
|
+
return pathToFileURL(resolve(moduleRef)).href;
|
|
190
|
+
},
|
|
191
|
+
url(moduleUrl) {
|
|
192
|
+
if (moduleUrl.protocol !== "file:") {
|
|
193
|
+
throw new GeneratedRegistryDiscoveryError("UNSUPPORTED_MODULE_SCHEME", `Generated handler registry module "${moduleUrl.href}" must use the file: URL scheme.`, moduleUrl.href);
|
|
194
|
+
}
|
|
195
|
+
if (moduleUrl.search.length > 0 || moduleUrl.hash.length > 0) {
|
|
196
|
+
throw new GeneratedRegistryDiscoveryError("INVALID_MODULE_REF", `Generated handler registry module "${moduleUrl.href}" must not include a query or hash.`, moduleUrl.href);
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
return pathToFileURL(resolve(fileURLToPath(moduleUrl))).href;
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
throw new GeneratedRegistryDiscoveryError("INVALID_MODULE_REF", `Generated handler registry module "${moduleUrl.href}" is not a valid file URL.`, moduleUrl.href, error);
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
isUrl(moduleRef) {
|
|
206
|
+
return moduleSchemeRe.test(moduleRef) && !/^[A-Za-z]:[\\/]/.test(moduleRef);
|
|
207
|
+
},
|
|
208
|
+
parse(moduleRef) {
|
|
209
|
+
try {
|
|
210
|
+
return new URL(moduleRef);
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
throw new GeneratedRegistryDiscoveryError("INVALID_MODULE_REF", `Generated handler registry module "${moduleRef}" is not a valid URL.`, moduleRef, error);
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
assertUnique(moduleIds) {
|
|
217
|
+
const seen = new Set();
|
|
218
|
+
for (const moduleId of moduleIds) {
|
|
219
|
+
if (seen.has(moduleId)) {
|
|
220
|
+
throw new GeneratedRegistryDiscoveryError("DUPLICATE_REGISTRY_MODULE", `Generated handler registry module "${moduleId}" was listed more than once.`, moduleId);
|
|
221
|
+
}
|
|
222
|
+
seen.add(moduleId);
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
});
|
|
226
|
+
//# sourceMappingURL=generated-registry-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-registry-discovery.js","sourceRoot":"","sources":["../../src/handler/generated-registry-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { DescriptorMessageSchema } from "../entity/entity-metadata.js";
|
|
2
|
+
import { type EntityClass, type EntityHandlersMetadata, type EventApplicationOptions, type WhereOptions } from "./handler-metadata.js";
|
|
3
|
+
export type { WhereOptions } from "./handler-metadata.js";
|
|
4
|
+
/**
|
|
5
|
+
* Describes the standard TypeScript method decorator accepted by Spine handler declarations.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam This - Entity instance that owns the decorated method.
|
|
8
|
+
* @typeParam Parameters - Parameters accepted by the decorated method.
|
|
9
|
+
* @typeParam Return - Result returned by the decorated method.
|
|
10
|
+
* @param value Decorated method implementation.
|
|
11
|
+
* @param context Standard TypeScript decorator context.
|
|
12
|
+
*/
|
|
13
|
+
export type HandlerMethodDecorator = <This extends object, Parameters extends readonly unknown[], Return>(value: HandlerMethodValue<This, Parameters, Return>, context: ClassMethodDecoratorContext<This, HandlerMethodValue<This, Parameters, Return>>) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Describes an instance method shape accepted by public handler decorators.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam This - Entity instance that owns the method.
|
|
18
|
+
* @typeParam Parameters - Parameters accepted by the method.
|
|
19
|
+
* @typeParam Return - Result returned by the method.
|
|
20
|
+
* @param this Entity instance that receives the invocation.
|
|
21
|
+
* @param parameters Arguments supplied to the handler.
|
|
22
|
+
* @returns Handler result.
|
|
23
|
+
*/
|
|
24
|
+
export type HandlerMethodValue<This extends object = object, Parameters extends readonly unknown[] = readonly unknown[], Return = unknown> = (this: This, ...parameters: Parameters) => Return;
|
|
25
|
+
/**
|
|
26
|
+
* Generated companion declaration for a rejection that a command receptor may throw.
|
|
27
|
+
*/
|
|
28
|
+
export interface RejectionDeclaration {
|
|
29
|
+
/**
|
|
30
|
+
* Generated Protobuf schema of the declared rejection.
|
|
31
|
+
*/
|
|
32
|
+
readonly schema: DescriptorMessageSchema;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Records the generated domain rejections a command-accepting handler may throw.
|
|
36
|
+
*
|
|
37
|
+
* @param declarations Generated rejection companions.
|
|
38
|
+
* @returns A method decorator that records the declared rejection schemas.
|
|
39
|
+
*/
|
|
40
|
+
export declare function Throws(...declarations: readonly RejectionDeclaration[]): HandlerMethodDecorator;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a command-assignee declaration.
|
|
43
|
+
*
|
|
44
|
+
* Bare `@Assign` is the ordinary application form. Generated handler
|
|
45
|
+
* registries require a command input and normal event output; a rejection is
|
|
46
|
+
* valid in neither role, but the handler may throw a generated rejection
|
|
47
|
+
* throwable. The decorator records metadata only; it does not register the
|
|
48
|
+
* handler, instantiate the entity, or invoke the method.
|
|
49
|
+
*
|
|
50
|
+
* @typeParam This - Entity instance that owns the method.
|
|
51
|
+
* @typeParam Parameters - Parameters accepted by the method.
|
|
52
|
+
* @typeParam Return - Result returned by the method.
|
|
53
|
+
* @param value Decorated method implementation or command schema.
|
|
54
|
+
* @param context Standard decorator context for bare usage.
|
|
55
|
+
*/
|
|
56
|
+
export declare function Assign<This extends object, Parameters extends readonly unknown[], Return>(value: HandlerMethodValue<This, Parameters, Return>, context: ClassMethodDecoratorContext<This, HandlerMethodValue<This, Parameters, Return>>): void;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a command handler declaration.
|
|
59
|
+
*
|
|
60
|
+
* Bare `@Command` accepts a generated Command, Event, or rejection input.
|
|
61
|
+
* A Command input is the unique command-substitution receptor for its type and
|
|
62
|
+
* substitutes it with one or more Commands. `@Command` handlers are supported only by Process
|
|
63
|
+
* Manager repositories; Aggregate and Projection repositories reject them.
|
|
64
|
+
* Event and rejection inputs are Event Bus reactions that may return Commands.
|
|
65
|
+
* Rejections are thrown, not returned.
|
|
66
|
+
*
|
|
67
|
+
* @typeParam This - Entity instance that owns the method.
|
|
68
|
+
* @typeParam Parameters - Parameters accepted by the method.
|
|
69
|
+
* @typeParam Return - Result returned by the method.
|
|
70
|
+
* @param value Decorated method implementation or command schema.
|
|
71
|
+
* @param context Standard decorator context for bare usage.
|
|
72
|
+
*/
|
|
73
|
+
export declare function Command<This extends object, Parameters extends readonly unknown[], Return>(value: HandlerMethodValue<This, Parameters, Return>, context: ClassMethodDecoratorContext<This, HandlerMethodValue<This, Parameters, Return>>): void;
|
|
74
|
+
/**
|
|
75
|
+
* Creates an Event/rejection or Entity-state subscriber declaration.
|
|
76
|
+
*
|
|
77
|
+
* Bare `@Subscribe` accepts generated Event/rejection or descriptor-marked
|
|
78
|
+
* Entity-state inputs and returns `void`. Event/rejection inputs produce
|
|
79
|
+
* event-subscription metadata; Entity state inputs produce state-subscription
|
|
80
|
+
* metadata. Subscribers are metadata-only declarations bridged by generated
|
|
81
|
+
* registry and runtime metadata.
|
|
82
|
+
*
|
|
83
|
+
* @typeParam This - Entity instance that owns the method.
|
|
84
|
+
* @typeParam Parameters - Parameters accepted by the method.
|
|
85
|
+
* @typeParam Return - Result returned by the method.
|
|
86
|
+
* @param value Decorated method implementation.
|
|
87
|
+
* @param context Standard decorator context for bare usage.
|
|
88
|
+
*/
|
|
89
|
+
export declare function Subscribe<This extends object, Parameters extends readonly unknown[], Return>(value: HandlerMethodValue<This, Parameters, Return>, context: ClassMethodDecoratorContext<This, HandlerMethodValue<This, Parameters, Return>>): void;
|
|
90
|
+
/**
|
|
91
|
+
* Creates an event-reactor declaration.
|
|
92
|
+
*
|
|
93
|
+
* Bare `@React` accepts generated event or rejection inputs and returns normal
|
|
94
|
+
* events or explicit `void`; rejections are thrown, not returned. Reactors are
|
|
95
|
+
* collected as class-owned metadata and may fan out through the caller-owned
|
|
96
|
+
* handler registry.
|
|
97
|
+
*
|
|
98
|
+
* @typeParam This - Entity instance that owns the method.
|
|
99
|
+
* @typeParam Parameters - Parameters accepted by the method.
|
|
100
|
+
* @typeParam Return - Result returned by the method.
|
|
101
|
+
* @param value Decorated method implementation or event schema.
|
|
102
|
+
* @param context Standard decorator context for bare usage.
|
|
103
|
+
*/
|
|
104
|
+
export declare function React<This extends object, Parameters extends readonly unknown[], Return>(value: HandlerMethodValue<This, Parameters, Return>, context: ClassMethodDecoratorContext<This, HandlerMethodValue<This, Parameters, Return>>): void;
|
|
105
|
+
/**
|
|
106
|
+
* Creates one Event field equality filter for an Event-consuming handler.
|
|
107
|
+
*
|
|
108
|
+
* Generated handler analysis validates the declaration and carries it into
|
|
109
|
+
* immutable repository metadata. The decorator itself does not inspect or
|
|
110
|
+
* invoke the handler.
|
|
111
|
+
*
|
|
112
|
+
* @param options Event source field and canonical expected value.
|
|
113
|
+
* @returns Decorator for a public instance handler method.
|
|
114
|
+
*/
|
|
115
|
+
export declare function Where(options: WhereOptions): HandlerMethodDecorator;
|
|
116
|
+
/**
|
|
117
|
+
* Creates legacy framework event-application metadata.
|
|
118
|
+
*
|
|
119
|
+
* New application aggregates must not use `@Apply`; managed aggregates are no
|
|
120
|
+
* longer event-sourced and the framework owns state transactions. This
|
|
121
|
+
* decorator is kept only for compatibility code that still needs explicit
|
|
122
|
+
* schema-bearing event application metadata. The optional `allowImport` flag
|
|
123
|
+
* is preserved only as part of that legacy metadata shape.
|
|
124
|
+
*
|
|
125
|
+
* @param schema Event schema accepted by the decorated method.
|
|
126
|
+
* @param options Legacy event-application metadata options.
|
|
127
|
+
* @returns Decorator that records the application metadata.
|
|
128
|
+
*/
|
|
129
|
+
export declare function Apply(schema: DescriptorMessageSchema, options?: EventApplicationOptions): HandlerMethodDecorator;
|
|
130
|
+
/**
|
|
131
|
+
* Builds schema-bearing decorator declarations for framework compatibility.
|
|
132
|
+
*
|
|
133
|
+
* The returned object is the same frozen `EntityHandlersMetadata` contract
|
|
134
|
+
* produced by `EntityHandlers.define()` and accepted by
|
|
135
|
+
* `HandlerMetadataRegistry`. Only own prototype methods of `entityType` are
|
|
136
|
+
* inspected; inherited decorated methods are intentionally not materialized by
|
|
137
|
+
* this class-owned adapter.
|
|
138
|
+
*
|
|
139
|
+
* Application code must not call this function and must not provide its own
|
|
140
|
+
* handler discovery/materialization. Generated framework registries own schema
|
|
141
|
+
* inference for bare decorators; this adapter only supports legacy
|
|
142
|
+
* schema-bearing decorator metadata.
|
|
143
|
+
*
|
|
144
|
+
* @typeParam Instance - Entity instance that owns the handlers.
|
|
145
|
+
* @typeParam StateSchema - Schema that describes the entity state.
|
|
146
|
+
* @param entityType Entity class whose own decorated methods are read.
|
|
147
|
+
* @param stateSchema Schema that describes the entity state.
|
|
148
|
+
* @returns Frozen handler metadata for the decorated methods.
|
|
149
|
+
*/
|
|
150
|
+
export declare function materializeDecoratedEntityHandlers<Instance extends object, StateSchema extends DescriptorMessageSchema>(entityType: EntityClass<Instance>, stateSchema: StateSchema): EntityHandlersMetadata<Instance, StateSchema>;
|
|
151
|
+
//# sourceMappingURL=handler-decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-decorators.d.ts","sourceRoot":"","sources":["../../src/handler/handler-decorators.ts"],"names":[],"mappings":"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"}
|