jssm 5.145.1 → 5.145.3

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/README.md CHANGED
@@ -18,10 +18,10 @@ 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.145.1 at 6/22/2026, 4:53:08 PM
21
+ * Generated for version 5.145.3 at 6/22/2026, 8:34:25 PM
22
22
 
23
23
  -->
24
- # jssm 5.145.1
24
+ # jssm 5.145.3
25
25
 
26
26
  [**Try the live editor**](https://stonecypher.github.io/jssm-viz-demo/graph_explorer.html) ·
27
27
  [Documentation](https://stonecypher.github.io/jssm/docs/) ·
@@ -312,7 +312,7 @@ That decision shows up everywhere downstream:
312
312
  or run `npm run benny` against your own machine.
313
313
 
314
314
  - **More thoroughly tested than any other JavaScript state-machine
315
- library.** 7,389 tests at 100.0% line coverage
315
+ library.** 7,391 tests at 100.0% line coverage
316
316
  ([report](https://coveralls.io/github/StoneCypher/jssm)), plus
317
317
  fuzz testing via `fast-check`, with parser test data across ten natural
318
318
  languages and Emoji.
@@ -445,9 +445,9 @@ If your contribution is missing here, please open an issue.
445
445
 
446
446
  <br/>
447
447
 
448
- ***7,389 tests***, run 82,431 times.
448
+ ***7,391 tests***, run 82,433 times.
449
449
 
450
- - 6,631 specs with 100.0% coverage
450
+ - 6,633 specs with 100.0% coverage
451
451
  - 758 fuzz tests with 73.7% coverage
452
452
  - 6,962 TypeScript lines - 1.1 tests per line, 11.8 generated tests per line
453
453
 
@@ -23512,7 +23512,7 @@ var constants = /*#__PURE__*/Object.freeze({
23512
23512
  * Useful for runtime diagnostics and for embedding in serialized machine
23513
23513
  * snapshots so that deserializers can detect version-skew.
23514
23514
  */
23515
- const version = "5.145.1";
23515
+ const version = "5.145.3";
23516
23516
 
23517
23517
  // whargarbl lots of these return arrays could/should be sets
23518
23518
  const { state_name_chars, state_name_first_chars, action_label_chars } = constants;
package/dist/cdn/viz.js CHANGED
@@ -23537,7 +23537,7 @@ var constants = /*#__PURE__*/Object.freeze({
23537
23537
  * Useful for runtime diagnostics and for embedding in serialized machine
23538
23538
  * snapshots so that deserializers can detect version-skew.
23539
23539
  */
23540
- const version = "5.145.1";
23540
+ const version = "5.145.3";
23541
23541
 
23542
23542
  // whargarbl lots of these return arrays could/should be sets
23543
23543
  const { state_name_chars, state_name_first_chars, action_label_chars } = constants;
@@ -29157,7 +29157,11 @@ function state_node_line(u_jssm, s, state_index, state_kinds, hide_state_labels,
29157
29157
  var _a;
29158
29158
  const style = u_jssm.style_for(s);
29159
29159
  const fillcolor = style.backgroundColor || default_fillcolor_for((_a = state_kinds.get(s)) !== null && _a !== void 0 ? _a : 'base');
29160
- const label = hide_state_labels ? '' : label_with_chips(u_jssm.display_text(s), chips);
29160
+ // doublequote the display text so a state name containing literal `"`
29161
+ // (e.g. `"Output \"foo\""`) produces valid DOT instead of an unbalanced
29162
+ // `label="Output "foo""` that crashes the graphviz/emscripten renderer.
29163
+ // chips are already escaped by label_with_chips. StoneCypher/fsl#474
29164
+ const label = hide_state_labels ? '' : label_with_chips(doublequote(u_jssm.display_text(s)), chips);
29161
29165
  const features = [
29162
29166
  ['label', label],
29163
29167
  ['shape', style.shape || ''],
@@ -108,7 +108,7 @@ function parseFslArgs(argv, spec) {
108
108
  return { positional, flags, helpText };
109
109
  }
110
110
 
111
- const getVersion = () => "5.145.1";
111
+ const getVersion = () => "5.145.3";
112
112
  const SPEC = {
113
113
  flags: {
114
114
  help: { short: "h", boolean: true },