@auto-engineer/server-generator-nestjs 0.20.0 → 0.21.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 (106) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +3 -3
  3. package/.turbo/turbo-build.log +0 -5
  4. package/.turbo/turbo-test.log +0 -13
  5. package/.turbo/turbo-type-check.log +0 -4
  6. package/dist/src/codegen/entity-consolidation.d.ts +0 -19
  7. package/dist/src/codegen/entity-consolidation.d.ts.map +0 -1
  8. package/dist/src/codegen/entity-consolidation.js +0 -134
  9. package/dist/src/codegen/entity-consolidation.js.map +0 -1
  10. package/dist/src/codegen/extract/commands.d.ts +0 -25
  11. package/dist/src/codegen/extract/commands.d.ts.map +0 -1
  12. package/dist/src/codegen/extract/commands.js +0 -67
  13. package/dist/src/codegen/extract/commands.js.map +0 -1
  14. package/dist/src/codegen/extract/data-sink.d.ts +0 -6
  15. package/dist/src/codegen/extract/data-sink.d.ts.map +0 -1
  16. package/dist/src/codegen/extract/data-sink.js +0 -78
  17. package/dist/src/codegen/extract/data-sink.js.map +0 -1
  18. package/dist/src/codegen/extract/events.d.ts +0 -10
  19. package/dist/src/codegen/extract/events.d.ts.map +0 -1
  20. package/dist/src/codegen/extract/events.js +0 -42
  21. package/dist/src/codegen/extract/events.js.map +0 -1
  22. package/dist/src/codegen/extract/fields.d.ts +0 -3
  23. package/dist/src/codegen/extract/fields.d.ts.map +0 -1
  24. package/dist/src/codegen/extract/fields.js +0 -9
  25. package/dist/src/codegen/extract/fields.js.map +0 -1
  26. package/dist/src/codegen/extract/graphql.d.ts +0 -14
  27. package/dist/src/codegen/extract/graphql.d.ts.map +0 -1
  28. package/dist/src/codegen/extract/graphql.js +0 -81
  29. package/dist/src/codegen/extract/graphql.js.map +0 -1
  30. package/dist/src/codegen/extract/gwt.d.ts +0 -6
  31. package/dist/src/codegen/extract/gwt.d.ts.map +0 -1
  32. package/dist/src/codegen/extract/gwt.js +0 -64
  33. package/dist/src/codegen/extract/gwt.js.map +0 -1
  34. package/dist/src/codegen/extract/imports.d.ts +0 -29
  35. package/dist/src/codegen/extract/imports.d.ts.map +0 -1
  36. package/dist/src/codegen/extract/imports.js +0 -55
  37. package/dist/src/codegen/extract/imports.js.map +0 -1
  38. package/dist/src/codegen/extract/index.d.ts +0 -10
  39. package/dist/src/codegen/extract/index.d.ts.map +0 -1
  40. package/dist/src/codegen/extract/index.js +0 -10
  41. package/dist/src/codegen/extract/index.js.map +0 -1
  42. package/dist/src/codegen/extract/messages.d.ts +0 -17
  43. package/dist/src/codegen/extract/messages.d.ts.map +0 -1
  44. package/dist/src/codegen/extract/messages.js +0 -172
  45. package/dist/src/codegen/extract/messages.js.map +0 -1
  46. package/dist/src/codegen/extract/projection.d.ts +0 -5
  47. package/dist/src/codegen/extract/projection.d.ts.map +0 -1
  48. package/dist/src/codegen/extract/projection.js +0 -44
  49. package/dist/src/codegen/extract/projection.js.map +0 -1
  50. package/dist/src/codegen/extract/query.d.ts +0 -14
  51. package/dist/src/codegen/extract/query.d.ts.map +0 -1
  52. package/dist/src/codegen/extract/query.js +0 -17
  53. package/dist/src/codegen/extract/query.js.map +0 -1
  54. package/dist/src/codegen/extract/states.d.ts +0 -5
  55. package/dist/src/codegen/extract/states.d.ts.map +0 -1
  56. package/dist/src/codegen/extract/states.js +0 -48
  57. package/dist/src/codegen/extract/states.js.map +0 -1
  58. package/dist/src/codegen/extract/step-converter.d.ts +0 -17
  59. package/dist/src/codegen/extract/step-converter.d.ts.map +0 -1
  60. package/dist/src/codegen/extract/step-converter.js +0 -82
  61. package/dist/src/codegen/extract/step-converter.js.map +0 -1
  62. package/dist/src/codegen/extract/step-types.d.ts +0 -29
  63. package/dist/src/codegen/extract/step-types.d.ts.map +0 -1
  64. package/dist/src/codegen/extract/step-types.js +0 -16
  65. package/dist/src/codegen/extract/step-types.js.map +0 -1
  66. package/dist/src/codegen/extract/type-helpers.d.ts +0 -13
  67. package/dist/src/codegen/extract/type-helpers.d.ts.map +0 -1
  68. package/dist/src/codegen/extract/type-helpers.js +0 -98
  69. package/dist/src/codegen/extract/type-helpers.js.map +0 -1
  70. package/dist/src/codegen/scaffoldFromSchema.d.ts +0 -9
  71. package/dist/src/codegen/scaffoldFromSchema.d.ts.map +0 -1
  72. package/dist/src/codegen/scaffoldFromSchema.js +0 -389
  73. package/dist/src/codegen/scaffoldFromSchema.js.map +0 -1
  74. package/dist/src/codegen/templates/command/command.ts.ejs +0 -16
  75. package/dist/src/codegen/templates/command/handler.specs.ts.ejs +0 -50
  76. package/dist/src/codegen/templates/command/handler.ts.ejs +0 -30
  77. package/dist/src/codegen/templates/command/input.ts.ejs +0 -23
  78. package/dist/src/codegen/templates/command/resolver.ts.ejs +0 -56
  79. package/dist/src/codegen/templates/entity/entity.ts.ejs +0 -35
  80. package/dist/src/codegen/templates/entity/index.ts.ejs +0 -6
  81. package/dist/src/codegen/templates/module/app-module.ts.ejs +0 -65
  82. package/dist/src/codegen/templates/module/domain-module.ts.ejs +0 -46
  83. package/dist/src/codegen/templates/query/handler.ts.ejs +0 -25
  84. package/dist/src/codegen/templates/query/query.ts.ejs +0 -1
  85. package/dist/src/codegen/templates/query/resolver.ts.ejs +0 -20
  86. package/dist/src/codegen/templates/query/type.ts.ejs +0 -24
  87. package/dist/src/codegen/types.d.ts +0 -38
  88. package/dist/src/codegen/types.d.ts.map +0 -1
  89. package/dist/src/codegen/types.js +0 -2
  90. package/dist/src/codegen/types.js.map +0 -1
  91. package/dist/src/codegen/utils/path.d.ts +0 -4
  92. package/dist/src/codegen/utils/path.d.ts.map +0 -1
  93. package/dist/src/codegen/utils/path.js +0 -18
  94. package/dist/src/codegen/utils/path.js.map +0 -1
  95. package/dist/src/commands/generate-server.d.ts +0 -28
  96. package/dist/src/commands/generate-server.d.ts.map +0 -1
  97. package/dist/src/commands/generate-server.js +0 -421
  98. package/dist/src/commands/generate-server.js.map +0 -1
  99. package/dist/src/index.d.ts +0 -3
  100. package/dist/src/index.d.ts.map +0 -1
  101. package/dist/src/index.js +0 -3
  102. package/dist/src/index.js.map +0 -1
  103. package/dist/src/shared/graphql-types.ts +0 -19
  104. package/dist/src/shared/main.ts +0 -27
  105. package/dist/src/shared/mikro-orm.config.ts +0 -18
  106. package/dist/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @auto-engineer/server-generator-nestjs
2
2
 
3
+ ## 0.21.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @auto-engineer/narrative@0.21.2
9
+
10
+ ## 0.21.0
11
+
12
+ ### Minor Changes
13
+
14
+ - Unifies ports on cli
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies []:
19
+ - @auto-engineer/narrative@0.21.0
20
+
3
21
  ## 0.20.0
4
22
 
5
23
  ### Patch Changes
package/package.json CHANGED
@@ -40,7 +40,7 @@
40
40
  "ts-node": "^10.9.2",
41
41
  "type-fest": "^4.41.0",
42
42
  "uuid": "^11.0.0",
43
- "@auto-engineer/narrative": "0.20.0"
43
+ "@auto-engineer/narrative": "0.21.2"
44
44
  },
45
45
  "publishConfig": {
46
46
  "access": "public"
@@ -52,9 +52,9 @@
52
52
  "tsx": "^4.19.2",
53
53
  "typescript": "^5.8.3",
54
54
  "vitest": "^3.2.4",
55
- "@auto-engineer/cli": "0.20.0"
55
+ "@auto-engineer/cli": "0.21.2"
56
56
  },
57
- "version": "0.20.0",
57
+ "version": "0.21.2",
58
58
  "scripts": {
59
59
  "generate:server": "tsx src/cli/index.ts",
60
60
  "-DISABLE-build": "tsc && tsx ../../scripts/fix-esm-imports.ts && rm -rf dist/src/codegen/templates && mkdir -p dist/src/codegen && cp -r src/codegen/templates dist/src/codegen/templates && cp -r src/shared dist/src",
@@ -1,5 +0,0 @@
1
-
2
- > @auto-engineer/server-generator-nestjs@0.11.16 build /Users/sam/WebstormProjects/top/auto-engineer-1/packages/server-generator-nestjs
3
- > tsc && tsx ../../scripts/fix-esm-imports.ts && rm -rf dist/src/codegen/templates && mkdir -p dist/src/codegen && cp -r src/codegen/templates dist/src/codegen/templates && cp -r src/shared dist/src
4
-
5
- Fixed ESM imports in dist/
@@ -1,13 +0,0 @@
1
-
2
- > @auto-engineer/server-generator-nestjs@0.15.0 test /Users/sam/WebstormProjects/top/auto-engineer-1/packages/server-generator-nestjs
3
- > vitest run --reporter=dot
4
-
5
-
6
- RUN v3.2.4 /Users/sam/WebstormProjects/top/auto-engineer-1/packages/server-generator-nestjs
7
-
8
-
9
- No test files found, exiting with code 0
10
-
11
- include: **/*.specs.{js,ts}
12
- exclude: **/.tmp/**, **/node_modules/**, **/dist/**, **/examples/**, **/create-auto-app/templates/**, **/*-starter/**, **/vite.config.ts
13
-
@@ -1,4 +0,0 @@
1
-
2
- > @auto-engineer/server-generator-nestjs@0.15.0 type-check /Users/sam/WebstormProjects/top/auto-engineer-1/packages/server-generator-nestjs
3
- > tsc --noEmit --project tsconfig.json
4
-
@@ -1,19 +0,0 @@
1
- import type { Narrative } from '@auto-engineer/narrative';
2
- import type { MessageDefinition } from './types.js';
3
- export interface EntityField {
4
- name: string;
5
- tsType: string;
6
- nullable: boolean;
7
- isPrimary: boolean;
8
- isEnum: boolean;
9
- enumName?: string;
10
- indexed: boolean;
11
- }
12
- export interface ConsolidatedEntity {
13
- entityName: string;
14
- tableName: string;
15
- fields: EntityField[];
16
- enumImports: string[];
17
- }
18
- export declare function consolidateEntityFields(flow: Narrative, messages: MessageDefinition[], unionToEnumName: Map<string, string>): ConsolidatedEntity;
19
- //# sourceMappingURL=entity-consolidation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-consolidation.d.ts","sourceRoot":"","sources":["../../../src/codegen/entity-consolidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAkKD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,kBAAkB,CAuBpB"}
@@ -1,134 +0,0 @@
1
- import { camelCase, pascalCase } from 'change-case';
2
- import createDebug from 'debug';
3
- import { extractMessagesFromSpecs } from './extract/index.js';
4
- const debug = createDebug('auto:server-generator-nestjs:entity');
5
- function isEnumType(tsType) {
6
- const cleanType = tsType.replace(/\s*\|\s*null\b/g, '').trim();
7
- return /^"[^"]+"(\s*\|\s*"[^"]+")+$/.test(cleanType) || /^'[^']+'(\s*\|\s*'[^']+)+$/.test(cleanType);
8
- }
9
- function detectPrimaryKeyField(fields, flowName) {
10
- const idCandidates = [`${camelCase(flowName)}Id`, 'id', `${camelCase(flowName)}ID`, 'ID'];
11
- for (const candidate of idCandidates) {
12
- const field = fields.find((f) => f.name === candidate);
13
- if (field) {
14
- return field.name;
15
- }
16
- }
17
- const stringFields = fields.filter((f) => f.tsType === 'string' && f.name.toLowerCase().includes('id'));
18
- if (stringFields.length > 0) {
19
- return stringFields[0].name;
20
- }
21
- return null;
22
- }
23
- function shouldIndexField(fieldName, tsType) {
24
- const indexableNames = ['status', 'type', 'category', 'state'];
25
- const nameLower = fieldName.toLowerCase();
26
- if (indexableNames.some((name) => nameLower.includes(name))) {
27
- return true;
28
- }
29
- if (isEnumType(tsType)) {
30
- return true;
31
- }
32
- return false;
33
- }
34
- function processFieldsFromMessages(fields, fieldMap, unionToEnumName, enumsUsed) {
35
- for (const field of fields) {
36
- if (field.name === 'now')
37
- continue;
38
- if (!fieldMap.has(field.name)) {
39
- const isEnum = isEnumType(field.tsType);
40
- const cleanType = field.tsType.replace(/\s*\|\s*null\b/g, '').trim();
41
- let enumName;
42
- if (isEnum) {
43
- const matches = cleanType.match(/'([^']+)'/g);
44
- const values = matches !== null ? matches.map((v) => v.slice(1, -1)) : [];
45
- const normalized = values
46
- .sort()
47
- .map((v) => `'${v}'`)
48
- .join(' | ');
49
- enumName = unionToEnumName.get(normalized);
50
- if (typeof enumName === 'string' && enumName.length > 0) {
51
- enumsUsed.add(enumName);
52
- }
53
- }
54
- fieldMap.set(field.name, {
55
- name: field.name,
56
- tsType: field.tsType,
57
- nullable: /\|\s*null\b/.test(field.tsType),
58
- isPrimary: false,
59
- isEnum,
60
- enumName,
61
- indexed: false,
62
- });
63
- }
64
- }
65
- }
66
- function processMessagesWithFields(messageArray, messageLabel, fieldMap, unionToEnumName, enumsUsed) {
67
- for (const msg of messageArray) {
68
- debug(' %s: %s with %d fields', messageLabel, msg.type, msg.fields.length);
69
- if (msg.fields.length > 0) {
70
- processFieldsFromMessages(msg.fields, fieldMap, unionToEnumName, enumsUsed);
71
- }
72
- }
73
- }
74
- function processCommandSlice(slice, messages, fieldMap, unionToEnumName, enumsUsed) {
75
- debug(' Processing slice: %s (type: %s)', slice.name, slice.type);
76
- const extracted = extractMessagesFromSpecs(slice, messages);
77
- processMessagesWithFields(extracted.commands, 'Command', fieldMap, unionToEnumName, enumsUsed);
78
- processMessagesWithFields(extracted.events, 'Event', fieldMap, unionToEnumName, enumsUsed);
79
- }
80
- function processQuerySlice(slice, messages, fieldMap, unionToEnumName, enumsUsed) {
81
- debug(' Processing slice: %s (type: %s)', slice.name, slice.type);
82
- const extracted = extractMessagesFromSpecs(slice, messages);
83
- processMessagesWithFields(extracted.states, 'State', fieldMap, unionToEnumName, enumsUsed);
84
- }
85
- function collectFieldsFromSlices(flow, messages, fieldMap, unionToEnumName, enumsUsed) {
86
- for (const slice of flow.slices) {
87
- if (slice.type === 'experience')
88
- continue;
89
- if (slice.type === 'command') {
90
- processCommandSlice(slice, messages, fieldMap, unionToEnumName, enumsUsed);
91
- }
92
- if (slice.type === 'query') {
93
- processQuerySlice(slice, messages, fieldMap, unionToEnumName, enumsUsed);
94
- }
95
- }
96
- }
97
- function markPrimaryKeyAndIndexes(fields, fieldMap, flowName) {
98
- const primaryKeyField = detectPrimaryKeyField(fields, flowName);
99
- if (typeof primaryKeyField === 'string' && primaryKeyField.length > 0) {
100
- const field = fieldMap.get(primaryKeyField);
101
- if (field !== undefined) {
102
- field.isPrimary = true;
103
- debug(' Detected primary key: %s', primaryKeyField);
104
- }
105
- }
106
- else {
107
- debug(' WARNING: No primary key detected for flow: %s', flowName);
108
- }
109
- for (const field of fields) {
110
- if (!field.isPrimary && shouldIndexField(field.name, field.tsType)) {
111
- field.indexed = true;
112
- debug(' Marking field for indexing: %s', field.name);
113
- }
114
- }
115
- }
116
- export function consolidateEntityFields(flow, messages, unionToEnumName) {
117
- debug('Consolidating entity fields for flow: %s', flow.name);
118
- const fieldMap = new Map();
119
- const enumsUsed = new Set();
120
- collectFieldsFromSlices(flow, messages, fieldMap, unionToEnumName, enumsUsed);
121
- const fields = Array.from(fieldMap.values());
122
- markPrimaryKeyAndIndexes(fields, fieldMap, flow.name);
123
- const entityName = pascalCase(flow.name) + 'Entity';
124
- const tableName = camelCase(flow.name) + 's';
125
- debug('Consolidated entity: %s with %d fields', entityName, fields.length);
126
- debug(' Enum imports: %o', Array.from(enumsUsed));
127
- return {
128
- entityName,
129
- tableName,
130
- fields,
131
- enumImports: Array.from(enumsUsed),
132
- };
133
- }
134
- //# sourceMappingURL=entity-consolidation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-consolidation.js","sourceRoot":"","sources":["../../../src/codegen/entity-consolidation.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type { Message, MessageDefinition } from '../types';
2
- import type { CommandExample, EventExample } from './step-types';
3
- export declare function extractCommandsFromGwt(gwtSpecs: Array<{
4
- given?: Array<EventExample | unknown>;
5
- when?: CommandExample | EventExample | unknown[];
6
- then: Array<EventExample | unknown | {
7
- errorType: string;
8
- message?: string;
9
- }>;
10
- }>, allMessages: MessageDefinition[]): {
11
- commands: Message[];
12
- commandSchemasByName: Record<string, Message>;
13
- };
14
- export declare function extractCommandsFromThen(gwtSpecs: Array<{
15
- given?: Array<EventExample | unknown>;
16
- when?: CommandExample | EventExample | unknown[];
17
- then: Array<EventExample | unknown | {
18
- errorType: string;
19
- message?: string;
20
- }>;
21
- }>, allMessages: MessageDefinition[]): {
22
- commands: Message[];
23
- commandSchemasByName: Record<string, Message>;
24
- };
25
- //# sourceMappingURL=commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAoBjE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,OAAO,EAAE,CAAC;IACjD,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E,CAAC,EACF,WAAW,EAAE,iBAAiB,EAAE,GAC/B;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAwBxE;AAgCD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,OAAO,EAAE,CAAC;IACjD,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E,CAAC,EACF,WAAW,EAAE,iBAAiB,EAAE,GAC/B;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAexE"}
@@ -1,67 +0,0 @@
1
- import { extractFieldsFromMessage } from './fields.js';
2
- function createCommandMessage(commandRef, allMessages, source) {
3
- const fields = extractFieldsFromMessage(commandRef, 'command', allMessages);
4
- if (fields.length === 0 && source === 'then') {
5
- return undefined;
6
- }
7
- return {
8
- type: commandRef,
9
- fields,
10
- source,
11
- };
12
- }
13
- export function extractCommandsFromGwt(gwtSpecs, allMessages) {
14
- const commandSchemasByName = {};
15
- const commands = gwtSpecs
16
- .map((gwt) => {
17
- const cmd = gwt.when;
18
- if (Array.isArray(cmd) ||
19
- typeof cmd !== 'object' ||
20
- cmd === null ||
21
- !('commandRef' in cmd) ||
22
- typeof cmd.commandRef !== 'string' ||
23
- !cmd.commandRef)
24
- return undefined;
25
- const command = createCommandMessage(cmd.commandRef, allMessages, 'when');
26
- if (command) {
27
- commandSchemasByName[cmd.commandRef] = command;
28
- }
29
- return command;
30
- })
31
- .filter((cmd) => cmd !== undefined);
32
- return { commands, commandSchemasByName };
33
- }
34
- function isValidCommandExample(commandExample) {
35
- return (typeof commandExample === 'object' &&
36
- commandExample !== null &&
37
- 'commandRef' in commandExample &&
38
- typeof commandExample.commandRef === 'string' &&
39
- !!commandExample.commandRef);
40
- }
41
- function processCommandExample(commandExample, commands, commandSchemasByName, allMessages) {
42
- if (!isValidCommandExample(commandExample)) {
43
- return;
44
- }
45
- const commandRef = commandExample.commandRef;
46
- if (!(commandRef in commandSchemasByName)) {
47
- const command = createCommandMessage(commandRef, allMessages, 'then');
48
- if (command) {
49
- commands.push(command);
50
- commandSchemasByName[commandRef] = command;
51
- }
52
- }
53
- }
54
- export function extractCommandsFromThen(gwtSpecs, allMessages) {
55
- const commands = [];
56
- const commandSchemasByName = {};
57
- for (const gwt of gwtSpecs) {
58
- if (!Array.isArray(gwt.then)) {
59
- continue;
60
- }
61
- for (const commandExample of gwt.then) {
62
- processCommandExample(commandExample, commands, commandSchemasByName, allMessages);
63
- }
64
- }
65
- return { commands, commandSchemasByName };
66
- }
67
- //# sourceMappingURL=commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/codegen/extract/commands.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Slice } from '@auto-engineer/narrative';
2
- export declare function getStreamFromSink(slice: Slice): {
3
- streamPattern?: string;
4
- streamId?: string;
5
- };
6
- //# sourceMappingURL=data-sink.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-sink.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/data-sink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AA2EtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB7F"}
@@ -1,78 +0,0 @@
1
- import { extractGwtSpecsFromSlice } from './step-converter.js';
2
- function resolveStreamId(stream, exampleData) {
3
- return stream.replace(/\$\{([^}]+)\}/g, (_, key) => String(exampleData?.[key] ?? 'unknown'));
4
- }
5
- function extractExampleDataFromReact(firstSpec) {
6
- if (Array.isArray(firstSpec.when)) {
7
- const firstWhen = firstSpec.when[0];
8
- return typeof firstWhen?.exampleData === 'object' && firstWhen.exampleData !== null ? firstWhen.exampleData : {};
9
- }
10
- return {};
11
- }
12
- function extractExampleDataFromCommand(firstSpec) {
13
- const then = firstSpec.then;
14
- const firstExample = then.find((t) => 'exampleData' in t);
15
- return typeof firstExample?.exampleData === 'object' && firstExample.exampleData !== null
16
- ? firstExample.exampleData
17
- : {};
18
- }
19
- function extractExampleDataFromQuery(firstSpec) {
20
- if (Array.isArray(firstSpec.when)) {
21
- const firstWhen = firstSpec.when[0];
22
- return typeof firstWhen?.exampleData === 'object' && firstWhen.exampleData !== null ? firstWhen.exampleData : {};
23
- }
24
- return {};
25
- }
26
- function extractExampleDataFromSpecs(slice, gwtSpecs) {
27
- if (gwtSpecs.length === 0) {
28
- return {};
29
- }
30
- const firstSpec = gwtSpecs[0];
31
- switch (slice.type) {
32
- case 'react':
33
- return extractExampleDataFromReact(firstSpec);
34
- case 'command':
35
- return extractExampleDataFromCommand(firstSpec);
36
- case 'query':
37
- return extractExampleDataFromQuery(firstSpec);
38
- default:
39
- return {};
40
- }
41
- }
42
- function isValidStreamSink(item) {
43
- return (typeof item === 'object' &&
44
- item !== null &&
45
- 'destination' in item &&
46
- typeof item.destination === 'object' &&
47
- item.destination !== null &&
48
- 'type' in item.destination &&
49
- item.destination.type === 'stream' &&
50
- 'pattern' in item.destination &&
51
- typeof item.destination.pattern === 'string');
52
- }
53
- function processStreamSink(item, exampleData) {
54
- if (!isValidStreamSink(item)) {
55
- return null;
56
- }
57
- const streamPattern = item.destination.pattern;
58
- const streamId = streamPattern.length > 0 ? resolveStreamId(streamPattern, exampleData) : undefined;
59
- return { streamPattern, streamId };
60
- }
61
- export function getStreamFromSink(slice) {
62
- if (!('server' in slice))
63
- return {};
64
- const gwtSpecs = extractGwtSpecsFromSlice(slice);
65
- const exampleData = extractExampleDataFromSpecs(slice, gwtSpecs);
66
- if (!('server' in slice) || slice.server == null || !('data' in slice.server) || !Array.isArray(slice.server.data)) {
67
- return {};
68
- }
69
- const serverData = slice.server.data;
70
- for (const item of serverData) {
71
- const result = processStreamSink(item, exampleData);
72
- if (result) {
73
- return result;
74
- }
75
- }
76
- return {};
77
- }
78
- //# sourceMappingURL=data-sink.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-sink.js","sourceRoot":"","sources":["../../../../src/codegen/extract/data-sink.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { Message, MessageDefinition } from '../types';
2
- import type { ReactGwtSpec } from './messages';
3
- import type { EventExample } from './step-types';
4
- export declare function extractEventsFromThen(thenItems: Array<EventExample | {
5
- errorType: string;
6
- message?: string;
7
- }>, allMessages: MessageDefinition[], currentSliceName?: string, currentFlowName?: string): Message[];
8
- export declare function extractEventsFromGiven(givenEvents: EventExample[] | undefined, allMessages: MessageDefinition[], currentSliceName?: string, currentFlowName?: string): Message[];
9
- export declare function extractEventsFromWhen(gwtSpecs: ReactGwtSpec[], allMessages: MessageDefinition[]): Message[];
10
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAyBjD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACxE,WAAW,EAAE,iBAAiB,EAAE,EAChC,gBAAgB,CAAC,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,EAAE,CAOX;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,YAAY,EAAE,GAAG,SAAS,EACvC,WAAW,EAAE,iBAAiB,EAAE,EAChC,gBAAgB,CAAC,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,EAAE,CAMX;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAO3G"}
@@ -1,42 +0,0 @@
1
- import { extractFieldsFromMessage } from './fields.js';
2
- function createEventMessage(eventRef, source, allMessages, currentSliceName, currentFlowName) {
3
- if (eventRef == null)
4
- return undefined;
5
- const fields = extractFieldsFromMessage(eventRef, 'event', allMessages);
6
- const messageDef = allMessages.find((m) => m.type === 'event' && m.name === eventRef);
7
- const metadata = messageDef?.metadata;
8
- const sourceFlowName = metadata?.sourceFlowName ?? currentFlowName;
9
- const sourceSliceName = metadata?.sourceSliceName ?? currentSliceName;
10
- return {
11
- type: eventRef,
12
- fields,
13
- source,
14
- sourceFlowName,
15
- sourceSliceName,
16
- };
17
- }
18
- export function extractEventsFromThen(thenItems, allMessages, currentSliceName, currentFlowName) {
19
- return thenItems
20
- .map((then) => {
21
- if (!('eventRef' in then))
22
- return undefined;
23
- return createEventMessage(then.eventRef, 'then', allMessages, currentSliceName, currentFlowName);
24
- })
25
- .filter((event) => event !== undefined);
26
- }
27
- export function extractEventsFromGiven(givenEvents, allMessages, currentSliceName, currentFlowName) {
28
- if (!givenEvents)
29
- return [];
30
- return givenEvents
31
- .map((given) => createEventMessage(given.eventRef, 'given', allMessages, currentSliceName, currentFlowName))
32
- .filter((event) => event !== undefined);
33
- }
34
- export function extractEventsFromWhen(gwtSpecs, allMessages) {
35
- return gwtSpecs.flatMap((gwt) => {
36
- if (!Array.isArray(gwt.when)) {
37
- return [];
38
- }
39
- return gwt.when.flatMap((eventExample) => extractEventsFromGiven([eventExample], allMessages));
40
- });
41
- }
42
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/codegen/extract/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAIpD,SAAS,kBAAkB,CACzB,QAA4B,EAC5B,MAAiC,EACjC,WAAgC,EAChC,gBAAyB,EACzB,eAAwB;IAExB,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,UAAU,EAAE,QAA6E,CAAC;IAC3G,MAAM,cAAc,GAAG,QAAQ,EAAE,cAAc,IAAI,eAAe,CAAC;IACnE,MAAM,eAAe,GAAG,QAAQ,EAAE,eAAe,IAAI,gBAAgB,CAAC;IAEtE,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,MAAM;QACN,cAAc;QACd,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAwE,EACxE,WAAgC,EAChC,gBAAyB,EACzB,eAAwB;IAExB,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,IAAI,EAAuB,EAAE;QACjC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACnG,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAoB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAuC,EACvC,WAAgC,EAChC,gBAAyB,EACzB,eAAwB;IAExB,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5B,OAAO,WAAW;SACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;SAC3G,MAAM,CAAC,CAAC,KAAK,EAAoB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAwB,EAAE,WAAgC;IAC9F,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Field, MessageDefinition } from '../types';
2
- export declare function extractFieldsFromMessage(messageName: string, messageType: 'command' | 'event' | 'state', allMessages: MessageDefinition[]): Field[];
3
- //# sourceMappingURL=fields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEzD,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EAC1C,WAAW,EAAE,iBAAiB,EAAE,GAC/B,KAAK,EAAE,CAUT"}
@@ -1,9 +0,0 @@
1
- export function extractFieldsFromMessage(messageName, messageType, allMessages) {
2
- const messageDef = allMessages.find((m) => m.type === messageType && m.name === messageName);
3
- return (messageDef?.fields?.map((f) => ({
4
- name: f.name,
5
- tsType: f.type,
6
- required: f.required ?? true,
7
- })) ?? []);
8
- }
9
- //# sourceMappingURL=fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/codegen/extract/fields.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,WAA0C,EAC1C,WAAgC;IAEhC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAE7F,OAAO,CACL,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,IAAI;QACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;KAC7B,CAAC,CAAC,IAAI,EAAE,CACV,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- export interface ParsedArg {
2
- name: string;
3
- tsType: string;
4
- graphqlType: string;
5
- nullable: boolean;
6
- }
7
- export interface ParsedGraphQlQuery {
8
- queryName: string;
9
- args: ParsedArg[];
10
- returnType: string;
11
- tsReturnType: string;
12
- }
13
- export declare function parseGraphQlRequest(request: string): ParsedGraphQlQuery;
14
- //# sourceMappingURL=graphql.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/graphql.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AA8CD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAsCvE"}
@@ -1,81 +0,0 @@
1
- import { parse, print } from 'graphql';
2
- function getTypeName(typeNode) {
3
- if (typeNode.kind === 'NamedType') {
4
- return { graphqlType: typeNode.name.value, nullable: true };
5
- }
6
- else if (typeNode.kind === 'NonNullType') {
7
- const inner = getTypeName(typeNode.type);
8
- return { ...inner, nullable: false };
9
- }
10
- else {
11
- return getTypeName(typeNode.type);
12
- }
13
- }
14
- function graphqlToTs(type) {
15
- switch (type) {
16
- case 'String':
17
- return 'string';
18
- case 'Int':
19
- case 'Float':
20
- case 'Number':
21
- return 'number';
22
- case 'Boolean':
23
- return 'boolean';
24
- case 'Date':
25
- return 'Date';
26
- default:
27
- return type;
28
- }
29
- }
30
- function convertJsonAstToSdl(request) {
31
- // Handle JSON-serialized AST
32
- if (request.startsWith('{') && request.includes('"kind"')) {
33
- try {
34
- const ast = JSON.parse(request);
35
- if (typeof ast === 'object' && ast !== null && 'kind' in ast && ast.kind === 'Document') {
36
- // Convert AST to SDL string - cast is safe here as we've validated it's a Document
37
- return print(ast);
38
- }
39
- }
40
- catch {
41
- // If parsing fails, assume it's already a GraphQL string
42
- }
43
- }
44
- return request;
45
- }
46
- export function parseGraphQlRequest(request) {
47
- const sdlRequest = convertJsonAstToSdl(request);
48
- const ast = parse(sdlRequest);
49
- const op = ast.definitions.find((d) => d.kind === 'OperationDefinition' && d.operation === 'query');
50
- if (!op)
51
- throw new Error('No query operation found');
52
- const queryName = op.name?.value;
53
- if (queryName == null)
54
- throw new Error('Query must have a name');
55
- const args = (op.variableDefinitions ?? []).map((def) => {
56
- const varName = def.variable.name.value;
57
- const { graphqlType, nullable } = getTypeName(def.type);
58
- return {
59
- name: varName,
60
- graphqlType,
61
- tsType: graphqlToTs(graphqlType),
62
- nullable,
63
- };
64
- });
65
- const field = op.selectionSet.selections[0];
66
- if (field?.kind !== 'Field' || !field.name.value) {
67
- throw new Error('Query selection must be a field');
68
- }
69
- const baseName = field.name.value;
70
- const returnType = pascalCase(baseName) + 'View';
71
- return {
72
- queryName: baseName,
73
- args,
74
- returnType,
75
- tsReturnType: `${returnType}[]`,
76
- };
77
- }
78
- function pascalCase(input) {
79
- return input.replace(/(^\w|_\w)/g, (match) => match.replace('_', '').toUpperCase());
80
- }
81
- //# sourceMappingURL=graphql.js.map