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.
@@ -15,13 +15,19 @@ module.exports = {
15
15
 
16
16
  coverageThreshold : {
17
17
  global : {
18
- branches : 1,
19
- functions : 1,
20
- lines : 1,
21
- statements : 1,
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 HookDescription<mDT> = BasicHookDescription<mDT> | HookDescriptionWithAction<mDT> | GlobalActionHook<mDT> | AnyActionHook<mDT> | StandardTransitionHook<mDT> | MainTransitionHook<mDT> | ForcedTransitionHook<mDT> | AnyTransitionHook<mDT> | EntryHook<mDT> | ExitHook<mDT>;
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.73.0",
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-spec": "jest -c jest-spec.config.js --color --verbose",
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
- "rmgenerated": "rm -f src/ts/jssm-dot.ts && rm -f src/ts/version.ts && rm -f *.d.ts",
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
- "readme": "rm ./README.md && node ./src/buildjs/make_readme.js",
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
- "circular_buffer_js": "^1.10.0",
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
  }