@hydranium/cli 1.0.0-next.27 → 1.0.0-next.270

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 (196) hide show
  1. package/README.md +73 -204
  2. package/bin/hydranium-cli.js +13 -0
  3. package/lib/cli-version.js.map +1 -1
  4. package/lib/cli.js +2 -1
  5. package/lib/cli.js.map +1 -1
  6. package/lib/commands/analyze-heap-args.js.map +1 -1
  7. package/lib/commands/analyze-heap.d.ts +3 -0
  8. package/lib/commands/analyze-heap.d.ts.map +1 -1
  9. package/lib/commands/analyze-heap.js +2 -1
  10. package/lib/commands/analyze-heap.js.map +1 -1
  11. package/lib/commands/ast-ground-truth-args.d.ts +3 -2
  12. package/lib/commands/ast-ground-truth-args.d.ts.map +1 -1
  13. package/lib/commands/ast-ground-truth-args.js +11 -9
  14. package/lib/commands/ast-ground-truth-args.js.map +1 -1
  15. package/lib/commands/ast-ground-truth-driver.js +2 -1
  16. package/lib/commands/ast-ground-truth-driver.js.map +1 -1
  17. package/lib/commands/ast-ground-truth.js +1 -1
  18. package/lib/commands/ast-ground-truth.js.map +1 -1
  19. package/lib/commands/generate-ast-builder.d.ts +49 -0
  20. package/lib/commands/generate-ast-builder.d.ts.map +1 -0
  21. package/lib/commands/generate-ast-builder.js +200 -0
  22. package/lib/commands/generate-ast-builder.js.map +1 -0
  23. package/lib/commands/generate-transfer-model-args.d.ts.map +1 -1
  24. package/lib/commands/generate-transfer-model-args.js +11 -1
  25. package/lib/commands/generate-transfer-model-args.js.map +1 -1
  26. package/lib/commands/generate-transfer-model-config.d.ts.map +1 -1
  27. package/lib/commands/generate-transfer-model-config.js +6 -3
  28. package/lib/commands/generate-transfer-model-config.js.map +1 -1
  29. package/lib/commands/generate-transfer-model.d.ts +9 -0
  30. package/lib/commands/generate-transfer-model.d.ts.map +1 -1
  31. package/lib/commands/generate-transfer-model.js +18 -4
  32. package/lib/commands/generate-transfer-model.js.map +1 -1
  33. package/lib/commands/harness-args.d.ts +37 -42
  34. package/lib/commands/harness-args.d.ts.map +1 -1
  35. package/lib/commands/harness-args.js +91 -27
  36. package/lib/commands/harness-args.js.map +1 -1
  37. package/lib/commands/headless-harness.d.ts +37 -20
  38. package/lib/commands/headless-harness.d.ts.map +1 -1
  39. package/lib/commands/headless-harness.js +68 -17
  40. package/lib/commands/headless-harness.js.map +1 -1
  41. package/lib/commands/init-args.js +6 -6
  42. package/lib/commands/init-args.js.map +1 -1
  43. package/lib/commands/init-prompt.d.ts.map +1 -1
  44. package/lib/commands/init-templates.d.ts +8 -10
  45. package/lib/commands/init-templates.d.ts.map +1 -1
  46. package/lib/commands/init-templates.js +260 -152
  47. package/lib/commands/init-templates.js.map +1 -1
  48. package/lib/commands/init-wizard.js +4 -4
  49. package/lib/commands/init-wizard.js.map +1 -1
  50. package/lib/commands/init-workspace.d.ts +13 -3
  51. package/lib/commands/init-workspace.d.ts.map +1 -1
  52. package/lib/commands/init-workspace.js +21 -6
  53. package/lib/commands/init-workspace.js.map +1 -1
  54. package/lib/commands/init.d.ts +16 -10
  55. package/lib/commands/init.d.ts.map +1 -1
  56. package/lib/commands/init.js +17 -15
  57. package/lib/commands/init.js.map +1 -1
  58. package/lib/commands/lint-grammar-args.d.ts +3 -2
  59. package/lib/commands/lint-grammar-args.d.ts.map +1 -1
  60. package/lib/commands/lint-grammar-args.js +13 -10
  61. package/lib/commands/lint-grammar-args.js.map +1 -1
  62. package/lib/commands/lint-grammar-driver.js +2 -1
  63. package/lib/commands/lint-grammar-driver.js.map +1 -1
  64. package/lib/commands/lint-grammar-report.js.map +1 -1
  65. package/lib/commands/lint-grammar.js +1 -1
  66. package/lib/commands/lint-grammar.js.map +1 -1
  67. package/lib/commands/measure-memory-args.d.ts +3 -2
  68. package/lib/commands/measure-memory-args.d.ts.map +1 -1
  69. package/lib/commands/measure-memory-args.js +22 -11
  70. package/lib/commands/measure-memory-args.js.map +1 -1
  71. package/lib/commands/measure-memory-driver.js +5 -3
  72. package/lib/commands/measure-memory-driver.js.map +1 -1
  73. package/lib/commands/measure-memory.js +1 -1
  74. package/lib/commands/measure-memory.js.map +1 -1
  75. package/lib/commands/model-docs-args.d.ts +4 -3
  76. package/lib/commands/model-docs-args.d.ts.map +1 -1
  77. package/lib/commands/model-docs-args.js +12 -10
  78. package/lib/commands/model-docs-args.js.map +1 -1
  79. package/lib/commands/model-docs-driver.js +2 -1
  80. package/lib/commands/model-docs-driver.js.map +1 -1
  81. package/lib/commands/model-docs.js +1 -1
  82. package/lib/commands/model-docs.js.map +1 -1
  83. package/lib/commands/projects-args.d.ts.map +1 -1
  84. package/lib/commands/projects-args.js +5 -5
  85. package/lib/commands/projects-args.js.map +1 -1
  86. package/lib/commands/projects.d.ts +3 -4
  87. package/lib/commands/projects.d.ts.map +1 -1
  88. package/lib/commands/projects.js +2 -2
  89. package/lib/commands/projects.js.map +1 -1
  90. package/lib/commands/query-args.d.ts.map +1 -1
  91. package/lib/commands/query-args.js +5 -5
  92. package/lib/commands/query-args.js.map +1 -1
  93. package/lib/commands/query.d.ts +3 -4
  94. package/lib/commands/query.d.ts.map +1 -1
  95. package/lib/commands/query.js +2 -2
  96. package/lib/commands/query.js.map +1 -1
  97. package/lib/commands/reflect-args.d.ts +3 -2
  98. package/lib/commands/reflect-args.d.ts.map +1 -1
  99. package/lib/commands/reflect-args.js +13 -10
  100. package/lib/commands/reflect-args.js.map +1 -1
  101. package/lib/commands/reflect-driver.js +2 -1
  102. package/lib/commands/reflect-driver.js.map +1 -1
  103. package/lib/commands/reflect-report.js.map +1 -1
  104. package/lib/commands/reflect.js +1 -1
  105. package/lib/commands/reflect.js.map +1 -1
  106. package/lib/commands/save-args.d.ts.map +1 -1
  107. package/lib/commands/save-args.js +6 -4
  108. package/lib/commands/save-args.js.map +1 -1
  109. package/lib/commands/save.d.ts +8 -4
  110. package/lib/commands/save.d.ts.map +1 -1
  111. package/lib/commands/save.js +31 -6
  112. package/lib/commands/save.js.map +1 -1
  113. package/lib/commands/validate-args.d.ts +3 -2
  114. package/lib/commands/validate-args.d.ts.map +1 -1
  115. package/lib/commands/validate-args.js +13 -10
  116. package/lib/commands/validate-args.js.map +1 -1
  117. package/lib/commands/validate-driver.js +2 -1
  118. package/lib/commands/validate-driver.js.map +1 -1
  119. package/lib/commands/validate-report.js.map +1 -1
  120. package/lib/commands/validate.js +1 -1
  121. package/lib/commands/validate.js.map +1 -1
  122. package/lib/commands/watch-args.d.ts.map +1 -1
  123. package/lib/commands/watch-args.js +6 -4
  124. package/lib/commands/watch-args.js.map +1 -1
  125. package/lib/commands/watch.d.ts +3 -4
  126. package/lib/commands/watch.d.ts.map +1 -1
  127. package/lib/commands/watch.js +20 -2
  128. package/lib/commands/watch.js.map +1 -1
  129. package/lib/driver-heap.d.ts +52 -0
  130. package/lib/driver-heap.d.ts.map +1 -0
  131. package/lib/driver-heap.js +51 -0
  132. package/lib/driver-heap.js.map +1 -0
  133. package/lib/index.d.ts +1 -0
  134. package/lib/index.d.ts.map +1 -1
  135. package/lib/index.js +1 -0
  136. package/lib/index.js.map +1 -1
  137. package/lib/log-level.d.ts +21 -11
  138. package/lib/log-level.d.ts.map +1 -1
  139. package/lib/log-level.js +25 -14
  140. package/lib/log-level.js.map +1 -1
  141. package/lib/spawn-data-server.d.ts +6 -1
  142. package/lib/spawn-data-server.d.ts.map +1 -1
  143. package/lib/spawn-data-server.js +2 -1
  144. package/lib/spawn-data-server.js.map +1 -1
  145. package/lib/stderr-connection-logger.d.ts +12 -0
  146. package/lib/stderr-connection-logger.d.ts.map +1 -0
  147. package/lib/stderr-connection-logger.js +16 -0
  148. package/lib/stderr-connection-logger.js.map +1 -0
  149. package/lib/testing/echo-server.js +9 -1
  150. package/lib/testing/echo-server.js.map +1 -1
  151. package/package.json +50 -39
  152. package/src/cli.ts +2 -1
  153. package/src/commands/analyze-heap.ts +4 -1
  154. package/src/commands/ast-ground-truth-args.ts +15 -12
  155. package/src/commands/ast-ground-truth-driver.ts +2 -1
  156. package/src/commands/ast-ground-truth.ts +1 -1
  157. package/src/commands/generate-ast-builder.ts +246 -0
  158. package/src/commands/generate-transfer-model-args.ts +11 -1
  159. package/src/commands/generate-transfer-model-config.ts +6 -3
  160. package/src/commands/generate-transfer-model.ts +27 -4
  161. package/src/commands/harness-args.ts +76 -31
  162. package/src/commands/headless-harness.ts +86 -26
  163. package/src/commands/init-args.ts +6 -6
  164. package/src/commands/init-templates.ts +270 -154
  165. package/src/commands/init-wizard.ts +4 -4
  166. package/src/commands/init-workspace.ts +31 -7
  167. package/src/commands/init.ts +36 -26
  168. package/src/commands/lint-grammar-args.ts +17 -13
  169. package/src/commands/lint-grammar-driver.ts +2 -1
  170. package/src/commands/lint-grammar.ts +1 -1
  171. package/src/commands/measure-memory-args.ts +27 -14
  172. package/src/commands/measure-memory-driver.ts +5 -3
  173. package/src/commands/measure-memory.ts +1 -1
  174. package/src/commands/model-docs-args.ts +16 -13
  175. package/src/commands/model-docs-driver.ts +2 -1
  176. package/src/commands/model-docs.ts +1 -1
  177. package/src/commands/projects-args.ts +5 -4
  178. package/src/commands/projects.ts +4 -6
  179. package/src/commands/query-args.ts +5 -4
  180. package/src/commands/query.ts +4 -6
  181. package/src/commands/reflect-args.ts +17 -13
  182. package/src/commands/reflect-driver.ts +2 -1
  183. package/src/commands/reflect.ts +1 -1
  184. package/src/commands/save-args.ts +6 -3
  185. package/src/commands/save.ts +47 -10
  186. package/src/commands/validate-args.ts +17 -13
  187. package/src/commands/validate-driver.ts +2 -1
  188. package/src/commands/validate.ts +1 -1
  189. package/src/commands/watch-args.ts +6 -3
  190. package/src/commands/watch.ts +28 -7
  191. package/src/driver-heap.ts +65 -0
  192. package/src/index.ts +1 -0
  193. package/src/log-level.ts +42 -14
  194. package/src/spawn-data-server.ts +14 -2
  195. package/src/stderr-connection-logger.ts +18 -0
  196. package/src/testing/echo-server.ts +11 -2
@@ -0,0 +1,49 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ import type { SourceFile } from 'ts-morph';
10
+ /** Inputs for {@link emitAstBuilder}, resolved by the transfer-model command. */
11
+ export interface EmitAstBuilderOptions {
12
+ /** Destination path for the generated builder module. */
13
+ outFile: string;
14
+ /** Path to the Langium-generated AST file the builder imports from. */
15
+ astFile: string;
16
+ /** Language id derived from the `<LanguageId>AstReflection` class name. */
17
+ languageId: string;
18
+ /** Header line naming the command that regenerates the file. */
19
+ regenCommand: string;
20
+ }
21
+ /**
22
+ * Emit a module binding {@link makeAstNodeBuilder} to a project's reflection,
23
+ * once per grammar plus once across all of them.
24
+ *
25
+ * **The binding is boilerplate with exactly one degree of freedom** — the type
26
+ * map — so hand-writing it buys nothing and goes stale the moment a grammar is
27
+ * added. Generating it is also the only way a narrowed binding can exist at all:
28
+ * the per-grammar type maps live in namespaces Langium emits only on its
29
+ * multi-language path, so a single-grammar project gets the merged binding alone
30
+ * and there is nothing to narrow.
31
+ *
32
+ * **A narrowed binding is only as narrow as its grammar's import closure.**
33
+ * Langium's per-grammar `AstType` lists everything REACHABLE from that grammar,
34
+ * so where one grammar imports all the others its map equals the project's and
35
+ * its binding checks nothing the merged one does not. The emitted doc says so at
36
+ * each declaration rather than promising a guarantee the type map cannot give.
37
+ *
38
+ * Answers `false` when the AST source declares no whole-project type alias,
39
+ * which means the file did not come from `langium generate` and the caller
40
+ * should report rather than write a module that cannot compile.
41
+ */
42
+ export declare function emitAstBuilder(astSource: SourceFile, options: EmitAstBuilderOptions): boolean;
43
+ /**
44
+ * The module text {@link emitAstBuilder} would write, or `undefined` when the
45
+ * AST source declares no whole-project type alias. Pure over its inputs, so the
46
+ * emitted shape is testable without touching a filesystem.
47
+ */
48
+ export declare function buildAstBuilderSource(astSource: SourceFile, options: EmitAstBuilderOptions): string | undefined;
49
+ //# sourceMappingURL=generate-ast-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-ast-builder.d.ts","sourceRoot":"","sources":["../../src/commands/generate-ast-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACnC,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;CACvB;AAyBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAc7F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAqB/G"}
@@ -0,0 +1,200 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ /**
12
+ * Langium declares this type alias inside each language's namespace in a
13
+ * multi-language project. Its presence is what marks a namespace as a grammar's
14
+ * type registry rather than an incidental one.
15
+ */
16
+ const NAMESPACED_AST_TYPE_NAME = 'AstType';
17
+ /** Export name of the merged, whole-project binding. */
18
+ const MERGED_EXPORT_NAME = 'astNode';
19
+ /**
20
+ * Emit a module binding {@link makeAstNodeBuilder} to a project's reflection,
21
+ * once per grammar plus once across all of them.
22
+ *
23
+ * **The binding is boilerplate with exactly one degree of freedom** — the type
24
+ * map — so hand-writing it buys nothing and goes stale the moment a grammar is
25
+ * added. Generating it is also the only way a narrowed binding can exist at all:
26
+ * the per-grammar type maps live in namespaces Langium emits only on its
27
+ * multi-language path, so a single-grammar project gets the merged binding alone
28
+ * and there is nothing to narrow.
29
+ *
30
+ * **A narrowed binding is only as narrow as its grammar's import closure.**
31
+ * Langium's per-grammar `AstType` lists everything REACHABLE from that grammar,
32
+ * so where one grammar imports all the others its map equals the project's and
33
+ * its binding checks nothing the merged one does not. The emitted doc says so at
34
+ * each declaration rather than promising a guarantee the type map cannot give.
35
+ *
36
+ * Answers `false` when the AST source declares no whole-project type alias,
37
+ * which means the file did not come from `langium generate` and the caller
38
+ * should report rather than write a module that cannot compile.
39
+ */
40
+ export function emitAstBuilder(astSource, options) {
41
+ const content = buildAstBuilderSource(astSource, options);
42
+ if (content === undefined) {
43
+ return false;
44
+ }
45
+ fs.mkdirSync(path.dirname(options.outFile), { recursive: true });
46
+ if (fs.existsSync(options.outFile) && fs.readFileSync(options.outFile, 'utf-8') === content) {
47
+ console.log('AST builder is up to date.');
48
+ return true;
49
+ }
50
+ fs.writeFileSync(options.outFile, content, 'utf-8');
51
+ console.log(`Generated: ${options.outFile}`);
52
+ return true;
53
+ }
54
+ /**
55
+ * The module text {@link emitAstBuilder} would write, or `undefined` when the
56
+ * AST source declares no whole-project type alias. Pure over its inputs, so the
57
+ * emitted shape is testable without touching a filesystem.
58
+ */
59
+ export function buildAstBuilderSource(astSource, options) {
60
+ const mergedTypeMap = `${options.languageId}AstType`;
61
+ if (!astSource.getTypeAlias(mergedTypeMap)) {
62
+ return undefined;
63
+ }
64
+ const bindings = [{ exportName: MERGED_EXPORT_NAME, typeMap: mergedTypeMap }];
65
+ for (const namespace of findGrammarNamespaces(astSource)) {
66
+ bindings.push({
67
+ exportName: builderExportName(namespace),
68
+ typeMap: `${namespace}.${NAMESPACED_AST_TYPE_NAME}`,
69
+ namespace
70
+ });
71
+ }
72
+ assertDistinctExportNames(bindings);
73
+ return renderAstBuilder(bindings, {
74
+ reflectionName: findReflectionConstName(astSource, options.languageId),
75
+ importPath: relativeImportPath(options.outFile, options.astFile),
76
+ regenCommand: options.regenCommand
77
+ });
78
+ }
79
+ /**
80
+ * Namespaces that carry a grammar's type registry, in declaration order.
81
+ *
82
+ * Keyed on the nested `AstType` alias rather than on the namespace being
83
+ * exported, because an adopter's augmentation can add namespaces to the same
84
+ * file for unrelated reasons and only the ones Langium emits per grammar have
85
+ * a type map to bind.
86
+ */
87
+ function findGrammarNamespaces(astSource) {
88
+ const names = [];
89
+ for (const module of astSource.getModules()) {
90
+ const name = module.getName();
91
+ if (name && module.getTypeAlias(NAMESPACED_AST_TYPE_NAME)) {
92
+ names.push(name);
93
+ }
94
+ }
95
+ return names;
96
+ }
97
+ /**
98
+ * `Domain` → `domainNode`. Lower-cases the leading character only, so a grammar
99
+ * named `OrderFlow` reads as `orderFlowNode` rather than losing its word break.
100
+ */
101
+ function builderExportName(namespace) {
102
+ return `${namespace.charAt(0).toLowerCase()}${namespace.slice(1)}Node`;
103
+ }
104
+ /**
105
+ * Two grammars whose names differ only in their leading character collapse to
106
+ * one export. Emitting anyway would silently drop a binding, so fail with both
107
+ * names rather than leave the caller to discover it at compile time.
108
+ */
109
+ function assertDistinctExportNames(bindings) {
110
+ const seen = new Map();
111
+ for (const binding of bindings) {
112
+ const previous = seen.get(binding.exportName);
113
+ if (previous !== undefined) {
114
+ throw new Error(`Cannot emit the AST builder: grammars '${previous}' and '${binding.namespace}' both map to the export ` +
115
+ `'${binding.exportName}'. Rename one grammar so the generated bindings stay distinct.`);
116
+ }
117
+ seen.set(binding.exportName, binding.namespace ?? MERGED_EXPORT_NAME);
118
+ }
119
+ }
120
+ /**
121
+ * Name of the const holding the project's reflection instance.
122
+ *
123
+ * Langium emits `export const reflection = new <LanguageId>AstReflection()`, but
124
+ * the const is located by its initializer rather than by that name so a renamed
125
+ * export still resolves. Falls back to the emitted default when no declaration
126
+ * matches, which keeps the output compiling against a stock Langium file.
127
+ */
128
+ function findReflectionConstName(astSource, languageId) {
129
+ const reflectionClass = `${languageId}AstReflection`;
130
+ for (const declaration of astSource.getVariableDeclarations()) {
131
+ if (declaration.getInitializer()?.getText().replace(/\s/g, '') === `new${reflectionClass}()`) {
132
+ return declaration.getName();
133
+ }
134
+ }
135
+ return 'reflection';
136
+ }
137
+ /**
138
+ * Module specifier for the AST file as seen from the generated module's own
139
+ * directory. Emitted with a `.js` extension and posix separators because the
140
+ * output is ESM TypeScript, where the specifier names the compiled sibling.
141
+ */
142
+ function relativeImportPath(outFile, astFile) {
143
+ const relative = path.relative(path.dirname(path.resolve(outFile)), path.resolve(astFile));
144
+ const posix = relative.split(path.sep).join('/').replace(/\.ts$/, '.js');
145
+ return posix.startsWith('.') ? posix : `./${posix}`;
146
+ }
147
+ function renderAstBuilder(bindings, context) {
148
+ const imported = [context.reflectionName, ...bindings.map(binding => `type ${binding.namespace ?? binding.typeMap}`)];
149
+ const out = [];
150
+ out.push('/******************************************************************************');
151
+ out.push(' * Generated from the Langium AST — DO NOT EDIT MANUALLY!');
152
+ out.push(` * ${context.regenCommand}`);
153
+ out.push(' ******************************************************************************/');
154
+ out.push('');
155
+ out.push('/* eslint-disable */');
156
+ out.push('');
157
+ out.push("import { makeAstNodeBuilder } from '@hydranium/core';");
158
+ out.push(`import { ${imported.join(', ')} } from '${context.importPath}';`);
159
+ out.push('');
160
+ // A single-grammar project has nothing to narrow to, so the merged binding is
161
+ // simply THE binding there and must not point at a sibling that was not emitted.
162
+ const narrowed = bindings.some(binding => binding.namespace !== undefined);
163
+ const guarantee = [
164
+ ' * Mandatory fields are a type error at the call site, and grammar-declared',
165
+ ' * containment arrays are materialised from reflection metadata, so a built',
166
+ ' * node carries `[]` where a cast literal would leave `undefined`.'
167
+ ];
168
+ for (const binding of bindings) {
169
+ out.push('/**');
170
+ if (binding.namespace !== undefined) {
171
+ out.push(` * AST-node factory narrowed to the '${binding.namespace}' grammar.`);
172
+ out.push(' *');
173
+ out.push(' * Narrowed by grammar REACHABILITY, not by ownership: a grammar that');
174
+ out.push(" * imports another sees that one's types too, so this binding is only as");
175
+ out.push(` * narrow as '${binding.namespace}'s import closure. Where that closure is the`);
176
+ out.push(' * whole project, it accepts exactly what the merged binding does and the');
177
+ out.push(' * choice is documentation rather than a check.');
178
+ out.push(' *');
179
+ out.push(...guarantee);
180
+ }
181
+ else if (narrowed) {
182
+ out.push(' * AST-node factory spanning every grammar in this project.');
183
+ out.push(' *');
184
+ out.push(' * Prefer the narrowed binding matching the grammar the call site works in:');
185
+ out.push(" * it rejects a type outside that grammar's import closure, which this one");
186
+ out.push(' * accepts from anywhere. Reach for this one where a call site genuinely');
187
+ out.push(' * spans grammars.');
188
+ }
189
+ else {
190
+ out.push(" * AST-node factory for this project's grammar.");
191
+ out.push(' *');
192
+ out.push(...guarantee);
193
+ }
194
+ out.push(' */');
195
+ out.push(`export const ${binding.exportName} = makeAstNodeBuilder<${binding.typeMap}>(${context.reflectionName});`);
196
+ out.push('');
197
+ }
198
+ return out.join('\n');
199
+ }
200
+ //# sourceMappingURL=generate-ast-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-ast-builder.js","sourceRoot":"","sources":["../../src/commands/generate-ast-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-transfer-model-args.d.ts","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-args.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAA6C,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5H,OAAO,EAA2C,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG7F;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAa1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,MAAM,EAAqE,CAAC;AAEvI,2FAA2F;AAC3F,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EA4BzD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACnC,KAAK,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAA0B,GAAG,qBAAqB,CAsE/G;AAcD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCpF"}
1
+ {"version":3,"file":"generate-transfer-model-args.d.ts","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-args.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAA6C,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5H,OAAO,EAA2C,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG7F;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAc1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,MAAM,EAAqE,CAAC;AAEvI,2FAA2F;AAC3F,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAkCzD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACnC,KAAK,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAA0B,GAAG,qBAAqB,CAyE/G;AAcD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCpF"}
@@ -27,6 +27,7 @@ export const GENERATE_TRANSFER_MODEL_FLAGS = [
27
27
  '--ast-file',
28
28
  '--augmentation-file',
29
29
  '--out-file',
30
+ '--ast-builder-file',
30
31
  '--element-type-name',
31
32
  '--terminals-name',
32
33
  '--terminals-source-name',
@@ -44,7 +45,8 @@ export const GENERATE_TRANSFER_MODEL_VALUE_FLAGS = GENERATE_TRANSFER_MODEL_FLAGS
44
45
  export const GENERATE_TRANSFER_MODEL_HELP = [
45
46
  'Usage: hydranium-cli generate-transfer-model [options]',
46
47
  '',
47
- 'Generate a serializable transfer-model TypeScript file from a Langium AST. The',
48
+ 'Generate a serializable transfer-model TypeScript file from a Langium AST, and',
49
+ 'optionally an AST-node builder module bound to the same reflection. The',
48
50
  'required inputs (--ast-file / --augmentation-file / --out-file) may instead come',
49
51
  'from a --config JSON file, and --ast-file can be auto-discovered from a Langium',
50
52
  "config's `out` directory. Precedence, highest first: explicit flags, then the",
@@ -63,6 +65,11 @@ export const GENERATE_TRANSFER_MODEL_HELP = [
63
65
  ' directory: it treats that directory as exclusively',
64
66
  ' its own, so every `langium generate` reports this',
65
67
  ' file as unexpected and offers to delete it.',
68
+ ' --ast-builder-file <path> Also emit an AST-node builder module here: one',
69
+ ' makeAstNodeBuilder binding per grammar, plus one',
70
+ ' spanning all of them. Omit if nothing constructs',
71
+ ' AST nodes. Same restriction as --out-file: keep it',
72
+ " out of langium-cli's own `out` directory.",
66
73
  ' --element-type-name <name> Base element type name in output. Default: TransferElement.',
67
74
  ' --terminals-name <name> Terminals const name in output. Default: ModelTerminals.',
68
75
  ' --terminals-source-name <n> Source-side terminals variable name. Default: <LanguageId>Terminals.',
@@ -106,6 +113,9 @@ export function parseGenerateOptions(args, onError = exitWithUsage) {
106
113
  case '--out-file':
107
114
  flags.outFile = next();
108
115
  break;
116
+ case '--ast-builder-file':
117
+ flags.astBuilderFile = next();
118
+ break;
109
119
  case '--element-type-name':
110
120
  flags.elementTypeName = next();
111
121
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-transfer-model-args.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-transfer-model-args.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-args.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-transfer-model-config.d.ts","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAUjF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAmCjG;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAa5F;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,4BAA4B,CAmChI"}
1
+ {"version":3,"file":"generate-transfer-model-config.d.ts","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAKlF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAUjF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAoCjG;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAa5F;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,4BAA4B,CAoChI"}
@@ -8,8 +8,9 @@
8
8
  ********************************************************************************/
9
9
  import * as fs from 'node:fs';
10
10
  import * as path from 'node:path';
11
+ import { describeError } from '@hydranium/protocol';
11
12
  /** Path-valued option keys — resolved relative to a config/langium-config file's directory. */
12
- const PATH_KEYS = ['astFile', 'augmentationFile', 'outFile'];
13
+ const PATH_KEYS = ['astFile', 'augmentationFile', 'outFile', 'astBuilderFile'];
13
14
  /** Resolve `value` against `baseDir` when it is relative; absolute paths pass through. */
14
15
  function resolveAgainst(baseDir, value) {
15
16
  return path.isAbsolute(value) ? value : path.resolve(baseDir, value);
@@ -27,7 +28,7 @@ export function loadTransferModelConfig(configPath) {
27
28
  raw = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
28
29
  }
29
30
  catch (error) {
30
- throw new Error(`Cannot read transfer-model config '${configPath}': ${error instanceof Error ? error.message : String(error)}`);
31
+ throw new Error(`Cannot read transfer-model config '${configPath}': ${describeError(error)}`);
31
32
  }
32
33
  if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
33
34
  throw new Error(`Transfer-model config '${configPath}' must be a JSON object.`);
@@ -39,6 +40,7 @@ export function loadTransferModelConfig(configPath) {
39
40
  'astFile',
40
41
  'augmentationFile',
41
42
  'outFile',
43
+ 'astBuilderFile',
42
44
  'elementTypeName',
43
45
  'terminalsName',
44
46
  'terminalsSourceName',
@@ -70,7 +72,7 @@ export function deriveAstFileFromLangiumConfig(langiumConfigPath) {
70
72
  raw = JSON.parse(fs.readFileSync(langiumConfigPath, 'utf-8'));
71
73
  }
72
74
  catch (error) {
73
- throw new Error(`Cannot read langium-config '${langiumConfigPath}': ${error instanceof Error ? error.message : String(error)}`);
75
+ throw new Error(`Cannot read langium-config '${langiumConfigPath}': ${describeError(error)}`);
74
76
  }
75
77
  const out = raw?.out;
76
78
  if (typeof out !== 'string') {
@@ -111,6 +113,7 @@ export function mergeTransferModelOptions(...sources) {
111
113
  astFile: astFile,
112
114
  augmentationFile: augmentationFile,
113
115
  outFile: outFile,
116
+ astBuilderFile: pick('astBuilderFile'),
114
117
  elementTypeName: pick('elementTypeName'),
115
118
  terminalsName: pick('terminalsName'),
116
119
  terminalsSourceName: pick('terminalsSourceName'),
@@ -1 +1 @@
1
- {"version":3,"file":"generate-transfer-model-config.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-transfer-model-config.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model-config.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,15 @@ export interface GenerateTransferModelOptions {
23
23
  augmentationFile: string;
24
24
  /** Destination path for the generated transfer model. */
25
25
  outFile: string;
26
+ /**
27
+ * Destination for a generated AST-node builder module. Omitted by consumers
28
+ * that construct no AST nodes; the transfer model is emitted either way.
29
+ *
30
+ * Emitted from this command rather than its own because the AST source is
31
+ * already parsed here, and because a consumer that regenerates one artefact
32
+ * and not the other has the two disagreeing about the same grammar.
33
+ */
34
+ astBuilderFile?: string;
26
35
  /** Name used for the base element type in the output. Defaults to `TransferElement`. */
27
36
  elementTypeName?: string;
28
37
  /** Name used for the terminal-patterns const in the output. Defaults to `ModelTerminals`. */
@@ -1 +1 @@
1
- {"version":3,"file":"generate-transfer-model.d.ts","sourceRoot":"","sources":["../../src/commands/generate-transfer-model.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAOJ,KAAK,UAAU,EACjB,MAAM,UAAU,CAAC;AAElB;;;;;;;;GAQG;AACH,MAAM,WAAW,4BAA4B;IAC1C,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACxB;AAwBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCzH;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CA4QjF;AAwFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC3B,SAAS,EAAE,UAAU,EACrB,mBAAmB,EAAE,MAAM,EAC3B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B1C;AAsFD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAqB9F"}
1
+ {"version":3,"file":"generate-transfer-model.d.ts","sourceRoot":"","sources":["../../src/commands/generate-transfer-model.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAKlF,OAAO,EAOJ,KAAK,UAAU,EACjB,MAAM,UAAU,CAAC;AAGlB;;;;;;;;GAQG;AACH,MAAM,WAAW,4BAA4B;IAC1C,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACxB;AAwBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCzH;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CAwRjF;AAwFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC3B,SAAS,EAAE,UAAU,EACrB,mBAAmB,EAAE,MAAM,EAC3B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B1C;AAsFD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAqB9F"}
@@ -8,7 +8,9 @@
8
8
  ********************************************************************************/
9
9
  import * as fs from 'fs';
10
10
  import * as path from 'path';
11
+ import { emitAstBuilder } from './generate-ast-builder.js';
11
12
  import { Project, SyntaxKind } from 'ts-morph';
13
+ import { describeError } from '@hydranium/protocol';
12
14
  const DEFAULT_ELEMENT_TYPE_NAME = 'TransferElement';
13
15
  const DEFAULT_TERMINALS_NAME = 'ModelTerminals';
14
16
  const DEFAULT_REGEN_COMMAND = 'Run the hydranium-cli generate-transfer-model command to regenerate.';
@@ -30,7 +32,7 @@ export function watchTransferModel(options, context) {
30
32
  generateTransferModel(options);
31
33
  }
32
34
  catch (error) {
33
- console.error(`Transfer-model generation failed: ${error instanceof Error ? error.message : String(error)}`);
35
+ console.error(`Transfer-model generation failed: ${describeError(error)}`);
34
36
  }
35
37
  };
36
38
  runSafely();
@@ -293,10 +295,22 @@ export function generateTransferModel(options) {
293
295
  fs.mkdirSync(path.dirname(options.outFile), { recursive: true });
294
296
  if (fs.existsSync(options.outFile) && fs.readFileSync(options.outFile, 'utf-8') === content) {
295
297
  console.log('Transfer model is up to date.');
296
- return;
297
298
  }
298
- fs.writeFileSync(options.outFile, content, 'utf-8');
299
- console.log(`Generated: ${options.outFile}`);
299
+ else {
300
+ fs.writeFileSync(options.outFile, content, 'utf-8');
301
+ console.log(`Generated: ${options.outFile}`);
302
+ }
303
+ if (options.astBuilderFile !== undefined) {
304
+ const emitted = emitAstBuilder(astSource, {
305
+ outFile: options.astBuilderFile,
306
+ astFile: options.astFile,
307
+ languageId,
308
+ regenCommand
309
+ });
310
+ if (!emitted) {
311
+ console.warn(`Warning: no '${languageId}AstType' alias in ${options.astFile}; skipping the AST builder.`);
312
+ }
313
+ }
300
314
  }
301
315
  // ---------------------------------------------------------------------------
302
316
  // AST source parsing helpers
@@ -1 +1 @@
1
- {"version":3,"file":"generate-transfer-model.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAGJ,OAAO,EACP,UAAU,EAIZ,MAAM,UAAU,CAAC;AA6DlB,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AACpD,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAChD,MAAM,qBAAqB,GAAG,sEAAsE,CAAC;AACrG;;;;GAIG;AACH,MAAM,yBAAyB,GAAG,WAAW,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAqC,EAAE,OAAgC;IACvG,MAAM,SAAS,GAAG,GAAS,EAAE;QAC1B,IAAI,CAAC;YACF,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;IACJ,CAAC,CAAC;IACF,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,OAAO,QAAQ,OAAO,CAAC,gBAAgB,qCAAqC,CAAC,CAAC;IAE9G,IAAI,KAAiC,CAAC;IACtC,MAAM,aAAa,GAAG,GAAS,EAAE;QAC9B,IAAI,KAAK,EAAE,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAExG,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;QAChC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAC5B,OAAO,EACP,GAAG,EAAE;YACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,EAAE,CAAC;QACb,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CAChB,CAAC;IACL,CAAC,CAAC,CAAC;AACN,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,qBAAqB,CAAC,OAAqC;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,yBAAyB,CAAC;IAC7E,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAC;IACtE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QACzB,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QACjC,2BAA2B,EAAE,IAAI;KACnC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExE,wEAAwE;IACxE,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,eAAe,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAElF,iFAAiF;IACjF,wCAAwC;IACxC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,SAAS,EAAE,GAAG,UAAU,eAAe,EAAE,GAAG,UAAU,YAAY,CAAC,CAAC,CAAC;IACvH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAEnF,gFAAgF;IAChF,iFAAiF;IACjF,qDAAqD;IACrD,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAE9D,4CAA4C;IAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC9D,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;QAC7C,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,SAAS;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACZ,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,4BAA4B,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;QACvH,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAE5E,+EAA+E;IAC/E,gFAAgF;IAChF,+BAA+B;IAC/B,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,GAAG,UAAU,WAAW,CAAC;IACpF,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;IAEhF,8EAA8E;IAC9E,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACV,uEAAuE;YACvE,SAAS;QACZ,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5E,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACL,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,iFAAiF;IACjF,0EAA0E;IAC1E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,CAAC,IAAY,EAAY,EAAE;QAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,kDAAkD;IAClD,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAE3D,oBAAoB;IACpB,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,GAAG,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IAC5F,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACtE,GAAG,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAC7F,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,6EAA6E;IAC7E,8EAA8E;IAC9E,wEAAwE;IACxE,GAAG,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC1E,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,oBAAoB,eAAe,IAAI,CAAC,CAAC;IAClD,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,qCAAqC;IACrC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,WAAW,IAAI,IAAI,CAAC,CAAC;QACrD,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,gBAAgB;IAChB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,MAAM,UAAU,GAAG,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,aAAa,KAAK,aAAa,CAAC,CAAC;YACjE,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,iEAAiE;IACjE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,gBAAgB,aAAa,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,OAAO,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,cAAc;IACd,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEtC,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E,IAAI,UAAU,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC;YACtF,GAAG,CAAC,IAAI,CAAC,sBAAsB,SAAS,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACL,GAAG,CAAC,IAAI,CAAC,6BAA6B,IAAI,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACZ,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,eAAe,CAAC,CAAC;YACxF,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;qBACrB,YAAY,EAAE;qBACd,IAAI,EAAE;qBACN,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACX,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC,CAAC;gBACpC,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,GAAG,GAAG,KAAK,UAAU,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,SAAS;YACZ,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC;YACxC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,eAAe;IACf,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEnC,GAAG,CAAC,IAAI,CAAC,qBAAqB,eAAe,4BAA4B,eAAe,IAAI,CAAC,CAAC;IAC9F,GAAG,CAAC,IAAI,CAAC,sFAAsF,eAAe,uBAAuB,CAAC,CAAC;IACvI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE3C,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,4BAA4B,IAAI,IAAI,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC5E,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtE,GAAG,CAAC,IAAI,CAAC,eAAe,eAAe,cAAc,MAAM,IAAI,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACL,GAAG,CAAC,IAAI,CAAC,eAAe,eAAe,4BAA4B,IAAI,OAAO,CAAC,CAAC;QACnF,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,4BAA4B,IAAI,IAAI,CAAC,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACL,2FAA2F;YAC3F,iFAAiF;YACjF,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,4BAA4B,IAAI,IAAI,CAAC,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,0CAA0C,CAAC,CAAC;QAC7F,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO;IACV,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAU;IACtC,IAAI,OAAO,GAAqB,IAAI,CAAC;IACrC,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACrE,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC7F,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC7D,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACpB,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAkB;IAC/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;oBACpD,OAAO,GAAG,CAAC;gBACd,CAAC;YACJ,CAAC;QACJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAChG,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,eAAiC;IAC5D,MAAM,MAAM,GAAoC,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,IAAI,CAAC,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,kBAAkB,EAAE,CAAC;YACrD,SAAS;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;QACzE,IAAI,CAAC,IAAI,EAAE,CAAC;YACT,SAAS;QACZ,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QACtF,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,UAAU,EAAE,CAAC;YACd,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAI,QAAQ,EAAE,CAAC;oBACZ,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,SAAS;gBACZ,CAAC;gBACD,8CAA8C;gBAC9C,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,WAAW,EAAE,CAAC;oBACf,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACL,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACJ,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC3B,SAAqB,EACrB,mBAA2B,EAC3B,aAA0B;IAE1B,MAAM,SAAS,GAA6C,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,WAAW,GAAG,CAAC,UAA+C,EAAQ,EAAE;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;YACf,OAAO;QACV,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,SAAS;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACV,SAAS;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,KAAK,EAAE,CAAC;gBACT,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACJ,CAAC;IACJ,CAAC,CAAC;IAEF,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC5H,KAAK,MAAM,aAAa,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC;QAClD,WAAW,CAAC,aAAa,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACzI,CAAC;IACD,OAAO,SAAS,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,uBAAuB,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACR,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,IAAI,KAAK,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;QACJ,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAkB,EAAE,SAA8B,EAAE,eAAuB;IACpG,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACnD,SAAS;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;YACT,SAAS;QACZ,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC3E,MAAM,KAAK,GAAwB,EAAE,CAAC;YAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC9C,IAAI,QAAgB,CAAC;gBACrB,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACb,SAAS;oBACZ,CAAC;oBACD,QAAQ,GAAG,QAAQ,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACL,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,CAAC;gBAED,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACZ,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,MAAM,OAAO,GACV,MAAM,CAAC,MAAM,GAAG,CAAC;oBACd,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;yBACL,YAAY,EAAE;yBACd,IAAI,EAAE;yBACN,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;oBAC/B,CAAC,CAAC,SAAS,CAAC;gBAElB,KAAK,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,eAAe,CAAC;oBAC1E,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE;oBACjC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC3B,OAAO,EAAE,OAAO,IAAI,SAAS;iBAC/B,CAAC,CAAC;YACN,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;gBACnD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACJ,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,gFAAgF;AAChF,SAAS,OAAO,CAAC,IAAY,EAAE,eAAuB;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AACpH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IAChD,QAAQ,MAAM,EAAE,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACV,OAAO,oBAAoB,MAAM,GAAG,CAAC;QACxC,KAAK,MAAM;YACR,OAAO,sBAAsB,CAAC;QACjC;YACG,OAAO,KAAK,MAAM,QAAQ,CAAC;IACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,4BAA4B,CAAC,SAAqB,EAAE,UAAkB;IACnF,MAAM,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACnF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,UAAU,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO,UAAU,CAAC;QACrB,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACJ,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,0FAA0F;AAC1F,SAAS,qBAAqB,CAAC,UAAkB;IAC9C,MAAM,aAAa,GAAG,wBAAwB,CAAC;IAC/C,IAAI,CAAC,IAAI,MAAM,CAAC,YAAY,aAAa,eAAe,aAAa,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACnG,OAAO,SAAS,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CAAC,KAAe,EAAE,OAAgC;IACvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,SAAS,KAAK,CAAC,IAAY;QACxB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"generate-transfer-model.js","sourceRoot":"","sources":["../../src/commands/generate-transfer-model.ts"],"names":[],"mappings":"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"}