@auto-engineer/narrative 0.11.11 → 0.11.12

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 (210) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/dist/src/getFlows.cache.specs.js +18 -18
  4. package/dist/src/getFlows.cache.specs.js.map +1 -1
  5. package/dist/src/getNarratives.specs.d.ts +2 -0
  6. package/dist/src/getNarratives.specs.d.ts.map +1 -0
  7. package/dist/src/{getFlows.specs.js → getNarratives.specs.js} +22 -22
  8. package/dist/src/getNarratives.specs.js.map +1 -0
  9. package/dist/src/id/addAutoIds.specs.js +6 -6
  10. package/dist/src/id/addAutoIds.specs.js.map +1 -1
  11. package/dist/src/id/hasAllIds.specs.js +16 -16
  12. package/dist/src/id/hasAllIds.specs.js.map +1 -1
  13. package/dist/src/model-to-flow.specs.js +3 -3
  14. package/dist/src/model-to-flow.specs.js.map +1 -1
  15. package/dist/src/samples/items.narrative.d.ts +2 -0
  16. package/dist/src/samples/items.narrative.d.ts.map +1 -0
  17. package/dist/src/samples/{items.flow.js → items.narrative.js} +1 -1
  18. package/dist/src/samples/items.narrative.js.map +1 -0
  19. package/dist/src/samples/mixed-given-types.narrative.d.ts +2 -0
  20. package/dist/src/samples/mixed-given-types.narrative.d.ts.map +1 -0
  21. package/dist/src/samples/{mixed-given-types.flow.js → mixed-given-types.narrative.js} +1 -1
  22. package/dist/src/samples/mixed-given-types.narrative.js.map +1 -0
  23. package/dist/src/samples/{place-order.flow.d.ts → place-order.narrative.d.ts} +2 -2
  24. package/dist/src/samples/place-order.narrative.d.ts.map +1 -0
  25. package/dist/src/samples/{place-order.flow.js → place-order.narrative.js} +1 -1
  26. package/dist/src/samples/place-order.narrative.js.map +1 -0
  27. package/dist/src/samples/questionnaires.narrative.d.ts +2 -0
  28. package/dist/src/samples/questionnaires.narrative.d.ts.map +1 -0
  29. package/dist/src/samples/{questionnaires.flow.js → questionnaires.narrative.js} +1 -1
  30. package/dist/src/samples/questionnaires.narrative.js.map +1 -0
  31. package/dist/src/samples/seasonal-assistant.schema.json +1 -1
  32. package/dist/src/samples/test-with-ids.narrative.d.ts +2 -0
  33. package/dist/src/samples/test-with-ids.narrative.d.ts.map +1 -0
  34. package/dist/src/samples/{test-with-ids.flow.js → test-with-ids.narrative.js} +1 -1
  35. package/dist/src/samples/test-with-ids.narrative.js.map +1 -0
  36. package/dist/src/schema.d.ts +2991 -2991
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +5 -5
  39. package/src/getFlows.cache.specs.ts +18 -18
  40. package/src/{getFlows.specs.ts → getNarratives.specs.ts} +23 -21
  41. package/src/id/addAutoIds.specs.ts +6 -6
  42. package/src/id/hasAllIds.specs.ts +16 -16
  43. package/src/model-to-flow.specs.ts +3 -3
  44. package/src/samples/{place-order.flow.ts → place-order.narrative.ts} +2 -2
  45. package/src/samples/seasonal-assistant.schema.json +1 -1
  46. package/.turbo/turbo-format.log +0 -4
  47. package/.turbo/turbo-lint.log +0 -4
  48. package/.turbo/turbo-test.log +0 -14
  49. package/.turbo/turbo-type-check.log +0 -4
  50. package/dist/src/data-flow-builders.d.ts +0 -71
  51. package/dist/src/data-flow-builders.d.ts.map +0 -1
  52. package/dist/src/data-flow-builders.js +0 -326
  53. package/dist/src/data-flow-builders.js.map +0 -1
  54. package/dist/src/flow-context.d.ts +0 -25
  55. package/dist/src/flow-context.d.ts.map +0 -1
  56. package/dist/src/flow-context.js +0 -579
  57. package/dist/src/flow-context.js.map +0 -1
  58. package/dist/src/flow-context.specs.d.ts +0 -2
  59. package/dist/src/flow-context.specs.d.ts.map +0 -1
  60. package/dist/src/flow-context.specs.js +0 -185
  61. package/dist/src/flow-context.specs.js.map +0 -1
  62. package/dist/src/flow-registry.d.ts +0 -12
  63. package/dist/src/flow-registry.d.ts.map +0 -1
  64. package/dist/src/flow-registry.js +0 -46
  65. package/dist/src/flow-registry.js.map +0 -1
  66. package/dist/src/flow.d.ts +0 -49
  67. package/dist/src/flow.d.ts.map +0 -1
  68. package/dist/src/flow.js +0 -146
  69. package/dist/src/flow.js.map +0 -1
  70. package/dist/src/getFlows.d.ts +0 -21
  71. package/dist/src/getFlows.d.ts.map +0 -1
  72. package/dist/src/getFlows.js +0 -119
  73. package/dist/src/getFlows.js.map +0 -1
  74. package/dist/src/getFlows.specs.d.ts +0 -2
  75. package/dist/src/getFlows.specs.d.ts.map +0 -1
  76. package/dist/src/getFlows.specs.js.map +0 -1
  77. package/dist/src/samples/items.flow.d.ts +0 -2
  78. package/dist/src/samples/items.flow.d.ts.map +0 -1
  79. package/dist/src/samples/items.flow.js.map +0 -1
  80. package/dist/src/samples/mixed-given-types.flow.d.ts +0 -2
  81. package/dist/src/samples/mixed-given-types.flow.d.ts.map +0 -1
  82. package/dist/src/samples/mixed-given-types.flow.js.map +0 -1
  83. package/dist/src/samples/place-order.flow.d.ts.map +0 -1
  84. package/dist/src/samples/place-order.flow.js.map +0 -1
  85. package/dist/src/samples/questionnaires.flow.d.ts +0 -2
  86. package/dist/src/samples/questionnaires.flow.d.ts.map +0 -1
  87. package/dist/src/samples/questionnaires.flow.js.map +0 -1
  88. package/dist/src/samples/test-with-ids.flow.d.ts +0 -2
  89. package/dist/src/samples/test-with-ids.flow.d.ts.map +0 -1
  90. package/dist/src/samples/test-with-ids.flow.js.map +0 -1
  91. package/dist/src/transformers/flow-to-model/assemble.d.ts +0 -3
  92. package/dist/src/transformers/flow-to-model/assemble.d.ts.map +0 -1
  93. package/dist/src/transformers/flow-to-model/assemble.js +0 -9
  94. package/dist/src/transformers/flow-to-model/assemble.js.map +0 -1
  95. package/dist/src/transformers/flow-to-model/debug.d.ts +0 -3
  96. package/dist/src/transformers/flow-to-model/debug.d.ts.map +0 -1
  97. package/dist/src/transformers/flow-to-model/debug.js +0 -6
  98. package/dist/src/transformers/flow-to-model/debug.js.map +0 -1
  99. package/dist/src/transformers/flow-to-model/example-shapes.d.ts +0 -6
  100. package/dist/src/transformers/flow-to-model/example-shapes.d.ts.map +0 -1
  101. package/dist/src/transformers/flow-to-model/example-shapes.js +0 -60
  102. package/dist/src/transformers/flow-to-model/example-shapes.js.map +0 -1
  103. package/dist/src/transformers/flow-to-model/guards.d.ts +0 -15
  104. package/dist/src/transformers/flow-to-model/guards.d.ts.map +0 -1
  105. package/dist/src/transformers/flow-to-model/guards.js +0 -18
  106. package/dist/src/transformers/flow-to-model/guards.js.map +0 -1
  107. package/dist/src/transformers/flow-to-model/index.d.ts +0 -4
  108. package/dist/src/transformers/flow-to-model/index.d.ts.map +0 -1
  109. package/dist/src/transformers/flow-to-model/index.js +0 -193
  110. package/dist/src/transformers/flow-to-model/index.js.map +0 -1
  111. package/dist/src/transformers/flow-to-model/inlining.d.ts +0 -4
  112. package/dist/src/transformers/flow-to-model/inlining.d.ts.map +0 -1
  113. package/dist/src/transformers/flow-to-model/inlining.js +0 -95
  114. package/dist/src/transformers/flow-to-model/inlining.js.map +0 -1
  115. package/dist/src/transformers/flow-to-model/integrations.d.ts +0 -36
  116. package/dist/src/transformers/flow-to-model/integrations.d.ts.map +0 -1
  117. package/dist/src/transformers/flow-to-model/integrations.js +0 -147
  118. package/dist/src/transformers/flow-to-model/integrations.js.map +0 -1
  119. package/dist/src/transformers/flow-to-model/messages.d.ts +0 -5
  120. package/dist/src/transformers/flow-to-model/messages.d.ts.map +0 -1
  121. package/dist/src/transformers/flow-to-model/messages.js +0 -88
  122. package/dist/src/transformers/flow-to-model/messages.js.map +0 -1
  123. package/dist/src/transformers/flow-to-model/normalize.d.ts +0 -3
  124. package/dist/src/transformers/flow-to-model/normalize.d.ts.map +0 -1
  125. package/dist/src/transformers/flow-to-model/normalize.js +0 -23
  126. package/dist/src/transformers/flow-to-model/normalize.js.map +0 -1
  127. package/dist/src/transformers/flow-to-model/spec-processors.d.ts +0 -34
  128. package/dist/src/transformers/flow-to-model/spec-processors.d.ts.map +0 -1
  129. package/dist/src/transformers/flow-to-model/spec-processors.js +0 -395
  130. package/dist/src/transformers/flow-to-model/spec-processors.js.map +0 -1
  131. package/dist/src/transformers/flow-to-model/strings.d.ts +0 -2
  132. package/dist/src/transformers/flow-to-model/strings.d.ts.map +0 -1
  133. package/dist/src/transformers/flow-to-model/strings.js +0 -11
  134. package/dist/src/transformers/flow-to-model/strings.js.map +0 -1
  135. package/dist/src/transformers/flow-to-model/type-inference.d.ts +0 -3
  136. package/dist/src/transformers/flow-to-model/type-inference.d.ts.map +0 -1
  137. package/dist/src/transformers/flow-to-model/type-inference.js +0 -92
  138. package/dist/src/transformers/flow-to-model/type-inference.js.map +0 -1
  139. package/dist/src/transformers/flow-to-model/type-inference.specs.d.ts +0 -2
  140. package/dist/src/transformers/flow-to-model/type-inference.specs.d.ts.map +0 -1
  141. package/dist/src/transformers/flow-to-model/type-inference.specs.js +0 -167
  142. package/dist/src/transformers/flow-to-model/type-inference.specs.js.map +0 -1
  143. package/dist/src/transformers/flow-to-model/zod-adapter.d.ts +0 -6
  144. package/dist/src/transformers/flow-to-model/zod-adapter.d.ts.map +0 -1
  145. package/dist/src/transformers/flow-to-model/zod-adapter.js +0 -101
  146. package/dist/src/transformers/flow-to-model/zod-adapter.js.map +0 -1
  147. package/dist/src/transformers/model-to-flow/analysis/extract-flow.d.ts +0 -2
  148. package/dist/src/transformers/model-to-flow/analysis/extract-flow.d.ts.map +0 -1
  149. package/dist/src/transformers/model-to-flow/analysis/extract-flow.js +0 -22
  150. package/dist/src/transformers/model-to-flow/analysis/extract-flow.js.map +0 -1
  151. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.d.ts +0 -18
  152. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.d.ts.map +0 -1
  153. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.js +0 -78
  154. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.js.map +0 -1
  155. package/dist/src/transformers/model-to-flow/analysis/type-decls.d.ts +0 -7
  156. package/dist/src/transformers/model-to-flow/analysis/type-decls.d.ts.map +0 -1
  157. package/dist/src/transformers/model-to-flow/analysis/type-decls.js +0 -74
  158. package/dist/src/transformers/model-to-flow/analysis/type-decls.js.map +0 -1
  159. package/dist/src/transformers/model-to-flow/analysis/usage.d.ts +0 -9
  160. package/dist/src/transformers/model-to-flow/analysis/usage.d.ts.map +0 -1
  161. package/dist/src/transformers/model-to-flow/analysis/usage.js +0 -90
  162. package/dist/src/transformers/model-to-flow/analysis/usage.js.map +0 -1
  163. package/dist/src/transformers/model-to-flow/ast/emit-helpers.d.ts +0 -18
  164. package/dist/src/transformers/model-to-flow/ast/emit-helpers.d.ts.map +0 -1
  165. package/dist/src/transformers/model-to-flow/ast/emit-helpers.js +0 -159
  166. package/dist/src/transformers/model-to-flow/ast/emit-helpers.js.map +0 -1
  167. package/dist/src/transformers/model-to-flow/formatting/prettier.d.ts +0 -2
  168. package/dist/src/transformers/model-to-flow/formatting/prettier.d.ts.map +0 -1
  169. package/dist/src/transformers/model-to-flow/formatting/prettier.js +0 -26
  170. package/dist/src/transformers/model-to-flow/formatting/prettier.js.map +0 -1
  171. package/dist/src/transformers/model-to-flow/formatting/sort-types.d.ts +0 -6
  172. package/dist/src/transformers/model-to-flow/formatting/sort-types.d.ts.map +0 -1
  173. package/dist/src/transformers/model-to-flow/formatting/sort-types.js +0 -17
  174. package/dist/src/transformers/model-to-flow/formatting/sort-types.js.map +0 -1
  175. package/dist/src/transformers/model-to-flow/generators/compose.d.ts +0 -6
  176. package/dist/src/transformers/model-to-flow/generators/compose.d.ts.map +0 -1
  177. package/dist/src/transformers/model-to-flow/generators/compose.js +0 -79
  178. package/dist/src/transformers/model-to-flow/generators/compose.js.map +0 -1
  179. package/dist/src/transformers/model-to-flow/generators/flow.d.ts +0 -15
  180. package/dist/src/transformers/model-to-flow/generators/flow.d.ts.map +0 -1
  181. package/dist/src/transformers/model-to-flow/generators/flow.js +0 -316
  182. package/dist/src/transformers/model-to-flow/generators/flow.js.map +0 -1
  183. package/dist/src/transformers/model-to-flow/generators/gwt.d.ts +0 -57
  184. package/dist/src/transformers/model-to-flow/generators/gwt.d.ts.map +0 -1
  185. package/dist/src/transformers/model-to-flow/generators/gwt.js +0 -186
  186. package/dist/src/transformers/model-to-flow/generators/gwt.js.map +0 -1
  187. package/dist/src/transformers/model-to-flow/generators/imports.d.ts +0 -16
  188. package/dist/src/transformers/model-to-flow/generators/imports.d.ts.map +0 -1
  189. package/dist/src/transformers/model-to-flow/generators/imports.js +0 -57
  190. package/dist/src/transformers/model-to-flow/generators/imports.js.map +0 -1
  191. package/dist/src/transformers/model-to-flow/generators/types.d.ts +0 -13
  192. package/dist/src/transformers/model-to-flow/generators/types.d.ts.map +0 -1
  193. package/dist/src/transformers/model-to-flow/generators/types.js +0 -22
  194. package/dist/src/transformers/model-to-flow/generators/types.js.map +0 -1
  195. package/dist/src/transformers/model-to-flow/index.d.ts +0 -13
  196. package/dist/src/transformers/model-to-flow/index.d.ts.map +0 -1
  197. package/dist/src/transformers/model-to-flow/index.js +0 -25
  198. package/dist/src/transformers/model-to-flow/index.js.map +0 -1
  199. package/dist/src/transformers/model-to-flow/utils/integration-extractor.d.ts +0 -12
  200. package/dist/src/transformers/model-to-flow/utils/integration-extractor.d.ts.map +0 -1
  201. package/dist/src/transformers/model-to-flow/utils/integration-extractor.js +0 -64
  202. package/dist/src/transformers/model-to-flow/utils/integration-extractor.js.map +0 -1
  203. package/dist/src/transformers/model-to-flow/utils/strings.d.ts +0 -9
  204. package/dist/src/transformers/model-to-flow/utils/strings.d.ts.map +0 -1
  205. package/dist/src/transformers/model-to-flow/utils/strings.js +0 -11
  206. package/dist/src/transformers/model-to-flow/utils/strings.js.map +0 -1
  207. /package/src/samples/{items.flow.ts → items.narrative.ts} +0 -0
  208. /package/src/samples/{mixed-given-types.flow.ts → mixed-given-types.narrative.ts} +0 -0
  209. /package/src/samples/{questionnaires.flow.ts → questionnaires.narrative.ts} +0 -0
  210. /package/src/samples/{test-with-ids.flow.ts → test-with-ids.narrative.ts} +0 -0
@@ -1,185 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest';
2
- import { flow, example, rule, specs } from './narrative.js';
3
- import { command } from './fluent-builder.js';
4
- describe('Context Parameter Support', () => {
5
- beforeEach(async () => {
6
- // Clean test state before each test
7
- });
8
- it('should support context parameter in given() method', () => {
9
- expect(() => {
10
- flow('test flow with context', () => {
11
- command('test command').server(() => {
12
- specs(() => {
13
- rule('test rule with context', () => {
14
- example('given with context')
15
- .given({
16
- questionnaireId: 'q-001',
17
- participantId: 'participant-abc',
18
- link: 'https://app.example.com/q/q-001?participant=participant-abc',
19
- sentAt: new Date('2030-01-01T09:00:00Z'),
20
- }, {
21
- sentAt: 'comes from the system clock',
22
- questionnaireId: 'must be a valid questionnaire ID',
23
- link: 'generated based on questionnaire and participant',
24
- })
25
- .when({
26
- questionnaireId: 'q-001',
27
- participantId: 'participant-abc',
28
- questionId: 'q1',
29
- answer: 'Yes',
30
- savedAt: new Date('2030-01-01T09:05:00Z'),
31
- })
32
- .then({
33
- questionnaireId: 'q-001',
34
- participantId: 'participant-abc',
35
- status: 'in_progress',
36
- currentQuestionId: 'q2',
37
- remainingQuestions: ['q2'],
38
- answers: [{ questionId: 'q1', value: 'Yes' }],
39
- });
40
- });
41
- });
42
- });
43
- });
44
- }).not.toThrow();
45
- });
46
- it('should support context parameter in when() method', () => {
47
- expect(() => {
48
- flow('test flow with when context', () => {
49
- command('test command').server(() => {
50
- specs(() => {
51
- rule('test rule', () => {
52
- example('when with context')
53
- .given({
54
- questionnaireId: 'q-001',
55
- participantId: 'participant-abc',
56
- link: 'https://app.example.com/q/q-001?participant=participant-abc',
57
- sentAt: new Date('2030-01-01T09:00:00Z'),
58
- })
59
- .when({
60
- questionnaireId: 'q-001',
61
- participantId: 'participant-abc',
62
- questionId: 'q1',
63
- answer: 'Yes',
64
- savedAt: new Date('2030-01-01T09:05:00Z'),
65
- }, {
66
- answer: 'must be validated according to the question type',
67
- savedAt: 'timestamp when the answer was saved',
68
- })
69
- .then({
70
- questionnaireId: 'q-001',
71
- participantId: 'participant-abc',
72
- status: 'in_progress',
73
- currentQuestionId: 'q2',
74
- remainingQuestions: ['q2'],
75
- answers: [{ questionId: 'q1', value: 'Yes' }],
76
- });
77
- });
78
- });
79
- });
80
- });
81
- }).not.toThrow();
82
- });
83
- it('should support context parameter in then() method', () => {
84
- expect(() => {
85
- flow('test flow with then context', () => {
86
- command('test command').server(() => {
87
- specs(() => {
88
- rule('test rule', () => {
89
- example('then with context')
90
- .given({
91
- questionnaireId: 'q-001',
92
- participantId: 'participant-abc',
93
- link: 'https://app.example.com/q/q-001?participant=participant-abc',
94
- sentAt: new Date('2030-01-01T09:00:00Z'),
95
- })
96
- .when({
97
- questionnaireId: 'q-001',
98
- participantId: 'participant-abc',
99
- questionId: 'q1',
100
- answer: 'Yes',
101
- savedAt: new Date('2030-01-01T09:05:00Z'),
102
- })
103
- .then({
104
- questionnaireId: 'q-001',
105
- participantId: 'participant-abc',
106
- status: 'in_progress',
107
- currentQuestionId: 'q2',
108
- remainingQuestions: ['q2'],
109
- answers: [{ questionId: 'q1', value: 'Yes' }],
110
- }, {
111
- answers: 'computed from the answered questions',
112
- status: 'calculated based on completed questions',
113
- currentQuestionId: 'next question to be answered',
114
- });
115
- });
116
- });
117
- });
118
- });
119
- }).not.toThrow();
120
- });
121
- it('should preserve context data in schema output', async () => {
122
- // This test would require a proper file system setup to work with getNarratives
123
- // For now, we'll just test that the methods accept context parameters
124
- expect(() => {
125
- flow('test context preservation', () => {
126
- command('test preservation').server(() => {
127
- specs(() => {
128
- rule('context preservation rule', () => {
129
- example('context should be preserved')
130
- .given({
131
- questionnaireId: 'q-001',
132
- participantId: 'participant-abc',
133
- link: 'https://app.example.com/q/q-001?participant=participant-abc',
134
- sentAt: new Date('2030-01-01T09:00:00Z'),
135
- }, {
136
- sentAt: 'comes from the system clock',
137
- questionnaireId: 'validated questionnaire identifier',
138
- })
139
- .when({
140
- questionnaireId: 'q-001',
141
- participantId: 'participant-abc',
142
- questionId: 'q1',
143
- answer: 'Yes',
144
- savedAt: new Date('2030-01-01T09:05:00Z'),
145
- })
146
- .then({
147
- questionnaireId: 'q-001',
148
- participantId: 'participant-abc',
149
- status: 'in_progress',
150
- currentQuestionId: 'q2',
151
- remainingQuestions: ['q2'],
152
- answers: [{ questionId: 'q1', value: 'Yes' }],
153
- });
154
- });
155
- });
156
- });
157
- });
158
- }).not.toThrow();
159
- });
160
- // These tests should fail with TypeScript compilation errors
161
- // Commenting out for now - they will be used to verify strict typing works
162
- /*
163
- it('should reject invalid context fields (compilation test)', () => {
164
- // This should cause a TypeScript error - invalidField is not in QuestionnaireLinkSent
165
- flow('invalid context test', () => {
166
- command('test').server(() => {
167
- specs(() => {
168
- rule('test rule', () => {
169
- example('invalid context')
170
- .given<QuestionnaireLinkSent>({
171
- questionnaireId: 'q-001',
172
- participantId: 'participant-abc',
173
- link: 'https://app.example.com',
174
- sentAt: new Date(),
175
- }, {
176
- invalidField: 'this should cause a type error' // TypeScript error expected
177
- });
178
- });
179
- });
180
- });
181
- });
182
- });
183
- */
184
- });
185
- //# sourceMappingURL=flow-context.specs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-context.specs.js","sourceRoot":"","sources":["../../src/flow-context.specs.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { Flow } from './index';
2
- declare class FlowRegistry {
3
- private flows;
4
- private instanceId;
5
- constructor();
6
- register(flow: Flow): void;
7
- getAllFlows(): Flow[];
8
- clearAll(): void;
9
- }
10
- export declare const registry: FlowRegistry;
11
- export {};
12
- //# sourceMappingURL=flow-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-registry.d.ts","sourceRoot":"","sources":["../../src/flow-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAU/B,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAA2C;;IAM7D,QAAQ,CAAC,IAAI,EAAE,IAAI;IAiBnB,WAAW,IAAI,IAAI,EAAE;IAcrB,QAAQ;CAYT;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
@@ -1,46 +0,0 @@
1
- import { FlowSchema } from './schema.js';
2
- import createDebug from 'debug';
3
- const debug = createDebug('auto:flow:registry');
4
- // Set non-error-like colors for debug namespace
5
- // Colors: 0=gray, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan
6
- if ('color' in debug && typeof debug === 'object') {
7
- debug.color = '6'; // cyan
8
- }
9
- class FlowRegistry {
10
- constructor() {
11
- this.flows = [];
12
- this.instanceId = Math.random().toString(36).substring(7);
13
- debug('Creating new FlowRegistry instance: %s', this.instanceId);
14
- }
15
- register(flow) {
16
- debug('Registering flow: %s on instance %s', flow.name, this.instanceId);
17
- debug('Flow slices: %d', flow.slices.length);
18
- debug('Flows array before push: %d', this.flows.length);
19
- debug('Array object ID before: %s', this.flows);
20
- const validated = FlowSchema.parse(flow);
21
- this.flows.push(validated);
22
- debug('Flows array after push: %d', this.flows.length);
23
- debug('Array object ID after: %s', this.flows);
24
- debug('Successfully registered flow: %s on instance %s, total flows: %d', flow.name, this.instanceId, this.flows.length);
25
- }
26
- getAllFlows() {
27
- debug('Getting all flows, count: %d', this.flows.length);
28
- debug('Registry instance ID: %s', this.instanceId);
29
- debug('Array object ID: %s', this.flows);
30
- debug('this === registry? %s', this === registry);
31
- if (this.flows.length > 0) {
32
- debug('Flows: %o', this.flows.map((f) => f.name));
33
- }
34
- return [...this.flows];
35
- }
36
- clearAll() {
37
- debug('Clearing all flows on instance %s, current count: %d', this.instanceId, this.flows.length);
38
- if (this.flows.length > 0) {
39
- debug('Clearing flows on instance %s: %o', this.instanceId, this.flows.map((f) => f.name));
40
- }
41
- this.flows = [];
42
- debug('Cleared! Instance %s now has %d flows', this.instanceId, this.flows.length);
43
- }
44
- }
45
- export const registry = new FlowRegistry();
46
- //# sourceMappingURL=flow-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-registry.js","sourceRoot":"","sources":["../../src/flow-registry.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- import type { DataItem } from './types';
2
- export declare function flow(name: string, fn: () => void): void;
3
- export declare function flow(name: string, id: string, fn: () => void): void;
4
- export declare const client: (fn: () => void) => void;
5
- export declare const server: (fn: () => void) => void;
6
- export declare const request: (_query: unknown) => {
7
- with: (..._dependencies: unknown[]) => void;
8
- };
9
- export declare const should: (description: string) => void;
10
- export declare function specs(description: string, fn: () => void): void;
11
- export declare function specs(fn: () => void): void;
12
- export declare function rule(description: string, fn: () => void): void;
13
- export declare function rule(description: string, id: string, fn: () => void): void;
14
- export declare const example: (description: string) => TypedExampleBuilder;
15
- type ExtractData<T> = T extends {
16
- data: infer D;
17
- } ? D : T;
18
- type ContextFor<T> = Partial<Record<keyof ExtractData<T>, string>>;
19
- interface TypedExampleBuilder {
20
- given<T>(data: ExtractData<T> | ExtractData<T>[], context?: ContextFor<T>): TypedGivenBuilder<T>;
21
- when<W>(data: ExtractData<W> | ExtractData<W>[], context?: ContextFor<W>): TypedWhenBuilder<W>;
22
- }
23
- interface TypedGivenBuilder<G> {
24
- and<U>(data: ExtractData<U> | ExtractData<U>[], context?: ContextFor<U>): TypedGivenBuilder<G | U>;
25
- when<W>(data: ExtractData<W> | ExtractData<W>[], context?: ContextFor<W>): TypedGivenWhenBuilder<G, W>;
26
- }
27
- interface TypedWhenBuilder<W> {
28
- then<T>(data: ExtractData<T> | ExtractData<T>[], context?: ContextFor<T>): TypedThenBuilder<W, T>;
29
- }
30
- interface TypedGivenWhenBuilder<G, W> {
31
- then<T>(data: ExtractData<T> | ExtractData<T>[], context?: ContextFor<T>): TypedGivenThenBuilder<G, W, T>;
32
- }
33
- interface TypedThenBuilder<W, T> {
34
- and<A>(data: ExtractData<A> | ExtractData<A>[], context?: ContextFor<A>): TypedThenBuilder<W, T | A>;
35
- }
36
- interface TypedGivenThenBuilder<G, W, T> {
37
- and<A>(data: ExtractData<A> | ExtractData<A>[], context?: ContextFor<A>): TypedGivenThenBuilder<G, W, T | A>;
38
- }
39
- export declare const SliceType: {
40
- readonly COMMAND: "command";
41
- readonly QUERY: "query";
42
- readonly REACT: "react";
43
- };
44
- export interface SliceTypeValueInterface {
45
- readonly value: 'command' | 'query' | 'react';
46
- }
47
- export declare function data(items: DataItem[]): void;
48
- export {};
49
- //# sourceMappingURL=flow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQxC,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AACzD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AAerE,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,IAAI,SAOpC,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,IAAI,SAOpC,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,QAAQ,OAAO;6BACZ,OAAO,EAAE;CAClC,CAAC;AAEH,eAAO,MAAM,MAAM,GAAI,aAAa,MAAM,SAEzC,CAAC;AAEF,wBAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AACjE,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AAU5C,wBAAgB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AAChE,wBAAgB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AAa5E,eAAO,MAAM,OAAO,GAAI,aAAa,MAAM,wBAG1C,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1D,KAAK,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAenE,UAAU,mBAAmB;IAC3B,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACjG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAChG;AAED,UAAU,iBAAiB,CAAC,CAAC;IAC3B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACxG;AAED,UAAU,gBAAgB,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACnG;AAED,UAAU,qBAAqB,CAAC,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3G;AAED,UAAU,gBAAgB,CAAC,CAAC,EAAE,CAAC;IAC7B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtG;AAED,UAAU,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACrC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9G;AAqED,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;CAC/C;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAc5C"}
package/dist/src/flow.js DELETED
@@ -1,146 +0,0 @@
1
- import { registry } from './flow-registry.js';
2
- import { startFlow, clearCurrentFlow, getCurrentSlice, startClientBlock, endClientBlock, startServerBlock, endServerBlock, pushSpec, recordShouldBlock, setSliceData, recordRule, recordExample, recordGivenData, recordAndGivenData, recordWhenData, recordThenData, recordAndThenData, } from './flow-context.js';
3
- import createDebug from 'debug';
4
- const debug = createDebug('auto:flow:flow');
5
- if ('color' in debug && typeof debug === 'object') {
6
- debug.color = '6';
7
- } // cyan
8
- export function flow(name, idOrFn, fn) {
9
- const id = typeof idOrFn === 'string' ? idOrFn : undefined;
10
- const callback = typeof idOrFn === 'function' ? idOrFn : fn;
11
- debug('Starting flow definition: %s', name);
12
- const flowObj = startFlow(name, id);
13
- debug('Executing flow function for: %s', name);
14
- callback();
15
- debug('Flow function executed, registering flow: %s with %d slices', name, flowObj.slices.length);
16
- registry.register(flowObj);
17
- clearCurrentFlow();
18
- debug('Flow registered and context cleared: %s', name);
19
- }
20
- export const client = (fn) => {
21
- const slice = getCurrentSlice();
22
- if (slice) {
23
- startClientBlock(slice, '');
24
- fn();
25
- endClientBlock();
26
- }
27
- };
28
- export const server = (fn) => {
29
- const slice = getCurrentSlice();
30
- if (slice) {
31
- startServerBlock(slice, '');
32
- fn();
33
- endServerBlock();
34
- }
35
- };
36
- export const request = (_query) => ({
37
- with: (..._dependencies) => { },
38
- });
39
- export const should = (description) => {
40
- recordShouldBlock(description);
41
- };
42
- export function specs(descriptionOrFn, fn) {
43
- const description = typeof descriptionOrFn === 'string' ? descriptionOrFn : '';
44
- const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
45
- pushSpec(description);
46
- recordShouldBlock();
47
- callback();
48
- }
49
- export function rule(description, idOrFn, fn) {
50
- const id = typeof idOrFn === 'string' ? idOrFn : undefined;
51
- const callback = typeof idOrFn === 'function' ? idOrFn : fn;
52
- if (!callback) {
53
- throw new Error(`rule() requires a callback function. Got: ${typeof idOrFn}, ${typeof fn}`);
54
- }
55
- recordRule(description, id);
56
- callback();
57
- }
58
- export const example = (description) => {
59
- recordExample(description);
60
- return createExampleBuilder();
61
- };
62
- function normalizeContext(context) {
63
- if (!context)
64
- return undefined;
65
- const filtered = {};
66
- for (const [key, value] of Object.entries(context)) {
67
- if (value !== undefined) {
68
- filtered[key] = value;
69
- }
70
- }
71
- return Object.keys(filtered).length > 0 ? filtered : undefined;
72
- }
73
- function createThenBuilder() {
74
- return {
75
- and(data, context) {
76
- const andItems = Array.isArray(data) ? data : [data];
77
- recordAndThenData(andItems, normalizeContext(context));
78
- return createThenBuilder();
79
- },
80
- };
81
- }
82
- function createGivenBuilder() {
83
- return {
84
- and(data, context) {
85
- const andItems = Array.isArray(data) ? data : [data];
86
- recordAndGivenData(andItems, normalizeContext(context));
87
- return createGivenBuilder();
88
- },
89
- when(data, context) {
90
- const whenData = Array.isArray(data) ? data : [data];
91
- recordWhenData(whenData.length === 1 ? whenData[0] : whenData, normalizeContext(context));
92
- return {
93
- then(data, context) {
94
- const thenItems = Array.isArray(data) ? data : [data];
95
- recordThenData(thenItems, normalizeContext(context));
96
- return {
97
- and(data, context) {
98
- const andItems = Array.isArray(data) ? data : [data];
99
- recordAndThenData(andItems, normalizeContext(context));
100
- return createThenBuilder();
101
- },
102
- };
103
- },
104
- };
105
- },
106
- };
107
- }
108
- function createExampleBuilder() {
109
- return {
110
- given(data, context) {
111
- const items = Array.isArray(data) ? data : [data];
112
- recordGivenData(items, normalizeContext(context));
113
- return createGivenBuilder();
114
- },
115
- when(data, context) {
116
- const whenData = Array.isArray(data) ? data : [data];
117
- recordWhenData(whenData.length === 1 ? whenData[0] : whenData, normalizeContext(context));
118
- return {
119
- then(data, context) {
120
- const thenItems = Array.isArray(data) ? data : [data];
121
- recordThenData(thenItems, normalizeContext(context));
122
- return createThenBuilder();
123
- },
124
- };
125
- },
126
- };
127
- }
128
- export const SliceType = {
129
- COMMAND: 'command',
130
- QUERY: 'query',
131
- REACT: 'react',
132
- };
133
- export function data(items) {
134
- const slice = getCurrentSlice();
135
- if (!slice)
136
- throw new Error('No active slice for data configuration');
137
- const sliceType = slice.type;
138
- if (sliceType === SliceType.QUERY) {
139
- const hasSink = items.some((item) => '__type' in item && item.__type === 'sink');
140
- if (hasSink) {
141
- throw new Error('Query slices cannot have data sinks, only sources');
142
- }
143
- }
144
- setSliceData(items);
145
- }
146
- //# sourceMappingURL=flow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { Flow, Model } from './index';
2
- import type { IFileStore } from '@auto-engineer/file-store';
3
- export interface GetFlowsOptions {
4
- vfs: IFileStore;
5
- root: string;
6
- pattern?: RegExp;
7
- importMap?: Record<string, unknown>;
8
- fastFsScan?: boolean;
9
- }
10
- export declare const getFlows: (opts: GetFlowsOptions) => Promise<{
11
- flows: Flow[];
12
- vfsFiles: string[];
13
- externals: string[];
14
- typings: Record<string, string[]>;
15
- typeMap: Map<string, string>;
16
- typesByFile: Map<string, Map<string, unknown>>;
17
- givenTypesByFile: Map<string, unknown[]>;
18
- toModel: () => Model;
19
- }>;
20
- export declare const clearGetFlowsCache: () => void;
21
- //# sourceMappingURL=getFlows.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFlows.d.ts","sourceRoot":"","sources":["../../src/getFlows.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAyC5D,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA8DD,eAAO,MAAM,QAAQ,GACnB,MAAM,eAAe,KACpB,OAAO,CAAC;IACT,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,KAAK,CAAC;CACtB,CAwDA,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,IAGrC,CAAC"}
@@ -1,119 +0,0 @@
1
- import createDebug from 'debug';
2
- import { registry } from './flow-registry.js';
3
- import { flowsToModel } from './transformers/flow-to-model/index.js';
4
- import { executeAST } from './loader/index.js';
5
- import { sha256 } from 'js-sha256';
6
- const dirnamePosix = (p) => {
7
- const s = p.replace(/\/+$/, '');
8
- const i = s.lastIndexOf('/');
9
- return i > 0 ? s.slice(0, i) : '/';
10
- };
11
- const debug = createDebug('auto:flow:getFlows');
12
- const toPosix = (p) => p.replace(/\\/g, '/');
13
- const DEFAULT_PATTERN = /\.(flow|integration)\.(ts|tsx|js|jsx|mjs|cjs)$/;
14
- const DEFAULT_IGNORE_DIRS = /(?:^|\/)(?:node_modules|dist|\.turbo|\.git)(?:\/|$)/;
15
- const DTS_PATTERN = /\.d\.ts$/;
16
- const CACHE_VERSION = 'v1';
17
- function stableStringify(obj) {
18
- const keys = Object.keys(obj).sort();
19
- return JSON.stringify(keys.reduce((a, k) => ((a[k] = obj[k]), a), {}));
20
- }
21
- function toUint8(view) {
22
- return view instanceof Uint8Array ? view : new Uint8Array(view);
23
- }
24
- async function hashFiles(vfs, files) {
25
- const sorted = [...new Set(files)].sort();
26
- const hasher = sha256.create();
27
- const enc = new TextEncoder();
28
- for (const f of sorted) {
29
- hasher.update(enc.encode(f));
30
- const buf = await vfs.read(f);
31
- if (buf)
32
- hasher.update(toUint8(buf));
33
- }
34
- return hasher.hex();
35
- }
36
- const compilationCache = new Map();
37
- async function discoverFiles(vfs, root, pattern, fastScan) {
38
- const entries = await vfs.listTree(root, {
39
- includeSizes: false,
40
- followSymlinkDirs: !fastScan,
41
- pruneDirRegex: DEFAULT_IGNORE_DIRS,
42
- });
43
- const files = entries
44
- .filter((e) => e.type === 'file')
45
- .map((e) => toPosix(e.path))
46
- .filter((p) => !DEFAULT_IGNORE_DIRS.test(p))
47
- .filter((p) => !DTS_PATTERN.test(p))
48
- .filter((p) => pattern.test(p))
49
- .sort();
50
- debug('discover: root=%s pattern=%s matched=%d', root, String(pattern), files.length);
51
- return files;
52
- }
53
- async function validateCache(cached, seedFiles, vfs) {
54
- const prevGraphFiles = cached.result.vfsFiles;
55
- const seedSet = new Set(seedFiles);
56
- const prevSet = new Set(prevGraphFiles);
57
- const hasNewFiles = seedFiles.some((f) => !prevSet.has(f));
58
- const hasRemovedFiles = prevGraphFiles.some((f) => !seedSet.has(f));
59
- if (hasNewFiles || hasRemovedFiles) {
60
- debug('cache invalidated (file list changed: +%d -%d)', hasNewFiles ? 1 : 0, hasRemovedFiles ? 1 : 0);
61
- return null;
62
- }
63
- const prevHash = await hashFiles(vfs, prevGraphFiles);
64
- if (prevHash === cached.contentHash) {
65
- debug('cache hit (graph unchanged)');
66
- return cached.result;
67
- }
68
- debug('cache invalidated (graph changed)');
69
- return null;
70
- }
71
- export const getFlows = async (opts) => {
72
- const { vfs, root, pattern = DEFAULT_PATTERN, importMap = {} } = opts;
73
- const normRoot = toPosix(root);
74
- const projectRoot = dirnamePosix(normRoot);
75
- const seedFiles = await discoverFiles(vfs, normRoot, pattern, opts.fastFsScan === undefined ? false : opts.fastFsScan);
76
- if (seedFiles.length === 0) {
77
- debug('no candidate files found. root=%s pattern=%s', normRoot, String(pattern));
78
- return {
79
- flows: [],
80
- vfsFiles: [],
81
- externals: [],
82
- typings: {},
83
- typeMap: new Map(),
84
- typesByFile: new Map(),
85
- givenTypesByFile: new Map(),
86
- toModel: () => ({ variant: 'specs', flows: [], messages: [] }),
87
- };
88
- }
89
- const cacheKey = [CACHE_VERSION, normRoot, String(pattern), stableStringify(importMap)].join('|');
90
- const cached = compilationCache.get(cacheKey);
91
- if (cached) {
92
- const cachedResult = await validateCache(cached, seedFiles, vfs);
93
- if (cachedResult) {
94
- return cachedResult;
95
- }
96
- }
97
- registry.clearAll();
98
- const exec = await executeAST(seedFiles, vfs, importMap, projectRoot);
99
- const flows = registry.getAllFlows();
100
- const result = {
101
- flows,
102
- vfsFiles: exec.vfsFiles, // absolute posix paths of all VFS modules in the graph
103
- externals: exec.externals, // external specifiers used
104
- typings: exec.typings, // { pkgName: [abs d.ts paths] }
105
- typeMap: exec.typeMap, // mapping from TypeScript type names to string literals
106
- typesByFile: exec.typesByFile, // mapping from file path to type definitions in that file
107
- givenTypesByFile: exec.givenTypesByFile, // mapping from file path to given type info
108
- toModel: () => flowsToModel(flows, exec.typesByFile),
109
- };
110
- const contentHash = await hashFiles(vfs, exec.vfsFiles);
111
- compilationCache.set(cacheKey, { result, contentHash });
112
- debug('cached compilation result, hash=%s', contentHash.slice(0, 8));
113
- return result;
114
- };
115
- export const clearGetFlowsCache = () => {
116
- compilationCache.clear();
117
- debug('cleared compilation cache');
118
- };
119
- //# sourceMappingURL=getFlows.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFlows.js","sourceRoot":"","sources":["../../src/getFlows.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getFlows.specs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFlows.specs.d.ts","sourceRoot":"","sources":["../../src/getFlows.specs.ts"],"names":[],"mappings":""}