jssm 5.65.11 → 5.67.0

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
@@ -15,6 +15,8 @@ import { version } from './version';
15
15
  * arrow_direction('<~=>'); // 'both'
16
16
  * ```
17
17
  *
18
+ * @param arrow The arrow to be evaluated
19
+ *
18
20
  */
19
21
  declare function arrow_direction(arrow: JssmArrow): JssmArrowDirection;
20
22
  /*********
@@ -31,6 +33,8 @@ declare function arrow_direction(arrow: JssmArrow): JssmArrowDirection;
31
33
  * arrow_left_kind('->'); // 'none'
32
34
  * ```
33
35
  *
36
+ * @param arrow The arrow to be evaluated
37
+ *
34
38
  */
35
39
  declare function arrow_left_kind(arrow: JssmArrow): JssmArrowKind;
36
40
  /*********
@@ -47,6 +51,8 @@ declare function arrow_left_kind(arrow: JssmArrow): JssmArrowKind;
47
51
  * arrow_left_kind('<-'); // 'none'
48
52
  * ```
49
53
  *
54
+ * @param arrow The arrow to be evaluated
55
+ *
50
56
  */
51
57
  declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
52
58
  /*********
@@ -101,6 +107,10 @@ declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
101
107
  * `wrap_parse` itself is an internal convenience method for alting out an
102
108
  * object as the options call. Not generally meant for external use.
103
109
  *
110
+ * @param input The FSL code to be evaluated
111
+ *
112
+ * @param options Things to control about the instance
113
+ *
104
114
  */
105
115
  declare function wrap_parse(input: string, options?: Object): any;
106
116
  /*********
@@ -149,6 +159,10 @@ declare function wrap_parse(input: string, options?: Object): any;
149
159
  * const toggle = jssm.from('up <=> down;');
150
160
  * ```
151
161
  *
162
+ * @typeparam mDT The type of the machine data member; usually omitted
163
+ *
164
+ * @param tree The parse tree to be boiled down into a machine config
165
+ *
152
166
  */
153
167
  declare function compile<mDT>(tree: JssmParseTree): JssmGenericConfig<mDT>;
154
168
  /*********
@@ -157,6 +171,10 @@ declare function compile<mDT>(tree: JssmParseTree): JssmGenericConfig<mDT>;
157
171
  * Not generally meant for external use. Please see {@link compile} or
158
172
  * {@link sm}.
159
173
  *
174
+ * @typeparam mDT The type of the machine data member; usually omitted
175
+ *
176
+ * @param plan The FSL code to be evaluated and built into a machine config
177
+ *
160
178
  */
161
179
  declare function make<mDT>(plan: string): JssmGenericConfig<mDT>;
162
180
  /*********
@@ -165,6 +183,8 @@ declare function make<mDT>(plan: string): JssmGenericConfig<mDT>;
165
183
  * a single multi-faceted declaration, in the process of building a state. Not
166
184
  * generally meant for external use.
167
185
  *
186
+ * @internal
187
+ *
168
188
  */
169
189
  declare function transfer_state_properties(state_decl: JssmStateDeclaration): JssmStateDeclaration;
170
190
  declare class Machine<mDT> {
@@ -217,6 +237,8 @@ declare class Machine<mDT> {
217
237
  *
218
238
  * Internal method for fabricating states. Not meant for external use.
219
239
  *
240
+ * @internal
241
+ *
220
242
  */
221
243
  _new_state(state_config: JssmGenericState): StateType;
222
244
  /*********
@@ -233,6 +255,8 @@ declare class Machine<mDT> {
233
255
  * console.log( switch.state() ); // 'off'
234
256
  * ```
235
257
  *
258
+ * @typeparam mDT The type of the machine data member; usually omitted
259
+ *
236
260
  */
237
261
  state(): StateType;
238
262
  /********
@@ -249,6 +273,10 @@ declare class Machine<mDT> {
249
273
  * console.log( final_test.state_is_final('second') ); // true
250
274
  * ```
251
275
  *
276
+ * @typeparam mDT The type of the machine data member; usually omitted
277
+ *
278
+ * @param whichState The name of the state to check for finality
279
+ *
252
280
  */
253
281
  state_is_final(whichState: StateType): boolean;
254
282
  /********
@@ -266,6 +294,8 @@ declare class Machine<mDT> {
266
294
  * console.log( final_test.is_final() ); // true
267
295
  * ```
268
296
  *
297
+ * @typeparam mDT The type of the machine data member; usually omitted
298
+ *
269
299
  */
270
300
  is_final(): boolean;
271
301
  graph_layout(): string;
@@ -295,6 +325,8 @@ declare class Machine<mDT> {
295
325
  * console.log( switch.states() ); // ['on', 'off']
296
326
  * ```
297
327
  *
328
+ * @typeparam mDT The type of the machine data member; usually omitted
329
+ *
298
330
  */
299
331
  states(): Array<StateType>;
300
332
  state_for(whichState: StateType): JssmGenericState;
@@ -311,6 +343,10 @@ declare class Machine<mDT> {
311
343
  * console.log( switch.has_state('dance') ); // false
312
344
  * ```
313
345
  *
346
+ * @typeparam mDT The type of the machine data member; usually omitted
347
+ *
348
+ * @param whichState The state to be checked for extance
349
+ *
314
350
  */
315
351
  has_state(whichState: StateType): boolean;
316
352
  /*********
@@ -318,28 +354,32 @@ declare class Machine<mDT> {
318
354
  * Lists all edges of a machine.
319
355
  *
320
356
  * ```typescript
357
+ * import { sm } from 'jssm';
358
+ *
321
359
  * const lswitch = sm`on 'toggle' <=> 'toggle' off;`;
322
360
  *
323
- * lswitch.list_edges();
324
- * [
325
- * {
326
- * from: 'on',
327
- * to: 'off',
328
- * kind: 'main',
329
- * forced_only: false,
330
- * main_path: true,
331
- * action: 'toggle'
332
- * },
333
- * {
334
- * from: 'off',
335
- * to: 'on',
336
- * kind: 'main',
337
- * forced_only: false,
338
- * main_path: true,
339
- * action: 'toggle'
340
- * }
341
- * ]
342
- * ```
361
+ * lswitch.list_edges();
362
+ * [
363
+ * {
364
+ * from: 'on',
365
+ * to: 'off',
366
+ * kind: 'main',
367
+ * forced_only: false,
368
+ * main_path: true,
369
+ * action: 'toggle'
370
+ * },
371
+ * {
372
+ * from: 'off',
373
+ * to: 'on',
374
+ * kind: 'main',
375
+ * forced_only: false,
376
+ * main_path: true,
377
+ * action: 'toggle'
378
+ * }
379
+ * ]
380
+ * ```
381
+ *
382
+ * @typeparam mDT The type of the machine data member; usually omitted
343
383
  *
344
384
  */
345
385
  list_edges(): Array<JssmTransition<mDT>>;
@@ -355,11 +395,18 @@ declare class Machine<mDT> {
355
395
  * exit. The order of each sublist is not defined. A node could appear in
356
396
  * both lists.
357
397
  *
358
- * const lswitch = sm`on 'toggle' <=> 'toggle' off;`;
398
+ * ```typescript
399
+ * import { sm } from 'jssm';
400
+ *
359
401
  * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
360
402
  *
361
403
  * light.state(); // 'red'
362
404
  * light.list_transitions(); // { entrances: [ 'yellow', 'off' ], exits: [ 'green', 'off' ] }
405
+ * ```
406
+ *
407
+ * @typeparam mDT The type of the machine data member; usually omitted
408
+ *
409
+ * @param whichState The state whose transitions to have listed
363
410
  *
364
411
  */
365
412
  list_transitions(whichState?: StateType): JssmTransitionList;
@@ -368,11 +415,18 @@ declare class Machine<mDT> {
368
415
  * List all entrances attached to the current state. Please note that the
369
416
  * order of the list is not defined.
370
417
  *
371
- * const lswitch = sm`on 'toggle' <=> 'toggle' off;`;
418
+ * ```typescript
419
+ * import { sm } from 'jssm';
420
+ *
372
421
  * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
373
422
  *
374
423
  * light.state(); // 'red'
375
424
  * light.list_entrances(); // [ 'yellow', 'off' ]
425
+ * ```
426
+ *
427
+ * @typeparam mDT The type of the machine data member; usually omitted
428
+ *
429
+ * @param whichState The state whose entrances to have listed
376
430
  *
377
431
  */
378
432
  list_entrances(whichState?: StateType): Array<StateType>;
@@ -381,11 +435,18 @@ declare class Machine<mDT> {
381
435
  * List all exits attached to the current state. Please note that the order
382
436
  * of the list is not defined.
383
437
  *
384
- * const lswitch = sm`on 'toggle' <=> 'toggle' off;`;
438
+ * ```typescript
439
+ * import { sm } from 'jssm';
440
+ *
385
441
  * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
386
442
  *
387
443
  * light.state(); // 'red'
388
444
  * light.list_exits(); // [ 'green', 'off' ]
445
+ * ```
446
+ *
447
+ * @typeparam mDT The type of the machine data member; usually omitted
448
+ *
449
+ * @param whichState The state whose exits to have listed
389
450
  *
390
451
  */
391
452
  list_exits(whichState?: StateType): Array<StateType>;
@@ -422,6 +483,10 @@ declare class Machine<mDT> {
422
483
  * console.log( machine.actions() ); // logs ['next', 'shutdown']
423
484
  * ```
424
485
  *
486
+ * @typeparam mDT The type of the machine data member; usually omitted
487
+ *
488
+ * @param whichState The state whose actions to have listed
489
+ *
425
490
  */
426
491
  actions(whichState?: StateType): Array<StateType>;
427
492
  /********
@@ -441,6 +506,10 @@ declare class Machine<mDT> {
441
506
  * console.log( machine.list_states_having_action('start') ); // ['off']
442
507
  * ```
443
508
  *
509
+ * @typeparam mDT The type of the machine data member; usually omitted
510
+ *
511
+ * @param whichState The action to be checked for associated states
512
+ *
444
513
  */
445
514
  list_states_having_action(whichState: StateType): Array<StateType>;
446
515
  list_exit_actions(whichState?: StateType): Array<StateType>;
@@ -466,8 +535,68 @@ declare class Machine<mDT> {
466
535
  hook_exit(from: string, handler: HookHandler): Machine<mDT>;
467
536
  edges_between(from: string, to: string): JssmTransition<mDT>[];
468
537
  transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
538
+ /********
539
+ *
540
+ * Instruct the machine to complete an action.
541
+ *
542
+ * ```typescript
543
+ * const light = sm`red 'next' -> green 'next' -> yellow 'next' -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
544
+ *
545
+ * light.state(); // 'red'
546
+ * light.action('next'); // true
547
+ * light.state(); // 'green'
548
+ * ```
549
+ *
550
+ * @typeparam mDT The type of the machine data member; usually omitted
551
+ *
552
+ * @param actionName The action to engage
553
+ *
554
+ * @param newData The data change to insert during the action
555
+ *
556
+ */
469
557
  action(actionName: StateType, newData?: mDT): boolean;
558
+ /********
559
+ *
560
+ * Instruct the machine to complete a transition.
561
+ *
562
+ * ```typescript
563
+ * const light = sm`red -> green -> yellow -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
564
+ *
565
+ * light.state(); // 'red'
566
+ * light.transition('green'); // true
567
+ * light.state(); // 'green'
568
+ * ```
569
+ *
570
+ * @typeparam mDT The type of the machine data member; usually omitted
571
+ *
572
+ * @param newState The state to switch to
573
+ *
574
+ * @param newData The data change to insert during the transition
575
+ *
576
+ */
470
577
  transition(newState: StateType, newData?: mDT): boolean;
578
+ /********
579
+ *
580
+ * Instruct the machine to complete a forced transition (which will reject if
581
+ * called with a normal {@link transition} call.)
582
+ *
583
+ * ```typescript
584
+ * const light = sm`red -> green -> yellow -> red; [red yellow green] 'shutdown' ~> off 'start' -> red;`;
585
+ *
586
+ * light.state(); // 'red'
587
+ * light.transition('off'); // false
588
+ * light.state(); // 'red'
589
+ * light.force_transition('off'); // true
590
+ * light.state(); // 'off'
591
+ * ```
592
+ *
593
+ * @typeparam mDT The type of the machine data member; usually omitted
594
+ *
595
+ * @param newState The state to switch to
596
+ *
597
+ * @param newData The data change to insert during the transition
598
+ *
599
+ */
471
600
  force_transition(newState: StateType, newData?: mDT): boolean;
472
601
  current_action_for(action: StateType): number;
473
602
  current_action_edge_for(action: StateType): JssmTransition<mDT>;
@@ -493,6 +622,12 @@ declare class Machine<mDT> {
493
622
  * const switch = jssm.from('on <=> off;');
494
623
  * ```
495
624
  *
625
+ * @typeparam mDT The type of the machine data member; usually omitted
626
+ *
627
+ * @param template_strings The assembled code
628
+ *
629
+ * @param remainder The mechanic for template argument insertion
630
+ *
496
631
  */
497
632
  declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: any[]): Machine<mDT>;
498
633
  /*********
@@ -510,6 +645,12 @@ declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: a
510
645
  * const switch = jssm.from('on <=> off;');
511
646
  * ```
512
647
  *
648
+ * @typeparam mDT The type of the machine data member; usually omitted
649
+ *
650
+ * @param MachineAsString The FSL code to evaluate
651
+ *
652
+ * @param ExtraConstructorFields Extra non-code configuration to pass at creation time
653
+ *
513
654
  */
514
655
  declare function from<mDT>(MachineAsString: string, ExtraConstructorFields?: Partial<JssmGenericConfig<mDT>> | undefined): Machine<mDT>;
515
656
  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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jssm",
3
- "version": "5.65.11",
3
+ "version": "5.67.0",
4
4
  "engines": {
5
5
  "node": ">=10.0.0"
6
6
  },
@@ -44,16 +44,16 @@
44
44
  "audit": "text_audit -r -t major MAJOR wasteful WASTEFUL any mixed fixme FIXME checkme CHECKME testme TESTME stochable STOCHABLE todo TODO comeback COMEBACK whargarbl WHARGARBL -g ./src/ts/**/*.{js,ts}",
45
45
  "vet": "npm run eslint && npm run audit",
46
46
  "benny": "node ./src/buildjs/benchmark.js",
47
- "build": "npm run vet && npm run test && npm run site && npm run docs && npm run benny",
48
- "buildnb": "npm run vet && npm run test && npm run site && npm run docs",
47
+ "build": "npm run vet && npm run test && npm run site && npm run changelog && npm run docs",
48
+ "clean_bench": "npm run test && npm run benny",
49
49
  "qbuild": "npm run test",
50
50
  "ci_build": "npm run vet && npm run test",
51
51
  "minify": "mv dist/es6/jssm-dot.js dist/es6/jssm-dot.nonmin.js && terser dist/es6/jssm-dot.nonmin.js > dist/es6/jssm-dot.js",
52
52
  "min_iife": "mv dist/jssm.es5.iife.js dist/jssm.es5.iife.nonmin.js && terser dist/jssm.es5.iife.nonmin.js > dist/jssm.es5.iife.js",
53
53
  "min_cjs": "mv dist/jssm.es5.cjs.js dist/jssm.es5.cjs.nonmin.js && terser dist/jssm.es5.cjs.nonmin.js > dist/jssm.es5.cjs.js",
54
- "site": "cp src/site/* docs/",
55
- "docs": "typedoc src/ts/jssm.ts --out docs/docs --customCss ./src/site/typedoc-addon.css",
56
- "changelog": "rm -f CHANGELOG.md && changelog-maker -a > CHANGELOG.md"
54
+ "site": "cp src/site/* docs/ && cp -r src/assets docs/assets/",
55
+ "docs": "typedoc src/ts/jssm.ts --options typedoc-options.js",
56
+ "changelog": "rm -f CHANGELOG.md && rm -f ./src/doc_md/CHANGELOG.md && better_git_changelog -b && cp CHANGELOG.* ./src/doc_md/"
57
57
  },
58
58
  "repository": {
59
59
  "type": "git",
@@ -96,6 +96,7 @@
96
96
  },
97
97
  "homepage": "https://stonecypher.github.io/jssm/",
98
98
  "devDependencies": {
99
+ "@knodes/typedoc-plugin-pages": "^0.22.5",
99
100
  "@rollup/plugin-commonjs": "^22.0.0",
100
101
  "@rollup/plugin-node-resolve": "^13.3.0",
101
102
  "@rollup/plugin-replace": "^4.0.0",
@@ -103,7 +104,6 @@
103
104
  "@typescript-eslint/eslint-plugin": "^4.13.0",
104
105
  "@typescript-eslint/parser": "^4.13.0",
105
106
  "benny": "^3.7.1",
106
- "changelog-maker": "^2.3.2",
107
107
  "coveralls": "^3.0.11",
108
108
  "eslint": "^7.32.0",
109
109
  "eslint-plugin-fp": "^2.3.0",
@@ -120,11 +120,11 @@
120
120
  "terser": "^5.13.1",
121
121
  "text_audit": "^0.9.3",
122
122
  "ts-jest": "^27.0.7",
123
- "tscheck": "^0.1.5",
124
123
  "typedoc": "^0.22.15",
125
124
  "typescript": "^4.6.4"
126
125
  },
127
126
  "dependencies": {
127
+ "better_git_changelog": "^1.6.1",
128
128
  "reduce-to-639-1": "^1.0.4"
129
129
  }
130
130
  }
@@ -0,0 +1,52 @@
1
+ module.exports = {
2
+ name: 'JSSM, a JavaScript state machine - the FSM for FSL',
3
+ readme: './src/doc_md/DocLandingPage.md',
4
+ out: 'docs/docs',
5
+ // entryPoints: [
6
+ // 'packages/*',
7
+ // ],
8
+ customCss: './src/site/typedoc-addon.css',
9
+ // entryPointStrategy: 'packages',
10
+ pluginPages: {
11
+ source: './src/doc_md/',
12
+ pages: [
13
+ { title: 'Tutorials', childrenDir: './', children: [
14
+ { title: '☕ Getting started', source: 'GettingStarted.md' },
15
+ { title: 'Language reference', source: 'todo.md' },
16
+ { title: 'API reference', source: 'todo.md' },
17
+ { title: 'Example machines', source: 'todo.md' },
18
+ { title: 'Howtos and Recipes', childrenDir: './', children: [
19
+ { title: 'Environments', source: 'todo.md' },
20
+ { title: 'Bundling', source: 'todo.md' },
21
+ { title: 'Publishing', source: 'todo.md' }
22
+ ] },
23
+ { title: 'Shootout', source: 'Shootout.md' }
24
+ ] },
25
+ { title: 'Tools', childrenDir: './', children: [
26
+ { title: 'Live Editor', source: 'live_editor.md' },
27
+ { title: 'Github Action', source: 'todo.md' }
28
+ ] },
29
+ { title: 'VIRTUAL', childrenDir: './', children: [
30
+ { title: 'Community', source: 'community.md' }
31
+ ] },
32
+ { title: 'VIRTUAL', childrenDir: './', children: [
33
+ { title: 'Changelog', source: 'CHANGELOG.md' }
34
+ ] },
35
+ // { title: '@knodes/typedoc-plugin-code-blocks', source: 'readme-extras.md', children: [
36
+ // { title: 'Using options', source: 'options.md' },
37
+ // ] },
38
+ // { title: '@knodes/typedoc-plugin-monorepo-readmes', children: [
39
+ // { title: 'Using options', source: 'options.md' },
40
+ // ] },
41
+ // { title: '@knodes/typedoc-plugin-pages', source: 'readme-extras.md', children: [
42
+ // { title: 'Using options', source: 'options.md' },
43
+ // { title: 'Pages tree', source: 'pages-tree.md' },
44
+ // ] },
45
+ // { title: '@knodes/typedoc-pluginutils', children: [
46
+ // { title: 'Providing options', source: 'providing-options.md' },
47
+ // ] },
48
+ ]
49
+ },
50
+ // pluginCodeBlocks: { source: '__tests__/mock-fs' },
51
+ excludePrivate: true
52
+ };