@atomic-ehr/codegen 0.0.1-canary.20251006092200.fdb4a88 → 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 -93
  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 -36
  76. package/dist/typeschema/generator.js +0 -243
  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 -261
  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,12 +0,0 @@
1
- /**
2
- * Core types and interfaces for the base generator system
3
- *
4
- * This module provides the foundational type definitions that all generators
5
- * build upon, ensuring consistency and type safety across the system.
6
- */
7
- /**
8
- * Abstract base class for type mapping between FHIR and target languages
9
- * Each language-specific generator must implement this interface
10
- */
11
- export class TypeMapper {
12
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * Common types used in generated code
3
- */
4
- /**
5
- * Result of validation operation
6
- */
7
- export interface ValidationResult {
8
- valid: boolean;
9
- errors: string[];
10
- }
11
- /**
12
- * Base type for FHIR resources
13
- */
14
- export interface Resource {
15
- resourceType: string;
16
- id?: string;
17
- meta?: Meta;
18
- }
19
- /**
20
- * FHIR Meta element
21
- */
22
- export interface Meta {
23
- versionId?: string;
24
- lastUpdated?: string;
25
- source?: string;
26
- profile?: string[];
27
- security?: Coding[];
28
- tag?: Coding[];
29
- }
30
- /**
31
- * FHIR Coding element
32
- */
33
- export interface Coding {
34
- system?: string;
35
- version?: string;
36
- code?: string;
37
- display?: string;
38
- userSelected?: boolean;
39
- }
40
- /**
41
- * Generic resource type mapping interface
42
- * Maps FHIR resource type strings to their corresponding TypeScript interfaces
43
- */
44
- export interface ResourceTypeMap {
45
- [resourceType: string]: any;
46
- }
47
- /**
48
- * Type-safe resource type mapping generator
49
- * Creates a mapping from resource type strings to interfaces for a given set of resource types
50
- */
51
- export type CreateResourceTypeMap<T extends readonly string[]> = {
52
- [K in T[number]]: any;
53
- };
@@ -1,4 +0,0 @@
1
- /**
2
- * Common types used in generated code
3
- */
4
- export {};
@@ -1,190 +0,0 @@
1
- /**
2
- * Modern TypeScript Generator built on BaseGenerator
3
- *
4
- * This is the new, clean implementation that replaces the monolithic typescript.ts generator.
5
- * Built using the BaseGenerator architecture with TypeMapper, TemplateEngine, and FileManager.
6
- */
7
- import type { TypeSchema } from "@typeschema/types";
8
- import { BaseGenerator } from "./base/BaseGenerator";
9
- import { type TypeScriptTypeMapperOptions } from "./base/TypeScriptTypeMapper";
10
- import type { BaseGeneratorOptions, GeneratedFile, TemplateContext, TypeMapper } from "./base/types";
11
- /**
12
- * TypeScript-specific generator options
13
- */
14
- export interface TypeScriptGeneratorOptions extends BaseGeneratorOptions {
15
- /** Module format for imports/exports */
16
- moduleFormat?: "esm" | "cjs";
17
- /** Whether to generate index files */
18
- generateIndex?: boolean;
19
- /** Include JSDoc documentation */
20
- includeDocuments?: boolean;
21
- /** Naming convention for types */
22
- namingConvention?: "PascalCase" | "camelCase";
23
- /** Include FHIR extensions */
24
- includeExtensions?: boolean;
25
- /** Include FHIR profiles */
26
- includeProfiles?: boolean;
27
- /** Generate value set files (default: false) */
28
- generateValueSets?: boolean;
29
- /** Include helper validation functions (default: false) */
30
- includeValueSetHelpers?: boolean;
31
- /**
32
- * Which binding strengths to generate value sets for
33
- * Only used when valueSetMode is 'custom'
34
- * @default ['required']
35
- */
36
- valueSetStrengths?: ("required" | "preferred" | "extensible" | "example")[];
37
- /**
38
- * Directory name for value set files (relative to outputDir)
39
- * @default 'valuesets'
40
- */
41
- valueSetDirectory?: string;
42
- /**
43
- * Value set generation mode
44
- * - 'all': Generate for all binding strengths with enums
45
- * - 'required-only': Generate only for required bindings (safe default)
46
- * - 'custom': Use valueSetStrengths array to control
47
- * @default 'required-only'
48
- */
49
- valueSetMode?: "all" | "required-only" | "custom";
50
- /** Type mapper options */
51
- typeMapperOptions?: TypeScriptTypeMapperOptions;
52
- }
53
- /**
54
- * Result of generating a single TypeScript file
55
- */
56
- export interface GeneratedTypeScript {
57
- content: string;
58
- imports: Map<string, string>;
59
- exports: string[];
60
- filename: string;
61
- }
62
- /**
63
- * Modern TypeScript Generator
64
- *
65
- * Generates clean, type-safe TypeScript interfaces from FHIR TypeSchema documents.
66
- * Uses the new BaseGenerator architecture for maintainability and extensibility.
67
- */
68
- export declare class TypeScriptGenerator extends BaseGenerator<TypeScriptGeneratorOptions, GeneratedFile[]> {
69
- private readonly resourceTypes;
70
- private collectedValueSets;
71
- private get tsOptions();
72
- protected getLanguageName(): string;
73
- protected getFileExtension(): string;
74
- protected createTypeMapper(): TypeMapper;
75
- protected generateSchemaContent(schema: TypeSchema, _context: TemplateContext): Promise<string>;
76
- protected filterAndSortSchemas(schemas: TypeSchema[]): TypeSchema[];
77
- protected validateContent(content: string, context: TemplateContext): Promise<void>;
78
- /**
79
- * Transform multiple schemas into TypeScript
80
- */
81
- transformSchemas(schemas: TypeSchema[]): Promise<GeneratedTypeScript[]>;
82
- /**
83
- * Transform a single schema into TypeScript
84
- */
85
- transformSchema(schema: TypeSchema): Promise<GeneratedTypeScript | undefined>;
86
- /**
87
- * Check if a binding schema should generate a value set file
88
- */
89
- private shouldGenerateValueSet;
90
- /**
91
- * Collect value sets from schemas that should generate value set files
92
- */
93
- private collectValueSets;
94
- /**
95
- * Check if a field binding should use a value set type
96
- */
97
- private shouldUseValueSetType;
98
- /**
99
- * Get the TypeScript type name for a binding
100
- */
101
- private getValueSetTypeName;
102
- /**
103
- * Check if a field has enum values that should be inlined
104
- */
105
- private shouldUseInlineEnum;
106
- /**
107
- * Generate inline enum type from field enum values
108
- */
109
- private generateInlineEnumType;
110
- private shouldSkipSchema;
111
- private getFilenameForSchema;
112
- private extractImportsFromContent;
113
- private extractExportsFromContent;
114
- /**
115
- * Generate special Reference interface with generics
116
- */
117
- private generateReferenceInterface;
118
- /**
119
- * Generate TypeScript interface directly without templates
120
- */
121
- private generateTypeScriptInterface;
122
- /**
123
- * Collect import dependencies from a field
124
- */
125
- private collectFieldImports;
126
- /**
127
- * Extract resource types from reference field constraints
128
- */
129
- private extractReferenceTypes;
130
- /**
131
- * Generate nested type interface
132
- */
133
- private generateNestedTypeInterface;
134
- /**
135
- * Capitalize first letter of string
136
- */
137
- private capitalizeFirst;
138
- /**
139
- * Generate field lines (handles polymorphic fields by expanding them)
140
- */
141
- private generateFieldLines;
142
- /**
143
- * Generate a single field line
144
- */
145
- private generateFieldLine;
146
- /**
147
- * Extract exported symbols from TypeScript content
148
- */
149
- protected extractExports(content: string): string[];
150
- /**
151
- * Set output directory for compatibility with API builder
152
- */
153
- setOutputDir(directory: string): void;
154
- /**
155
- * Update generator options for compatibility with API builder
156
- */
157
- setOptions(options: Partial<TypeScriptGeneratorOptions>): void;
158
- /**
159
- * Get current options for compatibility with API builder
160
- */
161
- getOptions(): TypeScriptGeneratorOptions;
162
- /**
163
- * Override generate to clean directory first
164
- */
165
- generate(schemas: TypeSchema[]): Promise<GeneratedFile[]>;
166
- /**
167
- * Run post-generation hooks - generate utility files
168
- */
169
- protected runPostGenerationHooks(): Promise<void>;
170
- /**
171
- * Generate utilities.ts file with ResourceType union
172
- */
173
- private generateUtilitiesFile;
174
- /**
175
- * Generate a complete value set TypeScript file
176
- */
177
- private generateValueSetFile;
178
- /**
179
- * Create valuesets directory and generate all value set files
180
- */
181
- private generateValueSetFiles;
182
- /**
183
- * Generate index.ts file that re-exports all value sets
184
- */
185
- private generateValueSetIndexFile;
186
- /**
187
- * Generate main types/index.ts file that exports all types and value sets
188
- */
189
- private generateMainIndexFile;
190
- }