jssm 5.45.0 → 5.47.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/dist/es6/jssm.d.ts +3 -1
- package/dist/es6/jssm.js +13 -6
- package/dist/es6/jssm_types.d.ts +6 -5
- package/dist/es6/version.js +1 -1
- package/dist/jssm.es5.cjs.js +1 -1
- package/jssm.d.ts +3 -1
- package/jssm_types.d.ts +6 -5
- package/package.json +2 -3
- package/.codeclimate.yml +0 -22
- package/.editorconfig +0 -12
- package/.eslintrc +0 -20
- package/.nycrc +0 -6
- package/.travis.yml +0 -9
- package/dist/jssm.es5.iife.js +0 -1
- package/jest-spec.config.js +0 -27
- package/jest-stoch.config.js +0 -27
- package/rollup.config.iife.js +0 -44
- package/rollup.config.js +0 -44
- package/src/demo/index.html +0 -38
- package/src/demo/style.css +0 -2
- package/src/ts/jssm-dot.peg +0 -928
- package/src/ts/jssm.ts +0 -1239
- package/src/ts/jssm_types.ts +0 -385
- package/src/ts/jssm_util.ts +0 -117
- package/src/ts/tests/actions.spec.ts +0 -167
- package/src/ts/tests/arrange.spec.ts +0 -72
- package/src/ts/tests/arrange.stoch.ts +0 -4
- package/src/ts/tests/array_box_if_string.spec.ts +0 -30
- package/src/ts/tests/array_transitions.spec.ts +0 -129
- package/src/ts/tests/arrow unicode.spec.ts +0 -88
- package/src/ts/tests/arrow.spec.ts +0 -124
- package/src/ts/tests/colors.spec.ts +0 -58
- package/src/ts/tests/comment.spec.ts +0 -134
- package/src/ts/tests/compile.spec.ts +0 -79
- package/src/ts/tests/constants.spec.ts +0 -98
- package/src/ts/tests/cycles.spec.ts +0 -153
- package/src/ts/tests/dot_preamble.spec.ts +0 -16
- package/src/ts/tests/embedded_sm.spec.ts +0 -36
- package/src/ts/tests/flow.spec.ts +0 -22
- package/src/ts/tests/forced transitions.spec.ts +0 -26
- package/src/ts/tests/general.spec.ts +0 -933
- package/src/ts/tests/graph node lists.spec.ts +0 -21
- package/src/ts/tests/histo.spec.ts +0 -24
- package/src/ts/tests/hooks.spec.ts +0 -209
- package/src/ts/tests/language.spec.ts +0 -37
- package/src/ts/tests/language_data/belarussian.json +0 -14
- package/src/ts/tests/language_data/bengali.json +0 -16
- package/src/ts/tests/language_data/emoji.json +0 -22
- package/src/ts/tests/language_data/english.json +0 -17
- package/src/ts/tests/language_data/french.json +0 -17
- package/src/ts/tests/language_data/german.json +0 -17
- package/src/ts/tests/language_data/hebrew.json +0 -16
- package/src/ts/tests/language_data/portuguese.json +0 -13
- package/src/ts/tests/language_data/russian.json +0 -13
- package/src/ts/tests/language_data/spanish.json +0 -17
- package/src/ts/tests/language_data/ukrainian.json +0 -19
- package/src/ts/tests/layout.spec.ts +0 -29
- package/src/ts/tests/machine_attributes.spec.ts +0 -398
- package/src/ts/tests/machine_name.spec.ts +0 -14
- package/src/ts/tests/named lists.spec.ts +0 -24
- package/src/ts/tests/nominated states.spec.ts +0 -133
- package/src/ts/tests/parse actions.spec.ts +0 -32
- package/src/ts/tests/parse.spec.ts +0 -94
- package/src/ts/tests/probability.spec.ts +0 -146
- package/src/ts/tests/r639.spec.ts +0 -27
- package/src/ts/tests/sample_select.spec.ts +0 -173
- package/src/ts/tests/seq.spec.ts +0 -14
- package/src/ts/tests/seq.stoch.ts +0 -83
- package/src/ts/tests/shapes.spec.ts +0 -63
- package/src/ts/tests/sm_tag.spec.ts +0 -37
- package/src/ts/tests/special characters.spec.ts +0 -39
- package/src/ts/tests/state_declaration.spec.ts +0 -214
- package/src/ts/tests/state_style.spec.ts +0 -82
- package/src/ts/tests/stop light.spec.ts +0 -157
- package/src/ts/tests/stripes.spec.ts +0 -52
- package/src/ts/tests/theme.spec.ts +0 -45
- package/src/ts/tests/weighted_histo_key.spec.ts +0 -22
- package/src/ts/tests/weighted_rand_select.spec.ts +0 -27
- package/src/ts/tests/weighted_sample_select.spec.ts +0 -24
- package/src/ts/version.ts +0 -3
- package/tree.txt +0 -1794
- package/tsconfig.json +0 -27
package/dist/es6/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 } from './jssm_types';
|
|
3
|
+
JssmMachineInternalState, JssmParseTree, JssmStateDeclaration, JssmArrow, JssmArrowDirection, JssmArrowKind, JssmLayout, FslDirection, FslTheme, HookDescription, HookHandler } from './jssm_types';
|
|
4
4
|
import { seq, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key } from './jssm_util';
|
|
5
5
|
import { version } from './version';
|
|
6
6
|
declare function arrow_direction(arrow: JssmArrow): JssmArrowDirection;
|
|
@@ -90,6 +90,8 @@ declare class Machine<mDT> {
|
|
|
90
90
|
state_is_complete(whichState: StateType): boolean;
|
|
91
91
|
has_completes(): boolean;
|
|
92
92
|
set_hook(HookDesc: HookDescription): void;
|
|
93
|
+
hook(from: string, to: string, handler: HookHandler): Machine<mDT>;
|
|
94
|
+
hook_action(from: string, to: string, action: string, handler: HookHandler): Machine<mDT>;
|
|
93
95
|
action(name: StateType, newData?: mDT): boolean;
|
|
94
96
|
transition(newState: StateType, newData?: mDT): boolean;
|
|
95
97
|
force_transition(newState: StateType, newData?: mDT): boolean;
|
package/dist/es6/jssm.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { reduce as reduce_to_639 } from 'reduce-to-639-1';
|
|
3
3
|
import { seq, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key, array_box_if_string, hook_name, named_hook_name } from './jssm_util';
|
|
4
4
|
import { parse } from './jssm-dot'; // TODO FIXME WHARGARBL this could be post-typed
|
|
5
|
-
import { version } from './version'; // replaced from package.js in build
|
|
5
|
+
import { version } from './version'; // replaced from package.js in build
|
|
6
6
|
/* eslint-disable complexity */
|
|
7
7
|
function arrow_direction(arrow) {
|
|
8
8
|
switch (String(arrow)) {
|
|
@@ -404,7 +404,7 @@ class Machine {
|
|
|
404
404
|
// set up the action mapping, so that actions can be looked up by origin
|
|
405
405
|
if (tr.action) {
|
|
406
406
|
// forward mapping first by action name
|
|
407
|
-
let actionMap = this._actions.get(tr.action);
|
|
407
|
+
let actionMap = this._actions.get(tr.action);
|
|
408
408
|
if (!(actionMap)) {
|
|
409
409
|
actionMap = new Map();
|
|
410
410
|
this._actions.set(tr.action, actionMap);
|
|
@@ -416,7 +416,7 @@ class Machine {
|
|
|
416
416
|
actionMap.set(tr.from, thisEdgeId);
|
|
417
417
|
}
|
|
418
418
|
// reverse mapping first by state origin name
|
|
419
|
-
let rActionMap = this._reverse_actions.get(tr.from);
|
|
419
|
+
let rActionMap = this._reverse_actions.get(tr.from);
|
|
420
420
|
if (!(rActionMap)) {
|
|
421
421
|
rActionMap = new Map();
|
|
422
422
|
this._reverse_actions.set(tr.from, rActionMap);
|
|
@@ -720,6 +720,16 @@ class Machine {
|
|
|
720
720
|
throw new RangeError(`Unknown hook type ${HookDesc.kind}, should be impossible`);
|
|
721
721
|
}
|
|
722
722
|
}
|
|
723
|
+
hook(from, to, handler) {
|
|
724
|
+
// TODO: should this throw if setting the hook fails, or ignore it and continue?
|
|
725
|
+
this.set_hook({ kind: 'hook', from, to, handler });
|
|
726
|
+
return this;
|
|
727
|
+
}
|
|
728
|
+
hook_action(from, to, action, handler) {
|
|
729
|
+
// TODO: should this throw if setting the hook fails, or ignore it and continue?
|
|
730
|
+
this.set_hook({ kind: 'named', from, to, action, handler });
|
|
731
|
+
return this;
|
|
732
|
+
}
|
|
723
733
|
// remove_hook(HookDesc: HookDescription) {
|
|
724
734
|
// throw 'TODO: Should remove hook here';
|
|
725
735
|
// }
|
|
@@ -832,13 +842,11 @@ class Machine {
|
|
|
832
842
|
return this._edges[idx];
|
|
833
843
|
}
|
|
834
844
|
valid_action(action, _newData) {
|
|
835
|
-
// todo whargarbl implement hooks
|
|
836
845
|
// todo whargarbl implement data stuff
|
|
837
846
|
// todo major incomplete whargarbl comeback
|
|
838
847
|
return this.current_action_for(action) !== undefined;
|
|
839
848
|
}
|
|
840
849
|
valid_transition(newState, _newData) {
|
|
841
|
-
// todo whargarbl implement hooks
|
|
842
850
|
// todo whargarbl implement data stuff
|
|
843
851
|
// todo major incomplete whargarbl comeback
|
|
844
852
|
const transition_for = this.lookup_transition_for(this.state(), newState);
|
|
@@ -851,7 +859,6 @@ class Machine {
|
|
|
851
859
|
return true;
|
|
852
860
|
}
|
|
853
861
|
valid_force_transition(newState, _newData) {
|
|
854
|
-
// todo whargarbl implement hooks
|
|
855
862
|
// todo whargarbl implement data stuff
|
|
856
863
|
// todo major incomplete whargarbl comeback
|
|
857
864
|
return (this.lookup_transition_for(this.state(), newState) !== undefined);
|
package/dist/es6/jssm_types.d.ts
CHANGED
|
@@ -148,28 +148,29 @@ declare type JssmCompileSeStart<DataType> = {
|
|
|
148
148
|
};
|
|
149
149
|
declare type JssmParseTree = Array<JssmCompileSeStart<StateType>>;
|
|
150
150
|
declare type JssmParseFunctionType = (string: any) => JssmParseTree;
|
|
151
|
+
declare type HookHandler = Function;
|
|
151
152
|
declare type BasicHookDescription = {
|
|
152
153
|
kind: 'hook';
|
|
153
154
|
from: string;
|
|
154
155
|
to: string;
|
|
155
|
-
handler:
|
|
156
|
+
handler: HookHandler;
|
|
156
157
|
};
|
|
157
158
|
declare type HookDescriptionWithAction = {
|
|
158
159
|
kind: 'named';
|
|
159
160
|
from: string;
|
|
160
161
|
to: string;
|
|
161
162
|
action: string;
|
|
162
|
-
handler:
|
|
163
|
+
handler: HookHandler;
|
|
163
164
|
};
|
|
164
165
|
declare type EntryHook = {
|
|
165
166
|
kind: 'entry';
|
|
166
167
|
to: string;
|
|
167
|
-
handler:
|
|
168
|
+
handler: HookHandler;
|
|
168
169
|
};
|
|
169
170
|
declare type ExitHook = {
|
|
170
171
|
kind: 'exit';
|
|
171
172
|
from: string;
|
|
172
|
-
handler:
|
|
173
|
+
handler: HookHandler;
|
|
173
174
|
};
|
|
174
175
|
declare type HookDescription = BasicHookDescription | HookDescriptionWithAction | EntryHook | ExitHook;
|
|
175
|
-
export { JssmColor, JssmTransition, JssmTransitions, JssmTransitionList, JssmTransitionRule, JssmArrow, JssmArrowKind, JssmArrowDirection, JssmGenericConfig, JssmGenericState, JssmGenericMachine, JssmParseTree, JssmCompileSe, JssmCompileSeStart, JssmCompileRule, JssmPermitted, JssmPermittedOpt, JssmResult, JssmStateDeclaration, JssmStateDeclarationRule, JssmLayout, JssmParseFunctionType, JssmMachineInternalState, FslDirection, FslTheme, HookDescription };
|
|
176
|
+
export { JssmColor, JssmTransition, JssmTransitions, JssmTransitionList, JssmTransitionRule, JssmArrow, JssmArrowKind, JssmArrowDirection, JssmGenericConfig, JssmGenericState, JssmGenericMachine, JssmParseTree, JssmCompileSe, JssmCompileSeStart, JssmCompileRule, JssmPermitted, JssmPermittedOpt, JssmResult, JssmStateDeclaration, JssmStateDeclarationRule, JssmLayout, JssmParseFunctionType, JssmMachineInternalState, FslDirection, FslTheme, HookDescription, HookHandler };
|
package/dist/es6/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version = "5.
|
|
1
|
+
const version = "5.47.0";
|
|
2
2
|
export { version };
|