@zudojs/events 1.3.3 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +5 -3
  2. package/dist/eventBus/eventBus.core.d.ts +0 -1
  3. package/dist/eventBus/eventBus.core.js +0 -1
  4. package/dist/eventBus/eventBus.factory.d.ts +0 -1
  5. package/dist/eventBus/eventBus.factory.js +0 -1
  6. package/dist/eventBus/eventBus.publish.d.ts +0 -1
  7. package/dist/eventBus/eventBus.publish.js +0 -1
  8. package/dist/eventBus/eventBus.registration.d.ts +0 -1
  9. package/dist/eventBus/eventBus.registration.js +0 -1
  10. package/dist/eventBus/eventBus.type.d.ts +7 -1
  11. package/dist/eventBus/eventBus.type.js +0 -1
  12. package/dist/eventBus/index.d.ts +1 -1
  13. package/dist/eventBus/index.js +1 -1
  14. package/dist/eventBus/typed/eventBus.typed.d.ts +65 -0
  15. package/dist/eventBus/typed/eventBus.typed.js +49 -0
  16. package/dist/eventBus/typed/index.d.ts +7 -0
  17. package/dist/eventBus/typed/index.js +6 -0
  18. package/dist/eventEmitter/eventEmitter.abort.d.ts +0 -1
  19. package/dist/eventEmitter/eventEmitter.abort.js +0 -1
  20. package/dist/eventEmitter/eventEmitter.core.d.ts +0 -1
  21. package/dist/eventEmitter/eventEmitter.core.js +0 -1
  22. package/dist/eventEmitter/eventEmitter.parallel.d.ts +0 -1
  23. package/dist/eventEmitter/eventEmitter.parallel.js +0 -1
  24. package/dist/eventEmitter/eventEmitter.sequential.d.ts +0 -1
  25. package/dist/eventEmitter/eventEmitter.sequential.js +0 -1
  26. package/dist/eventEmitter/eventEmitter.type.d.ts +6 -2
  27. package/dist/eventEmitter/eventEmitter.type.js +0 -1
  28. package/dist/eventEmitter/index.d.ts +0 -1
  29. package/dist/eventEmitter/index.js +0 -1
  30. package/dist/eventErrors/eventError.base.d.ts +0 -1
  31. package/dist/eventErrors/eventError.base.js +0 -1
  32. package/dist/eventErrors/eventWarning.helper.d.ts +0 -1
  33. package/dist/eventErrors/eventWarning.helper.js +0 -1
  34. package/dist/eventErrors/index.d.ts +0 -1
  35. package/dist/eventErrors/index.js +0 -1
  36. package/dist/eventHandler/eventHandler.core.d.ts +0 -1
  37. package/dist/eventHandler/eventHandler.core.js +0 -1
  38. package/dist/eventHandler/index.d.ts +0 -1
  39. package/dist/eventHandler/index.js +0 -1
  40. package/dist/eventMiddleware/eventMiddleware.builder.d.ts +0 -1
  41. package/dist/eventMiddleware/eventMiddleware.builder.js +0 -1
  42. package/dist/eventMiddleware/eventMiddleware.helper.d.ts +0 -1
  43. package/dist/eventMiddleware/eventMiddleware.helper.js +0 -1
  44. package/dist/eventMiddleware/eventMiddleware.pipeline.d.ts +0 -1
  45. package/dist/eventMiddleware/eventMiddleware.pipeline.js +0 -1
  46. package/dist/eventMiddleware/eventMiddleware.type.d.ts +0 -1
  47. package/dist/eventMiddleware/eventMiddleware.type.js +0 -1
  48. package/dist/eventMiddleware/index.d.ts +0 -1
  49. package/dist/eventMiddleware/index.js +0 -1
  50. package/dist/eventRegistry/eventRegistry.lifecycle.d.ts +0 -1
  51. package/dist/eventRegistry/eventRegistry.lifecycle.js +0 -1
  52. package/dist/eventRegistry/eventRegistry.queries.d.ts +0 -1
  53. package/dist/eventRegistry/eventRegistry.queries.js +0 -1
  54. package/dist/eventRegistry/eventRegistry.registration.d.ts +0 -1
  55. package/dist/eventRegistry/eventRegistry.registration.js +0 -1
  56. package/dist/eventRegistry/eventRegistry.store.d.ts +0 -1
  57. package/dist/eventRegistry/eventRegistry.store.js +0 -1
  58. package/dist/eventRegistry/eventRegistry.type.d.ts +0 -1
  59. package/dist/eventRegistry/eventRegistry.type.js +0 -1
  60. package/dist/eventRegistry/index.d.ts +0 -1
  61. package/dist/eventRegistry/index.js +0 -1
  62. package/dist/eventSubscription/eventSubscription.core.d.ts +0 -1
  63. package/dist/eventSubscription/eventSubscription.core.js +0 -1
  64. package/dist/eventSubscription/index.d.ts +0 -1
  65. package/dist/eventSubscription/index.js +0 -1
  66. package/dist/eventTypes/eventDefinition.type.d.ts +0 -1
  67. package/dist/eventTypes/eventDefinition.type.js +0 -1
  68. package/dist/eventTypes/eventPayload.type.d.ts +8 -3
  69. package/dist/eventTypes/eventPayload.type.js +0 -1
  70. package/dist/eventTypes/eventSnapshot.freeze.d.ts +0 -1
  71. package/dist/eventTypes/eventSnapshot.freeze.js +0 -1
  72. package/dist/eventTypes/eventType.type.d.ts +0 -1
  73. package/dist/eventTypes/eventType.type.js +0 -1
  74. package/dist/eventTypes/index.d.ts +0 -1
  75. package/dist/eventTypes/index.js +0 -1
  76. package/dist/index.d.ts +0 -1
  77. package/dist/index.js +0 -1
  78. package/package.json +4 -4
package/README.md CHANGED
@@ -114,9 +114,11 @@ result.errors; // EventHandlerError[] (cause = the raw thrown value)
114
114
  result.shortCircuited; // true when a middleware did not call next()
115
115
  ```
116
116
 
117
- In the default `CONTINUE` error mode handler failures are collected in
118
- `result.errors` (and forwarded to the `onError` option). In `THROW` mode the first
119
- `EventHandlerError` rejects the publish. Errors thrown by a middleware itself are
117
+ In the bus's default `CONTINUE` error mode a throwing handler does not reject
118
+ `publish()`: failures are collected in `result.errors` (and forwarded to the
119
+ `onError` option). In `THROW` mode (`{ emitter: { errorMode: EventErrorMode.THROW } }`)
120
+ the first `EventHandlerError` rejects the publish. A standalone `EventEmitter`
121
+ defaults to `THROW`; only the bus defaults to `CONTINUE`. Errors thrown by a middleware itself are
120
122
  wrapped as `EventMiddlewareError`; handler errors and aborts pass through unwrapped.
121
123
 
122
124
  ## Middleware
@@ -83,4 +83,3 @@ export declare class EventBus {
83
83
  private ensureNotDisposed;
84
84
  private notify;
85
85
  }
86
- //# sourceMappingURL=eventBus.core.d.ts.map
@@ -264,4 +264,3 @@ export class EventBus {
264
264
  }
265
265
  }
266
266
  }
267
- //# sourceMappingURL=eventBus.core.js.map
@@ -11,4 +11,3 @@ export declare function createEventBus(options?: EventBusOptions): EventBus;
11
11
  * Creates and starts an EventBus.
12
12
  */
13
13
  export declare function createStartedEventBus(options?: EventBusOptions): EventBus;
14
- //# sourceMappingURL=eventBus.factory.d.ts.map
@@ -14,4 +14,3 @@ export function createEventBus(options = {}) {
14
14
  export function createStartedEventBus(options = {}) {
15
15
  return new EventBus(options).start();
16
16
  }
17
- //# sourceMappingURL=eventBus.factory.js.map
@@ -32,4 +32,3 @@ export declare function busPublish<TEvent extends Event>(event: TEvent, options:
32
32
  * Creates and publishes an event from input data.
33
33
  */
34
34
  export declare function busPublishEvent<TPayload>(input: EventInput<TPayload>, options: PublishOptions, deps: BusPublishDependencies): Promise<EventPublishResult<Event<TPayload>>>;
35
- //# sourceMappingURL=eventBus.publish.d.ts.map
@@ -121,4 +121,3 @@ export async function busPublishEvent(input, options, deps) {
121
121
  const event = createEvent(input);
122
122
  return busPublish(event, options, deps);
123
123
  }
124
- //# sourceMappingURL=eventBus.publish.js.map
@@ -62,4 +62,3 @@ export declare function isRegisteredEventMiddleware(value: unknown): value is Re
62
62
  */
63
63
  export declare function registerMiddlewareItem(item: EventBusMiddlewareItem, index: number, prefix?: string): RegisteredEventMiddleware;
64
64
  export {};
65
- //# sourceMappingURL=eventBus.registration.d.ts.map
@@ -98,4 +98,3 @@ export function registerMiddlewareItem(item, index, prefix = "bus-mw") {
98
98
  id: `${prefix}-${index}`,
99
99
  });
100
100
  }
101
- //# sourceMappingURL=eventBus.registration.js.map
@@ -25,7 +25,14 @@ export interface EventBusErrorContext {
25
25
  }
26
26
  export interface EventBusOptions {
27
27
  readonly emitter?: {
28
+ /** Dispatch mode. Defaults to SEQUENTIAL. */
28
29
  readonly mode?: EventEmitterMode;
30
+ /**
31
+ * Error mode. Defaults to CONTINUE (not the standalone emitter's
32
+ * THROW): a throwing handler does not reject `publish()`; its error is
33
+ * collected in `result.errors` and forwarded to `onError`. Pass THROW
34
+ * to have the first handler failure reject the publish instead.
35
+ */
29
36
  readonly errorMode?: EventErrorMode;
30
37
  /**
31
38
  * Deep-freeze events (payload included) before dispatch.
@@ -129,4 +136,3 @@ export interface EventBusEvent {
129
136
  readonly timestamp: Date;
130
137
  }
131
138
  export type EventBusListener = (event: EventBusEvent) => void;
132
- //# sourceMappingURL=eventBus.type.d.ts.map
@@ -16,4 +16,3 @@ export var EventBusState;
16
16
  EventBusState["STOPPED"] = "stopped";
17
17
  EventBusState["DISPOSED"] = "disposed";
18
18
  })(EventBusState || (EventBusState = {}));
19
- //# sourceMappingURL=eventBus.type.js.map
@@ -6,6 +6,6 @@
6
6
  export * from "./eventBus.type.js";
7
7
  export * from "./eventBus.core.js";
8
8
  export * from "./eventBus.factory.js";
9
+ export * from "./typed/index.js";
9
10
  export { isRegisteredEventMiddleware } from "./eventBus.registration.js";
10
11
  export { isEventEmitResult } from "./eventBus.publish.js";
11
- //# sourceMappingURL=index.d.ts.map
@@ -6,6 +6,6 @@
6
6
  export * from "./eventBus.type.js";
7
7
  export * from "./eventBus.core.js";
8
8
  export * from "./eventBus.factory.js";
9
+ export * from "./typed/index.js";
9
10
  export { isRegisteredEventMiddleware } from "./eventBus.registration.js";
10
11
  export { isEventEmitResult } from "./eventBus.publish.js";
11
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,65 @@
1
+ /**
2
+ * A payload-map-typed view over an `EventBus`.
3
+ *
4
+ * `bus.on<Event<P>>(type, handler)` lets the caller assert any payload
5
+ * type for any event type — `bus.on<Event<OrderPlaced>>("stock.low", h)`
6
+ * compiles and the handler reads fields that are not there. The typed view
7
+ * ties both ends to one payload map, so the event type selects the payload
8
+ * type on subscribe and on publish alike.
9
+ *
10
+ * @module eventBus/typed
11
+ */
12
+ import type { Event } from "../../eventTypes/eventDefinition.type.js";
13
+ import type { EventPayloadMap, PayloadOf } from "../../eventTypes/eventPayload.type.js";
14
+ import type { EventTypeOf, EventUnion } from "../../eventTypes/eventType.type.js";
15
+ import type { EventHandlerLike, EventHandlerOptions } from "../../eventHandler/eventHandler.core.js";
16
+ import type { EventSubscription } from "../../eventSubscription/eventSubscription.core.js";
17
+ import type { EventBus } from "../eventBus.core.js";
18
+ import type { EventPublishResult, PublishOptions } from "../eventBus.type.js";
19
+ /** The event a handler receives for type `TType` of map `TMap`. */
20
+ export type TypedEvent<TMap extends EventPayloadMap, TType extends EventTypeOf<TMap>> = Event<PayloadOf<TMap, TType>> & {
21
+ readonly type: TType;
22
+ };
23
+ /** Everything `publishEvent` accepts besides the type and payload. */
24
+ export type TypedPublishOptions = PublishOptions & {
25
+ readonly id?: string;
26
+ readonly source?: string;
27
+ readonly correlationId?: string;
28
+ readonly causationId?: string;
29
+ };
30
+ /**
31
+ * An `EventBus` whose subscribe and publish methods are checked against
32
+ * a payload map. Created with {@link createTypedEventBus}.
33
+ */
34
+ export interface TypedEventBus<TMap extends EventPayloadMap> {
35
+ /** The underlying bus, for everything the typed view does not cover. */
36
+ readonly bus: EventBus;
37
+ /** Subscribes to one event type; the handler receives its payload type. */
38
+ on<TType extends EventTypeOf<TMap>>(eventType: TType, handler: EventHandlerLike<TypedEvent<TMap, TType>>, options?: Omit<EventHandlerOptions, "eventType">): EventSubscription;
39
+ /** Subscribes to one event type for a single delivery. */
40
+ once<TType extends EventTypeOf<TMap>>(eventType: TType, handler: EventHandlerLike<TypedEvent<TMap, TType>>, options?: Omit<EventHandlerOptions, "eventType" | "once">): EventSubscription;
41
+ /** Subscribes to every event in the map; narrow on `event.type`. */
42
+ onAny(handler: EventHandlerLike<EventUnion<TMap>>, options?: Omit<EventHandlerOptions, "eventType">): EventSubscription;
43
+ /** Publishes an event whose payload must match its type. */
44
+ publish<TType extends EventTypeOf<TMap>>(eventType: TType, payload: PayloadOf<TMap, TType>, options?: TypedPublishOptions): Promise<EventPublishResult<TypedEvent<TMap, TType>>>;
45
+ }
46
+ /**
47
+ * Wraps a bus in a {@link TypedEventBus} for payload map `TMap`.
48
+ *
49
+ * The wrapper adds no runtime behaviour: handlers and events go straight to
50
+ * `bus`, and the bus can still be used untyped alongside it.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * interface OrderEvents {
55
+ * "order.placed": { orderId: string; total: number };
56
+ * "stock.low": { sku: string };
57
+ * }
58
+ *
59
+ * const orders = createTypedEventBus<OrderEvents>(createEventBus());
60
+ *
61
+ * orders.on("order.placed", (event) => event.payload.total); // number
62
+ * await orders.publish("stock.low", { sku: "A1" });
63
+ * ```
64
+ */
65
+ export declare function createTypedEventBus<TMap extends EventPayloadMap>(bus: EventBus): TypedEventBus<TMap>;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * A payload-map-typed view over an `EventBus`.
3
+ *
4
+ * `bus.on<Event<P>>(type, handler)` lets the caller assert any payload
5
+ * type for any event type — `bus.on<Event<OrderPlaced>>("stock.low", h)`
6
+ * compiles and the handler reads fields that are not there. The typed view
7
+ * ties both ends to one payload map, so the event type selects the payload
8
+ * type on subscribe and on publish alike.
9
+ *
10
+ * @module eventBus/typed
11
+ */
12
+ /**
13
+ * Wraps a bus in a {@link TypedEventBus} for payload map `TMap`.
14
+ *
15
+ * The wrapper adds no runtime behaviour: handlers and events go straight to
16
+ * `bus`, and the bus can still be used untyped alongside it.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * interface OrderEvents {
21
+ * "order.placed": { orderId: string; total: number };
22
+ * "stock.low": { sku: string };
23
+ * }
24
+ *
25
+ * const orders = createTypedEventBus<OrderEvents>(createEventBus());
26
+ *
27
+ * orders.on("order.placed", (event) => event.payload.total); // number
28
+ * await orders.publish("stock.low", { sku: "A1" });
29
+ * ```
30
+ */
31
+ export function createTypedEventBus(bus) {
32
+ return Object.freeze({
33
+ bus,
34
+ on(eventType, handler, options) {
35
+ return bus.on(eventType, handler, options);
36
+ },
37
+ once(eventType, handler, options) {
38
+ return bus.once(eventType, handler, options);
39
+ },
40
+ onAny(handler, options) {
41
+ return bus.onAny(handler, options);
42
+ },
43
+ async publish(eventType, payload, options = {}) {
44
+ const { id, source, correlationId, causationId, ...publishOptions } = options;
45
+ const result = await bus.publishEvent({ type: eventType, payload, id, source, correlationId, causationId }, publishOptions);
46
+ return result;
47
+ },
48
+ });
49
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Payload-map-typed view over an `EventBus`.
3
+ *
4
+ * @module eventBus/typed
5
+ */
6
+ export { createTypedEventBus } from "./eventBus.typed.js";
7
+ export type { TypedEvent, TypedEventBus, TypedPublishOptions, } from "./eventBus.typed.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Payload-map-typed view over an `EventBus`.
3
+ *
4
+ * @module eventBus/typed
5
+ */
6
+ export { createTypedEventBus } from "./eventBus.typed.js";
@@ -14,4 +14,3 @@ export declare function createAbortError(event?: Event, results?: readonly Event
14
14
  * Determines whether an error represents an aborted dispatch.
15
15
  */
16
16
  export declare function isAbortError(error: unknown): boolean;
17
- //# sourceMappingURL=eventEmitter.abort.d.ts.map
@@ -24,4 +24,3 @@ export function isAbortError(error) {
24
24
  error !== null &&
25
25
  error.name === "AbortError"));
26
26
  }
27
- //# sourceMappingURL=eventEmitter.abort.js.map
@@ -46,4 +46,3 @@ export declare class EventEmitter {
46
46
  * Creates a new event emitter.
47
47
  */
48
48
  export declare function createEventEmitter(options?: EventEmitterOptions): EventEmitter;
49
- //# sourceMappingURL=eventEmitter.core.d.ts.map
@@ -179,4 +179,3 @@ export class EventEmitter {
179
179
  export function createEventEmitter(options = {}) {
180
180
  return new EventEmitter(options);
181
181
  }
182
- //# sourceMappingURL=eventEmitter.core.js.map
@@ -16,4 +16,3 @@ import type { DispatchHooks } from "./eventEmitter.sequential.js";
16
16
  * Executes handlers concurrently.
17
17
  */
18
18
  export declare function emitParallel<TEvent extends Event>(handlers: readonly RegisteredEventHandler<TEvent>[], event: TEvent, context: EventHandlerContext<TEvent>, errorMode: EventErrorMode, results: EventHandlerExecutionResult[], errors: EventHandlerError[], hooks: DispatchHooks): Promise<void>;
19
- //# sourceMappingURL=eventEmitter.parallel.d.ts.map
@@ -65,4 +65,3 @@ export async function emitParallel(handlers, event, context, errorMode, results,
65
65
  throw errors[0];
66
66
  }
67
67
  }
68
- //# sourceMappingURL=eventEmitter.parallel.js.map
@@ -31,4 +31,3 @@ export interface DispatchHooks {
31
31
  * returns normally.
32
32
  */
33
33
  export declare function emitSequential<TEvent extends Event>(handlers: readonly RegisteredEventHandler<TEvent>[], event: TEvent, context: EventHandlerContext<TEvent>, errorMode: EventErrorMode, results: EventHandlerExecutionResult[], errors: EventHandlerError[], hooks: DispatchHooks): Promise<void>;
34
- //# sourceMappingURL=eventEmitter.sequential.d.ts.map
@@ -62,4 +62,3 @@ export async function emitSequential(handlers, event, context, errorMode, result
62
62
  throw createAbortError(event, results, errors);
63
63
  }
64
64
  }
65
- //# sourceMappingURL=eventEmitter.sequential.js.map
@@ -20,7 +20,12 @@ export interface EventEmitterOptions {
20
20
  */
21
21
  readonly mode?: EventEmitterMode;
22
22
  /**
23
- * Error mode. Defaults to THROW.
23
+ * Error mode for a standalone emitter. Defaults to THROW: the first
24
+ * handler failure rejects `emit()`.
25
+ *
26
+ * An `EventBus` configures its emitter differently — it defaults to
27
+ * CONTINUE, so a throwing handler does not reject `publish()`; see
28
+ * `EventBusOptions.emitter.errorMode`.
24
29
  */
25
30
  readonly errorMode?: EventErrorMode;
26
31
  /**
@@ -106,4 +111,3 @@ export interface EmitterListener {
106
111
  readonly registration: RegisteredEventHandler;
107
112
  readonly subscription: EventSubscription;
108
113
  }
109
- //# sourceMappingURL=eventEmitter.type.d.ts.map
@@ -11,4 +11,3 @@ export var EventErrorMode;
11
11
  EventErrorMode["THROW"] = "throw";
12
12
  EventErrorMode["CONTINUE"] = "continue";
13
13
  })(EventErrorMode || (EventErrorMode = {}));
14
- //# sourceMappingURL=eventEmitter.type.js.map
@@ -8,4 +8,3 @@ export * from "./eventEmitter.abort.js";
8
8
  export * from "./eventEmitter.sequential.js";
9
9
  export * from "./eventEmitter.parallel.js";
10
10
  export * from "./eventEmitter.core.js";
11
- //# sourceMappingURL=index.d.ts.map
@@ -8,4 +8,3 @@ export * from "./eventEmitter.abort.js";
8
8
  export * from "./eventEmitter.sequential.js";
9
9
  export * from "./eventEmitter.parallel.js";
10
10
  export * from "./eventEmitter.core.js";
11
- //# sourceMappingURL=index.js.map
@@ -33,4 +33,3 @@ export declare class EventDispatchAbortedError extends BaseEventDispatchAbortedE
33
33
  readonly errors: readonly unknown[];
34
34
  constructor(message?: string, options?: EventDispatchAbortedErrorOptions);
35
35
  }
36
- //# sourceMappingURL=eventError.base.d.ts.map
@@ -25,4 +25,3 @@ export class EventDispatchAbortedError extends BaseEventDispatchAbortedError {
25
25
  this.errors = Object.freeze([...(options.errors ?? [])]);
26
26
  }
27
27
  }
28
- //# sourceMappingURL=eventError.base.js.map
@@ -30,4 +30,3 @@ export declare function emitEventsWarning(message: string, code: string): void;
30
30
  * @param scope - The bus or registry the observer belongs to.
31
31
  */
32
32
  export declare function warnObserverError(error: unknown, source: string, scope: object): void;
33
- //# sourceMappingURL=eventWarning.helper.d.ts.map
@@ -46,4 +46,3 @@ export function warnObserverError(error, source, scope) {
46
46
  "Configure the `onError` option to handle observer failures. " +
47
47
  "This warning is emitted once.", EVENT_OBSERVER_ERROR_WARNING_CODE);
48
48
  }
49
- //# sourceMappingURL=eventWarning.helper.js.map
@@ -4,4 +4,3 @@
4
4
  * Event system error types.
5
5
  */
6
6
  export * from "./eventError.base.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * Event system error types.
5
5
  */
6
6
  export * from "./eventError.base.js";
7
- //# sourceMappingURL=index.js.map
@@ -227,4 +227,3 @@ export declare function setEventHandlerPriority<TEvent extends Event>(handler: R
227
227
  * Creates a handler that ignores its return value.
228
228
  */
229
229
  export declare function fireAndForgetHandler<TEvent extends Event>(handler: EventHandlerLike<TEvent>): EventHandler<TEvent>;
230
- //# sourceMappingURL=eventHandler.core.d.ts.map
@@ -256,4 +256,3 @@ export function fireAndForgetHandler(handler) {
256
256
  await executeEventHandler(handler, event, context);
257
257
  };
258
258
  }
259
- //# sourceMappingURL=eventHandler.core.js.map
@@ -4,4 +4,3 @@
4
4
  * Event handler types and execution.
5
5
  */
6
6
  export * from "./eventHandler.core.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * Event handler types and execution.
5
5
  */
6
6
  export * from "./eventHandler.core.js";
7
- //# sourceMappingURL=index.js.map
@@ -44,4 +44,3 @@ export declare function disableEventMiddleware<TEvent extends Event, TResult>(mi
44
44
  * supplied AbortSignal is cancelled.
45
45
  */
46
46
  export declare function abortableEventMiddleware(options?: EventMiddlewareOptions): RegisteredEventMiddleware;
47
- //# sourceMappingURL=eventMiddleware.builder.d.ts.map
@@ -100,4 +100,3 @@ export function abortableEventMiddleware(options = {}) {
100
100
  }
101
101
  }, options);
102
102
  }
103
- //# sourceMappingURL=eventMiddleware.builder.js.map
@@ -35,4 +35,3 @@ export declare function sortEventMiddleware<TEvent extends Event, TResult>(middl
35
35
  * Creates a middleware context.
36
36
  */
37
37
  export declare function createEventMiddlewareContext<TEvent extends Event>(event: TEvent, options?: EventMiddlewarePipelineOptions): EventMiddlewareContext<TEvent>;
38
- //# sourceMappingURL=eventMiddleware.helper.d.ts.map
@@ -82,4 +82,3 @@ export function createEventMiddlewareContext(event, options = {}) {
82
82
  state: options.state ?? new Map(),
83
83
  };
84
84
  }
85
- //# sourceMappingURL=eventMiddleware.helper.js.map
@@ -21,4 +21,3 @@ import type { EventMiddlewareContext, EventMiddlewareNext, RegisteredEventMiddle
21
21
  * re-thrown untouched so callers can discriminate them.
22
22
  */
23
23
  export declare function executeEventMiddlewarePipeline<TEvent extends Event, TResult>(middleware: readonly RegisteredEventMiddleware<TEvent, TResult>[], context: EventMiddlewareContext<TEvent>, terminal: EventMiddlewareNext<TResult>): Promise<EventMiddlewarePipelineResult<TResult>>;
24
- //# sourceMappingURL=eventMiddleware.pipeline.d.ts.map
@@ -96,4 +96,3 @@ function throwIfAborted(context) {
96
96
  });
97
97
  }
98
98
  }
99
- //# sourceMappingURL=eventMiddleware.pipeline.js.map
@@ -46,4 +46,3 @@ export interface EventMiddlewarePipelineOptions {
46
46
  readonly metadata?: Readonly<Record<string, unknown>>;
47
47
  readonly state?: Map<string, unknown>;
48
48
  }
49
- //# sourceMappingURL=eventMiddleware.type.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * Event middleware type definitions for Zudojs.
3
3
  */
4
4
  export {};
5
- //# sourceMappingURL=eventMiddleware.type.js.map
@@ -7,4 +7,3 @@ export * from "./eventMiddleware.type.js";
7
7
  export * from "./eventMiddleware.helper.js";
8
8
  export * from "./eventMiddleware.builder.js";
9
9
  export * from "./eventMiddleware.pipeline.js";
10
- //# sourceMappingURL=index.d.ts.map
@@ -7,4 +7,3 @@ export * from "./eventMiddleware.type.js";
7
7
  export * from "./eventMiddleware.helper.js";
8
8
  export * from "./eventMiddleware.builder.js";
9
9
  export * from "./eventMiddleware.pipeline.js";
10
- //# sourceMappingURL=index.js.map
@@ -23,4 +23,3 @@ export declare function registryDispose(disposed: boolean, definitions: Map<Even
23
23
  * observer is never silently discarded.
24
24
  */
25
25
  export declare function registryNotify(change: EventRegistryChange, listeners: Set<EventRegistryListener>, onError?: (error: unknown, context: EventRegistryErrorContext) => void): void;
26
- //# sourceMappingURL=eventRegistry.lifecycle.d.ts.map
@@ -61,4 +61,3 @@ export function registryNotify(change, listeners, onError) {
61
61
  }
62
62
  }
63
63
  }
64
- //# sourceMappingURL=eventRegistry.lifecycle.js.map
@@ -29,4 +29,3 @@ export declare function getAllDefinitions(definitions: Map<EventType, Registered
29
29
  * Returns all handlers as an array (registration order).
30
30
  */
31
31
  export declare function getAllHandlers(handlers: Map<string, EventHandlerEntry>): readonly RegisteredEventHandler[];
32
- //# sourceMappingURL=eventRegistry.queries.d.ts.map
@@ -41,4 +41,3 @@ export function getAllDefinitions(definitions) {
41
41
  export function getAllHandlers(handlers) {
42
42
  return [...handlers.values()].map((entry) => entry.registration);
43
43
  }
44
- //# sourceMappingURL=eventRegistry.queries.js.map
@@ -34,4 +34,3 @@ export declare function registryUnregister(eventType: EventType, definitions: Ma
34
34
  * Unregisters a handler by id, cancelling its subscription.
35
35
  */
36
36
  export declare function registryUnregisterHandler(handlerId: string, handlers: Map<string, EventHandlerEntry>, ensureActive: () => void): boolean;
37
- //# sourceMappingURL=eventRegistry.registration.d.ts.map
@@ -192,4 +192,3 @@ export function registryUnregisterHandler(handlerId, handlers, ensureActive) {
192
192
  entry.subscription.unsubscribe();
193
193
  return !handlers.has(handlerId);
194
194
  }
195
- //# sourceMappingURL=eventRegistry.registration.js.map
@@ -56,4 +56,3 @@ export declare class EventRegistry implements EventHandlerStore {
56
56
  * Creates an event registry.
57
57
  */
58
58
  export declare function createEventRegistry(options?: EventRegistryOptions): EventRegistry;
59
- //# sourceMappingURL=eventRegistry.store.d.ts.map
@@ -154,4 +154,3 @@ export class EventRegistry {
154
154
  export function createEventRegistry(options = {}) {
155
155
  return new EventRegistry(options);
156
156
  }
157
- //# sourceMappingURL=eventRegistry.store.js.map
@@ -120,4 +120,3 @@ export interface EventHandlerStore {
120
120
  getHandlersForEvent(event: Event): readonly RegisteredEventHandler[];
121
121
  readonly handlerCount: number;
122
122
  }
123
- //# sourceMappingURL=eventRegistry.type.d.ts.map
@@ -13,4 +13,3 @@ export var EventRegistryChangeType;
13
13
  EventRegistryChangeType["HANDLER_REGISTERED"] = "handler.registered";
14
14
  EventRegistryChangeType["HANDLER_UNREGISTERED"] = "handler.unregistered";
15
15
  })(EventRegistryChangeType || (EventRegistryChangeType = {}));
16
- //# sourceMappingURL=eventRegistry.type.js.map
@@ -8,4 +8,3 @@ export * from "./eventRegistry.queries.js";
8
8
  export * from "./eventRegistry.registration.js";
9
9
  export * from "./eventRegistry.lifecycle.js";
10
10
  export * from "./eventRegistry.store.js";
11
- //# sourceMappingURL=index.d.ts.map
@@ -8,4 +8,3 @@ export * from "./eventRegistry.queries.js";
8
8
  export * from "./eventRegistry.registration.js";
9
9
  export * from "./eventRegistry.lifecycle.js";
10
10
  export * from "./eventRegistry.store.js";
11
- //# sourceMappingURL=index.js.map
@@ -151,4 +151,3 @@ export declare class EventSubscriptionGroup implements EventSubscription {
151
151
  * Creates an empty subscription group.
152
152
  */
153
153
  export declare function createEventSubscriptionGroup(options?: EventSubscriptionOptions): EventSubscriptionGroup;
154
- //# sourceMappingURL=eventSubscription.core.d.ts.map
@@ -185,4 +185,3 @@ export class EventSubscriptionGroup {
185
185
  export function createEventSubscriptionGroup(options = {}) {
186
186
  return new EventSubscriptionGroup([], options);
187
187
  }
188
- //# sourceMappingURL=eventSubscription.core.js.map
@@ -4,4 +4,3 @@
4
4
  * Event subscription management.
5
5
  */
6
6
  export * from "./eventSubscription.core.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * Event subscription management.
5
5
  */
6
6
  export * from "./eventSubscription.core.js";
7
- //# sourceMappingURL=index.js.map
@@ -184,4 +184,3 @@ export declare function getEventPayload<TPayload>(event: Event<TPayload>): TPayl
184
184
  * Returns a human-readable event description.
185
185
  */
186
186
  export declare function describeEvent(event: Event): string;
187
- //# sourceMappingURL=eventDefinition.type.d.ts.map
@@ -169,4 +169,3 @@ export function getEventPayload(event) {
169
169
  export function describeEvent(event) {
170
170
  return `${event.type} (${event.id})`;
171
171
  }
172
- //# sourceMappingURL=eventDefinition.type.js.map
@@ -24,9 +24,15 @@ export type JsonEventPayload = string | number | boolean | null | JsonEventPaylo
24
24
  readonly [key: string]: JsonEventPayload;
25
25
  };
26
26
  /**
27
- * Payload type map used by strongly typed event systems.
27
+ * Payload type map used by strongly typed event systems: event type
28
+ * keys to payload types.
29
+ *
30
+ * Any object type qualifies, including an `interface` — the map is only
31
+ * ever indexed by its own keys, so no string index signature is required
32
+ * of it (a `Record<string, unknown>` bound rejected interfaces with
33
+ * "Index signature for type 'string' is missing").
28
34
  */
29
- export type EventPayloadMap = Record<string, unknown>;
35
+ export type EventPayloadMap = object;
30
36
  /**
31
37
  * Extracts the payload associated with an event type.
32
38
  */
@@ -128,4 +134,3 @@ export declare function validateEventPayload<TPayload>(payload: unknown, validat
128
134
  * Returns a human-readable payload type.
129
135
  */
130
136
  export declare function describeEventPayload(payload: unknown): string;
131
- //# sourceMappingURL=eventPayload.type.d.ts.map
@@ -204,4 +204,3 @@ export function describeEventPayload(payload) {
204
204
  }
205
205
  return typeof payload;
206
206
  }
207
- //# sourceMappingURL=eventPayload.type.js.map
@@ -34,4 +34,3 @@ export declare class FrozenEventSet<T> extends Set<T> {
34
34
  * objects are passed by reference. Cycles are preserved.
35
35
  */
36
36
  export declare function createFrozenEventSnapshot<T>(value: T): T;
37
- //# sourceMappingURL=eventSnapshot.freeze.d.ts.map
@@ -114,4 +114,3 @@ function snapshot(value, seen) {
114
114
  export function createFrozenEventSnapshot(value) {
115
115
  return snapshot(value, new Map());
116
116
  }
117
- //# sourceMappingURL=eventSnapshot.freeze.js.map
@@ -186,4 +186,3 @@ export declare function tryNormalizeEventType(type: string): EventType | undefin
186
186
  * Asserts that an event type is valid.
187
187
  */
188
188
  export declare function assertEventType(type: unknown): asserts type is EventType;
189
- //# sourceMappingURL=eventType.type.d.ts.map
@@ -278,4 +278,3 @@ export function assertEventType(type) {
278
278
  throw new TypeError(`Invalid event type: "${String(type)}".`);
279
279
  }
280
280
  }
281
- //# sourceMappingURL=eventType.type.js.map
@@ -7,4 +7,3 @@ export { type EventId, type EventType, type EventTimestamp, type EventSource, ty
7
7
  export { type ObjectEventPayload, type PrimitiveEventPayload, type JsonEventPayload, type EventPayloadMap, type PayloadOf, type PayloadMap, type EventPayloadFactory, type EventPayloadOptions, isPrimitiveEventPayload, isObjectEventPayload, isJsonEventPayload, createEventPayload, createObjectEventPayload, createJsonEventPayload, cloneEventPayload, deepFreeze, stripUndefinedValues, mergeEventPayloads, staticPayload, definePayloadFactory, validateEventPayload, describeEventPayload, } from "./eventPayload.type.js";
8
8
  export { type EventTypeList, type EventTypePattern, type EventTypeOf, type EventUnion, isValidEventType, isValidEventTypePattern, normalizeEventType, normalizeEventTypePattern, tryNormalizeEventType, assertEventType, createEventType, createEventTypePattern, getEventNamespace, getEventAction, getEventTypeSegments, matchesEventType, isSameEventNamespace, isChildEventType, eventMatchesType, filterEventsByType, defineEventTypes, defineEventType, } from "./eventType.type.js";
9
9
  export { createFrozenEventSnapshot, FrozenEventDate, FrozenEventMap, FrozenEventSet, } from "./eventSnapshot.freeze.js";
10
- //# sourceMappingURL=index.d.ts.map
@@ -7,4 +7,3 @@ export { isEvent, createEventId, createEvent, defineEvent, withEventMetadata, cr
7
7
  export { isPrimitiveEventPayload, isObjectEventPayload, isJsonEventPayload, createEventPayload, createObjectEventPayload, createJsonEventPayload, cloneEventPayload, deepFreeze, stripUndefinedValues, mergeEventPayloads, staticPayload, definePayloadFactory, validateEventPayload, describeEventPayload, } from "./eventPayload.type.js";
8
8
  export { isValidEventType, isValidEventTypePattern, normalizeEventType, normalizeEventTypePattern, tryNormalizeEventType, assertEventType, createEventType, createEventTypePattern, getEventNamespace, getEventAction, getEventTypeSegments, matchesEventType, isSameEventNamespace, isChildEventType, eventMatchesType, filterEventsByType, defineEventTypes, defineEventType, } from "./eventType.type.js";
9
9
  export { createFrozenEventSnapshot, FrozenEventDate, FrozenEventMap, FrozenEventSet, } from "./eventSnapshot.freeze.js";
10
- //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -11,4 +11,3 @@ export * from "./eventMiddleware/index.js";
11
11
  export * from "./eventTypes/index.js";
12
12
  export * from "./eventSubscription/index.js";
13
13
  export * from "./eventErrors/index.js";
14
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -11,4 +11,3 @@ export * from "./eventMiddleware/index.js";
11
11
  export * from "./eventTypes/index.js";
12
12
  export * from "./eventSubscription/index.js";
13
13
  export * from "./eventErrors/index.js";
14
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zudojs/events",
3
- "version": "1.3.3",
3
+ "version": "1.4.0",
4
4
  "description": "Event-driven architecture with event bus, emitter, middleware, and registry for decoupled communication.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,9 +20,9 @@
20
20
  ],
21
21
  "sideEffects": false,
22
22
  "dependencies": {
23
- "@zudojs/constants": "1.1.4",
24
- "@zudojs/errors": "1.3.2",
25
- "@zudojs/middleware": "1.1.2"
23
+ "@zudojs/constants": "1.2.0",
24
+ "@zudojs/errors": "1.4.0",
25
+ "@zudojs/middleware": "1.1.3"
26
26
  },
27
27
  "engines": {
28
28
  "node": ">=24.0.0"