jssm 5.73.1 → 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 +48 -46
- package/README.md +2 -2
- package/dist/es6/jssm.d.ts +27 -0
- package/dist/es6/jssm.js +187 -11
- package/dist/es6/jssm_types.d.ts +50 -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 +27 -0
- package/jssm_types.d.ts +50 -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
|
+
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__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__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,18 +22,13 @@ Published tags:
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
## [5.73.0] - 6/27/2022 2:36:36 AM
|
|
25
|
+
## [Untagged] - 7/2/2022 11:04:51 AM
|
|
28
26
|
|
|
29
|
-
Commit [
|
|
27
|
+
Commit [0222ce4624e1463b875bbb68292a39b438f267a3](https://github.com/StoneCypher/jssm/commit/0222ce4624e1463b875bbb68292a39b438f267a3)
|
|
30
28
|
|
|
31
29
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
* Merge pull request #504 from StoneCypher/AddHistoryAndCircularBuffer
|
|
36
|
-
* 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
|
|
31
|
+
* Nicely tied up, basic set_hook posthooks, all simply tested
|
|
37
32
|
|
|
38
33
|
|
|
39
34
|
|
|
@@ -42,13 +37,13 @@ Merges [f1a61f1, c494012]
|
|
|
42
37
|
|
|
43
38
|
|
|
44
39
|
|
|
45
|
-
## [Untagged] -
|
|
40
|
+
## [Untagged] - 7/1/2022 4:56:32 PM
|
|
46
41
|
|
|
47
|
-
Commit [
|
|
42
|
+
Commit [99847f8ef8c60b521c6d3e979bcf07dd60125a56](https://github.com/StoneCypher/jssm/commit/99847f8ef8c60b521c6d3e979bcf07dd60125a56)
|
|
48
43
|
|
|
49
44
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
50
45
|
|
|
51
|
-
*
|
|
46
|
+
* Post global action hook, fixes StoneCypher/fsl#905; post any action hook, fixes StoneCypher/fsl#906
|
|
52
47
|
|
|
53
48
|
|
|
54
49
|
|
|
@@ -57,18 +52,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
57
52
|
|
|
58
53
|
|
|
59
54
|
|
|
60
|
-
|
|
55
|
+
## [Untagged] - 7/1/2022 4:03:56 PM
|
|
61
56
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
Commit [f1a61f1e967df66b87f2b6b39f75636659f496e9](https://github.com/StoneCypher/jssm/commit/f1a61f1e967df66b87f2b6b39f75636659f496e9)
|
|
57
|
+
Commit [e5bfa2acf8edefe9322bd17540307ffb1f9eeb4d](https://github.com/StoneCypher/jssm/commit/e5bfa2acf8edefe9322bd17540307ffb1f9eeb4d)
|
|
65
58
|
|
|
66
59
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
67
60
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
* Merge pull request #503 from StoneCypher/AttemptToCaptureTestResults
|
|
71
|
-
* Captures test results, fixes StoneCypher/fsl#944, tools readme, fixes StoneCypher/fsl#736
|
|
61
|
+
* Adds call points in set_hook for basic post-hooks, fixes #958
|
|
72
62
|
|
|
73
63
|
|
|
74
64
|
|
|
@@ -77,13 +67,13 @@ Merges [dc3096f, 751c5fd]
|
|
|
77
67
|
|
|
78
68
|
|
|
79
69
|
|
|
80
|
-
## [Untagged] - 6/
|
|
70
|
+
## [Untagged] - 6/30/2022 6:03:58 PM
|
|
81
71
|
|
|
82
|
-
Commit [
|
|
72
|
+
Commit [bb3c0014580c940b1294e19e64ac432c44bb7081](https://github.com/StoneCypher/jssm/commit/bb3c0014580c940b1294e19e64ac432c44bb7081)
|
|
83
73
|
|
|
84
74
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
85
75
|
|
|
86
|
-
*
|
|
76
|
+
* Adds posthook path; fixes StoneCypher/fsl#956. Clones datastructures; fixes StoneCypher/fsl#957.
|
|
87
77
|
|
|
88
78
|
|
|
89
79
|
|
|
@@ -92,18 +82,15 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
92
82
|
|
|
93
83
|
|
|
94
84
|
|
|
95
|
-
<a name="
|
|
85
|
+
<a name="5__73__1" />
|
|
96
86
|
|
|
97
|
-
## [5.
|
|
87
|
+
## [5.73.1] - 6/27/2022 2:54:25 AM
|
|
98
88
|
|
|
99
|
-
Commit [
|
|
89
|
+
Commit [89b9c2cecceee0ea04471c7c406ece82ff115555](https://github.com/StoneCypher/jssm/commit/89b9c2cecceee0ea04471c7c406ece82ff115555)
|
|
100
90
|
|
|
101
91
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
102
92
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
* Merge pull request #502 from StoneCypher/AllowHooksToChangeData
|
|
106
|
-
* Allow hooks to change data
|
|
93
|
+
* promote circular_queue_js to dep instead of devdep for downstreams
|
|
107
94
|
|
|
108
95
|
|
|
109
96
|
|
|
@@ -112,13 +99,18 @@ Merges [a184324, 8762d17]
|
|
|
112
99
|
|
|
113
100
|
|
|
114
101
|
|
|
115
|
-
|
|
102
|
+
<a name="5__73__0" />
|
|
116
103
|
|
|
117
|
-
|
|
104
|
+
## [5.73.0] - 6/27/2022 2:36:36 AM
|
|
105
|
+
|
|
106
|
+
Commit [39f9a8671a45e1e9a903289431bc3bc7a1e292e5](https://github.com/StoneCypher/jssm/commit/39f9a8671a45e1e9a903289431bc3bc7a1e292e5)
|
|
118
107
|
|
|
119
108
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
120
109
|
|
|
121
|
-
|
|
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
|
|
122
114
|
|
|
123
115
|
|
|
124
116
|
|
|
@@ -127,13 +119,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
127
119
|
|
|
128
120
|
|
|
129
121
|
|
|
130
|
-
## [Untagged] - 6/
|
|
122
|
+
## [Untagged] - 6/27/2022 2:30:06 AM
|
|
131
123
|
|
|
132
|
-
Commit [
|
|
124
|
+
Commit [c494012f33a608ae32bc31581549281abc98f120](https://github.com/StoneCypher/jssm/commit/c494012f33a608ae32bc31581549281abc98f120)
|
|
133
125
|
|
|
134
126
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
135
127
|
|
|
136
|
-
*
|
|
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
|
|
137
129
|
|
|
138
130
|
|
|
139
131
|
|
|
@@ -142,13 +134,18 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
142
134
|
|
|
143
135
|
|
|
144
136
|
|
|
145
|
-
|
|
137
|
+
<a name="5__72__5" />
|
|
146
138
|
|
|
147
|
-
|
|
139
|
+
## [5.72.5] - 6/25/2022 11:07:29 AM
|
|
140
|
+
|
|
141
|
+
Commit [f1a61f1e967df66b87f2b6b39f75636659f496e9](https://github.com/StoneCypher/jssm/commit/f1a61f1e967df66b87f2b6b39f75636659f496e9)
|
|
148
142
|
|
|
149
143
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
150
144
|
|
|
151
|
-
|
|
145
|
+
Merges [dc3096f, 751c5fd]
|
|
146
|
+
|
|
147
|
+
* Merge pull request #503 from StoneCypher/AttemptToCaptureTestResults
|
|
148
|
+
* Captures test results, fixes StoneCypher/fsl#944, tools readme, fixes StoneCypher/fsl#736
|
|
152
149
|
|
|
153
150
|
|
|
154
151
|
|
|
@@ -157,13 +154,13 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
157
154
|
|
|
158
155
|
|
|
159
156
|
|
|
160
|
-
## [Untagged] - 6/25/2022
|
|
157
|
+
## [Untagged] - 6/25/2022 11:04:20 AM
|
|
161
158
|
|
|
162
|
-
Commit [
|
|
159
|
+
Commit [751c5fd0cc8c9751331e664e8f51af34f736ce31](https://github.com/StoneCypher/jssm/commit/751c5fd0cc8c9751331e664e8f51af34f736ce31)
|
|
163
160
|
|
|
164
161
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
165
162
|
|
|
166
|
-
*
|
|
163
|
+
* Captures test results, fixes StoneCypher/fsl#944, tools readme, fixes StoneCypher/fsl#736
|
|
167
164
|
|
|
168
165
|
|
|
169
166
|
|
|
@@ -172,10 +169,15 @@ Author: `John Haugeland <stonecypher@gmail.com>`
|
|
|
172
169
|
|
|
173
170
|
|
|
174
171
|
|
|
175
|
-
|
|
172
|
+
<a name="5__72__4" />
|
|
173
|
+
|
|
174
|
+
## [5.72.4] - 6/25/2022 8:12:11 AM
|
|
176
175
|
|
|
177
|
-
Commit [
|
|
176
|
+
Commit [dc3096f064e58ea616899b12d3d25c973f326c1c](https://github.com/StoneCypher/jssm/commit/dc3096f064e58ea616899b12d3d25c973f326c1c)
|
|
178
177
|
|
|
179
178
|
Author: `John Haugeland <stonecypher@gmail.com>`
|
|
180
179
|
|
|
181
|
-
|
|
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
|
@@ -234,6 +234,23 @@ declare class Machine<mDT> {
|
|
|
234
234
|
_main_transition_hook: HookHandler<mDT> | undefined;
|
|
235
235
|
_forced_transition_hook: HookHandler<mDT> | undefined;
|
|
236
236
|
_any_transition_hook: HookHandler<mDT> | undefined;
|
|
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;
|
|
237
254
|
_history: circular_buffer<[StateType, mDT]>;
|
|
238
255
|
_history_length: number;
|
|
239
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>);
|
|
@@ -552,6 +569,16 @@ declare class Machine<mDT> {
|
|
|
552
569
|
hook_any_transition(handler: HookHandler<mDT>): Machine<mDT>;
|
|
553
570
|
hook_entry(to: string, handler: HookHandler<mDT>): Machine<mDT>;
|
|
554
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>;
|
|
555
582
|
edges_between(from: string, to: string): JssmTransition<mDT>[];
|
|
556
583
|
transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
|
|
557
584
|
/*********
|
package/dist/es6/jssm.js
CHANGED
|
@@ -570,7 +570,7 @@ class Machine {
|
|
|
570
570
|
this._has_exit_hooks = false;
|
|
571
571
|
this._has_global_action_hooks = false;
|
|
572
572
|
this._has_transition_hooks = true;
|
|
573
|
-
// no need for a boolean
|
|
573
|
+
// no need for a boolean for single hooks, just test for undefinedness
|
|
574
574
|
this._hooks = new Map();
|
|
575
575
|
this._named_hooks = new Map();
|
|
576
576
|
this._entry_hooks = new Map();
|
|
@@ -581,7 +581,24 @@ class Machine {
|
|
|
581
581
|
this._main_transition_hook = undefined;
|
|
582
582
|
this._forced_transition_hook = undefined;
|
|
583
583
|
this._any_transition_hook = undefined;
|
|
584
|
-
this.
|
|
584
|
+
this._has_post_hooks = false;
|
|
585
|
+
this._has_post_basic_hooks = false;
|
|
586
|
+
this._has_post_named_hooks = false;
|
|
587
|
+
this._has_post_entry_hooks = false;
|
|
588
|
+
this._has_post_exit_hooks = false;
|
|
589
|
+
this._has_post_global_action_hooks = false;
|
|
590
|
+
this._has_post_transition_hooks = true;
|
|
591
|
+
// no need for a boolean for single hooks, just test for undefinedness
|
|
592
|
+
this._post_hooks = new Map();
|
|
593
|
+
this._post_named_hooks = new Map();
|
|
594
|
+
this._post_entry_hooks = new Map();
|
|
595
|
+
this._post_exit_hooks = new Map();
|
|
596
|
+
this._post_global_action_hooks = new Map();
|
|
597
|
+
this._post_any_action_hook = undefined;
|
|
598
|
+
this._post_standard_transition_hook = undefined;
|
|
599
|
+
this._post_main_transition_hook = undefined;
|
|
600
|
+
this._post_forced_transition_hook = undefined;
|
|
601
|
+
this._post_any_transition_hook = undefined;
|
|
585
602
|
this._data = data;
|
|
586
603
|
this._history_length = history || 0;
|
|
587
604
|
this._history = new circular_buffer(this._history_length);
|
|
@@ -1252,6 +1269,54 @@ class Machine {
|
|
|
1252
1269
|
this._has_hooks = true;
|
|
1253
1270
|
this._has_exit_hooks = true;
|
|
1254
1271
|
break;
|
|
1272
|
+
case 'post hook':
|
|
1273
|
+
this._post_hooks.set(hook_name(HookDesc.from, HookDesc.to), HookDesc.handler);
|
|
1274
|
+
this._has_post_hooks = true;
|
|
1275
|
+
this._has_post_basic_hooks = true;
|
|
1276
|
+
break;
|
|
1277
|
+
case 'post named':
|
|
1278
|
+
this._post_named_hooks.set(named_hook_name(HookDesc.from, HookDesc.to, HookDesc.action), HookDesc.handler);
|
|
1279
|
+
this._has_post_hooks = true;
|
|
1280
|
+
this._has_post_named_hooks = true;
|
|
1281
|
+
break;
|
|
1282
|
+
case 'post global action':
|
|
1283
|
+
this._post_global_action_hooks.set(HookDesc.action, HookDesc.handler);
|
|
1284
|
+
this._has_post_hooks = true;
|
|
1285
|
+
this._has_post_global_action_hooks = true;
|
|
1286
|
+
break;
|
|
1287
|
+
case 'post any action':
|
|
1288
|
+
this._post_any_action_hook = HookDesc.handler;
|
|
1289
|
+
this._has_post_hooks = true;
|
|
1290
|
+
break;
|
|
1291
|
+
case 'post standard transition':
|
|
1292
|
+
this._post_standard_transition_hook = HookDesc.handler;
|
|
1293
|
+
this._has_post_transition_hooks = true;
|
|
1294
|
+
this._has_post_hooks = true;
|
|
1295
|
+
break;
|
|
1296
|
+
case 'post main transition':
|
|
1297
|
+
this._post_main_transition_hook = HookDesc.handler;
|
|
1298
|
+
this._has_post_transition_hooks = true;
|
|
1299
|
+
this._has_post_hooks = true;
|
|
1300
|
+
break;
|
|
1301
|
+
case 'post forced transition':
|
|
1302
|
+
this._post_forced_transition_hook = HookDesc.handler;
|
|
1303
|
+
this._has_post_transition_hooks = true;
|
|
1304
|
+
this._has_post_hooks = true;
|
|
1305
|
+
break;
|
|
1306
|
+
case 'post any transition':
|
|
1307
|
+
this._post_any_transition_hook = HookDesc.handler;
|
|
1308
|
+
this._has_post_hooks = true;
|
|
1309
|
+
break;
|
|
1310
|
+
case 'post entry':
|
|
1311
|
+
this._post_entry_hooks.set(HookDesc.to, HookDesc.handler);
|
|
1312
|
+
this._has_post_entry_hooks = true;
|
|
1313
|
+
this._has_post_hooks = true;
|
|
1314
|
+
break;
|
|
1315
|
+
case 'post exit':
|
|
1316
|
+
this._post_exit_hooks.set(HookDesc.from, HookDesc.handler);
|
|
1317
|
+
this._has_post_exit_hooks = true;
|
|
1318
|
+
this._has_post_hooks = true;
|
|
1319
|
+
break;
|
|
1255
1320
|
default:
|
|
1256
1321
|
throw new JssmError(this, `Unknown hook type ${HookDesc.kind}, should be impossible`);
|
|
1257
1322
|
}
|
|
@@ -1296,6 +1361,46 @@ class Machine {
|
|
|
1296
1361
|
this.set_hook({ kind: 'exit', from, handler });
|
|
1297
1362
|
return this;
|
|
1298
1363
|
}
|
|
1364
|
+
post_hook(from, to, handler) {
|
|
1365
|
+
this.set_hook({ kind: 'post hook', from, to, handler });
|
|
1366
|
+
return this;
|
|
1367
|
+
}
|
|
1368
|
+
post_hook_action(from, to, action, handler) {
|
|
1369
|
+
this.set_hook({ kind: 'post named', from, to, action, handler });
|
|
1370
|
+
return this;
|
|
1371
|
+
}
|
|
1372
|
+
post_hook_global_action(action, handler) {
|
|
1373
|
+
this.set_hook({ kind: 'post global action', action, handler });
|
|
1374
|
+
return this;
|
|
1375
|
+
}
|
|
1376
|
+
post_hook_any_action(handler) {
|
|
1377
|
+
this.set_hook({ kind: 'post any action', handler });
|
|
1378
|
+
return this;
|
|
1379
|
+
}
|
|
1380
|
+
post_hook_standard_transition(handler) {
|
|
1381
|
+
this.set_hook({ kind: 'post standard transition', handler });
|
|
1382
|
+
return this;
|
|
1383
|
+
}
|
|
1384
|
+
post_hook_main_transition(handler) {
|
|
1385
|
+
this.set_hook({ kind: 'post main transition', handler });
|
|
1386
|
+
return this;
|
|
1387
|
+
}
|
|
1388
|
+
post_hook_forced_transition(handler) {
|
|
1389
|
+
this.set_hook({ kind: 'post forced transition', handler });
|
|
1390
|
+
return this;
|
|
1391
|
+
}
|
|
1392
|
+
post_hook_any_transition(handler) {
|
|
1393
|
+
this.set_hook({ kind: 'post any transition', handler });
|
|
1394
|
+
return this;
|
|
1395
|
+
}
|
|
1396
|
+
post_hook_entry(to, handler) {
|
|
1397
|
+
this.set_hook({ kind: 'post entry', to, handler });
|
|
1398
|
+
return this;
|
|
1399
|
+
}
|
|
1400
|
+
post_hook_exit(from, handler) {
|
|
1401
|
+
this.set_hook({ kind: 'post exit', from, handler });
|
|
1402
|
+
return this;
|
|
1403
|
+
}
|
|
1299
1404
|
// remove_hook(HookDesc: HookDescription) {
|
|
1300
1405
|
// throw new JssmError(this, 'TODO: Should remove hook here');
|
|
1301
1406
|
// }
|
|
@@ -1331,15 +1436,16 @@ class Machine {
|
|
|
1331
1436
|
newState = newStateOrAction;
|
|
1332
1437
|
}
|
|
1333
1438
|
}
|
|
1439
|
+
const hook_args = {
|
|
1440
|
+
data: this._data,
|
|
1441
|
+
action: fromAction,
|
|
1442
|
+
from: this._state,
|
|
1443
|
+
to: newState,
|
|
1444
|
+
forced: wasForced,
|
|
1445
|
+
trans_type
|
|
1446
|
+
};
|
|
1334
1447
|
if (valid) {
|
|
1335
1448
|
if (this._has_hooks) {
|
|
1336
|
-
const hook_args = {
|
|
1337
|
-
data: this._data,
|
|
1338
|
-
action: fromAction,
|
|
1339
|
-
from: this._state,
|
|
1340
|
-
to: newState,
|
|
1341
|
-
forced: wasForced
|
|
1342
|
-
};
|
|
1343
1449
|
function update_fields(res) {
|
|
1344
1450
|
if (res.hasOwnProperty('data')) {
|
|
1345
1451
|
hook_args.data = res.data;
|
|
@@ -1436,7 +1542,8 @@ class Machine {
|
|
|
1436
1542
|
if (data_changed) {
|
|
1437
1543
|
this._data = hook_args.data;
|
|
1438
1544
|
}
|
|
1439
|
-
return
|
|
1545
|
+
// success fallthrough to posthooks; intentionally no return here
|
|
1546
|
+
// look for "posthooks begin here"
|
|
1440
1547
|
// or without hooks
|
|
1441
1548
|
}
|
|
1442
1549
|
else {
|
|
@@ -1444,13 +1551,82 @@ class Machine {
|
|
|
1444
1551
|
this._history.shove([this._state, this._data]);
|
|
1445
1552
|
}
|
|
1446
1553
|
this._state = newState;
|
|
1447
|
-
return
|
|
1554
|
+
// success fallthrough to posthooks; intentionally no return here
|
|
1555
|
+
// look for "posthooks begin here"
|
|
1448
1556
|
}
|
|
1449
1557
|
// not valid
|
|
1450
1558
|
}
|
|
1451
1559
|
else {
|
|
1452
1560
|
return false;
|
|
1453
1561
|
}
|
|
1562
|
+
// posthooks begin here
|
|
1563
|
+
if (this._has_post_hooks) {
|
|
1564
|
+
if (wasAction) {
|
|
1565
|
+
// 1. any action posthook
|
|
1566
|
+
if (this._post_any_action_hook !== undefined) {
|
|
1567
|
+
this._post_any_action_hook(hook_args);
|
|
1568
|
+
}
|
|
1569
|
+
// 2. global specific action hook
|
|
1570
|
+
const pgah = this._post_global_action_hooks.get(hook_args.action);
|
|
1571
|
+
if (pgah !== undefined) {
|
|
1572
|
+
pgah(hook_args);
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
// 3. any transition hook
|
|
1576
|
+
if (this._post_any_transition_hook !== undefined) {
|
|
1577
|
+
this._post_any_transition_hook(hook_args);
|
|
1578
|
+
}
|
|
1579
|
+
// 4. exit hook
|
|
1580
|
+
if (this._has_post_exit_hooks) {
|
|
1581
|
+
const peh = this._post_exit_hooks.get(hook_args.from); // todo this is probably from instead
|
|
1582
|
+
if (peh !== undefined) {
|
|
1583
|
+
peh(hook_args);
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
// 5. named transition / action hook
|
|
1587
|
+
if (this._has_post_named_hooks) {
|
|
1588
|
+
if (wasAction) {
|
|
1589
|
+
const nhn = named_hook_name(hook_args.from, hook_args.to, hook_args.action), pnh = this._post_named_hooks.get(nhn);
|
|
1590
|
+
if (pnh !== undefined) {
|
|
1591
|
+
pnh(hook_args);
|
|
1592
|
+
}
|
|
1593
|
+
}
|
|
1594
|
+
}
|
|
1595
|
+
// 6. regular hook
|
|
1596
|
+
if (this._has_post_basic_hooks) {
|
|
1597
|
+
const hook = this._post_hooks.get(hook_name(hook_args.from, hook_args.to));
|
|
1598
|
+
if (hook !== undefined) {
|
|
1599
|
+
hook(hook_args);
|
|
1600
|
+
}
|
|
1601
|
+
}
|
|
1602
|
+
// 7. edge type hook
|
|
1603
|
+
// 7a. standard transition hook
|
|
1604
|
+
if (trans_type === 'legal') {
|
|
1605
|
+
if (this._post_standard_transition_hook !== undefined) {
|
|
1606
|
+
this._post_standard_transition_hook(hook_args);
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
// 7b. main type hook
|
|
1610
|
+
if (trans_type === 'main') {
|
|
1611
|
+
if (this._post_main_transition_hook !== undefined) {
|
|
1612
|
+
this._post_main_transition_hook(hook_args);
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
1615
|
+
// 7c. forced transition hook
|
|
1616
|
+
if (trans_type === 'forced') {
|
|
1617
|
+
if (this._post_forced_transition_hook !== undefined) {
|
|
1618
|
+
this._post_forced_transition_hook(hook_args);
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
// 8. entry hook
|
|
1622
|
+
if (this._has_post_entry_hooks) {
|
|
1623
|
+
const hook = this._post_entry_hooks.get(hook_args.to);
|
|
1624
|
+
if (hook !== undefined) {
|
|
1625
|
+
hook(hook_args);
|
|
1626
|
+
}
|
|
1627
|
+
}
|
|
1628
|
+
}
|
|
1629
|
+
return true;
|
|
1454
1630
|
}
|
|
1455
1631
|
/*********
|
|
1456
1632
|
*
|
package/dist/es6/jssm_types.d.ts
CHANGED
|
@@ -198,7 +198,55 @@ declare type ExitHook<mDT> = {
|
|
|
198
198
|
from: string;
|
|
199
199
|
handler: HookHandler<mDT>;
|
|
200
200
|
};
|
|
201
|
-
declare type
|
|
201
|
+
declare type PostBasicHookDescription<mDT> = {
|
|
202
|
+
kind: 'post hook';
|
|
203
|
+
from: string;
|
|
204
|
+
to: string;
|
|
205
|
+
handler: PostHookHandler<mDT>;
|
|
206
|
+
};
|
|
207
|
+
declare type PostHookDescriptionWithAction<mDT> = {
|
|
208
|
+
kind: 'post named';
|
|
209
|
+
from: string;
|
|
210
|
+
to: string;
|
|
211
|
+
action: string;
|
|
212
|
+
handler: PostHookHandler<mDT>;
|
|
213
|
+
};
|
|
214
|
+
declare type PostStandardTransitionHook<mDT> = {
|
|
215
|
+
kind: 'post standard transition';
|
|
216
|
+
handler: PostHookHandler<mDT>;
|
|
217
|
+
};
|
|
218
|
+
declare type PostMainTransitionHook<mDT> = {
|
|
219
|
+
kind: 'post main transition';
|
|
220
|
+
handler: PostHookHandler<mDT>;
|
|
221
|
+
};
|
|
222
|
+
declare type PostForcedTransitionHook<mDT> = {
|
|
223
|
+
kind: 'post forced transition';
|
|
224
|
+
handler: PostHookHandler<mDT>;
|
|
225
|
+
};
|
|
226
|
+
declare type PostAnyTransitionHook<mDT> = {
|
|
227
|
+
kind: 'post any transition';
|
|
228
|
+
handler: PostHookHandler<mDT>;
|
|
229
|
+
};
|
|
230
|
+
declare type PostGlobalActionHook<mDT> = {
|
|
231
|
+
kind: 'post global action';
|
|
232
|
+
action: string;
|
|
233
|
+
handler: PostHookHandler<mDT>;
|
|
234
|
+
};
|
|
235
|
+
declare type PostAnyActionHook<mDT> = {
|
|
236
|
+
kind: 'post any action';
|
|
237
|
+
handler: PostHookHandler<mDT>;
|
|
238
|
+
};
|
|
239
|
+
declare type PostEntryHook<mDT> = {
|
|
240
|
+
kind: 'post entry';
|
|
241
|
+
to: string;
|
|
242
|
+
handler: PostHookHandler<mDT>;
|
|
243
|
+
};
|
|
244
|
+
declare type PostExitHook<mDT> = {
|
|
245
|
+
kind: 'post exit';
|
|
246
|
+
from: string;
|
|
247
|
+
handler: PostHookHandler<mDT>;
|
|
248
|
+
};
|
|
249
|
+
declare type HookDescription<mDT> = BasicHookDescription<mDT> | HookDescriptionWithAction<mDT> | GlobalActionHook<mDT> | AnyActionHook<mDT> | StandardTransitionHook<mDT> | MainTransitionHook<mDT> | ForcedTransitionHook<mDT> | AnyTransitionHook<mDT> | EntryHook<mDT> | ExitHook<mDT> | PostBasicHookDescription<mDT> | PostHookDescriptionWithAction<mDT> | PostGlobalActionHook<mDT> | PostAnyActionHook<mDT> | PostStandardTransitionHook<mDT> | PostMainTransitionHook<mDT> | PostForcedTransitionHook<mDT> | PostAnyTransitionHook<mDT> | PostEntryHook<mDT> | PostExitHook<mDT>;
|
|
202
250
|
declare type HookComplexResult<mDT> = {
|
|
203
251
|
pass: boolean;
|
|
204
252
|
state?: StateType;
|
|
@@ -209,6 +257,7 @@ declare type HookContext<mDT> = {
|
|
|
209
257
|
data: mDT;
|
|
210
258
|
};
|
|
211
259
|
declare type HookHandler<mDT> = (hook_context: HookContext<mDT>) => HookResult<mDT>;
|
|
260
|
+
declare type PostHookHandler<mDT> = (hook_context: HookContext<mDT>) => void;
|
|
212
261
|
declare type JssmErrorExtendedInfo = {
|
|
213
262
|
requested_state?: StateType | undefined;
|
|
214
263
|
};
|
package/dist/es6/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version = "5.
|
|
1
|
+
const version = "5.74.0";
|
|
2
2
|
export { version };
|