@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.
- package/README.md +39 -3
- package/dist/Statemachine.d.ts +4 -4
- package/dist/Statemachine.d.ts.map +1 -1
- package/dist/Statemachine.js.map +1 -1
- package/dist/Transition.d.ts +4 -4
- package/dist/Transition.d.ts.map +1 -1
- package/dist/Transition.js.map +1 -1
- package/dist/condition/AndComposite.d.ts +4 -4
- package/dist/condition/AndComposite.d.ts.map +1 -1
- package/dist/condition/AndComposite.js.map +1 -1
- package/dist/condition/CallbackCondition.d.ts +4 -4
- package/dist/condition/CallbackCondition.d.ts.map +1 -1
- package/dist/condition/CallbackCondition.js.map +1 -1
- package/dist/condition/Not.d.ts +3 -3
- package/dist/condition/Not.d.ts.map +1 -1
- package/dist/condition/Not.js.map +1 -1
- package/dist/condition/OrComposite.d.ts +4 -4
- package/dist/condition/OrComposite.d.ts.map +1 -1
- package/dist/condition/OrComposite.js.map +1 -1
- package/dist/factory/AbstractNamedProcessDetector.d.ts +3 -3
- package/dist/factory/AbstractNamedProcessDetector.d.ts.map +1 -1
- package/dist/factory/AbstractNamedProcessDetector.js.map +1 -1
- package/dist/factory/Factory.d.ts +5 -5
- package/dist/factory/Factory.d.ts.map +1 -1
- package/dist/factory/Factory.js.map +1 -1
- package/dist/factory/SingleProcessDetector.d.ts +2 -2
- package/dist/factory/SingleProcessDetector.d.ts.map +1 -1
- package/dist/factory/SingleProcessDetector.js.map +1 -1
- package/dist/factory/StatefulStateNameDetector.d.ts +3 -2
- package/dist/factory/StatefulStateNameDetector.d.ts.map +1 -1
- package/dist/factory/StatefulStateNameDetector.js.map +1 -1
- package/dist/filter/ActiveTransitionFilter.d.ts +1 -1
- package/dist/filter/ActiveTransitionFilter.d.ts.map +1 -1
- package/dist/filter/ActiveTransitionFilter.js.map +1 -1
- package/dist/interfaces/ConditionInterface.d.ts +2 -2
- package/dist/interfaces/ConditionInterface.d.ts.map +1 -1
- package/dist/interfaces/FactoryInterface.d.ts +4 -4
- package/dist/interfaces/FactoryInterface.d.ts.map +1 -1
- package/dist/interfaces/MutexFactoryInterface.d.ts +2 -2
- package/dist/interfaces/MutexFactoryInterface.d.ts.map +1 -1
- package/dist/interfaces/ProcessDetectorInterface.d.ts +2 -2
- package/dist/interfaces/ProcessDetectorInterface.d.ts.map +1 -1
- package/dist/interfaces/StateNameDetectorInterface.d.ts +2 -2
- package/dist/interfaces/StateNameDetectorInterface.d.ts.map +1 -1
- package/dist/interfaces/StatemachineInterface.d.ts +3 -3
- package/dist/interfaces/StatemachineInterface.d.ts.map +1 -1
- package/dist/interfaces/TransitionInterface.d.ts +3 -3
- package/dist/interfaces/TransitionInterface.d.ts.map +1 -1
- package/dist/interfaces/TransitionSelectorInterface.d.ts +2 -2
- package/dist/interfaces/TransitionSelectorInterface.d.ts.map +1 -1
- package/dist/mutex/MutexFactory.d.ts +4 -4
- package/dist/mutex/MutexFactory.d.ts.map +1 -1
- package/dist/mutex/MutexFactory.js.map +1 -1
- package/dist/selector/OneOrNoneActiveTransition.d.ts +2 -2
- package/dist/selector/OneOrNoneActiveTransition.d.ts.map +1 -1
- package/dist/selector/OneOrNoneActiveTransition.js.map +1 -1
- package/dist/selector/ScoreTransition.d.ts +4 -4
- package/dist/selector/ScoreTransition.d.ts.map +1 -1
- package/dist/selector/ScoreTransition.js +2 -1
- package/dist/selector/ScoreTransition.js.map +1 -1
- package/dist/selector/WeightTransition.d.ts +3 -3
- package/dist/selector/WeightTransition.d.ts.map +1 -1
- package/dist/selector/WeightTransition.js +2 -1
- package/dist/selector/WeightTransition.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
[](https://github.com/camcima/finita/actions/workflows/ci.yml)
|
|
10
10
|
[](https://codecov.io/gh/camcima/finita)
|
|
11
|
-
[](https://www.npmjs.com/package/finita)
|
|
11
|
+
[](https://www.npmjs.com/package/@camcima/finita)
|
|
12
12
|
[](https://opensource.org/licenses/MIT)
|
|
13
13
|
[](https://www.typescriptlang.org/)
|
|
14
14
|
[](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:
|
package/dist/Statemachine.d.ts
CHANGED
|
@@ -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:
|
|
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():
|
|
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,
|
|
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"}
|
package/dist/Statemachine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Statemachine.js","sourceRoot":"","sources":["../src/Statemachine.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,MAAM,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"Statemachine.js","sourceRoot":"","sources":["../src/Statemachine.ts"],"names":[],"mappings":"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"}
|
package/dist/Transition.d.ts
CHANGED
|
@@ -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:
|
|
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
|
}
|
package/dist/Transition.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/Transition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transition.js","sourceRoot":"","sources":["../src/Transition.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;
|
|
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:
|
|
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,
|
|
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;
|
|
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:
|
|
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:
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/condition/Not.d.ts
CHANGED
|
@@ -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:
|
|
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,
|
|
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;
|
|
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:
|
|
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,
|
|
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;
|
|
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:
|
|
5
|
+
protected abstract detectProcessName(subject: TSubject): string;
|
|
6
6
|
addProcess(process: ProcessInterface): void;
|
|
7
7
|
hasProcess(name: string): boolean;
|
|
8
|
-
detectProcess(subject:
|
|
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,
|
|
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;
|
|
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
|
|
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:
|
|
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,
|
|
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;
|
|
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:
|
|
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,
|
|
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;
|
|
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
|
-
|
|
3
|
-
|
|
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;
|
|
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;
|
|
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
|
|
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,
|
|
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,
|
|
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:
|
|
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,
|
|
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:
|
|
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;
|
|
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:
|
|
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;
|
|
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:
|
|
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;
|
|
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:
|
|
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;
|
|
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():
|
|
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,
|
|
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:
|
|
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,
|
|
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
|
|
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;
|
|
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:
|
|
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:
|
|
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,
|
|
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;
|
|
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
|
|
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,
|
|
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;
|
|
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
|
|
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,
|
|
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 =
|
|
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;
|
|
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
|
|
7
|
-
selectTransition(transitions: Iterable<TransitionInterface
|
|
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,
|
|
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 =
|
|
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;
|
|
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": "
|
|
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"
|