@atomic-ehr/codegen 0.0.1-canary.20250821160126.c552195 → 0.0.1-canary.20250822150706.c3b8669

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 (122) hide show
  1. package/dist/api/builder.d.ts +3 -3
  2. package/dist/api/builder.d.ts.map +1 -1
  3. package/dist/api/builder.js +374 -0
  4. package/dist/api/generators/base/BaseGenerator.d.ts +4 -4
  5. package/dist/api/generators/base/BaseGenerator.d.ts.map +1 -1
  6. package/dist/api/generators/base/BaseGenerator.js +572 -0
  7. package/dist/api/generators/base/FileManager.d.ts +2 -2
  8. package/dist/api/generators/base/FileManager.d.ts.map +1 -1
  9. package/dist/api/generators/base/FileManager.js +204 -0
  10. package/dist/api/generators/base/PythonTypeMapper.d.ts +2 -2
  11. package/dist/api/generators/base/PythonTypeMapper.d.ts.map +1 -1
  12. package/dist/api/generators/base/PythonTypeMapper.js +71 -0
  13. package/dist/api/generators/base/TemplateEngine.d.ts +1 -1
  14. package/dist/api/generators/base/TemplateEngine.d.ts.map +1 -1
  15. package/dist/api/generators/base/TemplateEngine.js +133 -0
  16. package/dist/api/generators/base/TypeMapper.js +153 -0
  17. package/dist/api/generators/base/TypeScriptTypeMapper.d.ts +1 -1
  18. package/dist/api/generators/base/TypeScriptTypeMapper.d.ts.map +1 -1
  19. package/dist/api/generators/base/TypeScriptTypeMapper.js +232 -0
  20. package/dist/api/generators/base/builders/DirectoryBuilder.d.ts +4 -4
  21. package/dist/api/generators/base/builders/DirectoryBuilder.d.ts.map +1 -1
  22. package/dist/api/generators/base/builders/DirectoryBuilder.js +215 -0
  23. package/dist/api/generators/base/builders/FileBuilder.d.ts +2 -2
  24. package/dist/api/generators/base/builders/FileBuilder.d.ts.map +1 -1
  25. package/dist/api/generators/base/builders/FileBuilder.js +408 -0
  26. package/dist/api/generators/base/builders/IndexBuilder.d.ts +2 -2
  27. package/dist/api/generators/base/builders/IndexBuilder.d.ts.map +1 -1
  28. package/dist/api/generators/base/builders/IndexBuilder.js +290 -0
  29. package/dist/api/generators/base/enhanced-errors.d.ts +2 -2
  30. package/dist/api/generators/base/enhanced-errors.d.ts.map +1 -1
  31. package/dist/api/generators/base/enhanced-errors.js +259 -0
  32. package/dist/api/generators/base/error-handler.d.ts +1 -1
  33. package/dist/api/generators/base/error-handler.d.ts.map +1 -1
  34. package/dist/api/generators/base/error-handler.js +243 -0
  35. package/dist/api/generators/base/errors.d.ts +2 -2
  36. package/dist/api/generators/base/errors.d.ts.map +1 -1
  37. package/dist/api/generators/base/errors.js +694 -0
  38. package/dist/api/generators/base/index.d.ts +22 -22
  39. package/dist/api/generators/base/index.d.ts.map +1 -1
  40. package/dist/api/generators/base/index.js +161 -0
  41. package/dist/api/generators/base/types.d.ts +2 -2
  42. package/dist/api/generators/base/types.d.ts.map +1 -1
  43. package/dist/api/generators/base/types.js +12 -0
  44. package/dist/api/generators/rest-client.d.ts +2 -2
  45. package/dist/api/generators/rest-client.d.ts.map +1 -1
  46. package/dist/api/generators/rest-client.js +847 -0
  47. package/dist/api/generators/search-parameter-enhancer.d.ts +1 -1
  48. package/dist/api/generators/search-parameter-enhancer.d.ts.map +1 -1
  49. package/dist/api/generators/search-parameter-enhancer.js +801 -0
  50. package/dist/api/generators/types.js +4 -0
  51. package/dist/api/generators/typescript.d.ts +3 -3
  52. package/dist/api/generators/typescript.d.ts.map +1 -1
  53. package/dist/api/generators/typescript.js +537 -0
  54. package/dist/api/generators/validation-generator.js +632 -0
  55. package/dist/api/index.d.ts +10 -10
  56. package/dist/api/index.d.ts.map +1 -1
  57. package/dist/api/index.js +51 -0
  58. package/dist/cli/commands/generate/typescript.d.ts +1 -1
  59. package/dist/cli/commands/generate/typescript.d.ts.map +1 -1
  60. package/dist/cli/commands/generate/typescript.js +52 -0
  61. package/dist/cli/commands/generate.d.ts +5 -12
  62. package/dist/cli/commands/generate.d.ts.map +1 -1
  63. package/dist/cli/commands/generate.js +158 -0
  64. package/dist/cli/commands/index.d.ts +2 -1
  65. package/dist/cli/commands/index.d.ts.map +1 -1
  66. package/dist/cli/commands/index.js +100 -0
  67. package/dist/cli/commands/typeschema/generate.js +130 -0
  68. package/dist/cli/commands/typeschema.js +48 -0
  69. package/dist/cli/index.js +12 -8664
  70. package/dist/cli/utils/log.d.ts +2 -2
  71. package/dist/cli/utils/log.d.ts.map +1 -1
  72. package/dist/cli/utils/log.js +23 -0
  73. package/dist/cli/utils/prompts.js +224 -0
  74. package/dist/cli/utils/spinner.js +270 -0
  75. package/dist/config.d.ts +22 -2
  76. package/dist/config.d.ts.map +1 -1
  77. package/dist/config.js +703 -0
  78. package/dist/index.d.ts +2 -2
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +84 -38
  81. package/dist/logger.js +290 -0
  82. package/dist/typeschema/cache.d.ts +2 -2
  83. package/dist/typeschema/cache.d.ts.map +1 -1
  84. package/dist/typeschema/cache.js +285 -0
  85. package/dist/typeschema/core/binding.d.ts +1 -1
  86. package/dist/typeschema/core/binding.d.ts.map +1 -1
  87. package/dist/typeschema/core/binding.js +187 -0
  88. package/dist/typeschema/core/field-builder.d.ts +1 -1
  89. package/dist/typeschema/core/field-builder.d.ts.map +1 -1
  90. package/dist/typeschema/core/field-builder.js +259 -0
  91. package/dist/typeschema/core/identifier.js +117 -0
  92. package/dist/typeschema/core/nested-types.d.ts +1 -1
  93. package/dist/typeschema/core/nested-types.d.ts.map +1 -1
  94. package/dist/typeschema/core/nested-types.js +111 -0
  95. package/dist/typeschema/core/transformer.d.ts +2 -2
  96. package/dist/typeschema/core/transformer.d.ts.map +1 -1
  97. package/dist/typeschema/core/transformer.js +345 -0
  98. package/dist/typeschema/generator.d.ts +3 -3
  99. package/dist/typeschema/generator.d.ts.map +1 -1
  100. package/dist/typeschema/generator.js +352 -0
  101. package/dist/typeschema/index.d.ts +14 -14
  102. package/dist/typeschema/index.d.ts.map +1 -1
  103. package/dist/typeschema/index.js +92 -0
  104. package/dist/typeschema/parser.d.ts +2 -2
  105. package/dist/typeschema/parser.d.ts.map +1 -1
  106. package/dist/typeschema/parser.js +310 -0
  107. package/dist/typeschema/profile/processor.d.ts +1 -1
  108. package/dist/typeschema/profile/processor.d.ts.map +1 -1
  109. package/dist/typeschema/profile/processor.js +268 -0
  110. package/dist/typeschema/schema.js +456 -0
  111. package/dist/typeschema/type-schema.types.js +39 -0
  112. package/dist/typeschema/types.js +4 -0
  113. package/dist/typeschema/utils.d.ts +1 -1
  114. package/dist/typeschema/utils.d.ts.map +1 -1
  115. package/dist/typeschema/utils.js +13 -0
  116. package/dist/typeschema/value-set/processor.d.ts +1 -1
  117. package/dist/typeschema/value-set/processor.d.ts.map +1 -1
  118. package/dist/typeschema/value-set/processor.js +168 -0
  119. package/dist/utils/codegen-logger.js +204 -0
  120. package/dist/utils.js +42 -0
  121. package/package.json +15 -4
  122. package/dist/index-e7pfye24.js +0 -8532
@@ -4,9 +4,9 @@
4
4
  * Provides a fluent, chainable API for common codegen use cases with pre-built generators.
5
5
  * This builder pattern allows users to configure generation in a declarative way.
6
6
  */
7
- import type { Config, RestClientConfig, TypeSchemaConfig } from "../config";
8
- import type { TypeSchema } from "../typeschema/type-schema.types";
9
- import type { CodegenLogger } from "../utils/codegen-logger";
7
+ import type { Config, RestClientConfig, TypeSchemaConfig } from "../config.js";
8
+ import type { TypeSchema } from "../typeschema/type-schema.types.js";
9
+ import type { CodegenLogger } from "../utils/codegen-logger.js";
10
10
  /**
11
11
  * Configuration options for the API builder
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/api/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/api/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * High-Level API Builder
3
+ *
4
+ * Provides a fluent, chainable API for common codegen use cases with pre-built generators.
5
+ * This builder pattern allows users to configure generation in a declarative way.
6
+ */
7
+ import { TypeSchemaCache, TypeSchemaGenerator, TypeSchemaParser, } from "../typeschema/index.js";
8
+ import { createLogger } from "../utils/codegen-logger.js";
9
+ import { RestClientGenerator } from "./generators/rest-client.js";
10
+ import { TypeScriptGenerator } from "./generators/typescript.js";
11
+ /**
12
+ * High-Level API Builder class
13
+ *
14
+ * Provides a fluent interface for configuring and executing code generation
15
+ * from FHIR packages or TypeSchema documents.
16
+ */
17
+ export class APIBuilder {
18
+ schemas = [];
19
+ options;
20
+ generators = new Map();
21
+ progressCallback;
22
+ cache;
23
+ pendingOperations = [];
24
+ typeSchemaGenerator;
25
+ logger;
26
+ typeSchemaConfig;
27
+ constructor(options = {}) {
28
+ this.options = {
29
+ outputDir: options.outputDir || "./generated",
30
+ verbose: options.verbose ?? false,
31
+ overwrite: options.overwrite ?? true,
32
+ validate: options.validate ?? true,
33
+ cache: options.cache ?? true,
34
+ typeSchemaConfig: options.typeSchemaConfig,
35
+ };
36
+ this.typeSchemaConfig = options.typeSchemaConfig;
37
+ // Use provided logger or create a default one
38
+ this.logger =
39
+ options.logger ||
40
+ createLogger({
41
+ verbose: this.options.verbose,
42
+ prefix: "API",
43
+ });
44
+ if (this.options.cache) {
45
+ this.cache = new TypeSchemaCache(this.typeSchemaConfig);
46
+ }
47
+ }
48
+ /**
49
+ * Load TypeSchema from a FHIR package
50
+ */
51
+ fromPackage(packageName, version) {
52
+ this.logger.debug(`Loading from FHIR package: ${packageName}@${version || "latest"}`);
53
+ const operation = this.loadFromPackage(packageName, version);
54
+ this.pendingOperations.push(operation);
55
+ return this;
56
+ }
57
+ /**
58
+ * Load TypeSchema from files
59
+ */
60
+ fromFiles(...filePaths) {
61
+ this.logger.debug(`Loading from ${filePaths.length} TypeSchema files`);
62
+ const operation = this.loadFromFiles(filePaths);
63
+ this.pendingOperations.push(operation);
64
+ return this;
65
+ }
66
+ /**
67
+ * Load TypeSchema from TypeSchema objects
68
+ */
69
+ fromSchemas(schemas) {
70
+ this.logger.debug(`Adding ${schemas.length} TypeSchemas to generation`);
71
+ this.schemas = [...this.schemas, ...schemas];
72
+ return this;
73
+ }
74
+ /**
75
+ * Configure TypeScript generation
76
+ */
77
+ typescript(options = {}) {
78
+ // Hardcode types subfolder
79
+ const typesOutputDir = `${this.options.outputDir}/types`;
80
+ const generator = new TypeScriptGenerator({
81
+ outputDir: typesOutputDir,
82
+ moduleFormat: options.moduleFormat || "esm",
83
+ generateIndex: options.generateIndex ?? true,
84
+ includeDocuments: options.includeDocuments ?? true,
85
+ namingConvention: options.namingConvention || "PascalCase",
86
+ includeExtensions: options.includeExtensions ?? false,
87
+ includeProfiles: options.includeProfiles ?? false,
88
+ logger: this.logger.child("TS"),
89
+ verbose: this.options.verbose,
90
+ validate: true, // Enable validation for debugging
91
+ overwrite: this.options.overwrite,
92
+ });
93
+ this.generators.set("typescript", generator);
94
+ this.logger.debug(`Configured TypeScript generator (${options.moduleFormat || "esm"})`);
95
+ return this;
96
+ }
97
+ /**
98
+ * Configure REST client generation
99
+ */
100
+ restClient(options = {}) {
101
+ // REST client goes in client subfolder
102
+ const clientOutputDir = `${this.options.outputDir}/client`;
103
+ const generator = new RestClientGenerator({
104
+ outputDir: clientOutputDir,
105
+ logger: this.logger.child("REST"),
106
+ ...options, // Pass all RestClientConfig options
107
+ });
108
+ this.generators.set("restclient", generator);
109
+ this.logger.debug(`Configured REST client generator (${options.clientName || "FHIRClient"})`);
110
+ return this;
111
+ }
112
+ /**
113
+ * Set a progress callback for monitoring generation
114
+ */
115
+ onProgress(callback) {
116
+ this.progressCallback = callback;
117
+ return this;
118
+ }
119
+ /**
120
+ * Set the output directory for all generators
121
+ */
122
+ outputTo(directory) {
123
+ this.logger.debug(`Setting output directory: ${directory}`);
124
+ this.options.outputDir = directory;
125
+ // Update all configured generators
126
+ for (const generator of this.generators.values()) {
127
+ if (generator.setOutputDir) {
128
+ generator.setOutputDir(directory);
129
+ }
130
+ }
131
+ return this;
132
+ }
133
+ /**
134
+ * Enable/disable verbose logging
135
+ */
136
+ verbose(enabled = true) {
137
+ this.options.verbose = enabled;
138
+ return this;
139
+ }
140
+ /**
141
+ * Enable/disable validation
142
+ */
143
+ validate(enabled = true) {
144
+ this.options.validate = enabled;
145
+ return this;
146
+ }
147
+ /**
148
+ * Ensure TypeScript generator is configured if REST client is configured
149
+ */
150
+ ensureTypeScriptForRestClient() {
151
+ const hasRestClient = this.generators.has("restclient");
152
+ const hasTypeScript = this.generators.has("typescript");
153
+ if (hasRestClient && !hasTypeScript) {
154
+ this.logger.debug("Automatically adding TypeScript generator for REST client");
155
+ // Add TypeScript generator with minimal config
156
+ this.typescript({
157
+ moduleFormat: "esm",
158
+ generateIndex: true,
159
+ includeDocuments: false,
160
+ namingConvention: "PascalCase",
161
+ });
162
+ }
163
+ }
164
+ /**
165
+ * Execute the generation process
166
+ */
167
+ async generate() {
168
+ // Ensure TypeScript is configured if REST client is configured
169
+ this.ensureTypeScriptForRestClient();
170
+ const startTime = performance.now();
171
+ const result = {
172
+ success: false,
173
+ outputDir: this.options.outputDir,
174
+ filesGenerated: [],
175
+ errors: [],
176
+ warnings: [],
177
+ duration: 0,
178
+ };
179
+ this.logger.debug(`Starting generation with ${this.generators.size} generators`);
180
+ try {
181
+ this.reportProgress("Loading", 0, 4, "Loading TypeSchema data...");
182
+ // Load schemas if needed
183
+ await this.resolveSchemas();
184
+ this.logger.debug(`Resolved ${this.schemas.length} schemas`);
185
+ this.reportProgress("Validating", 1, 4, "Validating TypeSchema documents...");
186
+ // Validate schemas
187
+ if (this.options.validate) {
188
+ this.logger.debug("Starting schema validation");
189
+ await this.validateSchemas(result);
190
+ this.logger.debug("Schema validation completed");
191
+ }
192
+ this.reportProgress("Generating", 2, 4, "Generating code...");
193
+ this.logger.debug(`Executing ${this.generators.size} generators`);
194
+ // Execute all configured generators
195
+ await this.executeGenerators(result);
196
+ this.reportProgress("Complete", 4, 4, "Generation completed successfully");
197
+ result.success = result.errors.length === 0;
198
+ this.logger.debug(`Generation completed: ${result.filesGenerated.length} files`);
199
+ }
200
+ catch (error) {
201
+ this.logger.error("Code generation failed", error instanceof Error ? error : new Error(String(error)));
202
+ result.errors.push(error instanceof Error ? error.message : String(error));
203
+ result.success = false;
204
+ }
205
+ finally {
206
+ result.duration = performance.now() - startTime;
207
+ }
208
+ return result;
209
+ }
210
+ /**
211
+ * Generate and return the results without writing to files
212
+ */
213
+ async build() {
214
+ await this.resolveSchemas();
215
+ const results = {};
216
+ for (const [type, generator] of this.generators.entries()) {
217
+ if (generator.build) {
218
+ results[type] = await generator.build(this.schemas);
219
+ }
220
+ }
221
+ return results;
222
+ }
223
+ /**
224
+ * Clear all configuration and start fresh
225
+ */
226
+ reset() {
227
+ this.schemas = [];
228
+ this.generators.clear();
229
+ this.progressCallback = undefined;
230
+ return this;
231
+ }
232
+ /**
233
+ * Get loaded schemas (for inspection)
234
+ */
235
+ getSchemas() {
236
+ return [...this.schemas];
237
+ }
238
+ /**
239
+ * Get configured generators (for inspection)
240
+ */
241
+ getGenerators() {
242
+ return Array.from(this.generators.keys());
243
+ }
244
+ // Private implementation methods
245
+ async loadFromPackage(packageName, version) {
246
+ const generator = new TypeSchemaGenerator({
247
+ verbose: this.options.verbose,
248
+ logger: this.logger.child("Schema"),
249
+ treeshake: this.typeSchemaConfig?.treeshake,
250
+ }, this.typeSchemaConfig);
251
+ this.typeSchemaGenerator = generator; // Store for REST client generation
252
+ const schemas = await generator.generateFromPackage(packageName, version);
253
+ this.schemas = [...this.schemas, ...schemas];
254
+ if (this.cache) {
255
+ this.cache.setMany(schemas);
256
+ }
257
+ }
258
+ async loadFromFiles(filePaths) {
259
+ if (!this.typeSchemaGenerator) {
260
+ this.typeSchemaGenerator = new TypeSchemaGenerator({
261
+ verbose: this.options.verbose,
262
+ logger: this.logger.child("Schema"),
263
+ treeshake: this.typeSchemaConfig?.treeshake,
264
+ }, this.typeSchemaConfig);
265
+ }
266
+ const parser = new TypeSchemaParser({
267
+ format: "auto",
268
+ validate: this.options.validate,
269
+ });
270
+ const schemas = await parser.parseFromFiles(filePaths);
271
+ this.schemas = [...this.schemas, ...schemas];
272
+ if (this.cache) {
273
+ this.cache.setMany(schemas);
274
+ }
275
+ }
276
+ async resolveSchemas() {
277
+ // Wait for all pending async operations to complete
278
+ if (this.pendingOperations.length > 0) {
279
+ await Promise.all(this.pendingOperations);
280
+ this.pendingOperations = []; // Clear completed operations
281
+ }
282
+ }
283
+ async validateSchemas(_result) {
284
+ return;
285
+ }
286
+ async executeGenerators(result) {
287
+ const generatorCount = this.generators.size;
288
+ let current = 0;
289
+ for (const [type, generator] of this.generators.entries()) {
290
+ this.reportProgress("Generating", 2 + current / generatorCount, 4, `Generating ${type}...`);
291
+ try {
292
+ const files = await generator.generate(this.schemas);
293
+ result.filesGenerated.push(...files.map((f) => f.path || f.filename));
294
+ }
295
+ catch (error) {
296
+ result.errors.push(`${type} generator failed: ${error instanceof Error ? error.message : String(error)}`);
297
+ }
298
+ current++;
299
+ }
300
+ }
301
+ reportProgress(phase, current, total, message) {
302
+ if (this.progressCallback) {
303
+ this.progressCallback(phase, current, total, message);
304
+ }
305
+ if (this.options.verbose && message) {
306
+ this.logger.debug(`[${phase}] ${message}`);
307
+ }
308
+ }
309
+ }
310
+ /**
311
+ * Create a new API builder instance
312
+ */
313
+ export function createAPI(options) {
314
+ return new APIBuilder(options);
315
+ }
316
+ /**
317
+ * Create an API builder instance from a configuration object
318
+ */
319
+ export function createAPIFromConfig(config) {
320
+ const builder = new APIBuilder({
321
+ outputDir: config.outputDir,
322
+ verbose: config.verbose,
323
+ overwrite: config.overwrite,
324
+ validate: config.validate,
325
+ cache: config.cache,
326
+ typeSchemaConfig: config.typeSchema,
327
+ });
328
+ // Add packages if specified
329
+ if (config.packages && config.packages.length > 0) {
330
+ for (const pkg of config.packages) {
331
+ builder.fromPackage(pkg);
332
+ }
333
+ }
334
+ // Add files if specified
335
+ if (config.files && config.files.length > 0) {
336
+ builder.fromFiles(...config.files);
337
+ }
338
+ // Configure TypeScript generator if specified
339
+ if (config.typescript) {
340
+ builder.typescript(config.typescript);
341
+ }
342
+ // Configure REST client generator if specified
343
+ if (config.restClient) {
344
+ console.log("fsdfdsfsdfdsf");
345
+ builder.restClient(config.restClient);
346
+ }
347
+ return builder;
348
+ }
349
+ /**
350
+ * Convenience function for quick TypeScript generation from a package
351
+ */
352
+ export async function generateTypesFromPackage(packageName, outputDir, options = {}) {
353
+ return createAPI({
354
+ outputDir,
355
+ verbose: options.verbose,
356
+ validate: options.validate,
357
+ })
358
+ .fromPackage(packageName, options.version)
359
+ .typescript()
360
+ .generate();
361
+ }
362
+ /**
363
+ * Convenience function for quick TypeScript generation from files
364
+ */
365
+ export async function generateTypesFromFiles(inputFiles, outputDir, options = {}) {
366
+ return createAPI({
367
+ outputDir,
368
+ verbose: options.verbose,
369
+ validate: options.validate,
370
+ })
371
+ .fromFiles(...inputFiles)
372
+ .typescript()
373
+ .generate();
374
+ }
@@ -6,10 +6,10 @@
6
6
  * specific logic for type mapping, content generation, and validation.
7
7
  */
8
8
  import type { TypeSchema } from "../../../typeschema/type-schema.types";
9
- import type { CodegenLogger } from "../../../utils/codegen-logger";
10
- import { ErrorHandler, GeneratorErrorBoundary } from "./error-handler";
11
- import { FileManager } from "./FileManager";
12
- import type { BaseGeneratorOptions, GeneratedFile, GeneratorCapabilities, ProgressCallback, TemplateContext, TemplateEngine, TypeMapper } from "./types";
9
+ import type { CodegenLogger } from "../../../utils/codegen-logger.js";
10
+ import { ErrorHandler, GeneratorErrorBoundary } from "./error-handler.js";
11
+ import { FileManager } from "./FileManager.js";
12
+ import type { BaseGeneratorOptions, GeneratedFile, GeneratorCapabilities, ProgressCallback, TemplateContext, TemplateEngine, TypeMapper } from "./types.js";
13
13
  /**
14
14
  * Abstract base generator class with comprehensive functionality
15
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BaseGenerator.d.ts","sourceRoot":"","sources":["../../../../src/api/generators/base/BaseGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseGenerator.d.ts","sourceRoot":"","sources":["../../../../src/api/generators/base/BaseGenerator.ts"],"names":[],"mappings":"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"}