jssm 5.65.3 → 5.65.7

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/jssm.d.ts CHANGED
@@ -82,13 +82,15 @@ declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
82
82
  * operator `sm`, and mostly falls back to `.from` when needing to parse
83
83
  * strings dynamically instead of from template literals.
84
84
  *
85
+ * Operator {@link sm}:
86
+ *
85
87
  * ```typescript
86
88
  * import { sm } from './jssm';
87
89
  *
88
90
  * const switch = sm`on <=> off;`;
89
91
  * ```
90
92
  *
91
- * &hellip; or &hellip;
93
+ * Method {@link from}:
92
94
  *
93
95
  * ```typescript
94
96
  * import * as jssm from './jssm';
@@ -131,13 +133,15 @@ declare function wrap_parse(input: string, options?: Object): any;
131
133
  * operator `sm`, and mostly falls back to `.from` when needing to parse
132
134
  * strings dynamically instead of from template literals.
133
135
  *
136
+ * Operator {@link sm}:
137
+ *
134
138
  * ```typescript
135
139
  * import { sm } from './jssm';
136
140
  *
137
141
  * const switch = sm`on <=> off;`;
138
142
  * ```
139
143
  *
140
- * &hellip; or &hellip;
144
+ * Method {@link from}:
141
145
  *
142
146
  * ```typescript
143
147
  * import * as jssm from './jssm';
@@ -210,6 +214,21 @@ declare class Machine<mDT> {
210
214
  _any_transition_hook: HookHandler | undefined;
211
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>);
212
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
+ */
213
232
  state(): StateType;
214
233
  state_is_final(whichState: StateType): boolean;
215
234
  is_final(): boolean;
@@ -228,8 +247,35 @@ declare class Machine<mDT> {
228
247
  state_declarations(): Map<StateType, JssmStateDeclaration>;
229
248
  fsl_version(): string;
230
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
+ */
231
263
  states(): Array<StateType>;
232
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
+ */
233
279
  has_state(whichState: StateType): boolean;
234
280
  list_edges(): Array<JssmTransition<mDT>>;
235
281
  list_named_transitions(): Map<StateType, number>;
@@ -281,6 +327,39 @@ declare class Machine<mDT> {
281
327
  instance_name(): string | undefined;
282
328
  sm(template_strings: TemplateStringsArray, ...remainder: any[]): Machine<mDT>;
283
329
  }
330
+ /*********
331
+ *
332
+ * Create a state machine from a template string. This is one of the two main
333
+ * paths for working with JSSM, alongside {@link from}.
334
+ *
335
+ * Use this method when you want to work directly and conveniently with a
336
+ * constant template expression. Use `.from` when you want to pull from
337
+ * dynamic strings.
338
+ *
339
+ *
340
+ * ```typescript
341
+ * import * as jssm from './jssm';
342
+ *
343
+ * const switch = jssm.from('on <=> off;');
344
+ * ```
345
+ *
346
+ */
284
347
  declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: any[]): Machine<mDT>;
348
+ /*********
349
+ *
350
+ * Create a state machine from an implementation string. This is one of the
351
+ * two main paths for working with JSSM, alongside {@link sm}.
352
+ *
353
+ * Use this method when you want to conveniently pull a state machine from a
354
+ * string dynamically. Use operator `sm` when you just want to work with a
355
+ * template expression.
356
+ *
357
+ * ```typescript
358
+ * import * as jssm from './jssm';
359
+ *
360
+ * const switch = jssm.from('on <=> off;');
361
+ * ```
362
+ *
363
+ */
285
364
  declare function from<mDT>(MachineAsString: string, ExtraConstructorFields?: Partial<JssmGenericConfig<mDT>> | undefined): Machine<mDT>;
286
365
  export { version, transfer_state_properties, Machine, make, wrap_parse as parse, compile, sm, from, arrow_direction, arrow_left_kind, arrow_right_kind, seq, weighted_rand_select, histograph, weighted_sample_select, weighted_histo_key, shapes, gviz_shapes, named_colors };
package/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
- declare const seq: Function;
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jssm",
3
- "version": "5.65.3",
3
+ "version": "5.65.7",
4
4
  "engines": {
5
5
  "node": ">=10.0.0"
6
6
  },