jssm 5.86.1 → 5.86.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/CHANGELOG.md +59 -56
- package/README.md +2 -2
- package/dist/es6/jssm.d.ts +37 -4
- package/dist/es6/jssm.js +90 -4
- package/dist/es6/jssm_compiler.js +6 -4
- package/dist/es6/jssm_types.d.ts +4 -1
- package/dist/es6/version.js +1 -1
- package/dist/jssm.es5.cjs.js +1 -1
- package/dist/jssm.es5.iife.js +1 -1
- package/jssm.d.ts +37 -4
- package/jssm_types.d.ts +4 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
1070 merges; 176 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ All notable changes to this project will be documented in this file.
|
|
|
12
12
|
|
|
13
13
|
Published tags:
|
|
14
14
|
|
|
15
|
-
<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>
|
|
15
|
+
<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
16
|
|
|
17
17
|
|
|
18
18
|
|
|
@@ -22,7 +22,62 @@ Published tags:
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
<a name="5__86__2" />
|
|
26
|
+
|
|
27
|
+
## [5.86.2] - 11/12/2022 12:49:23 PM
|
|
28
|
+
|
|
29
|
+
Commit [a033eb38e784cbc5c6bf15bef576b69bb935f9b2](https://github.com/StoneCypher/jssm/commit/a033eb38e784cbc5c6bf15bef576b69bb935f9b2)
|
|
30
|
+
|
|
31
|
+
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
32
|
+
|
|
33
|
+
Merges [48b4f92, 99a5fd6]
|
|
34
|
+
|
|
35
|
+
* Merge pull request #548 from StoneCypher/AllowsOverrideInCompiler
|
|
36
|
+
* allows override in compiler, constructor config to allow/disallow override, getters for override, cfg override, machine override
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## [Untagged] - 11/12/2022 12:44:20 PM
|
|
46
|
+
|
|
47
|
+
Commit [99a5fd66ee5a342814cf34d89fb6dccc2f4ac7e9](https://github.com/StoneCypher/jssm/commit/99a5fd66ee5a342814cf34d89fb6dccc2f4ac7e9)
|
|
48
|
+
|
|
49
|
+
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
50
|
+
|
|
51
|
+
* allows override in compiler, constructor config to allow/disallow override, getters for override, cfg override, machine override
|
|
52
|
+
* fixes StoneCypher/fsl#1225, fixes StoneCypher/fsl#1227, fixes StoneCypher/fsl#1229, fixes StoneCypher/fsl#1230, fixes StoneCypher/fsl#1231
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<a name="5__86__1" />
|
|
62
|
+
|
|
63
|
+
## [5.86.1] - 11/11/2022 6:41:15 PM
|
|
64
|
+
|
|
65
|
+
Commit [48b4f928eb1a4597122b64e6eea38a57c19a112f](https://github.com/StoneCypher/jssm/commit/48b4f928eb1a4597122b64e6eea38a57c19a112f)
|
|
66
|
+
|
|
67
|
+
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
68
|
+
|
|
69
|
+
* Allow override attribute in grammar, fixes StoneCypher/fsl#1226
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
<a name="5__86__0" />
|
|
79
|
+
|
|
80
|
+
## [5.86.0] - 11/11/2022 6:22:48 PM
|
|
26
81
|
|
|
27
82
|
Commit [31077c9256ee31f80398460b3af95bc65a8dbc3a](https://github.com/StoneCypher/jssm/commit/31077c9256ee31f80398460b3af95bc65a8dbc3a)
|
|
28
83
|
|
|
@@ -138,56 +193,4 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
138
193
|
Merges [c047caa, 090db83]
|
|
139
194
|
|
|
140
195
|
* Merge pull request #544 from StoneCypher/PullCompilerOutIntoModule
|
|
141
|
-
* Pull compiler out into a module
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
## [Untagged] - 9/12/2022 9:06:27 PM
|
|
151
|
-
|
|
152
|
-
Commit [090db831d8df370b0937d2d37e6372b6df030481](https://github.com/StoneCypher/jssm/commit/090db831d8df370b0937d2d37e6372b6df030481)
|
|
153
|
-
|
|
154
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
155
|
-
|
|
156
|
-
* Pull compiler out into a module
|
|
157
|
-
* Fixes StoneCypher/fsl#1207
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
<a name="5__85__8" />
|
|
167
|
-
|
|
168
|
-
## [5.85.8] - 9/12/2022 8:26:10 PM
|
|
169
|
-
|
|
170
|
-
Commit [c047caac3f9d9bb24a9c0b517983088eb8ee2e4a](https://github.com/StoneCypher/jssm/commit/c047caac3f9d9bb24a9c0b517983088eb8ee2e4a)
|
|
171
|
-
|
|
172
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
173
|
-
|
|
174
|
-
Merges [581fd8d, 013999a]
|
|
175
|
-
|
|
176
|
-
* Merge pull request #543 from StoneCypher/PullArrowsOutIntoModules
|
|
177
|
-
* Pull arrows out into modules
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
## [Untagged] - 9/12/2022 8:18:05 PM
|
|
187
|
-
|
|
188
|
-
Commit [013999a77ce43ceed5eb982754ffe480fdddf159](https://github.com/StoneCypher/jssm/commit/013999a77ce43ceed5eb982754ffe480fdddf159)
|
|
189
|
-
|
|
190
|
-
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
191
|
-
|
|
192
|
-
* Pull arrows out into modules
|
|
193
|
-
* Fixes StoneCypher/fsl#1206
|
|
196
|
+
* Pull compiler out into a module
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ 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.86.
|
|
21
|
+
* Generated for version 5.86.3 at 11/12/2022, 6:07:03 PM
|
|
22
22
|
|
|
23
23
|
-->
|
|
24
24
|
# jssm
|
|
@@ -29,7 +29,7 @@ share online. Easy to embed.
|
|
|
29
29
|
|
|
30
30
|
Readable, useful state machines as one-liner strings.
|
|
31
31
|
|
|
32
|
-
***4,
|
|
32
|
+
***4,913 tests*** run 5,804 times. 4,904 specs with 100.0% coverage, 9 fuzz tests with 13.2% coverage. With 2,824 lines, that's about 1.7 tests per line, or 2.1 generated tests per line.
|
|
33
33
|
|
|
34
34
|
***Meet your new state machine library.***
|
|
35
35
|
|
package/dist/es6/jssm.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare type StateType = string;
|
|
2
2
|
import { JssmGenericState, JssmGenericConfig, JssmStateConfig, JssmTransition, JssmTransitionList, // JssmTransitionRule,
|
|
3
|
-
JssmMachineInternalState, JssmStateDeclaration, JssmStateStyleKeyList, JssmLayout, JssmHistory, JssmSerialization, FslDirection, FslDirections, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult } from './jssm_types';
|
|
3
|
+
JssmMachineInternalState, JssmAllowsOverride, JssmStateDeclaration, JssmStateStyleKeyList, JssmLayout, JssmHistory, JssmSerialization, FslDirection, FslDirections, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult } from './jssm_types';
|
|
4
4
|
import { arrow_direction, arrow_left_kind, arrow_right_kind } from './jssm_arrow';
|
|
5
5
|
import { compile, make, wrap_parse } from './jssm_compiler';
|
|
6
6
|
import { seq, unique, find_repeated, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key } from './jssm_util';
|
|
@@ -74,7 +74,8 @@ declare class Machine<mDT> {
|
|
|
74
74
|
_has_post_exit_hooks: boolean;
|
|
75
75
|
_has_post_global_action_hooks: boolean;
|
|
76
76
|
_has_post_transition_hooks: boolean;
|
|
77
|
-
|
|
77
|
+
_code_allows_override: JssmAllowsOverride;
|
|
78
|
+
_config_allows_override: JssmAllowsOverride;
|
|
78
79
|
_post_hooks: Map<string, HookHandler<mDT>>;
|
|
79
80
|
_post_named_hooks: Map<string, HookHandler<mDT>>;
|
|
80
81
|
_post_entry_hooks: Map<string, HookHandler<mDT>>;
|
|
@@ -98,7 +99,7 @@ declare class Machine<mDT> {
|
|
|
98
99
|
_start_state_style: JssmStateConfig;
|
|
99
100
|
_end_state_style: JssmStateConfig;
|
|
100
101
|
_state_labels: Map<string, string>;
|
|
101
|
-
constructor({ start_states, end_states, complete, transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, property_definition, state_property, fsl_version, dot_preamble, arrange_declaration, arrange_start_declaration, arrange_end_declaration, theme, flow, graph_layout, instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config }: JssmGenericConfig<StateType, mDT>);
|
|
102
|
+
constructor({ start_states, end_states, complete, transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, property_definition, state_property, fsl_version, dot_preamble, arrange_declaration, arrange_start_declaration, arrange_end_declaration, theme, flow, graph_layout, instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config, allows_override, config_allows_override }: JssmGenericConfig<StateType, mDT>);
|
|
102
103
|
/********
|
|
103
104
|
*
|
|
104
105
|
* Internal method for fabricating states. Not meant for external use.
|
|
@@ -484,12 +485,24 @@ declare class Machine<mDT> {
|
|
|
484
485
|
list_actions(): Array<StateType>;
|
|
485
486
|
get uses_actions(): boolean;
|
|
486
487
|
get uses_forced_transitions(): boolean;
|
|
488
|
+
/*********
|
|
489
|
+
*
|
|
490
|
+
* Check if the code that built the machine allows overriding state and data.
|
|
491
|
+
*
|
|
492
|
+
*/
|
|
493
|
+
get code_allows_override(): JssmAllowsOverride;
|
|
494
|
+
/*********
|
|
495
|
+
*
|
|
496
|
+
* Check if the machine config allows overriding state and data.
|
|
497
|
+
*
|
|
498
|
+
*/
|
|
499
|
+
get config_allows_override(): JssmAllowsOverride;
|
|
487
500
|
/*********
|
|
488
501
|
*
|
|
489
502
|
* Check if a machine allows overriding state and data.
|
|
490
503
|
*
|
|
491
504
|
*/
|
|
492
|
-
get allows_override():
|
|
505
|
+
get allows_override(): JssmAllowsOverride;
|
|
493
506
|
all_themes(): FslTheme[];
|
|
494
507
|
get themes(): FslTheme | FslTheme[];
|
|
495
508
|
set themes(to: FslTheme | FslTheme[]);
|
|
@@ -656,6 +669,26 @@ declare class Machine<mDT> {
|
|
|
656
669
|
post_hook_entry(to: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
657
670
|
post_hook_exit(from: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
658
671
|
edges_between(from: string, to: string): JssmTransition<StateType, mDT>[];
|
|
672
|
+
/*********
|
|
673
|
+
*
|
|
674
|
+
* Replace the current state and data with no regard to the graph.
|
|
675
|
+
*
|
|
676
|
+
* ```typescript
|
|
677
|
+
* import { sm } from 'jssm';
|
|
678
|
+
*
|
|
679
|
+
* const machine = sm`a -> b -> c;`;
|
|
680
|
+
* console.log( machine.state() ); // 'a'
|
|
681
|
+
*
|
|
682
|
+
* machine.go('b');
|
|
683
|
+
* machine.go('c');
|
|
684
|
+
* console.log( machine.state() ); // 'c'
|
|
685
|
+
*
|
|
686
|
+
* machine.override('a');
|
|
687
|
+
* console.log( machine.state() ); // 'a'
|
|
688
|
+
* ```
|
|
689
|
+
*
|
|
690
|
+
*/
|
|
691
|
+
override(newState: StateType, newData?: mDT | undefined): void;
|
|
659
692
|
transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
|
|
660
693
|
/*********
|
|
661
694
|
*
|
package/dist/es6/jssm.js
CHANGED
|
@@ -126,7 +126,7 @@ function state_style_condense(jssk) {
|
|
|
126
126
|
// TODO add a lotta docblock here
|
|
127
127
|
class Machine {
|
|
128
128
|
// whargarbl this badly needs to be broken up, monolith master
|
|
129
|
-
constructor({ start_states, end_states = [], complete = [], transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, property_definition, state_property, fsl_version, dot_preamble = undefined, arrange_declaration = [], arrange_start_declaration = [], arrange_end_declaration = [], theme = ['default'], flow = 'down', graph_layout = 'dot', instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config }) {
|
|
129
|
+
constructor({ start_states, end_states = [], complete = [], transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, property_definition, state_property, fsl_version, dot_preamble = undefined, arrange_declaration = [], arrange_start_declaration = [], arrange_end_declaration = [], theme = ['default'], flow = 'down', graph_layout = 'dot', instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config, allows_override, config_allows_override }) {
|
|
130
130
|
this._instance_name = instance_name;
|
|
131
131
|
this._state = start_states[0];
|
|
132
132
|
this._states = new Map();
|
|
@@ -183,7 +183,11 @@ class Machine {
|
|
|
183
183
|
this._has_post_global_action_hooks = false;
|
|
184
184
|
this._has_post_transition_hooks = true;
|
|
185
185
|
// no need for a boolean for single hooks, just test for undefinedness
|
|
186
|
-
this.
|
|
186
|
+
this._code_allows_override = allows_override;
|
|
187
|
+
this._config_allows_override = config_allows_override;
|
|
188
|
+
if ((allows_override === false) && (config_allows_override === true)) {
|
|
189
|
+
throw new JssmError(undefined, "Code specifies no override, but config tries to permit; config may not be less strict than code");
|
|
190
|
+
}
|
|
187
191
|
this._post_hooks = new Map();
|
|
188
192
|
this._post_named_hooks = new Map();
|
|
189
193
|
this._post_entry_hooks = new Map();
|
|
@@ -901,13 +905,55 @@ class Machine {
|
|
|
901
905
|
get uses_forced_transitions() {
|
|
902
906
|
return this._has_forced_transitions;
|
|
903
907
|
}
|
|
908
|
+
/*********
|
|
909
|
+
*
|
|
910
|
+
* Check if the code that built the machine allows overriding state and data.
|
|
911
|
+
*
|
|
912
|
+
*/
|
|
913
|
+
get code_allows_override() {
|
|
914
|
+
return this._code_allows_override;
|
|
915
|
+
}
|
|
916
|
+
/*********
|
|
917
|
+
*
|
|
918
|
+
* Check if the machine config allows overriding state and data.
|
|
919
|
+
*
|
|
920
|
+
*/
|
|
921
|
+
get config_allows_override() {
|
|
922
|
+
return this._config_allows_override;
|
|
923
|
+
}
|
|
904
924
|
/*********
|
|
905
925
|
*
|
|
906
926
|
* Check if a machine allows overriding state and data.
|
|
907
927
|
*
|
|
908
928
|
*/
|
|
909
929
|
get allows_override() {
|
|
910
|
-
|
|
930
|
+
// code false? config true, throw. config false, false. config undefined, false.
|
|
931
|
+
if (this._code_allows_override === false) {
|
|
932
|
+
/* istanbul ignore next */
|
|
933
|
+
if (this._config_allows_override === true) {
|
|
934
|
+
/* istanbul ignore next */
|
|
935
|
+
throw new JssmError(this, "Code specifies no override, but config tries to permit; config may not be less strict than code; should be unreachable");
|
|
936
|
+
}
|
|
937
|
+
else {
|
|
938
|
+
return false;
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
// code true? config true, true. config false, false. config undefined, true.
|
|
942
|
+
if (this._code_allows_override === true) {
|
|
943
|
+
if (this._config_allows_override === false) {
|
|
944
|
+
return false;
|
|
945
|
+
}
|
|
946
|
+
else {
|
|
947
|
+
return true;
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
// code must be undefined. config false, false. config true, true. config undefined, false.
|
|
951
|
+
if (this._config_allows_override === true) {
|
|
952
|
+
return true;
|
|
953
|
+
}
|
|
954
|
+
else {
|
|
955
|
+
return false;
|
|
956
|
+
}
|
|
911
957
|
}
|
|
912
958
|
all_themes() {
|
|
913
959
|
return [...theme_mapping.keys()]; // constructor sets this to "default" otherwise
|
|
@@ -1379,6 +1425,39 @@ class Machine {
|
|
|
1379
1425
|
edges_between(from, to) {
|
|
1380
1426
|
return this._edges.filter(edge => ((edge.from === from) && (edge.to === to)));
|
|
1381
1427
|
}
|
|
1428
|
+
/*********
|
|
1429
|
+
*
|
|
1430
|
+
* Replace the current state and data with no regard to the graph.
|
|
1431
|
+
*
|
|
1432
|
+
* ```typescript
|
|
1433
|
+
* import { sm } from 'jssm';
|
|
1434
|
+
*
|
|
1435
|
+
* const machine = sm`a -> b -> c;`;
|
|
1436
|
+
* console.log( machine.state() ); // 'a'
|
|
1437
|
+
*
|
|
1438
|
+
* machine.go('b');
|
|
1439
|
+
* machine.go('c');
|
|
1440
|
+
* console.log( machine.state() ); // 'c'
|
|
1441
|
+
*
|
|
1442
|
+
* machine.override('a');
|
|
1443
|
+
* console.log( machine.state() ); // 'a'
|
|
1444
|
+
* ```
|
|
1445
|
+
*
|
|
1446
|
+
*/
|
|
1447
|
+
override(newState, newData) {
|
|
1448
|
+
if (this.allows_override) {
|
|
1449
|
+
if (this._states.has(newState)) {
|
|
1450
|
+
this._state = newState;
|
|
1451
|
+
this._data = newData;
|
|
1452
|
+
}
|
|
1453
|
+
else {
|
|
1454
|
+
throw new JssmError(this, `Cannot override state to "${newState}", a state that does not exist`);
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
else {
|
|
1458
|
+
throw new JssmError(this, "Code specifies no override, but config tries to permit; config may not be less strict than code");
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1382
1461
|
transition_impl(newStateOrAction, newData, wasForced, wasAction) {
|
|
1383
1462
|
// TODO the forced-ness behavior needs to be cleaned up a lot here
|
|
1384
1463
|
// TODO all the callbacks are wrong on forced, action, etc
|
|
@@ -2198,7 +2277,14 @@ function sm(template_strings, ...remainder /* , arguments */) {
|
|
|
2198
2277
|
function from(MachineAsString, ExtraConstructorFields) {
|
|
2199
2278
|
const to_decorate = make(MachineAsString);
|
|
2200
2279
|
if (ExtraConstructorFields !== undefined) {
|
|
2201
|
-
Object.keys(ExtraConstructorFields).map(key =>
|
|
2280
|
+
Object.keys(ExtraConstructorFields).map(key => {
|
|
2281
|
+
if (key === 'allows_override') {
|
|
2282
|
+
to_decorate['config_allows_override'] = ExtraConstructorFields['allows_override'];
|
|
2283
|
+
}
|
|
2284
|
+
else {
|
|
2285
|
+
to_decorate[key] = ExtraConstructorFields[key];
|
|
2286
|
+
}
|
|
2287
|
+
});
|
|
2202
2288
|
}
|
|
2203
2289
|
return new Machine(to_decorate);
|
|
2204
2290
|
}
|
|
@@ -192,9 +192,10 @@ function compile_rule_handler(rule) {
|
|
|
192
192
|
'graph_layout', 'start_states', 'end_states', 'machine_name', 'machine_version',
|
|
193
193
|
'machine_comment', 'machine_author', 'machine_contributor', 'machine_definition',
|
|
194
194
|
'machine_reference', 'machine_license', 'fsl_version', 'state_config', 'theme',
|
|
195
|
-
'flow', 'dot_preamble', '
|
|
196
|
-
'
|
|
197
|
-
'
|
|
195
|
+
'flow', 'dot_preamble', 'allows_override', 'default_state_config',
|
|
196
|
+
'default_start_state_config', 'default_end_state_config',
|
|
197
|
+
'default_hooked_state_config', 'default_active_state_config',
|
|
198
|
+
'default_terminal_state_config'
|
|
198
199
|
];
|
|
199
200
|
if (tautologies.includes(rule.key)) {
|
|
200
201
|
return { agg_as: rule.key, val: rule.value };
|
|
@@ -284,6 +285,7 @@ function compile(tree) {
|
|
|
284
285
|
default_terminal_state_config: [],
|
|
285
286
|
default_start_state_config: [],
|
|
286
287
|
default_end_state_config: [],
|
|
288
|
+
allows_override: []
|
|
287
289
|
};
|
|
288
290
|
tree.map((tr) => {
|
|
289
291
|
const rule = compile_rule_handler(tr), agg_as = rule.agg_as, val = rule.val; // TODO FIXME no any
|
|
@@ -303,7 +305,7 @@ function compile(tree) {
|
|
|
303
305
|
const oneOnlyKeys = [
|
|
304
306
|
'graph_layout', 'machine_name', 'machine_version', 'machine_comment',
|
|
305
307
|
'fsl_version', 'machine_license', 'machine_definition', 'machine_language',
|
|
306
|
-
'flow', 'dot_preamble'
|
|
308
|
+
'flow', 'dot_preamble', 'allows_override'
|
|
307
309
|
];
|
|
308
310
|
oneOnlyKeys.map((oneOnlyKey) => {
|
|
309
311
|
if (results[oneOnlyKey].length > 1) {
|
package/dist/es6/jssm_types.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ declare type JssmArrowKind = 'none' | 'legal' | 'main' | 'forced';
|
|
|
24
24
|
declare type JssmLayout = 'dot' | 'circo' | 'twopi' | 'fdp';
|
|
25
25
|
declare type JssmCorner = 'regular' | 'rounded' | 'lined';
|
|
26
26
|
declare type JssmLineStyle = 'solid' | 'dashed' | 'dotted';
|
|
27
|
+
declare type JssmAllowsOverride = true | false | undefined;
|
|
27
28
|
declare const FslDirections: readonly ["up", "right", "down", "left"];
|
|
28
29
|
declare type FslDirection = typeof FslDirections[number];
|
|
29
30
|
declare const FslThemes: readonly ["default", "ocean", "modern", "plain", "bold"];
|
|
@@ -190,6 +191,8 @@ declare type JssmGenericConfig<StateType, DataType> = {
|
|
|
190
191
|
allow_force?: false;
|
|
191
192
|
actions?: JssmPermittedOpt;
|
|
192
193
|
simplify_bidi?: boolean;
|
|
194
|
+
allows_override?: JssmAllowsOverride;
|
|
195
|
+
config_allows_override?: JssmAllowsOverride;
|
|
193
196
|
dot_preamble?: string;
|
|
194
197
|
start_states: Array<StateType>;
|
|
195
198
|
end_states?: Array<StateType>;
|
|
@@ -354,4 +357,4 @@ declare type JssmErrorExtendedInfo = {
|
|
|
354
357
|
requested_state?: StateType | undefined;
|
|
355
358
|
};
|
|
356
359
|
declare type JssmHistory<mDT> = circular_buffer<[StateType, mDT]>;
|
|
357
|
-
export { JssmColor, JssmShape, JssmTransition, JssmTransitions, JssmTransitionList, JssmTransitionRule, JssmArrow, JssmArrowKind, JssmArrowDirection, JssmGenericConfig, JssmGenericState, JssmGenericMachine, JssmParseTree, JssmCompileSe, JssmCompileSeStart, JssmCompileRule, JssmPermitted, JssmPermittedOpt, JssmResult, JssmStateDeclaration, JssmStateDeclarationRule, JssmStateConfig, JssmStateStyleKey, JssmStateStyleKeyList, JssmBaseTheme, JssmTheme, JssmLayout, JssmHistory, JssmSerialization, JssmPropertyDefinition, JssmParseFunctionType, JssmMachineInternalState, JssmErrorExtendedInfo, FslDirections, FslDirection, FslThemes, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult };
|
|
360
|
+
export { JssmColor, JssmShape, JssmTransition, JssmTransitions, JssmTransitionList, JssmTransitionRule, JssmArrow, JssmArrowKind, JssmArrowDirection, JssmGenericConfig, JssmGenericState, JssmGenericMachine, JssmParseTree, JssmCompileSe, JssmCompileSeStart, JssmCompileRule, JssmPermitted, JssmPermittedOpt, JssmResult, JssmStateDeclaration, JssmStateDeclarationRule, JssmStateConfig, JssmStateStyleKey, JssmStateStyleKeyList, JssmBaseTheme, JssmTheme, JssmLayout, JssmHistory, JssmSerialization, JssmPropertyDefinition, JssmAllowsOverride, JssmParseFunctionType, JssmMachineInternalState, JssmErrorExtendedInfo, FslDirections, FslDirection, FslThemes, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult };
|
package/dist/es6/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version = "5.86.
|
|
1
|
+
const version = "5.86.3", build_time = 1668305137795;
|
|
2
2
|
export { version, build_time };
|