jssm 5.72.0 → 5.72.3

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, HookResult } 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
  *
@@ -260,6 +260,21 @@ declare class Machine<mDT> {
260
260
  *
261
261
  */
262
262
  state(): StateType;
263
+ /*********
264
+ *
265
+ * Get the current data of a machine.
266
+ *
267
+ * ```typescript
268
+ * import * as jssm from 'jssm';
269
+ *
270
+ * const switch = jssm.from('on <=> off;', {data: 1});
271
+ * console.log( switch.data() ); // 1
272
+ * ```
273
+ *
274
+ * @typeparam mDT The type of the machine data member; usually omitted
275
+ *
276
+ */
277
+ data(): mDT;
263
278
  /********
264
279
  *
265
280
  * Check whether a given state is final (either has no exits or is marked
@@ -523,17 +538,17 @@ declare class Machine<mDT> {
523
538
  is_complete(): boolean;
524
539
  state_is_complete(whichState: StateType): boolean;
525
540
  has_completes(): boolean;
526
- set_hook(HookDesc: HookDescription): void;
527
- hook(from: string, to: string, handler: HookHandler): Machine<mDT>;
528
- hook_action(from: string, to: string, action: string, handler: HookHandler): Machine<mDT>;
529
- hook_global_action(action: string, handler: HookHandler): Machine<mDT>;
530
- hook_any_action(handler: HookHandler): Machine<mDT>;
531
- hook_standard_transition(handler: HookHandler): Machine<mDT>;
532
- hook_main_transition(handler: HookHandler): Machine<mDT>;
533
- hook_forced_transition(handler: HookHandler): Machine<mDT>;
534
- hook_any_transition(handler: HookHandler): Machine<mDT>;
535
- hook_entry(to: string, handler: HookHandler): Machine<mDT>;
536
- 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>;
537
552
  edges_between(from: string, to: string): JssmTransition<mDT>[];
538
553
  transition_impl(newStateOrAction: StateType, newData: mDT | undefined, wasForced: boolean, wasAction: boolean): boolean;
539
554
  /********
@@ -654,4 +669,5 @@ declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: a
654
669
  *
655
670
  */
656
671
  declare function from<mDT>(MachineAsString: string, ExtraConstructorFields?: Partial<JssmGenericConfig<mDT>> | undefined): Machine<mDT>;
657
- 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_rejection(hr: HookResult): boolean;
673
+ 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 };
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 = true | false | undefined | void;
207
+ declare type HookContext<mDT> = {
208
+ data: mDT;
209
+ };
210
+ declare type HookHandler<mDT> = (hook_context: HookContext<mDT>) => HookResult;
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.0",
3
+ "version": "5.72.3",
4
4
  "engines": {
5
5
  "node": ">=10.0.0"
6
6
  },