jssm 5.72.1 → 5.72.4

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/jssm.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  declare type StateType = string;
2
2
  import { JssmGenericState, JssmGenericConfig, JssmTransition, JssmTransitionList, // JssmTransitionRule,
3
- JssmMachineInternalState, JssmParseTree, JssmStateDeclaration, JssmArrow, JssmArrowDirection, JssmArrowKind, JssmLayout, FslDirection, FslTheme, HookDescription, HookHandler } from './jssm_types';
3
+ JssmMachineInternalState, JssmParseTree, JssmStateDeclaration, JssmArrow, JssmArrowDirection, JssmArrowKind, JssmLayout, FslDirection, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult } from './jssm_types';
4
4
  import { seq, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key } from './jssm_util';
5
5
  import { shapes, gviz_shapes, named_colors } from './jssm_constants';
6
6
  import { version } from './version';
@@ -223,16 +223,16 @@ declare class Machine<mDT> {
223
223
  _has_exit_hooks: boolean;
224
224
  _has_global_action_hooks: boolean;
225
225
  _has_transition_hooks: boolean;
226
- _hooks: Map<string, Function>;
227
- _named_hooks: Map<string, Function>;
228
- _entry_hooks: Map<string, Function>;
229
- _exit_hooks: Map<string, Function>;
230
- _global_action_hooks: Map<string, Function>;
231
- _any_action_hook: HookHandler | undefined;
232
- _standard_transition_hook: HookHandler | undefined;
233
- _main_transition_hook: HookHandler | undefined;
234
- _forced_transition_hook: HookHandler | undefined;
235
- _any_transition_hook: HookHandler | undefined;
226
+ _hooks: Map<string, HookHandler<mDT>>;
227
+ _named_hooks: Map<string, HookHandler<mDT>>;
228
+ _entry_hooks: Map<string, HookHandler<mDT>>;
229
+ _exit_hooks: Map<string, HookHandler<mDT>>;
230
+ _global_action_hooks: Map<string, HookHandler<mDT>>;
231
+ _any_action_hook: HookHandler<mDT> | undefined;
232
+ _standard_transition_hook: HookHandler<mDT> | undefined;
233
+ _main_transition_hook: HookHandler<mDT> | undefined;
234
+ _forced_transition_hook: HookHandler<mDT> | undefined;
235
+ _any_transition_hook: HookHandler<mDT> | undefined;
236
236
  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, data }: JssmGenericConfig<mDT>);
237
237
  /********
238
238
  *
@@ -538,17 +538,17 @@ declare class Machine<mDT> {
538
538
  is_complete(): boolean;
539
539
  state_is_complete(whichState: StateType): boolean;
540
540
  has_completes(): boolean;
541
- set_hook(HookDesc: HookDescription): void;
542
- hook(from: string, to: string, handler: HookHandler): Machine<mDT>;
543
- hook_action(from: string, to: string, action: string, handler: HookHandler): Machine<mDT>;
544
- hook_global_action(action: string, handler: HookHandler): Machine<mDT>;
545
- hook_any_action(handler: HookHandler): Machine<mDT>;
546
- hook_standard_transition(handler: HookHandler): Machine<mDT>;
547
- hook_main_transition(handler: HookHandler): Machine<mDT>;
548
- hook_forced_transition(handler: HookHandler): Machine<mDT>;
549
- hook_any_transition(handler: HookHandler): Machine<mDT>;
550
- hook_entry(to: string, handler: HookHandler): Machine<mDT>;
551
- hook_exit(from: string, handler: HookHandler): Machine<mDT>;
541
+ set_hook(HookDesc: HookDescription<mDT>): void;
542
+ hook(from: string, to: string, handler: HookHandler<mDT>): Machine<mDT>;
543
+ hook_action(from: string, to: string, action: string, handler: HookHandler<mDT>): Machine<mDT>;
544
+ hook_global_action(action: string, handler: HookHandler<mDT>): Machine<mDT>;
545
+ hook_any_action(handler: HookHandler<mDT>): Machine<mDT>;
546
+ hook_standard_transition(handler: HookHandler<mDT>): Machine<mDT>;
547
+ hook_main_transition(handler: HookHandler<mDT>): Machine<mDT>;
548
+ hook_forced_transition(handler: HookHandler<mDT>): Machine<mDT>;
549
+ hook_any_transition(handler: HookHandler<mDT>): Machine<mDT>;
550
+ hook_entry(to: string, handler: HookHandler<mDT>): Machine<mDT>;
551
+ hook_exit(from: string, handler: HookHandler<mDT>): Machine<mDT>;
552
552
  edges_between(from: string, to: string): JssmTransition<mDT>[];
553
553
  transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
554
554
  /********
@@ -669,4 +669,7 @@ declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: a
669
669
  *
670
670
  */
671
671
  declare function from<mDT>(MachineAsString: string, ExtraConstructorFields?: Partial<JssmGenericConfig<mDT>> | undefined): Machine<mDT>;
672
- export { version, transfer_state_properties, Machine, make, wrap_parse as parse, compile, sm, from, arrow_direction, arrow_left_kind, arrow_right_kind, seq, weighted_rand_select, histograph, weighted_sample_select, weighted_histo_key, shapes, gviz_shapes, named_colors };
672
+ declare function is_hook_complex_result<mDT>(hr: unknown): hr is HookComplexResult<mDT>;
673
+ declare function is_hook_rejection<mDT>(hr: HookResult<mDT>): boolean;
674
+ declare function abstract_hook_step<mDT>(maybe_hook: HookHandler<mDT> | undefined, hook_args: HookContext<mDT>): HookComplexResult<mDT>;
675
+ export { version, transfer_state_properties, Machine, make, wrap_parse as parse, compile, sm, from, arrow_direction, arrow_left_kind, arrow_right_kind, seq, weighted_rand_select, histograph, weighted_sample_select, weighted_histo_key, shapes, gviz_shapes, named_colors, is_hook_rejection, is_hook_complex_result, abstract_hook_step };
package/jssm_types.d.ts CHANGED
@@ -149,57 +149,66 @@ declare type JssmCompileSeStart<DataType> = {
149
149
  };
150
150
  declare type JssmParseTree = Array<JssmCompileSeStart<StateType>>;
151
151
  declare type JssmParseFunctionType = (string: any) => JssmParseTree;
152
- declare type HookHandler = Function;
153
- declare type BasicHookDescription = {
152
+ declare type BasicHookDescription<mDT> = {
154
153
  kind: 'hook';
155
154
  from: string;
156
155
  to: string;
157
- handler: HookHandler;
156
+ handler: HookHandler<mDT>;
158
157
  };
159
- declare type HookDescriptionWithAction = {
158
+ declare type HookDescriptionWithAction<mDT> = {
160
159
  kind: 'named';
161
160
  from: string;
162
161
  to: string;
163
162
  action: string;
164
- handler: HookHandler;
163
+ handler: HookHandler<mDT>;
165
164
  };
166
- declare type StandardTransitionHook = {
165
+ declare type StandardTransitionHook<mDT> = {
167
166
  kind: 'standard transition';
168
- handler: HookHandler;
167
+ handler: HookHandler<mDT>;
169
168
  };
170
- declare type MainTransitionHook = {
169
+ declare type MainTransitionHook<mDT> = {
171
170
  kind: 'main transition';
172
- handler: HookHandler;
171
+ handler: HookHandler<mDT>;
173
172
  };
174
- declare type ForcedTransitionHook = {
173
+ declare type ForcedTransitionHook<mDT> = {
175
174
  kind: 'forced transition';
176
- handler: HookHandler;
175
+ handler: HookHandler<mDT>;
177
176
  };
178
- declare type AnyTransitionHook = {
177
+ declare type AnyTransitionHook<mDT> = {
179
178
  kind: 'any transition';
180
- handler: HookHandler;
179
+ handler: HookHandler<mDT>;
181
180
  };
182
- declare type GlobalActionHook = {
181
+ declare type GlobalActionHook<mDT> = {
183
182
  kind: 'global action';
184
183
  action: string;
185
- handler: HookHandler;
184
+ handler: HookHandler<mDT>;
186
185
  };
187
- declare type AnyActionHook = {
186
+ declare type AnyActionHook<mDT> = {
188
187
  kind: 'any action';
189
- handler: HookHandler;
188
+ handler: HookHandler<mDT>;
190
189
  };
191
- declare type EntryHook = {
190
+ declare type EntryHook<mDT> = {
192
191
  kind: 'entry';
193
192
  to: string;
194
- handler: HookHandler;
193
+ handler: HookHandler<mDT>;
195
194
  };
196
- declare type ExitHook = {
195
+ declare type ExitHook<mDT> = {
197
196
  kind: 'exit';
198
197
  from: string;
199
- handler: HookHandler;
198
+ handler: HookHandler<mDT>;
200
199
  };
201
- declare type HookDescription = BasicHookDescription | HookDescriptionWithAction | GlobalActionHook | AnyActionHook | StandardTransitionHook | MainTransitionHook | ForcedTransitionHook | AnyTransitionHook | EntryHook | ExitHook;
200
+ 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 HookComplexResult<mDT> = {
202
+ pass: boolean;
203
+ state?: StateType;
204
+ data?: mDT;
205
+ };
206
+ declare type HookResult<mDT> = true | false | undefined | void | HookComplexResult<mDT>;
207
+ declare type HookContext<mDT> = {
208
+ data: mDT;
209
+ };
210
+ declare type HookHandler<mDT> = (hook_context: HookContext<mDT>) => HookResult<mDT>;
202
211
  declare type JssmErrorExtendedInfo = {
203
212
  requested_state?: StateType | undefined;
204
213
  };
205
- export { JssmColor, JssmTransition, JssmTransitions, JssmTransitionList, JssmTransitionRule, JssmArrow, JssmArrowKind, JssmArrowDirection, JssmGenericConfig, JssmGenericState, JssmGenericMachine, JssmParseTree, JssmCompileSe, JssmCompileSeStart, JssmCompileRule, JssmPermitted, JssmPermittedOpt, JssmResult, JssmStateDeclaration, JssmStateDeclarationRule, JssmLayout, JssmParseFunctionType, JssmMachineInternalState, JssmErrorExtendedInfo, FslDirection, FslTheme, HookDescription, HookHandler };
214
+ export { JssmColor, JssmTransition, JssmTransitions, JssmTransitionList, JssmTransitionRule, JssmArrow, JssmArrowKind, JssmArrowDirection, JssmGenericConfig, JssmGenericState, JssmGenericMachine, JssmParseTree, JssmCompileSe, JssmCompileSeStart, JssmCompileRule, JssmPermitted, JssmPermittedOpt, JssmResult, JssmStateDeclaration, JssmStateDeclarationRule, JssmLayout, JssmParseFunctionType, JssmMachineInternalState, JssmErrorExtendedInfo, FslDirection, FslTheme, HookDescription, HookHandler, HookContext, HookResult, HookComplexResult };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jssm",
3
- "version": "5.72.1",
3
+ "version": "5.72.4",
4
4
  "engines": {
5
5
  "node": ">=10.0.0"
6
6
  },