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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- 1051 merges; 167 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)
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 3:27:58 PM
25
+ ## [Untagged] - 9/12/2022 8:18:05 PM
26
26
 
27
- Commit [4b9fefde004f1c1ac5f36ad760105109475af95a](https://github.com/StoneCypher/jssm/commit/4b9fefde004f1c1ac5f36ad760105109475af95a)
27
+ Commit [013999a77ce43ceed5eb982754ffe480fdddf159](https://github.com/StoneCypher/jssm/commit/013999a77ce43ceed5eb982754ffe480fdddf159)
28
28
 
29
29
  Author: `John Haugeland <stonecypher@gmail.com>`
30
30
 
31
- * expose build date directly on module (also -viz and -demo,) support logging in -demo
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
  &nbsp;
39
40
 
40
- <a name="5__85__5" />
41
+ ## [Untagged] - 9/12/2022 7:19:21 PM
41
42
 
42
- ## [5.85.5] - 9/12/2022 3:10:10 PM
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 build time to module
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
  &nbsp;
56
56
 
57
- <a name="5__85__4" />
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 [293e2cb9c07734fef562b455d786b7c63ea7647b](https://github.com/StoneCypher/jssm/commit/293e2cb9c07734fef562b455d786b7c63ea7647b)
59
+ Commit [3eb246ddb992372ceca4c0adc9dc45295a0a7177](https://github.com/StoneCypher/jssm/commit/3eb246ddb992372ceca4c0adc9dc45295a0a7177)
62
60
 
63
61
  Author: `John Haugeland <stonecypher@gmail.com>`
64
62
 
65
- * Clean up the gh action a skosh
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
  &nbsp;
73
71
 
74
- <a name="5__85__3" />
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 [87ec233d3511d30358660ad161f932e13eb1738e](https://github.com/StoneCypher/jssm/commit/87ec233d3511d30358660ad161f932e13eb1738e)
74
+ Commit [3a01b8d7ae2cee185e4f36c90a95338bf30002cb](https://github.com/StoneCypher/jssm/commit/3a01b8d7ae2cee185e4f36c90a95338bf30002cb)
79
75
 
80
76
  Author: `John Haugeland <stonecypher@gmail.com>`
81
77
 
82
- Merges [98b7b14, 6475296]
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
  &nbsp;
93
86
 
94
- ## [Untagged] - 9/12/2022 11:24:38 AM
87
+ ## [Untagged] - 9/12/2022 6:39:19 PM
95
88
 
96
- Commit [6475296d979dab3d227828b80319d60c4f6ab2f5](https://github.com/StoneCypher/jssm/commit/6475296d979dab3d227828b80319d60c4f6ab2f5)
89
+ Commit [37c0bdf33263bf4b9dd60ba329108297cf5ea68f](https://github.com/StoneCypher/jssm/commit/37c0bdf33263bf4b9dd60ba329108297cf5ea68f)
97
90
 
98
91
  Author: `John Haugeland <stonecypher@gmail.com>`
99
92
 
100
- * Reintroduce display text, lost in a bad merge
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
  &nbsp;
108
102
 
109
- <a name="5__85__2" />
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 [98b7b14217ea7e83550e4ed15b6b6be80799e246](https://github.com/StoneCypher/jssm/commit/98b7b14217ea7e83550e4ed15b6b6be80799e246)
105
+ Commit [4b9fefde004f1c1ac5f36ad760105109475af95a](https://github.com/StoneCypher/jssm/commit/4b9fefde004f1c1ac5f36ad760105109475af95a)
114
106
 
115
107
  Author: `John Haugeland <stonecypher@gmail.com>`
116
108
 
117
- Merges [461a287, 0f3025a]
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
  &nbsp;
128
117
 
129
- ## [Untagged] - 9/12/2022 9:59:52 AM
118
+ <a name="5__85__5" />
130
119
 
131
- Commit [0f3025ae2e484afbda57b5f39f5485c4831e7ce7](https://github.com/StoneCypher/jssm/commit/0f3025ae2e484afbda57b5f39f5485c4831e7ce7)
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
- * Shorten the tweet notice
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
  &nbsp;
143
134
 
144
- <a name="5__85__1" />
135
+ <a name="5__85__4" />
145
136
 
146
- ## [5.85.1] - 9/12/2022 9:49:05 AM
137
+ ## [5.85.4] - 9/12/2022 1:55:57 PM
147
138
 
148
- Commit [461a2874583d08da6db68e40b75047682625c73d](https://github.com/StoneCypher/jssm/commit/461a2874583d08da6db68e40b75047682625c73d)
139
+ Commit [293e2cb9c07734fef562b455d786b7c63ea7647b](https://github.com/StoneCypher/jssm/commit/293e2cb9c07734fef562b455d786b7c63ea7647b)
149
140
 
150
141
  Author: `John Haugeland <stonecypher@gmail.com>`
151
142
 
152
- Merges [2eec2c8, 76d6729]
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
  &nbsp;
163
151
 
164
- ## [Untagged] - 9/12/2022 9:35:11 AM
152
+ <a name="5__85__3" />
153
+
154
+ ## [5.85.3] - 9/12/2022 11:25:36 AM
165
155
 
166
- Commit [76d6729a35a3f4eba666ff2d78cd284ed0668edd](https://github.com/StoneCypher/jssm/commit/76d6729a35a3f4eba666ff2d78cd284ed0668edd)
156
+ Commit [87ec233d3511d30358660ad161f932e13eb1738e](https://github.com/StoneCypher/jssm/commit/87ec233d3511d30358660ad161f932e13eb1738e)
167
157
 
168
158
  Author: `John Haugeland <stonecypher@gmail.com>`
169
159
 
170
- * Remove noisy echo in the YML
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
  &nbsp;
178
171
 
179
- <a name="5__85__0" />
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 [2eec2c8b69d3e59cb06d7b0efc34b336e9ecc29a](https://github.com/StoneCypher/jssm/commit/2eec2c8b69d3e59cb06d7b0efc34b336e9ecc29a)
174
+ Commit [6475296d979dab3d227828b80319d60c4f6ab2f5](https://github.com/StoneCypher/jssm/commit/6475296d979dab3d227828b80319d60c4f6ab2f5)
184
175
 
185
176
  Author: `John Haugeland <stonecypher@gmail.com>`
186
177
 
187
- Merges [a7b92f9, a0b9fb5]
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.6 at 9/12/2022, 6:34:35 PM
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,864 tests*** run 5,755 times. 4,855 specs with 100.0% coverage, 9 fuzz tests with 13.0% coverage. With 2,714 lines, that's about 1.8 tests per line, or 2.1 generated tests per line.
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
 
@@ -1,183 +1,12 @@
1
1
  declare type StateType = string;
2
2
  import { JssmGenericState, JssmGenericConfig, JssmStateConfig, JssmTransition, JssmTransitionList, // JssmTransitionRule,
3
- JssmMachineInternalState, JssmParseTree, JssmStateDeclaration, JssmStateStyleKeyList, JssmArrow, JssmArrowDirection, JssmArrowKind, JssmLayout, JssmHistory, JssmSerialization, FslDirection, FslDirections, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult } from './jssm_types';
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>;