@auto-engineer/information-architect 0.12.0 → 0.12.1

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/information-architect@0.11.20 build /Users/sam/WebstormProjects/top/auto-engineer-1/packages/information-architect
2
+ > @auto-engineer/information-architect@0.12.1 build /home/runner/work/auto-engineer/auto-engineer/packages/information-architect
3
3
  > tsc && tsx ../../scripts/fix-esm-imports.ts && cp src/auto-ux-schema.json dist/
4
4
 
5
5
  Fixed ESM imports in dist/
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @auto-engineer/information-architect
2
2
 
3
+ ## 0.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @auto-engineer/narrative@0.12.1
9
+ - @auto-engineer/ai-gateway@0.12.1
10
+ - @auto-engineer/message-bus@0.12.1
11
+
3
12
  ## 0.12.0
4
13
 
5
14
  ### Minor Changes
@@ -29,7 +29,7 @@
29
29
  "items": {
30
30
  "type": "string"
31
31
  },
32
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
32
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
33
33
  }
34
34
  },
35
35
  "required": ["description"]
@@ -72,7 +72,7 @@
72
72
  "items": {
73
73
  "type": "string"
74
74
  },
75
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
75
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
76
76
  }
77
77
  },
78
78
  "required": ["description", "composition"]
@@ -154,7 +154,7 @@
154
154
  "items": {
155
155
  "type": "string"
156
156
  },
157
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
157
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
158
158
  }
159
159
  },
160
160
  "required": ["description", "composition"]
@@ -254,7 +254,7 @@
254
254
  "items": {
255
255
  "type": "string"
256
256
  },
257
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
257
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
258
258
  }
259
259
  },
260
260
  "required": ["route", "description", "layout"]
@@ -29,7 +29,7 @@
29
29
  "items": {
30
30
  "type": "string"
31
31
  },
32
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
32
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
33
33
  }
34
34
  },
35
35
  "required": ["description"]
@@ -72,7 +72,7 @@
72
72
  "items": {
73
73
  "type": "string"
74
74
  },
75
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
75
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
76
76
  }
77
77
  },
78
78
  "required": ["description", "composition"]
@@ -154,7 +154,7 @@
154
154
  "items": {
155
155
  "type": "string"
156
156
  },
157
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
157
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
158
158
  }
159
159
  },
160
160
  "required": ["description", "composition"]
@@ -254,7 +254,7 @@
254
254
  "items": {
255
255
  "type": "string"
256
256
  },
257
- "description": "Optional. UX and behavioral specifications for this component/page, derived from flow specs."
257
+ "description": "Optional. Array of behavioral test specifications. Uses ' ' to show nested context."
258
258
  }
259
259
  },
260
260
  "required": ["route", "description", "layout"]
@@ -1 +1 @@
1
- {"version":3,"file":"generate-ia.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAwB,MAAM,4BAA4B,CAAC;AAkB5F,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,YAAY,EACZ;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAClC,aAAa,EACb;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,KAAK,CACzC,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAE1E,eAAO,MAAM,cAAc;;;mBAvBZ,MAAM;mBACN,MAAM;;;;;GAoDnB,CAAC;AAkJH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"generate-ia.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAwB,MAAM,4BAA4B,CAAC;AAmB5F,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,YAAY,EACZ;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAClC,aAAa,EACb;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,KAAK,CACzC,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAE1E,eAAO,MAAM,cAAc;;;mBAvBZ,MAAM;mBACN,MAAM;;;;;GAoDnB,CAAC;AAsKH,eAAe,cAAc,CAAC"}
@@ -4,6 +4,7 @@ import * as path from 'path';
4
4
  import { fileURLToPath } from 'url';
5
5
  import { processFlowsWithAI } from '../index.js';
6
6
  import createDebug from 'debug';
7
+ import { flattenClientSpecs } from '../spec-utils.js';
7
8
  const debug = createDebug('auto:information-architect:generate-command');
8
9
  const debugSchema = createDebug('auto:information-architect:generate-command:schema');
9
10
  const debugFiles = createDebug('auto:information-architect:generate-command:files');
@@ -72,6 +73,19 @@ async function getModelFromContext(modelPath) {
72
73
  const modelContent = await fs.readFile(modelPath, 'utf-8');
73
74
  return JSON.parse(modelContent);
74
75
  }
76
+ function preprocessModelForAI(model) {
77
+ const processedModel = JSON.parse(JSON.stringify(model));
78
+ for (const narrative of processedModel.narratives) {
79
+ for (const slice of narrative.slices) {
80
+ if ('client' in slice && slice.client !== undefined && slice.client.specs !== undefined) {
81
+ const flattenedSpecs = flattenClientSpecs(slice.client.specs);
82
+ slice.client.specs = flattenedSpecs;
83
+ debug('Flattened %d client specs for slice: %s', flattenedSpecs.length, slice.name);
84
+ }
85
+ }
86
+ }
87
+ return processedModel;
88
+ }
75
89
  async function getUniqueSchemaPath(outputDir) {
76
90
  debugFiles('Finding schema path in: %s', outputDir);
77
91
  let existingSchema;
@@ -106,6 +120,9 @@ async function handleGenerateIACommandInternal(command) {
106
120
  debugSchema('UX schema loaded successfully');
107
121
  const model = await getModelFromContext(modelPath);
108
122
  debugFiles('Reading %d flow files', model.narratives.length);
123
+ // Preprocess model to flatten client specs for AI
124
+ const processedModel = preprocessModelForAI(model);
125
+ debug('Model preprocessed with flattened client specs');
109
126
  // Get unique schema path and existing schema
110
127
  const { filePath, existingSchema } = await getUniqueSchemaPath(outputDir);
111
128
  // Get atoms from markdown
@@ -117,7 +134,7 @@ async function handleGenerateIACommandInternal(command) {
117
134
  debug('Processing flows with AI...');
118
135
  debug(' Existing schema: %s', existingSchema ? 'yes' : 'no');
119
136
  debug(' Atom count: %d', atoms.length);
120
- const iaSchema = await processFlowsWithAI(model, uxSchema, existingSchema, atoms);
137
+ const iaSchema = await processFlowsWithAI(processedModel, uxSchema, existingSchema, atoms);
121
138
  debug('AI processing complete');
122
139
  // Write the schema to file
123
140
  debugResult('Writing IA schema to: %s', filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"generate-ia.js","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-ia.js","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ia-agent.d.ts","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAetD,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAa;gBAElB,QAAQ,CAAC,EAAE,UAAU;IAI3B,oBAAoB,CACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,GAClE,OAAO,CAAC,aAAa,CAAC;IAsBzB,OAAO,CAAC,eAAe;CA+FxB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,GAClE,OAAO,CAAC,aAAa,CAAC,CAGxB"}
1
+ {"version":3,"file":"ia-agent.d.ts","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAetD,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAa;gBAElB,QAAQ,CAAC,EAAE,UAAU;IAI3B,oBAAoB,CACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,GAClE,OAAO,CAAC,aAAa,CAAC;IAsBzB,OAAO,CAAC,eAAe;CAgGxB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,GAClE,OAAO,CAAC,aAAa,CAAC,CAGxB"}
@@ -75,9 +75,10 @@ Instructions:
75
75
  - template (what wrapper does the page use)
76
76
  - navigation (array of navigation actions, e.g., { "on": "Click Listing Card", "to": "ListingDetailPage" })
77
77
  - data_requirements (array, as above, for page-level data fetching)
78
- - For each component or page, if there are any specs defined in the model's flow slices (look for slice.specs array where specs have context='client'), extract all spec descriptions and assign them as an array of strings to a 'specs' field for the corresponding component/page.
79
- - Only include specs where the context is 'client', not 'server' or other contexts.
80
- - If no specs are found for a component/page, omit the 'specs' field.
78
+ - For each component or page, if there are any specs defined in the model's flow slices, look at slice.client.specs which is an array of strings.
79
+ - These specs describe behavioral requirements with nested context preserved using ' ' separator (e.g., "Form → Validation → shows error").
80
+ - Assign these specs directly to the 'specs' field for the corresponding component/page.
81
+ - If no client.specs exist for a slice, omit the 'specs' field.
81
82
 
82
83
  Use the following structure as a template for your response:
83
84
  ----
@@ -1 +1 @@
1
- {"version":3,"file":"ia-agent.js","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAc,MAAM,2BAA2B,CAAC;AAI3E,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,OAAO,yBAAyB;IAGpC,YAAY,QAAqB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;QAEnE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,IAAI,GAAG,CAAC;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,eAAe,CACrB,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;QAEnE,OAAO;;;;;;GAMR,KAAK,CAAC,CAAC,CAAC,qPAAqP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;EAErS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;EAG9B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;EAEjC,cAAc,CAAC,CAAC,CAAC,kNAAkN,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EpR,CAAC;IACA,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;IAEnE,MAAM,KAAK,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC9C,OAAO,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"ia-agent.js","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAc,MAAM,2BAA2B,CAAC;AAI3E,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,OAAO,yBAAyB;IAGpC,YAAY,QAAqB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;QAEnE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,IAAI,GAAG,CAAC;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,eAAe,CACrB,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;QAEnE,OAAO;;;;;;GAMR,KAAK,CAAC,CAAC,CAAC,qPAAqP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;EAErS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;EAG9B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;EAEjC,cAAc,CAAC,CAAC,CAAC,kNAAkN,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EpR,CAAC;IACA,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;IAEnE,MAAM,KAAK,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC9C,OAAO,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ClientSpecNode } from '@auto-engineer/narrative';
2
+ export declare function flattenClientSpecs(nodes: ClientSpecNode[] | undefined, separator?: string): string[];
3
+ //# sourceMappingURL=spec-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-utils.d.ts","sourceRoot":"","sources":["../../src/spec-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAkB/D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,SAAS,EAAE,SAAS,GAAE,MAAc,GAAG,MAAM,EAAE,CAoB3G"}
@@ -0,0 +1,32 @@
1
+ function buildFullPath(path, title, separator) {
2
+ return path.length > 0 ? path.join(separator) + separator + title : title;
3
+ }
4
+ function shouldIncludeTitleInPath(title) {
5
+ return title !== undefined && title !== '' && title.trim() !== '';
6
+ }
7
+ function createNewPath(path, title) {
8
+ return shouldIncludeTitleInPath(title) && title !== undefined ? [...path, title] : path;
9
+ }
10
+ function hasChildren(node) {
11
+ return node.type === 'describe' && node.children !== undefined && node.children.length > 0;
12
+ }
13
+ export function flattenClientSpecs(nodes, separator = ' → ') {
14
+ if (!nodes || nodes.length === 0) {
15
+ return [];
16
+ }
17
+ const results = [];
18
+ function traverse(nodes, path = []) {
19
+ for (const node of nodes) {
20
+ if (node.type === 'it') {
21
+ results.push(buildFullPath(path, node.title, separator));
22
+ }
23
+ else if (hasChildren(node) && node.children !== undefined) {
24
+ const newPath = createNewPath(path, node.title);
25
+ traverse(node.children, newPath);
26
+ }
27
+ }
28
+ }
29
+ traverse(nodes);
30
+ return results;
31
+ }
32
+ //# sourceMappingURL=spec-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-utils.js","sourceRoot":"","sources":["../../src/spec-utils.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,IAAc,EAAE,KAAa,EAAE,SAAiB;IACrE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5E,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAyB;IACzD,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CAAC,IAAc,EAAE,KAAyB;IAC9D,OAAO,wBAAwB,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC;AAED,SAAS,WAAW,CAAC,IAAoB;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAmC,EAAE,YAAoB,KAAK;IAC/F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,SAAS,QAAQ,CAAC,KAAuB,EAAE,OAAiB,EAAE;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YAC3D,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,OAAO,CAAC;AACjB,CAAC"}