@doeixd/machine 0.0.7 → 0.0.9
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 +130 -272
- package/dist/cjs/development/index.js +1121 -18
- package/dist/cjs/development/index.js.map +4 -4
- package/dist/cjs/production/index.js +5 -5
- package/dist/esm/development/index.js +1121 -18
- package/dist/esm/development/index.js.map +4 -4
- package/dist/esm/production/index.js +5 -5
- package/dist/types/extract.d.ts.map +1 -1
- package/dist/types/index.d.ts +64 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/middleware.d.ts +1048 -0
- package/dist/types/middleware.d.ts.map +1 -0
- package/dist/types/primitives.d.ts +205 -3
- package/dist/types/primitives.d.ts.map +1 -1
- package/dist/types/runtime-extract.d.ts.map +1 -1
- package/dist/types/utils.d.ts +111 -6
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +10 -7
- package/scripts/extract-statechart.ts +351 -0
- package/src/adapters.ts +407 -0
- package/src/extract.ts +60 -20
- package/src/index.ts +201 -8
- package/src/middleware.ts +2325 -0
- package/src/primitives.ts +454 -3
- package/src/runtime-extract.ts +15 -0
- package/src/utils.ts +221 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
* and generate a formal Statechart (JSON) that perfectly matches your implementation,
|
|
11
11
|
* including resolving Class Constructors to their names.
|
|
12
12
|
*/
|
|
13
|
+
/**
|
|
14
|
+
* Options passed to async transition functions, including cancellation support.
|
|
15
|
+
*/
|
|
16
|
+
export interface TransitionOptions {
|
|
17
|
+
/** AbortSignal for cancelling long-running async operations. */
|
|
18
|
+
signal: AbortSignal;
|
|
19
|
+
}
|
|
13
20
|
/**
|
|
14
21
|
* A unique symbol used to "brand" a type with metadata.
|
|
15
22
|
* This key allows the static analyzer to find the metadata within a complex type signature.
|
|
@@ -17,10 +24,18 @@
|
|
|
17
24
|
export declare const META_KEY: unique symbol;
|
|
18
25
|
/**
|
|
19
26
|
* Runtime metadata symbol.
|
|
27
|
+
/**
|
|
20
28
|
* Non-enumerable property key for storing metadata on function objects at runtime.
|
|
21
29
|
* @internal
|
|
22
30
|
*/
|
|
23
31
|
export declare const RUNTIME_META: unique symbol;
|
|
32
|
+
/**
|
|
33
|
+
* Local definition of Machine type to avoid circular imports.
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
type Machine<C extends object> = {
|
|
37
|
+
readonly context: C;
|
|
38
|
+
} & Record<string, (...args: any[]) => Machine<any>>;
|
|
24
39
|
/**
|
|
25
40
|
* Helper type representing a Class Constructor.
|
|
26
41
|
* Used to reference target states by their class definition rather than magic strings.
|
|
@@ -129,6 +144,7 @@ export declare function describe<F extends (...args: any[]) => any, M extends Tr
|
|
|
129
144
|
* Annotates a transition with a Guard condition.
|
|
130
145
|
* Note: This only adds metadata. You must still implement the `if` check inside your function.
|
|
131
146
|
*
|
|
147
|
+
* @deprecated Use the runtime `guard()` primitive instead. Its `options.description` is used for static analysis.
|
|
132
148
|
* @param guard - Object containing the name and optional description of the guard.
|
|
133
149
|
* @param transition - The transition function to guard.
|
|
134
150
|
* @example
|
|
@@ -141,14 +157,19 @@ export declare function guarded<F extends (...args: any[]) => any, M extends Tra
|
|
|
141
157
|
* Annotates a transition with an Invoked Service (asynchronous effect).
|
|
142
158
|
*
|
|
143
159
|
* @param service - configuration for the service (source, onDone target, onError target).
|
|
144
|
-
* @param implementation - The async function implementation.
|
|
160
|
+
* @param implementation - The async function implementation that receives an AbortSignal.
|
|
145
161
|
* @example
|
|
146
162
|
* load = invoke(
|
|
147
163
|
* { src: "fetchData", onDone: LoadedMachine, onError: ErrorMachine },
|
|
148
|
-
* async () => {
|
|
164
|
+
* async ({ signal }) => {
|
|
165
|
+
* const response = await fetch('/api/data', { signal });
|
|
166
|
+
* return new LoadedMachine({ data: await response.json() });
|
|
167
|
+
* }
|
|
149
168
|
* );
|
|
150
169
|
*/
|
|
151
|
-
export declare function invoke<D extends ClassConstructor, E extends ClassConstructor, F extends (
|
|
170
|
+
export declare function invoke<D extends ClassConstructor, E extends ClassConstructor, F extends (options: {
|
|
171
|
+
signal: AbortSignal;
|
|
172
|
+
}) => any>(service: {
|
|
152
173
|
src: string;
|
|
153
174
|
onDone: D;
|
|
154
175
|
onError: E;
|
|
@@ -168,6 +189,186 @@ export declare function invoke<D extends ClassConstructor, E extends ClassConstr
|
|
|
168
189
|
export declare function action<F extends (...args: any[]) => any, M extends TransitionMeta>(action: ActionMeta, transition: WithMeta<F, M>): WithMeta<F, M & {
|
|
169
190
|
actions: [typeof action];
|
|
170
191
|
}>;
|
|
192
|
+
/**
|
|
193
|
+
* Configuration options for guard behavior when conditions fail.
|
|
194
|
+
*/
|
|
195
|
+
export interface GuardOptions<C extends object = any, TFailure extends Machine<any> = Machine<C>> {
|
|
196
|
+
/** What to do when guard fails */
|
|
197
|
+
onFail?: 'throw' | 'ignore' | GuardFallback<C, TFailure>;
|
|
198
|
+
/** Custom error message for 'throw' mode */
|
|
199
|
+
errorMessage?: string;
|
|
200
|
+
/** Additional metadata for statechart extraction */
|
|
201
|
+
description?: string;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* A fallback machine or function that returns a machine when guard fails.
|
|
205
|
+
*/
|
|
206
|
+
export type GuardFallback<C extends object, TFailure extends Machine<any> = Machine<C>> = ((this: Machine<C>, ...args: any[]) => TFailure) | TFailure;
|
|
207
|
+
/**
|
|
208
|
+
* A guarded transition that checks conditions at runtime before executing.
|
|
209
|
+
* Can be called with either machine or context as 'this' binding.
|
|
210
|
+
*/
|
|
211
|
+
export type GuardedTransition<C extends object, TSuccess extends Machine<any>, TFailure extends Machine<any> = Machine<C>> = {
|
|
212
|
+
(...args: any[]): TSuccess | TFailure | Promise<TSuccess | TFailure>;
|
|
213
|
+
readonly __guard: true;
|
|
214
|
+
readonly condition: (ctx: C, ...args: any[]) => boolean | Promise<boolean>;
|
|
215
|
+
readonly transition: (...args: any[]) => TSuccess;
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Creates a synchronous runtime guard that checks conditions before executing transitions.
|
|
219
|
+
* This provides actual runtime protection with synchronous execution - use this for the majority of cases.
|
|
220
|
+
*
|
|
221
|
+
* @template C - The context type
|
|
222
|
+
* @template TSuccess - The transition return type when condition passes
|
|
223
|
+
* @template TFailure - The fallback return type when condition fails (defaults to Machine<C>)
|
|
224
|
+
* @param condition - Synchronous function that returns true if transition should proceed
|
|
225
|
+
* @param transition - The transition function to execute if condition passes
|
|
226
|
+
* @param options - Configuration for guard failure behavior
|
|
227
|
+
* @returns A synchronous guarded transition function
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* ```typescript
|
|
231
|
+
* const machine = createMachine({ balance: 100 }, {
|
|
232
|
+
* withdraw: guard(
|
|
233
|
+
* (ctx, amount) => ctx.balance >= amount,
|
|
234
|
+
* function(amount: number) {
|
|
235
|
+
* return createMachine({ balance: this.balance - amount }, this);
|
|
236
|
+
* },
|
|
237
|
+
* { onFail: 'throw', errorMessage: 'Insufficient funds' }
|
|
238
|
+
* )
|
|
239
|
+
* });
|
|
240
|
+
*
|
|
241
|
+
* machine.withdraw(50); // ✅ Works synchronously
|
|
242
|
+
* machine.withdraw(200); // ❌ Throws "Insufficient funds"
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
export declare function guard<C extends object, TSuccess extends Machine<any>, TFailure extends Machine<any> = Machine<C>>(condition: (ctx: C, ...args: any[]) => boolean, transition: (...args: any[]) => TSuccess, options?: GuardOptions<C, TFailure>): (...args: any[]) => TSuccess | TFailure;
|
|
246
|
+
/**
|
|
247
|
+
* Creates a runtime guard that checks conditions before executing transitions.
|
|
248
|
+
* This provides actual runtime protection, unlike the `guarded` primitive which only adds metadata.
|
|
249
|
+
* Use this when your condition or transition logic is asynchronous.
|
|
250
|
+
*
|
|
251
|
+
* @template C - The context type
|
|
252
|
+
* @template TSuccess - The transition return type when condition passes
|
|
253
|
+
* @template TFailure - The fallback return type when condition fails (defaults to Machine<C>)
|
|
254
|
+
* @param condition - Function that returns true if transition should proceed (can be async)
|
|
255
|
+
* @param transition - The transition function to execute if condition passes
|
|
256
|
+
* @param options - Configuration for guard failure behavior
|
|
257
|
+
* @returns A guarded transition function that returns a Promise
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```typescript
|
|
261
|
+
* const machine = createMachine({ balance: 100 }, {
|
|
262
|
+
* withdraw: guardAsync(
|
|
263
|
+
* async (ctx, amount) => {
|
|
264
|
+
* // Simulate API call to check balance
|
|
265
|
+
* await new Promise(resolve => setTimeout(resolve, 100));
|
|
266
|
+
* return ctx.balance >= amount;
|
|
267
|
+
* },
|
|
268
|
+
* async function(amount: number) {
|
|
269
|
+
* // Simulate API call to process withdrawal
|
|
270
|
+
* await new Promise(resolve => setTimeout(resolve, 100));
|
|
271
|
+
* return createMachine({ balance: this.balance - amount }, this);
|
|
272
|
+
* },
|
|
273
|
+
* { onFail: 'throw', errorMessage: 'Insufficient funds' }
|
|
274
|
+
* )
|
|
275
|
+
* });
|
|
276
|
+
*
|
|
277
|
+
* await machine.withdraw(50); // ✅ Works
|
|
278
|
+
* await machine.withdraw(200); // ❌ Throws "Insufficient funds"
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
export declare function guardAsync<C extends object, TSuccess extends Machine<any>, TFailure extends Machine<any> = Machine<C>>(condition: (ctx: C, ...args: any[]) => boolean | Promise<boolean>, transition: (...args: any[]) => TSuccess, options?: GuardOptions<C, TFailure>): GuardedTransition<C, TSuccess, TFailure>;
|
|
282
|
+
/**
|
|
283
|
+
* Creates a synchronous guard that checks conditions before executing transitions.
|
|
284
|
+
* This is the synchronous counterpart to `guard()` - use this when your machine
|
|
285
|
+
* doesn't need async transitions to avoid unnecessary Promise overhead.
|
|
286
|
+
*
|
|
287
|
+
* @template C - The context type
|
|
288
|
+
* @template T - The transition return type
|
|
289
|
+
* @param condition - Function that returns true if transition should proceed (must be synchronous)
|
|
290
|
+
* @param transition - The transition function to execute if condition passes (must be synchronous)
|
|
291
|
+
* @param options - Configuration for guard failure behavior
|
|
292
|
+
* @returns A synchronous guarded transition function
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```typescript
|
|
296
|
+
* const machine = createMachine({ balance: 100 }, {
|
|
297
|
+
* withdraw: guardSync(
|
|
298
|
+
* (ctx, amount) => ctx.balance >= amount,
|
|
299
|
+
* function(amount: number) {
|
|
300
|
+
* return createMachine({ balance: this.balance - amount }, this);
|
|
301
|
+
* },
|
|
302
|
+
* { onFail: 'throw', errorMessage: 'Insufficient funds' }
|
|
303
|
+
* )
|
|
304
|
+
* });
|
|
305
|
+
*
|
|
306
|
+
* machine.withdraw(50); // ✅ Works synchronously
|
|
307
|
+
* machine.withdraw(200); // ❌ Throws "Insufficient funds"
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
export declare function guardSync<C extends object, TSuccess extends Machine<any>, TFailure extends Machine<any> = Machine<C>>(condition: (ctx: C, ...args: any[]) => boolean, transition: (...args: any[]) => TSuccess, options?: GuardOptions<C, TFailure>): GuardedTransition<C, TSuccess, TFailure>;
|
|
311
|
+
/**
|
|
312
|
+
* Fluent API for creating synchronous guarded transitions.
|
|
313
|
+
* Provides a more readable way to define conditional transitions with synchronous execution.
|
|
314
|
+
*
|
|
315
|
+
* @template C - The context type
|
|
316
|
+
* @param condition - Synchronous function that returns true if transition should proceed
|
|
317
|
+
* @returns A fluent interface for defining the guarded transition
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```typescript
|
|
321
|
+
* const machine = createMachine({ isAdmin: false }, {
|
|
322
|
+
* deleteUser: whenGuard((ctx) => ctx.isAdmin)
|
|
323
|
+
* .do(function(userId: string) {
|
|
324
|
+
* return createMachine({ ...this.context, deleted: userId }, this);
|
|
325
|
+
* })
|
|
326
|
+
* .else(function() {
|
|
327
|
+
* return createMachine({ ...this.context, error: 'Unauthorized' }, this);
|
|
328
|
+
* })
|
|
329
|
+
* });
|
|
330
|
+
* ```
|
|
331
|
+
*/
|
|
332
|
+
export declare function whenGuard<C extends object>(condition: (ctx: C, ...args: any[]) => boolean): {
|
|
333
|
+
/**
|
|
334
|
+
* Define the transition to execute when the condition passes.
|
|
335
|
+
* Returns a guarded transition that can optionally have an else clause.
|
|
336
|
+
*/
|
|
337
|
+
do<T extends Machine<any>>(transition: (...args: any[]) => T): (...args: any[]) => T | Machine<C>;
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* Fluent API for creating asynchronous guarded transitions.
|
|
341
|
+
* Provides a more readable way to define conditional transitions with async execution.
|
|
342
|
+
*
|
|
343
|
+
* @template C - The context type
|
|
344
|
+
* @param condition - Function that returns true if transition should proceed (can be async)
|
|
345
|
+
* @returns A fluent interface for defining the guarded transition
|
|
346
|
+
*
|
|
347
|
+
* @example
|
|
348
|
+
* ```typescript
|
|
349
|
+
* const machine = createMachine({ isAdmin: false }, {
|
|
350
|
+
* deleteUser: whenGuardAsync(async (ctx) => {
|
|
351
|
+
* // Simulate API call
|
|
352
|
+
* await checkPermissions(ctx.userId);
|
|
353
|
+
* return ctx.isAdmin;
|
|
354
|
+
* })
|
|
355
|
+
* .do(async function(userId: string) {
|
|
356
|
+
* await deleteUserFromDB(userId);
|
|
357
|
+
* return createMachine({ ...this.context, deleted: userId }, this);
|
|
358
|
+
* })
|
|
359
|
+
* .else(function() {
|
|
360
|
+
* return createMachine({ ...this.context, error: 'Unauthorized' }, this);
|
|
361
|
+
* })
|
|
362
|
+
* });
|
|
363
|
+
* ```
|
|
364
|
+
*/
|
|
365
|
+
export declare function whenGuardAsync<C extends object>(condition: (ctx: C, ...args: any[]) => boolean | Promise<boolean>): {
|
|
366
|
+
/**
|
|
367
|
+
* Define the transition to execute when the condition passes.
|
|
368
|
+
* Returns a guarded transition that can optionally have an else clause.
|
|
369
|
+
*/
|
|
370
|
+
do<T extends Machine<any>>(transition: (...args: any[]) => T): GuardedTransition<C, T, Machine<C>>;
|
|
371
|
+
};
|
|
171
372
|
/**
|
|
172
373
|
* Flexible metadata wrapper for functional and type-state patterns.
|
|
173
374
|
*
|
|
@@ -199,4 +400,5 @@ export declare function action<F extends (...args: any[]) => any, M extends Tran
|
|
|
199
400
|
* );
|
|
200
401
|
*/
|
|
201
402
|
export declare function metadata<T>(_meta: Partial<TransitionMeta>, value: T): T;
|
|
403
|
+
export {};
|
|
202
404
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;GAGG;AACH,eAAO,MAAM,QAAQ,eAAwB,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-extract.d.ts","sourceRoot":"","sources":["../../src/runtime-extract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,GAAG,GAAG,qBAAqB,GAAG,IAAI,CAO7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"runtime-extract.d.ts","sourceRoot":"","sources":["../../src/runtime-extract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,GAAG,GAAG,qBAAqB,GAAG,IAAI,CAO7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,CAmExD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,GAAG,CAgBL;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,GAAG,EACpB,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,GAAG,CAUL"}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -197,12 +197,117 @@ export declare class BoundMachine<M extends {
|
|
|
197
197
|
private readonly wrappedMachine;
|
|
198
198
|
[key: string | symbol]: any;
|
|
199
199
|
constructor(machine: M);
|
|
200
|
-
/**
|
|
201
|
-
* Access the underlying machine's context directly.
|
|
202
|
-
*/
|
|
203
|
-
get context(): M extends {
|
|
204
|
-
context: infer C;
|
|
205
|
-
} ? C : never;
|
|
206
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Creates a sequence machine that orchestrates multi-step flows by automatically
|
|
203
|
+
* advancing through a series of machines. When the current machine reaches a "final"
|
|
204
|
+
* state (determined by the isFinal predicate), the sequence automatically transitions
|
|
205
|
+
* to the next machine in the sequence.
|
|
206
|
+
*
|
|
207
|
+
* This is perfect for wizard-style flows, multi-step processes, or any scenario where
|
|
208
|
+
* you need to chain machines together with automatic progression.
|
|
209
|
+
*
|
|
210
|
+
* @template M - The tuple of machine types in the sequence.
|
|
211
|
+
* @param machines - The machines to sequence, in order.
|
|
212
|
+
* @param isFinal - A predicate function that determines when a machine is in a final state.
|
|
213
|
+
* Called after each transition to check if the sequence should advance.
|
|
214
|
+
* @returns A new machine that wraps the sequence, delegating to the current machine
|
|
215
|
+
* and automatically advancing when each machine reaches its final state.
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* // Define form machines with final states
|
|
220
|
+
* class NameForm extends MachineBase<{ name: string; valid: boolean }> {
|
|
221
|
+
* submit = (name: string) => new NameForm({ name, valid: name.length > 0 });
|
|
222
|
+
* }
|
|
223
|
+
*
|
|
224
|
+
* class EmailForm extends MachineBase<{ email: string; valid: boolean }> {
|
|
225
|
+
* submit = (email: string) => new EmailForm({ email, valid: email.includes('@') });
|
|
226
|
+
* }
|
|
227
|
+
*
|
|
228
|
+
* class PasswordForm extends MachineBase<{ password: string; valid: boolean }> {
|
|
229
|
+
* submit = (password: string) => new PasswordForm({ password, valid: password.length >= 8 });
|
|
230
|
+
* }
|
|
231
|
+
*
|
|
232
|
+
* // Create sequence that advances when each form becomes valid
|
|
233
|
+
* const wizard = sequence(
|
|
234
|
+
* [new NameForm({ name: '', valid: false }),
|
|
235
|
+
* new EmailForm({ email: '', valid: false }),
|
|
236
|
+
* new PasswordForm({ password: '', valid: false })],
|
|
237
|
+
* (machine) => machine.context.valid // Advance when valid becomes true
|
|
238
|
+
* );
|
|
239
|
+
*
|
|
240
|
+
* // Usage - automatically advances through forms
|
|
241
|
+
* let current = wizard;
|
|
242
|
+
* current = current.submit('John'); // Still on NameForm (not valid yet)
|
|
243
|
+
* current = current.submit('John Doe'); // Advances to EmailForm (name is valid)
|
|
244
|
+
* current = current.submit('john@'); // Still on EmailForm (not valid yet)
|
|
245
|
+
* current = current.submit('john@example.com'); // Advances to PasswordForm
|
|
246
|
+
* current = current.submit('12345678'); // Advances to end of sequence
|
|
247
|
+
* ```
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```typescript
|
|
251
|
+
* // Async sequence with API calls
|
|
252
|
+
* const authSequence = sequence(
|
|
253
|
+
* [new LoginForm(), new TwoFactorForm(), new Dashboard()],
|
|
254
|
+
* (machine) => machine.context.authenticated === true
|
|
255
|
+
* );
|
|
256
|
+
*
|
|
257
|
+
* // The sequence handles async transitions automatically
|
|
258
|
+
* const finalState = await authSequence.login('user@example.com', 'password');
|
|
259
|
+
* ```
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```typescript
|
|
263
|
+
* // Complex predicate - advance based on multiple conditions
|
|
264
|
+
* const complexSequence = sequence(
|
|
265
|
+
* [step1Machine, step2Machine, step3Machine],
|
|
266
|
+
* (machine) => {
|
|
267
|
+
* // Advance when all required fields are filled AND validated
|
|
268
|
+
* return machine.context.requiredFields.every(f => f.filled) &&
|
|
269
|
+
* machine.context.validationErrors.length === 0;
|
|
270
|
+
* }
|
|
271
|
+
* );
|
|
272
|
+
* ```
|
|
273
|
+
*
|
|
274
|
+
* @remarks
|
|
275
|
+
* - The sequence maintains the union type of all machines in the sequence
|
|
276
|
+
* - Transitions are delegated to the current machine in the sequence
|
|
277
|
+
* - When a machine reaches a final state, the sequence automatically advances
|
|
278
|
+
* - If the sequence reaches the end, further transitions return the final machine
|
|
279
|
+
* - The isFinal predicate is called after every transition to check advancement
|
|
280
|
+
* - Works with both sync and async machines (returns MaybePromise)
|
|
281
|
+
*/
|
|
282
|
+
export declare function sequence<M extends readonly [Machine<any>, ...Machine<any>[]]>(machines: M, isFinal: (machine: M[number]) => boolean): M[number];
|
|
283
|
+
/**
|
|
284
|
+
* Convenience overload for sequencing exactly 2 machines.
|
|
285
|
+
* Provides better type inference and IntelliSense for common 2-step flows.
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* ```typescript
|
|
289
|
+
* const flow = sequence2(
|
|
290
|
+
* new LoginForm(),
|
|
291
|
+
* new Dashboard(),
|
|
292
|
+
* (machine) => machine.context.authenticated
|
|
293
|
+
* );
|
|
294
|
+
* ```
|
|
295
|
+
*/
|
|
296
|
+
export declare function sequence2<M1 extends Machine<any>, M2 extends Machine<any>>(machine1: M1, machine2: M2, isFinal: (machine: M1 | M2) => boolean): M1 | M2;
|
|
297
|
+
/**
|
|
298
|
+
* Convenience overload for sequencing exactly 3 machines.
|
|
299
|
+
* Provides better type inference and IntelliSense for common 3-step flows.
|
|
300
|
+
*
|
|
301
|
+
* @example
|
|
302
|
+
* ```typescript
|
|
303
|
+
* const wizard = sequence3(
|
|
304
|
+
* new NameForm({ name: '', valid: false }),
|
|
305
|
+
* new EmailForm({ email: '', valid: false }),
|
|
306
|
+
* new PasswordForm({ password: '', valid: false }),
|
|
307
|
+
* (machine) => machine.context.valid
|
|
308
|
+
* );
|
|
309
|
+
* ```
|
|
310
|
+
*/
|
|
311
|
+
export declare function sequence3<M1 extends Machine<any>, M2 extends Machine<any>, M3 extends Machine<any>>(machine1: M1, machine2: M2, machine3: M3, isFinal: (machine: M1 | M2 | M3) => boolean): M1 | M2 | M3;
|
|
207
312
|
export {};
|
|
208
313
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,KAAK,EACL,WAAW,EACX,cAAc,EAEf,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,KAAK,gBAAgB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,gBAAgB,EAChD,OAAO,EAAE,GAAG,EACZ,YAAY,EAAE,CAAC,GACd,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAE5B;AAOD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACtB,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EACvC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAElD;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACjD,OAAO,EAAE,CAAC,EACV,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAClC,CAAC,CAEH;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC/D,cAAc,EAAE,CAAC,EACjB,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,GAC5C,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAO9E;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAChE,EAAE,EAAE,CAAC,EACL,OAAO,EAAE,CAAC,EACV,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GACjE,UAAU,CAAC,CAAC,CAAC,CAEf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAqBzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAI;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;gBAEhB,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doeixd/machine",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"src"
|
|
@@ -46,6 +46,10 @@
|
|
|
46
46
|
"optional": true
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"ts-morph": "^27.0.2",
|
|
51
|
+
"tsx": "^4.20.6"
|
|
52
|
+
},
|
|
49
53
|
"devDependencies": {
|
|
50
54
|
"@types/node": "^22.10.2",
|
|
51
55
|
"@types/react": "^19.2.4",
|
|
@@ -58,9 +62,8 @@
|
|
|
58
62
|
"solid-js": "^1.8.22",
|
|
59
63
|
"standard-version": "^9.5.0",
|
|
60
64
|
"tslib": "^2.8.1",
|
|
61
|
-
"tsx": "^4.20.6",
|
|
62
65
|
"typescript": "^5.7.2",
|
|
63
|
-
"vitest": "^2.1.
|
|
66
|
+
"vitest": "^2.1.9"
|
|
64
67
|
},
|
|
65
68
|
"scripts": {
|
|
66
69
|
"release": "standard-version && git push --follow-tags origin main",
|
|
@@ -71,7 +74,7 @@
|
|
|
71
74
|
"watch": "pridepack watch",
|
|
72
75
|
"start": "pridepack start",
|
|
73
76
|
"dev": "pridepack dev",
|
|
74
|
-
"test": "vitest
|
|
77
|
+
"test": "vitest run",
|
|
75
78
|
"extract": "tsx scripts/extract-statechart.ts --config .statechart.config.ts",
|
|
76
79
|
"extract:watch": "tsx scripts/extract-statechart.ts --config .statechart.config.ts --watch",
|
|
77
80
|
"extract:validate": "tsx scripts/extract-statechart.ts --config .statechart.config.ts --validate",
|
|
@@ -91,9 +94,6 @@
|
|
|
91
94
|
"publishConfig": {
|
|
92
95
|
"access": "public"
|
|
93
96
|
},
|
|
94
|
-
"dependencies": {
|
|
95
|
-
"ts-morph": "^27.0.2"
|
|
96
|
-
},
|
|
97
97
|
"types": "./dist/types/index.d.ts",
|
|
98
98
|
"main": "./dist/cjs/production/index.js",
|
|
99
99
|
"module": "./dist/esm/production/index.js",
|
|
@@ -110,5 +110,8 @@
|
|
|
110
110
|
},
|
|
111
111
|
"typesVersions": {
|
|
112
112
|
"*": {}
|
|
113
|
+
},
|
|
114
|
+
"bin": {
|
|
115
|
+
"extract": "./scripts/extract-statechart.ts"
|
|
113
116
|
}
|
|
114
117
|
}
|