jssm 5.112.3 → 5.113.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/README.md +3 -3
- package/dist/deno/README.md +347 -0
- package/dist/deno/jssm.js +1 -0
- package/dist/{es6 → deno}/jssm_constants.d.ts +5 -0
- package/dist/{es6 → deno}/jssm_types.d.ts +298 -5
- package/dist/jssm.es5.cjs +1 -1
- package/dist/jssm.es5.iife.js +1 -1
- package/dist/jssm.es6.mjs +1 -1
- package/dist/jssm_viz.cjs +1 -1
- package/dist/jssm_viz.iife.cjs +1 -1
- package/dist/jssm_viz.mjs +1 -1
- package/jssm.es5.d.cts +241 -2
- package/jssm.es6.d.ts +241 -2
- package/jssm_viz.es5.d.cts +216 -2
- package/jssm_viz.es6.d.ts +216 -2
- package/package.json +18 -2
- package/.clocignore +0 -1
- package/.codeclimate.yml +0 -22
- package/.editorconfig +0 -12
- package/.eslintrc +0 -20
- package/.gitattributes +0 -17
- package/.log-progress.json +0 -9
- package/.nycrc +0 -6
- package/.travis.yml +0 -9
- package/CHANGELOG.md +0 -263
- package/CLAUDE.md +0 -11
- package/dist/es6/fsl_parser.js +0 -1
- package/dist/es6/jssm.js +0 -3320
- package/dist/es6/jssm_arrow.js +0 -211
- package/dist/es6/jssm_compiler.js +0 -380
- package/dist/es6/jssm_constants.js +0 -121
- package/dist/es6/jssm_error.js +0 -47
- package/dist/es6/jssm_theme.js +0 -24
- package/dist/es6/jssm_types.js +0 -3
- package/dist/es6/jssm_util.js +0 -337
- package/dist/es6/jssm_viz.js +0 -560
- package/dist/es6/jssm_viz_colors.js +0 -63
- package/dist/es6/themes/jssm_base_stylesheet.d.ts +0 -11
- package/dist/es6/themes/jssm_base_stylesheet.js +0 -58
- package/dist/es6/themes/jssm_theme_bold.d.ts +0 -11
- package/dist/es6/themes/jssm_theme_bold.js +0 -58
- package/dist/es6/themes/jssm_theme_default.d.ts +0 -11
- package/dist/es6/themes/jssm_theme_default.js +0 -58
- package/dist/es6/themes/jssm_theme_modern.d.ts +0 -11
- package/dist/es6/themes/jssm_theme_modern.js +0 -58
- package/dist/es6/themes/jssm_theme_ocean.d.ts +0 -11
- package/dist/es6/themes/jssm_theme_ocean.js +0 -56
- package/dist/es6/themes/jssm_theme_plain.d.ts +0 -11
- package/dist/es6/themes/jssm_theme_plain.js +0 -70
- package/dist/es6/version.js +0 -2
- package/dist/jssm.es5.nonmin.cjs +0 -24506
- package/dist/jssm.es6.nonmin.cjs +0 -24473
- package/dist/jssm_viz.es5.iife.nonmin.cjs +0 -24679
- package/dist/jssm_viz.es5.nonmin.cjs +0 -24674
- package/dist/jssm_viz.es6.nonmin.cjs +0 -24661
- package/jest-dragon.config.cjs +0 -36
- package/jest-spec.config.cjs +0 -36
- package/jest-stoch.config.cjs +0 -36
- package/jest-unicode.config.cjs +0 -36
- package/log-progress.data.json +0 -28
- package/rollup.config.deno.js +0 -44
- package/rollup.config.es5.js +0 -52
- package/rollup.config.es6.js +0 -55
- package/rollup.config.viz.es5.js +0 -46
- package/rollup.config.viz.es6.js +0 -46
- package/rollup.config.viz.iife.js +0 -36
- package/tutorial_learn_testing.md +0 -168
- package/typedoc-options.cjs +0 -69
- /package/dist/{es6 → deno}/fsl_parser.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm_arrow.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm_compiler.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm_error.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm_theme.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm_util.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm_viz.d.ts +0 -0
- /package/dist/{es6 → deno}/jssm_viz_colors.d.ts +0 -0
- /package/dist/{es6 → deno}/version.d.ts +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jssm",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.113.0",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=10.0.0"
|
|
6
6
|
},
|
|
@@ -48,9 +48,25 @@
|
|
|
48
48
|
]
|
|
49
49
|
},
|
|
50
50
|
"type": "module",
|
|
51
|
+
"files": [
|
|
52
|
+
"dist/jssm.es5.cjs",
|
|
53
|
+
"dist/jssm.es5.iife.js",
|
|
54
|
+
"dist/jssm.es6.mjs",
|
|
55
|
+
"dist/jssm_viz.cjs",
|
|
56
|
+
"dist/jssm_viz.iife.cjs",
|
|
57
|
+
"dist/jssm_viz.mjs",
|
|
58
|
+
"dist/deno/jssm.js",
|
|
59
|
+
"dist/deno/*.d.ts",
|
|
60
|
+
"dist/deno/README.md",
|
|
61
|
+
"jssm.es5.d.cts",
|
|
62
|
+
"jssm.es6.d.ts",
|
|
63
|
+
"jssm_viz.es5.d.cts",
|
|
64
|
+
"jssm_viz.es6.d.ts",
|
|
65
|
+
"MIGRATING-jssm-viz.md"
|
|
66
|
+
],
|
|
51
67
|
"description": "A Javascript finite state machine (FSM) with a terse DSL and a simple API. Most FSMs are one-liners. Fast, easy, powerful, well tested, typed with TypeScript, and visualizations. MIT License.",
|
|
52
68
|
"main": "dist/jssm.es5.cjs",
|
|
53
|
-
"module": "dist/jssm.es6.
|
|
69
|
+
"module": "dist/jssm.es6.mjs",
|
|
54
70
|
"browser": "dist/jssm.es5.iife.js",
|
|
55
71
|
"types": "./jssm.es5.d.cts",
|
|
56
72
|
"scripts": {
|
package/.clocignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
./src/ts/fsl_parser.ts
|
package/.codeclimate.yml
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
engines:
|
|
2
|
-
csslint:
|
|
3
|
-
enabled: true
|
|
4
|
-
duplication:
|
|
5
|
-
enabled: true
|
|
6
|
-
config:
|
|
7
|
-
languages:
|
|
8
|
-
- javascript
|
|
9
|
-
eslint:
|
|
10
|
-
enabled: true
|
|
11
|
-
fixme:
|
|
12
|
-
enabled: true
|
|
13
|
-
ratings:
|
|
14
|
-
paths:
|
|
15
|
-
- "**.css"
|
|
16
|
-
- "**.js"
|
|
17
|
-
- "**.jsx"
|
|
18
|
-
exclude_paths:
|
|
19
|
-
- dist/
|
|
20
|
-
- docs/
|
|
21
|
-
- src/js/tests/
|
|
22
|
-
- build/
|
package/.editorconfig
DELETED
package/.eslintrc
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
"parser" : "@typescript-eslint/parser",
|
|
4
|
-
"parserOptions": {
|
|
5
|
-
"sourceType" : "module",
|
|
6
|
-
},
|
|
7
|
-
|
|
8
|
-
"plugins" : [ "@typescript-eslint" ],
|
|
9
|
-
"env" : { "es6": true, "commonjs": true },
|
|
10
|
-
|
|
11
|
-
"extends" : [
|
|
12
|
-
"plugin:@typescript-eslint/eslint-recommended"
|
|
13
|
-
],
|
|
14
|
-
|
|
15
|
-
rules: {
|
|
16
|
-
"no-unused-vars": 0,
|
|
17
|
-
"@typescript-eslint/no-unused-vars": 0
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
}
|
package/.gitattributes
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Build outputs
|
|
2
|
-
build/** linguist-generated
|
|
3
|
-
dist/** linguist-generated
|
|
4
|
-
|
|
5
|
-
# Generated documentation
|
|
6
|
-
docs/** linguist-generated
|
|
7
|
-
|
|
8
|
-
# Generated source (PEG.js parser output, ~18k lines)
|
|
9
|
-
src/ts/fsl_parser.ts linguist-generated
|
|
10
|
-
src/ts/generated_code/** linguist-generated
|
|
11
|
-
|
|
12
|
-
# Test/benchmark artifacts
|
|
13
|
-
benchmark/** linguist-generated
|
|
14
|
-
coverage/** linguist-generated
|
|
15
|
-
|
|
16
|
-
# Lockfiles (also keeps Languages sidebar accurate)
|
|
17
|
-
package-lock.json linguist-generated
|
package/.log-progress.json
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"data_path": "./log-progress.data.json",
|
|
3
|
-
"output_path": "./src/site/log_progress.html",
|
|
4
|
-
"transform_script": null,
|
|
5
|
-
"css_path": null,
|
|
6
|
-
"suppress_base_css": false,
|
|
7
|
-
"project_title": "jssm Progress Log",
|
|
8
|
-
"title_url": "https://stonecypher.github.io/jssm/"
|
|
9
|
-
}
|
package/.nycrc
DELETED
package/.travis.yml
DELETED
package/CHANGELOG.md
DELETED
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
1266 merges; 222 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Published tags:
|
|
14
|
-
|
|
15
|
-
<a href="#5__110__1">5.110.1</a>, <a href="#5__109__0">5.109.0</a>, <a href="#5__108__0">5.108.0</a>, <a href="#5__107__2">5.107.2</a>, <a href="#5__107__0">5.107.0</a>, <a href="#5__106__0">5.106.0</a>, <a href="#5__105__6">5.105.6</a>, <a href="#5__105__4">5.105.4</a>, <a href="#5__105__3">5.105.3</a>, <a href="#5__105__2">5.105.2</a>, <a href="#5__105__1">5.105.1</a>, <a href="#5__105__0">5.105.0</a>, <a href="#5__104__2">5.104.2</a>, <a href="#5__104__1">5.104.1</a>, <a href="#5__103__0">5.103.0</a>, <a href="#5__102__1">5.102.1</a>, <a href="#5__101__0">5.101.0</a>, <a href="#5__100__0">5.100.0</a>, <a href="#5__99__0">5.99.0</a>, <a href="#5__98__8">5.98.8</a>, <a href="#5__98__7">5.98.7</a>, <a href="#5__98__2">5.98.2</a>, <a href="#5__98__0">5.98.0</a>, <a href="#5__97__1">5.97.1</a>, <a href="#5__97__0">5.97.0</a>, <a href="#5__96__1">5.96.1</a>, <a href="#5__96__0">5.96.0</a>, <a href="#5__95__0">5.95.0</a>, <a href="#5__94__0">5.94.0</a>, <a href="#5__93__0">5.93.0</a>, <a href="#5__91__1">5.91.1</a>, <a href="#5__91__0">5.91.0</a>, <a href="#5__90__1">5.90.1</a>, <a href="#5__90__0">5.90.0</a>, <a href="#5__89__6">5.89.6</a>, <a href="#5__89__3">5.89.3</a>, <a href="#5__89__2">5.89.2</a>, <a href="#5__89__1">5.89.1</a>, <a href="#5__89__0">5.89.0</a>, <a href="#5__88__4">5.88.4</a>, <a href="#5__88__3">5.88.3</a>, <a href="#5__88__2">5.88.2</a>, <a href="#5__88__1">5.88.1</a>, <a href="#5__88__0">5.88.0</a>, <a href="#5__87__0">5.87.0</a>, <a href="#5__86__3">5.86.3</a>, <a href="#5__86__2">5.86.2</a>, <a href="#5__86__1">5.86.1</a>, <a href="#5__86__0">5.86.0</a>, <a href="#5__85__11">5.85.11</a>, <a href="#5__85__10">5.85.10</a>, <a href="#5__85__9">5.85.9</a>, <a href="#5__85__8">5.85.8</a>, <a href="#5__85__7">5.85.7</a>, <a href="#5__85__6">5.85.6</a>, <a href="#5__85__5">5.85.5</a>, <a href="#5__85__4">5.85.4</a>, <a href="#5__85__3">5.85.3</a>, <a href="#5__85__2">5.85.2</a>, <a href="#5__85__1">5.85.1</a>, <a href="#5__85__0">5.85.0</a>, <a href="#5__84__1">5.84.1</a>, <a href="#5__84__0">5.84.0</a>, <a href="#5__83__2">5.83.2</a>, <a href="#5__83__1">5.83.1</a>, <a href="#5__83__0">5.83.0</a>, <a href="#5__82__5">5.82.5</a>, <a href="#5__82__4">5.82.4</a>, <a href="#5__82__3">5.82.3</a>, <a href="#5__82__2">5.82.2</a>, <a href="#5__82__1">5.82.1</a>, <a href="#5__82__0">5.82.0</a>, <a href="#5__81__2">5.81.2</a>, <a href="#5__81__0">5.81.0</a>, <a href="#5__80__1">5.80.1</a>, <a href="#5__80__0">5.80.0</a>, <a href="#5__79__18">5.79.18</a>, <a href="#5__79__17">5.79.17</a>, <a href="#5__79__16">5.79.16</a>, <a href="#5__79__15">5.79.15</a>, <a href="#5__79__11">5.79.11</a>, <a href="#5__79__10">5.79.10</a>, <a href="#5__79__9">5.79.9</a>, <a href="#5__79__8">5.79.8</a>, <a href="#5__79__6">5.79.6</a>, <a href="#5__79__4">5.79.4</a>, <a href="#5__79__3">5.79.3</a>, <a href="#5__79__2">5.79.2</a>, <a href="#5__79__1">5.79.1</a>, <a href="#5__79__0">5.79.0</a>, <a href="#5__78__0">5.78.0</a>, <a href="#5__77__1">5.77.1</a>, <a href="#5__77__0">5.77.0</a>, <a href="#5__76__2">5.76.2</a>, <a href="#5__76__0">5.76.0</a>, <a href="#5__75__1">5.75.1</a>, <a href="#5__75__0">5.75.0</a>, <a href="#5__74__0">5.74.0</a>, <a href="#5__73__1">5.73.1</a>, <a href="#5__73__0">5.73.0</a>, <a href="#5__72__5">5.72.5</a>, <a href="#5__72__4">5.72.4</a>, <a href="#5__72__3">5.72.3</a>, <a href="#5__72__2">5.72.2</a>, <a href="#5__72__1">5.72.1</a>, <a href="#5__72__0">5.72.0</a>, <a href="#5__71__1">5.71.1</a>, <a href="#5__71__0">5.71.0</a>, <a href="#5__70__36">5.70.36</a>, <a href="#5__70__35">5.70.35</a>, <a href="#5__70__34">5.70.34</a>, <a href="#5__70__33">5.70.33</a>, <a href="#5__70__32">5.70.32</a>, <a href="#5__70__31">5.70.31</a>, <a href="#5__70__30">5.70.30</a>, <a href="#5__70__29">5.70.29</a>, <a href="#5__70__28">5.70.28</a>, <a href="#5__70__27">5.70.27</a>, <a href="#5__70__26">5.70.26</a>, <a href="#5__70__25">5.70.25</a>, <a href="#5__70__24">5.70.24</a>, <a href="#5__70__23">5.70.23</a>, <a href="#5__70__22">5.70.22</a>, <a href="#5__70__21">5.70.21</a>, <a href="#5__70__20">5.70.20</a>, <a href="#5__70__19">5.70.19</a>, <a href="#5__70__18">5.70.18</a>, <a href="#5__70__16">5.70.16</a>, <a href="#5__70__15">5.70.15</a>, <a href="#5__70__14">5.70.14</a>, <a href="#5__70__13">5.70.13</a>, <a href="#5__70__12">5.70.12</a>, <a href="#5__70__11">5.70.11</a>, <a href="#5__70__10">5.70.10</a>, <a href="#5__70__9">5.70.9</a>, <a href="#5__70__8">5.70.8</a>, <a href="#5__70__7">5.70.7</a>, <a href="#5__70__6">5.70.6</a>, <a href="#5__70__5">5.70.5</a>, <a href="#5__70__4">5.70.4</a>, <a href="#5__70__3">5.70.3</a>, <a href="#5__70__2">5.70.2</a>, <a href="#5__70__1">5.70.1</a>, <a href="#5__70__0">5.70.0</a>, <a href="#5__69__4">5.69.4</a>, <a href="#5__69__3">5.69.3</a>, <a href="#5__69__2">5.69.2</a>, <a href="#5__69__0">5.69.0</a>, <a href="#5__68__0">5.68.0</a>, <a href="#5__67__2">5.67.2</a>, <a href="#5__67__0">5.67.0</a>, <a href="#5__66__0">5.66.0</a>, <a href="#5__65__14">5.65.14</a>, <a href="#5__65__12">5.65.12</a>, <a href="#5__65__11">5.65.11</a>, <a href="#5__65__10">5.65.10</a>, <a href="#5__65__9">5.65.9</a>, <a href="#5__65__8">5.65.8</a>, <a href="#5__65__7">5.65.7</a>, <a href="#5__65__5">5.65.5</a>, <a href="#5__65__4">5.65.4</a>, <a href="#5__65__3">5.65.3</a>, <a href="#5__65__2">5.65.2</a>, <a href="#5__65__1">5.65.1</a>, <a href="#5__65__0">5.65.0</a>, <a href="#5__64__2">5.64.2</a>, <a href="#5__64__1">5.64.1</a>, <a href="#5__64__0">5.64.0</a>, <a href="#5__63__0">5.63.0</a>, <a href="#5__62__0">5.62.0</a>, <a href="#5__61__4">5.61.4</a>, <a href="#5__61__3">5.61.3</a>, <a href="#5__61__2">5.61.2</a>, <a href="#5__61__1">5.61.1</a>, <a href="#5__60__4">5.60.4</a>, <a href="#5__60__3">5.60.3</a>, <a href="#5__60__0">5.60.0</a>, <a href="#5__59__1">5.59.1</a>, <a href="#5__59__0">5.59.0</a>, <a href="#5__58__1">5.58.1</a>, <a href="#5__58__0">5.58.0</a>, <a href="#5__57__1">5.57.1</a>, <a href="#5__57__0">5.57.0</a>, <a href="#5__56__2">5.56.2</a>, <a href="#5__56__1">5.56.1</a>, <a href="#5__55__0">5.55.0</a>, <a href="#5__54__0">5.54.0</a>, <a href="#5__53__0">5.53.0</a>, <a href="#5__52__0">5.52.0</a>, <a href="#5__51__0">5.51.0</a>, <a href="#5__50__0">5.50.0</a>, <a href="#5__49__0">5.49.0</a>, <a href="#5__48__0">5.48.0</a>, <a href="#5__47__0">5.47.0</a>, <a href="#5__46__0">5.46.0</a>, <a href="#5__45__2">5.45.2</a>, <a href="#5__45__0">5.45.0</a>, <a href="#5__44__0">5.44.0</a>, <a href="#5__43__2">5.43.2</a>, <a href="#v5__42__0">v5.42.0</a>, <a href="#5__42__0">5.42.0</a>, <a href="#v5__41__15">v5.41.15</a>, <a href="#5__41__15">5.41.15</a>, <a href="#v5__41__14">v5.41.14</a>, <a href="#5__41__14">5.41.14</a>, <a href="#v5__41__12">v5.41.12</a>, <a href="#5__41__12">5.41.12</a>, <a href="#v5__41__10">v5.41.10</a>, <a href="#5__41__10">5.41.10</a>, <a href="#v5__41__9">v5.41.9</a>, <a href="#5__41__9">5.41.9</a>, <a href="#v5__41__8">v5.41.8</a>, <a href="#5__41__8">5.41.8</a>, <a href="#v5__41__7">v5.41.7</a>, <a href="#v5__41__2">v5.41.2</a>, <a href="#v5__41__1">v5.41.1</a>, <a href="#v5__32__14">v5.32.14</a>, <a href="#5__14__0">5.14.0</a>, <a href="#5__12__0">5.12.0</a>, <a href="#5__11__12">5.11.12</a>, <a href="#5__11__1">5.11.1</a>, <a href="#5__11__0">5.11.0</a>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## [Untagged] - 5/12/2026 7:14:03 AM
|
|
26
|
-
|
|
27
|
-
Commit [9276011491437258fbde3e919ec657d29f4ea62e](https://github.com/StoneCypher/jssm/commit/9276011491437258fbde3e919ec657d29f4ea62e)
|
|
28
|
-
|
|
29
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
30
|
-
|
|
31
|
-
* fix(grammar): integer literals capture all digits, not just the first
|
|
32
|
-
* Three PEG rules — IntegerLiteral, Stripe, Cycle — captured only the
|
|
33
|
-
first digit of multi-digit input. Root cause: PEG.js's default
|
|
34
|
-
return value for a `NonZeroDigit DecimalDigit*` sequence is an array
|
|
35
|
-
of matches, which stringifies with commas at parseInt time (e.g.
|
|
36
|
-
`["1", ["2","3"]].toString() === "1,2,3"` → parseInt stops at the
|
|
37
|
-
comma → returns 1). Switched all three rules to `$(...)` text
|
|
38
|
-
capture so they return the matched substring directly.
|
|
39
|
-
* Visible impact:
|
|
40
|
-
- `fsl_version: 10.0.0;` returned `{major:1, full:"10.0.0"}`;
|
|
41
|
-
now correctly `{major:10, full:"10.0.0"}`.
|
|
42
|
-
- `+|123` returned `{key:'stripe', value:12}`; now `{value:123}`.
|
|
43
|
-
- `+1234` returned `{key:'cycle', value:12}`; now `{value:1234}`.
|
|
44
|
-
* Also adds:
|
|
45
|
-
- src/ts/tests/numeric.stoch.ts: 35 property-based tests for §3
|
|
46
|
-
(Numeric layer) plus the §6 Stripe/Cycle integer-literal slice.
|
|
47
|
-
Lifts grammar stoch coverage from 1/14 sections to 2/14. Surfaced
|
|
48
|
-
the two bugs fixed in this commit.
|
|
49
|
-
- testPathIgnorePatterns in each jest-*.config.cjs to exclude
|
|
50
|
-
`.claude/worktrees/` so concurrent agent worktrees don't
|
|
51
|
-
contaminate the host's test runs.
|
|
52
|
-
- notes/dragons-egg.md: entry for numeric.stoch.ts with bug-fix
|
|
53
|
-
narrative.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
## [Untagged] - 5/12/2026 6:52:39 AM
|
|
63
|
-
|
|
64
|
-
Commit [a253dd558bdb6e82020b069daaba9e222e4cb355](https://github.com/StoneCypher/jssm/commit/a253dd558bdb6e82020b069daaba9e222e4cb355)
|
|
65
|
-
|
|
66
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
67
|
-
|
|
68
|
-
* chore(test): remove jest, @swc/jest, @types/jest, jest-json-reporter2, jest configs and scripts
|
|
69
|
-
* All test suites are running on vitest. Drop:
|
|
70
|
-
- the four `jest-*.config.cjs` files
|
|
71
|
-
- the eleven `jest-*` npm scripts
|
|
72
|
-
- devDependencies `jest`, `@swc/jest`, `@swc/core` (only used by
|
|
73
|
-
@swc/jest), `@types/jest`, `jest-json-reporter2`, and
|
|
74
|
-
`jest-environment-jsdom`. jsdom itself is kept since vitest uses it
|
|
75
|
-
directly for `// @vitest-environment jsdom` blocks.
|
|
76
|
-
* npm install reports 296 packages removed.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
## [Untagged] - 5/12/2026 6:52:15 AM
|
|
86
|
-
|
|
87
|
-
Commit [c6d821b33b3d6269ab6569a0c2e7ec7ef40637d8](https://github.com/StoneCypher/jssm/commit/c6d821b33b3d6269ab6569a0c2e7ec7ef40637d8)
|
|
88
|
-
|
|
89
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
90
|
-
|
|
91
|
-
* docs(progress): scaffold weekly investor-facing progress log
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
## [Untagged] - 5/12/2026 6:50:41 AM
|
|
101
|
-
|
|
102
|
-
Commit [af56aae6dc85ec5306bbd6d7e0098b963fce86a8](https://github.com/StoneCypher/jssm/commit/af56aae6dc85ec5306bbd6d7e0098b963fce86a8)
|
|
103
|
-
|
|
104
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
105
|
-
|
|
106
|
-
* ci(workflow): switch unicode jobs to vitest
|
|
107
|
-
* Updates each `unicode-*` job in nodejs.yml to invoke the new
|
|
108
|
-
`vitest-unicode-*` scripts instead of `jest-unicode-*`. The main
|
|
109
|
-
`build` job goes through `npm run ci_build` -> `npm run test`, which
|
|
110
|
-
already calls the new `vitest` script, so no change is needed there.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
## [Untagged] - 5/12/2026 6:50:08 AM
|
|
120
|
-
|
|
121
|
-
Commit [83aaf720e938e7494788b55123a703c3d981a026](https://github.com/StoneCypher/jssm/commit/83aaf720e938e7494788b55123a703c3d981a026)
|
|
122
|
-
|
|
123
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
124
|
-
|
|
125
|
-
* feat(test): port jest-unicode to vitest.unicode.config.ts
|
|
126
|
-
* Adds vitest.unicode.config.ts mirroring jest-unicode.config.cjs. The
|
|
127
|
-
five npm scripts (`vitest-unicode-atom`, `-string`, `-atom-label`,
|
|
128
|
-
`-string-label`, `-action`) each invoke `vitest run` against a single
|
|
129
|
-
`*.uspec.ts` file, matching the equivalent jest-unicode-* scripts.
|
|
130
|
-
* Note: the old jest-unicode-atom-label and -string-label scripts both
|
|
131
|
-
incorrectly pointed at unicode-atoms.uspec.ts (a pre-existing bug from
|
|
132
|
-
when the unicode suites were split). The new vitest scripts route each
|
|
133
|
-
script to its correctly named file.
|
|
134
|
-
* Sample run: vitest-unicode-atom -> 320 tests pass, ~260s wall.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
## [Untagged] - 5/12/2026 6:49:56 AM
|
|
144
|
-
|
|
145
|
-
Commit [7773fa1da33821c898627e44ba682eb26c3bf625](https://github.com/StoneCypher/jssm/commit/7773fa1da33821c898627e44ba682eb26c3bf625)
|
|
146
|
-
|
|
147
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
148
|
-
|
|
149
|
-
* feat(test): port jest-dragon to vitest.dragon.config.ts
|
|
150
|
-
* Mirrors jest-dragon.config.cjs: glob `**/*.maximal.ts`, coverage to
|
|
151
|
-
coverage/ksd/, metrics.json via the vitest reporter.
|
|
152
|
-
* Note: the only `*.maximal.ts` file (kitchen_sink_dragon.maximal.ts)
|
|
153
|
-
references `make_mulberry_rand` from `jssm_util`, which was renamed to
|
|
154
|
-
splitmix32 in commit 1401a08 and never updated. The suite already
|
|
155
|
-
failed at collection time under jest; vitest preserves the same failure
|
|
156
|
-
mode. The dragon suite predates this conversion and is left as-is.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
## [Untagged] - 5/12/2026 6:49:44 AM
|
|
166
|
-
|
|
167
|
-
Commit [8255702d4820e6afcecc9b240a1aed591c7ad02c](https://github.com/StoneCypher/jssm/commit/8255702d4820e6afcecc9b240a1aed591c7ad02c)
|
|
168
|
-
|
|
169
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
170
|
-
|
|
171
|
-
* feat(test): port jest-stoch to vitest.stoch.config.ts
|
|
172
|
-
* - Adds vitest.stoch.config.ts mirroring jest-stoch.config.cjs (same
|
|
173
|
-
coverage ignores, zero thresholds, metrics.json into coverage/stoch/).
|
|
174
|
-
- Fixes seq.stoch.ts: fast-check@2's `Property.run` treats any predicate
|
|
175
|
-
return value that is not `null`, `undefined`, or `true` as failure.
|
|
176
|
-
Under jest `expect(...).toBe(...)` returned `undefined`; under vitest
|
|
177
|
-
the same chain returns the assertion-chain object, which fast-check
|
|
178
|
-
then reports as `Property failed by returning false`. Prefix each
|
|
179
|
-
predicate `expect()` with `void` so the implicit return is undefined
|
|
180
|
-
on both runners.
|
|
181
|
-
* After:
|
|
182
|
-
jest-stoch: 9 tests / ~12s self
|
|
183
|
-
vitest-stoch: 9 tests / <1s self / ~6s wall
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
## [Untagged] - 5/12/2026 6:49:28 AM
|
|
193
|
-
|
|
194
|
-
Commit [b8f224a863c9862fea06999fc2efefbfcb399a71](https://github.com/StoneCypher/jssm/commit/b8f224a863c9862fea06999fc2efefbfcb399a71)
|
|
195
|
-
|
|
196
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
197
|
-
|
|
198
|
-
* feat(test): port jest-spec to vitest.spec.config.ts
|
|
199
|
-
* - Adds vitest.spec.config.ts mirroring jest-spec.config.cjs (same coverage
|
|
200
|
-
ignores, same 100% thresholds, same metrics.json output via the new
|
|
201
|
-
reporter).
|
|
202
|
-
- Adds vitest.setup.ts that aliases `jest` -> `vi` on globalThis so the
|
|
203
|
-
existing `jest.fn(...)` calls in hooks.spec.ts / posthooks.spec.ts keep
|
|
204
|
-
working unchanged.
|
|
205
|
-
- Adds src/buildjs/vitest_metrics_reporter.cjs, a small custom reporter
|
|
206
|
-
that emits the same `metrics.json` shape jest-json-reporter2 did so
|
|
207
|
-
make_readme.cjs keeps working.
|
|
208
|
-
- viz_svg_element.spec.ts pragma swapped to @vitest-environment.
|
|
209
|
-
- properties.spec.ts had four `describe()` blocks containing only
|
|
210
|
-
`expect()` calls (no `test()`). Jest accidentally ran those at
|
|
211
|
-
collection time, interleaved with the surrounding `traffic_light.go()`
|
|
212
|
-
calls. Vitest defers the describe body, so all of the go()s ran first
|
|
213
|
-
and every assertion saw the terminal state. Snapshot state/props at
|
|
214
|
-
collection time, then assert the snapshot inside real `test()` calls.
|
|
215
|
-
- after_mapping.spec.ts had two more orphan describes with the same
|
|
216
|
-
issue; promoted to `test()`.
|
|
217
|
-
* After the conversion:
|
|
218
|
-
jest-spec: 5285 tests (5251 pass + 34 todo), ~41s self
|
|
219
|
-
vitest-spec: 5291 tests (5257 pass + 34 todo), ~14s self / ~38s wall
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
## [Untagged] - 5/12/2026 6:48:42 AM
|
|
229
|
-
|
|
230
|
-
Commit [22db66d28fbd1e5f8ef6a8ddcc853a0ff9c85dcf](https://github.com/StoneCypher/jssm/commit/22db66d28fbd1e5f8ef6a8ddcc853a0ff9c85dcf)
|
|
231
|
-
|
|
232
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
233
|
-
|
|
234
|
-
* chore(test): add vitest and @vitest/coverage-v8 as devDependencies
|
|
235
|
-
* First step of the Jest -> Vitest conversion. Adds vitest@^2.1.9 and the
|
|
236
|
-
v8 coverage adapter so both runners can coexist while the rest of the
|
|
237
|
-
configs are migrated.
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
## [Untagged] - 5/12/2026 6:22:05 AM
|
|
247
|
-
|
|
248
|
-
Commit [bd1be3bf09a533b11e5ed3e6fa29f9e8db90d560](https://github.com/StoneCypher/jssm/commit/bd1be3bf09a533b11e5ed3e6fa29f9e8db90d560)
|
|
249
|
-
|
|
250
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
251
|
-
|
|
252
|
-
* test(stoch): add arrow_decorations coverage + dragons-egg tracker
|
|
253
|
-
* 11 property-based tests asserting the free-ordered arrow-decoration
|
|
254
|
-
grammar (commit 1acbc62) is permutation-invariant on both sides of
|
|
255
|
-
an arrow and rejects per-kind duplicates. Lifts grammar stoch
|
|
256
|
-
coverage from 0/14 sections to 1/14.
|
|
257
|
-
* - notes/dragons-egg.md: living tracker so each new stoch test is
|
|
258
|
-
documented for the future dragon-tier pass.
|
|
259
|
-
- src/buildjs/ci_profile.cjs (+ ci_profile npm script): measure
|
|
260
|
-
wall-clock per CI phase for data-driven test-runner decisions.
|
|
261
|
-
- src/doc_md/todo.md: LLM-consumer instructions + image-CLI gallery
|
|
262
|
-
entries.
|
|
263
|
-
- .github/workflows/nodejs.yml: align unicode-atoms job to Node 24.
|
package/CLAUDE.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
This is a typescript project that creates a library with a function, as well as a CLI.
|
|
2
|
-
|
|
3
|
-
Please write your code documentation in DocBlock.
|
|
4
|
-
|
|
5
|
-
When you create a function, please also create tests and code documentation, and update the base_README.
|
|
6
|
-
|
|
7
|
-
When you alter a function, please keep the code documentation docblock up to date, as well as the base_README.
|
|
8
|
-
|
|
9
|
-
Please do not attempt to change the package version unless you have been asked to. Being in /sc-commit counts as being asked to.
|
|
10
|
-
|
|
11
|
-
Please do not attempt to push code unless you have been asked to. Always ask before pushing code, even if you have been instructed to.
|