@haibun/core 2.0.0 → 3.0.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 (153) hide show
  1. package/build/applyEffectFeatures.d.ts.map +1 -1
  2. package/build/applyEffectFeatures.js +3 -6
  3. package/build/applyEffectFeatures.js.map +1 -1
  4. package/build/currentVersion.d.ts +1 -1
  5. package/build/currentVersion.js +1 -1
  6. package/build/jsprolog/converter.d.ts +9 -0
  7. package/build/jsprolog/converter.d.ts.map +1 -0
  8. package/build/jsprolog/converter.js +42 -0
  9. package/build/jsprolog/converter.js.map +1 -0
  10. package/build/jsprolog/stepper-utils.d.ts +8 -0
  11. package/build/jsprolog/stepper-utils.d.ts.map +1 -0
  12. package/build/jsprolog/stepper-utils.js +8 -0
  13. package/build/jsprolog/stepper-utils.js.map +1 -0
  14. package/build/jsprolog/test.jsprolog.d.ts +4 -0
  15. package/build/jsprolog/test.jsprolog.d.ts.map +1 -0
  16. package/build/jsprolog/test.jsprolog.js +19 -0
  17. package/build/jsprolog/test.jsprolog.js.map +1 -0
  18. package/build/jsprolog/test.kireji.d.ts +4 -0
  19. package/build/jsprolog/test.kireji.d.ts.map +1 -0
  20. package/build/jsprolog/test.kireji.js +19 -0
  21. package/build/jsprolog/test.kireji.js.map +1 -0
  22. package/build/jsprolog/withAction.d.ts +32 -0
  23. package/build/jsprolog/withAction.d.ts.map +1 -0
  24. package/build/jsprolog/withAction.js +65 -0
  25. package/build/jsprolog/withAction.js.map +1 -0
  26. package/build/kireji/converter.d.ts +9 -0
  27. package/build/kireji/converter.d.ts.map +1 -0
  28. package/build/kireji/converter.js +49 -0
  29. package/build/kireji/converter.js.map +1 -0
  30. package/build/kireji/test.kireji.d.ts +4 -0
  31. package/build/kireji/test.kireji.d.ts.map +1 -0
  32. package/build/kireji/test.kireji.js +19 -0
  33. package/build/kireji/test.kireji.js.map +1 -0
  34. package/build/kireji/withAction.d.ts +36 -0
  35. package/build/kireji/withAction.d.ts.map +1 -0
  36. package/build/kireji/withAction.js +66 -0
  37. package/build/kireji/withAction.js.map +1 -0
  38. package/build/lib/Logger.d.ts +2 -0
  39. package/build/lib/Logger.d.ts.map +1 -1
  40. package/build/lib/Logger.js +9 -5
  41. package/build/lib/Logger.js.map +1 -1
  42. package/build/lib/TestLogger.d.ts +1 -0
  43. package/build/lib/TestLogger.d.ts.map +1 -1
  44. package/build/lib/TestLogger.js +1 -0
  45. package/build/lib/TestLogger.js.map +1 -1
  46. package/build/lib/astepper.d.ts +4 -6
  47. package/build/lib/astepper.d.ts.map +1 -1
  48. package/build/lib/astepper.js +0 -1
  49. package/build/lib/astepper.js.map +1 -1
  50. package/build/lib/core-domains.d.ts +3 -3
  51. package/build/lib/core-domains.d.ts.map +1 -1
  52. package/build/lib/core-domains.js +3 -3
  53. package/build/lib/core-domains.js.map +1 -1
  54. package/build/lib/defs.d.ts +29 -23
  55. package/build/lib/defs.d.ts.map +1 -1
  56. package/build/lib/defs.js +2 -1
  57. package/build/lib/defs.js.map +1 -1
  58. package/build/lib/errors.d.ts +13 -0
  59. package/build/lib/errors.d.ts.map +1 -0
  60. package/build/lib/errors.js +18 -0
  61. package/build/lib/errors.js.map +1 -0
  62. package/build/lib/feature-variables.d.ts +4 -2
  63. package/build/lib/feature-variables.d.ts.map +1 -1
  64. package/build/lib/feature-variables.js +12 -2
  65. package/build/lib/feature-variables.js.map +1 -1
  66. package/build/lib/features.d.ts.map +1 -1
  67. package/build/lib/features.js +7 -3
  68. package/build/lib/features.js.map +1 -1
  69. package/build/lib/interfaces/logger.d.ts +4 -2
  70. package/build/lib/interfaces/logger.d.ts.map +1 -1
  71. package/build/lib/interfaces/logger.js +1 -0
  72. package/build/lib/interfaces/logger.js.map +1 -1
  73. package/build/lib/namedVars.d.ts.map +1 -1
  74. package/build/lib/namedVars.js +8 -1
  75. package/build/lib/namedVars.js.map +1 -1
  76. package/build/lib/populateActionArgs.js +1 -1
  77. package/build/lib/populateActionArgs.js.map +1 -1
  78. package/build/lib/test/TestSteps.d.ts +0 -5
  79. package/build/lib/test/TestSteps.d.ts.map +1 -1
  80. package/build/lib/test/TestSteps.js +0 -8
  81. package/build/lib/test/TestSteps.js.map +1 -1
  82. package/build/lib/test/lib.d.ts +4 -1
  83. package/build/lib/test/lib.d.ts.map +1 -1
  84. package/build/lib/test/lib.js +18 -5
  85. package/build/lib/test/lib.js.map +1 -1
  86. package/build/lib/test/resolvedTestFeatures.js +1 -1
  87. package/build/lib/test/resolvedTestFeatures.js.map +1 -1
  88. package/build/lib/util/featureStep-executor.d.ts +2 -1
  89. package/build/lib/util/featureStep-executor.d.ts.map +1 -1
  90. package/build/lib/util/featureStep-executor.js +31 -7
  91. package/build/lib/util/featureStep-executor.js.map +1 -1
  92. package/build/lib/util/index.d.ts +3 -1
  93. package/build/lib/util/index.d.ts.map +1 -1
  94. package/build/lib/util/index.js +2 -0
  95. package/build/lib/util/index.js.map +1 -1
  96. package/build/phases/Executor.d.ts +6 -1
  97. package/build/phases/Executor.d.ts.map +1 -1
  98. package/build/phases/Executor.js +156 -22
  99. package/build/phases/Executor.js.map +1 -1
  100. package/build/phases/Resolver.d.ts +4 -3
  101. package/build/phases/Resolver.d.ts.map +1 -1
  102. package/build/phases/Resolver.js +49 -31
  103. package/build/phases/Resolver.js.map +1 -1
  104. package/build/phases/collector.d.ts +1 -1
  105. package/build/phases/collector.d.ts.map +1 -1
  106. package/build/phases/collector.js +36 -7
  107. package/build/phases/collector.js.map +1 -1
  108. package/build/runner.d.ts.map +1 -1
  109. package/build/runner.js +4 -7
  110. package/build/runner.js.map +1 -1
  111. package/build/steps/activities-stepper.d.ts +79 -0
  112. package/build/steps/activities-stepper.d.ts.map +1 -0
  113. package/build/steps/activities-stepper.js +342 -0
  114. package/build/steps/activities-stepper.js.map +1 -0
  115. package/build/steps/conditions-stepper.d.ts +27 -0
  116. package/build/steps/conditions-stepper.d.ts.map +1 -0
  117. package/build/steps/conditions-stepper.js +99 -0
  118. package/build/steps/conditions-stepper.js.map +1 -0
  119. package/build/steps/debugger-stepper.d.ts +60 -2
  120. package/build/steps/debugger-stepper.d.ts.map +1 -1
  121. package/build/steps/debugger-stepper.js +5 -5
  122. package/build/steps/debugger-stepper.js.map +1 -1
  123. package/build/steps/haibun.d.ts +69 -22
  124. package/build/steps/haibun.d.ts.map +1 -1
  125. package/build/steps/haibun.js +138 -75
  126. package/build/steps/haibun.js.map +1 -1
  127. package/build/steps/narrator.d.ts +4 -4
  128. package/build/steps/parse.d.ts +1 -1
  129. package/build/steps/variables-stepper.d.ts +69 -4
  130. package/build/steps/variables-stepper.d.ts.map +1 -1
  131. package/build/steps/variables-stepper.js +44 -14
  132. package/build/steps/variables-stepper.js.map +1 -1
  133. package/package.json +1 -1
  134. package/build/lib/dependency-resolver.d.ts +0 -2
  135. package/build/lib/dependency-resolver.d.ts.map +0 -1
  136. package/build/lib/dependency-resolver.js +0 -3
  137. package/build/lib/dependency-resolver.js.map +0 -1
  138. package/build/lib/resolve-or-error.d.ts +0 -2
  139. package/build/lib/resolve-or-error.d.ts.map +0 -1
  140. package/build/lib/resolve-or-error.js +0 -3
  141. package/build/lib/resolve-or-error.js.map +0 -1
  142. package/build/lib/resolved-text-view.d.ts +0 -32
  143. package/build/lib/resolved-text-view.d.ts.map +0 -1
  144. package/build/lib/resolved-text-view.js +0 -103
  145. package/build/lib/resolved-text-view.js.map +0 -1
  146. package/build/lib/resolved-view.d.ts +0 -45
  147. package/build/lib/resolved-view.d.ts.map +0 -1
  148. package/build/lib/resolved-view.js +0 -133
  149. package/build/lib/resolved-view.js.map +0 -1
  150. package/build/phases/statement.test copy.d.ts +0 -2
  151. package/build/phases/statement.test copy.d.ts.map +0 -1
  152. package/build/phases/statement.test copy.js +0 -57
  153. package/build/phases/statement.test copy.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { STAY, STAY_FAILURE, CHECK_NO, CHECK_YES, CHECK_YIELD, STEP_DELAY, CONTINUE_AFTER_ERROR, ExecMode, MAYBE_CHECK_YES, MAYBE_CHECK_NO } from '../lib/defs.js';
2
2
  import { EExecutionMessageType } from '../lib/interfaces/logger.js';
3
3
  import { topicArtifactLogger } from '../lib/Logger.js';
4
- import { actionNotOK, sleep, findStepper, constructorName, setStepperWorldsAndDomains } from '../lib/util/index.js';
4
+ import { actionNotOK, sleep, findStepper, constructorName, setStepperWorldsAndDomains, formatCurrentSeqPath } from '../lib/util/index.js';
5
5
  import { SCENARIO_START } from '../lib/defs.js';
6
6
  import { Timer } from '../lib/Timer.js';
7
7
  import { FeatureVariables } from '../lib/feature-variables.js';
@@ -23,7 +23,32 @@ function calculateShouldClose({ thisFeatureOK, isLast, stayOnFailure, continueAf
23
23
  }
24
24
  return true;
25
25
  }
26
+ const MAX_EXECUTE_SEQPATH = 50;
26
27
  export class Executor {
28
+ static createExecutionFailure(featureResults) {
29
+ const firstFailedFeature = featureResults.find(fr => !fr.ok);
30
+ if (!firstFailedFeature) {
31
+ return undefined;
32
+ }
33
+ const failedStep = firstFailedFeature.stepResults.find(sr => !sr.ok);
34
+ if (!failedStep) {
35
+ return undefined;
36
+ }
37
+ const errorMessage = failedStep.stepActionResult && 'message' in failedStep.stepActionResult
38
+ ? failedStep.stepActionResult.message
39
+ : 'Step execution failed';
40
+ return {
41
+ stage: 'Execute',
42
+ error: {
43
+ message: errorMessage,
44
+ details: {
45
+ step: failedStep.in,
46
+ path: failedStep.path,
47
+ seqPath: failedStep.seqPath
48
+ }
49
+ }
50
+ };
51
+ }
27
52
  static async action(steppers, featureStep, found, args, world) {
28
53
  const stepper = findStepper(steppers, found.stepperName);
29
54
  const action = stepper.steps[found.actionName].action;
@@ -48,6 +73,7 @@ export class Executor {
48
73
  featureNum++;
49
74
  const isLast = featureNum === features.length;
50
75
  world.logger.log(`███ feature ${featureNum}/${features.length}: ${feature.path}`);
76
+ world.runtime.depthLimitExceeded = undefined;
51
77
  const newWorld = { ...world, tag: { ...world.tag, ...{ featureNum: 0 + featureNum } } };
52
78
  const featureExecutor = new FeatureExecutor(steppers, newWorld);
53
79
  await setStepperWorldsAndDomains(steppers, newWorld);
@@ -81,8 +107,15 @@ export class Executor {
81
107
  }
82
108
  }
83
109
  }
84
- await doStepperCycle(steppers, 'endExecution', undefined);
85
- return { ok: okSoFar, featureResults: featureResults, tag: world.tag, shared: world.shared, steppers };
110
+ const results = { ok: okSoFar, featureResults: featureResults, tag: world.tag, shared: world.shared, steppers, failure: undefined };
111
+ if (!okSoFar) {
112
+ const failure = this.createExecutionFailure(featureResults);
113
+ if (failure) {
114
+ results.failure = failure;
115
+ }
116
+ }
117
+ await doStepperCycle(steppers, 'endExecution', results);
118
+ return results;
86
119
  }
87
120
  }
88
121
  export class FeatureExecutor {
@@ -96,6 +129,20 @@ export class FeatureExecutor {
96
129
  this.logit = logit;
97
130
  this.startOffset = startOffset;
98
131
  }
132
+ static formatStepLogMessage(featureStep, actionResult, isSubStep) {
133
+ const seqPathStr = formatCurrentSeqPath(featureStep.seqPath);
134
+ if (isSubStep) {
135
+ // Substeps use yield icon with maybe status
136
+ const maybeStatus = actionResult.ok ? MAYBE_CHECK_YES : MAYBE_CHECK_NO;
137
+ return `${CHECK_YIELD} ${seqPathStr} ${maybeStatus} ${featureStep.in}`;
138
+ }
139
+ // Top-level steps use YES/NO icons
140
+ if (actionResult.ok) {
141
+ return `${CHECK_YES} ${seqPathStr} ${featureStep.in}`;
142
+ }
143
+ const errorMsg = actionResult.message;
144
+ return `${CHECK_NO} ${seqPathStr} ${featureStep.in}\n Error: ${errorMsg}`;
145
+ }
99
146
  async doFeature(feature) {
100
147
  const world = this.world;
101
148
  let ok = true;
@@ -113,9 +160,14 @@ export class FeatureExecutor {
113
160
  this.logit(`start scenario ${currentScenario}`, { incident: EExecutionMessageType.SCENARIO_START, incidentDetails: { currentScenario } }, 'debug');
114
161
  await doStepperCycle(this.steppers, 'startScenario', { featureVars });
115
162
  }
116
- const result = await FeatureExecutor.doFeatureStep(this.steppers, step, world);
163
+ // Prepend feature number and scenario number to seqPath
164
+ // Use 1-based scenario numbering in seqPath (currentScenario 0 becomes 1, etc.)
165
+ const augmentedStep = {
166
+ ...step,
167
+ seqPath: [world.tag.featureNum, currentScenario + 1, ...step.seqPath]
168
+ };
169
+ const result = await FeatureExecutor.doFeatureStep(this.steppers, augmentedStep, world);
117
170
  ok = ok && result.ok;
118
- world.runtime.stepResults.push(result);
119
171
  if (!ok || result.stepActionResult.messageContext === endExecutonContext) {
120
172
  break;
121
173
  }
@@ -139,16 +191,50 @@ export class FeatureExecutor {
139
191
  const featureResult = { path: feature.path, ok, stepResults: world.runtime.stepResults };
140
192
  return featureResult;
141
193
  }
142
- static async doFeatureStep(steppers, featureStep, world, execMode = ExecMode.CYCLES) {
143
- let ok = true;
194
+ static async doFeatureStep(steppers, featureStep, world, execMode = ExecMode.WITH_CYCLES) {
144
195
  const { action } = featureStep;
196
+ const currentTime = Timer.since();
197
+ // Helper to create a failed step result
198
+ const createFailedStepResult = (message) => {
199
+ return stepResultFromActionResult(actionNotOK(message), action, currentTime, Timer.since(), featureStep, false);
200
+ };
201
+ // Check depth limit flag first - if already exceeded, immediately return failure to stop recursion
202
+ if (world.runtime.depthLimitExceeded) {
203
+ return createFailedStepResult('Execution halted due to depth limit exceeded');
204
+ }
205
+ // Check for excessive recursion depth
206
+ if (featureStep.seqPath.length > MAX_EXECUTE_SEQPATH) {
207
+ const errorMessage = `Execution depth limit exceeded (${featureStep.seqPath.length} > ${MAX_EXECUTE_SEQPATH}). Possible infinite recursion in step: ${featureStep.in}`;
208
+ console.error('\n' + errorMessage);
209
+ console.error('SeqPath:', formatCurrentSeqPath(featureStep.seqPath));
210
+ console.error('This indicates a bug in the test definition or framework.');
211
+ // Set flag to stop all further execution
212
+ world.runtime.depthLimitExceeded = true;
213
+ return createFailedStepResult(errorMessage);
214
+ }
215
+ let ok = true;
145
216
  const start = Timer.since();
146
217
  const args = await populateActionArgs(featureStep, world, steppers);
147
- const isFullCycles = execMode === ExecMode.CYCLES;
218
+ const isFullCycles = execMode === ExecMode.WITH_CYCLES;
148
219
  const isPrompt = execMode === ExecMode.PROMPT;
220
+ const isSubStep = featureStep.isSubStep || false;
221
+ // Check if the action function is async
222
+ const stepper = findStepper(steppers, action.stepperName);
223
+ const actionFn = stepper.steps[action.actionName].action;
224
+ const isAsync = actionFn.constructor.name === 'AsyncFunction';
149
225
  let actionResult;
150
226
  if (isFullCycles) {
151
- world.logger.log(featureStep.in, { incident: EExecutionMessageType.STEP_START, tag: world.tag, incidentDetails: { featureStep, args } });
227
+ if (isAsync) {
228
+ // Use same log level for start as we'll use for completion
229
+ const startMessage = `⏳ ${formatCurrentSeqPath(featureStep.seqPath)} ${featureStep.in}`;
230
+ const startContext = { incident: EExecutionMessageType.STEP_START, tag: world.tag, incidentDetails: { featureStep, args } };
231
+ if (isSubStep) {
232
+ world.logger.trace(startMessage, startContext);
233
+ }
234
+ else {
235
+ world.logger.log(startMessage, startContext);
236
+ }
237
+ }
152
238
  let doAction = true;
153
239
  while (doAction) {
154
240
  await doStepperCycle(steppers, 'beforeStep', ({ featureStep }));
@@ -159,13 +245,29 @@ export class FeatureExecutor {
159
245
  incidentDetails: { actionResult, featureStep }
160
246
  };
161
247
  const messageContext = { ...baseContext, incident: EExecutionMessageType.STEP_END };
162
- world.logger.log((actionResult.ok ? CHECK_YES : `${CHECK_NO} (${actionResult.message})`), messageContext);
248
+ // Format the log message
249
+ const logMessage = FeatureExecutor.formatStepLogMessage(featureStep, actionResult, isSubStep);
250
+ // Use trace level for sub-steps, log level for top-level steps
251
+ if (isSubStep) {
252
+ world.logger.trace(logMessage, messageContext);
253
+ }
254
+ else {
255
+ world.logger.log(logMessage, messageContext);
256
+ }
257
+ // Push result BEFORE afterStep so parent appears before afterEvery child steps
258
+ world.runtime.stepResults.push(stepResultFromActionResult(actionResult, action, start, Timer.since(), featureStep, ok && actionResult.ok));
163
259
  const instructions = await doStepperCycle(steppers, 'afterStep', ({ featureStep, actionResult }), action.actionName);
164
260
  doAction = instructions.some(i => i?.rerunStep);
165
- const doNext = instructions.some(i => i?.nextStep);
166
- if (doNext) {
167
- // wrap the previous actionResult in a new passing actionResult messageContext
168
- actionResult = { ...actionResult, ok: true, messageContext: { ...messageContext, incident: EExecutionMessageType.DEBUG, incidentDetails: { nextStep: true } } };
261
+ const failed = instructions.some(i => i?.failed);
262
+ if (failed) {
263
+ ok = false;
264
+ }
265
+ else {
266
+ const doNext = instructions.some(i => i?.nextStep);
267
+ if (doNext) {
268
+ // wrap the previous actionResult in a new passing actionResult messageContext
269
+ actionResult = { ...actionResult, ok: true, messageContext: { ...messageContext, incident: EExecutionMessageType.DEBUG, incidentDetails: { nextStep: true } } };
270
+ }
169
271
  }
170
272
  }
171
273
  }
@@ -177,17 +279,27 @@ export class FeatureExecutor {
177
279
  incidentDetails: { actionResult, featureStep }
178
280
  };
179
281
  const messageContext = { ...baseContext, incident: EExecutionMessageType.ACTION, incidentDetails: { ...baseContext.incidentDetails, execMode } };
180
- if (isPrompt) {
181
- world.logger.log((actionResult.ok ? CHECK_YES : `${CHECK_NO} (${actionResult.message})`) + ` ${featureStep.in}`, messageContext);
182
- }
183
- else {
184
- world.logger.log(`${CHECK_YIELD}[${actionResult.ok ? MAYBE_CHECK_YES : MAYBE_CHECK_NO}] ${featureStep.in}`, messageContext);
282
+ // Format the log message using the same formatter
283
+ const logMessage = FeatureExecutor.formatStepLogMessage(featureStep, actionResult, isSubStep);
284
+ // Only log if we have a message (null means skip logging)
285
+ if (logMessage) {
286
+ if (isPrompt) {
287
+ world.logger.log(logMessage, messageContext);
288
+ }
289
+ else {
290
+ // Use trace for substeps, log for others
291
+ if (isSubStep) {
292
+ world.logger.trace(logMessage, messageContext);
293
+ }
294
+ else {
295
+ world.logger.log(logMessage, messageContext);
296
+ }
297
+ }
185
298
  }
186
299
  }
187
- const end = Timer.since();
188
- const stepActionResult = { ...actionResult, name: action.actionName, start, end };
189
300
  ok = ok && actionResult.ok;
190
- return { ok, in: featureStep.in, path: featureStep.path, stepActionResult, seqPath: featureStep.seqPath };
301
+ const stepResult = stepResultFromActionResult(actionResult, action, start, Timer.since(), featureStep, ok);
302
+ return stepResult;
191
303
  }
192
304
  }
193
305
  const doStepperCycle = async (steppers, method, args, guidance = '') => {
@@ -209,4 +321,26 @@ const addStepperDomains = async (world, steppers) => {
209
321
  const results = await doStepperCycle(steppers, 'getDomains', undefined);
210
322
  registerDomains(world, results);
211
323
  };
324
+ function stepResultFromActionResult(actionResult, action, start, end, featureStep, ok) {
325
+ const stepActionResult = { ...actionResult, name: action.actionName, start, end };
326
+ const seqPath = featureStep.seqPath;
327
+ const stepResult = { in: featureStep.in, path: featureStep.path, ok, stepActionResult, seqPath };
328
+ return stepResult;
329
+ }
330
+ export function incSeqPath(withSeqPath, seqPath, dir = 1) {
331
+ // add a path to seqpath, then check world.runtime.stepResults to find the next available index accodring to dir
332
+ const prefix = seqPath.slice(0, -1);
333
+ // negative seqPath "starts" at -1 and counts down
334
+ let last = dir === -1 ? -1 : seqPath[seqPath.length - 1];
335
+ let candidate = [...prefix, last];
336
+ let found = true;
337
+ while (found) {
338
+ found = withSeqPath.some(r => JSON.stringify(r.seqPath) === JSON.stringify(candidate));
339
+ if (found) {
340
+ last += dir;
341
+ candidate = [...prefix, last];
342
+ }
343
+ }
344
+ return candidate;
345
+ }
212
346
  //# 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":"AAAA,OAAO,EAAuI,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAsB,oBAAoB,EAA2E,QAAQ,EAA+B,eAAe,EAAE,cAAc,EAAY,MAAM,gBAAgB,CAAC;AAG5a,OAAO,EAAE,qBAAqB,EAAmB,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAoB,EAAE,QAAQ,EAAE,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAE9H,SAAS,oBAAoB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE;IACzF,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AACD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,MAAM,OAAO,QAAQ;IACZ,MAAM,CAAC,sBAAsB,CAAC,cAAgC;QACrE,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,IAAI,SAAS,IAAI,UAAU,CAAC,gBAAgB;YAC3F,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO;YACrC,CAAC,CAAC,uBAAuB,CAAC;QAE3B,OAAO;YACN,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACN,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE;oBACR,IAAI,EAAE,UAAU,CAAC,EAAE;oBACnB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;iBAC3B;aACD;SACD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAoB,EAAE,WAAyB,EAAE,KAAkB,EAAE,IAAe,EAAE,KAAa;QACtH,MAAM,OAAO,GAAG,WAAW,CAAW,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACtD,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAiB,EAAE,EAAE;YACnF,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,cAAc,GAAG;gBACtB,QAAQ,EAAE,qBAAqB,CAAC,MAAM;gBACtC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;aACjE,CAAA;YACD,OAAO,WAAW,CAAC,MAAM,WAAW,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,QAAoB,EAAE,KAAa,EAAE,QAA4B;QAC7F,MAAM,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC;QAC3D,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAEnE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,UAAU,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,UAAU,KAAK,QAAQ,CAAC,MAAM,CAAC;YAE9C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClF,KAAK,CAAC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;YAC7C,MAAM,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,EAAE,CAAC;YAExF,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACrD,MAAM,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAEhG,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,MAAM,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,GAAG,OAAO,IAAI,aAAa,CAAC;YACnC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,MAAM,kBAAkB,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAA;YAClH,MAAM,WAAW,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;YAC7D,IAAI,WAAW,EAAE,CAAC;gBACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;YACjL,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,IAAI,CAAC,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,oBAAoB,EAAE,CAAC,CAAC;oBAC/D,MAAM;gBACP,CAAC;qBAAM,CAAC;oBACP,IAAI,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC;wBACnC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,oBAAoB,EAAE,CAAC,CAAC;oBAClE,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACpI,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC;QACF,CAAC;QACD,MAAM,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAED,MAAM,OAAO,eAAe;IACP;IAA8B;IAAuB;IAA4C;IAArH,YAAoB,QAAoB,EAAU,KAAa,EAAU,QAAQ,mBAAmB,CAAC,KAAK,CAAC,EAAU,cAAc,KAAK,CAAC,KAAK,EAAE;QAA5H,aAAQ,GAAR,QAAQ,CAAY;QAAU,UAAK,GAAL,KAAK,CAAQ;QAAU,UAAK,GAAL,KAAK,CAA6B;QAAU,gBAAW,GAAX,WAAW,CAAgB;IAChJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,WAAyB,EAAE,YAA2B,EAAE,SAAkB;QAC7G,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,SAAS,EAAE,CAAC;YACf,4CAA4C;YAC5C,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;YACvE,OAAO,GAAG,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;QACxE,CAAC;QAED,mCAAmC;QACnC,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,GAAG,SAAS,IAAI,UAAU,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;QACvD,CAAC;QAED,MAAM,QAAQ,GAAwB,YAAa,CAAC,OAAO,CAAC;QAC5D,OAAO,GAAG,QAAQ,IAAI,UAAU,IAAI,WAAW,CAAC,EAAE,eAAe,QAAQ,EAAE,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,EAAE,GAAG,IAAI,CAAC;QACd,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;QAE/B,IAAI,eAAe,GAAW,CAAC,CAAC;QAEhC,IAAI,CAAC,KAAK,CAAC,iBAAiB,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAEtK,IAAI,WAAW,GAAqB,IAAI,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEpE,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;gBAC/C,IAAI,eAAe,EAAE,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,gBAAgB,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;oBAC/I,MAAM,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;gBAC/D,CAAC;gBACD,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,kBAAkB,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,cAAc,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnJ,MAAM,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,wDAAwD;YACxD,gFAAgF;YAChF,MAAM,aAAa,GAAG;gBACrB,GAAG,IAAI;gBACP,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;aACrE,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACxF,EAAE,GAAG,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,cAAc,KAAK,kBAAkB,EAAE,CAAC;gBAC1E,MAAM;YACP,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAW,CAAC,CAAC;YAClD,CAAC;YACD,0BAA0B;YAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtB,WAAW,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/D,CAAC;QACF,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,gBAAgB,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/I,MAAM,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,eAAe,eAAe,EAAE,EAAE;YAC5C,QAAQ,EAAE,qBAAqB,CAAC,WAAW,EAAE,eAAe,EAAE;gBAC7D,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW;aAC3C;SACD,EAAE,OAAO,CAAC,CAAC;QACZ,MAAM,aAAa,GAAmB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAEzG,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,QAAoB,EAAE,WAAyB,EAAE,KAAa,EAAE,WAAqB,QAAQ,CAAC,WAAW;QACnI,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;QAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAElC,wCAAwC;QACxC,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAe,EAAE;YAC/D,OAAO,0BAA0B,CAChC,WAAW,CAAC,OAAO,CAAC,EACpB,MAAM,EACN,WAAW,EACX,KAAK,CAAC,KAAK,EAAE,EACb,WAAW,EACX,KAAK,CACL,CAAC;QACH,CAAC,CAAC;QAEF,mGAAmG;QACnG,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACtC,OAAO,sBAAsB,CAAC,8CAA8C,CAAC,CAAC;QAC/E,CAAC;QAED,sCAAsC;QACtC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,mCAAmC,WAAW,CAAC,OAAO,CAAC,MAAM,MAAM,mBAAmB,2CAA2C,WAAW,CAAC,EAAE,EAAE,CAAC;YACvK,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAE3E,yCAAyC;YACzC,KAAK,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAExC,OAAO,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,EAAE,GAAG,IAAI,CAAC;QAEd,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,QAAQ,KAAK,QAAQ,CAAC,WAAW,CAAC;QACvD,MAAM,QAAQ,GAAG,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC;QAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,KAAK,CAAC;QAEjD,wCAAwC;QACxC,MAAM,OAAO,GAAG,WAAW,CAAW,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,CAAC;QAE9D,IAAI,YAA2B,CAAC;QAChC,IAAI,YAAY,EAAE,CAAC;YAClB,IAAI,OAAO,EAAE,CAAC;gBACb,2DAA2D;gBAC3D,MAAM,YAAY,GAAG,KAAK,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;gBACxF,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC5H,IAAI,SAAS,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACP,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YACD,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,OAAO,QAAQ,EAAE,CAAC;gBACjB,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAe,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC7E,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjF,MAAM,WAAW,GAAG;oBACnB,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtE,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,eAAe,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;iBAC9C,CAAC;gBACF,MAAM,cAAc,GAAoB,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC;gBAErG,yBAAyB;gBACzB,MAAM,UAAU,GAAG,eAAe,CAAC,oBAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBAE9F,+DAA+D;gBAC/D,IAAI,SAAS,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACP,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBAC9C,CAAC;gBACD,+EAA+E;gBAC/E,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3I,MAAM,YAAY,GAAuB,MAAM,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAc,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrJ,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACjD,IAAI,MAAM,EAAE,CAAC;oBACZ,EAAE,GAAG,KAAK,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACP,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACnD,IAAI,MAAM,EAAE,CAAC;wBACZ,8EAA8E;wBAC9E,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,GAAG,cAAc,EAAE,QAAQ,EAAE,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBACjK,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACjF,MAAM,WAAW,GAAG;gBACnB,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBACtE,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,eAAe,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;aAC9C,CAAC;YACF,MAAM,cAAc,GAAoB,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC;YAElK,kDAAkD;YAClD,MAAM,UAAU,GAAG,eAAe,CAAC,oBAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YAE9F,0DAA0D;YAC1D,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,QAAQ,EAAE,CAAC;oBACd,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACP,yCAAyC;oBACzC,IAAI,SAAS,EAAE,CAAC;wBACf,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACP,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBAC9C,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,EAAE,GAAG,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3G,OAAO,UAAU,CAAC;IACnB,CAAC;CACD;AAED,MAAM,cAAc,GAAG,KAAK,EAAkC,QAAoB,EAAE,MAAS,EAAE,IAA0B,EAAE,QAAQ,GAAG,EAAE,EAAkE,EAAE;IAC3M,MAAM,OAAO,GAA0D,EAAE,CAAC;IAC1E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YACxF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxD,yGAAyG;YACzG,MAAM,MAAM,GAAG,MAAO,KAA+C,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACrG,OAAO,CAAC,IAAI,CAAC,MAA6D,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,sDAAsD;AACtD,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAK,EAAE,QAAoB,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACxE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC,CAAA;AACD,SAAS,0BAA0B,CAAC,YAA2B,EAAE,MAAmB,EAAE,KAAa,EAAE,GAAW,EAAE,WAAyB,EAAE,EAAW;IACvJ,MAAM,gBAAgB,GAAsB,EAAE,GAAG,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAuB,CAAC;IAC1H,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,MAAM,UAAU,GAAgB,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC9G,OAAO,UAAU,CAAC;AACnB,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,WAAoC,EAAE,OAAiB,EAAE,GAAG,GAAG,CAAC;IAC1F,gHAAgH;IAChH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,kDAAkD;IAClD,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,IAAI,SAAS,GAAG,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,OAAO,KAAK,EAAE,CAAC;QACd,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACvF,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,IAAI,GAAG,CAAC;YACZ,SAAS,GAAG,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -1,9 +1,10 @@
1
- import { TStepAction, TResolvedFeature, TExpandedFeature, TFeatureStep, TExpandedLine } from '../lib/defs.js';
1
+ import { TStepAction, TResolvedFeature, TExpandedFeature, TFeatureStep, TExpandedLine, TFeatures } from '../lib/defs.js';
2
2
  import { AStepper } from '../lib/astepper.js';
3
3
  export declare class Resolver {
4
4
  private steppers;
5
- types: string[];
6
- constructor(steppers: AStepper[]);
5
+ private backgrounds;
6
+ constructor(steppers: AStepper[], backgrounds?: TFeatures);
7
+ private callResolveFeatureLine;
7
8
  resolveStepsFromFeatures(features: TExpandedFeature[]): Promise<TResolvedFeature[]>;
8
9
  findFeatureSteps(feature: TExpandedFeature): Promise<TFeatureStep[]>;
9
10
  findSingleStepAction(line: string): TStepAction;
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAM,gBAAgB,EAAgB,YAAY,EAAE,aAAa,EAAyB,MAAM,gBAAgB,CAAC;AACvJ,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,qBAAa,QAAQ;IAGR,OAAO,CAAC,QAAQ;IAF5B,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEI,QAAQ,EAAE,QAAQ,EAAE;IAI3B,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAWrD,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkCjF,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAe/C,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IASnF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAqB7D,OAAO,CAAC,WAAW;CAUnB;AAaD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;;;EAY9G"}
1
+ {"version":3,"file":"Resolver.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAM,gBAAgB,EAAgB,YAAY,EAAE,aAAa,EAAc,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvJ,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,qBAAa,QAAQ;IACR,OAAO,CAAC,QAAQ;IAAc,OAAO,CAAC,WAAW;gBAAzC,QAAQ,EAAE,QAAQ,EAAE,EAAU,WAAW,GAAE,SAAc;IAW7E,OAAO,CAAC,sBAAsB;IAcjB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;IAYrD,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyCjF,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IA2B/C,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IASnF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAkB7D,OAAO,CAAC,WAAW;CAUnB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;;;EAY9G"}
@@ -1,13 +1,32 @@
1
- import { OK } from '../lib/defs.js';
2
- import { BASE_TYPES } from '../lib/domain-types.js';
3
1
  import { matchGwtaToAction, getMatch } from '../lib/namedVars.js';
4
2
  import { getActionable, dePolite, constructorName } from '../lib/util/index.js';
5
3
  export class Resolver {
6
4
  steppers;
7
- types;
8
- constructor(steppers) {
5
+ backgrounds;
6
+ constructor(steppers, backgrounds = []) {
9
7
  this.steppers = steppers;
10
- this.types = BASE_TYPES;
8
+ this.backgrounds = backgrounds;
9
+ // Process backgrounds to allow steppers to register metadata (e.g., waypoint statements)
10
+ for (const background of backgrounds) {
11
+ const lines = background.content.trim().split('\n');
12
+ for (let i = 0; i < lines.length; i++) {
13
+ const actionable = getActionable(lines[i]);
14
+ this.callResolveFeatureLine(actionable, background.path, lines, i);
15
+ }
16
+ }
17
+ }
18
+ callResolveFeatureLine(line, path, allLines, lineIndex) {
19
+ for (const stepper of this.steppers) {
20
+ for (const step of Object.values(stepper.steps)) {
21
+ if (step.resolveFeatureLine) {
22
+ const shouldSkip = step.resolveFeatureLine(line, path, stepper, this.backgrounds, allLines, lineIndex);
23
+ if (shouldSkip) {
24
+ return true;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ return false;
11
30
  }
12
31
  async resolveStepsFromFeatures(features) {
13
32
  const steps = [];
@@ -21,10 +40,16 @@ export class Resolver {
21
40
  }
22
41
  async findFeatureSteps(feature) {
23
42
  const featureSteps = [];
43
+ const allLines = feature.expanded.map(fl => fl.line);
24
44
  let seq = 0;
25
- for (const featureLine of feature.expanded) {
45
+ for (let i = 0; i < feature.expanded.length; i++) {
46
+ const featureLine = feature.expanded[i];
26
47
  seq++;
27
48
  const actionable = getActionable(featureLine.line);
49
+ // Give steppers a chance to handle special resolution logic
50
+ if (this.callResolveFeatureLine(actionable, feature.path, allLines, i)) {
51
+ continue;
52
+ }
28
53
  try {
29
54
  const stepAction = this.findSingleStepAction(actionable);
30
55
  // stepValuesMap is attached to stepAction for downstream processing
@@ -33,9 +58,9 @@ export class Resolver {
33
58
  const statements = Object.values(stepAction.stepValuesMap).filter((v) => v.domain === 'statement' && v.term);
34
59
  for (const ph of statements) {
35
60
  const rawVal = ph.term;
36
- if (rawVal.trim().startsWith('Backgrounds:'))
37
- continue; // skip inline backgrounds directive
38
61
  try {
62
+ // Also give steppers a chance to validate nested statements
63
+ this.callResolveFeatureLine(rawVal, feature.path);
39
64
  this.findSingleStepAction(rawVal);
40
65
  }
41
66
  catch (e) {
@@ -44,16 +69,10 @@ export class Resolver {
44
69
  }
45
70
  }
46
71
  const featureStep = this.getFeatureStep(featureLine, seq, stepAction);
47
- if (stepAction.step.checkAction) {
48
- const named = Object.fromEntries(Object.entries(stepAction.stepValuesMap || {}).map(([k, v]) => [k, v.value ?? v.term ?? '']));
49
- const valid = await stepAction.step.checkAction(named, featureStep);
50
- if (valid === false)
51
- throw Error('checkAction failed');
52
- }
53
72
  featureSteps.push(featureStep);
54
73
  }
55
74
  catch (e) {
56
- throw Error(`findFeatureStep for "${featureLine.line}": ${e.message}in ${feature.path}\nUse --show-steppers for more details`);
75
+ throw Error(`findFeatureStep for "${featureLine.line}": ${e.message} in ${feature.path}\nUse --show-steppers for more details`);
57
76
  }
58
77
  }
59
78
  return Promise.resolve(featureSteps);
@@ -61,10 +80,22 @@ export class Resolver {
61
80
  findSingleStepAction(line) {
62
81
  let stepActions = this.findActionableSteps(line);
63
82
  if (stepActions.length > 1) {
64
- const precludes = stepActions.filter(a => a.step.precludes).map(a => a.step.precludes).reduce((acc, cur) => [...acc, ...cur], []);
65
- stepActions = stepActions.filter(a => !precludes.includes(`${a.stepperName}.${a.actionName}`));
83
+ const unique = stepActions.filter(a => a.step.unique);
84
+ if (unique.length === 1) {
85
+ return unique[0];
86
+ }
87
+ // Filter out fallback steps if there are non-fallback alternatives
88
+ const nonFallback = stepActions.filter(a => !a.step.fallback);
89
+ if (nonFallback.length > 0) {
90
+ stepActions = nonFallback;
91
+ }
92
+ // If still multiple matches, use precludes
93
+ if (stepActions.length > 1) {
94
+ const precludes = stepActions.filter(a => a.step.precludes).map(a => a.step.precludes).reduce((acc, cur) => [...acc, ...cur], []);
95
+ stepActions = stepActions.filter(a => !precludes.includes(`${a.stepperName}.${a.actionName}`));
96
+ }
66
97
  if (stepActions.length !== 1) {
67
- throw Error(`not one step found for "${line}": ${JSON.stringify(stepActions.map((a) => a.actionName))} using precludes ${precludes}`);
98
+ throw Error(`not one step found for "${line}": ${JSON.stringify(stepActions.map((a) => a.actionName))}`);
68
99
  }
69
100
  }
70
101
  else if (stepActions.length < 1) {
@@ -81,9 +112,6 @@ export class Resolver {
81
112
  };
82
113
  }
83
114
  findActionableSteps(actionable) {
84
- if (!actionable.length) {
85
- return [comment];
86
- }
87
115
  const found = [];
88
116
  for (const stepper of this.steppers) {
89
117
  const stepperName = constructorName(stepper);
@@ -111,16 +139,6 @@ export class Resolver {
111
139
  }
112
140
  }
113
141
  }
114
- const comment = {
115
- stepperName: 'Haibun',
116
- actionName: 'comment',
117
- step: {
118
- match: /.*/,
119
- action: async () => {
120
- return Promise.resolve(OK);
121
- },
122
- },
123
- };
124
142
  export function getActionableStatement(steppers, statement, path, seqPath) {
125
143
  const resolver = new Resolver(steppers);
126
144
  const action = resolver.findSingleStepAction(statement);
@@ -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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"}
@@ -4,7 +4,7 @@ export type TFeaturesBackgrounds = {
4
4
  features: TFeature[];
5
5
  backgrounds: TFeature[];
6
6
  };
7
- export declare function getFeaturesAndBackgrounds(bases: TBase, featureFilter: string[], fs?: TFileSystem): TFeaturesBackgrounds;
7
+ export declare function getFeaturesAndBackgrounds(bases: TBase, featureFilter: string[], fs?: TFileSystem): Promise<TFeaturesBackgrounds>;
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;
@@ -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":"AAEA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,WAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAwB9I;AAuCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,WASxG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;;;;;IAEzD"}
@@ -1,14 +1,17 @@
1
1
  import nodeFS from 'fs';
2
+ import path from 'path';
2
3
  import { withNameType } from '../lib/features.js';
3
- export function getFeaturesAndBackgrounds(bases, featureFilter, fs = nodeFS) {
4
+ import { toBdd } from '../kireji/converter.js';
5
+ export async function getFeaturesAndBackgrounds(bases, featureFilter, fs = nodeFS) {
4
6
  const ret = { features: [], backgrounds: [] };
5
7
  for (const abase of bases) {
6
- const ff = { feature: featureFilter };
8
+ // Only filter features, not backgrounds - backgrounds should always be loaded
9
+ const ff = { feature: featureFilter, background: [] };
7
10
  const rawFeaturesAndBackgrounds = { features: [], backgrounds: [] };
8
11
  for (const t of ['feature', 'background']) {
9
12
  const p = `${t}s`;
10
13
  if (fs.existsSync(`${abase}/${p}`)) {
11
- const more = debase(abase, recurse(abase, `/${p}`, 'feature', ff[t], fs));
14
+ const more = debase(abase, await recurse(abase, `/${p}`, t, ff[t], fs));
12
15
  rawFeaturesAndBackgrounds[p] = rawFeaturesAndBackgrounds[p].concat(more);
13
16
  }
14
17
  }
@@ -23,23 +26,49 @@ export function getFeaturesAndBackgrounds(bases, featureFilter, fs = nodeFS) {
23
26
  }
24
27
  return ret;
25
28
  }
26
- function recurse(base, dir, type, featureFilter = undefined, fs = nodeFS) {
29
+ async function recurse(base, dir, type, featureFilter = undefined, fs = nodeFS) {
27
30
  const files = fs.readdirSync(`${base}${dir}`);
28
31
  let all = [];
29
32
  for (const file of files) {
30
33
  const here = `${base}${dir}/${file}`;
31
34
  if (fs.statSync(here).isDirectory()) {
32
- all = all.concat(recurse(base, `${dir}/${file}`, type, featureFilter, fs));
35
+ all = all.concat(await recurse(base, `${dir}/${file}`, type, featureFilter, fs));
33
36
  }
34
37
  else if (shouldProcess(here, type, featureFilter)) {
35
- const contents = fs.readFileSync(here, 'utf-8');
38
+ let contents;
39
+ if (here.endsWith('.kireji.ts')) {
40
+ const module = await import(path.resolve(here));
41
+ let kirejiContent;
42
+ if (type === 'background') {
43
+ // For backgrounds directory: prefer 'backgrounds' export, fallback to 'features'
44
+ kirejiContent = module.backgrounds || module.features;
45
+ if (!kirejiContent) {
46
+ throw new Error(`Kireji file ${here} in backgrounds/ must export 'backgrounds' or 'features' object`);
47
+ }
48
+ }
49
+ else {
50
+ // For features directory: can export either 'features' or 'backgrounds'
51
+ kirejiContent = module.features || module.backgrounds;
52
+ if (!kirejiContent) {
53
+ throw new Error(`Kireji file ${here} must export 'features' or 'backgrounds' object`);
54
+ }
55
+ }
56
+ contents = toBdd(kirejiContent);
57
+ }
58
+ else {
59
+ contents = fs.readFileSync(here, 'utf-8');
60
+ }
36
61
  all.push(withNameType(base, here, contents));
37
62
  }
38
63
  }
39
64
  return all;
40
65
  }
41
66
  export function shouldProcess(file, type, featureFilter) {
42
- const isType = !type || file.endsWith(`.${type}`);
67
+ const iskireji = file.endsWith('.kireji.ts');
68
+ // For kireji files, always process regardless of type
69
+ // For .feature files, check if type matches or is undefined
70
+ // Note: both 'feature' and 'background' types use .feature extension
71
+ const isType = iskireji || !type || file.endsWith(`.${type}`) || (type === 'background' && file.endsWith('.feature'));
43
72
  const matchesFilter = (featureFilter === undefined || featureFilter.every(f => f === '')) || featureFilter.length < 1 ? true : !!featureFilter.find((f) => file.replace(/\/.*?\/([^.*?/])/, '$1').match(f));
44
73
  return isType && matchesFilter;
45
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/phases/collector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,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;IAgBrE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,mBAAmB,EAAE,oBAAoB;CAyBhG"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,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;IAgBrE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,mBAAmB,EAAE,oBAAoB;CAsBhG"}