jssm 5.65.9 → 5.65.12

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
@@ -9,7 +9,7 @@ import { version } from './version';
9
9
  * Return the direction of an arrow - `right`, `left`, or `both`.
10
10
  *
11
11
  * ```typescript
12
- * import { arrow_direction } from './jssm';
12
+ * import { arrow_direction } from 'jssm';
13
13
  *
14
14
  * arrow_direction('->'); // 'right'
15
15
  * arrow_direction('<~=>'); // 'both'
@@ -22,7 +22,7 @@ declare function arrow_direction(arrow: JssmArrow): JssmArrowDirection;
22
22
  * Return the direction of an arrow - `right`, `left`, or `both`.
23
23
  *
24
24
  * ```typescript
25
- * import { arrow_left_kind } from './jssm';
25
+ * import { arrow_left_kind } from 'jssm';
26
26
  *
27
27
  * arrow_left_kind('<-'); // 'legal'
28
28
  * arrow_left_kind('<='); // 'main'
@@ -38,7 +38,7 @@ declare function arrow_left_kind(arrow: JssmArrow): JssmArrowKind;
38
38
  * Return the direction of an arrow - `right`, `left`, or `both`.
39
39
  *
40
40
  * ```typescript
41
- * import { arrow_left_kind } from './jssm';
41
+ * import { arrow_left_kind } from 'jssm';
42
42
  *
43
43
  * arrow_left_kind('->'); // 'legal'
44
44
  * arrow_left_kind('=>'); // 'main'
@@ -60,7 +60,7 @@ declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
60
60
  * probably also using {@link compile} and {@link Machine.constructor}.
61
61
  *
62
62
  * ```typescript
63
- * import { parse, compile, Machine } from './jssm';
63
+ * import { parse, compile, Machine } from 'jssm';
64
64
  *
65
65
  * const intermediate = wrap_parse('a -> b;', {});
66
66
  * // [ {key:'transition', from:'a', se:{kind:'->',to:'b'}} ]
@@ -85,7 +85,7 @@ declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
85
85
  * Operator {@link sm}:
86
86
  *
87
87
  * ```typescript
88
- * import { sm } from './jssm';
88
+ * import { sm } from 'jssm';
89
89
  *
90
90
  * const switch = sm`on <=> off;`;
91
91
  * ```
@@ -93,7 +93,7 @@ declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
93
93
  * Method {@link from}:
94
94
  *
95
95
  * ```typescript
96
- * import * as jssm from './jssm';
96
+ * import * as jssm from 'jssm';
97
97
  *
98
98
  * const toggle = jssm.from('up <=> down;');
99
99
  * ```
@@ -111,7 +111,7 @@ declare function wrap_parse(input: string, options?: Object): any;
111
111
  * {@link Machine.construct} to turn the config object into a workable machine.
112
112
  *
113
113
  * ```typescript
114
- * import { parse, compile, Machine } from './jssm';
114
+ * import { parse, compile, Machine } from 'jssm';
115
115
  *
116
116
  * const intermediate = parse('a -> b;');
117
117
  * // [ {key:'transition', from:'a', se:{kind:'->',to:'b'}} ]
@@ -136,7 +136,7 @@ declare function wrap_parse(input: string, options?: Object): any;
136
136
  * Operator {@link sm}:
137
137
  *
138
138
  * ```typescript
139
- * import { sm } from './jssm';
139
+ * import { sm } from 'jssm';
140
140
  *
141
141
  * const switch = sm`on <=> off;`;
142
142
  * ```
@@ -144,7 +144,7 @@ declare function wrap_parse(input: string, options?: Object): any;
144
144
  * Method {@link from}:
145
145
  *
146
146
  * ```typescript
147
- * import * as jssm from './jssm';
147
+ * import * as jssm from 'jssm';
148
148
  *
149
149
  * const toggle = jssm.from('up <=> down;');
150
150
  * ```
@@ -224,7 +224,7 @@ declare class Machine<mDT> {
224
224
  * Get the current state of a machine.
225
225
  *
226
226
  * ```typescript
227
- * import * as jssm from './jssm';
227
+ * import * as jssm from 'jssm';
228
228
  *
229
229
  * const switch = jssm.from('on <=> off;');
230
230
  * console.log( switch.state() ); // 'on'
@@ -241,7 +241,7 @@ declare class Machine<mDT> {
241
241
  * `complete`.)
242
242
  *
243
243
  * ```typescript
244
- * import { sm, state_is_final } from './jssm';
244
+ * import { sm, state_is_final } from 'jssm';
245
245
  *
246
246
  * const final_test = sm`first -> second;`;
247
247
  *
@@ -257,7 +257,7 @@ declare class Machine<mDT> {
257
257
  * `complete`.)
258
258
  *
259
259
  * ```typescript
260
- * import { sm, state_is_final } from './jssm';
260
+ * import { sm, state_is_final } from 'jssm';
261
261
  *
262
262
  * const final_test = sm`first -> second;`;
263
263
  *
@@ -289,7 +289,7 @@ declare class Machine<mDT> {
289
289
  * these states is not guaranteed.
290
290
  *
291
291
  * ```typescript
292
- * import * as jssm from './jssm';
292
+ * import * as jssm from 'jssm';
293
293
  *
294
294
  * const switch = jssm.from('on <=> off;');
295
295
  * console.log( switch.states() ); // ['on', 'off']
@@ -303,16 +303,47 @@ declare class Machine<mDT> {
303
303
  * Check whether the machine knows a given state.
304
304
  *
305
305
  * ```typescript
306
- * import * as jssm from './jssm';
306
+ * import * as jssm from 'jssm';
307
307
  *
308
308
  * const switch = jssm.from('on <=> off;');
309
-
309
+ *
310
310
  * console.log( switch.has_state('off') ); // true
311
311
  * console.log( switch.has_state('dance') ); // false
312
312
  * ```
313
313
  *
314
314
  */
315
315
  has_state(whichState: StateType): boolean;
316
+ /*********
317
+ *
318
+ * Lists all edges of a machine.
319
+ *
320
+ * ```typescript
321
+ * import { sm } from 'jssm';
322
+ *
323
+ * const lswitch = sm`on 'toggle' <=> 'toggle' off;`;
324
+ *
325
+ * lswitch.list_edges();
326
+ * [
327
+ * {
328
+ * from: 'on',
329
+ * to: 'off',
330
+ * kind: 'main',
331
+ * forced_only: false,
332
+ * main_path: true,
333
+ * action: 'toggle'
334
+ * },
335
+ * {
336
+ * from: 'off',
337
+ * to: 'on',
338
+ * kind: 'main',
339
+ * forced_only: false,
340
+ * main_path: true,
341
+ * action: 'toggle'
342
+ * }
343
+ * ]
344
+ * ```
345
+ *
346
+ */
316
347
  list_edges(): Array<JssmTransition<mDT>>;
317
348
  list_named_transitions(): Map<StateType, number>;
318
349
  list_actions(): Array<StateType>;
@@ -320,14 +351,108 @@ declare class Machine<mDT> {
320
351
  flow(): FslDirection;
321
352
  get_transition_by_state_names(from: StateType, to: StateType): number;
322
353
  lookup_transition_for(from: StateType, to: StateType): JssmTransition<mDT>;
354
+ /********
355
+ *
356
+ * List all transitions attached to the current state, sorted by entrance and
357
+ * exit. The order of each sublist is not defined. A node could appear in
358
+ * both lists.
359
+ *
360
+ * ```typescript
361
+ * import { sm } from 'jssm';
362
+ *
363
+ * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
364
+ *
365
+ * light.state(); // 'red'
366
+ * light.list_transitions(); // { entrances: [ 'yellow', 'off' ], exits: [ 'green', 'off' ] }
367
+ * ```
368
+ *
369
+ */
323
370
  list_transitions(whichState?: StateType): JssmTransitionList;
371
+ /********
372
+ *
373
+ * List all entrances attached to the current state. Please note that the
374
+ * order of the list is not defined.
375
+ *
376
+ * ```typescript
377
+ * import { sm } from 'jssm';
378
+ *
379
+ * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
380
+ *
381
+ * light.state(); // 'red'
382
+ * light.list_entrances(); // [ 'yellow', 'off' ]
383
+ * ```
384
+ *
385
+ */
324
386
  list_entrances(whichState?: StateType): Array<StateType>;
387
+ /********
388
+ *
389
+ * List all exits attached to the current state. Please note that the order
390
+ * of the list is not defined.
391
+ *
392
+ * ```typescript
393
+ * import { sm } from 'jssm';
394
+ *
395
+ * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
396
+ *
397
+ * light.state(); // 'red'
398
+ * light.list_exits(); // [ 'green', 'off' ]
399
+ * ```
400
+ *
401
+ */
325
402
  list_exits(whichState?: StateType): Array<StateType>;
326
403
  probable_exits_for(whichState: StateType): Array<JssmTransition<mDT>>;
327
404
  probabilistic_transition(): boolean;
328
405
  probabilistic_walk(n: number): Array<StateType>;
329
406
  probabilistic_histo_walk(n: number): Map<StateType, number>;
407
+ /********
408
+ *
409
+ * List all actions available from this state. Please note that the order of
410
+ * the actions is not guaranteed.
411
+ *
412
+ * ```typescript
413
+ * import { sm } from 'jssm';
414
+ *
415
+ * const machine = sm`
416
+ * red 'next' -> green 'next' -> yellow 'next' -> red;
417
+ * [red yellow green] 'shutdown' ~> off 'start' -> red;
418
+ * `;
419
+ *
420
+ * console.log( machine.state() ); // logs 'red'
421
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
422
+ *
423
+ * machine.action('next'); // true
424
+ * console.log( machine.state() ); // logs 'green'
425
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
426
+ *
427
+ * machine.action('shutdown'); // true
428
+ * console.log( machine.state() ); // logs 'off'
429
+ * console.log( machine.actions() ); // logs ['start']
430
+ *
431
+ * machine.action('start'); // true
432
+ * console.log( machine.state() ); // logs 'red'
433
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
434
+ * ```
435
+ *
436
+ */
330
437
  actions(whichState?: StateType): Array<StateType>;
438
+ /********
439
+ *
440
+ * List all states that have a specific action attached. Please note that
441
+ * the order of the states is not guaranteed.
442
+ *
443
+ * ```typescript
444
+ * import { sm } from 'jssm';
445
+ *
446
+ * const machine = sm`
447
+ * red 'next' -> green 'next' -> yellow 'next' -> red;
448
+ * [red yellow green] 'shutdown' ~> off 'start' -> red;
449
+ * `;
450
+ *
451
+ * console.log( machine.list_states_having_action('next') ); // ['red', 'green', 'yellow']
452
+ * console.log( machine.list_states_having_action('start') ); // ['off']
453
+ * ```
454
+ *
455
+ */
331
456
  list_states_having_action(whichState: StateType): Array<StateType>;
332
457
  list_exit_actions(whichState?: StateType): Array<StateType>;
333
458
  probable_action_exits(whichState?: StateType): Array<any>;
@@ -352,8 +477,50 @@ declare class Machine<mDT> {
352
477
  hook_exit(from: string, handler: HookHandler): Machine<mDT>;
353
478
  edges_between(from: string, to: string): JssmTransition<mDT>[];
354
479
  transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
480
+ /********
481
+ *
482
+ * Instruct the machine to complete an action.
483
+ *
484
+ * ```typescript
485
+ * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
486
+ *
487
+ * light.state(); // 'red'
488
+ * light.action('next'); // true
489
+ * light.state(); // 'green'
490
+ * ```
491
+ *
492
+ */
355
493
  action(actionName: StateType, newData?: mDT): boolean;
494
+ /********
495
+ *
496
+ * Instruct the machine to complete a transition.
497
+ *
498
+ * ```typescript
499
+ * const light = sm`red -> green -> yellow -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
500
+ *
501
+ * light.state(); // 'red'
502
+ * light.transition('green'); // true
503
+ * light.state(); // 'green'
504
+ * ```
505
+ *
506
+ */
356
507
  transition(newState: StateType, newData?: mDT): boolean;
508
+ /********
509
+ *
510
+ * Instruct the machine to complete a forced transition (which will reject if
511
+ * called with a normal {@link transition} call.)
512
+ *
513
+ * ```typescript
514
+ * const light = sm`red -> green -> yellow -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
515
+ *
516
+ * light.state(); // 'red'
517
+ * light.transition('off'); // false
518
+ * light.state(); // 'red'
519
+ * light.force_transition('off'); // true
520
+ * light.state(); // 'off'
521
+ * ```
522
+ *
523
+ */
357
524
  force_transition(newState: StateType, newData?: mDT): boolean;
358
525
  current_action_for(action: StateType): number;
359
526
  current_action_edge_for(action: StateType): JssmTransition<mDT>;
@@ -374,7 +541,7 @@ declare class Machine<mDT> {
374
541
  *
375
542
  *
376
543
  * ```typescript
377
- * import * as jssm from './jssm';
544
+ * import * as jssm from 'jssm';
378
545
  *
379
546
  * const switch = jssm.from('on <=> off;');
380
547
  * ```
@@ -391,7 +558,7 @@ declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: a
391
558
  * template expression.
392
559
  *
393
560
  * ```typescript
394
- * import * as jssm from './jssm';
561
+ * import * as jssm from 'jssm';
395
562
  *
396
563
  * const switch = jssm.from('on <=> off;');
397
564
  * ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jssm",
3
- "version": "5.65.9",
3
+ "version": "5.65.12",
4
4
  "engines": {
5
5
  "node": ">=10.0.0"
6
6
  },