@camcima/finita 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +39 -3
  2. package/dist/Statemachine.d.ts +4 -4
  3. package/dist/Statemachine.d.ts.map +1 -1
  4. package/dist/Statemachine.js.map +1 -1
  5. package/dist/Transition.d.ts +4 -4
  6. package/dist/Transition.d.ts.map +1 -1
  7. package/dist/Transition.js.map +1 -1
  8. package/dist/condition/AndComposite.d.ts +4 -4
  9. package/dist/condition/AndComposite.d.ts.map +1 -1
  10. package/dist/condition/AndComposite.js.map +1 -1
  11. package/dist/condition/CallbackCondition.d.ts +4 -4
  12. package/dist/condition/CallbackCondition.d.ts.map +1 -1
  13. package/dist/condition/CallbackCondition.js.map +1 -1
  14. package/dist/condition/Not.d.ts +3 -3
  15. package/dist/condition/Not.d.ts.map +1 -1
  16. package/dist/condition/Not.js.map +1 -1
  17. package/dist/condition/OrComposite.d.ts +4 -4
  18. package/dist/condition/OrComposite.d.ts.map +1 -1
  19. package/dist/condition/OrComposite.js.map +1 -1
  20. package/dist/factory/AbstractNamedProcessDetector.d.ts +3 -3
  21. package/dist/factory/AbstractNamedProcessDetector.d.ts.map +1 -1
  22. package/dist/factory/AbstractNamedProcessDetector.js.map +1 -1
  23. package/dist/factory/Factory.d.ts +5 -5
  24. package/dist/factory/Factory.d.ts.map +1 -1
  25. package/dist/factory/Factory.js.map +1 -1
  26. package/dist/factory/SingleProcessDetector.d.ts +2 -2
  27. package/dist/factory/SingleProcessDetector.d.ts.map +1 -1
  28. package/dist/factory/SingleProcessDetector.js.map +1 -1
  29. package/dist/factory/StatefulStateNameDetector.d.ts +3 -2
  30. package/dist/factory/StatefulStateNameDetector.d.ts.map +1 -1
  31. package/dist/factory/StatefulStateNameDetector.js.map +1 -1
  32. package/dist/filter/ActiveTransitionFilter.d.ts +1 -1
  33. package/dist/filter/ActiveTransitionFilter.d.ts.map +1 -1
  34. package/dist/filter/ActiveTransitionFilter.js.map +1 -1
  35. package/dist/interfaces/ConditionInterface.d.ts +2 -2
  36. package/dist/interfaces/ConditionInterface.d.ts.map +1 -1
  37. package/dist/interfaces/FactoryInterface.d.ts +4 -4
  38. package/dist/interfaces/FactoryInterface.d.ts.map +1 -1
  39. package/dist/interfaces/MutexFactoryInterface.d.ts +2 -2
  40. package/dist/interfaces/MutexFactoryInterface.d.ts.map +1 -1
  41. package/dist/interfaces/ProcessDetectorInterface.d.ts +2 -2
  42. package/dist/interfaces/ProcessDetectorInterface.d.ts.map +1 -1
  43. package/dist/interfaces/StateNameDetectorInterface.d.ts +2 -2
  44. package/dist/interfaces/StateNameDetectorInterface.d.ts.map +1 -1
  45. package/dist/interfaces/StatemachineInterface.d.ts +3 -3
  46. package/dist/interfaces/StatemachineInterface.d.ts.map +1 -1
  47. package/dist/interfaces/TransitionInterface.d.ts +3 -3
  48. package/dist/interfaces/TransitionInterface.d.ts.map +1 -1
  49. package/dist/interfaces/TransitionSelectorInterface.d.ts +2 -2
  50. package/dist/interfaces/TransitionSelectorInterface.d.ts.map +1 -1
  51. package/dist/mutex/MutexFactory.d.ts +4 -4
  52. package/dist/mutex/MutexFactory.d.ts.map +1 -1
  53. package/dist/mutex/MutexFactory.js.map +1 -1
  54. package/dist/selector/OneOrNoneActiveTransition.d.ts +2 -2
  55. package/dist/selector/OneOrNoneActiveTransition.d.ts.map +1 -1
  56. package/dist/selector/OneOrNoneActiveTransition.js.map +1 -1
  57. package/dist/selector/ScoreTransition.d.ts +4 -4
  58. package/dist/selector/ScoreTransition.d.ts.map +1 -1
  59. package/dist/selector/ScoreTransition.js +2 -1
  60. package/dist/selector/ScoreTransition.js.map +1 -1
  61. package/dist/selector/WeightTransition.d.ts +3 -3
  62. package/dist/selector/WeightTransition.d.ts.map +1 -1
  63. package/dist/selector/WeightTransition.js +2 -1
  64. package/dist/selector/WeightTransition.js.map +1 -1
  65. package/package.json +2 -2
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  [![CI](https://github.com/camcima/finita/actions/workflows/ci.yml/badge.svg)](https://github.com/camcima/finita/actions/workflows/ci.yml)
10
10
  [![codecov](https://codecov.io/gh/camcima/finita/graph/badge.svg)](https://codecov.io/gh/camcima/finita)
11
- [![npm version](https://img.shields.io/npm/v/finita)](https://www.npmjs.com/package/finita)
11
+ [![npm version](https://img.shields.io/npm/v/@camcima/finita)](https://www.npmjs.com/package/@camcima/finita)
12
12
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
13
13
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/)
14
14
  [![Node.js](https://img.shields.io/badge/Node.js-18%20%7C%2020%20%7C%2022-green.svg)](https://nodejs.org/)
@@ -21,6 +21,7 @@ This library is a TypeScript port of [metabor/statemachine](https://github.com/M
21
21
 
22
22
  ## Features
23
23
 
24
+ - **Type-Safe Subjects** -- generic `TSubject` parameter gives you typed access to the domain object, with `unknown` default for backward compatibility
24
25
  - **Async-First** -- all conditions, observers, and mutexes support async operations via `MaybePromise<T>` return types
25
26
  - **States, Transitions, Events** -- define complex workflows declaratively
26
27
  - **Conditions (Guards)** -- control when transitions are allowed, with composable AND/OR/NOT logic
@@ -37,7 +38,7 @@ This library is a TypeScript port of [metabor/statemachine](https://github.com/M
37
38
  ## Installation
38
39
 
39
40
  ```bash
40
- npm install finita
41
+ npm install @camcima/finita
41
42
  ```
42
43
 
43
44
  ## Quick Start
@@ -51,7 +52,7 @@ stateDiagram-v2
51
52
  ```
52
53
 
53
54
  ```typescript
54
- import { State, Transition, Process, Statemachine } from "finita";
55
+ import { State, Transition, Process, Statemachine } from "@camcima/finita";
55
56
 
56
57
  // Define states
57
58
  const draft = new State("draft");
@@ -79,6 +80,41 @@ console.log(sm.getCurrentState().getName()); // 'archived'
79
80
  // Note: use top-level await (supported in ES modules) or wrap in an async function.
80
81
  ```
81
82
 
83
+ ### Typed Usage
84
+
85
+ Use the `TSubject` generic parameter for type-safe access to your domain object -- no more casts:
86
+
87
+ ```typescript
88
+ import {
89
+ State,
90
+ Transition,
91
+ Process,
92
+ Statemachine,
93
+ CallbackCondition,
94
+ } from "@camcima/finita";
95
+
96
+ interface Order {
97
+ id: number;
98
+ total: number;
99
+ }
100
+
101
+ const pending = new State("pending");
102
+ const approved = new State("approved");
103
+
104
+ // subject is typed as Order -- no cast needed
105
+ const canApprove = new CallbackCondition<Order>(
106
+ "canApprove",
107
+ (order) => order.total <= 1000,
108
+ );
109
+ pending.addTransition(new Transition(approved, "review", canApprove));
110
+
111
+ const process = new Process("order", pending);
112
+ const sm = new Statemachine<Order>({ id: 1, total: 500 }, process);
113
+
114
+ const order = sm.getSubject(); // typed as Order
115
+ console.log(order.total); // 500
116
+ ```
117
+
82
118
  ## Concepts
83
119
 
84
120
  A state machine consists of:
@@ -6,7 +6,7 @@ import type { MutexInterface } from "./interfaces/MutexInterface.js";
6
6
  import type { TransitionSelectorInterface } from "./interfaces/TransitionSelectorInterface.js";
7
7
  import type { DispatcherInterface } from "./interfaces/DispatcherInterface.js";
8
8
  import type { Observer } from "./interfaces/Observer.js";
9
- export declare class Statemachine implements StatemachineInterface {
9
+ export declare class Statemachine<TSubject = unknown> implements StatemachineInterface<TSubject> {
10
10
  private readonly subject;
11
11
  private currentState;
12
12
  private lastState;
@@ -19,12 +19,12 @@ export declare class Statemachine implements StatemachineInterface {
19
19
  private currentEvent;
20
20
  private currentContext;
21
21
  private readonly observers;
22
- constructor(subject: unknown, process: ProcessInterface, stateName?: string | null, transitionSelector?: TransitionSelectorInterface | null, mutex?: MutexInterface | null);
22
+ constructor(subject: TSubject, process: ProcessInterface, stateName?: string | null, transitionSelector?: TransitionSelectorInterface<TSubject> | null, mutex?: MutexInterface | null);
23
23
  getProcess(): ProcessInterface;
24
24
  getCurrentState(): StateInterface;
25
25
  getLastState(): StateInterface | null;
26
- getSubject(): unknown;
27
- getSelectedTransition(): TransitionInterface | null;
26
+ getSubject(): TSubject;
27
+ getSelectedTransition(): TransitionInterface<TSubject> | null;
28
28
  getCurrentContext(): Map<string, unknown> | null;
29
29
  private doCheckTransitions;
30
30
  private onDispatcherReady;
@@ -1 +1 @@
1
- {"version":3,"file":"Statemachine.d.ts","sourceRoot":"","sources":["../src/Statemachine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AASzD,qBAAa,YAAa,YAAW,qBAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAGpD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,gBAAgB,EACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,kBAAkB,CAAC,EAAE,2BAA2B,GAAG,IAAI,EACvD,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAc/B,UAAU,IAAI,gBAAgB;IAI9B,eAAe,IAAI,cAAc;IAIjC,YAAY,IAAI,cAAc,GAAG,IAAI;IAIrC,UAAU,IAAI,OAAO;IAIrB,qBAAqB,IAAI,mBAAmB,GAAG,IAAI;IAInD,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;YAIlC,kBAAkB;YAyDlB,iBAAiB;IAiBzB,aAAa,CACjB,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IA6BV,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IAeV,gBAAgB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAYvD,2BAA2B;IAMzC,iBAAiB,IAAI,OAAO;IAI5B,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAIxC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAO/B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,cAAc,IAAI,OAAO;IAIzB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIhC,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC;CAGnC"}
1
+ {"version":3,"file":"Statemachine.d.ts","sourceRoot":"","sources":["../src/Statemachine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AASzD,qBAAa,YAAY,CAAC,QAAQ,GAAG,OAAO,CAC1C,YAAW,qBAAqB,CAAC,QAAQ,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;IAC3E,OAAO,CAAC,kBAAkB,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAGpD,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,gBAAgB,EACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,kBAAkB,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC,GAAG,IAAI,EACjE,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAc/B,UAAU,IAAI,gBAAgB;IAI9B,eAAe,IAAI,cAAc;IAIjC,YAAY,IAAI,cAAc,GAAG,IAAI;IAIrC,UAAU,IAAI,QAAQ;IAItB,qBAAqB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAI7D,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;YAIlC,kBAAkB;YAyDlB,iBAAiB;IAiBzB,aAAa,CACjB,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IA6BV,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IAeV,gBAAgB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAYvD,2BAA2B;IAMzC,iBAAiB,IAAI,OAAO;IAI5B,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAIxC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAO/B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,cAAc,IAAI,OAAO;IAIzB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIhC,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC;CAGnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Statemachine.js","sourceRoot":"","sources":["../src/Statemachine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Statemachine.js","sourceRoot":"","sources":["../src/Statemachine.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,17 @@ import type { TransitionInterface } from "./interfaces/TransitionInterface.js";
2
2
  import type { StateInterface } from "./interfaces/StateInterface.js";
3
3
  import type { EventInterface } from "./interfaces/EventInterface.js";
4
4
  import type { ConditionInterface } from "./interfaces/ConditionInterface.js";
5
- export declare class Transition implements TransitionInterface {
5
+ export declare class Transition<TSubject = unknown> implements TransitionInterface<TSubject> {
6
6
  private readonly targetState;
7
7
  private readonly eventName;
8
8
  private readonly condition;
9
9
  private weight;
10
- constructor(targetState: StateInterface, eventName?: string | null, condition?: ConditionInterface | null);
10
+ constructor(targetState: StateInterface, eventName?: string | null, condition?: ConditionInterface<TSubject> | null);
11
11
  getTargetState(): StateInterface;
12
12
  getEventName(): string | null;
13
13
  getConditionName(): string | null;
14
- getCondition(): ConditionInterface | null;
15
- isActive(subject: unknown, context: Map<string, unknown>, event?: EventInterface): Promise<boolean>;
14
+ getCondition(): ConditionInterface<TSubject> | null;
15
+ isActive(subject: TSubject, context: Map<string, unknown>, event?: EventInterface): Promise<boolean>;
16
16
  getWeight(): number;
17
17
  setWeight(weight: number): void;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../src/Transition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,qBAAa,UAAW,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,MAAM,CAAa;gBAGzB,WAAW,EAAE,cAAc,EAC3B,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,SAAS,GAAE,kBAAkB,GAAG,IAAW;IAO7C,cAAc,IAAI,cAAc;IAIhC,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAOjC,YAAY,IAAI,kBAAkB,GAAG,IAAI;IAInC,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC;IAanB,SAAS,IAAI,MAAM;IAInB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhC"}
1
+ {"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../src/Transition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,qBAAa,UAAU,CAAC,QAAQ,GAAG,OAAO,CACxC,YAAW,mBAAmB,CAAC,QAAQ,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,MAAM,CAAa;gBAGzB,WAAW,EAAE,cAAc,EAC3B,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,SAAS,GAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAW;IAOvD,cAAc,IAAI,cAAc;IAIhC,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAOjC,YAAY,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAI7C,QAAQ,CACZ,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC;IAanB,SAAS,IAAI,MAAM;IAInB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Transition.js","sourceRoot":"","sources":["../src/Transition.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;IACJ,WAAW,CAAiB;IAC5B,SAAS,CAAgB;IACzB,SAAS,CAA4B;IAC9C,MAAM,GAAW,CAAC,CAAC;IAE3B,YACE,WAA2B,EAC3B,YAA2B,IAAI,EAC/B,YAAuC,IAAI;QAE3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAgB,EAChB,OAA6B,EAC7B,KAAsB;QAEtB,IAAI,MAAe,CAAC;QACpB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"Transition.js","sourceRoot":"","sources":["../src/Transition.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;IAGJ,WAAW,CAAiB;IAC5B,SAAS,CAAgB;IACzB,SAAS,CAAsC;IACxD,MAAM,GAAW,CAAC,CAAC;IAE3B,YACE,WAA2B,EAC3B,YAA2B,IAAI,EAC/B,YAAiD,IAAI;QAErD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAiB,EACjB,OAA6B,EAC7B,KAAsB;QAEtB,IAAI,MAAe,CAAC;QACpB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { ConditionInterface } from "../interfaces/ConditionInterface.js";
2
- export declare class AndComposite implements ConditionInterface {
2
+ export declare class AndComposite<TSubject = unknown> implements ConditionInterface<TSubject> {
3
3
  private readonly conditions;
4
- constructor(condition: ConditionInterface);
5
- addAnd(condition: ConditionInterface): this;
4
+ constructor(condition: ConditionInterface<TSubject>);
5
+ addAnd(condition: ConditionInterface<TSubject>): this;
6
6
  getName(): string;
7
- checkCondition(subject: unknown, context: Map<string, unknown>): Promise<boolean>;
7
+ checkCondition(subject: TSubject, context: Map<string, unknown>): Promise<boolean>;
8
8
  }
9
9
  //# sourceMappingURL=AndComposite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AndComposite.d.ts","sourceRoot":"","sources":["../../src/condition/AndComposite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,qBAAa,YAAa,YAAW,kBAAkB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;gBAE3C,SAAS,EAAE,kBAAkB;IAIzC,MAAM,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAK3C,OAAO,IAAI,MAAM;IAKX,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;CAQpB"}
1
+ {"version":3,"file":"AndComposite.d.ts","sourceRoot":"","sources":["../../src/condition/AndComposite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,qBAAa,YAAY,CAAC,QAAQ,GAAG,OAAO,CAC1C,YAAW,kBAAkB,CAAC,QAAQ,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;gBAErD,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IAInD,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAKrD,OAAO,IAAI,MAAM;IAKX,cAAc,CAClB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;CAQpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AndComposite.js","sourceRoot":"","sources":["../../src/condition/AndComposite.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACN,UAAU,GAAyB,EAAE,CAAC;IAEvD,YAAY,SAA6B;QACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,SAA6B;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAgB,EAChB,OAA6B;QAE7B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"AndComposite.js","sourceRoot":"","sources":["../../src/condition/AndComposite.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IAGN,UAAU,GAAmC,EAAE,CAAC;IAEjE,YAAY,SAAuC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,SAAuC;QAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAiB,EACjB,OAA6B;QAE7B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
1
  import type { ConditionInterface } from "../interfaces/ConditionInterface.js";
2
2
  import type { MaybePromise } from "../MaybePromise.js";
3
- export type ConditionCallbackFn = (subject: unknown, context: Map<string, unknown>) => MaybePromise<boolean>;
4
- export declare class CallbackCondition implements ConditionInterface {
3
+ export type ConditionCallbackFn<TSubject = unknown> = (subject: TSubject, context: Map<string, unknown>) => MaybePromise<boolean>;
4
+ export declare class CallbackCondition<TSubject = unknown> implements ConditionInterface<TSubject> {
5
5
  private readonly name;
6
6
  private readonly callable;
7
- constructor(name: string, callable: ConditionCallbackFn);
7
+ constructor(name: string, callable: ConditionCallbackFn<TSubject>);
8
8
  getName(): string;
9
- checkCondition(subject: unknown, context: Map<string, unknown>): MaybePromise<boolean>;
9
+ checkCondition(subject: TSubject, context: Map<string, unknown>): MaybePromise<boolean>;
10
10
  }
11
11
  //# sourceMappingURL=CallbackCondition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallbackCondition.d.ts","sourceRoot":"","sources":["../../src/condition/CallbackCondition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;AAE3B,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAEnC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB;IAKvD,OAAO,IAAI,MAAM;IAIjB,cAAc,CACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,YAAY,CAAC,OAAO,CAAC;CAGzB"}
1
+ {"version":3,"file":"CallbackCondition.d.ts","sourceRoot":"","sources":["../../src/condition/CallbackCondition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,CAAC,QAAQ,GAAG,OAAO,IAAI,CACpD,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;AAE3B,qBAAa,iBAAiB,CAAC,QAAQ,GAAG,OAAO,CAC/C,YAAW,kBAAkB,CAAC,QAAQ,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;gBAE7C,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAKjE,OAAO,IAAI,MAAM;IAIjB,cAAc,CACZ,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,YAAY,CAAC,OAAO,CAAC;CAGzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CallbackCondition.js","sourceRoot":"","sources":["../../src/condition/CallbackCondition.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,iBAAiB;IACX,IAAI,CAAS;IACb,QAAQ,CAAsB;IAE/C,YAAY,IAAY,EAAE,QAA6B;QACrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CACZ,OAAgB,EAChB,OAA6B;QAE7B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"CallbackCondition.js","sourceRoot":"","sources":["../../src/condition/CallbackCondition.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,iBAAiB;IAGX,IAAI,CAAS;IACb,QAAQ,CAAgC;IAEzD,YAAY,IAAY,EAAE,QAAuC;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CACZ,OAAiB,EACjB,OAA6B;QAE7B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  import type { ConditionInterface } from "../interfaces/ConditionInterface.js";
2
- export declare class Not implements ConditionInterface {
2
+ export declare class Not<TSubject = unknown> implements ConditionInterface<TSubject> {
3
3
  private readonly condition;
4
- constructor(condition: ConditionInterface);
4
+ constructor(condition: ConditionInterface<TSubject>);
5
5
  getName(): string;
6
- checkCondition(subject: unknown, context: Map<string, unknown>): Promise<boolean>;
6
+ checkCondition(subject: TSubject, context: Map<string, unknown>): Promise<boolean>;
7
7
  }
8
8
  //# sourceMappingURL=Not.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Not.d.ts","sourceRoot":"","sources":["../../src/condition/Not.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,qBAAa,GAAI,YAAW,kBAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;gBAEnC,SAAS,EAAE,kBAAkB;IAIzC,OAAO,IAAI,MAAM;IAIX,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;CAGpB"}
1
+ {"version":3,"file":"Not.d.ts","sourceRoot":"","sources":["../../src/condition/Not.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,qBAAa,GAAG,CAAC,QAAQ,GAAG,OAAO,CACjC,YAAW,kBAAkB,CAAC,QAAQ,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;gBAE7C,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IAInD,OAAO,IAAI,MAAM;IAIX,cAAc,CAClB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;CAGpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Not.js","sourceRoot":"","sources":["../../src/condition/Not.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG;IACG,SAAS,CAAqB;IAE/C,YAAY,SAA6B;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAgB,EAChB,OAA6B;QAE7B,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"Not.js","sourceRoot":"","sources":["../../src/condition/Not.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG;IAGG,SAAS,CAA+B;IAEzD,YAAY,SAAuC;QACjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAiB,EACjB,OAA6B;QAE7B,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { ConditionInterface } from "../interfaces/ConditionInterface.js";
2
- export declare class OrComposite implements ConditionInterface {
2
+ export declare class OrComposite<TSubject = unknown> implements ConditionInterface<TSubject> {
3
3
  private readonly conditions;
4
- constructor(condition: ConditionInterface);
5
- addOr(condition: ConditionInterface): this;
4
+ constructor(condition: ConditionInterface<TSubject>);
5
+ addOr(condition: ConditionInterface<TSubject>): this;
6
6
  getName(): string;
7
- checkCondition(subject: unknown, context: Map<string, unknown>): Promise<boolean>;
7
+ checkCondition(subject: TSubject, context: Map<string, unknown>): Promise<boolean>;
8
8
  }
9
9
  //# sourceMappingURL=OrComposite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrComposite.d.ts","sourceRoot":"","sources":["../../src/condition/OrComposite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;gBAE3C,SAAS,EAAE,kBAAkB;IAIzC,KAAK,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAK1C,OAAO,IAAI,MAAM;IAKX,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;CAQpB"}
1
+ {"version":3,"file":"OrComposite.d.ts","sourceRoot":"","sources":["../../src/condition/OrComposite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,qBAAa,WAAW,CAAC,QAAQ,GAAG,OAAO,CACzC,YAAW,kBAAkB,CAAC,QAAQ,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;gBAErD,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IAInD,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAKpD,OAAO,IAAI,MAAM;IAKX,cAAc,CAClB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;CAQpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"OrComposite.js","sourceRoot":"","sources":["../../src/condition/OrComposite.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACL,UAAU,GAAyB,EAAE,CAAC;IAEvD,YAAY,SAA6B;QACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,SAA6B;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAgB,EAChB,OAA6B;QAE7B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"OrComposite.js","sourceRoot":"","sources":["../../src/condition/OrComposite.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAGL,UAAU,GAAmC,EAAE,CAAC;IAEjE,YAAY,SAAuC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,SAAuC;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAiB,EACjB,OAA6B;QAE7B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
1
  import type { ProcessDetectorInterface } from "../interfaces/ProcessDetectorInterface.js";
2
2
  import type { ProcessInterface } from "../interfaces/ProcessInterface.js";
3
- export declare abstract class AbstractNamedProcessDetector implements ProcessDetectorInterface {
3
+ export declare abstract class AbstractNamedProcessDetector<TSubject = unknown> implements ProcessDetectorInterface<TSubject> {
4
4
  private readonly processes;
5
- protected abstract detectProcessName(subject: unknown): string;
5
+ protected abstract detectProcessName(subject: TSubject): string;
6
6
  addProcess(process: ProcessInterface): void;
7
7
  hasProcess(name: string): boolean;
8
- detectProcess(subject: unknown): ProcessInterface;
8
+ detectProcess(subject: TSubject): ProcessInterface;
9
9
  }
10
10
  //# sourceMappingURL=AbstractNamedProcessDetector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNamedProcessDetector.d.ts","sourceRoot":"","sources":["../../src/factory/AbstractNamedProcessDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,8BAAsB,4BAA6B,YAAW,wBAAwB;IACpF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAE9D,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;CAQlD"}
1
+ {"version":3,"file":"AbstractNamedProcessDetector.d.ts","sourceRoot":"","sources":["../../src/factory/AbstractNamedProcessDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,8BAAsB,4BAA4B,CAAC,QAAQ,GAAG,OAAO,CACnE,YAAW,wBAAwB,CAAC,QAAQ,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM;IAE/D,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,gBAAgB;CAQnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNamedProcessDetector.js","sourceRoot":"","sources":["../../src/factory/AbstractNamedProcessDetector.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,4BAA4B;IAC/B,SAAS,GAAkC,IAAI,GAAG,EAAE,CAAC;IAItE,UAAU,CAAC,OAAyB;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,OAAgB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"AbstractNamedProcessDetector.js","sourceRoot":"","sources":["../../src/factory/AbstractNamedProcessDetector.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,4BAA4B;IAG/B,SAAS,GAAkC,IAAI,GAAG,EAAE,CAAC;IAItE,UAAU,CAAC,OAAyB;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,OAAiB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -5,18 +5,18 @@ import type { TransitionSelectorInterface } from "../interfaces/TransitionSelect
5
5
  import type { MutexFactoryInterface } from "../interfaces/MutexFactoryInterface.js";
6
6
  import type { StatemachineInterface } from "../interfaces/StatemachineInterface.js";
7
7
  import type { Observer } from "../interfaces/Observer.js";
8
- export declare class Factory implements FactoryInterface {
8
+ export declare class Factory<TSubject = unknown> implements FactoryInterface<TSubject> {
9
9
  private readonly processDetector;
10
10
  private readonly stateNameDetector;
11
11
  private readonly statemachineObservers;
12
12
  private transitionSelector;
13
13
  private mutexFactory;
14
- constructor(processDetector: ProcessDetectorInterface, stateNameDetector?: StateNameDetectorInterface | null);
15
- setMutexFactory(factory: MutexFactoryInterface | null): void;
16
- setTransitionSelector(selector: TransitionSelectorInterface): void;
14
+ constructor(processDetector: ProcessDetectorInterface<TSubject>, stateNameDetector?: StateNameDetectorInterface<TSubject> | null);
15
+ setMutexFactory(factory: MutexFactoryInterface<TSubject> | null): void;
16
+ setTransitionSelector(selector: TransitionSelectorInterface<TSubject>): void;
17
17
  attachStatemachineObserver(observer: Observer): void;
18
18
  detachStatemachineObserver(observer: Observer): void;
19
19
  getStatemachineObservers(): Iterable<Observer>;
20
- createStatemachine(subject: unknown): Promise<StatemachineInterface>;
20
+ createStatemachine(subject: TSubject): Promise<StatemachineInterface<TSubject>>;
21
21
  }
22
22
  //# sourceMappingURL=Factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../src/factory/Factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,qBAAa,OAAQ,YAAW,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoC;IACtE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4B;IAClE,OAAO,CAAC,kBAAkB,CAA4C;IACtE,OAAO,CAAC,YAAY,CAAsC;gBAGxD,eAAe,EAAE,wBAAwB,EACzC,iBAAiB,CAAC,EAAE,0BAA0B,GAAG,IAAI;IAMvD,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI;IAI5D,qBAAqB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAIlE,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIpD,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIpD,wBAAwB,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAIxC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAyB3E"}
1
+ {"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../src/factory/Factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,qBAAa,OAAO,CAAC,QAAQ,GAAG,OAAO,CACrC,YAAW,gBAAgB,CAAC,QAAQ,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8C;IAChF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4B;IAClE,OAAO,CAAC,kBAAkB,CACnB;IACP,OAAO,CAAC,YAAY,CAAgD;gBAGlE,eAAe,EAAE,wBAAwB,CAAC,QAAQ,CAAC,EACnD,iBAAiB,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAAG,IAAI;IAMjE,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI;IAItE,qBAAqB,CACnB,QAAQ,EAAE,2BAA2B,CAAC,QAAQ,CAAC,GAC9C,IAAI;IAIP,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIpD,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIpD,wBAAwB,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAIxC,kBAAkB,CACtB,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;CAyB5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../src/factory/Factory.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,OAAO;IACD,eAAe,CAA2B;IAC1C,iBAAiB,CAAoC;IACrD,qBAAqB,GAAkB,IAAI,GAAG,EAAE,CAAC;IAC1D,kBAAkB,GAAuC,IAAI,CAAC;IAC9D,YAAY,GAAiC,IAAI,CAAC;IAE1D,YACE,eAAyC,EACzC,iBAAqD;QAErD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,OAAqC;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,qBAAqB,CAAC,QAAqC;QACzD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,0BAA0B,CAAC,QAAkB;QAC3C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,0BAA0B,CAAC,QAAkB;QAC3C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAgB;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB;YACtC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,OAAO,EACP,OAAO,EACP,SAAS,EACT,IAAI,CAAC,kBAAkB,EACvB,KAAK,CACN,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAClD,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../src/factory/Factory.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,OAAO;IAGD,eAAe,CAAqC;IACpD,iBAAiB,CAA8C;IAC/D,qBAAqB,GAAkB,IAAI,GAAG,EAAE,CAAC;IAC1D,kBAAkB,GACxB,IAAI,CAAC;IACC,YAAY,GAA2C,IAAI,CAAC;IAEpE,YACE,eAAmD,EACnD,iBAA+D;QAE/D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,OAA+C;QAC7D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,qBAAqB,CACnB,QAA+C;QAE/C,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,0BAA0B,CAAC,QAAkB;QAC3C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,0BAA0B,CAAC,QAAkB;QAC3C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB;YACtC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,OAAO,EACP,OAAO,EACP,SAAS,EACT,IAAI,CAAC,kBAAkB,EACvB,KAAK,CACN,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAClD,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  import type { ProcessDetectorInterface } from "../interfaces/ProcessDetectorInterface.js";
2
2
  import type { ProcessInterface } from "../interfaces/ProcessInterface.js";
3
- export declare class SingleProcessDetector implements ProcessDetectorInterface {
3
+ export declare class SingleProcessDetector<TSubject = unknown> implements ProcessDetectorInterface<TSubject> {
4
4
  private readonly process;
5
5
  constructor(process: ProcessInterface);
6
- detectProcess(_subject: unknown): ProcessInterface;
6
+ detectProcess(_subject: TSubject): ProcessInterface;
7
7
  }
8
8
  //# sourceMappingURL=SingleProcessDetector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleProcessDetector.d.ts","sourceRoot":"","sources":["../../src/factory/SingleProcessDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,qBAAa,qBAAsB,YAAW,wBAAwB;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;gBAE/B,OAAO,EAAE,gBAAgB;IAIrC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,gBAAgB;CAGnD"}
1
+ {"version":3,"file":"SingleProcessDetector.d.ts","sourceRoot":"","sources":["../../src/factory/SingleProcessDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,qBAAa,qBAAqB,CAAC,QAAQ,GAAG,OAAO,CACnD,YAAW,wBAAwB,CAAC,QAAQ,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;gBAE/B,OAAO,EAAE,gBAAgB;IAIrC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB;CAGpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SingleProcessDetector.js","sourceRoot":"","sources":["../../src/factory/SingleProcessDetector.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IACf,OAAO,CAAmB;IAE3C,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,QAAiB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"SingleProcessDetector.js","sourceRoot":"","sources":["../../src/factory/SingleProcessDetector.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IAGf,OAAO,CAAmB;IAE3C,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,QAAkB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import type { StateNameDetectorInterface } from "../interfaces/StateNameDetectorInterface.js";
2
- export declare class StatefulStateNameDetector implements StateNameDetectorInterface {
3
- detectCurrentStateName(subject: unknown): string | null;
2
+ import type { StatefulInterface } from "../interfaces/StatefulInterface.js";
3
+ export declare class StatefulStateNameDetector implements StateNameDetectorInterface<StatefulInterface> {
4
+ detectCurrentStateName(subject: StatefulInterface): string | null;
4
5
  }
5
6
  //# sourceMappingURL=StatefulStateNameDetector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatefulStateNameDetector.d.ts","sourceRoot":"","sources":["../../src/factory/StatefulStateNameDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAY9F,qBAAa,yBAA0B,YAAW,0BAA0B;IAC1E,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;CAMxD"}
1
+ {"version":3,"file":"StatefulStateNameDetector.d.ts","sourceRoot":"","sources":["../../src/factory/StatefulStateNameDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAW5E,qBAAa,yBACX,YAAW,0BAA0B,CAAC,iBAAiB,CAAC;IAExD,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;CAMlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"StatefulStateNameDetector.js","sourceRoot":"","sources":["../../src/factory/StatefulStateNameDetector.ts"],"names":[],"mappings":"AAGA,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,qBAAqB,IAAI,GAAG;QAC5B,OAAQ,GAAyB,CAAC,mBAAmB,KAAK,UAAU,CACrE,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,yBAAyB;IACpC,sBAAsB,CAAC,OAAgB;QACrC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;CACF"}
1
+ {"version":3,"file":"StatefulStateNameDetector.js","sourceRoot":"","sources":["../../src/factory/StatefulStateNameDetector.ts"],"names":[],"mappings":"AAGA,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,qBAAqB,IAAI,GAAG;QAC5B,OAAQ,GAAyB,CAAC,mBAAmB,KAAK,UAAU,CACrE,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,yBAAyB;IAGpC,sBAAsB,CAAC,OAA0B;QAC/C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
2
2
  import type { EventInterface } from "../interfaces/EventInterface.js";
3
3
  export declare class ActiveTransitionFilter {
4
- static filter(transitions: Iterable<TransitionInterface>, subject: unknown, context: Map<string, unknown>, event?: EventInterface): Promise<TransitionInterface[]>;
4
+ static filter<TSubject = unknown>(transitions: Iterable<TransitionInterface<TSubject>>, subject: TSubject, context: Map<string, unknown>, event?: EventInterface): Promise<TransitionInterface<TSubject>[]>;
5
5
  }
6
6
  //# sourceMappingURL=ActiveTransitionFilter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveTransitionFilter.d.ts","sourceRoot":"","sources":["../../src/filter/ActiveTransitionFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,qBAAa,sBAAsB;WACpB,MAAM,CACjB,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAC1C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC;CASlC"}
1
+ {"version":3,"file":"ActiveTransitionFilter.d.ts","sourceRoot":"","sources":["../../src/filter/ActiveTransitionFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,qBAAa,sBAAsB;WACpB,MAAM,CAAC,QAAQ,GAAG,OAAO,EACpC,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EACpD,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;CAS5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveTransitionFilter.js","sourceRoot":"","sources":["../../src/filter/ActiveTransitionFilter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,WAA0C,EAC1C,OAAgB,EAChB,OAA6B,EAC7B,KAAsB;QAEtB,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"ActiveTransitionFilter.js","sourceRoot":"","sources":["../../src/filter/ActiveTransitionFilter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,WAAoD,EACpD,OAAiB,EACjB,OAA6B,EAC7B,KAAsB;QAEtB,MAAM,MAAM,GAAoC,EAAE,CAAC;QACnD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import type { Named } from "./Named.js";
2
2
  import type { MaybePromise } from "../MaybePromise.js";
3
- export interface ConditionInterface extends Named {
4
- checkCondition(subject: unknown, context: Map<string, unknown>): MaybePromise<boolean>;
3
+ export interface ConditionInterface<TSubject = unknown> extends Named {
4
+ checkCondition(subject: TSubject, context: Map<string, unknown>): MaybePromise<boolean>;
5
5
  }
6
6
  //# sourceMappingURL=ConditionInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ConditionInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,cAAc,CACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,YAAY,CAAC,OAAO,CAAC,CAAC;CAC1B"}
1
+ {"version":3,"file":"ConditionInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ConditionInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAE,SAAQ,KAAK;IACnE,cAAc,CACZ,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,YAAY,CAAC,OAAO,CAAC,CAAC;CAC1B"}
@@ -2,10 +2,10 @@ import type { Observer } from "./Observer.js";
2
2
  import type { StatemachineInterface } from "./StatemachineInterface.js";
3
3
  import type { MutexFactoryInterface } from "./MutexFactoryInterface.js";
4
4
  import type { TransitionSelectorInterface } from "./TransitionSelectorInterface.js";
5
- export interface FactoryInterface {
6
- createStatemachine(subject: unknown): Promise<StatemachineInterface>;
7
- setMutexFactory(factory: MutexFactoryInterface | null): void;
8
- setTransitionSelector(selector: TransitionSelectorInterface): void;
5
+ export interface FactoryInterface<TSubject = unknown> {
6
+ createStatemachine(subject: TSubject): Promise<StatemachineInterface<TSubject>>;
7
+ setMutexFactory(factory: MutexFactoryInterface<TSubject> | null): void;
8
+ setTransitionSelector(selector: TransitionSelectorInterface<TSubject>): void;
9
9
  attachStatemachineObserver(observer: Observer): void;
10
10
  detachStatemachineObserver(observer: Observer): void;
11
11
  getStatemachineObservers(): Iterable<Observer>;
@@ -1 +1 @@
1
- {"version":3,"file":"FactoryInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/FactoryInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrE,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7D,qBAAqB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnE,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrD,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrD,wBAAwB,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAChD"}
1
+ {"version":3,"file":"FactoryInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/FactoryInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF,MAAM,WAAW,gBAAgB,CAAC,QAAQ,GAAG,OAAO;IAClD,kBAAkB,CAChB,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACvE,qBAAqB,CACnB,QAAQ,EAAE,2BAA2B,CAAC,QAAQ,CAAC,GAC9C,IAAI,CAAC;IACR,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrD,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrD,wBAAwB,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAChD"}
@@ -1,6 +1,6 @@
1
1
  import type { MutexInterface } from "./MutexInterface.js";
2
2
  import type { MaybePromise } from "../MaybePromise.js";
3
- export interface MutexFactoryInterface {
4
- createMutex(subject: unknown): MaybePromise<MutexInterface>;
3
+ export interface MutexFactoryInterface<TSubject = unknown> {
4
+ createMutex(subject: TSubject): MaybePromise<MutexInterface>;
5
5
  }
6
6
  //# sourceMappingURL=MutexFactoryInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MutexFactoryInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/MutexFactoryInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;CAC7D"}
1
+ {"version":3,"file":"MutexFactoryInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/MutexFactoryInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,qBAAqB,CAAC,QAAQ,GAAG,OAAO;IACvD,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;CAC9D"}
@@ -1,5 +1,5 @@
1
1
  import type { ProcessInterface } from "./ProcessInterface.js";
2
- export interface ProcessDetectorInterface {
3
- detectProcess(subject: unknown): ProcessInterface;
2
+ export interface ProcessDetectorInterface<TSubject = unknown> {
3
+ detectProcess(subject: TSubject): ProcessInterface;
4
4
  }
5
5
  //# sourceMappingURL=ProcessDetectorInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessDetectorInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ProcessDetectorInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAAC;CACnD"}
1
+ {"version":3,"file":"ProcessDetectorInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ProcessDetectorInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,wBAAwB,CAAC,QAAQ,GAAG,OAAO;IAC1D,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,gBAAgB,CAAC;CACpD"}
@@ -1,4 +1,4 @@
1
- export interface StateNameDetectorInterface {
2
- detectCurrentStateName(subject: unknown): string | null;
1
+ export interface StateNameDetectorInterface<TSubject = unknown> {
2
+ detectCurrentStateName(subject: TSubject): string | null;
3
3
  }
4
4
  //# sourceMappingURL=StateNameDetectorInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StateNameDetectorInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/StateNameDetectorInterface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CACzD"}
1
+ {"version":3,"file":"StateNameDetectorInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/StateNameDetectorInterface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B,CAAC,QAAQ,GAAG,OAAO;IAC5D,sBAAsB,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1D"}
@@ -2,13 +2,13 @@ import type { ObservableSubject } from "./Observer.js";
2
2
  import type { StateInterface } from "./StateInterface.js";
3
3
  import type { ProcessInterface } from "./ProcessInterface.js";
4
4
  import type { TransitionInterface } from "./TransitionInterface.js";
5
- export interface StatemachineInterface extends ObservableSubject {
5
+ export interface StatemachineInterface<TSubject = unknown> extends ObservableSubject {
6
6
  getCurrentState(): StateInterface;
7
- getSubject(): unknown;
7
+ getSubject(): TSubject;
8
8
  getProcess(): ProcessInterface;
9
9
  triggerEvent(name: string, context?: Map<string, unknown>): Promise<void>;
10
10
  checkTransitions(context?: Map<string, unknown>): Promise<void>;
11
- getSelectedTransition(): TransitionInterface | null;
11
+ getSelectedTransition(): TransitionInterface<TSubject> | null;
12
12
  getLastState(): StateInterface | null;
13
13
  getCurrentContext(): Map<string, unknown> | null;
14
14
  acquireLock(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"StatemachineInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/StatemachineInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,eAAe,IAAI,cAAc,CAAC;IAClC,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,IAAI,gBAAgB,CAAC;IAC/B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,gBAAgB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,qBAAqB,IAAI,mBAAmB,GAAG,IAAI,CAAC;IACpD,YAAY,IAAI,cAAc,GAAG,IAAI,CAAC;IACtC,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,cAAc,IAAI,OAAO,CAAC;IAC1B,iBAAiB,IAAI,OAAO,CAAC;IAC7B,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;CAChD"}
1
+ {"version":3,"file":"StatemachineInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/StatemachineInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,qBAAqB,CAAC,QAAQ,GAAG,OAAO,CACvD,SAAQ,iBAAiB;IACzB,eAAe,IAAI,cAAc,CAAC;IAClC,UAAU,IAAI,QAAQ,CAAC;IACvB,UAAU,IAAI,gBAAgB,CAAC;IAC/B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,gBAAgB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,qBAAqB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC9D,YAAY,IAAI,cAAc,GAAG,IAAI,CAAC;IACtC,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,cAAc,IAAI,OAAO,CAAC;IAC1B,iBAAiB,IAAI,OAAO,CAAC;IAC7B,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;CAChD"}
@@ -2,11 +2,11 @@ import type { Weighted } from "./Weighted.js";
2
2
  import type { StateInterface } from "./StateInterface.js";
3
3
  import type { EventInterface } from "./EventInterface.js";
4
4
  import type { ConditionInterface } from "./ConditionInterface.js";
5
- export interface TransitionInterface extends Weighted {
5
+ export interface TransitionInterface<TSubject = unknown> extends Weighted {
6
6
  getTargetState(): StateInterface;
7
7
  getEventName(): string | null;
8
8
  getConditionName(): string | null;
9
- getCondition(): ConditionInterface | null;
10
- isActive(subject: unknown, context: Map<string, unknown>, event?: EventInterface): Promise<boolean>;
9
+ getCondition(): ConditionInterface<TSubject> | null;
10
+ isActive(subject: TSubject, context: Map<string, unknown>, event?: EventInterface): Promise<boolean>;
11
11
  }
12
12
  //# sourceMappingURL=TransitionInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/TransitionInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,cAAc,IAAI,cAAc,CAAC;IACjC,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CACN,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}
1
+ {"version":3,"file":"TransitionInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/TransitionInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,WAAW,mBAAmB,CAAC,QAAQ,GAAG,OAAO,CAAE,SAAQ,QAAQ;IACvE,cAAc,IAAI,cAAc,CAAC;IACjC,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACpD,QAAQ,CACN,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}
@@ -1,5 +1,5 @@
1
1
  import type { TransitionInterface } from "./TransitionInterface.js";
2
- export interface TransitionSelectorInterface {
3
- selectTransition(transitions: Iterable<TransitionInterface>): TransitionInterface | null;
2
+ export interface TransitionSelectorInterface<TSubject = unknown> {
3
+ selectTransition(transitions: Iterable<TransitionInterface<TSubject>>): TransitionInterface<TSubject> | null;
4
4
  }
5
5
  //# sourceMappingURL=TransitionSelectorInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionSelectorInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/TransitionSelectorInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACzC,mBAAmB,GAAG,IAAI,CAAC;CAC/B"}
1
+ {"version":3,"file":"TransitionSelectorInterface.d.ts","sourceRoot":"","sources":["../../src/interfaces/TransitionSelectorInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,2BAA2B,CAAC,QAAQ,GAAG,OAAO;IAC7D,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GACnD,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CACzC"}
@@ -1,11 +1,11 @@
1
1
  import type { MutexFactoryInterface } from "../interfaces/MutexFactoryInterface.js";
2
2
  import type { MutexInterface } from "../interfaces/MutexInterface.js";
3
3
  import type { LockAdapterInterface } from "../interfaces/LockAdapterInterface.js";
4
- export type StringConverter = (subject: unknown) => string;
5
- export declare class MutexFactory implements MutexFactoryInterface {
4
+ export type StringConverter<TSubject = unknown> = (subject: TSubject) => string;
5
+ export declare class MutexFactory<TSubject = unknown> implements MutexFactoryInterface<TSubject> {
6
6
  private readonly lockAdapter;
7
7
  private readonly stringConverter;
8
- constructor(lockAdapter: LockAdapterInterface, stringConverter: StringConverter);
9
- createMutex(subject: unknown): MutexInterface;
8
+ constructor(lockAdapter: LockAdapterInterface, stringConverter: StringConverter<TSubject>);
9
+ createMutex(subject: TSubject): MutexInterface;
10
10
  }
11
11
  //# sourceMappingURL=MutexFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MutexFactory.d.ts","sourceRoot":"","sources":["../../src/mutex/MutexFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAGlF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;AAE3D,qBAAa,YAAa,YAAW,qBAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAGhD,WAAW,EAAE,oBAAoB,EACjC,eAAe,EAAE,eAAe;IAMlC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc;CAM9C"}
1
+ {"version":3,"file":"MutexFactory.d.ts","sourceRoot":"","sources":["../../src/mutex/MutexFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAGlF,MAAM,MAAM,eAAe,CAAC,QAAQ,GAAG,OAAO,IAAI,CAChD,OAAO,EAAE,QAAQ,KACd,MAAM,CAAC;AAEZ,qBAAa,YAAY,CAAC,QAAQ,GAAG,OAAO,CAC1C,YAAW,qBAAqB,CAAC,QAAQ,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;gBAG1D,WAAW,EAAE,oBAAoB,EACjC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC;IAM5C,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,cAAc;CAM/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"MutexFactory.js","sourceRoot":"","sources":["../../src/mutex/MutexFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,MAAM,OAAO,YAAY;IACN,WAAW,CAAuB;IAClC,eAAe,CAAkB;IAElD,YACE,WAAiC,EACjC,eAAgC;QAEhC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,OAAgB;QAC1B,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAC9B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"MutexFactory.js","sourceRoot":"","sources":["../../src/mutex/MutexFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,MAAM,OAAO,YAAY;IAGN,WAAW,CAAuB;IAClC,eAAe,CAA4B;IAE5D,YACE,WAAiC,EACjC,eAA0C;QAE1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,OAAiB;QAC3B,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAC9B,CAAC;IACJ,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import type { TransitionSelectorInterface } from "../interfaces/TransitionSelectorInterface.js";
2
2
  import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
3
- export declare class OneOrNoneActiveTransition implements TransitionSelectorInterface {
4
- selectTransition(transitions: Iterable<TransitionInterface>): TransitionInterface | null;
3
+ export declare class OneOrNoneActiveTransition<TSubject = unknown> implements TransitionSelectorInterface<TSubject> {
4
+ selectTransition(transitions: Iterable<TransitionInterface<TSubject>>): TransitionInterface<TSubject> | null;
5
5
  }
6
6
  //# sourceMappingURL=OneOrNoneActiveTransition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneOrNoneActiveTransition.d.ts","sourceRoot":"","sources":["../../src/selector/OneOrNoneActiveTransition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,qBAAa,yBAA0B,YAAW,2BAA2B;IAC3E,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACzC,mBAAmB,GAAG,IAAI;CAW9B"}
1
+ {"version":3,"file":"OneOrNoneActiveTransition.d.ts","sourceRoot":"","sources":["../../src/selector/OneOrNoneActiveTransition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,qBAAa,yBAAyB,CAAC,QAAQ,GAAG,OAAO,CACvD,YAAW,2BAA2B,CAAC,QAAQ,CAAC;IAEhD,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GACnD,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;CAWxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OneOrNoneActiveTransition.js","sourceRoot":"","sources":["../../src/selector/OneOrNoneActiveTransition.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;IACpC,gBAAgB,CACd,WAA0C;QAE1C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC;gBACJ,OAAO,IAAI,CAAC;YACd,KAAK,CAAC;gBACJ,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB;gBACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"OneOrNoneActiveTransition.js","sourceRoot":"","sources":["../../src/selector/OneOrNoneActiveTransition.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;IAGpC,gBAAgB,CACd,WAAoD;QAEpD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC;gBACJ,OAAO,IAAI,CAAC;YACd,KAAK,CAAC;gBACJ,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB;gBACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { TransitionSelectorInterface } from "../interfaces/TransitionSelectorInterface.js";
2
2
  import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
3
- export declare class ScoreTransition implements TransitionSelectorInterface {
3
+ export declare class ScoreTransition<TSubject = unknown> implements TransitionSelectorInterface<TSubject> {
4
4
  private readonly innerSelector;
5
- constructor(innerSelector?: TransitionSelectorInterface);
6
- protected calculateScore(transition: TransitionInterface): number;
7
- selectTransition(transitions: Iterable<TransitionInterface>): TransitionInterface | null;
5
+ constructor(innerSelector?: TransitionSelectorInterface<TSubject>);
6
+ protected calculateScore(transition: TransitionInterface<TSubject>): number;
7
+ selectTransition(transitions: Iterable<TransitionInterface<TSubject>>): TransitionInterface<TSubject> | null;
8
8
  }
9
9
  //# sourceMappingURL=ScoreTransition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScoreTransition.d.ts","sourceRoot":"","sources":["../../src/selector/ScoreTransition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGhF,qBAAa,eAAgB,YAAW,2BAA2B;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;gBAEhD,aAAa,CAAC,EAAE,2BAA2B;IAIvD,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IAWjE,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACzC,mBAAmB,GAAG,IAAI;CAc9B"}
1
+ {"version":3,"file":"ScoreTransition.d.ts","sourceRoot":"","sources":["../../src/selector/ScoreTransition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGhF,qBAAa,eAAe,CAAC,QAAQ,GAAG,OAAO,CAC7C,YAAW,2BAA2B,CAAC,QAAQ,CAAC;IAEhD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;gBAE1D,aAAa,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC;IAKjE,SAAS,CAAC,cAAc,CACtB,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GACxC,MAAM;IAWT,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GACnD,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;CAcxC"}
@@ -2,7 +2,8 @@ import { OneOrNoneActiveTransition } from "./OneOrNoneActiveTransition.js";
2
2
  export class ScoreTransition {
3
3
  innerSelector;
4
4
  constructor(innerSelector) {
5
- this.innerSelector = innerSelector ?? new OneOrNoneActiveTransition();
5
+ this.innerSelector =
6
+ innerSelector ?? new OneOrNoneActiveTransition();
6
7
  }
7
8
  calculateScore(transition) {
8
9
  let score = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"ScoreTransition.js","sourceRoot":"","sources":["../../src/selector/ScoreTransition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,OAAO,eAAe;IACT,aAAa,CAA8B;IAE5D,YAAY,aAA2C;QACrD,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,yBAAyB,EAAE,CAAC;IACxE,CAAC;IAES,cAAc,CAAC,UAA+B;QACtD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,IAAI,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB,CACd,WAA0C;QAE1C,IAAI,eAAe,GAA0B,EAAE,CAAC;QAChD,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;QACnB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBACtB,SAAS,GAAG,KAAK,CAAC;gBAClB,eAAe,GAAG,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;CACF"}
1
+ {"version":3,"file":"ScoreTransition.js","sourceRoot":"","sources":["../../src/selector/ScoreTransition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,OAAO,eAAe;IAGT,aAAa,CAAwC;IAEtE,YAAY,aAAqD;QAC/D,IAAI,CAAC,aAAa;YAChB,aAAa,IAAI,IAAI,yBAAyB,EAAY,CAAC;IAC/D,CAAC;IAES,cAAc,CACtB,UAAyC;QAEzC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,IAAI,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB,CACd,WAAoD;QAEpD,IAAI,eAAe,GAAoC,EAAE,CAAC;QAC1D,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;QACnB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBACtB,SAAS,GAAG,KAAK,CAAC;gBAClB,eAAe,GAAG,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import type { TransitionSelectorInterface } from "../interfaces/TransitionSelectorInterface.js";
2
2
  import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
3
- export declare class WeightTransition implements TransitionSelectorInterface {
3
+ export declare class WeightTransition<TSubject = unknown> implements TransitionSelectorInterface<TSubject> {
4
4
  private readonly innerSelector;
5
5
  private readonly epsilon;
6
- constructor(innerSelector?: TransitionSelectorInterface, epsilon?: number);
7
- selectTransition(transitions: Iterable<TransitionInterface>): TransitionInterface | null;
6
+ constructor(innerSelector?: TransitionSelectorInterface<TSubject>, epsilon?: number);
7
+ selectTransition(transitions: Iterable<TransitionInterface<TSubject>>): TransitionInterface<TSubject> | null;
8
8
  }
9
9
  //# sourceMappingURL=WeightTransition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WeightTransition.d.ts","sourceRoot":"","sources":["../../src/selector/WeightTransition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGhF,qBAAa,gBAAiB,YAAW,2BAA2B;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,aAAa,CAAC,EAAE,2BAA2B,EAAE,OAAO,SAAQ;IAKxE,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACzC,mBAAmB,GAAG,IAAI;CAe9B"}
1
+ {"version":3,"file":"WeightTransition.d.ts","sourceRoot":"","sources":["../../src/selector/WeightTransition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGhF,qBAAa,gBAAgB,CAAC,QAAQ,GAAG,OAAO,CAC9C,YAAW,2BAA2B,CAAC,QAAQ,CAAC;IAEhD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;IACtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAG/B,aAAa,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC,EACrD,OAAO,SAAQ;IAOjB,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GACnD,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;CAexC"}
@@ -3,7 +3,8 @@ export class WeightTransition {
3
3
  innerSelector;
4
4
  epsilon;
5
5
  constructor(innerSelector, epsilon = 0.001) {
6
- this.innerSelector = innerSelector ?? new OneOrNoneActiveTransition();
6
+ this.innerSelector =
7
+ innerSelector ?? new OneOrNoneActiveTransition();
7
8
  this.epsilon = epsilon;
8
9
  }
9
10
  selectTransition(transitions) {
@@ -1 +1 @@
1
- {"version":3,"file":"WeightTransition.js","sourceRoot":"","sources":["../../src/selector/WeightTransition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,OAAO,gBAAgB;IACV,aAAa,CAA8B;IAC3C,OAAO,CAAS;IAEjC,YAAY,aAA2C,EAAE,OAAO,GAAG,KAAK;QACtE,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,yBAAyB,EAAE,CAAC;QACtE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gBAAgB,CACd,WAA0C;QAE1C,IAAI,eAAe,GAA0B,EAAE,CAAC;QAChD,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChD,UAAU,GAAG,MAAM,CAAC;gBACpB,eAAe,GAAG,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;CACF"}
1
+ {"version":3,"file":"WeightTransition.js","sourceRoot":"","sources":["../../src/selector/WeightTransition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,OAAO,gBAAgB;IAGV,aAAa,CAAwC;IACrD,OAAO,CAAS;IAEjC,YACE,aAAqD,EACrD,OAAO,GAAG,KAAK;QAEf,IAAI,CAAC,aAAa;YAChB,aAAa,IAAI,IAAI,yBAAyB,EAAY,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gBAAgB,CACd,WAAoD;QAEpD,IAAI,eAAe,GAAoC,EAAE,CAAC;QAC1D,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChD,UAAU,GAAG,MAAM,CAAC;gBACpB,eAAe,GAAG,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camcima/finita",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "description": "A full-featured finite state machine library for TypeScript",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,7 +13,7 @@
13
13
  "test": "vitest run",
14
14
  "test:coverage": "vitest run --coverage --reporter=default --reporter=junit --outputFile=test-report.junit.xml",
15
15
  "test:watch": "vitest",
16
- "lint": "tsc --noEmit && eslint src/ tests/",
16
+ "lint": "tsc --noEmit && tsc --project tsconfig.test.json && eslint src/ tests/",
17
17
  "format": "prettier --write .",
18
18
  "format:check": "prettier --check .",
19
19
  "release": "release-it"