@auto-engineer/narrative 0.20.0 → 0.21.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 (31) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-format.log +1 -1
  3. package/.turbo/turbo-lint.log +1 -1
  4. package/.turbo/turbo-test.log +6 -6
  5. package/.turbo/turbo-type-check.log +5 -4
  6. package/CHANGELOG.md +13 -0
  7. package/dist/src/commands/export-schema-runner.js +6 -1
  8. package/dist/src/commands/export-schema-runner.js.map +1 -1
  9. package/dist/src/fluent-builder.specs.js +2 -2
  10. package/dist/src/fluent-builder.specs.js.map +1 -1
  11. package/dist/src/getNarratives.cache.specs.js +5 -5
  12. package/dist/src/getNarratives.cache.specs.js.map +1 -1
  13. package/dist/src/getNarratives.specs.js +194 -207
  14. package/dist/src/getNarratives.specs.js.map +1 -1
  15. package/dist/src/id/addAutoIds.specs.js +72 -409
  16. package/dist/src/id/addAutoIds.specs.js.map +1 -1
  17. package/dist/src/id/hasAllIds.specs.js +215 -408
  18. package/dist/src/id/hasAllIds.specs.js.map +1 -1
  19. package/dist/src/model-to-narrative.specs.js +505 -564
  20. package/dist/src/model-to-narrative.specs.js.map +1 -1
  21. package/dist/src/narrative-context.specs.js +58 -133
  22. package/dist/src/narrative-context.specs.js.map +1 -1
  23. package/dist/src/schema.d.ts +302 -302
  24. package/dist/src/transformers/narrative-to-model/type-inference.specs.js +94 -104
  25. package/dist/src/transformers/narrative-to-model/type-inference.specs.js.map +1 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +4 -4
  28. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.d.ts +0 -2
  29. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.d.ts.map +0 -1
  30. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.js +0 -142
  31. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { describe, expect, it } from 'vitest';
1
+ import { describe, it, expect } from 'vitest';
2
2
  import { narrativesToModel } from './index.js';
3
3
  describe('Type inference in narrative-to-model transformer', () => {
4
4
  it('should correctly extract command types from when clauses', () => {
@@ -11,94 +11,88 @@ describe('Type inference in narrative-to-model transformer', () => {
11
11
  id: 'SLICE-001',
12
12
  type: 'command',
13
13
  name: 'Submit Answer Command',
14
- client: { specs: [] },
14
+ client: { description: 'Submit answer client' },
15
15
  server: {
16
16
  description: 'Submit answer server',
17
- specs: [
18
- {
19
- type: 'gherkin',
20
- feature: 'Submit Answer Specs',
21
- rules: [
22
- {
23
- id: 'RULE-001',
24
- name: 'Should accept answer submission',
25
- examples: [
26
- {
27
- name: 'Valid answer submission',
28
- steps: [
29
- {
30
- keyword: 'When',
31
- text: 'AnswerQuestion',
32
- docString: {
33
- questionnaireId: 'q-001',
34
- participantId: 'participant-abc',
35
- questionId: 'q1',
36
- answer: 'Yes',
37
- },
17
+ specs: {
18
+ name: 'Submit Answer Specs',
19
+ rules: [
20
+ {
21
+ id: 'RULE-001',
22
+ description: 'Should accept answer submission',
23
+ examples: [
24
+ {
25
+ description: 'Valid answer submission',
26
+ when: [
27
+ {
28
+ commandRef: 'AnswerQuestion',
29
+ exampleData: {
30
+ questionnaireId: 'q-001',
31
+ participantId: 'participant-abc',
32
+ questionId: 'q1',
33
+ answer: 'Yes',
38
34
  },
39
- {
40
- keyword: 'Then',
41
- text: 'QuestionAnswered',
42
- docString: {
43
- questionnaireId: 'q-001',
44
- participantId: 'participant-abc',
45
- questionId: 'q1',
46
- answer: 'Yes',
47
- savedAt: new Date(),
48
- },
35
+ },
36
+ ],
37
+ then: [
38
+ {
39
+ eventRef: 'QuestionAnswered',
40
+ exampleData: {
41
+ questionnaireId: 'q-001',
42
+ participantId: 'participant-abc',
43
+ questionId: 'q1',
44
+ answer: 'Yes',
45
+ savedAt: new Date(),
49
46
  },
50
- ],
51
- },
52
- ],
53
- },
54
- ],
55
- },
56
- ],
47
+ },
48
+ ],
49
+ },
50
+ ],
51
+ },
52
+ ],
53
+ },
57
54
  },
58
55
  },
59
56
  {
60
57
  id: 'SLICE-002',
61
58
  type: 'command',
62
59
  name: 'Submit Questionnaire Command',
63
- client: { specs: [] },
60
+ client: { description: 'Submit questionnaire client' },
64
61
  server: {
65
62
  description: 'Submit questionnaire server',
66
- specs: [
67
- {
68
- type: 'gherkin',
69
- feature: 'Submit Questionnaire Specs',
70
- rules: [
71
- {
72
- id: 'RULE-002',
73
- name: 'Should submit questionnaire',
74
- examples: [
75
- {
76
- name: 'Valid questionnaire submission',
77
- steps: [
78
- {
79
- keyword: 'When',
80
- text: 'SubmitQuestionnaire',
81
- docString: {
82
- questionnaireId: 'q-001',
83
- participantId: 'participant-abc',
84
- },
63
+ specs: {
64
+ name: 'Submit Questionnaire Specs',
65
+ rules: [
66
+ {
67
+ id: 'RULE-002',
68
+ description: 'Should submit questionnaire',
69
+ examples: [
70
+ {
71
+ description: 'Valid questionnaire submission',
72
+ when: [
73
+ {
74
+ commandRef: 'SubmitQuestionnaire',
75
+ exampleData: {
76
+ questionnaireId: 'q-001',
77
+ participantId: 'participant-abc',
85
78
  },
86
- {
87
- keyword: 'Then',
88
- text: 'QuestionnaireSubmitted',
89
- docString: {
90
- questionnaireId: 'q-001',
91
- participantId: 'participant-abc',
92
- submittedAt: new Date(),
93
- },
79
+ },
80
+ ],
81
+ then: [
82
+ {
83
+ eventRef: 'QuestionnaireSubmitted',
84
+ exampleData: {
85
+ questionnaireId: 'q-001',
86
+ participantId: 'participant-abc',
87
+ submittedAt: new Date(),
94
88
  },
95
- ],
96
- },
97
- ],
98
- },
99
- ],
100
- },
101
- ],
89
+ },
90
+ ],
91
+ },
92
+ ],
93
+ },
94
+ ],
95
+ },
102
96
  },
103
97
  },
104
98
  ],
@@ -130,38 +124,34 @@ describe('Type inference in narrative-to-model transformer', () => {
130
124
  id: 'SLICE-001',
131
125
  type: 'command',
132
126
  name: 'Single Object Command',
133
- client: { specs: [] },
127
+ client: { description: 'Single object client' },
134
128
  server: {
135
129
  description: 'Single object server',
136
- specs: [
137
- {
138
- type: 'gherkin',
139
- feature: 'Single Object Specs',
140
- rules: [
141
- {
142
- id: 'RULE-001',
143
- name: 'Should handle single object',
144
- examples: [
145
- {
146
- name: 'Single object example',
147
- steps: [
148
- {
149
- keyword: 'When',
150
- text: 'TestCommand',
151
- docString: { test: 'value' },
152
- },
153
- {
154
- keyword: 'Then',
155
- text: 'TestEvent',
156
- docString: { result: 'success' },
157
- },
158
- ],
130
+ specs: {
131
+ name: 'Single Object Specs',
132
+ rules: [
133
+ {
134
+ id: 'RULE-001',
135
+ description: 'Should handle single object',
136
+ examples: [
137
+ {
138
+ description: 'Single object example',
139
+ // Single object, not array - this is what broke
140
+ when: {
141
+ commandRef: 'TestCommand',
142
+ exampleData: { test: 'value' },
159
143
  },
160
- ],
161
- },
162
- ],
163
- },
164
- ],
144
+ then: [
145
+ {
146
+ eventRef: 'TestEvent',
147
+ exampleData: { result: 'success' },
148
+ },
149
+ ],
150
+ },
151
+ ],
152
+ },
153
+ ],
154
+ },
165
155
  },
166
156
  },
167
157
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"type-inference.specs.js","sourceRoot":"","sources":["../../../../src/transformers/narrative-to-model/type-inference.specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-inference.specs.js","sourceRoot":"","sources":["../../../../src/transformers/narrative-to-model/type-inference.specs.ts"],"names":[],"mappings":"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"}