@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,128 @@
|
|
|
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 { StringifierRegistry } from "@spine-event-engine/core";
|
|
15
|
+
/**
|
|
16
|
+
* Compiles generated `@Where` metadata and selects one receptor at runtime.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export const EventHandlerFilters = Object.freeze({
|
|
21
|
+
compile(candidates, stringifiers = new StringifierRegistry()) {
|
|
22
|
+
const [first] = candidates;
|
|
23
|
+
if (first === undefined)
|
|
24
|
+
return EmptyFilterPlan;
|
|
25
|
+
const schema = first.schema;
|
|
26
|
+
const fallbacks = candidates.filter(({ where }) => where === undefined);
|
|
27
|
+
const filtered = candidates.filter((candidate) => candidate.where !== undefined);
|
|
28
|
+
const [firstFiltered] = filtered;
|
|
29
|
+
if (firstFiltered === undefined) {
|
|
30
|
+
return Object.freeze({
|
|
31
|
+
select: () => Object.freeze(fallbacks.map(({ value }) => value)),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (fallbacks.length > 1) {
|
|
35
|
+
throw new Error("Event handler filtering has more than one unfiltered fallback.");
|
|
36
|
+
}
|
|
37
|
+
const path = firstFiltered.where.eventField;
|
|
38
|
+
if (filtered.some(({ where }) => where.eventField !== path)) {
|
|
39
|
+
throw new Error("Event handler filters for one receptor must use the same Event field path.");
|
|
40
|
+
}
|
|
41
|
+
if (candidates.some((candidate) => candidate.schema.typeName !== schema.typeName)) {
|
|
42
|
+
throw new Error("Event handler filtering candidates must consume the same Event type.");
|
|
43
|
+
}
|
|
44
|
+
const resolved = FilterPaths.resolve(schema, path, new StringifierRegistry(stringifiers));
|
|
45
|
+
const values = new Map();
|
|
46
|
+
for (const candidate of filtered) {
|
|
47
|
+
const parsed = resolved.stringifier.fromString(candidate.where.equals);
|
|
48
|
+
const canonical = resolved.stringifier.toString(parsed);
|
|
49
|
+
if (values.has(canonical)) {
|
|
50
|
+
throw new Error(`Event handler filtering has duplicate canonical value ${JSON.stringify(canonical)}.`);
|
|
51
|
+
}
|
|
52
|
+
values.set(canonical, Object.freeze({ value: candidate.value, canonical }));
|
|
53
|
+
}
|
|
54
|
+
const fallback = fallbacks[0]?.value;
|
|
55
|
+
return Object.freeze({
|
|
56
|
+
select(message) {
|
|
57
|
+
const actual = FilterPaths.read(message, resolved.fields);
|
|
58
|
+
if (actual.present) {
|
|
59
|
+
const canonical = resolved.stringifier.toString(actual.value);
|
|
60
|
+
const match = values.get(canonical);
|
|
61
|
+
if (match !== undefined)
|
|
62
|
+
return Object.freeze([match.value]);
|
|
63
|
+
}
|
|
64
|
+
return Object.freeze(fallback === undefined ? [] : [fallback]);
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
const EmptyFilterPlan = Object.freeze({
|
|
70
|
+
select: () => Object.freeze([]),
|
|
71
|
+
});
|
|
72
|
+
const FilterPaths = Object.freeze({
|
|
73
|
+
resolve(schema, path, stringifiers) {
|
|
74
|
+
const names = path.split(".");
|
|
75
|
+
if (names.some((name) => name.length === 0)) {
|
|
76
|
+
throw new Error(`Event handler filter path ${JSON.stringify(path)} is malformed.`);
|
|
77
|
+
}
|
|
78
|
+
const fields = [];
|
|
79
|
+
let message = schema;
|
|
80
|
+
names.forEach((name, index) => {
|
|
81
|
+
const field = message.fields.find((candidate) => candidate.name === name);
|
|
82
|
+
if (field === undefined) {
|
|
83
|
+
throw new Error(`Event handler filter path ${JSON.stringify(path)} has unknown field ${JSON.stringify(name)}.`);
|
|
84
|
+
}
|
|
85
|
+
if (field.fieldKind === "list" || field.fieldKind === "map") {
|
|
86
|
+
throw new Error(`Event handler filter path ${JSON.stringify(path)} has an unsupported repeated or map field.`);
|
|
87
|
+
}
|
|
88
|
+
fields.push(field);
|
|
89
|
+
if (index < names.length - 1) {
|
|
90
|
+
if (field.fieldKind !== "message") {
|
|
91
|
+
throw new Error(`Event handler filter path ${JSON.stringify(path)} intermediate field must be a message.`);
|
|
92
|
+
}
|
|
93
|
+
message = field.message;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
const terminal = fields.at(-1);
|
|
97
|
+
if (terminal === undefined) {
|
|
98
|
+
throw new Error("Event handler filter path must not be empty.");
|
|
99
|
+
}
|
|
100
|
+
return Object.freeze({
|
|
101
|
+
fields: Object.freeze(fields),
|
|
102
|
+
stringifier: stringifiers.forField(terminal),
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
read(message, fields) {
|
|
106
|
+
let current = message;
|
|
107
|
+
for (const field of fields) {
|
|
108
|
+
if (typeof current !== "object" || current === null)
|
|
109
|
+
return { present: false };
|
|
110
|
+
const record = current;
|
|
111
|
+
const value = field.oneof === undefined
|
|
112
|
+
? record[field.localName]
|
|
113
|
+
: FilterPaths.oneofValue(record, field.oneof.localName, field.localName);
|
|
114
|
+
if (value === undefined)
|
|
115
|
+
return { present: false };
|
|
116
|
+
current = value;
|
|
117
|
+
}
|
|
118
|
+
return { present: true, value: current };
|
|
119
|
+
},
|
|
120
|
+
oneofValue(record, oneofName, fieldName) {
|
|
121
|
+
const oneof = record[oneofName];
|
|
122
|
+
if (typeof oneof !== "object" || oneof === null)
|
|
123
|
+
return undefined;
|
|
124
|
+
const value = oneof;
|
|
125
|
+
return value.case === fieldName ? value.value : undefined;
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=event-handler-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-handler-filter.js","sourceRoot":"","sources":["../../src/handler/event-handler-filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { type EntityClass, type EntityHandlersMetadata, type EventApplicationHandlerMetadata, type EventReactionHandlerMetadata, type EventSubscriptionHandlerMetadata, type HandlerMetadataRegistryLookup, type RegisteredHandlerMetadata } from "./handler-metadata.js";
|
|
2
|
+
import type { EntityMetadata } from "../entity/entity-metadata.js";
|
|
3
|
+
/**
|
|
4
|
+
* Event subscriber entry exposed by event registration readiness lookups.
|
|
5
|
+
*/
|
|
6
|
+
export interface EventRegistrationSubscriberMetadata {
|
|
7
|
+
/**
|
|
8
|
+
* Fully qualified event message type name subscribed to by one entity handler.
|
|
9
|
+
*/
|
|
10
|
+
readonly eventFullTypeName: string;
|
|
11
|
+
/**
|
|
12
|
+
* Entity handler metadata object that declared the event subscriber.
|
|
13
|
+
*/
|
|
14
|
+
readonly entityHandlers: EntityHandlersMetadata;
|
|
15
|
+
/**
|
|
16
|
+
* Entity class that owns the event subscriber method.
|
|
17
|
+
*/
|
|
18
|
+
readonly entityType: EntityClass;
|
|
19
|
+
/**
|
|
20
|
+
* Descriptor-derived entity metadata for the subscriber state type.
|
|
21
|
+
*/
|
|
22
|
+
readonly entity: EntityMetadata;
|
|
23
|
+
/**
|
|
24
|
+
* Event subscription handler metadata declared by the entity.
|
|
25
|
+
*/
|
|
26
|
+
readonly handler: EventSubscriptionHandlerMetadata;
|
|
27
|
+
/**
|
|
28
|
+
* Original registered handler entry from the handler metadata registry.
|
|
29
|
+
*/
|
|
30
|
+
readonly registeredHandler: RegisteredHandlerMetadata<EventSubscriptionHandlerMetadata>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Event reactor entry exposed by event registration readiness lookups.
|
|
34
|
+
*/
|
|
35
|
+
export interface EventRegistrationReactorMetadata {
|
|
36
|
+
/**
|
|
37
|
+
* Fully qualified event message type name reacted to by one entity handler.
|
|
38
|
+
*/
|
|
39
|
+
readonly eventFullTypeName: string;
|
|
40
|
+
/**
|
|
41
|
+
* Entity handler metadata object that declared the event reactor.
|
|
42
|
+
*/
|
|
43
|
+
readonly entityHandlers: EntityHandlersMetadata;
|
|
44
|
+
/**
|
|
45
|
+
* Entity class that owns the event reactor method.
|
|
46
|
+
*/
|
|
47
|
+
readonly entityType: EntityClass;
|
|
48
|
+
/**
|
|
49
|
+
* Descriptor-derived entity metadata for the reactor state type.
|
|
50
|
+
*/
|
|
51
|
+
readonly entity: EntityMetadata;
|
|
52
|
+
/**
|
|
53
|
+
* Event reaction handler metadata declared by the entity.
|
|
54
|
+
*/
|
|
55
|
+
readonly handler: EventReactionHandlerMetadata;
|
|
56
|
+
/**
|
|
57
|
+
* Original registered handler entry from the handler metadata registry.
|
|
58
|
+
*/
|
|
59
|
+
readonly registeredHandler: RegisteredHandlerMetadata<EventReactionHandlerMetadata>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Event applier entry exposed by event registration readiness lookups.
|
|
63
|
+
*/
|
|
64
|
+
export interface EventRegistrationApplicationMetadata {
|
|
65
|
+
/**
|
|
66
|
+
* Fully qualified event message type name applied by one entity handler.
|
|
67
|
+
*/
|
|
68
|
+
readonly eventFullTypeName: string;
|
|
69
|
+
/**
|
|
70
|
+
* Entity state full type name that owns the event applier.
|
|
71
|
+
*/
|
|
72
|
+
readonly stateTypeName: string;
|
|
73
|
+
/**
|
|
74
|
+
* Entity handler metadata object that declared the event applier.
|
|
75
|
+
*/
|
|
76
|
+
readonly entityHandlers: EntityHandlersMetadata;
|
|
77
|
+
/**
|
|
78
|
+
* Entity class that owns the event applier method.
|
|
79
|
+
*/
|
|
80
|
+
readonly entityType: EntityClass;
|
|
81
|
+
/**
|
|
82
|
+
* Descriptor-derived entity metadata for the applier state type.
|
|
83
|
+
*/
|
|
84
|
+
readonly entity: EntityMetadata;
|
|
85
|
+
/**
|
|
86
|
+
* Event application handler metadata declared by the entity.
|
|
87
|
+
*/
|
|
88
|
+
readonly handler: EventApplicationHandlerMetadata;
|
|
89
|
+
/**
|
|
90
|
+
* Original registered handler entry from the handler metadata registry.
|
|
91
|
+
*/
|
|
92
|
+
readonly registeredHandler: RegisteredHandlerMetadata<EventApplicationHandlerMetadata>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Read-only event registration readiness lookup surface.
|
|
96
|
+
*/
|
|
97
|
+
export interface EventRegistrationReadinessLookup {
|
|
98
|
+
/**
|
|
99
|
+
* Returns registered event message type names in deterministic order.
|
|
100
|
+
*
|
|
101
|
+
* @returns A fresh frozen list of event message type names.
|
|
102
|
+
*/
|
|
103
|
+
eventTypeNames(): readonly string[];
|
|
104
|
+
/**
|
|
105
|
+
* Finds subscriber metadata for an event message type in registry order.
|
|
106
|
+
*
|
|
107
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
108
|
+
* @returns A fresh frozen list of subscriber metadata.
|
|
109
|
+
*/
|
|
110
|
+
findEventSubscribers(eventTypeName: string): readonly EventRegistrationSubscriberMetadata[];
|
|
111
|
+
/**
|
|
112
|
+
* Finds reactor metadata for an event message type in registry order.
|
|
113
|
+
*
|
|
114
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
115
|
+
* @returns A fresh frozen list of reactor metadata.
|
|
116
|
+
*/
|
|
117
|
+
findEventReactors(eventTypeName: string): readonly EventRegistrationReactorMetadata[];
|
|
118
|
+
/**
|
|
119
|
+
* Finds applier metadata for an event message type in registry order.
|
|
120
|
+
*
|
|
121
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
122
|
+
* @returns A fresh frozen list of applier metadata.
|
|
123
|
+
*/
|
|
124
|
+
findEventApplications(eventTypeName: string): readonly EventRegistrationApplicationMetadata[];
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Metadata-only event registration readiness derived from handler metadata.
|
|
128
|
+
*
|
|
129
|
+
* The surface mirrors the JVM event-dispatcher registration shape only far
|
|
130
|
+
* enough for later runtime slices to ask which event message types have
|
|
131
|
+
* subscribers, reactors, or appliers. Subscribers and reactors intentionally
|
|
132
|
+
* preserve Spine fan-out semantics by returning all registered receivers for
|
|
133
|
+
* the event type. Event applier duplicate policy remains owned by
|
|
134
|
+
* `HandlerMetadataRegistry`, where uniqueness is per entity state and event
|
|
135
|
+
* type. The current TypeScript handler metadata does not identify external
|
|
136
|
+
* events, so domestic/external event classification is deferred.
|
|
137
|
+
*
|
|
138
|
+
* This surface does not publish, route, dispatch, invoke, store, import,
|
|
139
|
+
* deliver, subscribe to command results, or acknowledge events.
|
|
140
|
+
*/
|
|
141
|
+
export declare class EventRegistrationReadiness implements EventRegistrationReadinessLookup {
|
|
142
|
+
#private;
|
|
143
|
+
private constructor();
|
|
144
|
+
/**
|
|
145
|
+
* Builds readiness from an already validated handler metadata registry lookup.
|
|
146
|
+
*
|
|
147
|
+
* @param registry Source of entity handler metadata.
|
|
148
|
+
* @returns Frozen event registration readiness.
|
|
149
|
+
*/
|
|
150
|
+
static fromRegistry(registry: HandlerMetadataRegistryLookup): EventRegistrationReadiness;
|
|
151
|
+
/**
|
|
152
|
+
* Builds readiness from entity handler metadata.
|
|
153
|
+
*
|
|
154
|
+
* Duplicate event application validation is intentionally delegated to
|
|
155
|
+
* `HandlerMetadataRegistry`. Subscriber and reactor fan-out is retained.
|
|
156
|
+
*
|
|
157
|
+
* @param entityHandlers Entity handler metadata to validate and index.
|
|
158
|
+
* @returns Frozen event registration readiness.
|
|
159
|
+
*/
|
|
160
|
+
static fromEntityHandlers(entityHandlers: Iterable<EntityHandlersMetadata>): EventRegistrationReadiness;
|
|
161
|
+
/**
|
|
162
|
+
* Returns registered event message type names in deterministic order.
|
|
163
|
+
*
|
|
164
|
+
* @returns A fresh frozen list of event message type names.
|
|
165
|
+
*/
|
|
166
|
+
eventTypeNames(): readonly string[];
|
|
167
|
+
/**
|
|
168
|
+
* Finds subscriber metadata for an event message type in registry order.
|
|
169
|
+
*
|
|
170
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
171
|
+
* @returns A fresh frozen list of subscriber metadata.
|
|
172
|
+
*/
|
|
173
|
+
findEventSubscribers(eventTypeName: string): readonly EventRegistrationSubscriberMetadata[];
|
|
174
|
+
/**
|
|
175
|
+
* Finds reactor metadata for an event message type in registry order.
|
|
176
|
+
*
|
|
177
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
178
|
+
* @returns A fresh frozen list of reactor metadata.
|
|
179
|
+
*/
|
|
180
|
+
findEventReactors(eventTypeName: string): readonly EventRegistrationReactorMetadata[];
|
|
181
|
+
/**
|
|
182
|
+
* Finds applier metadata for an event message type in registry order.
|
|
183
|
+
*
|
|
184
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
185
|
+
* @returns A fresh frozen list of applier metadata.
|
|
186
|
+
*/
|
|
187
|
+
findEventApplications(eventTypeName: string): readonly EventRegistrationApplicationMetadata[];
|
|
188
|
+
/**
|
|
189
|
+
* Checks whether a value was created by this module's readiness factories.
|
|
190
|
+
*
|
|
191
|
+
* @param value Value to test for readiness authenticity.
|
|
192
|
+
* @returns `true` when the value is an authentic event registration readiness instance.
|
|
193
|
+
*/
|
|
194
|
+
static isAuthentic(value: unknown): value is EventRegistrationReadiness;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=event-registration-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-registration-readiness.d.ts","sourceRoot":"","sources":["../../src/handler/event-registration-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,187 @@
|
|
|
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 { HandlerMetadataRegistry, } from "./handler-metadata.js";
|
|
15
|
+
import { ReadinessMetadata } from "./registration-readiness-metadata.js";
|
|
16
|
+
const eventRegistrationReadinessToken = Symbol("eventRegistrationReadinessToken");
|
|
17
|
+
const authenticEventRegistrationReadiness = new WeakSet();
|
|
18
|
+
/**
|
|
19
|
+
* Metadata-only event registration readiness derived from handler metadata.
|
|
20
|
+
*
|
|
21
|
+
* The surface mirrors the JVM event-dispatcher registration shape only far
|
|
22
|
+
* enough for later runtime slices to ask which event message types have
|
|
23
|
+
* subscribers, reactors, or appliers. Subscribers and reactors intentionally
|
|
24
|
+
* preserve Spine fan-out semantics by returning all registered receivers for
|
|
25
|
+
* the event type. Event applier duplicate policy remains owned by
|
|
26
|
+
* `HandlerMetadataRegistry`, where uniqueness is per entity state and event
|
|
27
|
+
* type. The current TypeScript handler metadata does not identify external
|
|
28
|
+
* events, so domestic/external event classification is deferred.
|
|
29
|
+
*
|
|
30
|
+
* This surface does not publish, route, dispatch, invoke, store, import,
|
|
31
|
+
* deliver, subscribe to command results, or acknowledge events.
|
|
32
|
+
*/
|
|
33
|
+
export class EventRegistrationReadiness {
|
|
34
|
+
#eventFullTypeNames;
|
|
35
|
+
#subscribersByTypeName;
|
|
36
|
+
#reactorsByTypeName;
|
|
37
|
+
#applicationsByTypeName;
|
|
38
|
+
constructor(authenticityToken, eventFullTypeNames, subscribersByTypeName, reactorsByTypeName, applicationsByTypeName) {
|
|
39
|
+
if (authenticityToken !== eventRegistrationReadinessToken) {
|
|
40
|
+
throw new TypeError("EventRegistrationReadiness instances must be created by the package factory methods.");
|
|
41
|
+
}
|
|
42
|
+
this.#eventFullTypeNames = Object.freeze([...eventFullTypeNames]);
|
|
43
|
+
this.#subscribersByTypeName = ReadinessMetadata.copyMap(subscribersByTypeName);
|
|
44
|
+
this.#reactorsByTypeName = ReadinessMetadata.copyMap(reactorsByTypeName);
|
|
45
|
+
this.#applicationsByTypeName = ReadinessMetadata.copyMap(applicationsByTypeName);
|
|
46
|
+
authenticEventRegistrationReadiness.add(this);
|
|
47
|
+
Object.freeze(this);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Builds readiness from an already validated handler metadata registry lookup.
|
|
51
|
+
*
|
|
52
|
+
* @param registry Source of entity handler metadata.
|
|
53
|
+
* @returns Frozen event registration readiness.
|
|
54
|
+
*/
|
|
55
|
+
static fromRegistry(registry) {
|
|
56
|
+
const validatedRegistry = new HandlerMetadataRegistry(registry.listEntityHandlers());
|
|
57
|
+
const eventFullTypeNames = new Set();
|
|
58
|
+
const subscribersByTypeName = new Map();
|
|
59
|
+
const reactorsByTypeName = new Map();
|
|
60
|
+
const applicationsByTypeName = new Map();
|
|
61
|
+
for (const entry of validatedRegistry.findHandlersByKind("event-subscription")) {
|
|
62
|
+
const eventFullTypeName = entry.handler.messageFullTypeName;
|
|
63
|
+
eventFullTypeNames.add(eventFullTypeName);
|
|
64
|
+
EventRegistrationReadiness.#push(subscribersByTypeName, eventFullTypeName, EventRegistrationReadiness.#createSubscriber(eventFullTypeName, entry));
|
|
65
|
+
}
|
|
66
|
+
for (const entry of validatedRegistry.findHandlersByKind("event-reaction")) {
|
|
67
|
+
const eventFullTypeName = entry.handler.messageFullTypeName;
|
|
68
|
+
eventFullTypeNames.add(eventFullTypeName);
|
|
69
|
+
EventRegistrationReadiness.#push(reactorsByTypeName, eventFullTypeName, EventRegistrationReadiness.#createReactor(eventFullTypeName, entry));
|
|
70
|
+
}
|
|
71
|
+
for (const entry of validatedRegistry.findHandlersByKind("event-application")) {
|
|
72
|
+
const eventFullTypeName = entry.handler.messageFullTypeName;
|
|
73
|
+
eventFullTypeNames.add(eventFullTypeName);
|
|
74
|
+
EventRegistrationReadiness.#push(applicationsByTypeName, eventFullTypeName, EventRegistrationReadiness.#createApplication(eventFullTypeName, entry));
|
|
75
|
+
}
|
|
76
|
+
return new EventRegistrationReadiness(eventRegistrationReadinessToken, [...eventFullTypeNames].sort((left, right) => ReadinessMetadata.compareTypeNames(left, right)), subscribersByTypeName, reactorsByTypeName, applicationsByTypeName);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Builds readiness from entity handler metadata.
|
|
80
|
+
*
|
|
81
|
+
* Duplicate event application validation is intentionally delegated to
|
|
82
|
+
* `HandlerMetadataRegistry`. Subscriber and reactor fan-out is retained.
|
|
83
|
+
*
|
|
84
|
+
* @param entityHandlers Entity handler metadata to validate and index.
|
|
85
|
+
* @returns Frozen event registration readiness.
|
|
86
|
+
*/
|
|
87
|
+
static fromEntityHandlers(entityHandlers) {
|
|
88
|
+
return EventRegistrationReadiness.fromRegistry(new HandlerMetadataRegistry(entityHandlers));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Returns registered event message type names in deterministic order.
|
|
92
|
+
*
|
|
93
|
+
* @returns A fresh frozen list of event message type names.
|
|
94
|
+
*/
|
|
95
|
+
eventTypeNames() {
|
|
96
|
+
return Object.freeze([...this.#eventFullTypeNames]);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Finds subscriber metadata for an event message type in registry order.
|
|
100
|
+
*
|
|
101
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
102
|
+
* @returns A fresh frozen list of subscriber metadata.
|
|
103
|
+
*/
|
|
104
|
+
findEventSubscribers(eventTypeName) {
|
|
105
|
+
return Object.freeze((this.#subscribersByTypeName.get(eventTypeName) ?? []).map((subscriber) => EventRegistrationReadiness.#copySubscriber(subscriber)));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Finds reactor metadata for an event message type in registry order.
|
|
109
|
+
*
|
|
110
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
111
|
+
* @returns A fresh frozen list of reactor metadata.
|
|
112
|
+
*/
|
|
113
|
+
findEventReactors(eventTypeName) {
|
|
114
|
+
return Object.freeze((this.#reactorsByTypeName.get(eventTypeName) ?? []).map((reactor) => EventRegistrationReadiness.#copyReactor(reactor)));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Finds applier metadata for an event message type in registry order.
|
|
118
|
+
*
|
|
119
|
+
* @param eventTypeName Fully qualified event message type name.
|
|
120
|
+
* @returns A fresh frozen list of applier metadata.
|
|
121
|
+
*/
|
|
122
|
+
findEventApplications(eventTypeName) {
|
|
123
|
+
return Object.freeze((this.#applicationsByTypeName.get(eventTypeName) ?? []).map((application) => EventRegistrationReadiness.#copyApplication(application)));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Checks whether a value was created by this module's readiness factories.
|
|
127
|
+
*
|
|
128
|
+
* @param value Value to test for readiness authenticity.
|
|
129
|
+
* @returns `true` when the value is an authentic event registration readiness instance.
|
|
130
|
+
*/
|
|
131
|
+
static isAuthentic(value) {
|
|
132
|
+
return (value !== null && typeof value === "object" && authenticEventRegistrationReadiness.has(value));
|
|
133
|
+
}
|
|
134
|
+
static #createSubscriber(eventFullTypeName, registeredHandler) {
|
|
135
|
+
const fields = ReadinessMetadata.create(registeredHandler);
|
|
136
|
+
return Object.freeze({
|
|
137
|
+
eventFullTypeName,
|
|
138
|
+
...fields,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
static #copySubscriber(subscriber) {
|
|
142
|
+
const fields = ReadinessMetadata.copy(subscriber.registeredHandler);
|
|
143
|
+
return Object.freeze({
|
|
144
|
+
eventFullTypeName: subscriber.eventFullTypeName,
|
|
145
|
+
...fields,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
static #createReactor(eventFullTypeName, registeredHandler) {
|
|
149
|
+
const fields = ReadinessMetadata.create(registeredHandler);
|
|
150
|
+
return Object.freeze({
|
|
151
|
+
eventFullTypeName,
|
|
152
|
+
...fields,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
static #copyReactor(reactor) {
|
|
156
|
+
const fields = ReadinessMetadata.copy(reactor.registeredHandler);
|
|
157
|
+
return Object.freeze({
|
|
158
|
+
eventFullTypeName: reactor.eventFullTypeName,
|
|
159
|
+
...fields,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
static #createApplication(eventFullTypeName, registeredHandler) {
|
|
163
|
+
const fields = ReadinessMetadata.create(registeredHandler);
|
|
164
|
+
return Object.freeze({
|
|
165
|
+
eventFullTypeName,
|
|
166
|
+
stateTypeName: fields.entity.fullTypeName,
|
|
167
|
+
...fields,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
static #copyApplication(application) {
|
|
171
|
+
const fields = ReadinessMetadata.copy(application.registeredHandler);
|
|
172
|
+
return Object.freeze({
|
|
173
|
+
eventFullTypeName: application.eventFullTypeName,
|
|
174
|
+
stateTypeName: application.stateTypeName,
|
|
175
|
+
...fields,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
static #push(map, key, value) {
|
|
179
|
+
const values = map.get(key);
|
|
180
|
+
if (values === undefined) {
|
|
181
|
+
map.set(key, [value]);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
values.push(value);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=event-registration-readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-registration-readiness.js","sourceRoot":"","sources":["../../src/handler/event-registration-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marks the first parameter of a generated event receptor as accepting an
|
|
3
|
+
* event imported from another bounded context.
|
|
4
|
+
*
|
|
5
|
+
* This is deliberately a transparent type-only marker. The build-time handler
|
|
6
|
+
* analyzer records it in generated metadata; no runtime value or registration
|
|
7
|
+
* API is introduced.
|
|
8
|
+
*/
|
|
9
|
+
export type External<Value> = Value;
|
|
10
|
+
//# sourceMappingURL=external.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/handler/external.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=external.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/handler/external.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|