abxbus 2.4.26 → 2.4.28
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/dist/cjs/BaseEvent.d.ts +211 -0
- package/dist/cjs/{base_event.js → BaseEvent.js} +38 -30
- package/dist/cjs/BaseEvent.js.map +7 -0
- package/dist/cjs/EventBridge.d.ts +34 -0
- package/dist/cjs/EventBridge.js +295 -0
- package/dist/cjs/EventBridge.js.map +7 -0
- package/dist/cjs/EventBus.d.ts +125 -0
- package/dist/cjs/{event_bus.js → EventBus.js} +21 -21
- package/dist/cjs/EventBus.js.map +7 -0
- package/dist/cjs/EventBusMiddleware.d.ts +13 -0
- package/dist/cjs/EventBusMiddleware.js +17 -0
- package/dist/cjs/EventBusMiddleware.js.map +7 -0
- package/dist/cjs/EventHandler.d.ts +140 -0
- package/dist/cjs/{event_handler.js → EventHandler.js} +4 -4
- package/dist/cjs/EventHandler.js.map +7 -0
- package/dist/cjs/EventHistory.d.ts +45 -0
- package/dist/cjs/{event_history.js → EventHistory.js} +4 -4
- package/dist/cjs/EventHistory.js.map +7 -0
- package/dist/cjs/EventResult.d.ts +86 -0
- package/dist/cjs/{event_result.js → EventResult.js} +18 -16
- package/dist/cjs/EventResult.js.map +7 -0
- package/dist/cjs/HTTPEventBridge.d.ts +10 -0
- package/dist/cjs/HTTPEventBridge.js +37 -0
- package/dist/cjs/HTTPEventBridge.js.map +7 -0
- package/dist/cjs/JSONLEventBridge.d.ts +26 -0
- package/dist/cjs/{bridge_jsonl.js → JSONLEventBridge.js} +8 -8
- package/dist/cjs/JSONLEventBridge.js.map +7 -0
- package/dist/cjs/LockManager.d.ts +70 -0
- package/dist/cjs/{lock_manager.js → LockManager.js} +4 -4
- package/dist/cjs/LockManager.js.map +7 -0
- package/dist/cjs/NATSEventBridge.d.ts +20 -0
- package/dist/cjs/{bridge_nats.js → NATSEventBridge.js} +8 -8
- package/dist/cjs/NATSEventBridge.js.map +7 -0
- package/dist/cjs/{middleware_otel_tracing.d.ts → OtelTracingMiddleware.d.ts} +4 -4
- package/dist/cjs/{middleware_otel_tracing.js → OtelTracingMiddleware.js} +4 -4
- package/dist/cjs/OtelTracingMiddleware.js.map +7 -0
- package/dist/cjs/PostgresEventBridge.d.ts +31 -0
- package/dist/cjs/{bridge_postgres.js → PostgresEventBridge.js} +8 -8
- package/dist/cjs/PostgresEventBridge.js.map +7 -0
- package/dist/cjs/RedisEventBridge.d.ts +34 -0
- package/dist/cjs/{bridge_redis.js → RedisEventBridge.js} +8 -8
- package/dist/cjs/RedisEventBridge.js.map +7 -0
- package/dist/cjs/SQLiteEventBridge.d.ts +30 -0
- package/dist/cjs/{bridge_sqlite.js → SQLiteEventBridge.js} +8 -8
- package/dist/cjs/SQLiteEventBridge.js.map +7 -0
- package/dist/cjs/SocketEventBridge.d.ts +4 -0
- package/dist/cjs/SocketEventBridge.js +35 -0
- package/dist/cjs/SocketEventBridge.js.map +7 -0
- package/dist/cjs/base_event.d.ts +2 -2
- package/dist/cjs/bridges.d.ts +9 -49
- package/dist/cjs/bridges.js +16 -303
- package/dist/cjs/bridges.js.map +2 -2
- package/dist/cjs/event_handler.d.ts +0 -1
- package/dist/cjs/events_suck.d.ts +2 -2
- package/dist/cjs/events_suck.js +4 -4
- package/dist/cjs/events_suck.js.map +2 -2
- package/dist/cjs/index.d.ts +15 -14
- package/dist/cjs/index.js +24 -24
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/logging.d.ts +2 -2
- package/dist/cjs/logging.js +7 -7
- package/dist/cjs/logging.js.map +2 -2
- package/dist/cjs/middlewares.d.ts +1 -13
- package/dist/cjs/middlewares.js.map +1 -1
- package/dist/cjs/types.d.ts +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/{base_event.js → BaseEvent.js} +20 -12
- package/dist/esm/BaseEvent.js.map +7 -0
- package/dist/esm/EventBridge.js +275 -0
- package/dist/esm/EventBridge.js.map +7 -0
- package/dist/esm/{event_bus.js → EventBus.js} +5 -5
- package/dist/esm/EventBus.js.map +7 -0
- package/dist/esm/EventBusMiddleware.js +1 -0
- package/dist/esm/EventBusMiddleware.js.map +7 -0
- package/dist/esm/{event_handler.js → EventHandler.js} +1 -1
- package/dist/esm/EventHandler.js.map +7 -0
- package/dist/esm/{event_history.js → EventHistory.js} +1 -1
- package/dist/esm/EventHistory.js.map +7 -0
- package/dist/esm/{event_result.js → EventResult.js} +7 -5
- package/dist/esm/EventResult.js.map +7 -0
- package/dist/esm/HTTPEventBridge.js +17 -0
- package/dist/esm/HTTPEventBridge.js.map +7 -0
- package/dist/esm/{bridge_jsonl.js → JSONLEventBridge.js} +3 -3
- package/dist/esm/JSONLEventBridge.js.map +7 -0
- package/dist/esm/{lock_manager.js → LockManager.js} +1 -1
- package/dist/esm/LockManager.js.map +7 -0
- package/dist/esm/{bridge_nats.js → NATSEventBridge.js} +3 -3
- package/dist/esm/NATSEventBridge.js.map +7 -0
- package/dist/esm/{middleware_otel_tracing.js → OtelTracingMiddleware.js} +1 -1
- package/dist/esm/OtelTracingMiddleware.js.map +7 -0
- package/dist/esm/{bridge_postgres.js → PostgresEventBridge.js} +3 -3
- package/dist/esm/PostgresEventBridge.js.map +7 -0
- package/dist/esm/{bridge_redis.js → RedisEventBridge.js} +3 -3
- package/dist/esm/RedisEventBridge.js.map +7 -0
- package/dist/esm/{bridge_sqlite.js → SQLiteEventBridge.js} +3 -3
- package/dist/esm/SQLiteEventBridge.js.map +7 -0
- package/dist/esm/SocketEventBridge.js +15 -0
- package/dist/esm/SocketEventBridge.js.map +7 -0
- package/dist/esm/bridges.js +9 -296
- package/dist/esm/bridges.js.map +2 -2
- package/dist/esm/events_suck.js +2 -2
- package/dist/esm/events_suck.js.map +1 -1
- package/dist/esm/index.js +11 -19
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/logging.js +2 -2
- package/dist/esm/logging.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/types/BaseEvent.d.ts +211 -0
- package/dist/types/EventBridge.d.ts +34 -0
- package/dist/types/EventBus.d.ts +125 -0
- package/dist/types/EventBusMiddleware.d.ts +13 -0
- package/dist/types/EventHandler.d.ts +140 -0
- package/dist/types/EventHistory.d.ts +45 -0
- package/dist/types/EventResult.d.ts +86 -0
- package/dist/types/HTTPEventBridge.d.ts +10 -0
- package/dist/types/JSONLEventBridge.d.ts +26 -0
- package/dist/types/LockManager.d.ts +70 -0
- package/dist/types/NATSEventBridge.d.ts +20 -0
- package/dist/types/{middleware_otel_tracing.d.ts → OtelTracingMiddleware.d.ts} +4 -4
- package/dist/types/PostgresEventBridge.d.ts +31 -0
- package/dist/types/RedisEventBridge.d.ts +34 -0
- package/dist/types/SQLiteEventBridge.d.ts +30 -0
- package/dist/types/SocketEventBridge.d.ts +4 -0
- package/dist/types/base_event.d.ts +2 -2
- package/dist/types/bridges.d.ts +9 -49
- package/dist/types/event_handler.d.ts +0 -1
- package/dist/types/events_suck.d.ts +2 -2
- package/dist/types/index.d.ts +15 -14
- package/dist/types/logging.d.ts +2 -2
- package/dist/types/middlewares.d.ts +1 -13
- package/dist/types/types.d.ts +1 -1
- package/package.json +52 -10
- package/src/{base_event.ts → BaseEvent.ts} +21 -13
- package/src/EventBridge.ts +332 -0
- package/src/{event_bus.ts → EventBus.ts} +6 -6
- package/src/EventBusMiddleware.ts +16 -0
- package/src/{event_handler.ts → EventHandler.ts} +2 -2
- package/src/{event_history.ts → EventHistory.ts} +1 -1
- package/src/{event_result.ts → EventResult.ts} +8 -6
- package/src/HTTPEventBridge.ts +27 -0
- package/src/{bridge_jsonl.ts → JSONLEventBridge.ts} +2 -2
- package/src/{lock_manager.ts → LockManager.ts} +2 -2
- package/src/{bridge_nats.ts → NATSEventBridge.ts} +2 -2
- package/src/{middleware_otel_tracing.ts → OtelTracingMiddleware.ts} +4 -4
- package/src/{bridge_postgres.ts → PostgresEventBridge.ts} +2 -2
- package/src/{bridge_redis.ts → RedisEventBridge.ts} +2 -2
- package/src/{bridge_sqlite.ts → SQLiteEventBridge.ts} +2 -2
- package/src/SocketEventBridge.ts +13 -0
- package/src/bridges.ts +9 -376
- package/src/events_suck.ts +2 -2
- package/src/index.ts +15 -22
- package/src/logging.ts +3 -3
- package/src/middlewares.ts +1 -16
- package/src/types.ts +1 -1
- package/dist/cjs/base_event.js.map +0 -7
- package/dist/cjs/bridge_jsonl.js.map +0 -7
- package/dist/cjs/bridge_nats.js.map +0 -7
- package/dist/cjs/bridge_postgres.js.map +0 -7
- package/dist/cjs/bridge_redis.js.map +0 -7
- package/dist/cjs/bridge_sqlite.js.map +0 -7
- package/dist/cjs/event_bus.js.map +0 -7
- package/dist/cjs/event_handler.js.map +0 -7
- package/dist/cjs/event_history.js.map +0 -7
- package/dist/cjs/event_result.js.map +0 -7
- package/dist/cjs/lock_manager.js.map +0 -7
- package/dist/cjs/middleware_otel_tracing.js.map +0 -7
- package/dist/esm/base_event.js.map +0 -7
- package/dist/esm/bridge_jsonl.js.map +0 -7
- package/dist/esm/bridge_nats.js.map +0 -7
- package/dist/esm/bridge_postgres.js.map +0 -7
- package/dist/esm/bridge_redis.js.map +0 -7
- package/dist/esm/bridge_sqlite.js.map +0 -7
- package/dist/esm/event_bus.js.map +0 -7
- package/dist/esm/event_handler.js.map +0 -7
- package/dist/esm/event_history.js.map +0 -7
- package/dist/esm/event_result.js.map +0 -7
- package/dist/esm/lock_manager.js.map +0 -7
- package/dist/esm/middleware_otel_tracing.js.map +0 -7
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { EventBus } from './EventBus.js';
|
|
3
|
+
import { EventResult } from './EventResult.js';
|
|
4
|
+
import { EventHandler } from './EventHandler.js';
|
|
5
|
+
import type { EventConcurrencyMode, EventHandlerConcurrencyMode, EventHandlerCompletionMode, Deferred } from './LockManager.js';
|
|
6
|
+
import { AsyncLock } from './LockManager.js';
|
|
7
|
+
import type { EventHandlerCallable, EventResultType } from './types.js';
|
|
8
|
+
export declare const BaseEventSchema: z.ZodObject<{
|
|
9
|
+
event_id: z.ZodString;
|
|
10
|
+
event_created_at: z.ZodString;
|
|
11
|
+
event_type: z.ZodString;
|
|
12
|
+
event_version: z.ZodDefault<z.ZodString>;
|
|
13
|
+
event_timeout: z.ZodNullable<z.ZodNumber>;
|
|
14
|
+
event_slow_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
15
|
+
event_handler_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
16
|
+
event_handler_slow_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
17
|
+
event_blocks_parent_completion: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
+
event_parent_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
19
|
+
event_path: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
20
|
+
event_result_type: z.ZodOptional<z.ZodUnknown>;
|
|
21
|
+
event_emitted_by_handler_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
22
|
+
event_pending_bus_count: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
event_status: z.ZodOptional<z.ZodEnum<{
|
|
24
|
+
pending: "pending";
|
|
25
|
+
started: "started";
|
|
26
|
+
completed: "completed";
|
|
27
|
+
}>>;
|
|
28
|
+
event_started_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
29
|
+
event_completed_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
|
+
event_results: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
31
|
+
event_concurrency: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
32
|
+
"global-serial": "global-serial";
|
|
33
|
+
"bus-serial": "bus-serial";
|
|
34
|
+
parallel: "parallel";
|
|
35
|
+
}>>>;
|
|
36
|
+
event_handler_concurrency: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
37
|
+
parallel: "parallel";
|
|
38
|
+
serial: "serial";
|
|
39
|
+
}>>>;
|
|
40
|
+
event_handler_completion: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
41
|
+
all: "all";
|
|
42
|
+
first: "first";
|
|
43
|
+
}>>>;
|
|
44
|
+
}, z.core.$loose>;
|
|
45
|
+
export type BaseEventData = z.infer<typeof BaseEventSchema>;
|
|
46
|
+
export type BaseEventJSON = BaseEventData & Record<string, unknown>;
|
|
47
|
+
type BaseEventFields = Pick<BaseEventData, 'event_id' | 'event_created_at' | 'event_type' | 'event_version' | 'event_timeout' | 'event_slow_timeout' | 'event_handler_timeout' | 'event_handler_slow_timeout' | 'event_blocks_parent_completion' | 'event_parent_id' | 'event_path' | 'event_result_type' | 'event_emitted_by_handler_id' | 'event_pending_bus_count' | 'event_status' | 'event_started_at' | 'event_completed_at' | 'event_results' | 'event_concurrency' | 'event_handler_concurrency' | 'event_handler_completion'>;
|
|
48
|
+
export type BaseEventInit<TFields extends Record<string, unknown>> = TFields & Partial<BaseEventFields>;
|
|
49
|
+
type BaseEventSchemaShape = typeof BaseEventSchema.shape;
|
|
50
|
+
export type EventSchema<TShape extends z.ZodRawShape> = z.ZodObject<BaseEventSchemaShape & TShape>;
|
|
51
|
+
type EventPayload<TShape extends z.ZodRawShape> = TShape extends Record<string, never> ? {} : z.infer<z.ZodObject<TShape>>;
|
|
52
|
+
type EventInput<TShape extends z.ZodRawShape> = z.input<EventSchema<TShape>>;
|
|
53
|
+
export type EventInit<TShape extends z.ZodRawShape> = Omit<EventInput<TShape>, keyof BaseEventFields> & Partial<BaseEventFields>;
|
|
54
|
+
type EventWithResultSchema<TResult> = BaseEvent & {
|
|
55
|
+
__event_result_type__?: TResult;
|
|
56
|
+
};
|
|
57
|
+
type ResultTypeFromEventResultTypeInput<TInput> = TInput extends z.ZodTypeAny ? z.infer<TInput> : TInput extends StringConstructor ? string : TInput extends NumberConstructor ? number : TInput extends BooleanConstructor ? boolean : TInput extends ArrayConstructor ? unknown[] : TInput extends ObjectConstructor ? Record<string, unknown> : unknown;
|
|
58
|
+
type ResultSchemaFromShape<TShape> = TShape extends {
|
|
59
|
+
event_result_type: infer S;
|
|
60
|
+
} ? ResultTypeFromEventResultTypeInput<S> : unknown;
|
|
61
|
+
type EventResultsListInclude<TEvent extends BaseEvent> = (result: EventResultType<TEvent> | undefined, event_result: EventResult<TEvent>) => boolean;
|
|
62
|
+
type EventResultsListOptions<TEvent extends BaseEvent> = {
|
|
63
|
+
timeout?: number | null;
|
|
64
|
+
include?: EventResultsListInclude<TEvent>;
|
|
65
|
+
raise_if_any?: boolean;
|
|
66
|
+
raise_if_none?: boolean;
|
|
67
|
+
};
|
|
68
|
+
type EventDoneOptions = {
|
|
69
|
+
raise_if_any?: boolean;
|
|
70
|
+
};
|
|
71
|
+
type EventResultUpdateOptions<TEvent extends BaseEvent> = {
|
|
72
|
+
eventbus?: EventBus;
|
|
73
|
+
status?: 'pending' | 'started' | 'completed' | 'error';
|
|
74
|
+
result?: EventResultType<TEvent> | BaseEvent | undefined;
|
|
75
|
+
error?: unknown;
|
|
76
|
+
};
|
|
77
|
+
export type EventFactory<TShape extends z.ZodRawShape, TResult = unknown> = {
|
|
78
|
+
(data: EventInit<TShape>): EventWithResultSchema<TResult> & EventPayload<TShape>;
|
|
79
|
+
new (data: EventInit<TShape>): EventWithResultSchema<TResult> & EventPayload<TShape>;
|
|
80
|
+
schema: EventSchema<TShape>;
|
|
81
|
+
class?: new (data: EventInit<TShape>) => EventWithResultSchema<TResult> & EventPayload<TShape>;
|
|
82
|
+
event_type?: string;
|
|
83
|
+
event_version?: string;
|
|
84
|
+
event_result_type?: z.ZodTypeAny;
|
|
85
|
+
fromJSON?: (data: unknown) => EventWithResultSchema<TResult> & EventPayload<TShape>;
|
|
86
|
+
};
|
|
87
|
+
type ZodShapeFrom<TShape extends Record<string, unknown>> = {
|
|
88
|
+
[K in keyof TShape as K extends 'event_result_type' ? never : TShape[K] extends z.ZodTypeAny ? K : never]: Extract<TShape[K], z.ZodTypeAny>;
|
|
89
|
+
};
|
|
90
|
+
export declare class BaseEvent {
|
|
91
|
+
event_id: string;
|
|
92
|
+
event_created_at: string;
|
|
93
|
+
event_type: string;
|
|
94
|
+
event_version: string;
|
|
95
|
+
event_timeout: number | null;
|
|
96
|
+
event_slow_timeout?: number | null;
|
|
97
|
+
event_handler_timeout?: number | null;
|
|
98
|
+
event_handler_slow_timeout?: number | null;
|
|
99
|
+
event_blocks_parent_completion: boolean;
|
|
100
|
+
event_parent_id: string | null;
|
|
101
|
+
event_path: string[];
|
|
102
|
+
event_result_type?: z.ZodTypeAny;
|
|
103
|
+
event_results: Map<string, EventResult<this>>;
|
|
104
|
+
event_emitted_by_handler_id: string | null;
|
|
105
|
+
event_pending_bus_count: number;
|
|
106
|
+
event_status: 'pending' | 'started' | 'completed';
|
|
107
|
+
event_started_at: string | null;
|
|
108
|
+
event_completed_at: string | null;
|
|
109
|
+
event_concurrency?: EventConcurrencyMode | null;
|
|
110
|
+
event_handler_concurrency?: EventHandlerConcurrencyMode | null;
|
|
111
|
+
event_handler_completion?: EventHandlerCompletionMode | null;
|
|
112
|
+
static event_type?: string;
|
|
113
|
+
static event_version: string;
|
|
114
|
+
static schema: z.ZodObject<{
|
|
115
|
+
event_id: z.ZodString;
|
|
116
|
+
event_created_at: z.ZodString;
|
|
117
|
+
event_type: z.ZodString;
|
|
118
|
+
event_version: z.ZodDefault<z.ZodString>;
|
|
119
|
+
event_timeout: z.ZodNullable<z.ZodNumber>;
|
|
120
|
+
event_slow_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
121
|
+
event_handler_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
122
|
+
event_handler_slow_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
123
|
+
event_blocks_parent_completion: z.ZodOptional<z.ZodBoolean>;
|
|
124
|
+
event_parent_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
125
|
+
event_path: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
126
|
+
event_result_type: z.ZodOptional<z.ZodUnknown>;
|
|
127
|
+
event_emitted_by_handler_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
128
|
+
event_pending_bus_count: z.ZodOptional<z.ZodNumber>;
|
|
129
|
+
event_status: z.ZodOptional<z.ZodEnum<{
|
|
130
|
+
pending: "pending";
|
|
131
|
+
started: "started";
|
|
132
|
+
completed: "completed";
|
|
133
|
+
}>>;
|
|
134
|
+
event_started_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
135
|
+
event_completed_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
136
|
+
event_results: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
137
|
+
event_concurrency: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
138
|
+
"global-serial": "global-serial";
|
|
139
|
+
"bus-serial": "bus-serial";
|
|
140
|
+
parallel: "parallel";
|
|
141
|
+
}>>>;
|
|
142
|
+
event_handler_concurrency: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
143
|
+
parallel: "parallel";
|
|
144
|
+
serial: "serial";
|
|
145
|
+
}>>>;
|
|
146
|
+
event_handler_completion: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
147
|
+
all: "all";
|
|
148
|
+
first: "first";
|
|
149
|
+
}>>>;
|
|
150
|
+
}, z.core.$loose>;
|
|
151
|
+
event_bus?: EventBus;
|
|
152
|
+
_event_original?: BaseEvent;
|
|
153
|
+
_event_dispatch_context?: unknown | null;
|
|
154
|
+
_event_completed_signal: Deferred<this> | null;
|
|
155
|
+
_lock_for_event_handler: AsyncLock | null;
|
|
156
|
+
constructor(data?: BaseEventInit<Record<string, unknown>>);
|
|
157
|
+
toString(): string;
|
|
158
|
+
static extend<TShape extends z.ZodRawShape>(event_type: string, shape?: TShape): EventFactory<TShape, ResultSchemaFromShape<TShape>>;
|
|
159
|
+
static extend<TShape extends Record<string, unknown>>(event_type: string, shape?: TShape): EventFactory<ZodShapeFrom<TShape>, ResultSchemaFromShape<TShape>>;
|
|
160
|
+
static fromJSON<T extends typeof BaseEvent>(this: T, data: unknown): InstanceType<T>;
|
|
161
|
+
static toJSONArray(events: Iterable<BaseEvent>): BaseEventJSON[];
|
|
162
|
+
static fromJSONArray(data: unknown): BaseEvent[];
|
|
163
|
+
toJSON(): BaseEventJSON;
|
|
164
|
+
_createSlowEventWarningTimer(): ReturnType<typeof setTimeout> | null;
|
|
165
|
+
eventResultUpdate(handler: EventHandler | EventHandlerCallable<this>, options?: EventResultUpdateOptions<this>): EventResult<this>;
|
|
166
|
+
_createPendingHandlerResults(bus: EventBus): Array<{
|
|
167
|
+
handler: EventHandler;
|
|
168
|
+
result: EventResult;
|
|
169
|
+
}>;
|
|
170
|
+
private _collectPendingResults;
|
|
171
|
+
private _isFirstModeWinningResult;
|
|
172
|
+
private _markFirstModeWinnerIfNeeded;
|
|
173
|
+
private _runHandlerWithLock;
|
|
174
|
+
_runHandlers(pending_entries?: Array<{
|
|
175
|
+
handler: EventHandler;
|
|
176
|
+
result: EventResult;
|
|
177
|
+
}>): Promise<void>;
|
|
178
|
+
_getHandlerLock(default_concurrency?: EventHandlerConcurrencyMode): AsyncLock | null;
|
|
179
|
+
_setHandlerLock(lock: AsyncLock | null): void;
|
|
180
|
+
_getDispatchContext(): unknown | null | undefined;
|
|
181
|
+
_setDispatchContext(dispatch_context: unknown | null | undefined): void;
|
|
182
|
+
get event_parent(): BaseEvent | undefined;
|
|
183
|
+
get event_children(): BaseEvent[];
|
|
184
|
+
get event_descendants(): BaseEvent[];
|
|
185
|
+
emit<T extends BaseEvent>(event: T): T;
|
|
186
|
+
_cancelPendingChildProcessing(reason: unknown): void;
|
|
187
|
+
_markRemainingFirstModeResultCancelled(winner: EventResult): void;
|
|
188
|
+
_markCancelled(cause: Error): void;
|
|
189
|
+
_notifyEventParentsOfCompletion(): void;
|
|
190
|
+
done(options?: EventDoneOptions): Promise<this>;
|
|
191
|
+
first(): Promise<EventResultType<this> | undefined>;
|
|
192
|
+
eventResultsList(include: EventResultsListInclude<this>, options?: EventResultsListOptions<this>): Promise<Array<EventResultType<this> | undefined>>;
|
|
193
|
+
eventResultsList(options?: EventResultsListOptions<this>): Promise<Array<EventResultType<this> | undefined>>;
|
|
194
|
+
eventCompleted(): Promise<this>;
|
|
195
|
+
_markBlocksParentCompletionIfAwaitedFromEmittingHandler(): void;
|
|
196
|
+
_markPending(): this;
|
|
197
|
+
eventReset(): this;
|
|
198
|
+
_markStarted(started_at?: string | null, notify_hook?: boolean): void;
|
|
199
|
+
_markCompleted(force?: boolean, notify_parents?: boolean): void;
|
|
200
|
+
private dropFromZeroHistoryBuses;
|
|
201
|
+
get event_errors(): unknown[];
|
|
202
|
+
private _isFirstModeControlError;
|
|
203
|
+
_firstProcessingError(options?: {
|
|
204
|
+
ignore_first_mode_control_errors?: boolean;
|
|
205
|
+
}): unknown | undefined;
|
|
206
|
+
get event_result(): EventResultType<this> | undefined;
|
|
207
|
+
_areAllChildrenComplete(visited?: Set<string>): boolean;
|
|
208
|
+
private _notifyDoneListeners;
|
|
209
|
+
_gc(): void;
|
|
210
|
+
}
|
|
211
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BaseEvent } from './BaseEvent.js';
|
|
2
|
+
import { EventBus } from './EventBus.js';
|
|
3
|
+
import type { EventClass, EventHandlerCallable, UntypedEventHandlerFunction } from './types.js';
|
|
4
|
+
export type EndpointScheme = 'unix' | 'http' | 'https';
|
|
5
|
+
export type ParsedEndpoint = {
|
|
6
|
+
raw: string;
|
|
7
|
+
scheme: EndpointScheme;
|
|
8
|
+
host?: string;
|
|
9
|
+
port?: number;
|
|
10
|
+
path?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const randomSuffix: () => string;
|
|
13
|
+
export declare const parseEndpoint: (raw_endpoint: string) => ParsedEndpoint;
|
|
14
|
+
export declare class EventBridge {
|
|
15
|
+
readonly send_to: ParsedEndpoint | null;
|
|
16
|
+
readonly listen_on: ParsedEndpoint | null;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
protected readonly inbound_bus: EventBus;
|
|
19
|
+
private start_promise;
|
|
20
|
+
private node_server;
|
|
21
|
+
constructor(send_to?: string | null, listen_on?: string | null, name?: string);
|
|
22
|
+
on<T extends BaseEvent>(event_pattern: EventClass<T>, handler: EventHandlerCallable<T>): void;
|
|
23
|
+
on<T extends BaseEvent>(event_pattern: string | '*', handler: UntypedEventHandlerFunction<T>): void;
|
|
24
|
+
emit<T extends BaseEvent>(event: T): Promise<void>;
|
|
25
|
+
dispatch<T extends BaseEvent>(event: T): Promise<void>;
|
|
26
|
+
start(): Promise<void>;
|
|
27
|
+
close(): Promise<void>;
|
|
28
|
+
private ensureListenerStarted;
|
|
29
|
+
private handleIncomingPayload;
|
|
30
|
+
private sendHttp;
|
|
31
|
+
private sendUnix;
|
|
32
|
+
private startHttpListener;
|
|
33
|
+
private startUnixListener;
|
|
34
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { BaseEvent, type BaseEventJSON } from './BaseEvent.js';
|
|
2
|
+
import { EventHistory } from './EventHistory.js';
|
|
3
|
+
import { EventResult } from './EventResult.js';
|
|
4
|
+
import { AsyncLock, type EventConcurrencyMode, type EventHandlerConcurrencyMode, type EventHandlerCompletionMode, LockManager } from './LockManager.js';
|
|
5
|
+
import { EventHandler, type EphemeralFindEventHandler, type EventHandlerJSON } from './EventHandler.js';
|
|
6
|
+
import type { EventBusMiddleware, EventBusMiddlewareInput } from './EventBusMiddleware.js';
|
|
7
|
+
import type { EventClass, EventHandlerCallable, EventPattern, FindOptions, UntypedEventHandlerFunction } from './types.js';
|
|
8
|
+
export type EventBusOptions = {
|
|
9
|
+
id?: string;
|
|
10
|
+
max_history_size?: number | null;
|
|
11
|
+
max_history_drop?: boolean;
|
|
12
|
+
event_concurrency?: EventConcurrencyMode | null;
|
|
13
|
+
event_timeout?: number | null;
|
|
14
|
+
event_slow_timeout?: number | null;
|
|
15
|
+
event_handler_concurrency?: EventHandlerConcurrencyMode | null;
|
|
16
|
+
event_handler_completion?: EventHandlerCompletionMode;
|
|
17
|
+
event_handler_slow_timeout?: number | null;
|
|
18
|
+
event_handler_detect_file_paths?: boolean;
|
|
19
|
+
middlewares?: EventBusMiddlewareInput[];
|
|
20
|
+
};
|
|
21
|
+
export type EventBusJSON = {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
max_history_size: number | null;
|
|
25
|
+
max_history_drop: boolean;
|
|
26
|
+
event_concurrency: EventConcurrencyMode;
|
|
27
|
+
event_timeout: number | null;
|
|
28
|
+
event_slow_timeout: number | null;
|
|
29
|
+
event_handler_concurrency: EventHandlerConcurrencyMode;
|
|
30
|
+
event_handler_completion: EventHandlerCompletionMode;
|
|
31
|
+
event_handler_slow_timeout: number | null;
|
|
32
|
+
event_handler_detect_file_paths: boolean;
|
|
33
|
+
handlers: Record<string, EventHandlerJSON>;
|
|
34
|
+
handlers_by_key: Record<string, string[]>;
|
|
35
|
+
event_history: Record<string, BaseEventJSON>;
|
|
36
|
+
pending_event_queue: string[];
|
|
37
|
+
};
|
|
38
|
+
export declare class GlobalEventBusRegistry {
|
|
39
|
+
private _bus_refs;
|
|
40
|
+
add(bus: EventBus): void;
|
|
41
|
+
discard(bus: EventBus): void;
|
|
42
|
+
has(bus: EventBus): boolean;
|
|
43
|
+
get size(): number;
|
|
44
|
+
[Symbol.iterator](): IterableIterator<EventBus>;
|
|
45
|
+
findBusById(bus_id: string): EventBus | undefined;
|
|
46
|
+
findEventById(event_id: string): BaseEvent | null;
|
|
47
|
+
}
|
|
48
|
+
export declare class EventBus {
|
|
49
|
+
private static _registry_by_constructor;
|
|
50
|
+
private static _global_event_lock_by_constructor;
|
|
51
|
+
private static getRegistryForConstructor;
|
|
52
|
+
private static getGlobalEventLockForConstructor;
|
|
53
|
+
static get all_instances(): GlobalEventBusRegistry;
|
|
54
|
+
get all_instances(): GlobalEventBusRegistry;
|
|
55
|
+
get _lock_for_event_global_serial(): AsyncLock;
|
|
56
|
+
id: string;
|
|
57
|
+
name: string;
|
|
58
|
+
event_timeout: number | null;
|
|
59
|
+
event_concurrency: EventConcurrencyMode;
|
|
60
|
+
event_handler_concurrency: EventHandlerConcurrencyMode;
|
|
61
|
+
event_handler_completion: EventHandlerCompletionMode;
|
|
62
|
+
event_handler_detect_file_paths: boolean;
|
|
63
|
+
event_handler_slow_timeout: number | null;
|
|
64
|
+
event_slow_timeout: number | null;
|
|
65
|
+
handlers: Map<string, EventHandler>;
|
|
66
|
+
handlers_by_key: Map<string, string[]>;
|
|
67
|
+
event_history: EventHistory<BaseEvent>;
|
|
68
|
+
pending_event_queue: BaseEvent[];
|
|
69
|
+
in_flight_event_ids: Set<string>;
|
|
70
|
+
runloop_running: boolean;
|
|
71
|
+
locks: LockManager;
|
|
72
|
+
find_waiters: Set<EphemeralFindEventHandler>;
|
|
73
|
+
middlewares: EventBusMiddleware[];
|
|
74
|
+
private static normalizeMiddlewares;
|
|
75
|
+
constructor(name?: string, options?: EventBusOptions);
|
|
76
|
+
toString(): string;
|
|
77
|
+
scheduleMicrotask(fn: () => void): void;
|
|
78
|
+
private _runMiddlewareHook;
|
|
79
|
+
onEventChange(event: BaseEvent, status: 'pending' | 'started' | 'completed'): Promise<void>;
|
|
80
|
+
onEventResultChange(event: BaseEvent, result: EventResult, status: 'pending' | 'started' | 'completed'): Promise<void>;
|
|
81
|
+
private _onEventChange;
|
|
82
|
+
private _onEventResultChange;
|
|
83
|
+
private _onBusHandlersChange;
|
|
84
|
+
private _finalizeEventTimeout;
|
|
85
|
+
private _createEventTimeoutError;
|
|
86
|
+
private _runHandlersWithTimeout;
|
|
87
|
+
private _markEventCompletedIfNeeded;
|
|
88
|
+
toJSON(): EventBusJSON;
|
|
89
|
+
private static _stubHandlerFn;
|
|
90
|
+
private static _upsertHandlerIndex;
|
|
91
|
+
private static _linkEventResultHandlers;
|
|
92
|
+
static fromJSON(data: unknown): EventBus;
|
|
93
|
+
get label(): string;
|
|
94
|
+
removeEventFromPendingQueue(event: BaseEvent): number;
|
|
95
|
+
isEventInFlightOrQueued(event_id: string): boolean;
|
|
96
|
+
removeEventFromHistory(event_id: string): boolean;
|
|
97
|
+
destroy(): void;
|
|
98
|
+
on<T extends BaseEvent>(event_pattern: EventClass<T>, handler: EventHandlerCallable<T>, options?: Partial<EventHandler>): EventHandler;
|
|
99
|
+
on<T extends BaseEvent>(event_pattern: string | '*', handler: UntypedEventHandlerFunction<T>, options?: Partial<EventHandler>): EventHandler;
|
|
100
|
+
off<T extends BaseEvent>(event_pattern: EventPattern<T> | '*', handler?: EventHandlerCallable<T> | string | EventHandler): void;
|
|
101
|
+
emit<T extends BaseEvent>(event: T): T;
|
|
102
|
+
dispatch<T extends BaseEvent>(event: T): T;
|
|
103
|
+
find(event_pattern: '*', options?: FindOptions<BaseEvent>): Promise<BaseEvent | null>;
|
|
104
|
+
find(event_pattern: '*', where: (event: BaseEvent) => boolean, options?: FindOptions<BaseEvent>): Promise<BaseEvent | null>;
|
|
105
|
+
find<T extends BaseEvent>(event_pattern: EventPattern<T>, options?: FindOptions<T>): Promise<T | null>;
|
|
106
|
+
find<T extends BaseEvent>(event_pattern: EventPattern<T>, where: (event: T) => boolean, options?: FindOptions<T>): Promise<T | null>;
|
|
107
|
+
private _waitForFutureMatch;
|
|
108
|
+
waitUntilIdle(timeout?: number | null): Promise<boolean>;
|
|
109
|
+
isIdle(): boolean;
|
|
110
|
+
isIdleAndQueueEmpty(): boolean;
|
|
111
|
+
eventIsChildOf(child_event: BaseEvent, parent_event: BaseEvent): boolean;
|
|
112
|
+
eventIsParentOf(parent_event: BaseEvent, child_event: BaseEvent): boolean;
|
|
113
|
+
logTree(): string;
|
|
114
|
+
findEventById(event_id: string): BaseEvent | null;
|
|
115
|
+
private _startRunloop;
|
|
116
|
+
private _processEvent;
|
|
117
|
+
_processEventImmediately<T extends BaseEvent>(event: T, handler_result?: EventResult): Promise<T>;
|
|
118
|
+
private _processEventImmediatelyAcrossBuses;
|
|
119
|
+
private _runloop;
|
|
120
|
+
_hasProcessedEvent(event: BaseEvent): boolean;
|
|
121
|
+
_getEventProxyScopedToThisBus<T extends BaseEvent>(event: T, handler_result?: EventResult): T;
|
|
122
|
+
private _resolveFindWaiters;
|
|
123
|
+
_getHandlersForEvent(event: BaseEvent): EventHandler[];
|
|
124
|
+
private _removeIndexedHandler;
|
|
125
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BaseEvent } from './BaseEvent.js';
|
|
2
|
+
import type { EventBus } from './EventBus.js';
|
|
3
|
+
import type { EventHandler } from './EventHandler.js';
|
|
4
|
+
import type { EventResult } from './EventResult.js';
|
|
5
|
+
import type { EventStatus } from './types.js';
|
|
6
|
+
export type { EventStatus } from './types.js';
|
|
7
|
+
export interface EventBusMiddleware {
|
|
8
|
+
onEventChange?(eventbus: EventBus, event: BaseEvent, status: EventStatus): void | Promise<void>;
|
|
9
|
+
onEventResultChange?(eventbus: EventBus, event: BaseEvent, event_result: EventResult, status: EventStatus): void | Promise<void>;
|
|
10
|
+
onBusHandlersChange?(eventbus: EventBus, handler: EventHandler, registered: boolean): void | Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export type EventBusMiddlewareCtor = new () => EventBusMiddleware;
|
|
13
|
+
export type EventBusMiddlewareInput = EventBusMiddleware | EventBusMiddlewareCtor;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type EventHandlerCallable, type EventPattern } from './types.js';
|
|
3
|
+
import { BaseEvent } from './BaseEvent.js';
|
|
4
|
+
import type { EventResult } from './EventResult.js';
|
|
5
|
+
export type EphemeralFindEventHandler = {
|
|
6
|
+
event_pattern: string | '*';
|
|
7
|
+
matches: (event: BaseEvent) => boolean;
|
|
8
|
+
resolve: (event: BaseEvent) => void;
|
|
9
|
+
timeout_id?: ReturnType<typeof setTimeout>;
|
|
10
|
+
};
|
|
11
|
+
export declare const FindWaiterJSONSchema: z.ZodObject<{
|
|
12
|
+
event_pattern: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"*">]>;
|
|
13
|
+
has_timeout: z.ZodBoolean;
|
|
14
|
+
}, z.core.$strict>;
|
|
15
|
+
export type FindWaiterJSON = z.infer<typeof FindWaiterJSONSchema>;
|
|
16
|
+
export declare class FindWaiter {
|
|
17
|
+
static toJSON(waiter: EphemeralFindEventHandler): FindWaiterJSON;
|
|
18
|
+
static fromJSON(data: unknown, overrides?: {
|
|
19
|
+
matches?: (event: BaseEvent) => boolean;
|
|
20
|
+
resolve?: (event: BaseEvent) => void;
|
|
21
|
+
}): EphemeralFindEventHandler;
|
|
22
|
+
static toJSONArray(waiters: Iterable<EphemeralFindEventHandler>): FindWaiterJSON[];
|
|
23
|
+
static fromJSONArray(data: unknown, overrides?: {
|
|
24
|
+
matches?: (event: BaseEvent) => boolean;
|
|
25
|
+
resolve?: (event: BaseEvent) => void;
|
|
26
|
+
}): EphemeralFindEventHandler[];
|
|
27
|
+
}
|
|
28
|
+
export declare const EventHandlerJSONSchema: z.ZodObject<{
|
|
29
|
+
id: z.ZodString;
|
|
30
|
+
eventbus_name: z.ZodString;
|
|
31
|
+
eventbus_id: z.ZodString;
|
|
32
|
+
event_pattern: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"*">]>;
|
|
33
|
+
handler_name: z.ZodString;
|
|
34
|
+
handler_file_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
35
|
+
handler_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
36
|
+
handler_slow_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
37
|
+
handler_registered_at: z.ZodString;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
export type EventHandlerJSON = z.infer<typeof EventHandlerJSONSchema>;
|
|
40
|
+
export declare class EventHandler {
|
|
41
|
+
id: string;
|
|
42
|
+
handler: EventHandlerCallable;
|
|
43
|
+
handler_name: string;
|
|
44
|
+
handler_file_path: string | null;
|
|
45
|
+
handler_timeout?: number | null;
|
|
46
|
+
handler_slow_timeout?: number | null;
|
|
47
|
+
handler_registered_at: string;
|
|
48
|
+
event_pattern: string | '*';
|
|
49
|
+
eventbus_name: string;
|
|
50
|
+
eventbus_id: string;
|
|
51
|
+
constructor(params: {
|
|
52
|
+
id?: string;
|
|
53
|
+
handler: EventHandlerCallable;
|
|
54
|
+
handler_name: string;
|
|
55
|
+
handler_file_path?: string | null;
|
|
56
|
+
handler_timeout?: number | null;
|
|
57
|
+
handler_slow_timeout?: number | null;
|
|
58
|
+
handler_registered_at: string;
|
|
59
|
+
event_pattern: string | '*';
|
|
60
|
+
eventbus_name: string;
|
|
61
|
+
eventbus_id: string;
|
|
62
|
+
});
|
|
63
|
+
get _handler_async(): EventHandlerCallable;
|
|
64
|
+
static handlerNameFromCallable(handler: EventHandlerCallable): string;
|
|
65
|
+
static computeHandlerId(params: {
|
|
66
|
+
eventbus_id: string;
|
|
67
|
+
handler_name: string;
|
|
68
|
+
handler_file_path?: string | null;
|
|
69
|
+
handler_registered_at: string;
|
|
70
|
+
event_pattern: string | '*';
|
|
71
|
+
}): string;
|
|
72
|
+
static fromCallable<TEvent extends BaseEvent = BaseEvent>(params: {
|
|
73
|
+
handler: EventHandlerCallable<TEvent>;
|
|
74
|
+
event_pattern: EventPattern | '*';
|
|
75
|
+
eventbus_name: string;
|
|
76
|
+
eventbus_id: string;
|
|
77
|
+
detect_handler_file_path?: boolean;
|
|
78
|
+
id?: string;
|
|
79
|
+
handler_file_path?: string | null;
|
|
80
|
+
handler_timeout?: number | null;
|
|
81
|
+
handler_slow_timeout?: number | null;
|
|
82
|
+
handler_registered_at?: string;
|
|
83
|
+
}): EventHandler;
|
|
84
|
+
toString(): string;
|
|
85
|
+
_detectHandlerFilePath(): void;
|
|
86
|
+
toJSON(): EventHandlerJSON;
|
|
87
|
+
static fromJSON(data: unknown, handler?: EventHandlerCallable): EventHandler;
|
|
88
|
+
static toJSONArray(handlers: Iterable<EventHandler>): EventHandlerJSON[];
|
|
89
|
+
static fromJSONArray(data: unknown, handler?: EventHandlerCallable): EventHandler[];
|
|
90
|
+
get eventbus_label(): string;
|
|
91
|
+
}
|
|
92
|
+
export declare class TimeoutError extends Error {
|
|
93
|
+
constructor(message: string);
|
|
94
|
+
}
|
|
95
|
+
export declare class EventHandlerError extends Error {
|
|
96
|
+
event_result: EventResult;
|
|
97
|
+
timeout_seconds: number | null;
|
|
98
|
+
cause: Error;
|
|
99
|
+
constructor(message: string, params: {
|
|
100
|
+
event_result: EventResult;
|
|
101
|
+
timeout_seconds?: number | null;
|
|
102
|
+
cause: Error;
|
|
103
|
+
});
|
|
104
|
+
get event(): BaseEvent;
|
|
105
|
+
get event_type(): string;
|
|
106
|
+
get handler_name(): string;
|
|
107
|
+
get handler_id(): string;
|
|
108
|
+
get event_timeout(): number | null;
|
|
109
|
+
}
|
|
110
|
+
export declare class EventHandlerTimeoutError extends EventHandlerError {
|
|
111
|
+
constructor(message: string, params: {
|
|
112
|
+
event_result: EventResult;
|
|
113
|
+
timeout_seconds?: number | null;
|
|
114
|
+
cause?: Error;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
export declare class EventHandlerCancelledError extends EventHandlerError {
|
|
118
|
+
constructor(message: string, params: {
|
|
119
|
+
event_result: EventResult;
|
|
120
|
+
timeout_seconds?: number | null;
|
|
121
|
+
cause: Error;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
export declare class EventHandlerAbortedError extends EventHandlerError {
|
|
125
|
+
constructor(message: string, params: {
|
|
126
|
+
event_result: EventResult;
|
|
127
|
+
timeout_seconds?: number | null;
|
|
128
|
+
cause: Error;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
export declare class EventHandlerResultSchemaError extends EventHandlerError {
|
|
132
|
+
raw_value: unknown;
|
|
133
|
+
constructor(message: string, params: {
|
|
134
|
+
event_result: EventResult;
|
|
135
|
+
timeout_seconds?: number | null;
|
|
136
|
+
cause: Error;
|
|
137
|
+
raw_value: unknown;
|
|
138
|
+
});
|
|
139
|
+
get expected_schema(): any;
|
|
140
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BaseEvent } from './BaseEvent.js';
|
|
2
|
+
import type { EventPattern, FindWindow } from './types.js';
|
|
3
|
+
export type EventHistoryFindOptions = {
|
|
4
|
+
past?: FindWindow;
|
|
5
|
+
future?: FindWindow;
|
|
6
|
+
child_of?: BaseEvent | null;
|
|
7
|
+
event_is_child_of?: (event: BaseEvent, ancestor: BaseEvent) => boolean;
|
|
8
|
+
wait_for_future_match?: (event_pattern: string | '*', matches: (event: BaseEvent) => boolean, future: FindWindow) => Promise<BaseEvent | null>;
|
|
9
|
+
} & Record<string, unknown>;
|
|
10
|
+
export type EventHistoryTrimOptions<TEvent extends BaseEvent = BaseEvent> = {
|
|
11
|
+
is_event_complete?: (event: TEvent) => boolean;
|
|
12
|
+
on_remove?: (event: TEvent) => void;
|
|
13
|
+
owner_label?: string;
|
|
14
|
+
max_history_size?: number | null;
|
|
15
|
+
max_history_drop?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare class EventHistory<TEvent extends BaseEvent = BaseEvent> implements Iterable<[string, TEvent]> {
|
|
18
|
+
max_history_size: number | null;
|
|
19
|
+
max_history_drop: boolean;
|
|
20
|
+
private _events;
|
|
21
|
+
private _warned_about_dropping_uncompleted_events;
|
|
22
|
+
constructor(options?: {
|
|
23
|
+
max_history_size?: number | null;
|
|
24
|
+
max_history_drop?: boolean;
|
|
25
|
+
});
|
|
26
|
+
get size(): number;
|
|
27
|
+
[Symbol.iterator](): Iterator<[string, TEvent]>;
|
|
28
|
+
entries(): IterableIterator<[string, TEvent]>;
|
|
29
|
+
keys(): IterableIterator<string>;
|
|
30
|
+
values(): IterableIterator<TEvent>;
|
|
31
|
+
clear(): void;
|
|
32
|
+
get(event_id: string): TEvent | undefined;
|
|
33
|
+
set(event_id: string, event: TEvent): this;
|
|
34
|
+
has(event_id: string): boolean;
|
|
35
|
+
delete(event_id: string): boolean;
|
|
36
|
+
addEvent(event: TEvent): void;
|
|
37
|
+
getEvent(event_id: string): TEvent | undefined;
|
|
38
|
+
removeEvent(event_id: string): boolean;
|
|
39
|
+
hasEvent(event_id: string): boolean;
|
|
40
|
+
static normalizeEventPattern(event_pattern: EventPattern | '*'): string | '*';
|
|
41
|
+
find(event_pattern: '*', where?: (event: TEvent) => boolean, options?: EventHistoryFindOptions): Promise<TEvent | null>;
|
|
42
|
+
find<TMatch extends TEvent>(event_pattern: EventPattern<TMatch>, where?: (event: TMatch) => boolean, options?: EventHistoryFindOptions): Promise<TMatch | null>;
|
|
43
|
+
trimEventHistory(options?: EventHistoryTrimOptions<TEvent>): number;
|
|
44
|
+
private eventIsChildOf;
|
|
45
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { BaseEvent } from './BaseEvent.js';
|
|
3
|
+
import type { EventBus } from './EventBus.js';
|
|
4
|
+
import { EventHandler } from './EventHandler.js';
|
|
5
|
+
import { type HandlerLock } from './LockManager.js';
|
|
6
|
+
import type { Deferred } from './LockManager.js';
|
|
7
|
+
import type { EventResultType } from './types.js';
|
|
8
|
+
export type EventResultStatus = 'pending' | 'started' | 'completed' | 'error';
|
|
9
|
+
export declare const EventResultJSONSchema: z.ZodObject<{
|
|
10
|
+
id: z.ZodString;
|
|
11
|
+
status: z.ZodEnum<{
|
|
12
|
+
pending: "pending";
|
|
13
|
+
started: "started";
|
|
14
|
+
completed: "completed";
|
|
15
|
+
error: "error";
|
|
16
|
+
}>;
|
|
17
|
+
event_id: z.ZodString;
|
|
18
|
+
handler_id: z.ZodString;
|
|
19
|
+
handler_name: z.ZodString;
|
|
20
|
+
handler_file_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
21
|
+
handler_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
22
|
+
handler_slow_timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
23
|
+
handler_registered_at: z.ZodOptional<z.ZodString>;
|
|
24
|
+
handler_event_pattern: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"*">]>>;
|
|
25
|
+
eventbus_name: z.ZodString;
|
|
26
|
+
eventbus_id: z.ZodString;
|
|
27
|
+
started_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
28
|
+
completed_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
29
|
+
result: z.ZodOptional<z.ZodUnknown>;
|
|
30
|
+
error: z.ZodOptional<z.ZodUnknown>;
|
|
31
|
+
event_children: z.ZodArray<z.ZodString>;
|
|
32
|
+
}, z.core.$strict>;
|
|
33
|
+
export type EventResultJSON = z.infer<typeof EventResultJSONSchema>;
|
|
34
|
+
export declare class EventResult<TEvent extends BaseEvent = BaseEvent> {
|
|
35
|
+
id: string;
|
|
36
|
+
status: EventResultStatus;
|
|
37
|
+
event: TEvent;
|
|
38
|
+
handler: EventHandler;
|
|
39
|
+
started_at: string | null;
|
|
40
|
+
completed_at: string | null;
|
|
41
|
+
result?: EventResultType<TEvent>;
|
|
42
|
+
error?: unknown;
|
|
43
|
+
event_children: BaseEvent[];
|
|
44
|
+
_abort: Deferred<never> | null;
|
|
45
|
+
_lock: HandlerLock | null;
|
|
46
|
+
_queue_jump_pause_releases: Map<EventBus, () => void> | null;
|
|
47
|
+
constructor(params: {
|
|
48
|
+
event: TEvent;
|
|
49
|
+
handler: EventHandler;
|
|
50
|
+
});
|
|
51
|
+
toString(): string;
|
|
52
|
+
get event_id(): string;
|
|
53
|
+
get bus(): EventBus;
|
|
54
|
+
get handler_id(): string;
|
|
55
|
+
get handler_name(): string;
|
|
56
|
+
get handler_file_path(): string | null;
|
|
57
|
+
get eventbus_name(): string;
|
|
58
|
+
get eventbus_id(): string;
|
|
59
|
+
get eventbus_label(): string;
|
|
60
|
+
private getHookBus;
|
|
61
|
+
private _notifyStatusHook;
|
|
62
|
+
get value(): EventResultType<TEvent> | undefined;
|
|
63
|
+
get result_type(): TEvent['event_result_type'];
|
|
64
|
+
_linkEmittedChildEvent(child_event: BaseEvent): void;
|
|
65
|
+
get raw_value(): EventResultType<TEvent> | undefined;
|
|
66
|
+
get handler_timeout(): number | null;
|
|
67
|
+
get handler_slow_timeout(): number | null;
|
|
68
|
+
_createSlowHandlerWarningTimer(effective_timeout: number | null): ReturnType<typeof setTimeout> | null;
|
|
69
|
+
_ensureQueueJumpPause(bus: EventBus): void;
|
|
70
|
+
_releaseQueueJumpPauses(): void;
|
|
71
|
+
update(params: {
|
|
72
|
+
status?: EventResultStatus;
|
|
73
|
+
result?: EventResultType<TEvent> | BaseEvent | undefined;
|
|
74
|
+
error?: unknown;
|
|
75
|
+
}): this;
|
|
76
|
+
private _createHandlerTimeoutError;
|
|
77
|
+
private _handleHandlerError;
|
|
78
|
+
private _onHandlerExit;
|
|
79
|
+
runHandler(handler_lock: HandlerLock | null): Promise<void>;
|
|
80
|
+
_signalAbort(error: Error): void;
|
|
81
|
+
_markStarted(notify_hook?: boolean): Promise<never>;
|
|
82
|
+
_markCompleted(result: EventResultType<TEvent> | BaseEvent | undefined, notify_hook?: boolean): void;
|
|
83
|
+
_markError(error: unknown, notify_hook?: boolean): void;
|
|
84
|
+
toJSON(): EventResultJSON;
|
|
85
|
+
static fromJSON<TEvent extends BaseEvent>(event: TEvent, data: unknown): EventResult<TEvent>;
|
|
86
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EventBridge } from './EventBridge.js';
|
|
2
|
+
export type HTTPEventBridgeOptions = {
|
|
3
|
+
send_to?: string | null;
|
|
4
|
+
listen_on?: string | null;
|
|
5
|
+
name?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class HTTPEventBridge extends EventBridge {
|
|
8
|
+
constructor(send_to?: string | null, listen_on?: string | null, name?: string);
|
|
9
|
+
constructor(options?: HTTPEventBridgeOptions);
|
|
10
|
+
}
|