jssm 5.85.6 → 5.85.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -54
- package/README.md +2 -2
- package/dist/es6/jssm.d.ts +11 -182
- package/dist/es6/jssm.js +5 -540
- package/dist/es6/jssm_arrow.d.ts +53 -0
- package/dist/es6/jssm_arrow.js +187 -0
- package/dist/es6/jssm_compiler.d.ts +135 -0
- package/dist/es6/jssm_compiler.js +363 -0
- package/dist/es6/jssm_types.d.ts +15 -15
- 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 +11 -182
- package/jssm_arrow.d.ts +53 -0
- package/jssm_compiler.d.ts +135 -0
- package/jssm_types.d.ts +15 -15
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
1056 merges; 167 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -22,13 +22,14 @@ Published tags:
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
## [Untagged] - 9/12/2022
|
|
25
|
+
## [Untagged] - 9/12/2022 8:18:05 PM
|
|
26
26
|
|
|
27
|
-
Commit [
|
|
27
|
+
Commit [013999a77ce43ceed5eb982754ffe480fdddf159](https://github.com/StoneCypher/jssm/commit/013999a77ce43ceed5eb982754ffe480fdddf159)
|
|
28
28
|
|
|
29
29
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
30
30
|
|
|
31
|
-
*
|
|
31
|
+
* Pull arrows out into modules
|
|
32
|
+
* Fixes StoneCypher/fsl#1206
|
|
32
33
|
|
|
33
34
|
|
|
34
35
|
|
|
@@ -37,15 +38,14 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
## [Untagged] - 9/12/2022 7:19:21 PM
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Commit [35ad7228d5bb15d963a2e4d9e6e35721cce36b33](https://github.com/StoneCypher/jssm/commit/35ad7228d5bb15d963a2e4d9e6e35721cce36b33)
|
|
43
|
+
Commit [771f4c8d67274b40451ae6dfef168fe3c15949df](https://github.com/StoneCypher/jssm/commit/771f4c8d67274b40451ae6dfef168fe3c15949df)
|
|
45
44
|
|
|
46
45
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
47
46
|
|
|
48
|
-
* Add
|
|
47
|
+
* Add tests for unicode labels (atom and string)
|
|
48
|
+
* Fixes StoneCypher/fsl#1193, fixes StoneCypher/fsl#1194
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
@@ -54,15 +54,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## [5.85.4] - 9/12/2022 1:55:57 PM
|
|
57
|
+
## [Untagged] - 9/12/2022 6:52:26 PM
|
|
60
58
|
|
|
61
|
-
Commit [
|
|
59
|
+
Commit [3eb246ddb992372ceca4c0adc9dc45295a0a7177](https://github.com/StoneCypher/jssm/commit/3eb246ddb992372ceca4c0adc9dc45295a0a7177)
|
|
62
60
|
|
|
63
61
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
64
62
|
|
|
65
|
-
*
|
|
63
|
+
* Return twitter envvar to GHA yaml
|
|
66
64
|
|
|
67
65
|
|
|
68
66
|
|
|
@@ -71,18 +69,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
71
69
|
|
|
72
70
|
|
|
73
71
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
## [5.85.3] - 9/12/2022 11:25:36 AM
|
|
72
|
+
## [Untagged] - 9/12/2022 6:52:26 PM
|
|
77
73
|
|
|
78
|
-
Commit [
|
|
74
|
+
Commit [3a01b8d7ae2cee185e4f36c90a95338bf30002cb](https://github.com/StoneCypher/jssm/commit/3a01b8d7ae2cee185e4f36c90a95338bf30002cb)
|
|
79
75
|
|
|
80
76
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
81
77
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
* Merge pull request #540 from StoneCypher/ReintroduceDisplayText
|
|
85
|
-
* Reintroduce display text, lost in a bad merge
|
|
78
|
+
* that wasn't supposed to be removed...
|
|
86
79
|
|
|
87
80
|
|
|
88
81
|
|
|
@@ -91,13 +84,14 @@ Merges [98b7b14, 6475296]
|
|
|
91
84
|
|
|
92
85
|
|
|
93
86
|
|
|
94
|
-
## [Untagged] - 9/12/2022
|
|
87
|
+
## [Untagged] - 9/12/2022 6:39:19 PM
|
|
95
88
|
|
|
96
|
-
Commit [
|
|
89
|
+
Commit [37c0bdf33263bf4b9dd60ba329108297cf5ea68f](https://github.com/StoneCypher/jssm/commit/37c0bdf33263bf4b9dd60ba329108297cf5ea68f)
|
|
97
90
|
|
|
98
91
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
99
92
|
|
|
100
|
-
*
|
|
93
|
+
* Prevent request of illegal state as start state
|
|
94
|
+
* Fixes StoneCypher/fsl#1203, fixes StoneCypher/fsl#1204, fixes StoneCypher/fsl#1205
|
|
101
95
|
|
|
102
96
|
|
|
103
97
|
|
|
@@ -106,18 +100,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
106
100
|
|
|
107
101
|
|
|
108
102
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
## [5.85.2] - 9/12/2022 10:03:27 AM
|
|
103
|
+
## [Untagged] - 9/12/2022 3:27:58 PM
|
|
112
104
|
|
|
113
|
-
Commit [
|
|
105
|
+
Commit [4b9fefde004f1c1ac5f36ad760105109475af95a](https://github.com/StoneCypher/jssm/commit/4b9fefde004f1c1ac5f36ad760105109475af95a)
|
|
114
106
|
|
|
115
107
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
116
108
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
* Merge pull request #539 from StoneCypher/TrimTweet
|
|
120
|
-
* Shorten the tweet notice
|
|
109
|
+
* expose build date directly on module (also -viz and -demo,) support logging in -demo
|
|
121
110
|
|
|
122
111
|
|
|
123
112
|
|
|
@@ -126,13 +115,15 @@ Merges [461a287, 0f3025a]
|
|
|
126
115
|
|
|
127
116
|
|
|
128
117
|
|
|
129
|
-
|
|
118
|
+
<a name="5__85__5" />
|
|
130
119
|
|
|
131
|
-
|
|
120
|
+
## [5.85.5] - 9/12/2022 3:10:10 PM
|
|
121
|
+
|
|
122
|
+
Commit [35ad7228d5bb15d963a2e4d9e6e35721cce36b33](https://github.com/StoneCypher/jssm/commit/35ad7228d5bb15d963a2e4d9e6e35721cce36b33)
|
|
132
123
|
|
|
133
124
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
134
125
|
|
|
135
|
-
*
|
|
126
|
+
* Add build time to module
|
|
136
127
|
|
|
137
128
|
|
|
138
129
|
|
|
@@ -141,18 +132,15 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
141
132
|
|
|
142
133
|
|
|
143
134
|
|
|
144
|
-
<a name="
|
|
135
|
+
<a name="5__85__4" />
|
|
145
136
|
|
|
146
|
-
## [5.85.
|
|
137
|
+
## [5.85.4] - 9/12/2022 1:55:57 PM
|
|
147
138
|
|
|
148
|
-
Commit [
|
|
139
|
+
Commit [293e2cb9c07734fef562b455d786b7c63ea7647b](https://github.com/StoneCypher/jssm/commit/293e2cb9c07734fef562b455d786b7c63ea7647b)
|
|
149
140
|
|
|
150
141
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
151
142
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
* Merge pull request #538 from StoneCypher/RemoveYmlEcho
|
|
155
|
-
* Remove noisy echo in the YML
|
|
143
|
+
* Clean up the gh action a skosh
|
|
156
144
|
|
|
157
145
|
|
|
158
146
|
|
|
@@ -161,13 +149,18 @@ Merges [2eec2c8, 76d6729]
|
|
|
161
149
|
|
|
162
150
|
|
|
163
151
|
|
|
164
|
-
|
|
152
|
+
<a name="5__85__3" />
|
|
153
|
+
|
|
154
|
+
## [5.85.3] - 9/12/2022 11:25:36 AM
|
|
165
155
|
|
|
166
|
-
Commit [
|
|
156
|
+
Commit [87ec233d3511d30358660ad161f932e13eb1738e](https://github.com/StoneCypher/jssm/commit/87ec233d3511d30358660ad161f932e13eb1738e)
|
|
167
157
|
|
|
168
158
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
169
159
|
|
|
170
|
-
|
|
160
|
+
Merges [98b7b14, 6475296]
|
|
161
|
+
|
|
162
|
+
* Merge pull request #540 from StoneCypher/ReintroduceDisplayText
|
|
163
|
+
* Reintroduce display text, lost in a bad merge
|
|
171
164
|
|
|
172
165
|
|
|
173
166
|
|
|
@@ -176,15 +169,10 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
176
169
|
|
|
177
170
|
|
|
178
171
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
## [5.85.0] - 9/12/2022 9:22:37 AM
|
|
172
|
+
## [Untagged] - 9/12/2022 11:24:38 AM
|
|
182
173
|
|
|
183
|
-
Commit [
|
|
174
|
+
Commit [6475296d979dab3d227828b80319d60c4f6ab2f5](https://github.com/StoneCypher/jssm/commit/6475296d979dab3d227828b80319d60c4f6ab2f5)
|
|
184
175
|
|
|
185
176
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
186
177
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
* Merge pull request #537 from StoneCypher/DisplayText
|
|
190
|
-
* simple display text function to resolve labels and node names
|
|
178
|
+
* Reintroduce display text, lost in a bad merge
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Please edit the file it's derived from, instead: `./src/md/readme_base.md`
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
* Generated for version 5.85.
|
|
21
|
+
* Generated for version 5.85.9 at 9/12/2022, 9:03:57 PM
|
|
22
22
|
|
|
23
23
|
-->
|
|
24
24
|
# jssm
|
|
@@ -29,7 +29,7 @@ share online. Easy to embed.
|
|
|
29
29
|
|
|
30
30
|
Readable, useful state machines as one-liner strings.
|
|
31
31
|
|
|
32
|
-
***4,
|
|
32
|
+
***4,866 tests*** run 5,757 times. 4,857 specs with 100.0% coverage, 9 fuzz tests with 13.6% coverage. With 2,754 lines, that's about 1.8 tests per line, or 2.1 generated tests per line.
|
|
33
33
|
|
|
34
34
|
***Meet your new state machine library.***
|
|
35
35
|
|
package/dist/es6/jssm.d.ts
CHANGED
|
@@ -1,183 +1,12 @@
|
|
|
1
1
|
declare type StateType = string;
|
|
2
2
|
import { JssmGenericState, JssmGenericConfig, JssmStateConfig, JssmTransition, JssmTransitionList, // JssmTransitionRule,
|
|
3
|
-
JssmMachineInternalState,
|
|
3
|
+
JssmMachineInternalState, JssmStateDeclaration, JssmStateStyleKeyList, JssmLayout, JssmHistory, JssmSerialization, FslDirection, FslDirections, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult } from './jssm_types';
|
|
4
|
+
import { arrow_direction, arrow_left_kind, arrow_right_kind } from './jssm_arrow';
|
|
5
|
+
import { compile, make, wrap_parse } from './jssm_compiler';
|
|
4
6
|
import { seq, unique, find_repeated, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key } from './jssm_util';
|
|
5
7
|
import * as constants from './jssm_constants';
|
|
6
8
|
declare const shapes: string[], gviz_shapes: string[], named_colors: string[];
|
|
7
9
|
import { version, build_time } from './version';
|
|
8
|
-
/*********
|
|
9
|
-
*
|
|
10
|
-
* Return the direction of an arrow - `right`, `left`, or `both`.
|
|
11
|
-
*
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { arrow_direction } from 'jssm';
|
|
14
|
-
*
|
|
15
|
-
* arrow_direction('->'); // 'right'
|
|
16
|
-
* arrow_direction('<~=>'); // 'both'
|
|
17
|
-
* ```
|
|
18
|
-
*
|
|
19
|
-
* @param arrow The arrow to be evaluated
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
declare function arrow_direction(arrow: JssmArrow): JssmArrowDirection;
|
|
23
|
-
/*********
|
|
24
|
-
*
|
|
25
|
-
* Return the direction of an arrow - `right`, `left`, or `both`.
|
|
26
|
-
*
|
|
27
|
-
* ```typescript
|
|
28
|
-
* import { arrow_left_kind } from 'jssm';
|
|
29
|
-
*
|
|
30
|
-
* arrow_left_kind('<-'); // 'legal'
|
|
31
|
-
* arrow_left_kind('<='); // 'main'
|
|
32
|
-
* arrow_left_kind('<~'); // 'forced'
|
|
33
|
-
* arrow_left_kind('<->'); // 'legal'
|
|
34
|
-
* arrow_left_kind('->'); // 'none'
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* @param arrow The arrow to be evaluated
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
declare function arrow_left_kind(arrow: JssmArrow): JssmArrowKind;
|
|
41
|
-
/*********
|
|
42
|
-
*
|
|
43
|
-
* Return the direction of an arrow - `right`, `left`, or `both`.
|
|
44
|
-
*
|
|
45
|
-
* ```typescript
|
|
46
|
-
* import { arrow_left_kind } from 'jssm';
|
|
47
|
-
*
|
|
48
|
-
* arrow_left_kind('->'); // 'legal'
|
|
49
|
-
* arrow_left_kind('=>'); // 'main'
|
|
50
|
-
* arrow_left_kind('~>'); // 'forced'
|
|
51
|
-
* arrow_left_kind('<->'); // 'legal'
|
|
52
|
-
* arrow_left_kind('<-'); // 'none'
|
|
53
|
-
* ```
|
|
54
|
-
*
|
|
55
|
-
* @param arrow The arrow to be evaluated
|
|
56
|
-
*
|
|
57
|
-
*/
|
|
58
|
-
declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
|
|
59
|
-
/*********
|
|
60
|
-
*
|
|
61
|
-
* This method wraps the parser call that comes from the peg grammar,
|
|
62
|
-
* {@link parse}. Generally neither this nor that should be used directly
|
|
63
|
-
* unless you mean to develop plugins or extensions for the machine.
|
|
64
|
-
*
|
|
65
|
-
* Parses the intermediate representation of a compiled string down to a
|
|
66
|
-
* machine configuration object. If you're using this (probably don't,) you're
|
|
67
|
-
* probably also using {@link compile} and {@link Machine.constructor}.
|
|
68
|
-
*
|
|
69
|
-
* ```typescript
|
|
70
|
-
* import { parse, compile, Machine } from 'jssm';
|
|
71
|
-
*
|
|
72
|
-
* const intermediate = wrap_parse('a -> b;', {});
|
|
73
|
-
* // [ {key:'transition', from:'a', se:{kind:'->',to:'b'}} ]
|
|
74
|
-
*
|
|
75
|
-
* const cfg = compile(intermediate);
|
|
76
|
-
* // { start_states:['a'], transitions: [{ from:'a', to:'b', kind:'legal', forced_only:false, main_path:false }] }
|
|
77
|
-
*
|
|
78
|
-
* const machine = new Machine(cfg);
|
|
79
|
-
* // Machine { _instance_name: undefined, _state: 'a', ...
|
|
80
|
-
* ```
|
|
81
|
-
*
|
|
82
|
-
* This method is mostly for plugin and intermediate tool authors, or people
|
|
83
|
-
* who need to work with the machine's intermediate representation.
|
|
84
|
-
*
|
|
85
|
-
* # Hey!
|
|
86
|
-
*
|
|
87
|
-
* Most people looking at this want either the `sm` operator or method `from`,
|
|
88
|
-
* which perform all the steps in the chain. The library's author mostly uses
|
|
89
|
-
* operator `sm`, and mostly falls back to `.from` when needing to parse
|
|
90
|
-
* strings dynamically instead of from template literals.
|
|
91
|
-
*
|
|
92
|
-
* Operator {@link sm}:
|
|
93
|
-
*
|
|
94
|
-
* ```typescript
|
|
95
|
-
* import { sm } from 'jssm';
|
|
96
|
-
*
|
|
97
|
-
* const lswitch = sm`on <=> off;`;
|
|
98
|
-
* ```
|
|
99
|
-
*
|
|
100
|
-
* Method {@link from}:
|
|
101
|
-
*
|
|
102
|
-
* ```typescript
|
|
103
|
-
* import * as jssm from 'jssm';
|
|
104
|
-
*
|
|
105
|
-
* const toggle = jssm.from('up <=> down;');
|
|
106
|
-
* ```
|
|
107
|
-
*
|
|
108
|
-
* `wrap_parse` itself is an internal convenience method for alting out an
|
|
109
|
-
* object as the options call. Not generally meant for external use.
|
|
110
|
-
*
|
|
111
|
-
* @param input The FSL code to be evaluated
|
|
112
|
-
*
|
|
113
|
-
* @param options Things to control about the instance
|
|
114
|
-
*
|
|
115
|
-
*/
|
|
116
|
-
declare function wrap_parse(input: string, options?: Object): any;
|
|
117
|
-
/*********
|
|
118
|
-
*
|
|
119
|
-
* Compile a machine's JSON intermediate representation to a config object. If
|
|
120
|
-
* you're using this (probably don't,) you're probably also using
|
|
121
|
-
* {@link parse} to get the IR, and the object constructor
|
|
122
|
-
* {@link Machine.construct} to turn the config object into a workable machine.
|
|
123
|
-
*
|
|
124
|
-
* ```typescript
|
|
125
|
-
* import { parse, compile, Machine } from 'jssm';
|
|
126
|
-
*
|
|
127
|
-
* const intermediate = parse('a -> b;');
|
|
128
|
-
* // [ {key:'transition', from:'a', se:{kind:'->',to:'b'}} ]
|
|
129
|
-
*
|
|
130
|
-
* const cfg = compile(intermediate);
|
|
131
|
-
* // { start_states:['a'], transitions: [{ from:'a', to:'b', kind:'legal', forced_only:false, main_path:false }] }
|
|
132
|
-
*
|
|
133
|
-
* const machine = new Machine(cfg);
|
|
134
|
-
* // Machine { _instance_name: undefined, _state: 'a', ...
|
|
135
|
-
* ```
|
|
136
|
-
*
|
|
137
|
-
* This method is mostly for plugin and intermediate tool authors, or people
|
|
138
|
-
* who need to work with the machine's intermediate representation.
|
|
139
|
-
*
|
|
140
|
-
* # Hey!
|
|
141
|
-
*
|
|
142
|
-
* Most people looking at this want either the `sm` operator or method `from`,
|
|
143
|
-
* which perform all the steps in the chain. The library's author mostly uses
|
|
144
|
-
* operator `sm`, and mostly falls back to `.from` when needing to parse
|
|
145
|
-
* strings dynamically instead of from template literals.
|
|
146
|
-
*
|
|
147
|
-
* Operator {@link sm}:
|
|
148
|
-
*
|
|
149
|
-
* ```typescript
|
|
150
|
-
* import { sm } from 'jssm';
|
|
151
|
-
*
|
|
152
|
-
* const lswitch = sm`on <=> off;`;
|
|
153
|
-
* ```
|
|
154
|
-
*
|
|
155
|
-
* Method {@link from}:
|
|
156
|
-
*
|
|
157
|
-
* ```typescript
|
|
158
|
-
* import * as jssm from 'jssm';
|
|
159
|
-
*
|
|
160
|
-
* const toggle = jssm.from('up <=> down;');
|
|
161
|
-
* ```
|
|
162
|
-
*
|
|
163
|
-
* @typeparam mDT The type of the machine data member; usually omitted
|
|
164
|
-
*
|
|
165
|
-
* @param tree The parse tree to be boiled down into a machine config
|
|
166
|
-
*
|
|
167
|
-
*/
|
|
168
|
-
declare function compile<mDT>(tree: JssmParseTree): JssmGenericConfig<mDT>;
|
|
169
|
-
/*********
|
|
170
|
-
*
|
|
171
|
-
* An internal convenience wrapper for parsing then compiling a machine string.
|
|
172
|
-
* Not generally meant for external use. Please see {@link compile} or
|
|
173
|
-
* {@link sm}.
|
|
174
|
-
*
|
|
175
|
-
* @typeparam mDT The type of the machine data member; usually omitted
|
|
176
|
-
*
|
|
177
|
-
* @param plan The FSL code to be evaluated and built into a machine config
|
|
178
|
-
*
|
|
179
|
-
*/
|
|
180
|
-
declare function make<mDT>(plan: string): JssmGenericConfig<mDT>;
|
|
181
10
|
/*********
|
|
182
11
|
*
|
|
183
12
|
* An internal method meant to take a series of declarations and fold them into
|
|
@@ -192,7 +21,7 @@ declare function state_style_condense(jssk: JssmStateStyleKeyList): JssmStateCon
|
|
|
192
21
|
declare class Machine<mDT> {
|
|
193
22
|
_state: StateType;
|
|
194
23
|
_states: Map<StateType, JssmGenericState>;
|
|
195
|
-
_edges: Array<JssmTransition<mDT>>;
|
|
24
|
+
_edges: Array<JssmTransition<StateType, mDT>>;
|
|
196
25
|
_edge_map: Map<StateType, Map<StateType, number>>;
|
|
197
26
|
_named_transitions: Map<StateType, number>;
|
|
198
27
|
_actions: Map<StateType, Map<StateType, number>>;
|
|
@@ -267,7 +96,7 @@ declare class Machine<mDT> {
|
|
|
267
96
|
_start_state_style: JssmStateConfig;
|
|
268
97
|
_end_state_style: JssmStateConfig;
|
|
269
98
|
_state_labels: Map<string, string>;
|
|
270
|
-
constructor({ start_states, end_states, complete, transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, property_definition, state_property, fsl_version, dot_preamble, arrange_declaration, arrange_start_declaration, arrange_end_declaration, theme, flow, graph_layout, instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config }: JssmGenericConfig<mDT>);
|
|
99
|
+
constructor({ start_states, end_states, complete, transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, property_definition, state_property, fsl_version, dot_preamble, arrange_declaration, arrange_start_declaration, arrange_end_declaration, theme, flow, graph_layout, instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config }: JssmGenericConfig<StateType, mDT>);
|
|
271
100
|
/********
|
|
272
101
|
*
|
|
273
102
|
* Internal method for fabricating states. Not meant for external use.
|
|
@@ -648,7 +477,7 @@ declare class Machine<mDT> {
|
|
|
648
477
|
* @typeparam mDT The type of the machine data member; usually omitted
|
|
649
478
|
*
|
|
650
479
|
*/
|
|
651
|
-
list_edges(): Array<JssmTransition<mDT>>;
|
|
480
|
+
list_edges(): Array<JssmTransition<StateType, mDT>>;
|
|
652
481
|
list_named_transitions(): Map<StateType, number>;
|
|
653
482
|
list_actions(): Array<StateType>;
|
|
654
483
|
get uses_actions(): boolean;
|
|
@@ -657,7 +486,7 @@ declare class Machine<mDT> {
|
|
|
657
486
|
set themes(to: FslTheme | FslTheme[]);
|
|
658
487
|
flow(): FslDirection;
|
|
659
488
|
get_transition_by_state_names(from: StateType, to: StateType): number;
|
|
660
|
-
lookup_transition_for(from: StateType, to: StateType): JssmTransition<mDT>;
|
|
489
|
+
lookup_transition_for(from: StateType, to: StateType): JssmTransition<StateType, mDT>;
|
|
661
490
|
/********
|
|
662
491
|
*
|
|
663
492
|
* List all transitions attached to the current state, sorted by entrance and
|
|
@@ -719,7 +548,7 @@ declare class Machine<mDT> {
|
|
|
719
548
|
*
|
|
720
549
|
*/
|
|
721
550
|
list_exits(whichState?: StateType): Array<StateType>;
|
|
722
|
-
probable_exits_for(whichState: StateType): Array<JssmTransition<mDT>>;
|
|
551
|
+
probable_exits_for(whichState: StateType): Array<JssmTransition<StateType, mDT>>;
|
|
723
552
|
probabilistic_transition(): boolean;
|
|
724
553
|
probabilistic_walk(n: number): Array<StateType>;
|
|
725
554
|
probabilistic_histo_walk(n: number): Map<StateType, number>;
|
|
@@ -812,7 +641,7 @@ declare class Machine<mDT> {
|
|
|
812
641
|
post_hook_any_transition(handler: HookHandler<mDT>): Machine<mDT>;
|
|
813
642
|
post_hook_entry(to: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
814
643
|
post_hook_exit(from: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
815
|
-
edges_between(from: string, to: string): JssmTransition<mDT>[];
|
|
644
|
+
edges_between(from: string, to: string): JssmTransition<StateType, mDT>[];
|
|
816
645
|
transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
|
|
817
646
|
/*********
|
|
818
647
|
*
|
|
@@ -1180,7 +1009,7 @@ declare class Machine<mDT> {
|
|
|
1180
1009
|
*/
|
|
1181
1010
|
force_transition(newState: StateType, newData?: mDT): boolean;
|
|
1182
1011
|
current_action_for(action: StateType): number;
|
|
1183
|
-
current_action_edge_for(action: StateType): JssmTransition<mDT>;
|
|
1012
|
+
current_action_edge_for(action: StateType): JssmTransition<StateType, mDT>;
|
|
1184
1013
|
valid_action(action: StateType, _newData?: mDT): boolean;
|
|
1185
1014
|
valid_transition(newState: StateType, _newData?: mDT): boolean;
|
|
1186
1015
|
valid_force_transition(newState: StateType, _newData?: mDT): boolean;
|
|
@@ -1233,7 +1062,7 @@ declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: a
|
|
|
1233
1062
|
* @param ExtraConstructorFields Extra non-code configuration to pass at creation time
|
|
1234
1063
|
*
|
|
1235
1064
|
*/
|
|
1236
|
-
declare function from<mDT>(MachineAsString: string, ExtraConstructorFields?: Partial<JssmGenericConfig<mDT>> | undefined): Machine<mDT>;
|
|
1065
|
+
declare function from<mDT>(MachineAsString: string, ExtraConstructorFields?: Partial<JssmGenericConfig<StateType, mDT>> | undefined): Machine<mDT>;
|
|
1237
1066
|
declare function is_hook_complex_result<mDT>(hr: unknown): hr is HookComplexResult<mDT>;
|
|
1238
1067
|
declare function is_hook_rejection<mDT>(hr: HookResult<mDT>): boolean;
|
|
1239
1068
|
declare function abstract_hook_step<mDT>(maybe_hook: HookHandler<mDT> | undefined, hook_args: HookContext<mDT>): HookComplexResult<mDT>;
|