@camcima/finita 1.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 +176 -0
- package/dist/Dispatcher.d.ts +11 -0
- package/dist/Dispatcher.d.ts.map +1 -0
- package/dist/Dispatcher.js +30 -0
- package/dist/Dispatcher.js.map +1 -0
- package/dist/Event.d.ts +22 -0
- package/dist/Event.d.ts.map +1 -0
- package/dist/Event.js +54 -0
- package/dist/Event.js.map +1 -0
- package/dist/MaybePromise.d.ts +2 -0
- package/dist/MaybePromise.d.ts.map +1 -0
- package/dist/MaybePromise.js +2 -0
- package/dist/MaybePromise.js.map +1 -0
- package/dist/Process.d.ts +15 -0
- package/dist/Process.d.ts.map +1 -0
- package/dist/Process.js +43 -0
- package/dist/Process.js.map +1 -0
- package/dist/State.d.ts +22 -0
- package/dist/State.d.ts.map +1 -0
- package/dist/State.js +65 -0
- package/dist/State.js.map +1 -0
- package/dist/StateCollection.d.ts +14 -0
- package/dist/StateCollection.d.ts.map +1 -0
- package/dist/StateCollection.js +37 -0
- package/dist/StateCollection.js.map +1 -0
- package/dist/Statemachine.d.ts +45 -0
- package/dist/Statemachine.d.ts.map +1 -0
- package/dist/Statemachine.js +206 -0
- package/dist/Statemachine.js.map +1 -0
- package/dist/Transition.d.ts +19 -0
- package/dist/Transition.d.ts.map +1 -0
- package/dist/Transition.js +46 -0
- package/dist/Transition.js.map +1 -0
- package/dist/condition/AndComposite.d.ts +9 -0
- package/dist/condition/AndComposite.d.ts.map +1 -0
- package/dist/condition/AndComposite.js +23 -0
- package/dist/condition/AndComposite.js.map +1 -0
- package/dist/condition/CallbackCondition.d.ts +11 -0
- package/dist/condition/CallbackCondition.d.ts.map +1 -0
- package/dist/condition/CallbackCondition.js +15 -0
- package/dist/condition/CallbackCondition.js.map +1 -0
- package/dist/condition/Contradiction.d.ts +8 -0
- package/dist/condition/Contradiction.d.ts.map +1 -0
- package/dist/condition/Contradiction.js +13 -0
- package/dist/condition/Contradiction.js.map +1 -0
- package/dist/condition/Not.d.ts +8 -0
- package/dist/condition/Not.d.ts.map +1 -0
- package/dist/condition/Not.js +13 -0
- package/dist/condition/Not.js.map +1 -0
- package/dist/condition/OrComposite.d.ts +9 -0
- package/dist/condition/OrComposite.d.ts.map +1 -0
- package/dist/condition/OrComposite.js +23 -0
- package/dist/condition/OrComposite.js.map +1 -0
- package/dist/condition/Tautology.d.ts +8 -0
- package/dist/condition/Tautology.d.ts.map +1 -0
- package/dist/condition/Tautology.js +13 -0
- package/dist/condition/Tautology.js.map +1 -0
- package/dist/condition/Timeout.d.ts +10 -0
- package/dist/condition/Timeout.d.ts.map +1 -0
- package/dist/condition/Timeout.js +30 -0
- package/dist/condition/Timeout.js.map +1 -0
- package/dist/condition/index.d.ts +9 -0
- package/dist/condition/index.d.ts.map +1 -0
- package/dist/condition/index.js +8 -0
- package/dist/condition/index.js.map +1 -0
- package/dist/error/DuplicateStateError.d.ts +5 -0
- package/dist/error/DuplicateStateError.d.ts.map +1 -0
- package/dist/error/DuplicateStateError.js +9 -0
- package/dist/error/DuplicateStateError.js.map +1 -0
- package/dist/error/LockCanNotBeAcquiredError.d.ts +4 -0
- package/dist/error/LockCanNotBeAcquiredError.d.ts.map +1 -0
- package/dist/error/LockCanNotBeAcquiredError.js +7 -0
- package/dist/error/LockCanNotBeAcquiredError.js.map +1 -0
- package/dist/error/WrongEventForStateError.d.ts +6 -0
- package/dist/error/WrongEventForStateError.d.ts.map +1 -0
- package/dist/error/WrongEventForStateError.js +11 -0
- package/dist/error/WrongEventForStateError.js.map +1 -0
- package/dist/error/index.d.ts +4 -0
- package/dist/error/index.d.ts.map +1 -0
- package/dist/error/index.js +4 -0
- package/dist/error/index.js.map +1 -0
- package/dist/factory/AbstractNamedProcessDetector.d.ts +10 -0
- package/dist/factory/AbstractNamedProcessDetector.d.ts.map +1 -0
- package/dist/factory/AbstractNamedProcessDetector.js +18 -0
- package/dist/factory/AbstractNamedProcessDetector.js.map +1 -0
- package/dist/factory/Factory.d.ts +22 -0
- package/dist/factory/Factory.d.ts.map +1 -0
- package/dist/factory/Factory.js +42 -0
- package/dist/factory/Factory.js.map +1 -0
- package/dist/factory/SingleProcessDetector.d.ts +8 -0
- package/dist/factory/SingleProcessDetector.d.ts.map +1 -0
- package/dist/factory/SingleProcessDetector.js +10 -0
- package/dist/factory/SingleProcessDetector.js.map +1 -0
- package/dist/factory/StatefulStateNameDetector.d.ts +5 -0
- package/dist/factory/StatefulStateNameDetector.d.ts.map +1 -0
- package/dist/factory/StatefulStateNameDetector.js +15 -0
- package/dist/factory/StatefulStateNameDetector.js.map +1 -0
- package/dist/factory/index.d.ts +5 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/factory/index.js +5 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/filter/ActiveTransitionFilter.d.ts +6 -0
- package/dist/filter/ActiveTransitionFilter.d.ts.map +1 -0
- package/dist/filter/ActiveTransitionFilter.js +12 -0
- package/dist/filter/ActiveTransitionFilter.js.map +1 -0
- package/dist/filter/FilterStateByEvent.d.ts +5 -0
- package/dist/filter/FilterStateByEvent.d.ts.map +1 -0
- package/dist/filter/FilterStateByEvent.js +10 -0
- package/dist/filter/FilterStateByEvent.js.map +1 -0
- package/dist/filter/FilterStateByFinalState.d.ts +5 -0
- package/dist/filter/FilterStateByFinalState.d.ts.map +1 -0
- package/dist/filter/FilterStateByFinalState.js +15 -0
- package/dist/filter/FilterStateByFinalState.js.map +1 -0
- package/dist/filter/FilterStateByTransition.d.ts +8 -0
- package/dist/filter/FilterStateByTransition.d.ts.map +1 -0
- package/dist/filter/FilterStateByTransition.js +16 -0
- package/dist/filter/FilterStateByTransition.js.map +1 -0
- package/dist/filter/FilterTransitionByEvent.d.ts +5 -0
- package/dist/filter/FilterTransitionByEvent.d.ts.map +1 -0
- package/dist/filter/FilterTransitionByEvent.js +10 -0
- package/dist/filter/FilterTransitionByEvent.js.map +1 -0
- package/dist/filter/index.d.ts +6 -0
- package/dist/filter/index.d.ts.map +1 -0
- package/dist/filter/index.js +6 -0
- package/dist/filter/index.js.map +1 -0
- package/dist/graph/GraphBuilder.d.ts +37 -0
- package/dist/graph/GraphBuilder.d.ts.map +1 -0
- package/dist/graph/GraphBuilder.js +132 -0
- package/dist/graph/GraphBuilder.js.map +1 -0
- package/dist/graph/index.d.ts +3 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +2 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/ConditionInterface.d.ts +6 -0
- package/dist/interfaces/ConditionInterface.d.ts.map +1 -0
- package/dist/interfaces/ConditionInterface.js +2 -0
- package/dist/interfaces/ConditionInterface.js.map +1 -0
- package/dist/interfaces/DispatcherInterface.d.ts +11 -0
- package/dist/interfaces/DispatcherInterface.d.ts.map +1 -0
- package/dist/interfaces/DispatcherInterface.js +2 -0
- package/dist/interfaces/DispatcherInterface.js.map +1 -0
- package/dist/interfaces/EventInterface.d.ts +12 -0
- package/dist/interfaces/EventInterface.d.ts.map +1 -0
- package/dist/interfaces/EventInterface.js +2 -0
- package/dist/interfaces/EventInterface.js.map +1 -0
- package/dist/interfaces/FactoryInterface.d.ts +13 -0
- package/dist/interfaces/FactoryInterface.d.ts.map +1 -0
- package/dist/interfaces/FactoryInterface.js +2 -0
- package/dist/interfaces/FactoryInterface.js.map +1 -0
- package/dist/interfaces/LastStateHasChangedDateInterface.d.ts +4 -0
- package/dist/interfaces/LastStateHasChangedDateInterface.d.ts.map +1 -0
- package/dist/interfaces/LastStateHasChangedDateInterface.js +2 -0
- package/dist/interfaces/LastStateHasChangedDateInterface.js.map +1 -0
- package/dist/interfaces/LockAdapterInterface.d.ts +7 -0
- package/dist/interfaces/LockAdapterInterface.d.ts.map +1 -0
- package/dist/interfaces/LockAdapterInterface.js +2 -0
- package/dist/interfaces/LockAdapterInterface.js.map +1 -0
- package/dist/interfaces/LoggerInterface.d.ts +4 -0
- package/dist/interfaces/LoggerInterface.d.ts.map +1 -0
- package/dist/interfaces/LoggerInterface.js +2 -0
- package/dist/interfaces/LoggerInterface.js.map +1 -0
- package/dist/interfaces/Metadata.d.ts +4 -0
- package/dist/interfaces/Metadata.d.ts.map +1 -0
- package/dist/interfaces/Metadata.js +2 -0
- package/dist/interfaces/Metadata.js.map +1 -0
- package/dist/interfaces/MutexFactoryInterface.d.ts +6 -0
- package/dist/interfaces/MutexFactoryInterface.d.ts.map +1 -0
- package/dist/interfaces/MutexFactoryInterface.js +2 -0
- package/dist/interfaces/MutexFactoryInterface.js.map +1 -0
- package/dist/interfaces/MutexInterface.d.ts +8 -0
- package/dist/interfaces/MutexInterface.d.ts.map +1 -0
- package/dist/interfaces/MutexInterface.js +2 -0
- package/dist/interfaces/MutexInterface.js.map +1 -0
- package/dist/interfaces/Named.d.ts +4 -0
- package/dist/interfaces/Named.d.ts.map +1 -0
- package/dist/interfaces/Named.js +2 -0
- package/dist/interfaces/Named.js.map +1 -0
- package/dist/interfaces/Observer.d.ts +11 -0
- package/dist/interfaces/Observer.d.ts.map +1 -0
- package/dist/interfaces/Observer.js +2 -0
- package/dist/interfaces/Observer.js.map +1 -0
- package/dist/interfaces/ProcessDetectorInterface.d.ts +5 -0
- package/dist/interfaces/ProcessDetectorInterface.d.ts.map +1 -0
- package/dist/interfaces/ProcessDetectorInterface.js +2 -0
- package/dist/interfaces/ProcessDetectorInterface.js.map +1 -0
- package/dist/interfaces/ProcessInterface.d.ts +7 -0
- package/dist/interfaces/ProcessInterface.d.ts.map +1 -0
- package/dist/interfaces/ProcessInterface.js +2 -0
- package/dist/interfaces/ProcessInterface.js.map +1 -0
- package/dist/interfaces/StateCollectionInterface.d.ts +7 -0
- package/dist/interfaces/StateCollectionInterface.d.ts.map +1 -0
- package/dist/interfaces/StateCollectionInterface.js +2 -0
- package/dist/interfaces/StateCollectionInterface.js.map +1 -0
- package/dist/interfaces/StateInterface.d.ts +16 -0
- package/dist/interfaces/StateInterface.d.ts.map +1 -0
- package/dist/interfaces/StateInterface.js +2 -0
- package/dist/interfaces/StateInterface.js.map +1 -0
- package/dist/interfaces/StateNameDetectorInterface.d.ts +4 -0
- package/dist/interfaces/StateNameDetectorInterface.d.ts.map +1 -0
- package/dist/interfaces/StateNameDetectorInterface.js +2 -0
- package/dist/interfaces/StateNameDetectorInterface.js.map +1 -0
- package/dist/interfaces/StatefulInterface.d.ts +5 -0
- package/dist/interfaces/StatefulInterface.d.ts.map +1 -0
- package/dist/interfaces/StatefulInterface.js +2 -0
- package/dist/interfaces/StatefulInterface.js.map +1 -0
- package/dist/interfaces/StatemachineInterface.d.ts +20 -0
- package/dist/interfaces/StatemachineInterface.d.ts.map +1 -0
- package/dist/interfaces/StatemachineInterface.js +2 -0
- package/dist/interfaces/StatemachineInterface.js.map +1 -0
- package/dist/interfaces/TransitionInterface.d.ts +12 -0
- package/dist/interfaces/TransitionInterface.d.ts.map +1 -0
- package/dist/interfaces/TransitionInterface.js +2 -0
- package/dist/interfaces/TransitionInterface.js.map +1 -0
- package/dist/interfaces/TransitionSelectorInterface.d.ts +5 -0
- package/dist/interfaces/TransitionSelectorInterface.d.ts.map +1 -0
- package/dist/interfaces/TransitionSelectorInterface.js +2 -0
- package/dist/interfaces/TransitionSelectorInterface.js.map +1 -0
- package/dist/interfaces/Weighted.d.ts +4 -0
- package/dist/interfaces/Weighted.d.ts.map +1 -0
- package/dist/interfaces/Weighted.js +2 -0
- package/dist/interfaces/Weighted.js.map +1 -0
- package/dist/interfaces/index.d.ts +24 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +2 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/mutex/LockAdapterMutex.d.ts +13 -0
- package/dist/mutex/LockAdapterMutex.d.ts.map +1 -0
- package/dist/mutex/LockAdapterMutex.js +32 -0
- package/dist/mutex/LockAdapterMutex.js.map +1 -0
- package/dist/mutex/MutexFactory.d.ts +11 -0
- package/dist/mutex/MutexFactory.d.ts.map +1 -0
- package/dist/mutex/MutexFactory.js +13 -0
- package/dist/mutex/MutexFactory.js.map +1 -0
- package/dist/mutex/NullMutex.d.ts +9 -0
- package/dist/mutex/NullMutex.d.ts.map +1 -0
- package/dist/mutex/NullMutex.js +18 -0
- package/dist/mutex/NullMutex.js.map +1 -0
- package/dist/mutex/index.d.ts +5 -0
- package/dist/mutex/index.d.ts.map +1 -0
- package/dist/mutex/index.js +4 -0
- package/dist/mutex/index.js.map +1 -0
- package/dist/observer/CallbackObserver.d.ts +8 -0
- package/dist/observer/CallbackObserver.d.ts.map +1 -0
- package/dist/observer/CallbackObserver.js +14 -0
- package/dist/observer/CallbackObserver.js.map +1 -0
- package/dist/observer/OnEnterObserver.d.ts +8 -0
- package/dist/observer/OnEnterObserver.d.ts.map +1 -0
- package/dist/observer/OnEnterObserver.js +28 -0
- package/dist/observer/OnEnterObserver.js.map +1 -0
- package/dist/observer/StatefulStatusChanger.d.ts +5 -0
- package/dist/observer/StatefulStatusChanger.d.ts.map +1 -0
- package/dist/observer/StatefulStatusChanger.js +24 -0
- package/dist/observer/StatefulStatusChanger.js.map +1 -0
- package/dist/observer/TransitionLogger.d.ts +9 -0
- package/dist/observer/TransitionLogger.d.ts.map +1 -0
- package/dist/observer/TransitionLogger.js +62 -0
- package/dist/observer/TransitionLogger.js.map +1 -0
- package/dist/observer/index.d.ts +5 -0
- package/dist/observer/index.d.ts.map +1 -0
- package/dist/observer/index.js +5 -0
- package/dist/observer/index.js.map +1 -0
- package/dist/selector/OneOrNoneActiveTransition.d.ts +6 -0
- package/dist/selector/OneOrNoneActiveTransition.d.ts.map +1 -0
- package/dist/selector/OneOrNoneActiveTransition.js +14 -0
- package/dist/selector/OneOrNoneActiveTransition.js.map +1 -0
- package/dist/selector/ScoreTransition.d.ts +9 -0
- package/dist/selector/ScoreTransition.d.ts.map +1 -0
- package/dist/selector/ScoreTransition.js +33 -0
- package/dist/selector/ScoreTransition.js.map +1 -0
- package/dist/selector/WeightTransition.d.ts +9 -0
- package/dist/selector/WeightTransition.d.ts.map +1 -0
- package/dist/selector/WeightTransition.js +26 -0
- package/dist/selector/WeightTransition.js.map +1 -0
- package/dist/selector/index.d.ts +4 -0
- package/dist/selector/index.d.ts.map +1 -0
- package/dist/selector/index.js +4 -0
- package/dist/selector/index.js.map +1 -0
- package/dist/util/SetupHelper.d.ts +17 -0
- package/dist/util/SetupHelper.d.ts.map +1 -0
- package/dist/util/SetupHelper.js +48 -0
- package/dist/util/SetupHelper.js.map +1 -0
- package/dist/util/StateCollectionMerger.d.ts +23 -0
- package/dist/util/StateCollectionMerger.d.ts.map +1 -0
- package/dist/util/StateCollectionMerger.js +83 -0
- package/dist/util/StateCollectionMerger.js.map +1 -0
- package/dist/util/index.d.ts +3 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +3 -0
- package/dist/util/index.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type { MaybePromise } from "../MaybePromise.js";
|
|
2
|
+
export type { Named } from "./Named.js";
|
|
3
|
+
export type { Metadata } from "./Metadata.js";
|
|
4
|
+
export type { Weighted } from "./Weighted.js";
|
|
5
|
+
export type { Observer, ObservableSubject } from "./Observer.js";
|
|
6
|
+
export type { ConditionInterface } from "./ConditionInterface.js";
|
|
7
|
+
export type { EventInterface } from "./EventInterface.js";
|
|
8
|
+
export type { TransitionInterface } from "./TransitionInterface.js";
|
|
9
|
+
export type { StateInterface } from "./StateInterface.js";
|
|
10
|
+
export type { StateCollectionInterface } from "./StateCollectionInterface.js";
|
|
11
|
+
export type { ProcessInterface } from "./ProcessInterface.js";
|
|
12
|
+
export type { StatemachineInterface } from "./StatemachineInterface.js";
|
|
13
|
+
export type { MutexInterface } from "./MutexInterface.js";
|
|
14
|
+
export type { MutexFactoryInterface } from "./MutexFactoryInterface.js";
|
|
15
|
+
export type { LockAdapterInterface } from "./LockAdapterInterface.js";
|
|
16
|
+
export type { TransitionSelectorInterface } from "./TransitionSelectorInterface.js";
|
|
17
|
+
export type { ProcessDetectorInterface } from "./ProcessDetectorInterface.js";
|
|
18
|
+
export type { StateNameDetectorInterface } from "./StateNameDetectorInterface.js";
|
|
19
|
+
export type { FactoryInterface } from "./FactoryInterface.js";
|
|
20
|
+
export type { StatefulInterface } from "./StatefulInterface.js";
|
|
21
|
+
export type { LastStateHasChangedDateInterface } from "./LastStateHasChangedDateInterface.js";
|
|
22
|
+
export type { DispatcherInterface, CallbackInterface, } from "./DispatcherInterface.js";
|
|
23
|
+
export type { LoggerInterface } from "./LoggerInterface.js";
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAC9F,YAAY,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MutexInterface } from "../interfaces/MutexInterface.js";
|
|
2
|
+
import type { LockAdapterInterface } from "../interfaces/LockAdapterInterface.js";
|
|
3
|
+
export declare class LockAdapterMutex implements MutexInterface {
|
|
4
|
+
private readonly lockAdapter;
|
|
5
|
+
private readonly resourceName;
|
|
6
|
+
private acquired;
|
|
7
|
+
constructor(lockAdapter: LockAdapterInterface, resourceName: string);
|
|
8
|
+
acquireLock(): Promise<boolean>;
|
|
9
|
+
releaseLock(): Promise<boolean>;
|
|
10
|
+
isAcquired(): boolean;
|
|
11
|
+
isLocked(): Promise<boolean>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=LockAdapterMutex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LockAdapterMutex.d.ts","sourceRoot":"","sources":["../../src/mutex/LockAdapterMutex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAS;gBAEb,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM;IAK7D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAO/B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAWrC,UAAU,IAAI,OAAO;IAIf,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;CAGnC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export class LockAdapterMutex {
|
|
2
|
+
lockAdapter;
|
|
3
|
+
resourceName;
|
|
4
|
+
acquired = false;
|
|
5
|
+
constructor(lockAdapter, resourceName) {
|
|
6
|
+
this.lockAdapter = lockAdapter;
|
|
7
|
+
this.resourceName = resourceName;
|
|
8
|
+
}
|
|
9
|
+
async acquireLock() {
|
|
10
|
+
if (!this.acquired) {
|
|
11
|
+
this.acquired = await this.lockAdapter.acquireLock(this.resourceName);
|
|
12
|
+
}
|
|
13
|
+
return this.acquired;
|
|
14
|
+
}
|
|
15
|
+
async releaseLock() {
|
|
16
|
+
if (this.acquired) {
|
|
17
|
+
const result = await this.lockAdapter.releaseLock(this.resourceName);
|
|
18
|
+
if (result) {
|
|
19
|
+
this.acquired = false;
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
isAcquired() {
|
|
26
|
+
return this.acquired;
|
|
27
|
+
}
|
|
28
|
+
async isLocked() {
|
|
29
|
+
return this.lockAdapter.isLocked(this.resourceName);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=LockAdapterMutex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LockAdapterMutex.js","sourceRoot":"","sources":["../../src/mutex/LockAdapterMutex.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACV,WAAW,CAAuB;IAClC,YAAY,CAAS;IAC9B,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,WAAiC,EAAE,YAAoB;QACjE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MutexFactoryInterface } from "../interfaces/MutexFactoryInterface.js";
|
|
2
|
+
import type { MutexInterface } from "../interfaces/MutexInterface.js";
|
|
3
|
+
import type { LockAdapterInterface } from "../interfaces/LockAdapterInterface.js";
|
|
4
|
+
export type StringConverter = (subject: unknown) => string;
|
|
5
|
+
export declare class MutexFactory implements MutexFactoryInterface {
|
|
6
|
+
private readonly lockAdapter;
|
|
7
|
+
private readonly stringConverter;
|
|
8
|
+
constructor(lockAdapter: LockAdapterInterface, stringConverter: StringConverter);
|
|
9
|
+
createMutex(subject: unknown): MutexInterface;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=MutexFactory.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LockAdapterMutex } from "./LockAdapterMutex.js";
|
|
2
|
+
export class MutexFactory {
|
|
3
|
+
lockAdapter;
|
|
4
|
+
stringConverter;
|
|
5
|
+
constructor(lockAdapter, stringConverter) {
|
|
6
|
+
this.lockAdapter = lockAdapter;
|
|
7
|
+
this.stringConverter = stringConverter;
|
|
8
|
+
}
|
|
9
|
+
createMutex(subject) {
|
|
10
|
+
return new LockAdapterMutex(this.lockAdapter, this.stringConverter(subject));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=MutexFactory.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MutexInterface } from "../interfaces/MutexInterface.js";
|
|
2
|
+
export declare class NullMutex implements MutexInterface {
|
|
3
|
+
private acquired;
|
|
4
|
+
acquireLock(): boolean;
|
|
5
|
+
releaseLock(): boolean;
|
|
6
|
+
isAcquired(): boolean;
|
|
7
|
+
isLocked(): boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=NullMutex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NullMutex.d.ts","sourceRoot":"","sources":["../../src/mutex/NullMutex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,qBAAa,SAAU,YAAW,cAAc;IAC9C,OAAO,CAAC,QAAQ,CAAS;IAEzB,WAAW,IAAI,OAAO;IAKtB,WAAW,IAAI,OAAO;IAKtB,UAAU,IAAI,OAAO;IAIrB,QAAQ,IAAI,OAAO;CAGpB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class NullMutex {
|
|
2
|
+
acquired = false;
|
|
3
|
+
acquireLock() {
|
|
4
|
+
this.acquired = true;
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
releaseLock() {
|
|
8
|
+
this.acquired = false;
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
isAcquired() {
|
|
12
|
+
return this.acquired;
|
|
13
|
+
}
|
|
14
|
+
isLocked() {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=NullMutex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NullMutex.js","sourceRoot":"","sources":["../../src/mutex/NullMutex.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;IACZ,QAAQ,GAAG,KAAK,CAAC;IAEzB,WAAW;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mutex/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mutex/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Observer, ObservableSubject } from "../interfaces/Observer.js";
|
|
2
|
+
import type { MaybePromise } from "../MaybePromise.js";
|
|
3
|
+
export declare class CallbackObserver implements Observer {
|
|
4
|
+
private readonly callback;
|
|
5
|
+
constructor(callback: (...args: unknown[]) => MaybePromise<void>);
|
|
6
|
+
update(subject: ObservableSubject): MaybePromise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=CallbackObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallbackObserver.d.ts","sourceRoot":"","sources":["../../src/observer/CallbackObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;gBAE1D,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,YAAY,CAAC,IAAI,CAAC;IAIhE,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC;CAOvD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class CallbackObserver {
|
|
2
|
+
callback;
|
|
3
|
+
constructor(callback) {
|
|
4
|
+
this.callback = callback;
|
|
5
|
+
}
|
|
6
|
+
update(subject) {
|
|
7
|
+
const event = subject;
|
|
8
|
+
if (typeof event.getInvokeArgs === "function") {
|
|
9
|
+
return this.callback(...event.getInvokeArgs());
|
|
10
|
+
}
|
|
11
|
+
return this.callback(subject);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CallbackObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallbackObserver.js","sourceRoot":"","sources":["../../src/observer/CallbackObserver.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,gBAAgB;IACV,QAAQ,CAA6C;IAEtE,YAAY,QAAoD;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,OAA0B;QAC/B,MAAM,KAAK,GAAG,OAAyB,CAAC;QACxC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Observer, ObservableSubject } from "../interfaces/Observer.js";
|
|
2
|
+
export declare class OnEnterObserver implements Observer {
|
|
3
|
+
static readonly DEFAULT_EVENT_NAME = "onEnter";
|
|
4
|
+
private readonly eventName;
|
|
5
|
+
constructor(eventName?: string);
|
|
6
|
+
update(subject: ObservableSubject): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=OnEnterObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnEnterObserver.d.ts","sourceRoot":"","sources":["../../src/observer/OnEnterObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAY7E,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,aAAa;IAE/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,SAAS,SAAqC;IAIpD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function isStatemachine(obj) {
|
|
2
|
+
return (typeof obj === "object" &&
|
|
3
|
+
obj !== null &&
|
|
4
|
+
"getCurrentState" in obj &&
|
|
5
|
+
"triggerEvent" in obj);
|
|
6
|
+
}
|
|
7
|
+
export class OnEnterObserver {
|
|
8
|
+
static DEFAULT_EVENT_NAME = "onEnter";
|
|
9
|
+
eventName;
|
|
10
|
+
constructor(eventName = OnEnterObserver.DEFAULT_EVENT_NAME) {
|
|
11
|
+
this.eventName = eventName;
|
|
12
|
+
}
|
|
13
|
+
async update(subject) {
|
|
14
|
+
if (isStatemachine(subject) &&
|
|
15
|
+
subject.getCurrentState().hasEvent(this.eventName)) {
|
|
16
|
+
const sm = subject;
|
|
17
|
+
const autorelease = sm.isAutoreleaseLock();
|
|
18
|
+
sm.setAutoreleaseLock(false);
|
|
19
|
+
try {
|
|
20
|
+
await sm.triggerEvent(this.eventName, sm.getCurrentContext() ?? undefined);
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
sm.setAutoreleaseLock(autorelease);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=OnEnterObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnEnterObserver.js","sourceRoot":"","sources":["../../src/observer/OnEnterObserver.ts"],"names":[],"mappings":"AAGA,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,iBAAiB,IAAI,GAAG;QACxB,cAAc,IAAI,GAAG,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAU,kBAAkB,GAAG,SAAS,CAAC;IAE9B,SAAS,CAAS;IAEnC,YAAY,SAAS,GAAG,eAAe,CAAC,kBAAkB;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,IACE,cAAc,CAAC,OAAO,CAAC;YACvB,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAClD,CAAC;YACD,MAAM,EAAE,GAAG,OAAgC,CAAC;YAC5C,MAAM,WAAW,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC3C,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,YAAY,CACnB,IAAI,CAAC,SAAS,EACd,EAAE,CAAC,iBAAiB,EAAE,IAAI,SAAS,CACpC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatefulStatusChanger.d.ts","sourceRoot":"","sources":["../../src/observer/StatefulStatusChanger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAsB7E,qBAAa,qBAAsB,YAAW,QAAQ;IACpD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;CASzC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function isStatemachine(obj) {
|
|
2
|
+
return (typeof obj === "object" &&
|
|
3
|
+
obj !== null &&
|
|
4
|
+
"getCurrentState" in obj &&
|
|
5
|
+
"getSubject" in obj);
|
|
6
|
+
}
|
|
7
|
+
function isStateful(obj) {
|
|
8
|
+
return (typeof obj === "object" &&
|
|
9
|
+
obj !== null &&
|
|
10
|
+
"setCurrentStateName" in obj &&
|
|
11
|
+
typeof obj.setCurrentStateName === "function");
|
|
12
|
+
}
|
|
13
|
+
export class StatefulStatusChanger {
|
|
14
|
+
update(subject) {
|
|
15
|
+
if (isStatemachine(subject)) {
|
|
16
|
+
const subjectObj = subject.getSubject();
|
|
17
|
+
if (isStateful(subjectObj)) {
|
|
18
|
+
const stateName = subject.getCurrentState().getName();
|
|
19
|
+
subjectObj.setCurrentStateName(stateName);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=StatefulStatusChanger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatefulStatusChanger.js","sourceRoot":"","sources":["../../src/observer/StatefulStatusChanger.ts"],"names":[],"mappings":"AAIA,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,iBAAiB,IAAI,GAAG;QACxB,YAAY,IAAI,GAAG,CACpB,CAAC;AACJ,CAAC;AAED,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,qBAAqB;IAChC,MAAM,CAAC,OAA0B;QAC/B,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC;gBACtD,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Observer, ObservableSubject } from "../interfaces/Observer.js";
|
|
2
|
+
import type { LoggerInterface } from "../interfaces/LoggerInterface.js";
|
|
3
|
+
export declare class TransitionLogger implements Observer {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private readonly loggerLevel;
|
|
6
|
+
constructor(logger: LoggerInterface, loggerLevel?: string);
|
|
7
|
+
update(subject: ObservableSubject): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=TransitionLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransitionLogger.d.ts","sourceRoot":"","sources":["../../src/observer/TransitionLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AA4BxE,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,eAAe,EAAE,WAAW,SAAS;IAKzD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;CA6CzC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
function isStatemachine(obj) {
|
|
2
|
+
return (typeof obj === "object" &&
|
|
3
|
+
obj !== null &&
|
|
4
|
+
"getCurrentState" in obj &&
|
|
5
|
+
"getSubject" in obj);
|
|
6
|
+
}
|
|
7
|
+
function isNamed(obj) {
|
|
8
|
+
return (typeof obj === "object" &&
|
|
9
|
+
obj !== null &&
|
|
10
|
+
"getName" in obj &&
|
|
11
|
+
typeof obj.getName === "function");
|
|
12
|
+
}
|
|
13
|
+
function convertToString(obj) {
|
|
14
|
+
if (isNamed(obj)) {
|
|
15
|
+
return obj.getName();
|
|
16
|
+
}
|
|
17
|
+
return String(obj);
|
|
18
|
+
}
|
|
19
|
+
export class TransitionLogger {
|
|
20
|
+
logger;
|
|
21
|
+
loggerLevel;
|
|
22
|
+
constructor(logger, loggerLevel = "info") {
|
|
23
|
+
this.logger = logger;
|
|
24
|
+
this.loggerLevel = loggerLevel;
|
|
25
|
+
}
|
|
26
|
+
update(subject) {
|
|
27
|
+
if (!isStatemachine(subject)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const context = {};
|
|
31
|
+
context["subject"] = subject.getSubject();
|
|
32
|
+
context["currentState"] = subject.getCurrentState();
|
|
33
|
+
context["lastState"] = subject.getLastState();
|
|
34
|
+
context["transition"] = subject.getSelectedTransition();
|
|
35
|
+
let message = "Transition";
|
|
36
|
+
if (context["subject"] != null) {
|
|
37
|
+
message += ` for "${convertToString(context["subject"])}"`;
|
|
38
|
+
}
|
|
39
|
+
if (context["lastState"] != null) {
|
|
40
|
+
message += ` from "${convertToString(context["lastState"])}"`;
|
|
41
|
+
}
|
|
42
|
+
if (context["currentState"] != null) {
|
|
43
|
+
message += ` to "${convertToString(context["currentState"])}"`;
|
|
44
|
+
}
|
|
45
|
+
const transition = context["transition"];
|
|
46
|
+
if (transition && typeof transition.getEventName === "function") {
|
|
47
|
+
const eventName = transition.getEventName();
|
|
48
|
+
const condition = transition.getConditionName?.();
|
|
49
|
+
if (eventName || condition) {
|
|
50
|
+
message += " with";
|
|
51
|
+
if (eventName) {
|
|
52
|
+
message += ` event "${eventName}"`;
|
|
53
|
+
}
|
|
54
|
+
if (condition) {
|
|
55
|
+
message += ` condition "${condition}"`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
this.logger.log(this.loggerLevel, message, context);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=TransitionLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransitionLogger.js","sourceRoot":"","sources":["../../src/observer/TransitionLogger.ts"],"names":[],"mappings":"AAKA,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,iBAAiB,IAAI,GAAG;QACxB,YAAY,IAAI,GAAG,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,SAAS,IAAI,GAAG;QAChB,OAAQ,GAAa,CAAC,OAAO,KAAK,UAAU,CAC7C,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAkB;IACxB,WAAW,CAAS;IAErC,YAAY,MAAuB,EAAE,WAAW,GAAG,MAAM;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,OAA0B;QAC/B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QACpD,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAC9C,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAExD,IAAI,OAAO,GAAG,YAAY,CAAC;QAE3B,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,OAAO,IAAI,SAAS,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;QAC7D,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,UAAU,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;YACpC,OAAO,IAAI,QAAQ,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC;QACjE,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAG/B,CAAC;QACT,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAClD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,OAAO,IAAI,OAAO,CAAC;gBACnB,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,IAAI,WAAW,SAAS,GAAG,CAAC;gBACrC,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,IAAI,eAAe,SAAS,GAAG,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CallbackObserver } from "./CallbackObserver.js";
|
|
2
|
+
export { StatefulStatusChanger } from "./StatefulStatusChanger.js";
|
|
3
|
+
export { OnEnterObserver } from "./OnEnterObserver.js";
|
|
4
|
+
export { TransitionLogger } from "./TransitionLogger.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CallbackObserver } from "./CallbackObserver.js";
|
|
2
|
+
export { StatefulStatusChanger } from "./StatefulStatusChanger.js";
|
|
3
|
+
export { OnEnterObserver } from "./OnEnterObserver.js";
|
|
4
|
+
export { TransitionLogger } from "./TransitionLogger.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TransitionSelectorInterface } from "../interfaces/TransitionSelectorInterface.js";
|
|
2
|
+
import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
|
|
3
|
+
export declare class OneOrNoneActiveTransition implements TransitionSelectorInterface {
|
|
4
|
+
selectTransition(transitions: Iterable<TransitionInterface>): TransitionInterface | null;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=OneOrNoneActiveTransition.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class OneOrNoneActiveTransition {
|
|
2
|
+
selectTransition(transitions) {
|
|
3
|
+
const arr = Array.from(transitions);
|
|
4
|
+
switch (arr.length) {
|
|
5
|
+
case 0:
|
|
6
|
+
return null;
|
|
7
|
+
case 1:
|
|
8
|
+
return arr[0];
|
|
9
|
+
default:
|
|
10
|
+
throw new Error("More than one transition is active!");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=OneOrNoneActiveTransition.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TransitionSelectorInterface } from "../interfaces/TransitionSelectorInterface.js";
|
|
2
|
+
import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
|
|
3
|
+
export declare class ScoreTransition implements TransitionSelectorInterface {
|
|
4
|
+
private readonly innerSelector;
|
|
5
|
+
constructor(innerSelector?: TransitionSelectorInterface);
|
|
6
|
+
protected calculateScore(transition: TransitionInterface): number;
|
|
7
|
+
selectTransition(transitions: Iterable<TransitionInterface>): TransitionInterface | null;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ScoreTransition.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { OneOrNoneActiveTransition } from "./OneOrNoneActiveTransition.js";
|
|
2
|
+
export class ScoreTransition {
|
|
3
|
+
innerSelector;
|
|
4
|
+
constructor(innerSelector) {
|
|
5
|
+
this.innerSelector = innerSelector ?? new OneOrNoneActiveTransition();
|
|
6
|
+
}
|
|
7
|
+
calculateScore(transition) {
|
|
8
|
+
let score = 0;
|
|
9
|
+
if (transition.getEventName()) {
|
|
10
|
+
score += 2;
|
|
11
|
+
}
|
|
12
|
+
if (transition.getConditionName()) {
|
|
13
|
+
score += 1;
|
|
14
|
+
}
|
|
15
|
+
return score;
|
|
16
|
+
}
|
|
17
|
+
selectTransition(transitions) {
|
|
18
|
+
let bestTransitions = [];
|
|
19
|
+
let bestScore = -1;
|
|
20
|
+
for (const transition of transitions) {
|
|
21
|
+
const score = this.calculateScore(transition);
|
|
22
|
+
if (score > bestScore) {
|
|
23
|
+
bestScore = score;
|
|
24
|
+
bestTransitions = [transition];
|
|
25
|
+
}
|
|
26
|
+
else if (score === bestScore) {
|
|
27
|
+
bestTransitions.push(transition);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return this.innerSelector.selectTransition(bestTransitions);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ScoreTransition.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TransitionSelectorInterface } from "../interfaces/TransitionSelectorInterface.js";
|
|
2
|
+
import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
|
|
3
|
+
export declare class WeightTransition implements TransitionSelectorInterface {
|
|
4
|
+
private readonly innerSelector;
|
|
5
|
+
private readonly epsilon;
|
|
6
|
+
constructor(innerSelector?: TransitionSelectorInterface, epsilon?: number);
|
|
7
|
+
selectTransition(transitions: Iterable<TransitionInterface>): TransitionInterface | null;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=WeightTransition.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { OneOrNoneActiveTransition } from "./OneOrNoneActiveTransition.js";
|
|
2
|
+
export class WeightTransition {
|
|
3
|
+
innerSelector;
|
|
4
|
+
epsilon;
|
|
5
|
+
constructor(innerSelector, epsilon = 0.001) {
|
|
6
|
+
this.innerSelector = innerSelector ?? new OneOrNoneActiveTransition();
|
|
7
|
+
this.epsilon = epsilon;
|
|
8
|
+
}
|
|
9
|
+
selectTransition(transitions) {
|
|
10
|
+
let bestTransitions = [];
|
|
11
|
+
let bestWeight = null;
|
|
12
|
+
for (const transition of transitions) {
|
|
13
|
+
const weight = transition.getWeight();
|
|
14
|
+
const diff = weight - (bestWeight ?? 0);
|
|
15
|
+
if (bestWeight === null || diff >= this.epsilon) {
|
|
16
|
+
bestWeight = weight;
|
|
17
|
+
bestTransitions = [transition];
|
|
18
|
+
}
|
|
19
|
+
else if (Math.abs(diff) < this.epsilon) {
|
|
20
|
+
bestTransitions.push(transition);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return this.innerSelector.selectTransition(bestTransitions);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=WeightTransition.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { StateInterface } from "../interfaces/StateInterface.js";
|
|
2
|
+
import type { TransitionInterface } from "../interfaces/TransitionInterface.js";
|
|
3
|
+
import type { ConditionInterface } from "../interfaces/ConditionInterface.js";
|
|
4
|
+
import type { EventInterface } from "../interfaces/EventInterface.js";
|
|
5
|
+
import type { Observer } from "../interfaces/Observer.js";
|
|
6
|
+
import { StateCollection } from "../StateCollection.js";
|
|
7
|
+
export declare class SetupHelper {
|
|
8
|
+
protected readonly stateCollection: StateCollection;
|
|
9
|
+
constructor(stateCollection: StateCollection);
|
|
10
|
+
findOrCreateState(name: string): StateInterface;
|
|
11
|
+
protected findTransition(sourceState: StateInterface, targetState: StateInterface, eventName?: string | null, condition?: ConditionInterface | null): TransitionInterface | null;
|
|
12
|
+
findOrCreateTransition(sourceStateName: string, targetStateName: string, eventName?: string | null, condition?: ConditionInterface | null): TransitionInterface;
|
|
13
|
+
findOrCreateEvent(sourceStateName: string, eventName: string): EventInterface;
|
|
14
|
+
addCommand(sourceStateName: string, eventName: string, command: Observer): void;
|
|
15
|
+
addCommandAndSelfTransition(sourceStateName: string, eventName: string, command: Observer): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=SetupHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupHelper.d.ts","sourceRoot":"","sources":["../../src/util/SetupHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,WAAW;IACtB,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;gBAExC,eAAe,EAAE,eAAe;IAI5C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAO/C,SAAS,CAAC,cAAc,CACtB,WAAW,EAAE,cAAc,EAC3B,WAAW,EAAE,cAAc,EAC3B,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,SAAS,GAAE,kBAAkB,GAAG,IAAW,GAC1C,mBAAmB,GAAG,IAAI;IAa7B,sBAAsB,CACpB,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,SAAS,GAAE,kBAAkB,GAAG,IAAW,GAC1C,mBAAmB;IAgBtB,iBAAiB,CACf,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,GAChB,cAAc;IAKjB,UAAU,CACR,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,QAAQ,GAChB,IAAI;IAIP,2BAA2B,CACzB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,QAAQ,GAChB,IAAI;CAIR"}
|