@haibun/core 1.43.0 → 1.44.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.
Files changed (116) hide show
  1. package/build/applyEffectFeatures.d.ts +3 -0
  2. package/build/applyEffectFeatures.d.ts.map +1 -0
  3. package/build/applyEffectFeatures.js +32 -0
  4. package/build/applyEffectFeatures.js.map +1 -0
  5. package/build/currentVersion.d.ts +1 -1
  6. package/build/currentVersion.js +1 -1
  7. package/build/lib/ConnectedLogger.d.ts +4 -3
  8. package/build/lib/ConnectedLogger.d.ts.map +1 -1
  9. package/build/lib/ConnectedLogger.js +1 -1
  10. package/build/lib/ConnectedLogger.js.map +1 -1
  11. package/build/lib/Logger.d.ts +10 -18
  12. package/build/lib/Logger.d.ts.map +1 -1
  13. package/build/lib/Logger.js +19 -17
  14. package/build/lib/Logger.js.map +1 -1
  15. package/build/lib/TestLogger.d.ts +1 -0
  16. package/build/lib/TestLogger.d.ts.map +1 -1
  17. package/build/lib/TestLogger.js +1 -0
  18. package/build/lib/TestLogger.js.map +1 -1
  19. package/build/lib/Timer.d.ts +1 -1
  20. package/build/lib/Timer.d.ts.map +1 -1
  21. package/build/lib/Timer.js +2 -3
  22. package/build/lib/Timer.js.map +1 -1
  23. package/build/lib/contexts.d.ts +3 -12
  24. package/build/lib/contexts.d.ts.map +1 -1
  25. package/build/lib/contexts.js +1 -20
  26. package/build/lib/contexts.js.map +1 -1
  27. package/build/lib/defs.d.ts +51 -77
  28. package/build/lib/defs.d.ts.map +1 -1
  29. package/build/lib/defs.js +8 -20
  30. package/build/lib/defs.js.map +1 -1
  31. package/build/lib/features.d.ts.map +1 -1
  32. package/build/lib/features.js +3 -3
  33. package/build/lib/features.js.map +1 -1
  34. package/build/lib/interfaces/TArtifactRequestStepTopic.d.ts +53 -0
  35. package/build/lib/interfaces/TArtifactRequestStepTopic.d.ts.map +1 -0
  36. package/build/lib/interfaces/TArtifactRequestStepTopic.js +2 -0
  37. package/build/lib/interfaces/TArtifactRequestStepTopic.js.map +1 -0
  38. package/build/lib/interfaces/TMessageContext.d.ts +22 -0
  39. package/build/lib/interfaces/TMessageContext.d.ts.map +1 -0
  40. package/build/lib/interfaces/TMessageContext.js +2 -0
  41. package/build/lib/interfaces/TMessageContext.js.map +1 -0
  42. package/build/lib/interfaces/artifacts.d.ts +43 -0
  43. package/build/lib/interfaces/artifacts.d.ts.map +1 -0
  44. package/build/lib/interfaces/artifacts.js +2 -0
  45. package/build/lib/interfaces/artifacts.js.map +1 -0
  46. package/build/lib/interfaces/logger.d.ts +20 -86
  47. package/build/lib/interfaces/logger.d.ts.map +1 -1
  48. package/build/lib/interfaces/logger.js +16 -2
  49. package/build/lib/interfaces/logger.js.map +1 -1
  50. package/build/lib/interfaces/messageContexts.d.ts +10 -0
  51. package/build/lib/interfaces/messageContexts.d.ts.map +1 -0
  52. package/build/lib/interfaces/messageContexts.js +2 -0
  53. package/build/lib/interfaces/messageContexts.js.map +1 -0
  54. package/build/lib/namedVars.d.ts.map +1 -1
  55. package/build/lib/namedVars.js +6 -17
  56. package/build/lib/namedVars.js.map +1 -1
  57. package/build/lib/resolver-features.d.ts.map +1 -1
  58. package/build/lib/test/SetTimeStepper.d.ts.map +1 -1
  59. package/build/lib/test/SetTimeStepper.js +2 -2
  60. package/build/lib/test/SetTimeStepper.js.map +1 -1
  61. package/build/lib/test/TestSteps.d.ts +2 -4
  62. package/build/lib/test/TestSteps.d.ts.map +1 -1
  63. package/build/lib/test/TestSteps.js +5 -5
  64. package/build/lib/test/TestSteps.js.map +1 -1
  65. package/build/lib/test/TestStepsWithOptions.d.ts +2 -29
  66. package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -1
  67. package/build/lib/test/TestStepsWithOptions.js +3 -20
  68. package/build/lib/test/TestStepsWithOptions.js.map +1 -1
  69. package/build/lib/test/lib.d.ts +1 -1
  70. package/build/lib/test/lib.d.ts.map +1 -1
  71. package/build/lib/test/lib.js +2 -3
  72. package/build/lib/test/lib.js.map +1 -1
  73. package/build/lib/util/index.d.ts +16 -21
  74. package/build/lib/util/index.d.ts.map +1 -1
  75. package/build/lib/util/index.js +25 -53
  76. package/build/lib/util/index.js.map +1 -1
  77. package/build/lib/util/workspace-lib.d.ts +1 -2
  78. package/build/lib/util/workspace-lib.d.ts.map +1 -1
  79. package/build/lib/util/workspace-lib.js +0 -12
  80. package/build/lib/util/workspace-lib.js.map +1 -1
  81. package/build/phases/Executor.d.ts +12 -14
  82. package/build/phases/Executor.d.ts.map +1 -1
  83. package/build/phases/Executor.js +84 -85
  84. package/build/phases/Executor.js.map +1 -1
  85. package/build/phases/Resolver.d.ts.map +1 -1
  86. package/build/phases/Resolver.js +7 -6
  87. package/build/phases/Resolver.js.map +1 -1
  88. package/build/phases/collector.d.ts +0 -1
  89. package/build/phases/collector.d.ts.map +1 -1
  90. package/build/runner.d.ts +4 -8
  91. package/build/runner.d.ts.map +1 -1
  92. package/build/runner.js +17 -32
  93. package/build/runner.js.map +1 -1
  94. package/build/steps/conformance.d.ts +2 -4
  95. package/build/steps/conformance.d.ts.map +1 -1
  96. package/build/steps/conformance.js +1 -1
  97. package/build/steps/conformance.js.map +1 -1
  98. package/build/steps/credentials.d.ts +1 -3
  99. package/build/steps/credentials.d.ts.map +1 -1
  100. package/build/steps/credentials.js +4 -4
  101. package/build/steps/credentials.js.map +1 -1
  102. package/build/steps/haibun.d.ts +5 -7
  103. package/build/steps/haibun.d.ts.map +1 -1
  104. package/build/steps/haibun.js +26 -33
  105. package/build/steps/haibun.js.map +1 -1
  106. package/build/steps/lib/parse.js +1 -1
  107. package/build/steps/lib/parse.js.map +1 -1
  108. package/build/steps/parse.d.ts +4 -6
  109. package/build/steps/parse.d.ts.map +1 -1
  110. package/build/steps/parse.js +5 -5
  111. package/build/steps/parse.js.map +1 -1
  112. package/build/steps/vars.d.ts +91 -109
  113. package/build/steps/vars.d.ts.map +1 -1
  114. package/build/steps/vars.js +45 -28
  115. package/build/steps/vars.js.map +1 -1
  116. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-lib.js","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-lib.js","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIrC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,YAAsB;IACvD,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC;YACJ,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAIhD,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IACnD,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvF,SAAS,gBAAgB;IACxB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,OAAO,eAAe,IAAI,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,CAAS;IACzC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,GAAa,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACV,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC;IACT,CAAC;AACF,CAAC"}
@@ -1,22 +1,20 @@
1
- import { TFeatureStep, TResolvedFeature, TExecutorResult, TStepResult, TFeatureResult, TActionResult, TWorld, AStepper, CStepper, TStepAction } from '../lib/defs.js';
2
- import { TRunnerCallbacks } from '../runner.js';
1
+ import { TFeatureStep, TResolvedFeature, TExecutorResult, TStepResult, TFeatureResult, TActionResult, TWorld, AStepper, TStepAction, TAnyFixme } from '../lib/defs.js';
2
+ import { EExecutionMessageType } from '../lib/interfaces/logger.js';
3
3
  export declare class Executor {
4
4
  static action(steppers: AStepper[], featureStep: TFeatureStep, found: TStepAction, world: TWorld): Promise<TActionResult>;
5
- static execute(csteppers: CStepper[], world: TWorld, features: TResolvedFeature[], callbacks?: TRunnerCallbacks): Promise<TExecutorResult>;
5
+ static executeFeatures(steppers: AStepper[], world: TWorld, features: TResolvedFeature[]): Promise<TExecutorResult>;
6
6
  }
7
7
  export declare class FeatureExecutor {
8
- private csteppers;
9
- private callbacks?;
10
- world?: TWorld;
11
- steppers?: AStepper[];
12
- startOffset: number;
13
- constructor(csteppers: CStepper[], callbacks?: TRunnerCallbacks);
14
- setup(world: TWorld): Promise<void>;
8
+ private steppers;
9
+ private world;
10
+ private logit;
11
+ private startOffset;
12
+ constructor(steppers: AStepper[], world: TWorld, logit?: <T extends import("../lib/interfaces/artifacts.js").TArtifact>(message: import("../lib/interfaces/logger.js").TLogArgs, data: {
13
+ incident: EExecutionMessageType;
14
+ artifact?: T;
15
+ incidentDetails?: TAnyFixme;
16
+ }, level?: import("../lib/interfaces/logger.js").TLogLevel) => void, startOffset?: number);
15
17
  doFeature(feature: TResolvedFeature): Promise<TFeatureResult>;
16
18
  static doFeatureStep(steppers: AStepper[], featureStep: TFeatureStep, world: TWorld): Promise<TStepResult>;
17
- onFailure(result: TStepResult, step: TFeatureStep): Promise<void>;
18
- endFeature(): Promise<void>;
19
- doEndFeatureCallback(featureResult: TFeatureResult): Promise<void>;
20
- close(): Promise<void>;
21
19
  }
22
20
  //# sourceMappingURL=Executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,MAAM,EAEN,QAAQ,EACR,QAAQ,EACR,WAAW,EAOX,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,qBAAa,QAAQ;WAEP,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM;WAWzF,OAAO,CACnB,SAAS,EAAE,QAAQ,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,SAAS,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,eAAe,CAAC;CA2B3B;AAED,qBAAa,eAAe;IAKf,OAAO,CAAC,SAAS;IAAc,OAAO,CAAC,SAAS,CAAC;IAJ7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,SAAK;gBAEI,SAAS,EAAE,QAAQ,EAAE,EAAU,SAAS,CAAC,EAAE,gBAAgB;IACzE,KAAK,CAAC,KAAK,EAAE,MAAM;IAUnB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;WA6BtD,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB1G,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY;IASjD,UAAU;IAYV,oBAAoB,CAAC,aAAa,EAAE,cAAc;IAYlD,KAAK;CAQX"}
1
+ {"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAqB,QAAQ,EAAE,WAAW,EAAE,SAAS,EAA8H,MAAM,gBAAgB,CAAC;AACtT,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAepE,qBAAa,QAAQ;WACP,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM;WAYzF,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAiDzH;AAED,qBAAa,eAAe;IACf,OAAO,CAAC,QAAQ;IAAc,OAAO,CAAC,KAAK;IAAU,OAAO,CAAC,KAAK;IAA+B,OAAO,CAAC,WAAW;gBAA5G,QAAQ,EAAE,QAAQ,EAAE,EAAU,KAAK,EAAE,MAAM,EAAU,KAAK;;gBAlBuB,CAAA;uBAAoB,CAAC;uEAkBf,EAAU,WAAW,SAAsB;IAGhJ,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;WAsCtD,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAehH"}
@@ -1,8 +1,19 @@
1
- import { STAY, STAY_FAILURE, CHECK_NO, CHECK_YES, STEP_DELAY, } from '../lib/defs.js';
1
+ import { STAY, STAY_FAILURE, CHECK_NO, CHECK_YES, STEP_DELAY, CONTINUE_AFTER_ERROR } from '../lib/defs.js';
2
+ import { EExecutionMessageType } from '../lib/interfaces/logger.js';
3
+ import { topicArtifactLogger } from '../lib/Logger.js';
2
4
  import { getNamedToVars } from '../lib/namedVars.js';
3
- import { actionNotOK, setStepperWorlds, sleep, createSteppers, findStepper, constructorName } from '../lib/util/index.js';
5
+ import { actionNotOK, sleep, findStepper, constructorName, setStepperWorlds } from '../lib/util/index.js';
6
+ import { SCENARIO_START } from '../steps/vars.js';
7
+ function calculateShouldClose({ thisFeatureOK, isLast, stayOnFailure }) {
8
+ if (thisFeatureOK) {
9
+ return true;
10
+ }
11
+ if (isLast && stayOnFailure) {
12
+ return false;
13
+ }
14
+ return true;
15
+ }
4
16
  export class Executor {
5
- // find the stepper and action, call it and return its result
6
17
  static async action(steppers, featureStep, found, world) {
7
18
  const namedWithVars = getNamedToVars(found, world, featureStep);
8
19
  const stepper = findStepper(steppers, found.stepperName);
@@ -10,75 +21,99 @@ export class Executor {
10
21
  return await action(namedWithVars, featureStep).catch((caught) => {
11
22
  world.logger.error(caught.stack);
12
23
  return actionNotOK(`in ${featureStep.in}: ${caught.message}`, {
13
- topics: { caught: (caught?.stack || caught).toString() },
24
+ incident: EExecutionMessageType.ACTION,
25
+ incidentDetails: { caught: (caught?.stack || caught).toString() },
14
26
  });
15
27
  });
16
28
  }
17
- static async execute(csteppers, world, features, callbacks) {
18
- let ok = true;
29
+ static async executeFeatures(steppers, world, features) {
30
+ await doStepperMethod(steppers, 'startExecution');
31
+ let okSoFar = true;
19
32
  const stayOnFailure = world.options[STAY] === STAY_FAILURE;
20
33
  const featureResults = [];
21
34
  let featureNum = 0;
35
+ const continueAfterError = !!(world.options[CONTINUE_AFTER_ERROR]);
22
36
  for (const feature of features) {
23
37
  featureNum++;
38
+ const isLast = featureNum === features.length;
39
+ world.logger.log(`███ feature ${featureNum}/${features.length}: ${feature.path}`);
24
40
  const newWorld = { ...world, tag: { ...world.tag, ...{ featureNum: 0 + featureNum } } };
25
- const featureExecutor = new FeatureExecutor(csteppers, callbacks);
26
- await featureExecutor.setup(newWorld);
41
+ const featureExecutor = new FeatureExecutor(steppers, newWorld);
42
+ await setStepperWorlds(steppers, newWorld);
43
+ await doStepperMethod(steppers, 'startFeature');
27
44
  const featureResult = await featureExecutor.doFeature(feature);
28
- ok = ok && featureResult.ok;
45
+ const thisFeatureOK = featureResult.ok;
46
+ if (!thisFeatureOK) {
47
+ const failedStep = featureResult.stepResults.find((s) => !s.ok);
48
+ await doStepperMethod(steppers, 'onFailure', featureResult, failedStep);
49
+ }
50
+ okSoFar = okSoFar && thisFeatureOK;
29
51
  featureResults.push(featureResult);
30
- const shouldClose = ok || !stayOnFailure;
31
- await featureExecutor.endFeature(); // this should be before close
52
+ const shouldCloseFactors = { thisFeatureOK: featureResult.ok, okSoFar, isLast, continueAfterError, stayOnFailure };
53
+ const shouldClose = calculateShouldClose(shouldCloseFactors);
32
54
  if (shouldClose) {
33
- await featureExecutor.close();
55
+ world.logger.debug(`shouldClose ${JSON.stringify(shouldCloseFactors)}`);
56
+ }
57
+ else {
58
+ world.logger.debug(`no shouldClose because ${JSON.stringify(shouldCloseFactors)}`);
59
+ }
60
+ await doStepperMethod(steppers, 'endFeature', { world: newWorld, shouldClose, isLast, okSoFar, continueAfterError, stayOnFailure, thisFeatureOK: featureResult.ok });
61
+ if (!okSoFar) {
62
+ if (!continueAfterError && !isLast) {
63
+ world.logger.debug(`stopping without ${CONTINUE_AFTER_ERROR}`);
64
+ break;
65
+ }
66
+ else {
67
+ if (continueAfterError && !isLast) {
68
+ world.logger.debug(`continuing because ${CONTINUE_AFTER_ERROR}`);
69
+ }
70
+ }
34
71
  }
35
- await featureExecutor.doEndFeatureCallback(featureResult);
36
72
  }
37
- return { ok, featureResults: featureResults, tag: world.tag, shared: world.shared };
73
+ await doStepperMethod(steppers, 'endExecution');
74
+ return { ok: okSoFar, featureResults: featureResults, tag: world.tag, shared: world.shared, steppers };
38
75
  }
39
76
  }
40
77
  export class FeatureExecutor {
41
- csteppers;
42
- callbacks;
43
- world;
44
78
  steppers;
45
- startOffset = 0;
46
- constructor(csteppers, callbacks) {
47
- this.csteppers = csteppers;
48
- this.callbacks = callbacks;
49
- }
50
- async setup(world) {
51
- this.world = world;
52
- this.startOffset = world.timer.since();
53
- const errorBail = (phase, error, extra) => {
54
- throw Error(error);
55
- };
56
- const steppers = await createSteppers(this.csteppers);
57
- await setStepperWorlds(steppers, world).catch((error) => errorBail('Apply Options', error, world.moduleOptions));
79
+ world;
80
+ logit;
81
+ startOffset;
82
+ constructor(steppers, world, logit = topicArtifactLogger(world), startOffset = world.timer.since()) {
58
83
  this.steppers = steppers;
84
+ this.world = world;
85
+ this.logit = logit;
86
+ this.startOffset = startOffset;
59
87
  }
60
88
  async doFeature(feature) {
61
89
  const world = this.world;
62
- world.logger.log(`███ feature ${world.tag.featureNum}: ${feature.path}`);
63
90
  let ok = true;
64
91
  const stepResults = [];
92
+ let currentScenario = 0;
65
93
  for (const step of feature.featureSteps) {
66
- world.logger.log(step.in);
94
+ if (step.action.actionName === SCENARIO_START) {
95
+ if (currentScenario) {
96
+ this.logit(`end scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_END, incidentDetails: { currentScenario } }, 'debug');
97
+ }
98
+ currentScenario = currentScenario + 1;
99
+ this.logit(`start scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_START, incidentDetails: { currentScenario } }, 'debug');
100
+ }
101
+ world.logger.log(step.in, { incident: EExecutionMessageType.STEP_START, tag: world.tag });
67
102
  const result = await FeatureExecutor.doFeatureStep(this.steppers, step, world);
68
103
  if (world.options[STEP_DELAY]) {
69
104
  await sleep(world.options[STEP_DELAY]);
70
105
  }
71
106
  ok = ok && result.ok;
72
- if (!result.ok) {
73
- await this.onFailure(result, step);
74
- }
75
- const indicator = result.ok ? CHECK_YES : CHECK_NO;
76
- world.logger.log(indicator, { topic: { stage: 'Executor', result, step } });
107
+ const indicator = result.ok ? CHECK_YES : CHECK_NO + ' ' + result.actionResult.message;
108
+ world.logger.log(indicator, { incident: EExecutionMessageType.STEP_END, tag: world.tag, incidentDetails: { result, step } });
77
109
  stepResults.push(result);
78
110
  if (!ok) {
79
111
  break;
80
112
  }
81
113
  }
114
+ if (currentScenario) {
115
+ this.logit(`end scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_END, incidentDetails: { currentScenario } }, 'debug');
116
+ }
82
117
  const featureResult = { path: feature.path, ok, stepResults };
83
118
  return featureResult;
84
119
  }
@@ -88,58 +123,22 @@ export class FeatureExecutor {
88
123
  const action = featureStep.action;
89
124
  const start = world.timer.since();
90
125
  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');
95
- }
96
126
  const end = world.timer.since();
97
127
  // FIXME
98
- const stepResult = { ...res, name: action.actionName, start, end, traces };
99
- const actionResult = stepResult;
128
+ const actionResult = { ...res, name: action.actionName, start, end };
100
129
  ok = ok && res.ok;
101
- return { ok, in: featureStep.in, sourcePath: featureStep.source.path, actionResult, seq: featureStep.seq };
102
- }
103
- async onFailure(result, step) {
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);
108
- }
109
- }
130
+ return { ok, in: featureStep.in, path: featureStep.path, actionResult, seq: featureStep.seq };
110
131
  }
111
- async endFeature() {
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) => {
116
- console.error('endFeature', error);
117
- throw error;
118
- });
119
- this.world.logger.debug(`endedFeature ${constructorName(stepper)}`);
120
- }
121
- }
122
- }
123
- async doEndFeatureCallback(featureResult) {
124
- if (this.callbacks.endFeature) {
125
- for (const callback of this.callbacks.endFeature) {
126
- try {
127
- await callback({ world: this.world, result: featureResult, steppers: this.steppers, startOffset: this.startOffset });
128
- }
129
- catch (error) {
130
- console.error('endFeatureCallback failing', callback.toString());
131
- throw Error(error);
132
- }
133
- }
134
- }
135
- }
136
- async close() {
137
- for (const stepper of this.steppers) {
138
- if (stepper.close) {
139
- this.world.logger.debug(`closing ${constructorName(stepper)}`);
140
- await stepper.close();
141
- }
132
+ }
133
+ const doStepperMethod = async (steppers, method, ...args) => {
134
+ for (const stepper of steppers) {
135
+ if (stepper?.cycles && stepper.cycles[method]) {
136
+ stepper.getWorld().logger.debug(`🔁 ${method} ${constructorName(stepper)}`);
137
+ await stepper.cycles[method](...args).catch((error) => {
138
+ console.error(`${method} failed`, error);
139
+ throw error;
140
+ });
142
141
  }
143
142
  }
144
- }
143
+ };
145
144
  //# sourceMappingURL=Executor.js.map
@@ -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 +1 @@
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
+ {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAM,gBAAgB,EAAE,QAAQ,EAAgB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK1I,qBAAa,QAAQ;IAGR,OAAO,CAAC,QAAQ;IAF5B,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEI,QAAQ,EAAE,QAAQ,EAAE;IAIlC,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAW9C,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,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE,qBAAqB,MAAM,YACzB;IACxF,MAAM,CAAC,4BAA4B,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,YACpB;IAClE,MAAM,CAAC,2BAA2B,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,YAC9B;CACvD"}
@@ -1,4 +1,4 @@
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';
@@ -14,12 +14,13 @@ export class Resolver {
14
14
  for (const feature of features) {
15
15
  const featureSteps = await this.findFeatureSteps(feature);
16
16
  const e = { ...feature, ...{ featureSteps } };
17
+ delete e.expanded;
17
18
  steps.push(e);
18
19
  }
19
20
  return steps;
20
21
  }
21
22
  async findFeatureSteps(feature) {
22
- let featureSteps = [];
23
+ const featureSteps = [];
23
24
  let seq = 0;
24
25
  for (const featureLine of feature.expanded) {
25
26
  seq++;
@@ -29,15 +30,15 @@ export class Resolver {
29
30
  throw Error(`more than one step found for "${featureLine.line}": ${JSON.stringify(actions.map((a) => a.actionName))}`);
30
31
  }
31
32
  else if (actions.length < 1) {
32
- throw Error(`no step found for ${featureLine.line} in ${feature.path} from ${describeSteppers(this.steppers)}`);
33
+ throw Error(`in ${feature.name}: no step found for ${featureLine.line} in ${feature.path} from\n${describeSteppers(this.steppers)}\nUse --show-steppers for more details`);
33
34
  }
34
35
  const featureStep = this.getFeatureStep(featureLine, seq, actions[0]);
35
36
  featureSteps.push(featureStep);
36
37
  }
37
- return featureSteps;
38
+ return Promise.resolve(featureSteps);
38
39
  }
39
40
  getFeatureStep(featureLine, seq, action) {
40
- return { source: featureLine.feature, in: featureLine.line, seq, action };
41
+ return { path: featureLine.feature.path, in: featureLine.line, seq, action };
41
42
  }
42
43
  findActionableSteps(actionable) {
43
44
  if (!actionable.length) {
@@ -85,7 +86,7 @@ const comment = {
85
86
  step: {
86
87
  match: /.*/,
87
88
  action: async () => {
88
- return OK;
89
+ return Promise.resolve(OK);
89
90
  },
90
91
  },
91
92
  };
@@ -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":"AAAA,OAAO,EAAiC,EAAE,EAAyE,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE/G,MAAM,OAAO,QAAQ;IAGA;IAFpB,KAAK,CAAW;IAEhB,YAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;QACvC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,QAA4B;QAC1D,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC;YAC9C,OAAO,CAAC,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,OAAyB;QACtD,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5C,GAAG,EAAE,CAAC;YAEN,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAErD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAC,iCAAiC,WAAW,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YACxH,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,uBAAuB,WAAW,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,UAAU,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC;YAC5K,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,WAA0B,EAAE,GAAW,EAAE,MAAmB;QAC1E,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAC9E,CAAC;IAEM,mBAAmB,CAAC,UAAkB;QAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;YAC1B,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAE9E,IAAI,SAAS,EAAE,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,WAAW,CAAC,IAAkB,EAAE,UAAkB,EAAE,UAAkB,EAAE,WAAmB;QAClG,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3F,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,iFAAiF;YACjF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;IACF,CAAC;IACD;OACG,CAAC,MAAM,CAAC,sBAAsB,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAE,IAAY,EAAE,mBAA2B,EAAE,EAAE,CACpH,GAAG,OAAO,UAAU,QAAQ,2BAA2B,IAAI,MAAM,mBAAmB,EAAE,CAAC;IACxF,MAAM,CAAC,4BAA4B,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAE,IAAY,EAAE,EAAE,CACzF,GAAG,OAAO,mBAAmB,QAAQ,oBAAoB,IAAI,GAAG,CAAC;IAClE,MAAM,CAAC,2BAA2B,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAE,IAAY,EAAE,EAAE,CACxF,GAAG,OAAO,QAAQ,QAAQ,oBAAoB,IAAI,GAAG,CAAC;;AAGxD,MAAM,OAAO,GAAG;IACf,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE;QACL,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;KACD;CACD,CAAC"}
@@ -8,7 +8,6 @@ export declare function getFeaturesAndBackgrounds(bases: TBase, featureFilter: s
8
8
  export declare function shouldProcess(file: string, type: undefined | string, featureFilter: string[] | undefined): boolean;
9
9
  export declare function debase(abase: string, features: TFeature[]): {
10
10
  path: string;
11
- type: string;
12
11
  base: string;
13
12
  name: string;
14
13
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,WAAoB,GAAG,oBAAoB,CAuB/H;AAiBD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,WAKxG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;;;;;;IAEzD"}
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,WAAoB,GAAG,oBAAoB,CAuB/H;AAiBD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,WAKxG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;;;;;IAEzD"}
package/build/runner.d.ts CHANGED
@@ -1,16 +1,12 @@
1
- import { TWorld, TExecutorResult, CStepper, TEndFeatureCallback } from './lib/defs.js';
1
+ import { TWorld, TExecutorResult, CStepper, AStepper } from './lib/defs.js';
2
2
  import { TFeaturesBackgrounds } from './phases/collector.js';
3
- export type TRunnerCallbacks = {
4
- endFeature?: TEndFeatureCallback[];
5
- };
6
3
  export declare class Runner {
7
4
  private world;
8
- private callbacks;
9
5
  private result;
10
- constructor(world: TWorld, callbacks?: TRunnerCallbacks);
6
+ steppers: AStepper[];
7
+ constructor(world: TWorld);
11
8
  private errorBail;
12
- run(steppers: string[]): Promise<TExecutorResult>;
9
+ run(steppers: string[], featureFilter?: any[]): Promise<TExecutorResult>;
13
10
  runFeaturesAndBackgrounds(csteppers: CStepper[], { features, backgrounds }: TFeaturesBackgrounds): Promise<TExecutorResult>;
14
- private applyEffectFeatures;
15
11
  }
16
12
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAa,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIvF,OAAO,EAA6B,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIxF,qBAAa,MAAM;IAIN,OAAO,CAAC,KAAK;IAHzB,OAAO,CAAC,MAAM,CAA8B;IAC5C,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBAED,KAAK,EAAE,MAAM;IAEjC,OAAO,CAAC,SAAS,CAWf;IAEI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,aAAa,QAAK,GAAG,OAAO,CAAC,eAAe,CAAC;IAcrE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,oBAAoB;CA0BtG"}
package/build/runner.js CHANGED
@@ -1,17 +1,16 @@
1
+ import { applyEffectFeatures } from './applyEffectFeatures.js';
1
2
  import { expand } from './lib/features.js';
2
- import { getNamedToVars } from './lib/namedVars.js';
3
- import { verifyRequiredOptions, verifyExtraOptions, createSteppers, setStepperWorlds, constructorName, } from './lib/util/index.js';
3
+ import { verifyRequiredOptions, verifyExtraOptions, createSteppers, setStepperWorlds } from './lib/util/index.js';
4
4
  import { getSteppers } from './lib/util/workspace-lib.js';
5
5
  import { getFeaturesAndBackgrounds } from './phases/collector.js';
6
6
  import { Executor } from './phases/Executor.js';
7
7
  import { Resolver } from './phases/Resolver.js';
8
8
  export class Runner {
9
9
  world;
10
- callbacks;
11
10
  result = undefined;
12
- constructor(world, callbacks = {}) {
11
+ steppers;
12
+ constructor(world) {
13
13
  this.world = world;
14
- this.callbacks = callbacks;
15
14
  }
16
15
  errorBail = (phase, error, details) => {
17
16
  this.world.logger.error(`errorBail ${phase} ${error} ${details}`, error.stack);
@@ -20,35 +19,36 @@ export class Runner {
20
19
  shared: this.world.shared,
21
20
  tag: this.world.tag,
22
21
  failure: { stage: phase, error: { message: error.message, details: { stack: error.stack, details } } },
22
+ steppers: this.steppers
23
23
  };
24
+ console.error(error.stack);
24
25
  throw Error(error);
25
26
  };
26
- async run(steppers) {
27
+ async run(steppers, featureFilter = []) {
27
28
  let featuresBackgrounds = undefined;
28
29
  try {
29
- featuresBackgrounds = getFeaturesAndBackgrounds(this.world.bases, []);
30
+ featuresBackgrounds = getFeaturesAndBackgrounds(this.world.bases, featureFilter);
30
31
  }
31
32
  catch (error) {
32
33
  this.errorBail('Collector', error);
33
34
  }
34
35
  const { features, backgrounds } = featuresBackgrounds;
35
36
  const cSteppers = await getSteppers(steppers).catch((error) => this.errorBail('Steppers', error));
36
- return await this.runFeaturesAndBackgrounds(cSteppers, { features, backgrounds });
37
+ const featureResults = await this.runFeaturesAndBackgrounds(cSteppers, { features, backgrounds });
38
+ return featureResults;
37
39
  }
38
40
  async runFeaturesAndBackgrounds(csteppers, { features, backgrounds }) {
39
41
  try {
40
42
  await verifyRequiredOptions(csteppers, this.world.moduleOptions).catch((error) => this.errorBail('RequiredOptions', error));
41
43
  await verifyExtraOptions(this.world.moduleOptions, csteppers).catch((error) => this.errorBail('moduleOptions', error));
42
- const steppers = await createSteppers(csteppers);
43
- await setStepperWorlds(steppers, this.world).catch((error) => this.errorBail('StepperOptions', error));
44
+ this.steppers = await createSteppers(csteppers);
45
+ await setStepperWorlds(this.steppers, this.world);
44
46
  const expandedFeatures = await expand(backgrounds, features).catch((error) => this.errorBail('Expand', error));
45
- const resolver = new Resolver(steppers);
46
- const resolvedFeatures = await resolver
47
- .resolveStepsFromFeatures(expandedFeatures)
48
- .catch((error) => this.errorBail('Resolve', 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).catch((error) => this.errorBail('Execute', error));
47
+ const resolver = new Resolver(this.steppers);
48
+ const resolvedFeatures = await resolver.resolveStepsFromFeatures(expandedFeatures).catch((error) => this.errorBail('Resolve', error));
49
+ const appliedResolvedFeatures = await applyEffectFeatures(this.world, resolvedFeatures, this.steppers);
50
+ this.world.logger.log(`features: ${appliedResolvedFeatures.length} (${appliedResolvedFeatures.map((e) => e.path)}) backgrounds: ${backgrounds.length}`);
51
+ this.result = await Executor.executeFeatures(this.steppers, this.world, appliedResolvedFeatures).catch((error) => this.errorBail('Execute', error));
52
52
  }
53
53
  catch (error) {
54
54
  if (!this.result) {
@@ -57,20 +57,5 @@ export class Runner {
57
57
  }
58
58
  return this.result;
59
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
- }
75
60
  }
76
61
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACN,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,GACf,MAAM,qBAAqB,CAAC;AAC7B,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;AAMhD,MAAM,OAAO,MAAM;IAGE;IAAuB;IAFnC,MAAM,GAAoB,SAAS,CAAC;IAE5C,YAAoB,KAAa,EAAU,YAA8B,EAAE;QAAvD,UAAK,GAAL,KAAK,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAuB;IAAG,CAAC;IAEvE,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,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpC,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;YACvH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YACjD,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,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,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,gBAAgB,GAAG,MAAM,QAAQ;iBACrC,wBAAwB,CAAC,gBAAgB,CAAC;iBAC1C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAErD,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAE3F,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,uBAAuB,CAAC,MAAM,EAAE,CACvC,CAAC;YAEF,IAAI,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CACzG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAC3C,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;IAEO,KAAK,CAAC,mBAAmB,CAAC,gBAAoC,EAAE,QAAoB;QAC3F,IAAI,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAExC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACxC,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;gBAChF,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;oBAC9D,MAAM,KAAK,GAAgB,MAAM,CAAC;oBAClC,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACrE,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5F,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;CACD"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,11 @@ declare const Conformance: {
4
4
  steps: {
5
5
  must: {
6
6
  match: RegExp;
7
- action: (input: any) => Promise<import("../lib/defs.js").TNotOKActionResult>;
7
+ action: () => Promise<import("../lib/defs.js").TNotOKActionResult>;
8
8
  };
9
9
  };
10
10
  world?: import("../lib/defs.js").TWorld;
11
- close?(): void;
12
- endFeature?(): Promise<void>;
13
- onFailure?(result: import("../lib/defs.js").TStepResult, step: import("../lib/defs.js").TFeatureStep): Promise<void | import("../lib/interfaces/logger.js").TMessageContext>;
11
+ cycles?: import("../lib/defs.js").IStepperCycles;
14
12
  setWorld(world: import("../lib/defs.js").TWorld, steppers: AStepper[]): Promise<void>;
15
13
  getWorld(): import("../lib/defs.js").TWorld;
16
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/steps/conformance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,QAAA,MAAM,WAAW;;;;;gCAIW,GAAG;;;;;;;;;;CAG9B,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/steps/conformance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,QAAA,MAAM,WAAW;;;;;;;;;;;;;CAOhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -4,7 +4,7 @@ const Conformance = class Conformance extends AStepper {
4
4
  steps = {
5
5
  must: {
6
6
  match: /(?!\n|. )\b([A-Z].*? must .*?\.)/,
7
- action: async (input) => actionNotOK('not implemented'),
7
+ action: async () => Promise.resolve(actionNotOK('not implemented')),
8
8
  },
9
9
  };
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/steps/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,GAAG,MAAM,WAAY,SAAQ,QAAQ;IACpD,KAAK,GAAG;QACN,IAAI,EAAE;YACJ,KAAK,EAAE,kCAAkC;YACzC,MAAM,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC;SAC7D;KACF,CAAC;CACH,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/steps/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,GAAG,MAAM,WAAY,SAAQ,QAAQ;IACrD,KAAK,GAAG;QACP,IAAI,EAAE;YACL,KAAK,EAAE,kCAAkC;YACzC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACnE;KACD,CAAC;CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}