jssm 5.65.4 → 5.65.8
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/dist/es6/jssm.d.ts +42 -0
- package/dist/es6/jssm.js +42 -0
- package/dist/es6/jssm_util.d.ts +43 -1
- package/dist/es6/jssm_util.js +53 -2
- package/dist/es6/version.js +1 -1
- package/dist/jssm.es5.cjs.js +1 -1
- package/dist/jssm.es5.iife.js +1 -1
- package/jssm.d.ts +42 -0
- package/jssm_util.d.ts +43 -1
- package/package.json +2 -2
package/dist/es6/jssm.d.ts
CHANGED
|
@@ -214,6 +214,21 @@ declare class Machine<mDT> {
|
|
|
214
214
|
_any_transition_hook: HookHandler | undefined;
|
|
215
215
|
constructor({ start_states, complete, transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, fsl_version, dot_preamble, arrange_declaration, arrange_start_declaration, arrange_end_declaration, theme, flow, graph_layout, instance_name }: JssmGenericConfig<mDT>);
|
|
216
216
|
_new_state(state_config: JssmGenericState): StateType;
|
|
217
|
+
/*********
|
|
218
|
+
*
|
|
219
|
+
* Get the current state of a machine.
|
|
220
|
+
*
|
|
221
|
+
* ```typescript
|
|
222
|
+
* import * as jssm from './jssm';
|
|
223
|
+
*
|
|
224
|
+
* const switch = jssm.from('on <=> off;');
|
|
225
|
+
* console.log( switch.state() ); // 'on'
|
|
226
|
+
*
|
|
227
|
+
* switch.transition('off');
|
|
228
|
+
* console.log( switch.state() ); // 'off'
|
|
229
|
+
* ```
|
|
230
|
+
*
|
|
231
|
+
*/
|
|
217
232
|
state(): StateType;
|
|
218
233
|
state_is_final(whichState: StateType): boolean;
|
|
219
234
|
is_final(): boolean;
|
|
@@ -232,8 +247,35 @@ declare class Machine<mDT> {
|
|
|
232
247
|
state_declarations(): Map<StateType, JssmStateDeclaration>;
|
|
233
248
|
fsl_version(): string;
|
|
234
249
|
machine_state(): JssmMachineInternalState<mDT>;
|
|
250
|
+
/*********
|
|
251
|
+
*
|
|
252
|
+
* List all the states known by the machine. Please note that the order of
|
|
253
|
+
* these states is not guaranteed.
|
|
254
|
+
*
|
|
255
|
+
* ```typescript
|
|
256
|
+
* import * as jssm from './jssm';
|
|
257
|
+
*
|
|
258
|
+
* const switch = jssm.from('on <=> off;');
|
|
259
|
+
* console.log( switch.states() ); // ['on', 'off']
|
|
260
|
+
* ```
|
|
261
|
+
*
|
|
262
|
+
*/
|
|
235
263
|
states(): Array<StateType>;
|
|
236
264
|
state_for(whichState: StateType): JssmGenericState;
|
|
265
|
+
/*********
|
|
266
|
+
*
|
|
267
|
+
* Check whether the machine knows a given state.
|
|
268
|
+
*
|
|
269
|
+
* ```typescript
|
|
270
|
+
* import * as jssm from './jssm';
|
|
271
|
+
*
|
|
272
|
+
* const switch = jssm.from('on <=> off;');
|
|
273
|
+
|
|
274
|
+
* console.log( switch.has_state('off') ); // true
|
|
275
|
+
* console.log( switch.has_state('dance') ); // false
|
|
276
|
+
* ```
|
|
277
|
+
*
|
|
278
|
+
*/
|
|
237
279
|
has_state(whichState: StateType): boolean;
|
|
238
280
|
list_edges(): Array<JssmTransition<mDT>>;
|
|
239
281
|
list_named_transitions(): Map<StateType, number>;
|
package/dist/es6/jssm.js
CHANGED
|
@@ -650,6 +650,21 @@ class Machine {
|
|
|
650
650
|
this._states.set(state_config.name, state_config);
|
|
651
651
|
return state_config.name;
|
|
652
652
|
}
|
|
653
|
+
/*********
|
|
654
|
+
*
|
|
655
|
+
* Get the current state of a machine.
|
|
656
|
+
*
|
|
657
|
+
* ```typescript
|
|
658
|
+
* import * as jssm from './jssm';
|
|
659
|
+
*
|
|
660
|
+
* const switch = jssm.from('on <=> off;');
|
|
661
|
+
* console.log( switch.state() ); // 'on'
|
|
662
|
+
*
|
|
663
|
+
* switch.transition('off');
|
|
664
|
+
* console.log( switch.state() ); // 'off'
|
|
665
|
+
* ```
|
|
666
|
+
*
|
|
667
|
+
*/
|
|
653
668
|
state() {
|
|
654
669
|
return this._state;
|
|
655
670
|
}
|
|
@@ -727,6 +742,19 @@ class Machine {
|
|
|
727
742
|
return false; // todo whargarbl
|
|
728
743
|
}
|
|
729
744
|
*/
|
|
745
|
+
/*********
|
|
746
|
+
*
|
|
747
|
+
* List all the states known by the machine. Please note that the order of
|
|
748
|
+
* these states is not guaranteed.
|
|
749
|
+
*
|
|
750
|
+
* ```typescript
|
|
751
|
+
* import * as jssm from './jssm';
|
|
752
|
+
*
|
|
753
|
+
* const switch = jssm.from('on <=> off;');
|
|
754
|
+
* console.log( switch.states() ); // ['on', 'off']
|
|
755
|
+
* ```
|
|
756
|
+
*
|
|
757
|
+
*/
|
|
730
758
|
states() {
|
|
731
759
|
return Array.from(this._states.keys());
|
|
732
760
|
}
|
|
@@ -739,6 +767,20 @@ class Machine {
|
|
|
739
767
|
throw new JssmError(this, 'No such state', { requested_state: whichState });
|
|
740
768
|
}
|
|
741
769
|
}
|
|
770
|
+
/*********
|
|
771
|
+
*
|
|
772
|
+
* Check whether the machine knows a given state.
|
|
773
|
+
*
|
|
774
|
+
* ```typescript
|
|
775
|
+
* import * as jssm from './jssm';
|
|
776
|
+
*
|
|
777
|
+
* const switch = jssm.from('on <=> off;');
|
|
778
|
+
|
|
779
|
+
* console.log( switch.has_state('off') ); // true
|
|
780
|
+
* console.log( switch.has_state('dance') ); // false
|
|
781
|
+
* ```
|
|
782
|
+
*
|
|
783
|
+
*/
|
|
742
784
|
has_state(whichState) {
|
|
743
785
|
return this._states.get(whichState) !== undefined;
|
|
744
786
|
}
|
package/dist/es6/jssm_util.d.ts
CHANGED
|
@@ -1,10 +1,52 @@
|
|
|
1
|
+
/*******
|
|
2
|
+
*
|
|
3
|
+
* Predicate for validating an array for uniqueness. Not generally meant for
|
|
4
|
+
* external use.
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
1
7
|
declare function arr_uniq_p<T>(el: T, i: number, source: T[]): boolean;
|
|
2
8
|
declare const array_box_if_string: (n: any) => any;
|
|
3
9
|
declare const weighted_rand_select: Function;
|
|
4
|
-
|
|
10
|
+
/*******
|
|
11
|
+
*
|
|
12
|
+
* Returns, for a non-negative integer argument `n`, the series `[0 .. n]`.
|
|
13
|
+
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { seq } from './jssm';
|
|
16
|
+
*
|
|
17
|
+
* seq(5); // [0, 1, 2, 3, 4]
|
|
18
|
+
* seq(0); // []
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
declare function seq(n: number): number[];
|
|
23
|
+
/*******
|
|
24
|
+
*
|
|
25
|
+
* Returns the histograph of an array as a `Map`. Makes no attempt to cope
|
|
26
|
+
* with deep equality; will fail for complex contents, as such.
|
|
27
|
+
*
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import { histograph } from './jssm';
|
|
30
|
+
*
|
|
31
|
+
* histograph( [0, 0, 1, 1, 2, 2, 1] ); // Map()
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
5
35
|
declare const histograph: Function;
|
|
6
36
|
declare const weighted_sample_select: Function;
|
|
7
37
|
declare const weighted_histo_key: Function;
|
|
38
|
+
/*******
|
|
39
|
+
*
|
|
40
|
+
* Internal method generating names for edges for the hook lookup map. Not
|
|
41
|
+
* meant for external use.
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
8
44
|
declare const hook_name: (from: string, to: string) => string;
|
|
45
|
+
/*******
|
|
46
|
+
*
|
|
47
|
+
* Internal method generating names for actions for the hook lookup map. Not
|
|
48
|
+
* meant for external use.
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
9
51
|
declare const named_hook_name: (from: string, to: string, action: string) => string;
|
|
10
52
|
export { seq, arr_uniq_p, histograph, weighted_histo_key, weighted_rand_select, weighted_sample_select, array_box_if_string, hook_name, named_hook_name };
|
package/dist/es6/jssm_util.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/*******
|
|
2
|
+
*
|
|
3
|
+
* Predicate for validating an array for uniqueness. Not generally meant for
|
|
4
|
+
* external use.
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
1
7
|
function arr_uniq_p(el, i, source) {
|
|
2
8
|
return source.indexOf(el) === i;
|
|
3
9
|
}
|
|
@@ -17,8 +23,41 @@ const weighted_rand_select = (options, probability_property = 'probability') =>
|
|
|
17
23
|
return options[cursor - 1];
|
|
18
24
|
};
|
|
19
25
|
/* eslint-enable flowtype/no-weak-types */
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
/*******
|
|
27
|
+
*
|
|
28
|
+
* Returns, for a non-negative integer argument `n`, the series `[0 .. n]`.
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { seq } from './jssm';
|
|
32
|
+
*
|
|
33
|
+
* seq(5); // [0, 1, 2, 3, 4]
|
|
34
|
+
* seq(0); // []
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
function seq(n) {
|
|
39
|
+
if (!(Number.isInteger(n))) {
|
|
40
|
+
throw new TypeError('seq/1 takes a non-negative integer n as an argument');
|
|
41
|
+
}
|
|
42
|
+
if (n < 0) {
|
|
43
|
+
throw new TypeError('seq/1 takes a non-negative integer n as an argument');
|
|
44
|
+
}
|
|
45
|
+
return (new Array(n))
|
|
46
|
+
.fill(true)
|
|
47
|
+
.map((_, i) => i);
|
|
48
|
+
}
|
|
49
|
+
/*******
|
|
50
|
+
*
|
|
51
|
+
* Returns the histograph of an array as a `Map`. Makes no attempt to cope
|
|
52
|
+
* with deep equality; will fail for complex contents, as such.
|
|
53
|
+
*
|
|
54
|
+
* ```typescript
|
|
55
|
+
* import { histograph } from './jssm';
|
|
56
|
+
*
|
|
57
|
+
* histograph( [0, 0, 1, 1, 2, 2, 1] ); // Map()
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
22
61
|
const histograph = (ar) => // eslint-disable-line flowtype/no-weak-types
|
|
23
62
|
ar.sort()
|
|
24
63
|
.reduce((m, v) => // TODO FIXME eslint-disable-line flowtype/no-weak-types,no-sequences
|
|
@@ -31,6 +70,18 @@ const weighted_histo_key = (n, opts, prob_prop, extract) => // TODO FIXME no any
|
|
|
31
70
|
histograph(weighted_sample_select(n, opts, prob_prop)
|
|
32
71
|
.map((s) => s[extract] // TODO FIXME eslint-disable-line flowtype/no-weak-types
|
|
33
72
|
));
|
|
73
|
+
/*******
|
|
74
|
+
*
|
|
75
|
+
* Internal method generating names for edges for the hook lookup map. Not
|
|
76
|
+
* meant for external use.
|
|
77
|
+
*
|
|
78
|
+
*/
|
|
34
79
|
const hook_name = (from, to) => JSON.stringify([from, to]);
|
|
80
|
+
/*******
|
|
81
|
+
*
|
|
82
|
+
* Internal method generating names for actions for the hook lookup map. Not
|
|
83
|
+
* meant for external use.
|
|
84
|
+
*
|
|
85
|
+
*/
|
|
35
86
|
const named_hook_name = (from, to, action) => JSON.stringify([from, to, action]);
|
|
36
87
|
export { seq, arr_uniq_p, histograph, weighted_histo_key, weighted_rand_select, weighted_sample_select, array_box_if_string, hook_name, named_hook_name };
|
package/dist/es6/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version = "5.65.
|
|
1
|
+
const version = "5.65.8";
|
|
2
2
|
export { version };
|