@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.
- package/dist/cli/index.js +45 -124
- package/dist/index.d.ts +2130 -62
- package/dist/index.js +5865 -84
- package/dist/index.js.map +1 -0
- package/package.json +3 -7
- package/dist/api/builder.d.ts +0 -154
- package/dist/api/builder.js +0 -341
- package/dist/api/generators/base/BaseGenerator.d.ts +0 -186
- package/dist/api/generators/base/BaseGenerator.js +0 -565
- package/dist/api/generators/base/FileManager.d.ts +0 -88
- package/dist/api/generators/base/FileManager.js +0 -202
- package/dist/api/generators/base/PythonTypeMapper.d.ts +0 -16
- package/dist/api/generators/base/PythonTypeMapper.js +0 -71
- package/dist/api/generators/base/TemplateEngine.d.ts +0 -126
- package/dist/api/generators/base/TemplateEngine.js +0 -133
- package/dist/api/generators/base/TypeMapper.d.ts +0 -129
- package/dist/api/generators/base/TypeMapper.js +0 -153
- package/dist/api/generators/base/TypeScriptTypeMapper.d.ts +0 -51
- package/dist/api/generators/base/TypeScriptTypeMapper.js +0 -232
- package/dist/api/generators/base/builders/DirectoryBuilder.d.ts +0 -99
- package/dist/api/generators/base/builders/DirectoryBuilder.js +0 -215
- package/dist/api/generators/base/builders/FileBuilder.d.ts +0 -160
- package/dist/api/generators/base/builders/FileBuilder.js +0 -406
- package/dist/api/generators/base/builders/IndexBuilder.d.ts +0 -126
- package/dist/api/generators/base/builders/IndexBuilder.js +0 -290
- package/dist/api/generators/base/enhanced-errors.d.ts +0 -84
- package/dist/api/generators/base/enhanced-errors.js +0 -259
- package/dist/api/generators/base/error-handler.d.ts +0 -89
- package/dist/api/generators/base/error-handler.js +0 -243
- package/dist/api/generators/base/errors.d.ts +0 -251
- package/dist/api/generators/base/errors.js +0 -692
- package/dist/api/generators/base/index.d.ts +0 -99
- package/dist/api/generators/base/index.js +0 -160
- package/dist/api/generators/base/types.d.ts +0 -433
- package/dist/api/generators/base/types.js +0 -12
- package/dist/api/generators/types.d.ts +0 -53
- package/dist/api/generators/types.js +0 -4
- package/dist/api/generators/typescript.d.ts +0 -190
- package/dist/api/generators/typescript.js +0 -819
- package/dist/api/index.d.ts +0 -51
- package/dist/api/index.js +0 -50
- package/dist/cli/commands/generate/typescript.d.ts +0 -10
- package/dist/cli/commands/generate/typescript.js +0 -52
- package/dist/cli/commands/generate.d.ts +0 -15
- package/dist/cli/commands/generate.js +0 -159
- package/dist/cli/commands/index.d.ts +0 -29
- package/dist/cli/commands/index.js +0 -100
- package/dist/cli/commands/typeschema/generate.d.ts +0 -19
- package/dist/cli/commands/typeschema/generate.js +0 -124
- package/dist/cli/commands/typeschema.d.ts +0 -10
- package/dist/cli/commands/typeschema.js +0 -47
- package/dist/cli/index.d.ts +0 -9
- package/dist/cli/utils/log.d.ts +0 -10
- package/dist/cli/utils/log.js +0 -23
- package/dist/cli/utils/prompts.d.ts +0 -56
- package/dist/cli/utils/prompts.js +0 -202
- package/dist/cli/utils/spinner.d.ts +0 -110
- package/dist/cli/utils/spinner.js +0 -266
- package/dist/config.d.ts +0 -217
- package/dist/config.js +0 -591
- package/dist/logger.d.ts +0 -157
- package/dist/logger.js +0 -281
- package/dist/typeschema/cache.d.ts +0 -80
- package/dist/typeschema/cache.js +0 -239
- package/dist/typeschema/core/binding.d.ts +0 -11
- package/dist/typeschema/core/binding.js +0 -143
- package/dist/typeschema/core/field-builder.d.ts +0 -12
- package/dist/typeschema/core/field-builder.js +0 -123
- package/dist/typeschema/core/identifier.d.ts +0 -13
- package/dist/typeschema/core/identifier.js +0 -94
- package/dist/typeschema/core/nested-types.d.ts +0 -9
- package/dist/typeschema/core/nested-types.js +0 -93
- package/dist/typeschema/core/transformer.d.ts +0 -11
- package/dist/typeschema/core/transformer.js +0 -235
- package/dist/typeschema/generator.d.ts +0 -36
- package/dist/typeschema/generator.js +0 -243
- package/dist/typeschema/index.d.ts +0 -15
- package/dist/typeschema/index.js +0 -15
- package/dist/typeschema/parser.d.ts +0 -79
- package/dist/typeschema/parser.js +0 -274
- package/dist/typeschema/profile/processor.d.ts +0 -14
- package/dist/typeschema/profile/processor.js +0 -261
- package/dist/typeschema/register.d.ts +0 -21
- package/dist/typeschema/register.js +0 -117
- package/dist/typeschema/types.d.ts +0 -240
- package/dist/typeschema/types.js +0 -19
- package/dist/utils/codegen-logger.d.ts +0 -102
- package/dist/utils/codegen-logger.js +0 -196
- package/dist/utils.d.ts +0 -22
- 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,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
|
-
}
|