@atomic-ehr/codegen 0.0.1-canary.20251006070905.fb6ed98 → 0.0.1-canary.20251006094042.7f0be72

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 (90) hide show
  1. package/dist/cli/index.js +45 -124
  2. package/dist/index.d.ts +2130 -62
  3. package/dist/index.js +5865 -84
  4. package/dist/index.js.map +1 -0
  5. package/package.json +3 -7
  6. package/dist/api/builder.d.ts +0 -154
  7. package/dist/api/builder.js +0 -341
  8. package/dist/api/generators/base/BaseGenerator.d.ts +0 -186
  9. package/dist/api/generators/base/BaseGenerator.js +0 -565
  10. package/dist/api/generators/base/FileManager.d.ts +0 -88
  11. package/dist/api/generators/base/FileManager.js +0 -202
  12. package/dist/api/generators/base/PythonTypeMapper.d.ts +0 -16
  13. package/dist/api/generators/base/PythonTypeMapper.js +0 -71
  14. package/dist/api/generators/base/TemplateEngine.d.ts +0 -126
  15. package/dist/api/generators/base/TemplateEngine.js +0 -133
  16. package/dist/api/generators/base/TypeMapper.d.ts +0 -129
  17. package/dist/api/generators/base/TypeMapper.js +0 -153
  18. package/dist/api/generators/base/TypeScriptTypeMapper.d.ts +0 -51
  19. package/dist/api/generators/base/TypeScriptTypeMapper.js +0 -232
  20. package/dist/api/generators/base/builders/DirectoryBuilder.d.ts +0 -99
  21. package/dist/api/generators/base/builders/DirectoryBuilder.js +0 -215
  22. package/dist/api/generators/base/builders/FileBuilder.d.ts +0 -160
  23. package/dist/api/generators/base/builders/FileBuilder.js +0 -406
  24. package/dist/api/generators/base/builders/IndexBuilder.d.ts +0 -126
  25. package/dist/api/generators/base/builders/IndexBuilder.js +0 -290
  26. package/dist/api/generators/base/enhanced-errors.d.ts +0 -84
  27. package/dist/api/generators/base/enhanced-errors.js +0 -259
  28. package/dist/api/generators/base/error-handler.d.ts +0 -89
  29. package/dist/api/generators/base/error-handler.js +0 -243
  30. package/dist/api/generators/base/errors.d.ts +0 -251
  31. package/dist/api/generators/base/errors.js +0 -692
  32. package/dist/api/generators/base/index.d.ts +0 -99
  33. package/dist/api/generators/base/index.js +0 -160
  34. package/dist/api/generators/base/types.d.ts +0 -433
  35. package/dist/api/generators/base/types.js +0 -12
  36. package/dist/api/generators/types.d.ts +0 -53
  37. package/dist/api/generators/types.js +0 -4
  38. package/dist/api/generators/typescript.d.ts +0 -190
  39. package/dist/api/generators/typescript.js +0 -819
  40. package/dist/api/index.d.ts +0 -51
  41. package/dist/api/index.js +0 -50
  42. package/dist/cli/commands/generate/typescript.d.ts +0 -10
  43. package/dist/cli/commands/generate/typescript.js +0 -52
  44. package/dist/cli/commands/generate.d.ts +0 -15
  45. package/dist/cli/commands/generate.js +0 -159
  46. package/dist/cli/commands/index.d.ts +0 -29
  47. package/dist/cli/commands/index.js +0 -100
  48. package/dist/cli/commands/typeschema/generate.d.ts +0 -19
  49. package/dist/cli/commands/typeschema/generate.js +0 -124
  50. package/dist/cli/commands/typeschema.d.ts +0 -10
  51. package/dist/cli/commands/typeschema.js +0 -47
  52. package/dist/cli/index.d.ts +0 -9
  53. package/dist/cli/utils/log.d.ts +0 -10
  54. package/dist/cli/utils/log.js +0 -23
  55. package/dist/cli/utils/prompts.d.ts +0 -56
  56. package/dist/cli/utils/prompts.js +0 -202
  57. package/dist/cli/utils/spinner.d.ts +0 -110
  58. package/dist/cli/utils/spinner.js +0 -266
  59. package/dist/config.d.ts +0 -217
  60. package/dist/config.js +0 -591
  61. package/dist/logger.d.ts +0 -157
  62. package/dist/logger.js +0 -281
  63. package/dist/typeschema/cache.d.ts +0 -80
  64. package/dist/typeschema/cache.js +0 -239
  65. package/dist/typeschema/core/binding.d.ts +0 -11
  66. package/dist/typeschema/core/binding.js +0 -143
  67. package/dist/typeschema/core/field-builder.d.ts +0 -12
  68. package/dist/typeschema/core/field-builder.js +0 -123
  69. package/dist/typeschema/core/identifier.d.ts +0 -13
  70. package/dist/typeschema/core/identifier.js +0 -94
  71. package/dist/typeschema/core/nested-types.d.ts +0 -9
  72. package/dist/typeschema/core/nested-types.js +0 -94
  73. package/dist/typeschema/core/transformer.d.ts +0 -11
  74. package/dist/typeschema/core/transformer.js +0 -235
  75. package/dist/typeschema/generator.d.ts +0 -43
  76. package/dist/typeschema/generator.js +0 -264
  77. package/dist/typeschema/index.d.ts +0 -15
  78. package/dist/typeschema/index.js +0 -15
  79. package/dist/typeschema/parser.d.ts +0 -79
  80. package/dist/typeschema/parser.js +0 -274
  81. package/dist/typeschema/profile/processor.d.ts +0 -14
  82. package/dist/typeschema/profile/processor.js +0 -262
  83. package/dist/typeschema/register.d.ts +0 -21
  84. package/dist/typeschema/register.js +0 -117
  85. package/dist/typeschema/types.d.ts +0 -240
  86. package/dist/typeschema/types.js +0 -19
  87. package/dist/utils/codegen-logger.d.ts +0 -102
  88. package/dist/utils/codegen-logger.js +0 -196
  89. package/dist/utils.d.ts +0 -22
  90. package/dist/utils.js +0 -42
@@ -1,186 +0,0 @@
1
- /**
2
- * Abstract base generator class
3
- *
4
- * This is the foundation of the generator system. All language-specific generators
5
- * extend this class to inherit common functionality while implementing their own
6
- * specific logic for type mapping, content generation, and validation.
7
- */
8
- import type { TypeSchema } from "@typeschema/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";
13
- /**
14
- * Abstract base generator class with comprehensive functionality
15
- *
16
- * Provides common functionality for all generators including:
17
- * - Schema validation and processing
18
- * - File management with fluent API
19
- * - Template processing
20
- * - Error handling and recovery
21
- * - Progress monitoring
22
- * - Performance optimization
23
- */
24
- export declare abstract class BaseGenerator<TOptions extends BaseGeneratorOptions = BaseGeneratorOptions, TResult extends GeneratedFile[] = GeneratedFile[]> {
25
- /** Validated and merged options */
26
- protected options: Required<TOptions>;
27
- /** Logger instance for this generator */
28
- protected readonly logger: CodegenLogger;
29
- /** File manager for all file operations */
30
- protected readonly fileManager: FileManager;
31
- /** Template engine for content generation (optional) */
32
- protected readonly templateEngine?: TemplateEngine;
33
- /** Language-specific type mapper */
34
- protected readonly typeMapper: TypeMapper;
35
- /** Enhanced error handler for comprehensive error reporting */
36
- protected readonly errorHandler: ErrorHandler;
37
- /** Error boundary for catching and handling all generator errors */
38
- protected readonly errorBoundary: GeneratorErrorBoundary;
39
- /** Progress callback if provided */
40
- private progressCallback?;
41
- /** Generated files tracking */
42
- private generatedFiles;
43
- /** Generation start time for performance metrics */
44
- private generationStartTime;
45
- /** Cache for expensive operations */
46
- private readonly cache;
47
- constructor(options: TOptions);
48
- /**
49
- * Get the name of the target language (e.g., "TypeScript", "Python", "Rust")
50
- */
51
- protected abstract getLanguageName(): string;
52
- /**
53
- * Get the file extension for the target language (e.g., ".ts", ".py", ".rs")
54
- */
55
- protected abstract getFileExtension(): string;
56
- /**
57
- * Create a language-specific type mapper
58
- */
59
- protected abstract createTypeMapper(): TypeMapper;
60
- /**
61
- * Generate content for a single schema
62
- * @param schema - The TypeSchema to generate code for
63
- * @param context - Additional context for generation
64
- */
65
- protected abstract generateSchemaContent(schema: TypeSchema, context: TemplateContext): Promise<string>;
66
- /**
67
- * Validate generated content before writing
68
- * @param content - The generated content
69
- * @param context - The generation context
70
- */
71
- protected abstract validateContent(content: string, context: TemplateContext): Promise<void>;
72
- /**
73
- * Filter and sort schemas with language-specific logic
74
- * @param schemas - Input schemas
75
- */
76
- protected abstract filterAndSortSchemas(schemas: TypeSchema[]): TypeSchema[];
77
- /**
78
- * Get generator capabilities - can be overridden for introspection
79
- */
80
- getCapabilities(): GeneratorCapabilities;
81
- /**
82
- * Create file manager instance - can be overridden for custom file handling
83
- */
84
- protected createFileManager(): FileManager;
85
- /**
86
- * Create template engine instance - can be overridden for custom templates
87
- * Returns undefined if template engine is not needed
88
- */
89
- protected createTemplateEngine(): TemplateEngine | undefined;
90
- /**
91
- * Generate code from TypeSchema documents
92
- * This is the main method that orchestrates the entire generation process
93
- * @param schemas - Array of TypeSchema documents
94
- */
95
- generate(schemas: TypeSchema[]): Promise<TResult>;
96
- /**
97
- * Generate and return content without writing files (useful for testing)
98
- * @param schemas - Array of TypeSchema documents
99
- */
100
- build(schemas: TypeSchema[]): Promise<TResult>;
101
- /**
102
- * Create a file builder for fluent file generation
103
- * @param filename - Name of the file to create
104
- */
105
- file(filename: string): import("./builders/FileBuilder").FileBuilder;
106
- /**
107
- * Create a directory builder for batch operations
108
- * @param path - Directory path relative to output directory
109
- */
110
- directory(path: string): import("./builders/DirectoryBuilder").DirectoryBuilder;
111
- /**
112
- * Create an index file builder
113
- * @param directory - Directory to create index for
114
- */
115
- index(directory?: string): import("./builders/IndexBuilder").IndexBuilder;
116
- /**
117
- * Set progress callback for monitoring generation
118
- * @param callback - Progress callback function
119
- */
120
- onProgress(callback: ProgressCallback): this;
121
- /**
122
- * Validate generator configuration
123
- */
124
- private validateConfiguration;
125
- /**
126
- * Merge options with defaults
127
- */
128
- private mergeWithDefaults;
129
- /**
130
- * Validate schemas before processing
131
- */
132
- private validateSchemas;
133
- /**
134
- * Validate individual schema
135
- */
136
- protected validateSchema(schema: TypeSchema): Promise<void>;
137
- /**
138
- * Detect circular references in schema dependencies
139
- */
140
- private detectCircularReferences;
141
- /**
142
- * Generate files from processed schemas
143
- */
144
- private generateFiles;
145
- /**
146
- * Generate a single file from a schema
147
- */
148
- private generateFileForSchema;
149
- /**
150
- * Ensure filename has correct extension
151
- */
152
- private ensureFileExtension;
153
- /**
154
- * Extract exported symbols from generated content
155
- * Can be overridden by language-specific implementations
156
- */
157
- protected extractExports(content: string): string[];
158
- /**
159
- * Report progress to callback if provided
160
- */
161
- protected reportProgress(phase: "validation" | "generation" | "writing" | "complete", current: number, total: number, message?: string, schema?: TypeSchema): void;
162
- /**
163
- * Run post-generation hooks
164
- * Can be overridden to add custom post-processing
165
- */
166
- protected runPostGenerationHooks(): Promise<void>;
167
- /**
168
- * Get cached value or compute and cache it
169
- */
170
- protected getCachedOrCompute<T>(key: string, computeFn: () => T | Promise<T>): T | Promise<T>;
171
- /**
172
- * Clear internal cache
173
- */
174
- protected clearCache(): void;
175
- /**
176
- * Get generation statistics
177
- */
178
- getGenerationStats(): {
179
- filesGenerated: number;
180
- totalSize: number;
181
- averageFileSize: number;
182
- generationTime: number;
183
- averageTimePerFile: number;
184
- cacheHitRate: number;
185
- };
186
- }