ihsm 0.0.26 → 0.1.1
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/README.md +105 -113
- package/lib/cjs/index.d.ts +5 -1394
- package/lib/cjs/index.js +53 -764
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/internal/runtime.d.ts +293 -0
- package/lib/cjs/internal/runtime.js +1906 -0
- package/lib/cjs/internal/runtime.js.map +1 -0
- package/lib/cjs/internal/types.d.ts +348 -0
- package/lib/cjs/internal/types.js +9 -0
- package/lib/cjs/internal/types.js.map +1 -0
- package/lib/cjs/test-only.d.ts +5 -0
- package/lib/cjs/test-only.js +21 -0
- package/lib/cjs/test-only.js.map +1 -0
- package/lib/cjs/testing.d.ts +38 -91
- package/lib/cjs/testing.js +72 -38
- package/lib/cjs/testing.js.map +1 -1
- package/lib/cjs/transition-routines.d.ts +3 -0
- package/lib/cjs/transition-routines.js +11 -0
- package/lib/cjs/transition-routines.js.map +1 -0
- package/lib/cjs/types.d.ts +5 -0
- package/lib/cjs/{internal/defs.private.js → types.js} +1 -1
- package/lib/cjs/types.js.map +1 -0
- package/lib/esm/index.d.ts +5 -1394
- package/lib/esm/index.js +3 -742
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/internal/runtime.d.ts +293 -0
- package/lib/esm/internal/runtime.js +1847 -0
- package/lib/esm/internal/runtime.js.map +1 -0
- package/lib/esm/internal/types.d.ts +348 -0
- package/lib/esm/internal/types.js +6 -0
- package/lib/esm/internal/types.js.map +1 -0
- package/lib/esm/test-only.d.ts +5 -0
- package/lib/esm/test-only.js +15 -0
- package/lib/esm/test-only.js.map +1 -0
- package/lib/esm/testing.d.ts +38 -91
- package/lib/esm/testing.js +72 -38
- package/lib/esm/testing.js.map +1 -1
- package/lib/esm/transition-routines.d.ts +3 -0
- package/lib/esm/transition-routines.js +3 -0
- package/lib/esm/transition-routines.js.map +1 -0
- package/lib/esm/types.d.ts +5 -0
- package/lib/esm/types.js +2 -0
- package/lib/esm/types.js.map +1 -0
- package/package.json +22 -4
- package/lib/cjs/internal/defs.private.d.ts +0 -41
- package/lib/cjs/internal/defs.private.js.map +0 -1
- package/lib/cjs/internal/dispatch.debug.d.ts +0 -4
- package/lib/cjs/internal/dispatch.debug.js +0 -332
- package/lib/cjs/internal/dispatch.debug.js.map +0 -1
- package/lib/cjs/internal/dispatch.production.d.ts +0 -6
- package/lib/cjs/internal/dispatch.production.js +0 -241
- package/lib/cjs/internal/dispatch.production.js.map +0 -1
- package/lib/cjs/internal/dispatch.trace.d.ts +0 -4
- package/lib/cjs/internal/dispatch.trace.js +0 -418
- package/lib/cjs/internal/dispatch.trace.js.map +0 -1
- package/lib/cjs/internal/hsm.d.ts +0 -60
- package/lib/cjs/internal/hsm.js +0 -215
- package/lib/cjs/internal/hsm.js.map +0 -1
- package/lib/cjs/internal/lookup.d.ts +0 -15
- package/lib/cjs/internal/lookup.js +0 -32
- package/lib/cjs/internal/lookup.js.map +0 -1
- package/lib/cjs/internal/utils.d.ts +0 -26
- package/lib/cjs/internal/utils.js +0 -63
- package/lib/cjs/internal/utils.js.map +0 -1
- package/lib/esm/internal/defs.private.d.ts +0 -41
- package/lib/esm/internal/defs.private.js +0 -2
- package/lib/esm/internal/defs.private.js.map +0 -1
- package/lib/esm/internal/dispatch.debug.d.ts +0 -4
- package/lib/esm/internal/dispatch.debug.js +0 -328
- package/lib/esm/internal/dispatch.debug.js.map +0 -1
- package/lib/esm/internal/dispatch.production.d.ts +0 -6
- package/lib/esm/internal/dispatch.production.js +0 -237
- package/lib/esm/internal/dispatch.production.js.map +0 -1
- package/lib/esm/internal/dispatch.trace.d.ts +0 -4
- package/lib/esm/internal/dispatch.trace.js +0 -414
- package/lib/esm/internal/dispatch.trace.js.map +0 -1
- package/lib/esm/internal/hsm.d.ts +0 -60
- package/lib/esm/internal/hsm.js +0 -211
- package/lib/esm/internal/hsm.js.map +0 -1
- package/lib/esm/internal/lookup.d.ts +0 -15
- package/lib/esm/internal/lookup.js +0 -29
- package/lib/esm/internal/lookup.js.map +0 -1
- package/lib/esm/internal/utils.d.ts +0 -26
- package/lib/esm/internal/utils.js +0 -52
- package/lib/esm/internal/utils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/internal/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal Pure types for the ihsm runtime — no runtime values in this module.
|
|
3
|
+
*/
|
|
4
|
+
import type { Machine, Port, RuntimeError, TopState as RuntimeTopState, TraceLevel, UnhandledEventError } from './runtime';
|
|
5
|
+
export type Any = Record<string, any>;
|
|
6
|
+
/** Optional trailing argument on generated service client methods. */
|
|
7
|
+
export type ServiceCallOptions = {
|
|
8
|
+
readonly timeoutMs?: number;
|
|
9
|
+
};
|
|
10
|
+
export interface ActorConfig {
|
|
11
|
+
context?: object;
|
|
12
|
+
services?: object;
|
|
13
|
+
notifications?: object;
|
|
14
|
+
internalServices?: object;
|
|
15
|
+
internalNotifications?: object;
|
|
16
|
+
port?: object;
|
|
17
|
+
}
|
|
18
|
+
export type ActorContextOf<C extends ActorConfig> = C extends {
|
|
19
|
+
context: infer Context;
|
|
20
|
+
} ? Context : Any;
|
|
21
|
+
export type ActorServicesOf<C extends ActorConfig> = C extends {
|
|
22
|
+
services: infer S extends object;
|
|
23
|
+
} ? S : {};
|
|
24
|
+
export type ActorNotificationsOf<C extends ActorConfig> = C extends {
|
|
25
|
+
notifications: infer N extends object;
|
|
26
|
+
} ? N : {};
|
|
27
|
+
export type ActorInternalServicesOf<C extends ActorConfig> = C extends {
|
|
28
|
+
internalServices: infer S extends object;
|
|
29
|
+
} ? S : {};
|
|
30
|
+
export type ActorInternalNotificationsOf<C extends ActorConfig> = C extends {
|
|
31
|
+
internalNotifications: infer N extends object;
|
|
32
|
+
} ? N : {};
|
|
33
|
+
export type DomainPortOf<C extends ActorConfig> = C extends {
|
|
34
|
+
port: infer P extends object;
|
|
35
|
+
} ? P : {};
|
|
36
|
+
export type ActorPortOf<C extends ActorConfig> = C extends {
|
|
37
|
+
port: infer P extends object;
|
|
38
|
+
} ? P & PortServices<C> : IPort<C>;
|
|
39
|
+
export type ActorMethodKeysOf<C extends ActorConfig> = keyof ActorServicesOf<C> | keyof ActorNotificationsOf<C> | keyof ActorInternalServicesOf<C> | keyof ActorInternalNotificationsOf<C>;
|
|
40
|
+
export type ProtocolBucket = 'services' | 'notifications' | 'internalServices' | 'internalNotifications';
|
|
41
|
+
export type StateClassOf<C extends ActorConfig = ActorConfig> = new (...args: any[]) => RuntimeTopState<C>;
|
|
42
|
+
export type TopStateArg<C extends ActorConfig = ActorConfig> = StateClassOf<C>;
|
|
43
|
+
export type ActorConfigOf<T> = T extends new (...args: any[]) => RuntimeTopState<infer C extends ActorConfig> ? C : T extends TopStateArg<infer C> ? C : T extends abstract new (...args: never[]) => RuntimeTopState<infer C extends ActorConfig> ? C : T extends new (...args: any[]) => infer Inst ? Inst extends {
|
|
44
|
+
readonly hsm: HandlerHsm<infer C>;
|
|
45
|
+
} ? C : Inst extends {
|
|
46
|
+
readonly ctx: infer Context;
|
|
47
|
+
} ? [Context] extends [ActorContextOf<infer C>] ? C : ActorConfig : ActorConfig : T extends {
|
|
48
|
+
readonly ctx: infer Context;
|
|
49
|
+
} ? [Context] extends [ActorContextOf<infer C>] ? C : ActorConfig : ActorConfig;
|
|
50
|
+
/** Top state constructor whose {@link ActorConfigOf} passes {@link DisjointActorConfig}. */
|
|
51
|
+
export type ValidatedTopStateArg<T extends TopStateArg<ActorConfig>> = DisjointActorConfig<ActorConfigOf<T>> extends true ? T : never;
|
|
52
|
+
export type MachineContext<T> = ActorContextOf<ActorConfigOf<T>>;
|
|
53
|
+
export type MachinePublic<T> = ActorServicesOf<ActorConfigOf<T>> & ActorNotificationsOf<ActorConfigOf<T>>;
|
|
54
|
+
export type MachineInternal<T> = ActorInternalServicesOf<ActorConfigOf<T>> & ActorInternalNotificationsOf<ActorConfigOf<T>>;
|
|
55
|
+
export type MachinePort<T> = ActorPortOf<ActorConfigOf<T>>;
|
|
56
|
+
export type ReservedName = 'ctx' | 'hsm' | 'notify' | 'notifyNow' | 'onEntry' | 'onExit' | 'onError' | 'onUnhandled';
|
|
57
|
+
export type IsReservedName<K extends PropertyKey> = K extends ReservedName ? true : false;
|
|
58
|
+
export type FilterReservedKeys<O extends object> = {
|
|
59
|
+
[K in keyof O as IsReservedName<K> extends true ? never : K]: O[K];
|
|
60
|
+
};
|
|
61
|
+
export type ServiceHandler<Reply> = Reply | Promise<Reply>;
|
|
62
|
+
export type NotificationHandler = void | Promise<void>;
|
|
63
|
+
export type AssertAsyncService<M> = M extends (...args: never[]) => infer R ? (R extends Promise<unknown> ? M : ['ihsm: service members must return Promise<Reply>', M]) : M;
|
|
64
|
+
export type ServiceArgs<S extends object, K extends keyof S> = S[K] extends (...args: infer A) => Promise<unknown> ? A : never;
|
|
65
|
+
export type ServiceReply<S extends object, K extends keyof S> = S[K] extends (...args: never[]) => Promise<infer R> ? Awaited<R> : never;
|
|
66
|
+
export type NotificationArgs<N extends object, K extends keyof N> = N[K] extends (...args: infer A) => void | Promise<void> ? A : never;
|
|
67
|
+
type BucketKeys<B> = {} extends B ? never : keyof B;
|
|
68
|
+
type ProtocolFieldKeys<C extends ActorConfig> = BucketKeys<ActorServicesOf<C>> | BucketKeys<ActorNotificationsOf<C>> | BucketKeys<ActorInternalServicesOf<C>> | BucketKeys<ActorInternalNotificationsOf<C>>;
|
|
69
|
+
export type OverlappingProtocolKeys<C extends ActorConfig> = Extract<BucketKeys<ActorServicesOf<C>> & BucketKeys<ActorNotificationsOf<C>>, PropertyKey> extends never ? Extract<BucketKeys<ActorServicesOf<C>> & BucketKeys<ActorInternalServicesOf<C>>, PropertyKey> extends never ? Extract<BucketKeys<ActorServicesOf<C>> & BucketKeys<ActorInternalNotificationsOf<C>>, PropertyKey> extends never ? Extract<BucketKeys<ActorNotificationsOf<C>> & BucketKeys<ActorInternalServicesOf<C>>, PropertyKey> extends never ? Extract<BucketKeys<ActorNotificationsOf<C>> & BucketKeys<ActorInternalNotificationsOf<C>>, PropertyKey> extends never ? Extract<BucketKeys<ActorInternalServicesOf<C>> & BucketKeys<ActorInternalNotificationsOf<C>>, PropertyKey> extends never ? Extract<ProtocolFieldKeys<C>, ReservedName> extends never ? true : ['ihsm: protocol keys must not use reserved names', Extract<ProtocolFieldKeys<C>, ReservedName>] : ['ihsm: internalServices and internalNotifications share keys', Extract<BucketKeys<ActorInternalServicesOf<C>> & BucketKeys<ActorInternalNotificationsOf<C>>, PropertyKey>] : ['ihsm: notifications and internalNotifications share keys', Extract<BucketKeys<ActorNotificationsOf<C>> & BucketKeys<ActorInternalNotificationsOf<C>>, PropertyKey>] : ['ihsm: notifications and internalServices share keys', Extract<BucketKeys<ActorNotificationsOf<C>> & BucketKeys<ActorInternalServicesOf<C>>, PropertyKey>] : ['ihsm: services and internalNotifications share keys', Extract<BucketKeys<ActorServicesOf<C>> & BucketKeys<ActorInternalNotificationsOf<C>>, PropertyKey>] : ['ihsm: services and internalServices share keys', Extract<BucketKeys<ActorServicesOf<C>> & BucketKeys<ActorInternalServicesOf<C>>, PropertyKey>] : ['ihsm: services and notifications share keys', Extract<BucketKeys<ActorServicesOf<C>> & BucketKeys<ActorNotificationsOf<C>>, PropertyKey>];
|
|
70
|
+
export type DisjointActorConfig<C extends ActorConfig> = OverlappingProtocolKeys<C>;
|
|
71
|
+
export type ValidatedActorConfig<C extends ActorConfig> = DisjointActorConfig<C> extends true ? C : never;
|
|
72
|
+
export interface DispatchErrorCallback<C extends ActorConfig = ActorConfig> {
|
|
73
|
+
(hsm: Properties<C>, err: Error): void;
|
|
74
|
+
}
|
|
75
|
+
export interface TraceWriter {
|
|
76
|
+
write<C extends ActorConfig>(hsm: Properties<C>, msg: any): void;
|
|
77
|
+
}
|
|
78
|
+
export interface Properties<C extends ActorConfig = ActorConfig> {
|
|
79
|
+
currentState: StateClass<C>;
|
|
80
|
+
readonly currentStateName: string;
|
|
81
|
+
readonly topState: StateClass<C>;
|
|
82
|
+
readonly topStateName: string;
|
|
83
|
+
readonly ctxTypeName: string;
|
|
84
|
+
readonly traceHeader: string;
|
|
85
|
+
readonly eventName: string;
|
|
86
|
+
readonly eventPayload: unknown[];
|
|
87
|
+
traceLevel: TraceLevel;
|
|
88
|
+
traceWriter: TraceWriter;
|
|
89
|
+
dispatchErrorCallback: DispatchErrorCallback<C>;
|
|
90
|
+
}
|
|
91
|
+
export type StateClass<C extends ActorConfig = ActorConfig> = StateClassOf<C>;
|
|
92
|
+
export interface Disposable {
|
|
93
|
+
dispose(): void;
|
|
94
|
+
}
|
|
95
|
+
export interface ResultWithSubscription<Result> {
|
|
96
|
+
readonly value: Result;
|
|
97
|
+
readonly subscription: Disposable;
|
|
98
|
+
}
|
|
99
|
+
export interface TracedMessage {
|
|
100
|
+
readonly event: string;
|
|
101
|
+
readonly payload: readonly unknown[];
|
|
102
|
+
}
|
|
103
|
+
export type EventObserver = (message: TracedMessage) => void;
|
|
104
|
+
/** Parent-machine link on {@link ParentActor} and optional `parent` on actor shells. */
|
|
105
|
+
export declare const kParentLink: unique symbol;
|
|
106
|
+
/** Active {@link Machine} on handler instances — set in {@link Machine} constructor. */
|
|
107
|
+
export declare const kHandlerMachine: unique symbol;
|
|
108
|
+
export type ParentActor<T extends TopStateArg = TopStateArg> = {
|
|
109
|
+
readonly top: T;
|
|
110
|
+
readonly [kParentLink]?: Machine<ActorConfigOf<T>>;
|
|
111
|
+
};
|
|
112
|
+
/** Optional parent link on actors created via {@link makeChildActor}. */
|
|
113
|
+
export type ActorParentField<ParentT extends TopStateArg = TopStateArg> = {
|
|
114
|
+
readonly parent?: ParentActor<ParentT>;
|
|
115
|
+
};
|
|
116
|
+
export interface RandomService {
|
|
117
|
+
/** Pseudorandom number in `[0, 1)`. */
|
|
118
|
+
random(): number;
|
|
119
|
+
/** Cryptographic-quality random in `[0, 1)` when the platform provides it. */
|
|
120
|
+
cryptoRandom(): number;
|
|
121
|
+
/** Generate a UUID v4 string. */
|
|
122
|
+
randomUUID(): string;
|
|
123
|
+
/** Fill `array` with cryptographically strong random bytes. */
|
|
124
|
+
getRandomValues<T extends ArrayBufferView>(array: T): T;
|
|
125
|
+
}
|
|
126
|
+
export interface TimerService {
|
|
127
|
+
/** Schedule a one-shot callback after `millis` milliseconds. */
|
|
128
|
+
setTimeout(callback: () => void, millis?: number): number;
|
|
129
|
+
/** Cancel a timer previously returned by {@link TimerService.setTimeout}. */
|
|
130
|
+
clearTimeout(id: number | undefined): void;
|
|
131
|
+
/** Schedule a repeating callback every `millis` milliseconds. */
|
|
132
|
+
setInterval(callback: () => void, millis?: number): number;
|
|
133
|
+
/** Cancel an interval previously returned by {@link TimerService.setInterval}. */
|
|
134
|
+
clearInterval(id: number | undefined): void;
|
|
135
|
+
}
|
|
136
|
+
export type ServiceClient<S extends object> = {
|
|
137
|
+
[K in keyof S]: S[K] extends (...args: infer A) => Promise<infer R> ? (...args: [...A, ServiceCallOptions?]) => Promise<R> : never;
|
|
138
|
+
};
|
|
139
|
+
export type NotificationClient<N extends object> = {
|
|
140
|
+
[K in keyof N]: N[K] extends (...args: infer A) => void | Promise<void> ? (...args: A) => void : never;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Faceted call surface — `actor.call.<service>(...)` returns `Promise<Reply>`.
|
|
144
|
+
* Delivery mode is chosen by the facet at the call site, not inferred.
|
|
145
|
+
*/
|
|
146
|
+
export type CallFacet<S extends object> = ServiceClient<S>;
|
|
147
|
+
/** Faceted notification surface — `actor.notify.<event>(...)` / `actor.notifyNow.<event>(...)`. */
|
|
148
|
+
export type NotifyFacet<N extends object> = NotificationClient<N>;
|
|
149
|
+
export type ActorHsm<_C extends ActorConfig = ActorConfig> = {
|
|
150
|
+
sync(): Promise<void>;
|
|
151
|
+
currentStateName: string;
|
|
152
|
+
topStateName: string;
|
|
153
|
+
traceLevel: TraceLevel;
|
|
154
|
+
traceWriter: TraceWriter;
|
|
155
|
+
traceHeader: string;
|
|
156
|
+
};
|
|
157
|
+
export type TestActorHsm<C extends ActorConfig = ActorConfig> = ActorHsm<C> & {
|
|
158
|
+
currentState: StateClassOf<C>;
|
|
159
|
+
topState: StateClassOf<C>;
|
|
160
|
+
};
|
|
161
|
+
export type OwnerActorHsm<C extends ActorConfig = ActorConfig> = TestActorHsm<C> & {
|
|
162
|
+
restore(state: StateClassOf<C>, ctx: ActorContextOf<C>): void;
|
|
163
|
+
dispatchErrorCallback: DispatchErrorCallback<C>;
|
|
164
|
+
};
|
|
165
|
+
export type ExternalActor<C extends ActorConfig = ActorConfig> = ActorParentField & {
|
|
166
|
+
readonly notify: NotifyFacet<ActorNotificationsOf<C>>;
|
|
167
|
+
readonly notifyNow: NotifyFacet<ActorNotificationsOf<C>>;
|
|
168
|
+
readonly call: CallFacet<ActorServicesOf<C>>;
|
|
169
|
+
readonly hsm: ActorHsm<C>;
|
|
170
|
+
};
|
|
171
|
+
export type ExternalHsm<C extends ActorConfig = ActorConfig> = ExternalActor<C>['hsm'];
|
|
172
|
+
export type InboundActor<C extends ActorConfig = ActorConfig> = ActorParentField & {
|
|
173
|
+
readonly notify: NotifyFacet<ActorNotificationsOf<C> & ActorInternalNotificationsOf<C>>;
|
|
174
|
+
readonly notifyNow: NotifyFacet<ActorNotificationsOf<C> & ActorInternalNotificationsOf<C>>;
|
|
175
|
+
readonly call: CallFacet<ActorServicesOf<C>>;
|
|
176
|
+
readonly hsm: TestActorHsm<C>;
|
|
177
|
+
};
|
|
178
|
+
export type InboundHsm<C extends ActorConfig = ActorConfig> = InboundActor<C>['hsm'];
|
|
179
|
+
export type ChildActor<C extends ActorConfig = ActorConfig> = Omit<InboundActor<C>, 'call' | 'hsm'> & {
|
|
180
|
+
readonly call: CallFacet<ActorServicesOf<C> & ActorInternalServicesOf<C>>;
|
|
181
|
+
readonly hsm: OwnerActorHsm<C>;
|
|
182
|
+
};
|
|
183
|
+
export type ChildHsm<C extends ActorConfig = ActorConfig> = ChildActor<C>['hsm'];
|
|
184
|
+
export type SelfNotifications<C extends ActorConfig = ActorConfig> = NotificationClient<ActorNotificationsOf<C>> & NotificationClient<ActorInternalNotificationsOf<C>>;
|
|
185
|
+
/** Timer, random, and deferred self-notifications — always on {@link ActorPortOf}. */
|
|
186
|
+
export type PortServices<C extends ActorConfig = ActorConfig> = TimerService & RandomService & {
|
|
187
|
+
defer(ms: number): SelfNotifications<C>;
|
|
188
|
+
};
|
|
189
|
+
/** Runtime port — timers, randomness, deferred notifications, and {@link IPort.actor}. */
|
|
190
|
+
export interface IPort<C extends ActorConfig = ActorConfig> extends TimerService, RandomService {
|
|
191
|
+
actor: InboundActor<C> | ChildActor<C>;
|
|
192
|
+
defer(ms: number): SelfNotifications<C>;
|
|
193
|
+
}
|
|
194
|
+
/** Port instance passed to a factory before {@link IPort.actor} is bound. */
|
|
195
|
+
export type UntypedPortInput = Port<TopStateArg>;
|
|
196
|
+
export type MachinePortInput<C extends ActorConfig = ActorConfig> = IPort<C> | UntypedPortInput;
|
|
197
|
+
export type HandlerHsm<C extends ActorConfig = ActorConfig> = {
|
|
198
|
+
ctx: ActorContextOf<C>;
|
|
199
|
+
transition(next: StateClassOf<C>): void;
|
|
200
|
+
port: ActorPortOf<C>;
|
|
201
|
+
unhandled(): never;
|
|
202
|
+
eventName: string;
|
|
203
|
+
eventPayload: unknown[];
|
|
204
|
+
currentState: StateClassOf<C>;
|
|
205
|
+
currentStateName: string;
|
|
206
|
+
topState: StateClassOf<C>;
|
|
207
|
+
topStateName: string;
|
|
208
|
+
traceHeader: string;
|
|
209
|
+
traceLevel: TraceLevel;
|
|
210
|
+
traceWriter: TraceWriter;
|
|
211
|
+
dispatchErrorCallback: DispatchErrorCallback<C>;
|
|
212
|
+
};
|
|
213
|
+
/** Structural root state instance — merged with the runtime {@link TopState} class. */
|
|
214
|
+
export interface TopState<C extends ActorConfig = ActorConfig> {
|
|
215
|
+
readonly ctx: ActorContextOf<C>;
|
|
216
|
+
readonly hsm: HandlerHsm<C>;
|
|
217
|
+
/** Self-directed default-queue notifications — `this.notify.x()`. */
|
|
218
|
+
readonly notify: SelfNotifications<C>;
|
|
219
|
+
/** Self-directed priority-queue notifications — `this.notifyNow.x()`. */
|
|
220
|
+
readonly notifyNow: SelfNotifications<C>;
|
|
221
|
+
}
|
|
222
|
+
export type TestHsm<C extends ActorConfig = ActorConfig> = ChildHsm<C> & {
|
|
223
|
+
port: ActorPortOf<C>;
|
|
224
|
+
subscribe(observer: (message: {
|
|
225
|
+
event: string;
|
|
226
|
+
payload: unknown[];
|
|
227
|
+
}) => void): {
|
|
228
|
+
dispose(): void;
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
export type EmbodimentKind = 'root' | 'inbound' | 'child' | 'test';
|
|
232
|
+
export interface StateEvents<C extends ActorConfig = ActorConfig> {
|
|
233
|
+
onExit(): Promise<void> | void;
|
|
234
|
+
onEntry(): Promise<void> | void;
|
|
235
|
+
onError(error: RuntimeError<C>): Promise<void> | void;
|
|
236
|
+
onUnhandled(error: UnhandledEventError<C>): Promise<void> | void;
|
|
237
|
+
}
|
|
238
|
+
/** Machine snapshot passed to error constructors at failure time. */
|
|
239
|
+
export type ErrorHost<C extends ActorConfig = ActorConfig> = {
|
|
240
|
+
readonly ctx: ActorContextOf<C>;
|
|
241
|
+
readonly topStateName: string;
|
|
242
|
+
readonly currentStateName: string;
|
|
243
|
+
readonly eventName: string;
|
|
244
|
+
readonly eventPayload: unknown[];
|
|
245
|
+
};
|
|
246
|
+
/** @internal Per-actor runtime instance bag (context, handler facade, port). */
|
|
247
|
+
export interface Instance<C extends ActorConfig> {
|
|
248
|
+
ctx: ActorContextOf<C>;
|
|
249
|
+
hsm: HsmWithTracing<C>;
|
|
250
|
+
portRef?: unknown;
|
|
251
|
+
}
|
|
252
|
+
/** @internal Compiled transition between two states. */
|
|
253
|
+
export interface Transition<C extends ActorConfig> {
|
|
254
|
+
execute(hsm: HsmWithTracing<C>, srcState: StateClassOf<C>, dstState: StateClassOf<C>): Promise<void>;
|
|
255
|
+
}
|
|
256
|
+
export type DoneCallback = () => void;
|
|
257
|
+
/** @internal Run-to-completion work unit queued on the machine. */
|
|
258
|
+
export type Task = (done: DoneCallback) => void;
|
|
259
|
+
/** Machine host passed to {@link executeTransitionRoutine}. */
|
|
260
|
+
export interface TransitionHost<C extends ActorConfig = ActorConfig> {
|
|
261
|
+
readonly ctx: ActorContextOf<C>;
|
|
262
|
+
readonly currentStateName: string;
|
|
263
|
+
readonly topState: StateClassOf<C>;
|
|
264
|
+
readonly topStateName: string;
|
|
265
|
+
readonly ctxTypeName: string;
|
|
266
|
+
readonly traceHeader: string;
|
|
267
|
+
readonly eventName: string;
|
|
268
|
+
readonly eventPayload: unknown[];
|
|
269
|
+
currentState: StateClassOf<C>;
|
|
270
|
+
}
|
|
271
|
+
/** @internal Runtime host passed to transition execution and dispatch tasks. */
|
|
272
|
+
export interface HsmWithTracing<C extends ActorConfig = ActorConfig> extends TransitionHost<C> {
|
|
273
|
+
traceLevel: TraceLevel;
|
|
274
|
+
traceWriter: TraceWriter;
|
|
275
|
+
dispatchErrorCallback: DispatchErrorCallback<C>;
|
|
276
|
+
sync(): Promise<void>;
|
|
277
|
+
restore(state: StateClassOf<C>, ctx: ActorContextOf<C>): void;
|
|
278
|
+
transition(nextState: StateClassOf<C>): void;
|
|
279
|
+
unhandled(): never;
|
|
280
|
+
_instance: Instance<C>;
|
|
281
|
+
_transitionState?: StateClassOf<C>;
|
|
282
|
+
_currentEventName?: string;
|
|
283
|
+
_currentEventPayload?: unknown[];
|
|
284
|
+
_tracePush(domain: string, msg: string): void;
|
|
285
|
+
_tracePopDone(msg: string): void;
|
|
286
|
+
_tracePopError(msg: string): void;
|
|
287
|
+
_traceWrite(msg: any): void;
|
|
288
|
+
pushTask(t: Task): void;
|
|
289
|
+
unshiftHiPriorityTask(t: Task): void;
|
|
290
|
+
pushHiPriorityTask(t: Task): void;
|
|
291
|
+
}
|
|
292
|
+
export interface ProtocolSlot {
|
|
293
|
+
readonly bucket: ProtocolBucket;
|
|
294
|
+
readonly name: string;
|
|
295
|
+
}
|
|
296
|
+
export interface ProtocolIndex {
|
|
297
|
+
readonly slots: ReadonlyMap<string, ProtocolSlot>;
|
|
298
|
+
get(name: string): ProtocolSlot | undefined;
|
|
299
|
+
entries(kind: EmbodimentKind): Iterable<[string, ProtocolSlot]>;
|
|
300
|
+
}
|
|
301
|
+
/** @internal Machine surface used by generated actor handles and dispatch. */
|
|
302
|
+
export interface DispatchableMachine {
|
|
303
|
+
dispatchService(name: string, args: unknown[]): Promise<unknown>;
|
|
304
|
+
dispatchNotification(name: string, args: unknown[], queue: NotificationQueue): void;
|
|
305
|
+
unshiftHiPriorityTask(t: (done: () => void) => void): void;
|
|
306
|
+
readonly ctx: unknown;
|
|
307
|
+
actorHsmFor(kind: EmbodimentKind): unknown;
|
|
308
|
+
}
|
|
309
|
+
export type NotificationQueue = 'default' | 'priority' | 'timer';
|
|
310
|
+
export interface TransitionResolver<C extends ActorConfig = ActorConfig> {
|
|
311
|
+
resolve(src: StateClassOf<C>, dest: StateClassOf<C>): Transition<C>;
|
|
312
|
+
}
|
|
313
|
+
export interface PlannedTransition<C extends ActorConfig = ActorConfig> {
|
|
314
|
+
readonly exit: readonly StateClassOf<C>[];
|
|
315
|
+
readonly entry: readonly StateClassOf<C>[];
|
|
316
|
+
readonly finalState?: StateClassOf<C>;
|
|
317
|
+
}
|
|
318
|
+
export interface TransitionRoutinePlan<C extends ActorConfig = ActorConfig> extends PlannedTransition<C> {
|
|
319
|
+
readonly from: StateClassOf<C>;
|
|
320
|
+
readonly to: StateClassOf<C>;
|
|
321
|
+
}
|
|
322
|
+
export interface TransitionTracer {
|
|
323
|
+
traceTransitionStart(fromStateName: string, toStateName: string): void;
|
|
324
|
+
traceHookDone(stateName: string, hook: 'onExit' | 'onEntry'): void;
|
|
325
|
+
traceHookSkipped(stateName: string, hook: 'onExit' | 'onEntry'): void;
|
|
326
|
+
traceHookError(stateName: string, hook: 'onExit' | 'onEntry', cause: unknown): void;
|
|
327
|
+
traceTransitionDone(finalStateName: string): void;
|
|
328
|
+
}
|
|
329
|
+
export type TransitionRoutineStyle = 'production' | 'debug' | 'verbose';
|
|
330
|
+
export interface TransitionRoutineExecuteOptions<C extends ActorConfig = ActorConfig> {
|
|
331
|
+
readonly style?: TransitionRoutineStyle;
|
|
332
|
+
readonly tracer?: TransitionTracer;
|
|
333
|
+
readonly setCurrentState?: (state: StateClassOf<C>) => void;
|
|
334
|
+
}
|
|
335
|
+
export type TransitionTraceHost = {
|
|
336
|
+
_tracePush(domain: string, msg: string): void;
|
|
337
|
+
_traceWrite(msg: string): void;
|
|
338
|
+
_tracePopDone(msg: string): void;
|
|
339
|
+
_tracePopError(msg: string): void;
|
|
340
|
+
};
|
|
341
|
+
export interface ActorOptions<C extends ActorConfig = ActorConfig> {
|
|
342
|
+
initialize?: boolean;
|
|
343
|
+
traceLevel?: TraceLevel;
|
|
344
|
+
traceWriter?: TraceWriter;
|
|
345
|
+
dispatchErrorCallback?: DispatchErrorCallback<C>;
|
|
346
|
+
transitions?: TransitionResolver<C>;
|
|
347
|
+
}
|
|
348
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kHandlerMachine = exports.kParentLink = void 0;
|
|
4
|
+
/** Parent-machine link on {@link ParentActor} and optional `parent` on actor shells. */
|
|
5
|
+
exports.kParentLink = Symbol('ihsm.parentLink');
|
|
6
|
+
/** Active {@link Machine} on handler instances — set in {@link Machine} constructor. */
|
|
7
|
+
exports.kHandlerMachine = Symbol('ihsm.handlerMachine');
|
|
8
|
+
//#endregion
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":";;;AA8IA,wFAAwF;AAC3E,QAAA,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAErD,wFAAwF;AAC3E,QAAA,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAsS7D,YAAY"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ProtocolIndex } from './internal/types';
|
|
2
|
+
export declare function cacheProtocolIndex(topState: object, index: ProtocolIndex): ProtocolIndex;
|
|
3
|
+
export declare function protocolIndexFor(topState: object): ProtocolIndex | undefined;
|
|
4
|
+
export declare function disableDispatchStorage(): void;
|
|
5
|
+
export declare function resetDispatchStorage(): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cacheProtocolIndex = cacheProtocolIndex;
|
|
4
|
+
exports.protocolIndexFor = protocolIndexFor;
|
|
5
|
+
exports.disableDispatchStorage = disableDispatchStorage;
|
|
6
|
+
exports.resetDispatchStorage = resetDispatchStorage;
|
|
7
|
+
/** @internal Test hooks — not part of the public API. */
|
|
8
|
+
const runtime_1 = require("./internal/runtime");
|
|
9
|
+
function cacheProtocolIndex(topState, index) {
|
|
10
|
+
return (0, runtime_1.cacheProtocolIndex)(topState, index);
|
|
11
|
+
}
|
|
12
|
+
function protocolIndexFor(topState) {
|
|
13
|
+
return (0, runtime_1.protocolIndexFor)(topState);
|
|
14
|
+
}
|
|
15
|
+
function disableDispatchStorage() {
|
|
16
|
+
runtime_1.dispatchContext.markUnavailable();
|
|
17
|
+
}
|
|
18
|
+
function resetDispatchStorage() {
|
|
19
|
+
runtime_1.dispatchContext.resetInit();
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=test-only.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-only.js","sourceRoot":"","sources":["../../src/test-only.ts"],"names":[],"mappings":";;AAIA,gDAEC;AAED,4CAEC;AAED,wDAEC;AAED,oDAEC;AAlBD,yDAAyD;AACzD,gDAA8I;AAG9I,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,KAAoB;IACxE,OAAO,IAAA,4BAAuB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAgB;IAChD,OAAO,IAAA,0BAAoB,EAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,sBAAsB;IACrC,yBAAe,CAAC,eAAe,EAAE,CAAC;AACnC,CAAC;AAED,SAAgB,oBAAoB;IACnC,yBAAe,CAAC,SAAS,EAAE,CAAC;AAC7B,CAAC"}
|