@auto-engineer/narrative 0.13.0 → 0.13.2

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 (89) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +22 -0
  3. package/dist/src/commands/export-schema-runner.js +1 -1
  4. package/dist/src/commands/export-schema-runner.js.map +1 -1
  5. package/dist/src/fluent-builder.js +3 -3
  6. package/dist/src/fluent-builder.js.map +1 -1
  7. package/dist/src/getNarratives.specs.js +149 -153
  8. package/dist/src/getNarratives.specs.js.map +1 -1
  9. package/dist/src/id/addAutoIds.d.ts.map +1 -1
  10. package/dist/src/id/addAutoIds.js +50 -12
  11. package/dist/src/id/addAutoIds.js.map +1 -1
  12. package/dist/src/id/addAutoIds.specs.js +396 -45
  13. package/dist/src/id/addAutoIds.specs.js.map +1 -1
  14. package/dist/src/id/hasAllIds.d.ts.map +1 -1
  15. package/dist/src/id/hasAllIds.js +28 -5
  16. package/dist/src/id/hasAllIds.js.map +1 -1
  17. package/dist/src/id/hasAllIds.specs.js +407 -214
  18. package/dist/src/id/hasAllIds.specs.js.map +1 -1
  19. package/dist/src/index.d.ts +6 -8
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/index.js +3 -3
  22. package/dist/src/index.js.map +1 -1
  23. package/dist/src/loader/graph.d.ts.map +1 -1
  24. package/dist/src/loader/graph.js +13 -6
  25. package/dist/src/loader/graph.js.map +1 -1
  26. package/dist/src/loader/ts-utils.d.ts +1 -0
  27. package/dist/src/loader/ts-utils.d.ts.map +1 -1
  28. package/dist/src/loader/ts-utils.js +95 -16
  29. package/dist/src/loader/ts-utils.js.map +1 -1
  30. package/dist/src/model-to-narrative.specs.js +531 -449
  31. package/dist/src/model-to-narrative.specs.js.map +1 -1
  32. package/dist/src/narrative-context.d.ts +8 -8
  33. package/dist/src/narrative-context.d.ts.map +1 -1
  34. package/dist/src/narrative-context.js +111 -301
  35. package/dist/src/narrative-context.js.map +1 -1
  36. package/dist/src/narrative-context.specs.js +15 -55
  37. package/dist/src/narrative-context.specs.js.map +1 -1
  38. package/dist/src/narrative.d.ts +19 -22
  39. package/dist/src/narrative.d.ts.map +1 -1
  40. package/dist/src/narrative.js +42 -71
  41. package/dist/src/narrative.js.map +1 -1
  42. package/dist/src/samples/test-with-ids.narrative.js +13 -29
  43. package/dist/src/samples/test-with-ids.narrative.js.map +1 -1
  44. package/dist/src/schema.d.ts +3205 -8287
  45. package/dist/src/schema.d.ts.map +1 -1
  46. package/dist/src/schema.js +29 -47
  47. package/dist/src/schema.js.map +1 -1
  48. package/dist/src/slice-builder.js +3 -3
  49. package/dist/src/slice-builder.js.map +1 -1
  50. package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -1
  51. package/dist/src/transformers/model-to-narrative/generators/flow.js +118 -74
  52. package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -1
  53. package/dist/src/transformers/model-to-narrative/generators/gwt.d.ts +9 -1
  54. package/dist/src/transformers/model-to-narrative/generators/gwt.d.ts.map +1 -1
  55. package/dist/src/transformers/model-to-narrative/generators/gwt.js +112 -112
  56. package/dist/src/transformers/model-to-narrative/generators/gwt.js.map +1 -1
  57. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts +1 -1
  58. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts.map +1 -1
  59. package/dist/src/transformers/model-to-narrative/generators/imports.js +13 -9
  60. package/dist/src/transformers/model-to-narrative/generators/imports.js.map +1 -1
  61. package/dist/src/transformers/narrative-to-model/index.d.ts.map +1 -1
  62. package/dist/src/transformers/narrative-to-model/index.js +50 -23
  63. package/dist/src/transformers/narrative-to-model/index.js.map +1 -1
  64. package/dist/src/transformers/narrative-to-model/type-inference.specs.js +100 -90
  65. package/dist/src/transformers/narrative-to-model/type-inference.specs.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +5 -5
  68. package/src/commands/export-schema-runner.ts +3 -1
  69. package/src/fluent-builder.ts +3 -3
  70. package/src/getNarratives.specs.ts +168 -176
  71. package/src/id/addAutoIds.specs.ts +424 -47
  72. package/src/id/addAutoIds.ts +57 -13
  73. package/src/id/hasAllIds.specs.ts +400 -223
  74. package/src/id/hasAllIds.ts +32 -6
  75. package/src/index.ts +9 -12
  76. package/src/loader/graph.ts +23 -6
  77. package/src/loader/ts-utils.ts +169 -26
  78. package/src/model-to-narrative.specs.ts +531 -449
  79. package/src/narrative-context.specs.ts +73 -116
  80. package/src/narrative-context.ts +127 -374
  81. package/src/narrative.ts +70 -120
  82. package/src/samples/test-with-ids.narrative.ts +23 -31
  83. package/src/schema.ts +36 -52
  84. package/src/slice-builder.ts +3 -3
  85. package/src/transformers/model-to-narrative/generators/flow.ts +191 -85
  86. package/src/transformers/model-to-narrative/generators/gwt.ts +195 -178
  87. package/src/transformers/model-to-narrative/generators/imports.ts +13 -9
  88. package/src/transformers/narrative-to-model/index.ts +87 -26
  89. package/src/transformers/narrative-to-model/type-inference.specs.ts +100 -90
@@ -1,36 +1,34 @@
1
1
  import createDebug from 'debug';
2
- function normalizeContext(context) {
3
- if (!context)
4
- return undefined;
5
- const filtered = {};
6
- for (const [key, value] of Object.entries(context)) {
7
- if (value !== undefined) {
8
- filtered[key] = value;
9
- }
10
- }
11
- return Object.keys(filtered).length > 0 ? filtered : undefined;
12
- }
13
2
  const debug = createDebug('auto:narrative:context:given-types');
14
3
  let context = null;
15
4
  let givenTypesByFile = new Map();
16
5
  let whenTypesByFile = new Map();
6
+ let thenTypesByFile = new Map();
17
7
  const givenCallCounters = new Map();
18
8
  const whenCallCounters = new Map();
9
+ const thenCallCounters = new Map();
19
10
  export function setGivenTypesByFile(types) {
20
11
  const whenTypes = types.get('__whenTypes');
21
12
  if (whenTypes) {
22
13
  whenTypesByFile = whenTypes;
23
14
  types.delete('__whenTypes');
24
15
  }
16
+ const thenTypes = types.get('__thenTypes');
17
+ if (thenTypes) {
18
+ thenTypesByFile = thenTypes;
19
+ types.delete('__thenTypes');
20
+ }
25
21
  givenTypesByFile = types;
26
22
  givenCallCounters.clear();
27
23
  whenCallCounters.clear();
24
+ thenCallCounters.clear();
28
25
  }
29
26
  export function startNarrative(name, id) {
30
27
  const sourceFile = globalThis.__aeCurrentModulePath;
31
28
  if (sourceFile !== null && sourceFile !== undefined && sourceFile !== '') {
32
29
  givenCallCounters.set(sourceFile, 0);
33
30
  whenCallCounters.set(sourceFile, 0);
31
+ thenCallCounters.set(sourceFile, 0);
34
32
  }
35
33
  const narrative = {
36
34
  name,
@@ -46,6 +44,7 @@ export function startNarrative(name, id) {
46
44
  currentRuleIndex: null,
47
45
  currentExampleIndex: null,
48
46
  clientSpecStack: [],
47
+ lastMajorKeyword: null,
49
48
  };
50
49
  return narrative;
51
50
  }
@@ -72,6 +71,14 @@ function getServerSpecs(slice) {
72
71
  }
73
72
  return undefined;
74
73
  }
74
+ function getCurrentSpec(slice) {
75
+ if (!context || context.currentSpecIndex === null)
76
+ return undefined;
77
+ const specs = getServerSpecs(slice);
78
+ if (!specs)
79
+ return undefined;
80
+ return specs[context.currentSpecIndex];
81
+ }
75
82
  function getCurrentExample(slice) {
76
83
  if (!context ||
77
84
  context.currentSpecIndex === null ||
@@ -79,11 +86,10 @@ function getCurrentExample(slice) {
79
86
  context.currentExampleIndex === null) {
80
87
  return undefined;
81
88
  }
82
- const spec = getServerSpecs(slice);
89
+ const spec = getCurrentSpec(slice);
83
90
  if (!spec)
84
91
  return undefined;
85
- const objectRules = spec.rules;
86
- return objectRules[context.currentRuleIndex]?.examples[context.currentExampleIndex];
92
+ return spec.rules[context.currentRuleIndex]?.examples[context.currentExampleIndex];
87
93
  }
88
94
  export function startClientBlock(slice) {
89
95
  if (!context)
@@ -121,21 +127,21 @@ export function startServerBlock(slice, description = '') {
121
127
  if (slice.type === 'command') {
122
128
  slice.server = {
123
129
  description,
124
- specs: { name: '', rules: [] },
130
+ specs: [],
125
131
  data: undefined,
126
132
  };
127
133
  }
128
134
  else if (slice.type === 'query') {
129
135
  slice.server = {
130
136
  description,
131
- specs: { name: '', rules: [] },
137
+ specs: [],
132
138
  data: undefined,
133
139
  };
134
140
  }
135
141
  else if (slice.type === 'react') {
136
142
  slice.server = {
137
143
  description: description || undefined,
138
- specs: { name: '', rules: [] },
144
+ specs: [],
139
145
  data: undefined,
140
146
  };
141
147
  }
@@ -146,24 +152,26 @@ export function endServerBlock() {
146
152
  context.currentSpecTarget = null;
147
153
  }
148
154
  }
149
- function initializeServerSpecs(slice, description) {
155
+ function addServerSpec(slice, feature) {
150
156
  if ('server' in slice && slice.server != null) {
151
- slice.server.specs = {
152
- name: description,
157
+ const newSpec = {
158
+ type: 'gherkin',
159
+ feature,
153
160
  rules: [],
154
161
  };
162
+ slice.server.specs.push(newSpec);
155
163
  if (context)
156
- context.currentSpecIndex = 0;
164
+ context.currentSpecIndex = slice.server.specs.length - 1;
157
165
  }
158
166
  }
159
- export function pushSpec(description) {
167
+ export function pushSpec(feature) {
160
168
  if (!context || !context.currentSpecTarget)
161
169
  throw new Error('No active spec target');
162
170
  const slice = getCurrentSlice();
163
171
  if (!slice)
164
172
  throw new Error('No active slice');
165
173
  if (context.currentSpecTarget === 'server') {
166
- initializeServerSpecs(slice, description);
174
+ addServerSpec(slice, feature);
167
175
  }
168
176
  }
169
177
  export function pushDescribe(id, title) {
@@ -256,163 +264,88 @@ function stripTypeDiscriminator(items) {
256
264
  return rest;
257
265
  });
258
266
  }
259
- export function recordRule(description, id) {
267
+ export function recordRule(name, id) {
260
268
  if (!context || context.currentSpecIndex === null)
261
269
  throw new Error('No active spec context');
262
270
  const slice = getCurrentSlice();
263
271
  if (!slice)
264
272
  throw new Error('No active slice');
265
- const spec = getServerSpecs(slice);
273
+ const spec = getCurrentSpec(slice);
266
274
  if (!spec)
267
275
  throw new Error('No active specs for current slice');
268
- const objectRules = spec.rules;
269
- objectRules.push({
276
+ const newRule = {
270
277
  id,
271
- description,
278
+ name,
272
279
  examples: [],
273
- });
274
- context.currentRuleIndex = objectRules.length - 1;
280
+ };
281
+ spec.rules.push(newRule);
282
+ context.currentRuleIndex = spec.rules.length - 1;
275
283
  }
276
- export function recordExample(description) {
284
+ export function recordExample(name, id) {
277
285
  if (!context || context.currentSpecIndex === null || context.currentRuleIndex === null) {
278
286
  throw new Error('No active rule context');
279
287
  }
280
288
  const slice = getCurrentSlice();
281
289
  if (!slice)
282
290
  throw new Error('No active slice');
283
- const spec = getServerSpecs(slice);
291
+ const spec = getCurrentSpec(slice);
284
292
  if (!spec)
285
293
  throw new Error('No active specs for current slice');
286
- const objectRules = spec.rules;
287
- const rule = objectRules[context.currentRuleIndex];
288
- rule.examples.push({
289
- description,
290
- then: [],
291
- });
294
+ const rule = spec.rules[context.currentRuleIndex];
295
+ const newExample = {
296
+ id,
297
+ name,
298
+ steps: [],
299
+ };
300
+ rule.examples.push(newExample);
292
301
  context.currentExampleIndex = rule.examples.length - 1;
302
+ context.lastMajorKeyword = null;
293
303
  }
294
- function processItemWithASTMatch(item, matchingType, contextParam) {
295
- const refType = getRefTypeFromClassification(matchingType.classification);
296
- return {
297
- [refType]: matchingType.typeName,
298
- exampleData: ensureMessageFormat(item).data,
299
- ...(contextParam && { context: contextParam }),
300
- };
304
+ function isValidSourceFile(sourceFile) {
305
+ return sourceFile !== null && sourceFile !== undefined && sourceFile !== '';
301
306
  }
302
- function processGivenItems(data, contextParam) {
303
- const sourceFile = context?.narrative.sourceFile;
304
- return data.map((item) => {
305
- if (sourceFile !== null && sourceFile !== undefined && sourceFile !== '') {
306
- const currentCount = givenCallCounters.get(sourceFile) ?? 0;
307
- givenCallCounters.set(sourceFile, currentCount + 1);
308
- // Look up AST-extracted type info by ordinal position
309
- const givenTypes = givenTypesByFile.get(sourceFile) || [];
310
- const matchingType = givenTypes[currentCount];
311
- if (matchingType !== null && matchingType !== undefined) {
312
- debug('AST match for %s at ordinal %d: %s', sourceFile, currentCount, matchingType.typeName);
313
- return processItemWithASTMatch(item, matchingType, contextParam);
314
- }
315
- else {
316
- debug('No AST match for %s at ordinal %d, item: %o', sourceFile, currentCount, item);
317
- }
318
- }
319
- // Fallback: emit explicit InferredType for downstream processing
320
- return {
321
- eventRef: 'InferredType',
322
- exampleData: ensureMessageFormat(item).data,
323
- ...(contextParam && { context: contextParam }),
324
- };
325
- });
307
+ function isValidMatchingType(matchingType) {
308
+ return matchingType !== null && matchingType !== undefined && matchingType.typeName !== '';
326
309
  }
327
- export function recordGivenData(data, contextParam) {
328
- if (!context ||
329
- context.currentSpecIndex === null ||
330
- context.currentRuleIndex === null ||
331
- context.currentExampleIndex === null) {
332
- throw new Error('No active example context');
310
+ function resolveEffectiveKeyword(keyword) {
311
+ if (keyword !== 'And') {
312
+ return keyword;
333
313
  }
334
- const slice = getCurrentSlice();
335
- if (!slice)
336
- throw new Error('No active slice');
337
- const example = getCurrentExample(slice);
338
- if (!example)
339
- throw new Error('No active example for current slice');
340
- const items = processGivenItems(data, normalizeContext(contextParam));
341
- example.given = items;
314
+ return context?.lastMajorKeyword ?? 'Given';
342
315
  }
343
- export function recordAndGivenData(data, contextParam) {
344
- if (!context ||
345
- context.currentSpecIndex === null ||
346
- context.currentRuleIndex === null ||
347
- context.currentExampleIndex === null) {
348
- throw new Error('No active example context');
349
- }
350
- const slice = getCurrentSlice();
351
- if (!slice)
352
- throw new Error('No active slice');
353
- const example = getCurrentExample(slice);
354
- if (!example)
355
- throw new Error('No active example for current slice');
356
- const items = processGivenItems(data, normalizeContext(contextParam));
357
- if (example.given && Array.isArray(example.given)) {
358
- example.given.push(...items);
359
- }
360
- else {
361
- example.given = items;
362
- }
316
+ function getTypesByFileForKeyword(keyword) {
317
+ if (keyword === 'Given')
318
+ return givenTypesByFile;
319
+ if (keyword === 'When')
320
+ return whenTypesByFile;
321
+ return thenTypesByFile;
363
322
  }
364
- function updateExampleWhen(example, data, sliceType, contextParam) {
365
- const ordinal = incrementWhenCounter();
366
- if (typeof data === 'object' && data !== null && Object.keys(data).length === 0) {
367
- if (sliceType === 'query') {
368
- example.when = { eventRef: '', exampleData: {} };
369
- }
370
- else {
371
- example.when = { commandRef: '', exampleData: {} };
372
- }
373
- return;
374
- }
375
- if (sliceType === 'react' || (sliceType === 'query' && Array.isArray(data))) {
376
- // For react slices and query slices with array input, when is an array of events
377
- const eventsArray = Array.isArray(data) ? data : [data];
378
- example.when = eventsArray.map((item) => convertToEventExample(item, contextParam));
379
- }
380
- else {
381
- example.when = convertToCommandOrEventExample(data, contextParam, ordinal);
382
- }
323
+ function getCountersForKeyword(keyword) {
324
+ if (keyword === 'Given')
325
+ return givenCallCounters;
326
+ if (keyword === 'When')
327
+ return whenCallCounters;
328
+ return thenCallCounters;
383
329
  }
384
- export function recordWhenData(data, contextParam) {
385
- if (!context ||
386
- context.currentSpecIndex === null ||
387
- context.currentRuleIndex === null ||
388
- context.currentExampleIndex === null) {
389
- throw new Error('No active example context');
330
+ function getTypeNameFromAST(effectiveKeyword) {
331
+ const sourceFile = context?.narrative.sourceFile;
332
+ if (!isValidSourceFile(sourceFile)) {
333
+ return null;
390
334
  }
391
- const slice = getCurrentSlice();
392
- if (!slice)
393
- throw new Error('No active slice');
394
- const example = getCurrentExample(slice);
395
- if (!example)
396
- throw new Error('No active example for current slice');
397
- updateExampleWhen(example, data, slice.type, normalizeContext(contextParam));
398
- }
399
- export function recordThenData(data, contextParam) {
400
- if (!context ||
401
- context.currentSpecIndex === null ||
402
- context.currentRuleIndex === null ||
403
- context.currentExampleIndex === null) {
404
- throw new Error('No active example context');
335
+ const typesByFile = getTypesByFileForKeyword(effectiveKeyword);
336
+ const counters = getCountersForKeyword(effectiveKeyword);
337
+ const currentCount = counters.get(sourceFile) ?? 0;
338
+ counters.set(sourceFile, currentCount + 1);
339
+ const types = typesByFile.get(sourceFile) || [];
340
+ const matchingType = types[currentCount];
341
+ if (isValidMatchingType(matchingType)) {
342
+ debug('AST match for %s keyword %s at ordinal %d: %s', sourceFile, effectiveKeyword, currentCount, matchingType.typeName);
343
+ return matchingType.typeName;
405
344
  }
406
- const slice = getCurrentSlice();
407
- if (!slice)
408
- throw new Error('No active slice');
409
- const example = getCurrentExample(slice);
410
- if (!example)
411
- throw new Error('No active example for current slice');
412
- const outcomes = data.map((item) => convertToOutcomeExample(item, slice.type, normalizeContext(contextParam)));
413
- example.then = outcomes;
345
+ debug('No AST match for %s keyword %s at ordinal %d', sourceFile, effectiveKeyword, currentCount);
346
+ return null;
414
347
  }
415
- export function recordAndThenData(data, contextParam) {
348
+ function getActiveExampleContext() {
416
349
  if (!context ||
417
350
  context.currentSpecIndex === null ||
418
351
  context.currentRuleIndex === null ||
@@ -425,157 +358,34 @@ export function recordAndThenData(data, contextParam) {
425
358
  const example = getCurrentExample(slice);
426
359
  if (!example)
427
360
  throw new Error('No active example for current slice');
428
- const outcomes = data.map((item) => convertToOutcomeExample(item, slice.type, normalizeContext(contextParam)));
429
- example.then.push(...outcomes);
430
- }
431
- function convertToEventExample(item, contextParam) {
432
- const message = ensureMessageFormat(item);
433
- return {
434
- eventRef: message.type,
435
- exampleData: message.data,
436
- ...(contextParam && { context: contextParam }),
361
+ return { example };
362
+ }
363
+ export function recordStep(keyword, text, data) {
364
+ const { example } = getActiveExampleContext();
365
+ const effectiveKeyword = resolveEffectiveKeyword(keyword);
366
+ if (keyword !== 'And') {
367
+ context.lastMajorKeyword = keyword;
368
+ }
369
+ const shouldInferType = text === 'InferredType';
370
+ const typeName = shouldInferType ? (getTypeNameFromAST(effectiveKeyword) ?? 'InferredType') : text;
371
+ const docString = typeof data === 'object' && data !== null ? data : undefined;
372
+ const step = {
373
+ keyword,
374
+ text: typeName,
375
+ ...(docString !== undefined && Object.keys(docString).length > 0 ? { docString } : {}),
437
376
  };
438
- }
439
- function getRefTypeFromClassification(classification) {
440
- if (classification === 'event')
441
- return 'eventRef';
442
- if (classification === 'command')
443
- return 'commandRef';
444
- return 'stateRef';
445
- }
446
- function isValidSourceFile(sourceFile) {
447
- return sourceFile !== null && sourceFile !== undefined && sourceFile !== '';
448
- }
449
- function isValidMatchingType(matchingType) {
450
- return matchingType !== null && matchingType !== undefined && matchingType.typeName !== '';
451
- }
452
- function incrementWhenCounter() {
453
- const sourceFile = context?.narrative.sourceFile;
454
- if (!isValidSourceFile(sourceFile)) {
455
- return -1;
456
- }
457
- const currentCount = whenCallCounters.get(sourceFile) ?? 0;
458
- whenCallCounters.set(sourceFile, currentCount + 1);
459
- debug('[when-counter] incremented counter for %s to %d', sourceFile, currentCount + 1);
460
- return currentCount;
461
- }
462
- function tryGetWhenTypeFromAST(item, ordinal) {
463
- const sourceFile = context?.narrative.sourceFile;
464
- debug('[when-ast] tryGetWhenTypeFromAST called, sourceFile=%s, ordinal=%d', sourceFile, ordinal);
465
- debug('[when-ast] whenTypesByFile has %d files', whenTypesByFile.size);
466
- debug('[when-ast] whenTypesByFile keys: %o', [...whenTypesByFile.keys()]);
467
- if (!isValidSourceFile(sourceFile)) {
468
- debug('[when-ast] sourceFile is null/undefined/empty, returning null');
469
- return null;
470
- }
471
- const whenTypes = whenTypesByFile.get(sourceFile) || [];
472
- debug('[when-ast] sourceFile=%s, ordinal=%d, whenTypes.length=%d', sourceFile, ordinal, whenTypes.length);
473
- if (whenTypes.length > 0) {
474
- debug('[when-ast] available types: %o', whenTypes.map((t) => ({ typeName: t.typeName, classification: t.classification })));
475
- }
476
- const matchingType = whenTypes[ordinal];
477
- if (!isValidMatchingType(matchingType)) {
478
- debug('[when-ast] No valid AST match for when at %s ordinal %d, falling back', sourceFile, ordinal);
479
- return null;
480
- }
481
- const refType = getRefTypeFromClassification(matchingType.classification);
482
- debug('[when-ast] ✅ AST match for when at %s ordinal %d: %s -> %s', sourceFile, ordinal, matchingType.typeName, refType);
483
- return {
484
- [refType]: matchingType.typeName,
485
- exampleData: ensureMessageFormat(item).data,
486
- };
487
- }
488
- function convertToCommandOrEventExample(item, contextParam, ordinal) {
489
- if (ordinal !== undefined && ordinal >= 0) {
490
- const astResult = tryGetWhenTypeFromAST(item, ordinal);
491
- if (astResult)
492
- return astResult;
493
- }
494
- // Fallback to the original logic
495
- const message = ensureMessageFormat(item);
496
- return {
497
- commandRef: message.type,
498
- exampleData: message.data,
499
- ...(contextParam && { context: contextParam }),
500
- };
501
- }
502
- function convertToOutcomeExample(item, sliceType, contextParam) {
503
- const message = ensureMessageFormat(item);
504
- // Check if it's an error
505
- if (message.type === 'Error' || 'errorType' in message.data) {
506
- return {
507
- errorType: message.data.errorType || 'IllegalStateError',
508
- message: message.data.message,
509
- };
510
- }
511
- if (sliceType === 'command') {
512
- return {
513
- eventRef: message.type,
514
- exampleData: message.data,
515
- };
516
- }
517
- else if (sliceType === 'query') {
518
- return {
519
- stateRef: message.type,
520
- exampleData: message.data,
521
- };
522
- }
523
- else if (sliceType === 'react') {
524
- return {
525
- commandRef: message.type,
526
- exampleData: message.data,
527
- };
528
- }
529
- return {
530
- eventRef: message.type,
531
- exampleData: message.data,
532
- ...(contextParam && { context: contextParam }),
533
- };
534
- }
535
- function ensureMessageFormat(item) {
536
- if (typeof item !== 'object' || item === null) {
537
- throw new Error('Invalid message format');
538
- }
539
- const obj = item;
540
- if ('type' in obj && typeof obj.type === 'string') {
541
- return parseMessageObject(obj);
542
- }
543
- // Handle enhanced DSL format - pure data objects without type field
544
- // The type will be inferred during schema processing from the TypeScript types
545
- return {
546
- type: 'InferredType', // Placeholder - will be resolved during schema generation
547
- data: obj,
548
- };
549
- }
550
- function parseMessageObject(obj) {
551
- // Handle direct type/data structure
552
- if (hasValidDataProperty(obj)) {
553
- return { type: obj.type, data: obj.data };
554
- }
555
- // Handle builder format with __messageCategory
556
- if ('__messageCategory' in obj) {
557
- return parseBuilderFormat(obj);
558
- }
559
- // Handle legacy format where properties are at top level
560
- return parseLegacyFormat(obj);
561
- }
562
- function hasValidDataProperty(obj) {
563
- return 'data' in obj && typeof obj.data === 'object' && obj.data !== null;
564
- }
565
- function parseBuilderFormat(obj) {
566
- const data = 'data' in obj
567
- ? obj.data
568
- : Object.fromEntries(Object.entries(obj).filter(([key]) => key !== 'type' && key !== '__messageCategory'));
569
- return {
570
- type: obj.type,
571
- data,
572
- };
573
- }
574
- function parseLegacyFormat(obj) {
575
- const data = Object.fromEntries(Object.entries(obj).filter(([key]) => key !== 'type'));
576
- return {
577
- type: obj.type,
578
- data,
377
+ example.steps.push(step);
378
+ }
379
+ export function recordErrorStep(errorType, message) {
380
+ const { example } = getActiveExampleContext();
381
+ context.lastMajorKeyword = 'Then';
382
+ const step = {
383
+ keyword: 'Then',
384
+ error: {
385
+ type: errorType,
386
+ ...(message !== undefined ? { message } : {}),
387
+ },
579
388
  };
389
+ example.steps.push(step);
580
390
  }
581
391
  //# sourceMappingURL=narrative-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-context.js","sourceRoot":"","sources":["../../src/narrative-context.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAC;AAMhC,SAAS,gBAAgB,CAAC,OAAyC;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,KAAK,GAAG,WAAW,CAAC,oCAAoC,CAAC,CAAC;AAYhE,IAAI,OAAO,GAA4B,IAAI,CAAC;AAC5C,IAAI,gBAAgB,GAAiC,IAAI,GAAG,EAAE,CAAC;AAC/D,IAAI,eAAe,GAAiC,IAAI,GAAG,EAAE,CAAC;AAC9D,MAAM,iBAAiB,GAAwB,IAAI,GAAG,EAAE,CAAC;AACzD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAExD,MAAM,UAAU,mBAAmB,CAAC,KAAmC;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAA6C,CAAC;IACvF,IAAI,SAAS,EAAE,CAAC;QACd,eAAe,GAAG,SAAS,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,gBAAgB,GAAG,KAAK,CAAC;IACzB,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAC1B,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,EAAW;IACtD,MAAM,UAAU,GAAI,UAAsC,CAAC,qBAA2C,CAAC;IACvG,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACzE,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACrC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAc;QAC3B,IAAI;QACJ,EAAE;QACF,MAAM,EAAE,EAAE;QACV,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;IACF,OAAO,GAAG;QACR,SAAS;QACT,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;QACzB,eAAe,EAAE,EAAE;KACpB,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACrD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CACrB,KAAY;IAEZ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACrC,IACE,CAAC,OAAO;QACR,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,mBAAmB,KAAK,IAAI,EACpC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAoE,CAAC;IAC9F,OAAO,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACtF,KAAK,CAAC,MAAM,GAAG;YACb,KAAK,EAAE,EAAE;SACV,CAAC;QACF,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QACrC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;YACrD,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe;iBAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC,KAAK,CAAC;gBAC5D,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,gCAAgC,cAAc,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACjC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,cAAsB,EAAE;IACrE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,GAAG;YACb,WAAW;YACX,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG;YACb,WAAW;YACX,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG;YACb,WAAW,EAAE,WAAW,IAAI,SAAS;YACrC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAY,EAAE,WAAmB;IAC9D,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC9C,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG;YACnB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAI,OAAO;YAAE,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAmB;IAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC3C,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAW,EAAE,KAAc;IACtD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE7D,MAAM,YAAY,GAAmB;QACnC,IAAI,EAAE,UAAU;QAChB,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAY;IACpD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAoB,EAAE,KAAkD;IACrG,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEtF,MAAM,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;IACxD,IAAI,CAAC,iBAAiB;QAAE,OAAO;IAE/B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,gCAAgC,CAAC,KAAK,CAAC,CAAC;IACxC,qBAAqB,CAAC,iBAAiB,EAAE,KAAoD,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAW,EAAE,QAAgB,EAAE;IACtD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,IAAI;QACV,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,KAAK;KACN,CAAC;IAEF,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,gCAAgC,CAAC,KAAK,CAAC,CAAC;IACxC,qBAAqB,CAAC,MAAM,EAAE,KAAoD,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACjG,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAA0B,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAExF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,+CAA+C;QAC/C,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,+CAA+C;QAC/C,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,6DAA6D;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACjC,OAAO,IAA6B,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,WAAmB,EAAE,EAAW;IACzD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAoE,CAAC;IAC9F,WAAW,CAAC,IAAI,CAAC;QACf,EAAE;QACF,WAAW;QACX,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;IACH,OAAO,CAAC,gBAAgB,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAoE,CAAC;IAC9F,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjB,WAAW;QACX,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAa,EACb,YAAuD,EACvD,YAAqC;IAErC,MAAM,OAAO,GAAG,4BAA4B,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC1E,OAAO;QACL,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ;QAChC,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI;QAC3C,GAAG,CAAC,YAAY,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAe,EACf,YAAqC;IAErC,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;IAEjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACzE,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5D,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YAEpD,sDAAsD;YACtD,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YAE9C,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBACxD,KAAK,CAAC,oCAAoC,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC7F,OAAO,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,6CAA6C,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QACD,iEAAiE;QACjE,OAAO;YACL,QAAQ,EAAE,cAAc;YACxB,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI;YAC3C,GAAG,CAAC,YAAY,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,YAA8C;IAC7F,IACE,CAAC,OAAO;QACR,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,mBAAmB,KAAK,IAAI,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,KAAK,GAAG,KAA6B,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAe,EAAE,YAA8C;IAChG,IACE,CAAC,OAAO;QACR,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,mBAAmB,KAAK,IAAI,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtE,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAI,KAA2C,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,GAAG,KAA0C,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,IAAa,EACb,SAAiB,EACjB,YAAqC;IAErC,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IAEvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChF,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACrD,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5E,iFAAiF;QACjF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,GAAG,8BAA8B,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAa,EAAE,YAA8C;IAC1F,IACE,CAAC,OAAO;QACR,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,mBAAmB,KAAK,IAAI,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErE,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAe,EAAE,YAAqC;IACnF,IACE,CAAC,OAAO;QACR,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,mBAAmB,KAAK,IAAI,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/G,OAAO,CAAC,IAAI,GAAG,QAA+B,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAe,EAAE,YAA8C;IAC/F,IACE,CAAC,OAAO;QACR,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,mBAAmB,KAAK,IAAI,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/G,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,QAAgC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAa,EACb,YAAqC;IAErC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,GAAG,CAAC,YAAY,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,cAAsB;IAC1D,IAAI,cAAc,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC;IAClD,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACtD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAqC;IAC9D,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAAmE;IAEnE,OAAO,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,KAAK,EAAE,CAAC;AAC7F,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;IAEjD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3D,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;IAEnD,KAAK,CAAC,iDAAiD,EAAE,UAAU,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;IAEvF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAa,EACb,OAAe;IAEf,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;IAEjD,KAAK,CAAC,oEAAoE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACjG,KAAK,CAAC,yCAAyC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IACvE,KAAK,CAAC,qCAAqC,EAAE,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACxD,KAAK,CAAC,2DAA2D,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1G,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CACH,gCAAgC,EAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,uEAAuE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,4BAA4B,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC1E,KAAK,CACH,4DAA4D,EAC5D,UAAU,EACV,OAAO,EACP,YAAY,CAAC,QAAQ,EACrB,OAAO,CACR,CAAC;IAEF,OAAO;QACL,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ;QAChC,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI;KACoB,CAAC;AACpE,CAAC;AAED,SAAS,8BAA8B,CACrC,IAAa,EACb,YAAqC,EACrC,OAAgB;IAIhB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,IAAI;QACxB,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,GAAG,CAAC,YAAY,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAa,EACb,SAAiB,EACjB,YAAqC;IAMrC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1C,yBAAyB;IACzB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAO;YACL,SAAS,EACN,OAAO,CAAC,IAAI,CAAC,SAAuE,IAAI,mBAAmB;YAC9G,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAA6B;SACpD,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,WAAW,EAAE,OAAO,CAAC,IAAI;SAC1B,CAAC;IACJ,CAAC;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,WAAW,EAAE,OAAO,CAAC,IAAI;SAC1B,CAAC;IACJ,CAAC;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,IAAI;YACxB,WAAW,EAAE,OAAO,CAAC,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,GAAG,CAAC,YAAY,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa;IACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAE5C,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,oEAAoE;IACpE,+EAA+E;IAC/E,OAAO;QACL,IAAI,EAAE,cAAc,EAAE,0DAA0D;QAChF,IAAI,EAAE,GAAG;KACV,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,GAA4B;IACtD,oCAAoC;IACpC,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAc,EAAE,IAAI,EAAE,GAAG,CAAC,IAA+B,EAAE,CAAC;IACjF,CAAC;IAED,+CAA+C;IAC/C,IAAI,mBAAmB,IAAI,GAAG,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,yDAAyD;IACzD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,oBAAoB,CAAC,GAA4B;IACxD,OAAO,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;AAC5E,CAAC;AAED,SAAS,kBAAkB,CAAC,GAA4B;IACtD,MAAM,IAAI,GACR,MAAM,IAAI,GAAG;QACX,CAAC,CAAE,GAAG,CAAC,IAAgC;QACvC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,mBAAmB,CAAC,CAAC,CAAC;IAC/G,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAc;QACxB,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAA4B;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC;IACvF,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAc;QACxB,IAAI;KACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"narrative-context.js","sourceRoot":"","sources":["../../src/narrative-context.ts"],"names":[],"mappings":"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"}