jssm 5.65.9 → 5.65.10

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.
@@ -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,10 +303,10 @@ 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
  * ```
@@ -327,7 +327,55 @@ declare class Machine<mDT> {
327
327
  probabilistic_transition(): boolean;
328
328
  probabilistic_walk(n: number): Array<StateType>;
329
329
  probabilistic_histo_walk(n: number): Map<StateType, number>;
330
+ /********
331
+ *
332
+ * List all actions available from this state. Please note that the order of
333
+ * the actions is not guaranteed.
334
+ *
335
+ * ```typescript
336
+ * import { sm } from 'jssm';
337
+ *
338
+ * const machine = sm`
339
+ * red 'next' -> green 'next' -> yellow 'next' -> red;
340
+ * [red yellow green] 'shutdown' ~> off 'start' -> red;
341
+ * `;
342
+ *
343
+ * console.log( machine.state() ); // logs 'red'
344
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
345
+ *
346
+ * machine.action('next'); // true
347
+ * console.log( machine.state() ); // logs 'green'
348
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
349
+ *
350
+ * machine.action('shutdown'); // true
351
+ * console.log( machine.state() ); // logs 'off'
352
+ * console.log( machine.actions() ); // logs ['start']
353
+ *
354
+ * machine.action('start'); // true
355
+ * console.log( machine.state() ); // logs 'red'
356
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
357
+ * ```
358
+ *
359
+ */
330
360
  actions(whichState?: StateType): Array<StateType>;
361
+ /********
362
+ *
363
+ * List all states that have a specific action attached. Please note that
364
+ * the order of the states is not guaranteed.
365
+ *
366
+ * ```typescript
367
+ * import { sm } from 'jssm';
368
+ *
369
+ * const machine = sm`
370
+ * red 'next' -> green 'next' -> yellow 'next' -> red;
371
+ * [red yellow green] 'shutdown' ~> off 'start' -> red;
372
+ * `;
373
+ *
374
+ * console.log( machine.list_states_having_action('next') ); // ['red', 'green', 'yellow']
375
+ * console.log( machine.list_states_having_action('start') ); // ['off']
376
+ * ```
377
+ *
378
+ */
331
379
  list_states_having_action(whichState: StateType): Array<StateType>;
332
380
  list_exit_actions(whichState?: StateType): Array<StateType>;
333
381
  probable_action_exits(whichState?: StateType): Array<any>;
@@ -374,7 +422,7 @@ declare class Machine<mDT> {
374
422
  *
375
423
  *
376
424
  * ```typescript
377
- * import * as jssm from './jssm';
425
+ * import * as jssm from 'jssm';
378
426
  *
379
427
  * const switch = jssm.from('on <=> off;');
380
428
  * ```
@@ -391,7 +439,7 @@ declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: a
391
439
  * template expression.
392
440
  *
393
441
  * ```typescript
394
- * import * as jssm from './jssm';
442
+ * import * as jssm from 'jssm';
395
443
  *
396
444
  * const switch = jssm.from('on <=> off;');
397
445
  * ```
package/dist/es6/jssm.js CHANGED
@@ -11,7 +11,7 @@ import { JssmError } from './jssm_error';
11
11
  * Return the direction of an arrow - `right`, `left`, or `both`.
12
12
  *
13
13
  * ```typescript
14
- * import { arrow_direction } from './jssm';
14
+ * import { arrow_direction } from 'jssm';
15
15
  *
16
16
  * arrow_direction('->'); // 'right'
17
17
  * arrow_direction('<~=>'); // 'both'
@@ -76,7 +76,7 @@ function arrow_direction(arrow) {
76
76
  * Return the direction of an arrow - `right`, `left`, or `both`.
77
77
  *
78
78
  * ```typescript
79
- * import { arrow_left_kind } from './jssm';
79
+ * import { arrow_left_kind } from 'jssm';
80
80
  *
81
81
  * arrow_left_kind('<-'); // 'legal'
82
82
  * arrow_left_kind('<='); // 'main'
@@ -133,7 +133,7 @@ function arrow_left_kind(arrow) {
133
133
  * Return the direction of an arrow - `right`, `left`, or `both`.
134
134
  *
135
135
  * ```typescript
136
- * import { arrow_left_kind } from './jssm';
136
+ * import { arrow_left_kind } from 'jssm';
137
137
  *
138
138
  * arrow_left_kind('->'); // 'legal'
139
139
  * arrow_left_kind('=>'); // 'main'
@@ -231,7 +231,7 @@ function makeTransition(this_se, from, to, isRight, _wasList, _wasIndex) {
231
231
  * probably also using {@link compile} and {@link Machine.constructor}.
232
232
  *
233
233
  * ```typescript
234
- * import { parse, compile, Machine } from './jssm';
234
+ * import { parse, compile, Machine } from 'jssm';
235
235
  *
236
236
  * const intermediate = wrap_parse('a -> b;', {});
237
237
  * // [ {key:'transition', from:'a', se:{kind:'->',to:'b'}} ]
@@ -256,7 +256,7 @@ function makeTransition(this_se, from, to, isRight, _wasList, _wasIndex) {
256
256
  * Operator {@link sm}:
257
257
  *
258
258
  * ```typescript
259
- * import { sm } from './jssm';
259
+ * import { sm } from 'jssm';
260
260
  *
261
261
  * const switch = sm`on <=> off;`;
262
262
  * ```
@@ -264,7 +264,7 @@ function makeTransition(this_se, from, to, isRight, _wasList, _wasIndex) {
264
264
  * Method {@link from}:
265
265
  *
266
266
  * ```typescript
267
- * import * as jssm from './jssm';
267
+ * import * as jssm from 'jssm';
268
268
  *
269
269
  * const toggle = jssm.from('up <=> down;');
270
270
  * ```
@@ -356,7 +356,7 @@ function compile_rule_handler(rule) {
356
356
  * {@link Machine.construct} to turn the config object into a workable machine.
357
357
  *
358
358
  * ```typescript
359
- * import { parse, compile, Machine } from './jssm';
359
+ * import { parse, compile, Machine } from 'jssm';
360
360
  *
361
361
  * const intermediate = parse('a -> b;');
362
362
  * // [ {key:'transition', from:'a', se:{kind:'->',to:'b'}} ]
@@ -381,7 +381,7 @@ function compile_rule_handler(rule) {
381
381
  * Operator {@link sm}:
382
382
  *
383
383
  * ```typescript
384
- * import { sm } from './jssm';
384
+ * import { sm } from 'jssm';
385
385
  *
386
386
  * const switch = sm`on <=> off;`;
387
387
  * ```
@@ -389,7 +389,7 @@ function compile_rule_handler(rule) {
389
389
  * Method {@link from}:
390
390
  *
391
391
  * ```typescript
392
- * import * as jssm from './jssm';
392
+ * import * as jssm from 'jssm';
393
393
  *
394
394
  * const toggle = jssm.from('up <=> down;');
395
395
  * ```
@@ -660,7 +660,7 @@ class Machine {
660
660
  * Get the current state of a machine.
661
661
  *
662
662
  * ```typescript
663
- * import * as jssm from './jssm';
663
+ * import * as jssm from 'jssm';
664
664
  *
665
665
  * const switch = jssm.from('on <=> off;');
666
666
  * console.log( switch.state() ); // 'on'
@@ -686,7 +686,7 @@ class Machine {
686
686
  * `complete`.)
687
687
  *
688
688
  * ```typescript
689
- * import { sm, state_is_final } from './jssm';
689
+ * import { sm, state_is_final } from 'jssm';
690
690
  *
691
691
  * const final_test = sm`first -> second;`;
692
692
  *
@@ -704,7 +704,7 @@ class Machine {
704
704
  * `complete`.)
705
705
  *
706
706
  * ```typescript
707
- * import { sm, state_is_final } from './jssm';
707
+ * import { sm, state_is_final } from 'jssm';
708
708
  *
709
709
  * const final_test = sm`first -> second;`;
710
710
  *
@@ -784,7 +784,7 @@ class Machine {
784
784
  * these states is not guaranteed.
785
785
  *
786
786
  * ```typescript
787
- * import * as jssm from './jssm';
787
+ * import * as jssm from 'jssm';
788
788
  *
789
789
  * const switch = jssm.from('on <=> off;');
790
790
  * console.log( switch.states() ); // ['on', 'off']
@@ -808,10 +808,10 @@ class Machine {
808
808
  * Check whether the machine knows a given state.
809
809
  *
810
810
  * ```typescript
811
- * import * as jssm from './jssm';
811
+ * import * as jssm from 'jssm';
812
812
  *
813
813
  * const switch = jssm.from('on <=> off;');
814
-
814
+ *
815
815
  * console.log( switch.has_state('off') ); // true
816
816
  * console.log( switch.has_state('dance') ); // false
817
817
  * ```
@@ -887,6 +887,36 @@ class Machine {
887
887
  probabilistic_histo_walk(n) {
888
888
  return histograph(this.probabilistic_walk(n));
889
889
  }
890
+ /********
891
+ *
892
+ * List all actions available from this state. Please note that the order of
893
+ * the actions is not guaranteed.
894
+ *
895
+ * ```typescript
896
+ * import { sm } from 'jssm';
897
+ *
898
+ * const machine = sm`
899
+ * red 'next' -> green 'next' -> yellow 'next' -> red;
900
+ * [red yellow green] 'shutdown' ~> off 'start' -> red;
901
+ * `;
902
+ *
903
+ * console.log( machine.state() ); // logs 'red'
904
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
905
+ *
906
+ * machine.action('next'); // true
907
+ * console.log( machine.state() ); // logs 'green'
908
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
909
+ *
910
+ * machine.action('shutdown'); // true
911
+ * console.log( machine.state() ); // logs 'off'
912
+ * console.log( machine.actions() ); // logs ['start']
913
+ *
914
+ * machine.action('start'); // true
915
+ * console.log( machine.state() ); // logs 'red'
916
+ * console.log( machine.actions() ); // logs ['next', 'shutdown']
917
+ * ```
918
+ *
919
+ */
890
920
  actions(whichState = this.state()) {
891
921
  const wstate = this._reverse_actions.get(whichState);
892
922
  if (wstate) {
@@ -896,6 +926,24 @@ class Machine {
896
926
  throw new JssmError(this, `No such state ${JSON.stringify(whichState)}`);
897
927
  }
898
928
  }
929
+ /********
930
+ *
931
+ * List all states that have a specific action attached. Please note that
932
+ * the order of the states is not guaranteed.
933
+ *
934
+ * ```typescript
935
+ * import { sm } from 'jssm';
936
+ *
937
+ * const machine = sm`
938
+ * red 'next' -> green 'next' -> yellow 'next' -> red;
939
+ * [red yellow green] 'shutdown' ~> off 'start' -> red;
940
+ * `;
941
+ *
942
+ * console.log( machine.list_states_having_action('next') ); // ['red', 'green', 'yellow']
943
+ * console.log( machine.list_states_having_action('start') ); // ['off']
944
+ * ```
945
+ *
946
+ */
899
947
  list_states_having_action(whichState) {
900
948
  const wstate = this._actions.get(whichState);
901
949
  if (wstate) {
@@ -1288,7 +1336,7 @@ class Machine {
1288
1336
  *
1289
1337
  *
1290
1338
  * ```typescript
1291
- * import * as jssm from './jssm';
1339
+ * import * as jssm from 'jssm';
1292
1340
  *
1293
1341
  * const switch = jssm.from('on <=> off;');
1294
1342
  * ```
@@ -1317,7 +1365,7 @@ function sm(template_strings, ...remainder /* , arguments */) {
1317
1365
  * template expression.
1318
1366
  *
1319
1367
  * ```typescript
1320
- * import * as jssm from './jssm';
1368
+ * import * as jssm from 'jssm';
1321
1369
  *
1322
1370
  * const switch = jssm.from('on <=> off;');
1323
1371
  * ```
@@ -1,2 +1,2 @@
1
- const version = "5.65.9";
1
+ const version = "5.65.10";
2
2
  export { version };