@haibun/core 1.41.1-alpha → 1.41.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.
Files changed (78) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.d.ts.map +1 -1
  3. package/build/currentVersion.js +1 -1
  4. package/build/currentVersion.js.map +1 -1
  5. package/build/lib/LogHistory.d.ts +1 -1
  6. package/build/lib/LogHistory.d.ts.map +1 -1
  7. package/build/lib/LogHistory.js +1 -1
  8. package/build/lib/LogHistory.js.map +1 -1
  9. package/build/lib/Logger.d.ts +7 -7
  10. package/build/lib/Logger.d.ts.map +1 -1
  11. package/build/lib/Logger.js.map +1 -1
  12. package/build/lib/contexts.d.ts +1 -2
  13. package/build/lib/contexts.d.ts.map +1 -1
  14. package/build/lib/contexts.js +1 -2
  15. package/build/lib/contexts.js.map +1 -1
  16. package/build/lib/defs.d.ts +20 -50
  17. package/build/lib/defs.d.ts.map +1 -1
  18. package/build/lib/defs.js +19 -0
  19. package/build/lib/defs.js.map +1 -1
  20. package/build/lib/domain-types.d.ts +0 -1
  21. package/build/lib/domain-types.d.ts.map +1 -1
  22. package/build/lib/domain-types.js.map +1 -1
  23. package/build/lib/interfaces/logger.d.ts +11 -11
  24. package/build/lib/interfaces/logger.d.ts.map +1 -1
  25. package/build/lib/interfaces/logger.js.map +1 -1
  26. package/build/lib/namedVars.d.ts +4 -4
  27. package/build/lib/namedVars.d.ts.map +1 -1
  28. package/build/lib/namedVars.js +9 -4
  29. package/build/lib/namedVars.js.map +1 -1
  30. package/build/lib/test/TestSteps.d.ts +2 -12
  31. package/build/lib/test/TestSteps.d.ts.map +1 -1
  32. package/build/lib/test/TestSteps.js +0 -12
  33. package/build/lib/test/TestSteps.js.map +1 -1
  34. package/build/lib/test/TestStepsWithOptions.d.ts +2 -2
  35. package/build/lib/test/lib.d.ts +5 -7
  36. package/build/lib/test/lib.d.ts.map +1 -1
  37. package/build/lib/test/lib.js +19 -18
  38. package/build/lib/test/lib.js.map +1 -1
  39. package/build/lib/util/index.d.ts +1 -2
  40. package/build/lib/util/index.d.ts.map +1 -1
  41. package/build/lib/util/index.js +2 -15
  42. package/build/lib/util/index.js.map +1 -1
  43. package/build/lib/util/workspace-lib.d.ts +1 -2
  44. package/build/lib/util/workspace-lib.d.ts.map +1 -1
  45. package/build/lib/util/workspace-lib.js +0 -22
  46. package/build/lib/util/workspace-lib.js.map +1 -1
  47. package/build/phases/Executor.d.ts +8 -8
  48. package/build/phases/Executor.d.ts.map +1 -1
  49. package/build/phases/Executor.js +50 -53
  50. package/build/phases/Executor.js.map +1 -1
  51. package/build/phases/Resolver.d.ts +7 -8
  52. package/build/phases/Resolver.d.ts.map +1 -1
  53. package/build/phases/Resolver.js +17 -31
  54. package/build/phases/Resolver.js.map +1 -1
  55. package/build/runner.d.ts +8 -3
  56. package/build/runner.d.ts.map +1 -1
  57. package/build/runner.js +28 -10
  58. package/build/runner.js.map +1 -1
  59. package/build/steps/conformance.d.ts +1 -1
  60. package/build/steps/credentials.d.ts +1 -1
  61. package/build/steps/haibun.d.ts +8 -4
  62. package/build/steps/haibun.d.ts.map +1 -1
  63. package/build/steps/haibun.js +32 -7
  64. package/build/steps/haibun.js.map +1 -1
  65. package/build/steps/parse.d.ts +2 -2
  66. package/build/steps/vars.d.ts +15 -15
  67. package/build/steps/vars.d.ts.map +1 -1
  68. package/build/steps/vars.js +17 -18
  69. package/build/steps/vars.js.map +1 -1
  70. package/package.json +1 -1
  71. package/build/lib/run-with-options.o.d.ts +0 -2
  72. package/build/lib/run-with-options.o.d.ts.map +0 -1
  73. package/build/lib/run-with-options.o.js +0 -113
  74. package/build/lib/run-with-options.o.js.map +0 -1
  75. package/build/lib/run.o.d.ts +0 -19
  76. package/build/lib/run.o.d.ts.map +0 -1
  77. package/build/lib/run.o.js +0 -62
  78. package/build/lib/run.o.js.map +0 -1
@@ -1,27 +1,28 @@
1
1
  import { STAY, STAY_FAILURE, } from '../lib/defs.js';
2
2
  import { getNamedToVars } from '../lib/namedVars.js';
3
- import { actionNotOK, applyResShouldContinue, setStepperWorlds, sleep, createSteppers, findStepper, constructorName } from '../lib/util/index.js';
3
+ import { actionNotOK, setStepperWorlds, sleep, createSteppers, findStepper, constructorName } from '../lib/util/index.js';
4
4
  export class Executor {
5
5
  // find the stepper and action, call it and return its result
6
- static async action(steppers, vstep, found, world) {
7
- const namedWithVars = getNamedToVars(found, world, vstep);
6
+ static async action(steppers, featureStep, found, world) {
7
+ const namedWithVars = getNamedToVars(found, world, featureStep);
8
8
  const stepper = findStepper(steppers, found.stepperName);
9
9
  const action = stepper.steps[found.actionName].action;
10
- return await action(namedWithVars, vstep).catch((caught) => {
10
+ return await action(namedWithVars, featureStep).catch((caught) => {
11
11
  world.logger.error(caught.stack);
12
- return actionNotOK(`in ${vstep.in}: ${caught.message}`, { topics: { caught: (caught?.stack || caught).toString() } });
12
+ return actionNotOK(`in ${featureStep.in}: ${caught.message}`, {
13
+ topics: { caught: (caught?.stack || caught).toString() },
14
+ });
13
15
  });
14
16
  }
15
- static async execute(csteppers, world, features, endFeatureCallback) {
17
+ static async execute(csteppers, world, features, endFeatureCallbacks) {
16
18
  let ok = true;
17
19
  const stayOnFailure = world.options[STAY] === STAY_FAILURE;
18
20
  const featureResults = [];
19
- world.shared.values._scored = [];
20
21
  let featureNum = 0;
21
22
  for (const feature of features) {
22
23
  featureNum++;
23
24
  const newWorld = { ...world, tag: { ...world.tag, ...{ featureNum: 0 + featureNum } } };
24
- const featureExecutor = new FeatureExecutor(csteppers, endFeatureCallback);
25
+ const featureExecutor = new FeatureExecutor(csteppers, endFeatureCallbacks);
25
26
  await featureExecutor.setup(newWorld);
26
27
  const featureResult = await featureExecutor.doFeature(feature);
27
28
  ok = ok && featureResult.ok;
@@ -38,13 +39,13 @@ export class Executor {
38
39
  }
39
40
  export class FeatureExecutor {
40
41
  csteppers;
41
- endFeatureCallback;
42
+ endFeatureCallbacks;
42
43
  world;
43
44
  steppers;
44
45
  startOffset = 0;
45
- constructor(csteppers, endFeatureCallback) {
46
+ constructor(csteppers, endFeatureCallbacks) {
46
47
  this.csteppers = csteppers;
47
- this.endFeatureCallback = endFeatureCallback;
48
+ this.endFeatureCallbacks = endFeatureCallbacks;
48
49
  }
49
50
  async setup(world) {
50
51
  this.world = world;
@@ -61,7 +62,7 @@ export class FeatureExecutor {
61
62
  world.logger.log(`███ feature ${world.tag.featureNum}: ${feature.path}`);
62
63
  let ok = true;
63
64
  const stepResults = [];
64
- for (const step of feature.vsteps) {
65
+ for (const step of feature.featureSteps) {
65
66
  world.logger.log(step.in);
66
67
  const result = await FeatureExecutor.doFeatureStep(this.steppers, step, world);
67
68
  if (world.options.step_delay) {
@@ -81,65 +82,61 @@ export class FeatureExecutor {
81
82
  const featureResult = { path: feature.path, ok, stepResults };
82
83
  return featureResult;
83
84
  }
84
- static async doFeatureStep(steppers, vstep, world) {
85
+ static async doFeatureStep(steppers, featureStep, world) {
85
86
  let ok = true;
86
- const actionResults = [];
87
- // FIXME feature should really be attached to the vstep
88
- for (const action of vstep.actions) {
89
- const start = world.timer.since();
90
- const res = await Executor.action(steppers, vstep, action, world);
91
- let traces;
92
- if (world.shared.get('_trace')) {
93
- traces = world.shared.get('_trace');
94
- world.shared.unset('_trace');
95
- }
96
- const end = world.timer.since();
97
- // FIXME
98
- const stepResult = { ...res, name: action.actionName, start, end, traces };
99
- actionResults.push(stepResult);
100
- const shouldContinue = applyResShouldContinue(world, res, action);
101
- ok = ok && shouldContinue;
102
- if (!shouldContinue) {
103
- break;
104
- }
87
+ // FIXME feature should really be attached to the featureStep
88
+ const action = featureStep.action;
89
+ const start = world.timer.since();
90
+ const res = await Executor.action(steppers, featureStep, action, world);
91
+ let traces;
92
+ if (world.shared.get('_trace')) {
93
+ traces = world.shared.get('_trace');
94
+ world.shared.unset('_trace');
105
95
  }
106
- return { ok, in: vstep.in, sourcePath: vstep.source.path, actionResults, seq: vstep.seq };
96
+ const end = world.timer.since();
97
+ // FIXME
98
+ const stepResult = { ...res, name: action.actionName, start, end, traces };
99
+ const actionResult = stepResult;
100
+ ok = ok && res.ok;
101
+ return { ok, in: featureStep.in, sourcePath: featureStep.source.path, actionResult, seq: featureStep.seq };
107
102
  }
108
103
  async onFailure(result, step) {
109
- for (const s of this.steppers) {
110
- if (s.onFailure) {
111
- const res = await s.onFailure(result, step);
112
- this.world.logger.error(`onFailure from ${result.in} for ${constructorName(s)}`, res);
104
+ for (const stepper of this.steppers) {
105
+ if (stepper.onFailure) {
106
+ const res = await stepper.onFailure(result, step);
107
+ this.world.logger.error(`onFailure from ${result.in} for ${constructorName(stepper)}`, res);
113
108
  }
114
109
  }
115
110
  }
116
111
  async endFeature() {
117
- for (const s of this.steppers) {
118
- if (s.endFeature) {
119
- this.world.logger.debug(`endFeature ${constructorName(s)}`);
120
- await s.endFeature().catch((error) => {
112
+ for (const stepper of this.steppers) {
113
+ if (stepper.endFeature) {
114
+ this.world.logger.debug(`endFeature ${constructorName(stepper)}`);
115
+ await stepper.endFeature().catch((error) => {
121
116
  console.error('endFeature', error);
122
- throw (error);
117
+ throw error;
123
118
  });
124
- this.world.logger.debug(`endedFeature ${constructorName(s)}`);
119
+ this.world.logger.debug(`endedFeature ${constructorName(stepper)}`);
125
120
  }
126
121
  }
127
122
  }
128
123
  async doEndFeatureCallback(featureResult) {
129
- if (this.endFeatureCallback) {
130
- try {
131
- await this.endFeatureCallback({ world: this.world, result: featureResult, steppers: this.steppers, startOffset: this.startOffset });
132
- }
133
- catch (error) {
134
- throw Error(error);
124
+ if (this.endFeatureCallbacks) {
125
+ for (const callback of this.endFeatureCallbacks) {
126
+ try {
127
+ await callback({ world: this.world, result: featureResult, steppers: this.steppers, startOffset: this.startOffset });
128
+ }
129
+ catch (error) {
130
+ throw Error(error);
131
+ }
135
132
  }
136
133
  }
137
134
  }
138
135
  async close() {
139
- for (const s of this.steppers) {
140
- if (s.close) {
141
- this.world.logger.debug(`closing ${constructorName(s)}`);
142
- await s.close();
136
+ for (const stepper of this.steppers) {
137
+ if (stepper.close) {
138
+ this.world.logger.debug(`closing ${constructorName(stepper)}`);
139
+ await stepper.close();
143
140
  }
144
141
  }
145
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
- import { TFound, TResolvedFeature, TWorld, TExpandedFeature, AStepper } from '../lib/defs.js';
1
+ import { TStepAction, TResolvedFeature, TExpandedFeature, AStepper, TFeatureStep, TExpandedLine } from '../lib/defs.js';
2
2
  export declare class Resolver {
3
- steppers: AStepper[];
4
- world: TWorld;
5
- mode: string;
3
+ private steppers;
6
4
  types: string[];
7
- constructor(steppers: AStepper[], world: TWorld);
5
+ constructor(steppers: AStepper[]);
8
6
  resolveStepsFromFeatures(features: TExpandedFeature[]): Promise<TResolvedFeature[]>;
9
- private findVSteps;
10
- findActionableSteps(actionable: string): TFound[];
11
- private choose;
7
+ findFeatureSteps(feature: TExpandedFeature): Promise<TFeatureStep[]>;
8
+ getFeatureStep(featureLine: TExpandedLine, seq: number, action: TStepAction): TFeatureStep;
9
+ findActionableSteps(actionable: string): TStepAction[];
10
+ private stepApplies;
12
11
  static getTypeValidationError: (prelude: string, fileType: string, name: string, typeValidationError: string) => string;
13
12
  static getMoreThanOneInclusionError: (prelude: string, fileType: string, name: string) => string;
14
13
  static getNoFileTypeInclusionError: (prelude: string, fileType: string, name: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAM,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AAKjH,qBAAa,QAAQ;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;gBACJ,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM;IAMzC,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAe3E,UAAU;IA8BjB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAqBxD,OAAO,CAAC,MAAM;IAgBV,MAAM,CAAC,sBAAsB,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,uBAAuB,MAAM,YACzB;IACxF,MAAM,CAAC,4BAA4B,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,YACpB;IAClE,MAAM,CAAC,2BAA2B,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,YAC9B;CACvD"}
1
+ {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,gBAAgB,EAEhB,gBAAgB,EAChB,QAAQ,EAER,YAAY,EACZ,aAAa,EACb,MAAM,gBAAgB,CAAC;AAKxB,qBAAa,QAAQ;IAGR,OAAO,CAAC,QAAQ;IAF5B,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEI,QAAQ,EAAE,QAAQ,EAAE;IAIlC,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAU9C,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsBjF,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAInF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAqB7D,OAAO,CAAC,WAAW;IAgBf,MAAM,CAAC,sBAAsB,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,uBAAuB,MAAM,YACzB;IACxF,MAAM,CAAC,4BAA4B,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,YACpB;IAClE,MAAM,CAAC,2BAA2B,YAAa,MAAM,YAAY,MAAM,QAAQ,MAAM,YAC9B;CACvD"}
@@ -1,57 +1,43 @@
1
- import { OK } from '../lib/defs.js';
1
+ import { OK, } from '../lib/defs.js';
2
2
  import { BASE_TYPES } from '../lib/domain-types.js';
3
3
  import { namedInterpolation, getMatch } from '../lib/namedVars.js';
4
4
  import { getActionable, describeSteppers, isLowerCase, dePolite, constructorName } from '../lib/util/index.js';
5
5
  export class Resolver {
6
6
  steppers;
7
- world;
8
- mode;
9
7
  types;
10
- constructor(steppers, world) {
8
+ constructor(steppers) {
11
9
  this.steppers = steppers;
12
- this.world = world;
13
10
  this.types = BASE_TYPES;
14
11
  }
15
12
  async resolveStepsFromFeatures(features) {
16
- const expanded = [];
13
+ const steps = [];
17
14
  for (const feature of features) {
18
- try {
19
- const vsteps = await this.findVSteps(feature, feature.path);
20
- const e = { ...feature, ...{ vsteps } };
21
- expanded.push(e);
22
- }
23
- catch (e) {
24
- this.world.logger.error(e);
25
- throw e;
26
- }
15
+ const featureSteps = await this.findFeatureSteps(feature);
16
+ const e = { ...feature, ...{ featureSteps } };
17
+ steps.push(e);
27
18
  }
28
- return expanded;
19
+ return steps;
29
20
  }
30
- async findVSteps(feature, path, build = true) {
31
- let vsteps = [];
21
+ async findFeatureSteps(feature) {
22
+ let featureSteps = [];
32
23
  let seq = 0;
33
24
  for (const featureLine of feature.expanded) {
34
25
  seq++;
35
26
  const actionable = getActionable(featureLine.line);
36
27
  const actions = this.findActionableSteps(actionable);
37
- /*
38
- try {
39
- // FIXME
40
- checkRequiredType(feature, featureLine.line, actions, this.world);
41
- } catch (e) {
42
- throw e;
43
- }
44
- */
45
28
  if (actions.length > 1) {
46
29
  throw Error(`more than one step found for "${featureLine.line}": ${JSON.stringify(actions.map((a) => a.actionName))}`);
47
30
  }
48
31
  else if (actions.length < 1) {
49
32
  throw Error(`no step found for ${featureLine.line} in ${feature.path} from ${describeSteppers(this.steppers)}`);
50
33
  }
51
- const vstep = { source: featureLine.feature, in: featureLine.line, seq, actions };
52
- vsteps.push(vstep);
34
+ const featureStep = this.getFeatureStep(featureLine, seq, actions[0]);
35
+ featureSteps.push(featureStep);
53
36
  }
54
- return vsteps;
37
+ return featureSteps;
38
+ }
39
+ getFeatureStep(featureLine, seq, action) {
40
+ return { source: featureLine.feature, in: featureLine.line, seq, action };
55
41
  }
56
42
  findActionableSteps(actionable) {
57
43
  if (!actionable.length) {
@@ -63,7 +49,7 @@ export class Resolver {
63
49
  const { steps } = stepper;
64
50
  for (const actionName in steps) {
65
51
  const step = steps[actionName];
66
- const stepFound = this.choose(step, actionable, actionName, stepperName);
52
+ const stepFound = this.stepApplies(step, actionable, actionName, stepperName);
67
53
  if (stepFound) {
68
54
  found.push(stepFound);
69
55
  }
@@ -71,7 +57,7 @@ export class Resolver {
71
57
  }
72
58
  return found;
73
59
  }
74
- choose(step, actionable, actionName, stepperName) {
60
+ stepApplies(step, actionable, actionName, stepperName) {
75
61
  const curt = dePolite(actionable);
76
62
  if (step.gwta) {
77
63
  const { str, vars } = namedInterpolation(step.gwta, this.types);
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"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"}
package/build/runner.d.ts CHANGED
@@ -1,11 +1,16 @@
1
- import { TWorld, TExecutorResult, CStepper } from './lib/defs.js';
1
+ import { TWorld, TExecutorResult, CStepper, TEndFeatureCallback } from './lib/defs.js';
2
2
  import { TFeaturesBackgrounds } from './phases/collector.js';
3
+ export type TRunnerCallbacks = {
4
+ endFeature?: TEndFeatureCallback[];
5
+ };
3
6
  export declare class Runner {
4
- private result;
5
7
  private world;
6
- constructor(world: TWorld);
8
+ private callbacks;
9
+ private result;
10
+ constructor(world: TWorld, callbacks?: TRunnerCallbacks);
7
11
  private errorBail;
8
12
  run(steppers: string[]): Promise<TExecutorResult>;
9
13
  runFeaturesAndBackgrounds(csteppers: CStepper[], { features, backgrounds }: TFeaturesBackgrounds): Promise<TExecutorResult>;
14
+ private applyEffectFeatures;
10
15
  }
11
16
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAA+B,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI/F,OAAO,EAA6B,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIxF,qBAAa,MAAM;IAClB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,EAAE,MAAM;IAIzB,OAAO,CAAC,SAAS,CASf;IAEI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE;IActB,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,oBAAoB;CAmCtG"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,eAAe,EAEf,QAAQ,EACR,mBAAmB,EAInB,MAAM,eAAe,CAAC;AAWvB,OAAO,EAA6B,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIxF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,MAAM;IAGN,OAAO,CAAC,KAAK;IAAU,OAAO,CAAC,SAAS;IAFpD,OAAO,CAAC,MAAM,CAA8B;gBAExB,KAAK,EAAE,MAAM,EAAU,SAAS,GAAE,gBAAqB;IAE3E,OAAO,CAAC,SAAS,CASf;IAEI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE;IAatB,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,oBAAoB;YAoCxF,mBAAmB;CAgBjC"}
package/build/runner.js CHANGED
@@ -1,14 +1,17 @@
1
1
  import { expand } from './lib/features.js';
2
- import { verifyRequiredOptions, verifyExtraOptions, createSteppers, setStepperWorlds } from './lib/util/index.js';
2
+ import { getNamedToVars } from './lib/namedVars.js';
3
+ import { verifyRequiredOptions, verifyExtraOptions, createSteppers, setStepperWorlds, constructorName, } from './lib/util/index.js';
3
4
  import { getSteppers } from './lib/util/workspace-lib.js';
4
5
  import { getFeaturesAndBackgrounds } from './phases/collector.js';
5
6
  import { Executor } from './phases/Executor.js';
6
7
  import { Resolver } from './phases/Resolver.js';
7
8
  export class Runner {
8
- result = undefined;
9
9
  world;
10
- constructor(world) {
10
+ callbacks;
11
+ result = undefined;
12
+ constructor(world, callbacks = {}) {
11
13
  this.world = world;
14
+ this.callbacks = callbacks;
12
15
  }
13
16
  errorBail = (phase, error, details) => {
14
17
  this.world.logger.error(`errorBail ${phase} ${error} ${details}`, error.stack);
@@ -26,8 +29,7 @@ export class Runner {
26
29
  featuresBackgrounds = getFeaturesAndBackgrounds(this.world.bases, []);
27
30
  }
28
31
  catch (error) {
29
- console.error('Error collecting features and backgrounds:', error);
30
- throw error;
32
+ this.errorBail('Collector', error);
31
33
  }
32
34
  const { features, backgrounds } = featuresBackgrounds;
33
35
  const cSteppers = await getSteppers(steppers).catch((error) => this.errorBail('Steppers', error));
@@ -37,15 +39,16 @@ export class Runner {
37
39
  try {
38
40
  await verifyRequiredOptions(csteppers, this.world.moduleOptions).catch((error) => this.errorBail('RequiredOptions', error));
39
41
  await verifyExtraOptions(this.world.moduleOptions, csteppers).catch((error) => this.errorBail('moduleOptions', error));
40
- const expandedFeatures = await expand(backgrounds, features).catch((error) => this.errorBail('Expand', error));
41
42
  const steppers = await createSteppers(csteppers);
42
43
  await setStepperWorlds(steppers, this.world).catch((error) => this.errorBail('StepperOptions', error));
43
- const resolver = new Resolver(steppers, this.world);
44
- const mappedValidatedSteps = await resolver
44
+ const expandedFeatures = await expand(backgrounds, features).catch((error) => this.errorBail('Expand', error));
45
+ const resolver = new Resolver(steppers);
46
+ const resolvedFeatures = await resolver
45
47
  .resolveStepsFromFeatures(expandedFeatures)
46
48
  .catch((error) => this.errorBail('Resolve', error));
47
- this.world.logger.log(`features: ${expandedFeatures.length} backgrounds: ${backgrounds.length} steps: (${expandedFeatures.map((e) => e.path)}), ${mappedValidatedSteps.length}`);
48
- this.result = await Executor.execute(csteppers, this.world, mappedValidatedSteps).catch((error) => this.errorBail('Execute', error));
49
+ const appliedResolvedFeatures = await this.applyEffectFeatures(resolvedFeatures, steppers);
50
+ this.world.logger.log(`features: ${expandedFeatures.length} backgrounds: ${backgrounds.length} steps: (${expandedFeatures.map((e) => e.path)}), ${appliedResolvedFeatures.length}`);
51
+ this.result = await Executor.execute(csteppers, this.world, appliedResolvedFeatures, this.callbacks.endFeature).catch((error) => this.errorBail('Execute', error));
49
52
  }
50
53
  catch (error) {
51
54
  if (!this.result) {
@@ -54,5 +57,20 @@ export class Runner {
54
57
  }
55
58
  return this.result;
56
59
  }
60
+ async applyEffectFeatures(resolvedFeatures, steppers) {
61
+ let allFeatures = [...resolvedFeatures];
62
+ for (const feature of resolvedFeatures) {
63
+ for (const featureStep of feature.featureSteps) {
64
+ const action = featureStep.action;
65
+ const stepper = steppers.find((s) => constructorName(s) === action.stepperName);
66
+ if (stepper && stepper.steps[action.actionName]?.applyEffect) {
67
+ const found = action;
68
+ const namedWithVars = getNamedToVars(found, this.world, featureStep);
69
+ allFeatures = await stepper.steps[action.actionName].applyEffect(namedWithVars, [feature]);
70
+ }
71
+ }
72
+ }
73
+ return allFeatures;
74
+ }
57
75
  }
58
76
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAwB,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,OAAO,MAAM;IACV,MAAM,GAAoB,SAAS,CAAC;IACpC,KAAK,CAAS;IAEtB,YAAY,KAAa;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAEO,SAAS,GAAG,CAAC,KAAa,EAAE,KAAgB,EAAE,OAAmB,EAAE,EAAE;QAC5E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,GAAG;YACb,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;YACnB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;SACtG,CAAC;QACF,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,KAAK,CAAC,GAAG,CAAC,QAAkB;QAC3B,IAAI,mBAAmB,GAAyB,SAAS,CAAC;QAC1D,IAAI,CAAC;YACJ,mBAAmB,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACb,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAClG,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,SAAqB,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAwB;QACrG,IAAI,CAAC;YACJ,MAAM,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAChF,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CACxC,CAAC;YACF,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;YAEvH,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAE/G,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAEjD,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;YAEvG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,oBAAoB,GAAuB,MAAM,QAAQ;iBAC7D,wBAAwB,CAAC,gBAAgB,CAAC;iBAC1C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAErD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CACpB,aAAa,gBAAgB,CAAC,MAAM,iBAAiB,WAAW,CAAC,MAAM,YAAY,gBAAgB,CAAC,GAAG,CACtG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACb,MAAM,oBAAoB,CAAC,MAAM,EAAE,CACpC,CAAC;YAEF,IAAI,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACjG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;CACD"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ declare const Conformance: {
10
10
  world?: import("../lib/defs.js").TWorld;
11
11
  close?(): void;
12
12
  endFeature?(): Promise<void>;
13
- onFailure?(result: import("../lib/defs.js").TStepResult, step: import("../lib/defs.js").TVStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
13
+ onFailure?(result: import("../lib/defs.js").TStepResult, step: import("../lib/defs.js").TFeatureStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
14
14
  setWorld(world: import("../lib/defs.js").TWorld, steppers: AStepper[]): Promise<void>;
15
15
  getWorld(): import("../lib/defs.js").TWorld;
16
16
  };
@@ -18,7 +18,7 @@ declare const Credentials: {
18
18
  world?: import("../lib/defs.js").TWorld;
19
19
  close?(): void;
20
20
  endFeature?(): Promise<void>;
21
- onFailure?(result: import("../lib/defs.js").TStepResult, step: import("../lib/defs.js").TVStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
21
+ onFailure?(result: import("../lib/defs.js").TStepResult, step: import("../lib/defs.js").TFeatureStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
22
22
  setWorld(world: import("../lib/defs.js").TWorld, steppers: AStepper[]): Promise<void>;
23
23
  getWorld(): import("../lib/defs.js").TWorld;
24
24
  };
@@ -1,5 +1,4 @@
1
- import { TNamed, AStepper, TWorld, TVStep } from '../lib/defs.js';
2
- import { Resolver } from '../phases/Resolver.js';
1
+ import { TNamed, AStepper, TWorld, TFeatureStep, TResolvedFeature } from '../lib/defs.js';
3
2
  declare const Haibun: {
4
3
  new (): {
5
4
  steppers: AStepper[];
@@ -45,12 +44,17 @@ declare const Haibun: {
45
44
  gwta: string;
46
45
  action: () => Promise<import("../lib/defs.js").TOKActionResult>;
47
46
  };
47
+ afterEveryStepper: {
48
+ gwta: string;
49
+ action: (usedInEffect: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
50
+ applyEffect: ({ stepperName, line }: TNamed, resolvedFeatures: TResolvedFeature[]) => Promise<TResolvedFeature[]>;
51
+ };
48
52
  };
49
- findAction: (action: string, resolver: Resolver, steppers: any) => AStepper;
53
+ newFeatureFromEffect(steppers: AStepper[], content: string, seq: number): Promise<TFeatureStep>;
50
54
  world?: TWorld;
51
55
  close?(): void;
52
56
  endFeature?(): Promise<void>;
53
- onFailure?(result: import("../lib/defs.js").TStepResult, step: TVStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
57
+ onFailure?(result: import("../lib/defs.js").TStepResult, step: TFeatureStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
54
58
  getWorld(): TWorld;
55
59
  };
56
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"haibun.d.ts","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,QAAA,MAAM,MAAM;;kBACA,QAAQ,EAAE;wBACE,MAAM,YAAY,QAAQ,EAAE;;;;;;;;oCAWpB,MAAM;;;;iCAOT,MAAM;;;;sCAOD,MAAM;;;;;;;;;;;;oCAmBR,MAAM;;;;0CAQA,MAAM;;;;iCASf,MAAM;;;;;;;6BAaX,MAAM,YAAY,QAAQ;;;;;;;CASjD,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"haibun.d.ts","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAM9F,QAAA,MAAM,MAAM;;kBACD,QAAQ,EAAE;wBACE,MAAM,YAAY,QAAQ,EAAE;;;;;;;;oCAWtB,MAAM;;;;iCAOT,MAAM;;;;sCAOD,MAAM;;;;;;;;;;;;oCAmBR,MAAM;;;;0CAQA,MAAM;;;;iCASf,MAAM;;;;;;;;uCAcA,MAAM;qDAGQ,MAAM,oBAAoB,gBAAgB,EAAE;;;uCAsBpD,QAAQ,EAAE,WAAW,MAAM,OAAO,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;;;;;;;CAMrG,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { OK, AStepper } from '../lib/defs.js';
2
+ import { Resolver } from '../phases/Resolver.js';
2
3
  import { actionNotOK, findStepper, sleep } from '../lib/util/index.js';
4
+ import { expand } from '../lib/features.js';
5
+ import { asFeatures } from '../lib/resolver-features.js';
3
6
  const Haibun = class Haibun extends AStepper {
4
7
  steppers;
5
8
  async setWorld(world, steppers) {
@@ -75,14 +78,36 @@ const Haibun = class Haibun extends AStepper {
75
78
  return OK;
76
79
  },
77
80
  },
81
+ afterEveryStepper: {
82
+ gwta: 'after every {stepperName}, {line}',
83
+ action: async (usedInEffect) => {
84
+ return OK;
85
+ },
86
+ applyEffect: async ({ stepperName, line }, resolvedFeatures) => {
87
+ const modifiedFeatures = [];
88
+ for (const rf of resolvedFeatures) {
89
+ const theStepper = findStepper(this.steppers, stepperName);
90
+ const newSteps = [];
91
+ for (const featureStep of rf.featureSteps) {
92
+ newSteps.push(featureStep);
93
+ if (featureStep.action.stepperName === stepperName) {
94
+ const newFeatureStep = await this.newFeatureFromEffect(this.steppers, line, featureStep.seq + 0.1);
95
+ newSteps.push(newFeatureStep);
96
+ }
97
+ }
98
+ rf.featureSteps = newSteps;
99
+ modifiedFeatures.push(rf);
100
+ }
101
+ return modifiedFeatures;
102
+ },
103
+ },
78
104
  };
79
- findAction = (action, resolver, steppers) => {
80
- const found = resolver.findActionableSteps(action);
81
- if (found?.length === 1) {
82
- return findStepper(steppers, found[0].stepperName);
83
- }
84
- return undefined;
85
- };
105
+ async newFeatureFromEffect(steppers, content, seq) {
106
+ const features = asFeatures([{ path: `resolved from ${content}`, content }]);
107
+ const expandedFeatures = await expand([], features);
108
+ const featureSteps = await new Resolver(steppers).findFeatureSteps(expandedFeatures[0]);
109
+ return { ...featureSteps[0], seq };
110
+ }
86
111
  };
87
112
  export default Haibun;
88
113
  //# sourceMappingURL=haibun.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"haibun.js","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"haibun.js","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,13 @@ declare const Parse: {
12
12
  };
13
13
  conformance: {
14
14
  gwta: string;
15
- action: ({ where }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
15
+ action: ({ where }: TNamed) => Promise<import("../lib/defs.js").TNotOKActionResult | import("../lib/defs.js").TOKActionResult>;
16
16
  };
17
17
  };
18
18
  world?: import("../lib/defs.js").TWorld;
19
19
  close?(): void;
20
20
  endFeature?(): Promise<void>;
21
- onFailure?(result: import("../lib/defs.js").TStepResult, step: import("../lib/defs.js").TVStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
21
+ onFailure?(result: import("../lib/defs.js").TStepResult, step: import("../lib/defs.js").TFeatureStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
22
22
  setWorld(world: import("../lib/defs.js").TWorld, steppers: AStepper[]): Promise<void>;
23
23
  getWorld(): import("../lib/defs.js").TWorld;
24
24
  };