jssm 5.73.0 → 5.75.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/.clocignore +1 -0
- package/CHANGELOG.md +37 -47
- package/README.md +4 -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/jest-stoch.config.js +11 -5
- package/jssm.d.ts +27 -0
- package/jssm_types.d.ts +50 -1
- package/package.json +10 -13
package/jest-stoch.config.js
CHANGED
|
@@ -15,13 +15,19 @@ module.exports = {
|
|
|
15
15
|
|
|
16
16
|
coverageThreshold : {
|
|
17
17
|
global : {
|
|
18
|
-
branches :
|
|
19
|
-
functions :
|
|
20
|
-
lines :
|
|
21
|
-
statements :
|
|
18
|
+
branches : 0,
|
|
19
|
+
functions : 0,
|
|
20
|
+
lines : 0,
|
|
21
|
+
statements : 0,
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
24
|
|
|
25
|
-
collectCoverageFrom: ["src/ts/**/{!(jssm-dot),}.{js,ts}"]
|
|
25
|
+
collectCoverageFrom: ["src/ts/**/{!(jssm-dot),}.{js,ts}"],
|
|
26
|
+
|
|
27
|
+
reporters: [
|
|
28
|
+
['default', {}],
|
|
29
|
+
['jest-json-reporter2', { outputDir: './coverage/stoch', outputFile: 'metrics.json', fullOutput: false }],
|
|
30
|
+
// ['jest-json-reporter2', { outputDir: './coverage/stoch', outputFile: 'extended-metrics.json', fullOutput: true }],
|
|
31
|
+
]
|
|
26
32
|
|
|
27
33
|
};
|
package/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/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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jssm",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.75.0",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=10.0.0"
|
|
6
6
|
},
|
|
@@ -28,15 +28,9 @@
|
|
|
28
28
|
"browser": "dist/jssm.es5.iife.js",
|
|
29
29
|
"types": "./jssm.d.ts",
|
|
30
30
|
"scripts": {
|
|
31
|
-
"jest
|
|
32
|
-
"jest-stoch": "jest -c jest-stoch.config.js --color --verbose",
|
|
33
|
-
"jest": "npm run jest-spec",
|
|
34
|
-
"jjest": "npm run jest-spec && npm run jest-stoch",
|
|
31
|
+
"jest": "jest -c jest-stoch.config.js --color --verbose && jest -c jest-spec.config.js --color --verbose",
|
|
35
32
|
"test": "npm run make && npm run jest",
|
|
36
|
-
"
|
|
37
|
-
"removedir": "rm -rf dist && rm -rf docs",
|
|
38
|
-
"createdir": "mkdir dist && mkdir docs",
|
|
39
|
-
"clean": "npm run removedir && npm run rmgenerated && npm run createdir",
|
|
33
|
+
"clean": "rm -rf dist && rm -rf docs && cd coverage && rm -rf cloc && cd .. && rm -f src/ts/jssm-dot.ts && rm -f src/ts/version.ts && rm -f *.d.ts && mkdir dist && mkdir docs && cd coverage && mkdir cloc && cd ..",
|
|
40
34
|
"peg": "rm -f src/ts/jssm-dot.js && pegjs src/ts/jssm-dot.peg && node src/buildjs/fixparser.js && rm src/ts/jssm-dot.js",
|
|
41
35
|
"make_cjs": "rollup -c",
|
|
42
36
|
"make_iife": "rollup -c rollup.config.iife.js",
|
|
@@ -47,7 +41,7 @@
|
|
|
47
41
|
"audit": "text_audit -r -t major MAJOR wasteful WASTEFUL any mixed fixme FIXME checkme CHECKME testme TESTME stochable STOCHABLE todo TODO comeback COMEBACK whargarbl WHARGARBL -g ./src/ts/**/*.{js,ts}",
|
|
48
42
|
"vet": "npm run eslint && npm run audit",
|
|
49
43
|
"benny": "node ./src/buildjs/benchmark.js",
|
|
50
|
-
"build": "npm run vet && npm run test && npm run site && npm run changelog && npm run docs && npm run readme",
|
|
44
|
+
"build": "npm run vet && npm run test && npm run site && npm run changelog && npm run docs && npm run cloc && npm run readme",
|
|
51
45
|
"clean_bench": "npm run test && npm run benny",
|
|
52
46
|
"qbuild": "npm run test",
|
|
53
47
|
"ci_build": "npm run vet && npm run test",
|
|
@@ -56,7 +50,8 @@
|
|
|
56
50
|
"min_cjs": "mv dist/jssm.es5.cjs.js dist/jssm.es5.cjs.nonmin.js && terser dist/jssm.es5.cjs.nonmin.js > dist/jssm.es5.cjs.js",
|
|
57
51
|
"site": "cp src/site/* docs/ && cp -r src/assets docs/assets/",
|
|
58
52
|
"docs": "typedoc src/ts/jssm.ts --options typedoc-options.js",
|
|
59
|
-
"
|
|
53
|
+
"cloc": "cloc --quiet ./src/** --exclude-list-file=./.clocignore --3 --json --out=./coverage/cloc/report_wt.json && cloc --quiet ./src/** --exclude-list-file=./.clocignore --exclude-dir=tests --3 --json --out=./coverage/cloc/report_nt.json && node ./src/buildjs/cloc_report.js",
|
|
54
|
+
"readme": "rm -f ./README.md && node ./src/buildjs/make_readme.js",
|
|
60
55
|
"changelog": "rm -f CHANGELOG.md && rm -f ./src/doc_md/CHANGELOG.md && better_git_changelog -b && cp CHANGELOG.* ./src/doc_md/"
|
|
61
56
|
},
|
|
62
57
|
"repository": {
|
|
@@ -110,7 +105,7 @@
|
|
|
110
105
|
"@typescript-eslint/eslint-plugin": "^4.13.0",
|
|
111
106
|
"@typescript-eslint/parser": "^4.13.0",
|
|
112
107
|
"benny": "^3.7.1",
|
|
113
|
-
"
|
|
108
|
+
"cloc": "^2.9.0",
|
|
114
109
|
"coveralls": "^3.0.11",
|
|
115
110
|
"eslint": "^7.32.0",
|
|
116
111
|
"eslint-plugin-fp": "^2.3.0",
|
|
@@ -129,10 +124,12 @@
|
|
|
129
124
|
"text_audit": "^0.9.3",
|
|
130
125
|
"ts-jest": "^27.0.7",
|
|
131
126
|
"typedoc": "^0.22.15",
|
|
132
|
-
"typescript": "^4.6.4"
|
|
127
|
+
"typescript": "^4.6.4",
|
|
128
|
+
"xml2js": "^0.4.23"
|
|
133
129
|
},
|
|
134
130
|
"dependencies": {
|
|
135
131
|
"better_git_changelog": "^1.6.1",
|
|
132
|
+
"circular_buffer_js": "^1.10.0",
|
|
136
133
|
"reduce-to-639-1": "^1.0.4"
|
|
137
134
|
}
|
|
138
135
|
}
|