@auto-engineer/narrative 0.16.0 → 0.17.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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +26 -0
- package/dist/src/getNarratives.js +1 -1
- package/dist/src/getNarratives.js.map +1 -1
- package/dist/src/id/addAutoIds.d.ts.map +1 -1
- package/dist/src/id/addAutoIds.js +15 -0
- package/dist/src/id/addAutoIds.js.map +1 -1
- package/dist/src/id/hasAllIds.d.ts.map +1 -1
- package/dist/src/id/hasAllIds.js +6 -1
- package/dist/src/id/hasAllIds.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/loader/runtime-cjs.d.ts.map +1 -1
- package/dist/src/loader/runtime-cjs.js +16 -3
- package/dist/src/loader/runtime-cjs.js.map +1 -1
- package/dist/src/schema.d.ts +301 -143
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/schema.js +26 -0
- package/dist/src/schema.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/cross-module-imports.d.ts +6 -0
- package/dist/src/transformers/model-to-narrative/cross-module-imports.d.ts.map +1 -0
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js +63 -0
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js.map +1 -0
- package/dist/src/transformers/model-to-narrative/generators/flow.d.ts +1 -4
- package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/module-code.d.ts +9 -0
- package/dist/src/transformers/model-to-narrative/generators/module-code.d.ts.map +1 -0
- package/dist/src/transformers/model-to-narrative/generators/module-code.js +102 -0
- package/dist/src/transformers/model-to-narrative/generators/module-code.js.map +1 -0
- package/dist/src/transformers/model-to-narrative/index.d.ts +6 -4
- package/dist/src/transformers/model-to-narrative/index.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/index.js +10 -6
- package/dist/src/transformers/model-to-narrative/index.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/ordering.d.ts +10 -0
- package/dist/src/transformers/model-to-narrative/ordering.d.ts.map +1 -0
- package/dist/src/transformers/model-to-narrative/ordering.js +37 -0
- package/dist/src/transformers/model-to-narrative/ordering.js.map +1 -0
- package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts +3 -0
- package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts.map +1 -0
- package/dist/src/transformers/model-to-narrative/spec-traversal.js +54 -0
- package/dist/src/transformers/model-to-narrative/spec-traversal.js.map +1 -0
- package/dist/src/transformers/model-to-narrative/types.d.ts +12 -0
- package/dist/src/transformers/model-to-narrative/types.d.ts.map +1 -0
- package/dist/src/transformers/model-to-narrative/types.js +2 -0
- package/dist/src/transformers/model-to-narrative/types.js.map +1 -0
- package/dist/src/transformers/model-to-narrative/validate-modules.d.ts +8 -0
- package/dist/src/transformers/model-to-narrative/validate-modules.d.ts.map +1 -0
- package/dist/src/transformers/model-to-narrative/validate-modules.js +121 -0
- package/dist/src/transformers/model-to-narrative/validate-modules.js.map +1 -0
- package/dist/src/transformers/narrative-to-model/assemble.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/assemble.js +5 -1
- package/dist/src/transformers/narrative-to-model/assemble.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/derive-modules.d.ts +3 -0
- package/dist/src/transformers/narrative-to-model/derive-modules.d.ts.map +1 -0
- package/dist/src/transformers/narrative-to-model/derive-modules.js +29 -0
- package/dist/src/transformers/narrative-to-model/derive-modules.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/getNarratives.specs.ts +214 -1
- package/src/getNarratives.ts +1 -1
- package/src/id/addAutoIds.specs.ts +180 -0
- package/src/id/addAutoIds.ts +16 -1
- package/src/id/hasAllIds.specs.ts +87 -0
- package/src/id/hasAllIds.ts +10 -2
- package/src/index.ts +7 -0
- package/src/loader/runtime-cjs.ts +17 -3
- package/src/model-to-narrative.specs.ts +467 -17
- package/src/schema.ts +28 -0
- package/src/transformers/model-to-narrative/cross-module-imports.specs.ts +450 -0
- package/src/transformers/model-to-narrative/cross-module-imports.ts +83 -0
- package/src/transformers/model-to-narrative/generators/flow.ts +11 -10
- package/src/transformers/model-to-narrative/generators/module-code.ts +186 -0
- package/src/transformers/model-to-narrative/index.ts +19 -7
- package/src/transformers/model-to-narrative/modules.specs.ts +625 -0
- package/src/transformers/model-to-narrative/ordering.specs.ts +104 -0
- package/src/transformers/model-to-narrative/ordering.ts +46 -0
- package/src/transformers/model-to-narrative/spec-traversal.specs.ts +418 -0
- package/src/transformers/model-to-narrative/spec-traversal.ts +63 -0
- package/src/transformers/model-to-narrative/types.ts +13 -0
- package/src/transformers/model-to-narrative/validate-modules.ts +159 -0
- package/src/transformers/narrative-to-model/assemble.ts +7 -2
- package/src/transformers/narrative-to-model/derive-modules.specs.ts +121 -0
- package/src/transformers/narrative-to-model/derive-modules.ts +36 -0
- package/tsconfig.test.json +2 -1
package/src/id/hasAllIds.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClientSpecNode, Example, Model, Rule, Slice, Spec, Step } from '../index';
|
|
1
|
+
import type { ClientSpecNode, Example, Model, Module, Rule, Slice, Spec, Step } from '../index';
|
|
2
2
|
|
|
3
3
|
function hasValidId(item: { id?: string }): boolean {
|
|
4
4
|
return item.id !== undefined && item.id !== '';
|
|
@@ -44,6 +44,14 @@ function hasSliceIds(slice: Slice): boolean {
|
|
|
44
44
|
return hasValidId(slice) && hasServerSpecIds(slice) && hasClientSpecIds(slice);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
function hasModuleIds(modules: Module[]): boolean {
|
|
48
|
+
return modules.every(hasValidId);
|
|
49
|
+
}
|
|
50
|
+
|
|
47
51
|
export function hasAllIds(specs: Model): boolean {
|
|
48
|
-
|
|
52
|
+
const narrativesValid = specs.narratives.every(
|
|
53
|
+
(narrative) => hasValidId(narrative) && narrative.slices.every(hasSliceIds),
|
|
54
|
+
);
|
|
55
|
+
const modulesValid = hasModuleIds(specs.modules ?? []);
|
|
56
|
+
return narrativesValid && modulesValid;
|
|
49
57
|
}
|
package/src/index.ts
CHANGED
|
@@ -71,7 +71,9 @@ export {
|
|
|
71
71
|
ExperienceSliceSchema,
|
|
72
72
|
IntegrationSchema,
|
|
73
73
|
MessageFieldSchema,
|
|
74
|
+
MessageRefSchema,
|
|
74
75
|
MessageSchema,
|
|
76
|
+
ModuleSchema,
|
|
75
77
|
modelSchema as SpecsSystemSchema,
|
|
76
78
|
modelSchema,
|
|
77
79
|
NarrativeNamesSchema as NarrativeNamesSystemSchema,
|
|
@@ -91,6 +93,7 @@ export {
|
|
|
91
93
|
|
|
92
94
|
// Testing helpers
|
|
93
95
|
export { createNarrativeSpec, given as testGiven, when as testWhen } from './testing';
|
|
96
|
+
export type { GeneratedNarratives } from './transformers/model-to-narrative';
|
|
94
97
|
export { modelToNarrative } from './transformers/model-to-narrative';
|
|
95
98
|
|
|
96
99
|
import type {
|
|
@@ -98,7 +101,9 @@ import type {
|
|
|
98
101
|
ExampleSchema,
|
|
99
102
|
ExperienceSliceSchema,
|
|
100
103
|
MessageFieldSchema,
|
|
104
|
+
MessageRefSchema,
|
|
101
105
|
MessageSchema,
|
|
106
|
+
ModuleSchema,
|
|
102
107
|
modelSchema,
|
|
103
108
|
NarrativeSchema,
|
|
104
109
|
QuerySliceSchema,
|
|
@@ -121,6 +126,8 @@ export type MessageField = z.infer<typeof MessageFieldSchema>;
|
|
|
121
126
|
export type Rule = z.infer<typeof RuleSchema>;
|
|
122
127
|
export type Spec = z.infer<typeof SpecSchema>;
|
|
123
128
|
export type Step = z.infer<typeof StepSchema>;
|
|
129
|
+
export type Module = z.infer<typeof ModuleSchema>;
|
|
130
|
+
export type MessageRef = z.infer<typeof MessageRefSchema>;
|
|
124
131
|
|
|
125
132
|
// ID assignment utilities
|
|
126
133
|
export { addAutoIds, hasAllIds } from './id';
|
|
@@ -8,16 +8,30 @@ import type { Graph } from './types';
|
|
|
8
8
|
const debug = createDebug('auto:flow:runtime');
|
|
9
9
|
const dImp = createDebug('auto:flow:runtime:require');
|
|
10
10
|
|
|
11
|
+
// Conditional Node.js module loading - variable indirection prevents bundler static analysis
|
|
12
|
+
let _createRequire: ((url: string | URL) => NodeRequire) | undefined;
|
|
13
|
+
|
|
14
|
+
if (isNode()) {
|
|
15
|
+
try {
|
|
16
|
+
const id = 'node:module';
|
|
17
|
+
const nodeModule = await import(/* @vite-ignore */ id);
|
|
18
|
+
_createRequire = nodeModule.createRequire;
|
|
19
|
+
} catch {
|
|
20
|
+
// Graceful degradation - fall back to browser-style behavior
|
|
21
|
+
// This handles misconfigured Node builds or edge cases
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
11
25
|
function isNode(): boolean {
|
|
12
26
|
return typeof process !== 'undefined' && typeof (process as NodeJS.Process | undefined)?.versions?.node === 'string';
|
|
13
27
|
}
|
|
14
28
|
|
|
15
29
|
function nodeRequire(spec: string): unknown {
|
|
16
|
-
if (!
|
|
30
|
+
if (!_createRequire) {
|
|
17
31
|
throw new Error('Node require unavailable in browser');
|
|
18
32
|
}
|
|
19
|
-
const
|
|
20
|
-
return
|
|
33
|
+
const require = _createRequire(import.meta.url);
|
|
34
|
+
return require(spec);
|
|
21
35
|
}
|
|
22
36
|
|
|
23
37
|
function makeIntegration(): Integration {
|