jssm 5.72.5 → 5.74.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/CHANGELOG.md +47 -38
- package/README.md +2 -2
- package/dist/es6/jssm.d.ts +113 -1
- package/dist/es6/jssm.js +290 -12
- package/dist/es6/jssm_types.d.ts +51 -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 +113 -1
- package/jssm_types.d.ts +51 -1
- package/package.json +2 -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
|
+
940 merges; 124 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__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__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,16 +22,13 @@ Published tags:
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
## [Untagged] -
|
|
25
|
+
## [Untagged] - 7/2/2022 11:04:51 AM
|
|
26
26
|
|
|
27
|
-
Commit [
|
|
27
|
+
Commit [0222ce4624e1463b875bbb68292a39b438f267a3](https://github.com/StoneCypher/jssm/commit/0222ce4624e1463b875bbb68292a39b438f267a3)
|
|
28
28
|
|
|
29
29
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* Merge pull request #502 from StoneCypher/AllowHooksToChangeData
|
|
34
|
-
* Allow hooks to change data
|
|
31
|
+
* Nicely tied up, basic set_hook posthooks, all simply tested
|
|
35
32
|
|
|
36
33
|
|
|
37
34
|
|
|
@@ -40,13 +37,13 @@ Merges [a184324, 8762d17]
|
|
|
40
37
|
|
|
41
38
|
|
|
42
39
|
|
|
43
|
-
## [Untagged] -
|
|
40
|
+
## [Untagged] - 7/1/2022 4:56:32 PM
|
|
44
41
|
|
|
45
|
-
Commit [
|
|
42
|
+
Commit [99847f8ef8c60b521c6d3e979bcf07dd60125a56](https://github.com/StoneCypher/jssm/commit/99847f8ef8c60b521c6d3e979bcf07dd60125a56)
|
|
46
43
|
|
|
47
44
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
48
45
|
|
|
49
|
-
*
|
|
46
|
+
* Post global action hook, fixes StoneCypher/fsl#905; post any action hook, fixes StoneCypher/fsl#906
|
|
50
47
|
|
|
51
48
|
|
|
52
49
|
|
|
@@ -55,13 +52,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
55
52
|
|
|
56
53
|
|
|
57
54
|
|
|
58
|
-
## [Untagged] -
|
|
55
|
+
## [Untagged] - 7/1/2022 4:03:56 PM
|
|
59
56
|
|
|
60
|
-
Commit [
|
|
57
|
+
Commit [e5bfa2acf8edefe9322bd17540307ffb1f9eeb4d](https://github.com/StoneCypher/jssm/commit/e5bfa2acf8edefe9322bd17540307ffb1f9eeb4d)
|
|
61
58
|
|
|
62
59
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
63
60
|
|
|
64
|
-
*
|
|
61
|
+
* Adds call points in set_hook for basic post-hooks, fixes #958
|
|
65
62
|
|
|
66
63
|
|
|
67
64
|
|
|
@@ -70,13 +67,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
70
67
|
|
|
71
68
|
|
|
72
69
|
|
|
73
|
-
## [Untagged] - 6/
|
|
70
|
+
## [Untagged] - 6/30/2022 6:03:58 PM
|
|
74
71
|
|
|
75
|
-
Commit [
|
|
72
|
+
Commit [bb3c0014580c940b1294e19e64ac432c44bb7081](https://github.com/StoneCypher/jssm/commit/bb3c0014580c940b1294e19e64ac432c44bb7081)
|
|
76
73
|
|
|
77
74
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
78
75
|
|
|
79
|
-
*
|
|
76
|
+
* Adds posthook path; fixes StoneCypher/fsl#956. Clones datastructures; fixes StoneCypher/fsl#957.
|
|
80
77
|
|
|
81
78
|
|
|
82
79
|
|
|
@@ -85,13 +82,15 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
85
82
|
|
|
86
83
|
|
|
87
84
|
|
|
88
|
-
|
|
85
|
+
<a name="5__73__1" />
|
|
86
|
+
|
|
87
|
+
## [5.73.1] - 6/27/2022 2:54:25 AM
|
|
89
88
|
|
|
90
|
-
Commit [
|
|
89
|
+
Commit [89b9c2cecceee0ea04471c7c406ece82ff115555](https://github.com/StoneCypher/jssm/commit/89b9c2cecceee0ea04471c7c406ece82ff115555)
|
|
91
90
|
|
|
92
91
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
93
92
|
|
|
94
|
-
*
|
|
93
|
+
* promote circular_queue_js to dep instead of devdep for downstreams
|
|
95
94
|
|
|
96
95
|
|
|
97
96
|
|
|
@@ -100,13 +99,18 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
100
99
|
|
|
101
100
|
|
|
102
101
|
|
|
103
|
-
|
|
102
|
+
<a name="5__73__0" />
|
|
103
|
+
|
|
104
|
+
## [5.73.0] - 6/27/2022 2:36:36 AM
|
|
104
105
|
|
|
105
|
-
Commit [
|
|
106
|
+
Commit [39f9a8671a45e1e9a903289431bc3bc7a1e292e5](https://github.com/StoneCypher/jssm/commit/39f9a8671a45e1e9a903289431bc3bc7a1e292e5)
|
|
106
107
|
|
|
107
108
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
108
109
|
|
|
109
|
-
|
|
110
|
+
Merges [f1a61f1, c494012]
|
|
111
|
+
|
|
112
|
+
* Merge pull request #504 from StoneCypher/AddHistoryAndCircularBuffer
|
|
113
|
+
* Working history, fixes StoneCypher/fsl#950, fixes StoneCypher/fsl#951,fixes StoneCypher/fsl#948, fixes StoneCypher/fsl#949, fixes StoneCypher/fsl#947, fixes StoneCypher/fsl#946, fixes StoneCypher/fsl#203
|
|
110
114
|
|
|
111
115
|
|
|
112
116
|
|
|
@@ -115,13 +119,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
115
119
|
|
|
116
120
|
|
|
117
121
|
|
|
118
|
-
## [Untagged] - 6/
|
|
122
|
+
## [Untagged] - 6/27/2022 2:30:06 AM
|
|
119
123
|
|
|
120
|
-
Commit [
|
|
124
|
+
Commit [c494012f33a608ae32bc31581549281abc98f120](https://github.com/StoneCypher/jssm/commit/c494012f33a608ae32bc31581549281abc98f120)
|
|
121
125
|
|
|
122
126
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
123
127
|
|
|
124
|
-
*
|
|
128
|
+
* Working history, fixes StoneCypher/fsl#950, fixes StoneCypher/fsl#951, fixes StoneCypher/fsl#948, fixes StoneCypher/fsl#949, fixes StoneCypher/fsl#947, fixes StoneCypher/fsl#946, fixes StoneCypher/fsl#203
|
|
125
129
|
|
|
126
130
|
|
|
127
131
|
|
|
@@ -130,18 +134,18 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
130
134
|
|
|
131
135
|
|
|
132
136
|
|
|
133
|
-
<a name="
|
|
137
|
+
<a name="5__72__5" />
|
|
134
138
|
|
|
135
|
-
## [5.72.
|
|
139
|
+
## [5.72.5] - 6/25/2022 11:07:29 AM
|
|
136
140
|
|
|
137
|
-
Commit [
|
|
141
|
+
Commit [f1a61f1e967df66b87f2b6b39f75636659f496e9](https://github.com/StoneCypher/jssm/commit/f1a61f1e967df66b87f2b6b39f75636659f496e9)
|
|
138
142
|
|
|
139
143
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
140
144
|
|
|
141
|
-
Merges [
|
|
145
|
+
Merges [dc3096f, 751c5fd]
|
|
142
146
|
|
|
143
|
-
* Merge pull request #
|
|
144
|
-
*
|
|
147
|
+
* Merge pull request #503 from StoneCypher/AttemptToCaptureTestResults
|
|
148
|
+
* Captures test results, fixes StoneCypher/fsl#944, tools readme, fixes StoneCypher/fsl#736
|
|
145
149
|
|
|
146
150
|
|
|
147
151
|
|
|
@@ -150,13 +154,13 @@ Merges [b0cbe1c, d52217a]
|
|
|
150
154
|
|
|
151
155
|
|
|
152
156
|
|
|
153
|
-
## [Untagged] - 6/
|
|
157
|
+
## [Untagged] - 6/25/2022 11:04:20 AM
|
|
154
158
|
|
|
155
|
-
Commit [
|
|
159
|
+
Commit [751c5fd0cc8c9751331e664e8f51af34f736ce31](https://github.com/StoneCypher/jssm/commit/751c5fd0cc8c9751331e664e8f51af34f736ce31)
|
|
156
160
|
|
|
157
161
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
158
162
|
|
|
159
|
-
*
|
|
163
|
+
* Captures test results, fixes StoneCypher/fsl#944, tools readme, fixes StoneCypher/fsl#736
|
|
160
164
|
|
|
161
165
|
|
|
162
166
|
|
|
@@ -165,10 +169,15 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
165
169
|
|
|
166
170
|
|
|
167
171
|
|
|
168
|
-
|
|
172
|
+
<a name="5__72__4" />
|
|
173
|
+
|
|
174
|
+
## [5.72.4] - 6/25/2022 8:12:11 AM
|
|
169
175
|
|
|
170
|
-
Commit [
|
|
176
|
+
Commit [dc3096f064e58ea616899b12d3d25c973f326c1c](https://github.com/StoneCypher/jssm/commit/dc3096f064e58ea616899b12d3d25c973f326c1c)
|
|
171
177
|
|
|
172
178
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
173
179
|
|
|
174
|
-
|
|
180
|
+
Merges [a184324, 8762d17]
|
|
181
|
+
|
|
182
|
+
* Merge pull request #502 from StoneCypher/AllowHooksToChangeData
|
|
183
|
+
* Allow hooks to change data
|
package/README.md
CHANGED
|
@@ -18,14 +18,14 @@ 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.
|
|
21
|
+
* Generated for version 5.74.0 at 7/2/2022, 11:31:46 AM
|
|
22
22
|
|
|
23
23
|
-->
|
|
24
24
|
# jssm
|
|
25
25
|
|
|
26
26
|
Easy. Small. Fast. TS, es6, es5. Node, Browser. 100% coverage. Property
|
|
27
27
|
tests. Fuzz tests. Language tests for a dozen languages and emoji. Easy to
|
|
28
|
-
share online. Easy to embed. ***4,
|
|
28
|
+
share online. Easy to embed. ***4,646 tests***.
|
|
29
29
|
|
|
30
30
|
Readable, useful state machines as one-liner strings.
|
|
31
31
|
|
package/dist/es6/jssm.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
declare type StateType = string;
|
|
2
|
+
import { circular_buffer } from 'circular_buffer_js';
|
|
2
3
|
import { JssmGenericState, JssmGenericConfig, JssmTransition, JssmTransitionList, // JssmTransitionRule,
|
|
3
4
|
JssmMachineInternalState, JssmParseTree, JssmStateDeclaration, JssmArrow, JssmArrowDirection, JssmArrowKind, JssmLayout, FslDirection, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult } from './jssm_types';
|
|
4
5
|
import { seq, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key } from './jssm_util';
|
|
@@ -233,7 +234,26 @@ declare class Machine<mDT> {
|
|
|
233
234
|
_main_transition_hook: HookHandler<mDT> | undefined;
|
|
234
235
|
_forced_transition_hook: HookHandler<mDT> | undefined;
|
|
235
236
|
_any_transition_hook: HookHandler<mDT> | undefined;
|
|
236
|
-
|
|
237
|
+
_has_post_hooks: boolean;
|
|
238
|
+
_has_post_basic_hooks: boolean;
|
|
239
|
+
_has_post_named_hooks: boolean;
|
|
240
|
+
_has_post_entry_hooks: boolean;
|
|
241
|
+
_has_post_exit_hooks: boolean;
|
|
242
|
+
_has_post_global_action_hooks: boolean;
|
|
243
|
+
_has_post_transition_hooks: boolean;
|
|
244
|
+
_post_hooks: Map<string, HookHandler<mDT>>;
|
|
245
|
+
_post_named_hooks: Map<string, HookHandler<mDT>>;
|
|
246
|
+
_post_entry_hooks: Map<string, HookHandler<mDT>>;
|
|
247
|
+
_post_exit_hooks: Map<string, HookHandler<mDT>>;
|
|
248
|
+
_post_global_action_hooks: Map<string, HookHandler<mDT>>;
|
|
249
|
+
_post_any_action_hook: HookHandler<mDT> | undefined;
|
|
250
|
+
_post_standard_transition_hook: HookHandler<mDT> | undefined;
|
|
251
|
+
_post_main_transition_hook: HookHandler<mDT> | undefined;
|
|
252
|
+
_post_forced_transition_hook: HookHandler<mDT> | undefined;
|
|
253
|
+
_post_any_transition_hook: HookHandler<mDT> | undefined;
|
|
254
|
+
_history: circular_buffer<[StateType, mDT]>;
|
|
255
|
+
_history_length: number;
|
|
256
|
+
constructor({ start_states, complete, transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, fsl_version, dot_preamble, arrange_declaration, arrange_start_declaration, arrange_end_declaration, theme, flow, graph_layout, instance_name, history, data }: JssmGenericConfig<mDT>);
|
|
237
257
|
/********
|
|
238
258
|
*
|
|
239
259
|
* Internal method for fabricating states. Not meant for external use.
|
|
@@ -549,8 +569,100 @@ declare class Machine<mDT> {
|
|
|
549
569
|
hook_any_transition(handler: HookHandler<mDT>): Machine<mDT>;
|
|
550
570
|
hook_entry(to: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
551
571
|
hook_exit(from: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
572
|
+
post_hook(from: string, to: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
573
|
+
post_hook_action(from: string, to: string, action: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
574
|
+
post_hook_global_action(action: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
575
|
+
post_hook_any_action(handler: HookHandler<mDT>): Machine<mDT>;
|
|
576
|
+
post_hook_standard_transition(handler: HookHandler<mDT>): Machine<mDT>;
|
|
577
|
+
post_hook_main_transition(handler: HookHandler<mDT>): Machine<mDT>;
|
|
578
|
+
post_hook_forced_transition(handler: HookHandler<mDT>): Machine<mDT>;
|
|
579
|
+
post_hook_any_transition(handler: HookHandler<mDT>): Machine<mDT>;
|
|
580
|
+
post_hook_entry(to: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
581
|
+
post_hook_exit(from: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
552
582
|
edges_between(from: string, to: string): JssmTransition<mDT>[];
|
|
553
583
|
transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
|
|
584
|
+
/*********
|
|
585
|
+
*
|
|
586
|
+
* Get a truncated history of the recent states and data of the machine.
|
|
587
|
+
* Turned off by default; configure with `.from('...', {data: 5})` by length,
|
|
588
|
+
* or set `.history_length` at runtime.
|
|
589
|
+
*
|
|
590
|
+
* History *does not contain the current state*. If you want that, call
|
|
591
|
+
* `.history_inclusive` instead.
|
|
592
|
+
*
|
|
593
|
+
* ```typescript
|
|
594
|
+
* const foo = jssm.from(
|
|
595
|
+
* "a 'next' -> b 'next' -> c 'next' -> d 'next' -> e;",
|
|
596
|
+
* { history: 3 }
|
|
597
|
+
* );
|
|
598
|
+
*
|
|
599
|
+
* foo.action('next');
|
|
600
|
+
* foo.action('next');
|
|
601
|
+
* foo.action('next');
|
|
602
|
+
* foo.action('next');
|
|
603
|
+
*
|
|
604
|
+
* foo.history; // [ ['b',undefined], ['c',undefined], ['d',undefined] ]
|
|
605
|
+
* ```
|
|
606
|
+
*
|
|
607
|
+
* Notice that the machine's current state, `e`, is not in the returned list.
|
|
608
|
+
*
|
|
609
|
+
* @typeparam mDT The type of the machine data member; usually omitted
|
|
610
|
+
*
|
|
611
|
+
*/
|
|
612
|
+
get history(): [string, mDT][];
|
|
613
|
+
/*********
|
|
614
|
+
*
|
|
615
|
+
* Get a truncated history of the recent states and data of the machine,
|
|
616
|
+
* including the current state. Turned off by default; configure with
|
|
617
|
+
* `.from('...', {data: 5})` by length, or set `.history_length` at runtime.
|
|
618
|
+
*
|
|
619
|
+
* History inclusive contains the current state. If you only want past
|
|
620
|
+
* states, call `.history` instead.
|
|
621
|
+
*
|
|
622
|
+
* The list returned will be one longer than the history buffer kept, as the
|
|
623
|
+
* history buffer kept gets the current state added to it to produce this
|
|
624
|
+
* list.
|
|
625
|
+
*
|
|
626
|
+
* ```typescript
|
|
627
|
+
* const foo = jssm.from(
|
|
628
|
+
* "a 'next' -> b 'next' -> c 'next' -> d 'next' -> e;",
|
|
629
|
+
* { history: 3 }
|
|
630
|
+
* );
|
|
631
|
+
*
|
|
632
|
+
* foo.action('next');
|
|
633
|
+
* foo.action('next');
|
|
634
|
+
* foo.action('next');
|
|
635
|
+
* foo.action('next');
|
|
636
|
+
*
|
|
637
|
+
* foo.history_inclusive; // [ ['b',undefined], ['c',undefined], ['d',undefined], ['e',undefined] ]
|
|
638
|
+
* ```
|
|
639
|
+
*
|
|
640
|
+
* Notice that the machine's current state, `e`, is in the returned list.
|
|
641
|
+
*
|
|
642
|
+
* @typeparam mDT The type of the machine data member; usually omitted
|
|
643
|
+
*
|
|
644
|
+
*/
|
|
645
|
+
get history_inclusive(): [string, mDT][];
|
|
646
|
+
/*********
|
|
647
|
+
*
|
|
648
|
+
* Find out how long a history this machine is keeping. Defaults to zero.
|
|
649
|
+
* Settable directly.
|
|
650
|
+
*
|
|
651
|
+
* ```typescript
|
|
652
|
+
* const foo = jssm.from("a -> b;");
|
|
653
|
+
* foo.history_length; // 0
|
|
654
|
+
*
|
|
655
|
+
* const bar = jssm.from("a -> b;", { history: 3 });
|
|
656
|
+
* foo.history_length; // 3
|
|
657
|
+
* foo.history_length = 5;
|
|
658
|
+
* foo.history_length; // 5
|
|
659
|
+
* ```
|
|
660
|
+
*
|
|
661
|
+
* @typeparam mDT The type of the machine data member; usually omitted
|
|
662
|
+
*
|
|
663
|
+
*/
|
|
664
|
+
get history_length(): number;
|
|
665
|
+
set history_length(to: number);
|
|
554
666
|
/********
|
|
555
667
|
*
|
|
556
668
|
* Instruct the machine to complete an action.
|