@haibun/core 1.73.0 → 1.74.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/build/applyEffectFeatures.d.ts.map +1 -1
- package/build/applyEffectFeatures.js +4 -2
- package/build/applyEffectFeatures.js.map +1 -1
- package/build/currentVersion.d.ts +1 -1
- package/build/currentVersion.js +1 -1
- package/build/lib/astepper.d.ts +2 -3
- package/build/lib/astepper.d.ts.map +1 -1
- package/build/lib/astepper.js.map +1 -1
- package/build/lib/defs.d.ts +48 -18
- package/build/lib/defs.d.ts.map +1 -1
- package/build/lib/defs.js +17 -2
- package/build/lib/defs.js.map +1 -1
- package/build/lib/domain-types.d.ts +22 -2
- package/build/lib/domain-types.d.ts.map +1 -1
- package/build/lib/domain-types.js +54 -3
- package/build/lib/domain-types.js.map +1 -1
- package/build/lib/feature-variables.d.ts +8 -9
- package/build/lib/feature-variables.d.ts.map +1 -1
- package/build/lib/feature-variables.js +30 -12
- package/build/lib/feature-variables.js.map +1 -1
- package/build/lib/namedVars.d.ts +10 -15
- package/build/lib/namedVars.d.ts.map +1 -1
- package/build/lib/namedVars.js +130 -114
- package/build/lib/namedVars.js.map +1 -1
- package/build/lib/populateActionArgs.d.ts +4 -0
- package/build/lib/populateActionArgs.d.ts.map +1 -0
- package/build/lib/populateActionArgs.js +58 -0
- package/build/lib/populateActionArgs.js.map +1 -0
- package/build/lib/test/SetTimeStepper.d.ts +2 -2
- package/build/lib/test/SetTimeStepper.d.ts.map +1 -1
- package/build/lib/test/SetTimeStepper.js +6 -1
- package/build/lib/test/SetTimeStepper.js.map +1 -1
- package/build/lib/test/TestSteps.d.ts +3 -3
- package/build/lib/test/TestSteps.d.ts.map +1 -1
- package/build/lib/test/TestSteps.js +3 -1
- package/build/lib/test/TestSteps.js.map +1 -1
- package/build/lib/test/lib.d.ts.map +1 -1
- package/build/lib/test/lib.js +5 -2
- package/build/lib/test/lib.js.map +1 -1
- package/build/lib/util/featureStep-executor.d.ts +6 -0
- package/build/lib/util/featureStep-executor.d.ts.map +1 -0
- package/build/lib/util/featureStep-executor.js +39 -0
- package/build/lib/util/featureStep-executor.js.map +1 -0
- package/build/lib/util/index.d.ts +1 -2
- package/build/lib/util/index.d.ts.map +1 -1
- package/build/lib/util/index.js +2 -3
- package/build/lib/util/index.js.map +1 -1
- package/build/lib/util/resolveAndExecuteStatement.js +1 -1
- package/build/lib/util/resolveAndExecuteStatement.js.map +1 -1
- package/build/phases/Executor.d.ts +3 -3
- package/build/phases/Executor.d.ts.map +1 -1
- package/build/phases/Executor.js +53 -27
- package/build/phases/Executor.js.map +1 -1
- package/build/phases/Resolver.d.ts +2 -5
- package/build/phases/Resolver.d.ts.map +1 -1
- package/build/phases/Resolver.js +28 -20
- package/build/phases/Resolver.js.map +1 -1
- package/build/runner.js +2 -2
- package/build/runner.js.map +1 -1
- package/build/steps/debugger-stepper.d.ts +6 -54
- package/build/steps/debugger-stepper.d.ts.map +1 -1
- package/build/steps/debugger-stepper.js +53 -20
- package/build/steps/debugger-stepper.js.map +1 -1
- package/build/steps/haibun.d.ts +27 -87
- package/build/steps/haibun.d.ts.map +1 -1
- package/build/steps/haibun.js +78 -189
- package/build/steps/haibun.js.map +1 -1
- package/build/steps/narrator.d.ts +81 -0
- package/build/steps/narrator.d.ts.map +1 -0
- package/build/steps/narrator.js +102 -0
- package/build/steps/narrator.js.map +1 -0
- package/build/steps/parse.d.ts +1 -1
- package/build/steps/variables-stepper.d.ts +7 -40
- package/build/steps/variables-stepper.d.ts.map +1 -1
- package/build/steps/variables-stepper.js +102 -42
- package/build/steps/variables-stepper.js.map +1 -1
- package/package.json +1 -1
- package/build/lib/ReadlinePrompter.d.ts +0 -9
- package/build/lib/ReadlinePrompter.d.ts.map +0 -1
- package/build/lib/ReadlinePrompter.js +0 -27
- package/build/lib/ReadlinePrompter.js.map +0 -1
- package/build/lib/create-world.d.ts +0 -3
- package/build/lib/create-world.d.ts.map +0 -1
- package/build/lib/create-world.js +0 -31
- package/build/lib/create-world.js.map +0 -1
- package/build/lib/util/executeStep.d.ts +0 -5
- package/build/lib/util/executeStep.d.ts.map +0 -1
- package/build/lib/util/executeStep.js +0 -16
- package/build/lib/util/executeStep.js.map +0 -1
package/build/lib/namedVars.js
CHANGED
|
@@ -1,138 +1,154 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const TYPE_ENV = 'e_';
|
|
9
|
-
const TYPE_VAR = 'b_';
|
|
10
|
-
// from source or literal
|
|
11
|
-
const TYPE_ENV_OR_VAR_OR_LITERAL = 't_';
|
|
12
|
-
export const matchGroups = (num = 0) => {
|
|
13
|
-
const b = `\`(?<${TYPE_VAR}${num}>.+)\``; // var
|
|
14
|
-
const e = `{(?<${TYPE_ENV}${num}>.+)}`; // env var
|
|
15
|
-
// FIXME this is being assigned as t_
|
|
16
|
-
const s = `\\[(?<${TYPE_SPECIAL}${num}>.+)\\]`; // special
|
|
17
|
-
const c = `<(?<${TYPE_CREDENTIAL}${num}>.+)>`; // credential
|
|
18
|
-
const q = `"(?<${TYPE_QUOTED}${num}>.+)"`; // quoted string
|
|
19
|
-
const t = `(?<${TYPE_ENV_OR_VAR_OR_LITERAL}${num}>.+)`; // var or enve or literal
|
|
20
|
-
return `(${b}|${e}|${s}|${c}|${q}|${t})`;
|
|
21
|
-
};
|
|
22
|
-
export const namedInterpolation = (inp, types = BASE_TYPES) => {
|
|
1
|
+
import { Origin } from './defs.js';
|
|
2
|
+
import { DOMAIN_STRING } from './domain-types.js';
|
|
3
|
+
export const TYPE_QUOTED = 'q_';
|
|
4
|
+
export const TYPE_ENV = 'e_';
|
|
5
|
+
export const TYPE_VAR = 'b_';
|
|
6
|
+
export const TYPE_ENV_OR_VAR_OR_LITERAL = 't_';
|
|
7
|
+
export const namedInterpolation = (inp) => {
|
|
23
8
|
if (!inp.includes('{')) {
|
|
24
|
-
return {
|
|
9
|
+
return { regexPattern: inp };
|
|
25
10
|
}
|
|
26
|
-
const
|
|
11
|
+
const stepValuesMap = {};
|
|
27
12
|
let last = 0;
|
|
28
|
-
let
|
|
13
|
+
let regexPattern = '';
|
|
29
14
|
let bs = inp.indexOf('{');
|
|
30
|
-
let be =
|
|
15
|
+
let be = -1;
|
|
31
16
|
let bail = 0;
|
|
32
|
-
let
|
|
17
|
+
let matchIndex = 0;
|
|
18
|
+
const placeholderRegex = '.+';
|
|
33
19
|
while (bs > -1 && bail++ < 400) {
|
|
34
|
-
|
|
20
|
+
regexPattern += inp.substring(last, bs);
|
|
35
21
|
be = inp.indexOf('}', bs);
|
|
36
22
|
if (be < 0) {
|
|
37
23
|
throw Error(`missing end bracket in ${inp}`);
|
|
38
24
|
}
|
|
39
|
-
|
|
25
|
+
const rawPair = inp.substring(bs + 1, be);
|
|
26
|
+
const { name, domain } = pairToVar(rawPair);
|
|
27
|
+
const precedingChar = inp.substring(bs - 1, bs);
|
|
28
|
+
const origin = inferOrigin(precedingChar);
|
|
29
|
+
// Strip any already-appended preceding delimiter from the
|
|
30
|
+
// regexPattern so the group pattern can insert the correct single
|
|
31
|
+
// delimiter.
|
|
32
|
+
if (precedingChar && ['$', '`', '<', '"'].includes(precedingChar)) {
|
|
33
|
+
// remove the last character we just added (the delimiter)
|
|
34
|
+
regexPattern = regexPattern.slice(0, -1);
|
|
35
|
+
}
|
|
36
|
+
stepValuesMap[name] = { term: name, domain, origin };
|
|
37
|
+
let matchGroupPattern;
|
|
38
|
+
if (origin === Origin.env) {
|
|
39
|
+
matchGroupPattern = `\\$(?<${TYPE_ENV}${matchIndex}>[A-Za-z_][A-Za-z0-9_]*)\\$`;
|
|
40
|
+
}
|
|
41
|
+
else if (origin === Origin.var) {
|
|
42
|
+
matchGroupPattern = `\`(?<${TYPE_VAR}${matchIndex}>.+)\``;
|
|
43
|
+
}
|
|
44
|
+
else if (origin === Origin.quoted) {
|
|
45
|
+
matchGroupPattern = `"(?<${TYPE_QUOTED}${matchIndex}>.+)"`;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// For a plain placeholder we accept several syntaxes and capture each
|
|
49
|
+
// into a distinct named group so callers can detect whether the
|
|
50
|
+
// value was quoted, backticked or a bare literal.
|
|
51
|
+
matchGroupPattern = `(?:"(?<${TYPE_QUOTED}${matchIndex}>.+)"|\`(?<${TYPE_VAR}${matchIndex}>.+)\`|(?<${TYPE_ENV_OR_VAR_OR_LITERAL}${matchIndex}>${placeholderRegex}))`;
|
|
52
|
+
}
|
|
53
|
+
regexPattern += matchGroupPattern;
|
|
54
|
+
matchIndex++;
|
|
40
55
|
bs = inp.indexOf('{', be);
|
|
41
|
-
|
|
42
|
-
|
|
56
|
+
// If the placeholder was wrapped with a delimiter on the left, the
|
|
57
|
+
// corresponding closing delimiter appears immediately after the '}' and
|
|
58
|
+
// must be skipped from the trailing substring to avoid duplicating it
|
|
59
|
+
// in the final regex. Otherwise include the character after '}' as
|
|
60
|
+
// normal.
|
|
61
|
+
if (precedingChar && ['$', '`', '<', '"'].includes(precedingChar)) {
|
|
62
|
+
last = be + 2;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
last = be + 1;
|
|
66
|
+
}
|
|
43
67
|
}
|
|
44
|
-
|
|
45
|
-
return {
|
|
68
|
+
regexPattern += inp.substring(last);
|
|
69
|
+
return { stepValuesMap, regexPattern };
|
|
46
70
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
71
|
+
export const matchGwtaToAction = (gwta, actionable, actionName, stepperName, step) => {
|
|
72
|
+
const { regexPattern, stepValuesMap } = namedInterpolation(gwta);
|
|
73
|
+
// anchor the pattern so the whole actionable matches
|
|
74
|
+
// use case-insensitive matching to be consistent with dePolite handling
|
|
75
|
+
const r = new RegExp(`^${regexPattern}$`, 'i');
|
|
76
|
+
return getMatch(actionable, r, actionName, stepperName, step, stepValuesMap);
|
|
77
|
+
};
|
|
78
|
+
// no-op
|
|
79
|
+
function pairToVar(pair) {
|
|
80
|
+
const [name, domainRaw] = pair.split(':').map((i) => i.trim());
|
|
81
|
+
const domain = domainRaw || DOMAIN_STRING;
|
|
82
|
+
return { name, domain };
|
|
56
83
|
}
|
|
57
84
|
export function getNamedMatches(regexp, what) {
|
|
58
85
|
const named = regexp.exec(what);
|
|
59
86
|
return named?.groups;
|
|
60
87
|
}
|
|
61
|
-
export const getMatch = (actionable, r, actionName, stepperName, step,
|
|
88
|
+
export const getMatch = (actionable, r, actionName, stepperName, step, stepValuesMap) => {
|
|
62
89
|
if (!r.test(actionable)) {
|
|
63
90
|
return;
|
|
64
91
|
}
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
const groups = getNamedMatches(r, actionable);
|
|
93
|
+
if (groups && stepValuesMap) {
|
|
94
|
+
const entries = Object.values(stepValuesMap);
|
|
95
|
+
let i = 0;
|
|
96
|
+
for (const ph of entries) {
|
|
97
|
+
// Prefer quoted, backtick, then bare literal captures.
|
|
98
|
+
const q = groups[`${TYPE_QUOTED}${i}`];
|
|
99
|
+
const b = groups[`${TYPE_VAR}${i}`];
|
|
100
|
+
const e = groups[`${TYPE_ENV}${i}`];
|
|
101
|
+
const t = groups[`${TYPE_ENV_OR_VAR_OR_LITERAL}${i}`];
|
|
102
|
+
const chosen = q ?? b ?? t;
|
|
103
|
+
// prefer the dedicated env group if present
|
|
104
|
+
const actuallyChosen = q ?? b ?? e ?? t;
|
|
105
|
+
if (actuallyChosen !== undefined) {
|
|
106
|
+
ph.term = chosen;
|
|
107
|
+
// set origin according to which capture matched
|
|
108
|
+
if (q !== undefined) {
|
|
109
|
+
ph.origin = Origin.quoted;
|
|
110
|
+
}
|
|
111
|
+
else if (b !== undefined) {
|
|
112
|
+
ph.origin = Origin.var;
|
|
113
|
+
}
|
|
114
|
+
else if (e !== undefined) {
|
|
115
|
+
ph.origin = Origin.env;
|
|
116
|
+
}
|
|
117
|
+
else if (t !== undefined) {
|
|
118
|
+
// bare literal capture - detect env syntax $NAME$ or inline name:domain
|
|
119
|
+
const envMatch = /^\$([A-Za-z_][A-Za-z0-9_]*)\$$/.exec(t);
|
|
120
|
+
if (envMatch) {
|
|
121
|
+
ph.term = envMatch[1];
|
|
122
|
+
ph.origin = Origin.env;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
ph.origin = Origin.fallthrough;
|
|
126
|
+
// If the bare literal looks like JSON, treat it as fallthrough.
|
|
127
|
+
const tTrim = String(t).trim();
|
|
128
|
+
if (tTrim.startsWith('{') || tTrim.startsWith('[')) {
|
|
129
|
+
ph.term = tTrim;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// domain 'statement' should force origin to 'statement'
|
|
134
|
+
if (ph.domain === 'statement')
|
|
135
|
+
ph.origin = Origin.statement;
|
|
94
136
|
}
|
|
137
|
+
i++;
|
|
95
138
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
namedFromVars[name] = toSet;
|
|
112
|
-
}
|
|
113
|
-
else if (namedKey.startsWith(TYPE_CREDENTIAL)) {
|
|
114
|
-
// must be from source
|
|
115
|
-
if (!shared.get(cred(namedValue))) {
|
|
116
|
-
throw Error(`no value for credential "${namedValue}" from ${JSON.stringify({ keys: Object.keys(shared), type })}`);
|
|
117
|
-
}
|
|
118
|
-
namedFromVars[name] = shared.get(cred(namedValue));
|
|
119
|
-
}
|
|
120
|
-
else if (namedKey.startsWith(TYPE_ENV)) {
|
|
121
|
-
// FIXME add test
|
|
122
|
-
const val = world.options?.envVariables[namedValue];
|
|
123
|
-
if (val === undefined) {
|
|
124
|
-
throw Error(`no env value for "${namedValue}" from ${JSON.stringify(world.options?.envVariables)}.\nenv values are passed via ${HAIBUN}_ENV and ${HAIBUN}_ENVC.`);
|
|
125
|
-
}
|
|
126
|
-
namedFromVars[name] = val;
|
|
127
|
-
}
|
|
128
|
-
else if (namedKey.startsWith(TYPE_QUOTED)) {
|
|
129
|
-
// quoted
|
|
130
|
-
namedFromVars[name] = named[namedKey];
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
throw Error(`unknown assignment ${namedKey}`);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
return namedFromVars;
|
|
137
|
-
}
|
|
139
|
+
}
|
|
140
|
+
return { actionName, stepperName, step, stepValuesMap };
|
|
141
|
+
};
|
|
142
|
+
const inferOrigin = (char) => {
|
|
143
|
+
switch (char) {
|
|
144
|
+
case '$':
|
|
145
|
+
return Origin.env;
|
|
146
|
+
case '`':
|
|
147
|
+
return Origin.var;
|
|
148
|
+
case '"':
|
|
149
|
+
return Origin.quoted;
|
|
150
|
+
default:
|
|
151
|
+
return Origin.fallthrough;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
138
154
|
//# sourceMappingURL=namedVars.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namedVars.js","sourceRoot":"","sources":["../../src/lib/namedVars.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"namedVars.js","sourceRoot":"","sources":["../../src/lib/namedVars.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AStepper } from './astepper.js';
|
|
2
|
+
import { TFeatureStep, TStepArgs, TWorld } from './defs.js';
|
|
3
|
+
export declare function populateActionArgs(featureStep: TFeatureStep, world: TWorld, steppers: AStepper[]): Promise<TStepArgs>;
|
|
4
|
+
//# sourceMappingURL=populateActionArgs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populateActionArgs.d.ts","sourceRoot":"","sources":["../../src/lib/populateActionArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAU,MAAM,WAAW,CAAC;AAIpE,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAkD3H"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Origin } from './defs.js';
|
|
2
|
+
import { asDomainKey, DOMAIN_STRING } from './domain-types.js';
|
|
3
|
+
// Given a feature step and the current world, populate the action args. This will update the existing stepValuesMap as actionVal
|
|
4
|
+
export async function populateActionArgs(featureStep, world, steppers) {
|
|
5
|
+
const stepArgs = {};
|
|
6
|
+
if (!featureStep.action.stepValuesMap)
|
|
7
|
+
return stepArgs; // no variables for this step
|
|
8
|
+
for (const [name, actionVal] of Object.entries(featureStep.action.stepValuesMap)) {
|
|
9
|
+
const storedEntry = world.shared.all()[actionVal.term];
|
|
10
|
+
if (actionVal.origin === Origin.statement) {
|
|
11
|
+
actionVal.value = actionVal.term;
|
|
12
|
+
}
|
|
13
|
+
else if (actionVal.origin === Origin.env) {
|
|
14
|
+
actionVal.value = world.options.envVariables[actionVal.term]; // might be undefined
|
|
15
|
+
actionVal.domain = DOMAIN_STRING;
|
|
16
|
+
}
|
|
17
|
+
else if (actionVal.origin === Origin.var) {
|
|
18
|
+
if (storedEntry) {
|
|
19
|
+
actionVal.domain = storedEntry.domain;
|
|
20
|
+
actionVal.value = storedEntry.value;
|
|
21
|
+
actionVal.provenance = storedEntry.provenance;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (actionVal.origin === Origin.fallthrough) {
|
|
25
|
+
if (world.options.envVariables[actionVal.term]) {
|
|
26
|
+
actionVal.value = world.options.envVariables[actionVal.term];
|
|
27
|
+
}
|
|
28
|
+
else if (storedEntry) {
|
|
29
|
+
actionVal.value = storedEntry.value;
|
|
30
|
+
actionVal.domain = storedEntry.domain;
|
|
31
|
+
actionVal.provenance = storedEntry.provenance;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
actionVal.value = actionVal.term;
|
|
35
|
+
actionVal.domain = DOMAIN_STRING;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (actionVal.origin === Origin.quoted) {
|
|
39
|
+
actionVal.value = actionVal.term;
|
|
40
|
+
actionVal.domain = DOMAIN_STRING;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error(`Unsupported origin type: ${actionVal.origin}`);
|
|
44
|
+
}
|
|
45
|
+
if (actionVal.value === undefined) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const actionDomainKey = asDomainKey(actionVal.domain.split('|').map(d => d.trim()));
|
|
49
|
+
if (!world.domains[actionDomainKey]) {
|
|
50
|
+
throw new Error(`No domain coercer found for domain "${actionDomainKey}"`);
|
|
51
|
+
}
|
|
52
|
+
actionVal.value = await Promise.resolve(world.domains[actionDomainKey].coerce(actionVal, featureStep, steppers));
|
|
53
|
+
// actionVal has been updated, update the actionVal in place for downstream processing
|
|
54
|
+
stepArgs[name] = actionVal.value;
|
|
55
|
+
}
|
|
56
|
+
return stepArgs;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=populateActionArgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populateActionArgs.js","sourceRoot":"","sources":["../../src/lib/populateActionArgs.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,MAAM,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/D,iIAAiI;AACjI,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAyB,EAAE,KAAa,EAAE,QAAoB;IACtG,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,QAAQ,CAAC,CAAC,6BAA6B;IAErF,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAClF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3C,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;QAClC,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;YAC5C,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;YACnF,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;QAClC,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;YAC5C,IAAI,WAAW,EAAE,CAAC;gBACjB,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;gBACtC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBACpC,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAC/C,CAAC;QACF,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACxB,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBACpC,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;gBACtC,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACP,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;gBACjC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;YAClC,CAAC;QACF,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/C,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;YACjC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACnC,SAAS;QACV,CAAC;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,uCAAuC,eAAe,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,SAAS,CAAC,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEjH,sFAAsF;QACtF,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TStepArgs } from '../defs.js';
|
|
2
2
|
import { AStepper } from '../astepper.js';
|
|
3
3
|
export default class SetTimeStepper extends AStepper {
|
|
4
4
|
steps: {
|
|
5
5
|
setTime: {
|
|
6
6
|
gwta: string;
|
|
7
|
-
action: ({ y, m, d, h, min, s }:
|
|
7
|
+
action: ({ y, m, d, h, min, s }: TStepArgs) => Promise<import("../defs.js").TOKActionResult>;
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetTimeStepper.d.ts","sourceRoot":"","sources":["../../../src/lib/test/SetTimeStepper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SetTimeStepper.d.ts","sourceRoot":"","sources":["../../../src/lib/test/SetTimeStepper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAM,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM1C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAClD,KAAK;;;6CAGgC,SAAS;;MAQ5C;CACH"}
|
|
@@ -11,7 +11,12 @@ export default class SetTimeStepper extends AStepper {
|
|
|
11
11
|
setTime: {
|
|
12
12
|
gwta: 'change date to {y}-{m}-{d} {h}:{min}:{s}',
|
|
13
13
|
action: ({ y, m, d, h, min, s }) => {
|
|
14
|
-
const
|
|
14
|
+
for (const v of [y, m, d, h, min, s]) {
|
|
15
|
+
if (Array.isArray(v))
|
|
16
|
+
throw new Error('date parts must be strings');
|
|
17
|
+
}
|
|
18
|
+
const ys = y, ms = m, ds = d, hs = h, mins = min, ss = s;
|
|
19
|
+
const date = new Date(checkedInt('year', ys), checkedInt('month', ms) - 1, checkedInt('day', ds), checkedInt('hour', hs), checkedInt('minute', mins), checkedInt('second', ss));
|
|
15
20
|
vi.setSystemTime(date);
|
|
16
21
|
return Promise.resolve(OK);
|
|
17
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetTimeStepper.js","sourceRoot":"","sources":["../../../src/lib/test/SetTimeStepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"SetTimeStepper.js","sourceRoot":"","sources":["../../../src/lib/test/SetTimeStepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAa,EAAE,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;IAC1C,IAAI,CAAC,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC,CAAA;AACD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAClD,KAAK,GAAG;QACN,OAAO,EAAE;YACP,IAAI,EAAE,0CAA0C;YAChD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAa,EAAE,EAAE;gBAC5C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;oBAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAAC,CAAC;gBAC9G,MAAM,EAAE,GAAG,CAAW,EAAE,EAAE,GAAG,CAAW,EAAE,EAAE,GAAG,CAAW,EAAE,EAAE,GAAG,CAAW,EAAE,IAAI,GAAG,GAAa,EAAE,EAAE,GAAG,CAAW,CAAC;gBACrH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBAChL,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;SACF;KACF,CAAC;CACH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TStepArgs } from '../defs.js';
|
|
2
2
|
import { AStepper } from '../astepper.js';
|
|
3
3
|
declare const TestSteps: {
|
|
4
4
|
new (): {
|
|
@@ -16,8 +16,8 @@ declare const TestSteps: {
|
|
|
16
16
|
action: () => Promise<import("../defs.js").TOKActionResult>;
|
|
17
17
|
};
|
|
18
18
|
named: {
|
|
19
|
-
|
|
20
|
-
action: ({ param }:
|
|
19
|
+
gwta: string;
|
|
20
|
+
action: ({ param }: TStepArgs) => Promise<import("../defs.js").TNotOKActionResult | import("../defs.js").TOKActionResult>;
|
|
21
21
|
};
|
|
22
22
|
throws: {
|
|
23
23
|
gwta: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestSteps.d.ts","sourceRoot":"","sources":["../../../src/lib/test/TestSteps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TestSteps.d.ts","sourceRoot":"","sources":["../../../src/lib/test/TestSteps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;oCAgBc,SAAS;;;;;;;;;;;;CAYrC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -15,8 +15,10 @@ const TestSteps = class TestSteps extends AStepper {
|
|
|
15
15
|
action: async () => Promise.resolve(actionOK()),
|
|
16
16
|
},
|
|
17
17
|
named: {
|
|
18
|
-
|
|
18
|
+
gwta: 'parameter {param} is accepted',
|
|
19
19
|
action: async ({ param }) => {
|
|
20
|
+
if (Array.isArray(param))
|
|
21
|
+
throw new Error('param must be string');
|
|
20
22
|
return Promise.resolve(param === 'x' ? actionOK() : actionNotOK('test'));
|
|
21
23
|
},
|
|
22
24
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestSteps.js","sourceRoot":"","sources":["../../../src/lib/test/TestSteps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,SAAS,GAAG,MAAM,SAAU,SAAQ,QAAQ;IACjD,KAAK,GAAG;QACP,KAAK,EAAE;YACN,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SAC7D;QACD,IAAI,EAAE;YACL,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC/C;QACD,MAAM,EAAE;YACP,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC/C;QACD,KAAK,EAAE;YACN,
|
|
1
|
+
{"version":3,"file":"TestSteps.js","sourceRoot":"","sources":["../../../src/lib/test/TestSteps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,SAAS,GAAG,MAAM,SAAU,SAAQ,QAAQ;IACjD,KAAK,GAAG;QACP,KAAK,EAAE;YACN,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SAC7D;QACD,IAAI,EAAE;YACL,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC/C;QACD,MAAM,EAAE;YACP,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC/C;QACD,KAAK,EAAE;YACN,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAa,EAAE,EAAE;gBACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAClE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1E,CAAC;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,GAAG,EAAE;gBACZ,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvC,CAAC;SACD;KACD,CAAC;CACF,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/lib/test/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAgB,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/lib/test/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAgB,eAAe,EAAE,MAAM,YAAY,CAAC;AAa5F,eAAO,MAAM,iBAAiB;;;;;CAA4D,CAAC;AAE3F,eAAO,MAAM,oCAAoC,yCAAyC,CAAC;AAC3F,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,gDAGnF;AAGD,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC;AAExE,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,YAAY,GAAE,aAAiC,EAAE,aAAa,GAAE,aAAkB;WAKC,MAAM;GAF5L;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAY/L;AAED,wBAAgB,uBAAuB,CAAC,YAAY,GAAE,aAAiC,EAAE,GAAG;;CAA+B,UAQ1H;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAc,GAAG,MAAM,CAc3E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,SAAqB,6BAEnF"}
|
package/build/lib/test/lib.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_DEST } from '../defs.js';
|
|
2
|
+
import { getCoreDomains } from '../domain-types.js';
|
|
2
3
|
import { createSteppers } from './../util/index.js';
|
|
3
4
|
import { getRunTag } from '../ttag.js';
|
|
4
5
|
import { getSteppers } from '../util/workspace-lib.js';
|
|
@@ -41,10 +42,9 @@ export function getTestWorldWithOptions(protoOptions = DEF_PROTO_OPTIONS, env =
|
|
|
41
42
|
return world;
|
|
42
43
|
}
|
|
43
44
|
export function getDefaultWorld(sequence, env = process.env) {
|
|
44
|
-
|
|
45
|
+
const world = {
|
|
45
46
|
timer: new Timer(),
|
|
46
47
|
tag: getRunTag(sequence, 0),
|
|
47
|
-
shared: new FeatureVariables(getDefaultTag(sequence).toString()),
|
|
48
48
|
logger: new Logger(env.HAIBUN_LOG_LEVEL ? { level: env.HAIBUN_LOG_LEVEL } : LOGGER_LOG),
|
|
49
49
|
prompter: new Prompter(),
|
|
50
50
|
runtime: {},
|
|
@@ -52,6 +52,9 @@ export function getDefaultWorld(sequence, env = process.env) {
|
|
|
52
52
|
moduleOptions: {},
|
|
53
53
|
bases: ['/features/'],
|
|
54
54
|
};
|
|
55
|
+
world.domains = getCoreDomains(world);
|
|
56
|
+
world.shared = new FeatureVariables(world);
|
|
57
|
+
return world;
|
|
55
58
|
}
|
|
56
59
|
export function getDefaultTag(sequence, desc = undefined) {
|
|
57
60
|
return getRunTag(sequence, -1, desc ? { desc } : undefined, false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/lib/test/lib.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/lib/test/lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AStepper } from '../astepper.js';
|
|
2
|
+
import { TWorld, TStepResult, TFeatureStep, ExecMode } from '../defs.js';
|
|
3
|
+
export declare function resolveAndExecuteStatement(statement: string, base: string, steppers: AStepper[], world: TWorld, execMode: ExecMode, seqStart: number[]): Promise<TStepResult>;
|
|
4
|
+
export declare function doExecuteFeatureSteps(featureSteps: TFeatureStep[], steppers: AStepper[], world: TWorld, execMode?: ExecMode): Promise<TStepResult>;
|
|
5
|
+
export declare function findFeatureStepsFromStatement(statement: string, steppers: AStepper[], world: TWorld, base: string, seqStart: number[], inc?: number): TFeatureStep[];
|
|
6
|
+
//# sourceMappingURL=featureStep-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureStep-executor.d.ts","sourceRoot":"","sources":["../../../src/lib/util/featureStep-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAY,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGnF,wBAAsB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAGnL;AAED,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,QAA0B,GAAG,OAAO,CAAC,WAAW,CAAC,CAUzK;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,SAAI,GAAG,YAAY,EAAE,CAiB/J"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getActionableStatement } from '../../phases/Resolver.js';
|
|
2
|
+
import { FeatureExecutor } from '../../phases/Executor.js';
|
|
3
|
+
import { ExecMode } from '../defs.js';
|
|
4
|
+
import { expandLine } from '../features.js';
|
|
5
|
+
export async function resolveAndExecuteStatement(statement, base, steppers, world, execMode, seqStart) {
|
|
6
|
+
const featureSteps = findFeatureStepsFromStatement(statement, steppers, world, base, seqStart);
|
|
7
|
+
return await doExecuteFeatureSteps(featureSteps, steppers, world, execMode);
|
|
8
|
+
}
|
|
9
|
+
export async function doExecuteFeatureSteps(featureSteps, steppers, world, execMode = ExecMode.CYCLES) {
|
|
10
|
+
let lastResult;
|
|
11
|
+
for (const x of featureSteps) {
|
|
12
|
+
lastResult = await FeatureExecutor.doFeatureStep(steppers, x, world, execMode);
|
|
13
|
+
if (execMode === ExecMode.CYCLES || execMode === ExecMode.PROMPT) {
|
|
14
|
+
world.runtime.stepResults.push(lastResult);
|
|
15
|
+
}
|
|
16
|
+
if (!lastResult.ok)
|
|
17
|
+
return lastResult;
|
|
18
|
+
}
|
|
19
|
+
return lastResult;
|
|
20
|
+
}
|
|
21
|
+
export function findFeatureStepsFromStatement(statement, steppers, world, base, seqStart, inc = 1) {
|
|
22
|
+
const featureSteps = [];
|
|
23
|
+
if (!world.runtime.backgrounds) {
|
|
24
|
+
throw new Error('runtime.backgrounds is undefined; cannot expand inline Backgrounds');
|
|
25
|
+
}
|
|
26
|
+
const backgroundFeature = { path: `from ${statement}`, base, name: 'inline-backgrounds', content: `Backgrounds: ${statement}` };
|
|
27
|
+
const expanded = expandLine(statement, world.runtime.backgrounds, backgroundFeature);
|
|
28
|
+
// Increment the last segment of seqStart by inc for each expanded step
|
|
29
|
+
const prefix = seqStart.slice(0, -1);
|
|
30
|
+
let latest = seqStart[seqStart.length - 1];
|
|
31
|
+
for (const x of expanded) {
|
|
32
|
+
const seqPath = [...prefix, latest];
|
|
33
|
+
const { featureStep } = getActionableStatement(steppers, x.line, x.feature.path, seqPath);
|
|
34
|
+
latest += inc;
|
|
35
|
+
featureSteps.push(featureStep);
|
|
36
|
+
}
|
|
37
|
+
return featureSteps;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=featureStep-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureStep-executor.js","sourceRoot":"","sources":["../../../src/lib/util/featureStep-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAA+C,QAAQ,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,SAAiB,EAAE,IAAY,EAAE,QAAoB,EAAE,KAAa,EAAE,QAAkB,EAAE,QAAkB;IAC5J,MAAM,YAAY,GAAG,6BAA6B,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/F,OAAO,MAAM,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,YAA4B,EAAE,QAAoB,EAAE,KAAa,EAAE,WAAqB,QAAQ,CAAC,MAAM;IAClJ,IAAI,UAAU,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC9B,UAAU,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/E,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC;IACvC,CAAC;IACD,OAAO,UAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,SAAiB,EAAE,QAAoB,EAAE,KAAa,EAAE,IAAY,EAAE,QAAkB,EAAE,GAAG,GAAG,CAAC;IAC9I,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,iBAAiB,GAAa,EAAE,IAAI,EAAE,QAAQ,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,SAAS,EAAE,EAAE,CAAC;IAC1I,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACrF,uEAAuE;IACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,CAAC;QACd,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC"}
|
|
@@ -26,7 +26,7 @@ export declare function describeSteppers(steppers: AStepper[]): string;
|
|
|
26
26
|
export declare function isLowerCase(str: string): boolean;
|
|
27
27
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
28
28
|
export declare function verifyExtraOptions(inExtraOptions: TModuleOptions, csteppers: CStepper[]): Promise<void>;
|
|
29
|
-
export declare function
|
|
29
|
+
export declare function setStepperWorldsAndDomains(steppers: AStepper[], world: TWorld): Promise<void>;
|
|
30
30
|
export declare function getPre(stepper: AStepper): string;
|
|
31
31
|
/**
|
|
32
32
|
* Find a stepper by option value from a list of steppers
|
|
@@ -78,7 +78,6 @@ export declare const optionOrError: (val: string, options: string[]) => {
|
|
|
78
78
|
};
|
|
79
79
|
export declare function trying<TResult>(fun: () => void): Promise<Error | TResult>;
|
|
80
80
|
export declare function asError(e: unknown): Error;
|
|
81
|
-
export declare const getSerialTime: () => number;
|
|
82
81
|
export declare function dePolite(s: string): string;
|
|
83
82
|
export declare function shortenURI(uri: string): string;
|
|
84
83
|
export declare function formattedSteppers(steppers: AStepper[]): {
|