@atomic-ehr/codegen 0.0.1-canary.20250811151625.dc70a39 → 0.0.1-canary.20250811235950.67a72a5

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.
@@ -64,7 +64,7 @@ export declare class APIBuilder {
64
64
  */
65
65
  fromSchemas(schemas: TypeSchema[]): APIBuilder;
66
66
  /**
67
- * Configure TypeScript generation with validation support
67
+ * Configure TypeScript generation
68
68
  */
69
69
  typescript(options?: {
70
70
  moduleFormat?: "esm" | "cjs";
@@ -73,11 +73,6 @@ export declare class APIBuilder {
73
73
  namingConvention?: "PascalCase" | "camelCase";
74
74
  includeExtensions?: boolean;
75
75
  includeProfiles?: boolean;
76
- generateValidators?: boolean;
77
- generateGuards?: boolean;
78
- generateBuilders?: boolean;
79
- strictValidation?: boolean;
80
- includePerformanceMetrics?: boolean;
81
76
  }): APIBuilder;
82
77
  /**
83
78
  * Configure REST client generation
@@ -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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"}
@@ -47,6 +47,8 @@ export declare class TypeScriptAPIGenerator {
47
47
  private resourceTypes;
48
48
  private currentSchemaName?;
49
49
  private profileTypes;
50
+ private profilesByPackage;
51
+ private packageNameMap;
50
52
  private enumTypes;
51
53
  private globalEnumTypes;
52
54
  private fieldEnumMap;
@@ -104,6 +106,10 @@ export declare class TypeScriptAPIGenerator {
104
106
  getOptions(): TypeScriptAPIOptions;
105
107
  private generateIndexFile;
106
108
  private ensureDirectoryExists;
109
+ /**
110
+ * Clean the output directory by removing all existing files and subdirectories
111
+ */
112
+ private cleanOutputDirectory;
107
113
  /**
108
114
  * Filter schemas based on includeExtensions option
109
115
  */
@@ -112,6 +118,18 @@ export declare class TypeScriptAPIGenerator {
112
118
  * Generate index files for subfolders
113
119
  */
114
120
  private generateSubfolderIndexFiles;
121
+ /**
122
+ * Generate profile index files with package-based organization
123
+ */
124
+ private generateProfileIndexFiles;
125
+ /**
126
+ * Generate index file for a specific package
127
+ */
128
+ private generatePackageIndex;
129
+ /**
130
+ * Generate main profiles index with namespace exports
131
+ */
132
+ private generateMainProfilesIndex;
115
133
  /**
116
134
  * Generate index content for a subfolder
117
135
  */
@@ -133,29 +151,29 @@ export declare class TypeScriptAPIGenerator {
133
151
  */
134
152
  private getFilename;
135
153
  /**
136
- * Generate TypeScript for a profile schema
154
+ * Sanitize package name for use as directory name
137
155
  */
138
- private generateProfile;
156
+ private sanitizePackageName;
139
157
  /**
140
- * Generate TypeScript for a profile schema
158
+ * Generate namespace name from original package name by capitalizing each dot-separated segment
141
159
  */
142
- private generateTypeScriptForProfile;
160
+ private generateNamespaceName;
143
161
  /**
144
- * Generate TypeScript for a profile field with constraints
162
+ * Calculate the correct import path from current profile to base type
145
163
  */
146
- private generateProfileField;
164
+ private calculateImportPath;
147
165
  /**
148
- * Generate profile validator function
166
+ * Generate TypeScript for a profile schema
149
167
  */
150
- private generateProfileValidator;
168
+ private generateProfile;
151
169
  /**
152
- * Generate TypeScript field with profile constraints applied
170
+ * Generate TypeScript for a profile schema
153
171
  */
154
- private generateConstrainedProfileField;
172
+ private generateTypeScriptForProfile;
155
173
  /**
156
- * Generate validation logic for a specific constraint
174
+ * Generate TypeScript for a profile field with constraints
157
175
  */
158
- private generateConstraintValidation;
176
+ private generateProfileField;
159
177
  /**
160
178
  * Generate an enum type for a field with enumerated values
161
179
  */
@@ -168,9 +186,5 @@ export declare class TypeScriptAPIGenerator {
168
186
  * Convert string to PascalCase
169
187
  */
170
188
  private toPascalCase;
171
- /**
172
- * Generate profile type guard function
173
- */
174
- private generateProfileTypeGuard;
175
189
  }
176
190
  //# sourceMappingURL=typescript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/api/generators/typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/api/generators/typescript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,YAAa,SAAQ,OAAO;IACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;CACjD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,EAAE,EAAE,YAAY,CA2N3D,CAAC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,YAAa,SAAQ,OAAO;IACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;CACjD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,EAAE,EAAE,YAAY,CAyN3D,CAAC"}
package/dist/cli/index.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  step,
18
18
  success,
19
19
  warn
20
- } from "../index-ggpfvj56.js";
20
+ } from "../index-m60p8fkc.js";
21
21
 
22
22
  // node_modules/emoji-regex/index.js
23
23
  var require_emoji_regex = __commonJS((exports, module) => {
@@ -8419,8 +8419,6 @@ var generateCommand = {
8419
8419
  generateIndex: argv["generate-index"] ?? config.typescript?.generateIndex ?? true,
8420
8420
  includeDocuments: argv["include-docs"] ?? config.typescript?.includeDocuments ?? false,
8421
8421
  namingConvention: argv["naming-convention"] || config.typescript?.namingConvention || "PascalCase",
8422
- generateValidators: config.typescript?.generateValidators ?? true,
8423
- generateGuards: config.typescript?.generateGuards ?? true,
8424
8422
  includeProfiles: config.typescript?.includeProfiles ?? false
8425
8423
  });
8426
8424
  }
package/dist/config.d.ts CHANGED
@@ -50,8 +50,6 @@ export interface TypeScriptGeneratorConfig {
50
50
  includeDocuments?: boolean;
51
51
  namingConvention?: "PascalCase" | "camelCase";
52
52
  strictMode?: boolean;
53
- generateValidators?: boolean;
54
- generateGuards?: boolean;
55
53
  includeProfiles?: boolean;
56
54
  includeExtensions?: boolean;
57
55
  includeValueSets?: boolean;
@@ -64,7 +62,6 @@ export interface TypeScriptGeneratorConfig {
64
62
  generateKind?: "interface" | "type" | "both";
65
63
  includeConstraints?: boolean;
66
64
  includeDocumentation?: boolean;
67
- generateValidators?: boolean;
68
65
  strictMode?: boolean;
69
66
  subfolder?: string;
70
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -4997,7 +4997,7 @@ ${resourceTypesArray.map((type) => ` '${type}': ${type};`).join(`
4997
4997
  }
4998
4998
 
4999
4999
  // src/api/generators/typescript.ts
5000
- import { mkdir as mkdir3, writeFile as writeFile5 } from "node:fs/promises";
5000
+ import { access as access2, mkdir as mkdir3, rm, writeFile as writeFile5 } from "node:fs/promises";
5001
5001
  import { dirname as dirname2, join as join11 } from "node:path";
5002
5002
 
5003
5003
  // src/utils.ts
@@ -5039,6 +5039,8 @@ class TypeScriptAPIGenerator {
5039
5039
  resourceTypes = new Set;
5040
5040
  currentSchemaName;
5041
5041
  profileTypes = new Set;
5042
+ profilesByPackage = new Map;
5043
+ packageNameMap = new Map;
5042
5044
  enumTypes = new Map;
5043
5045
  globalEnumTypes = new Map;
5044
5046
  fieldEnumMap = new Map;
@@ -5247,6 +5249,7 @@ class TypeScriptAPIGenerator {
5247
5249
  const filteredSchemas = this.filterSchemas(schemas);
5248
5250
  const results = await this.transformSchemas(filteredSchemas);
5249
5251
  const generatedFiles = [];
5252
+ await this.cleanOutputDirectory();
5250
5253
  await mkdir3(this.options.outputDir, { recursive: true });
5251
5254
  if (this.options.includeProfiles) {
5252
5255
  await mkdir3(join11(this.options.outputDir, "profiles"), {
@@ -5468,6 +5471,17 @@ ${result.content}` : result.content;
5468
5471
  const dir = dirname2(filePath);
5469
5472
  await mkdir3(dir, { recursive: true });
5470
5473
  }
5474
+ async cleanOutputDirectory() {
5475
+ try {
5476
+ await access2(this.options.outputDir);
5477
+ this.logger.debug(`Cleaning output directory: ${this.options.outputDir}`);
5478
+ await rm(this.options.outputDir, { recursive: true, force: true });
5479
+ } catch (error2) {
5480
+ if (error2?.code !== "ENOENT") {
5481
+ this.logger.warn(`Failed to clean output directory: ${error2}`);
5482
+ }
5483
+ }
5484
+ }
5471
5485
  filterSchemas(schemas) {
5472
5486
  if (this.options.includeExtensions) {
5473
5487
  return schemas;
@@ -5483,17 +5497,88 @@ ${result.content}` : result.content;
5483
5497
  subfolders.push("profiles");
5484
5498
  }
5485
5499
  for (const subfolder of subfolders) {
5486
- const subfolderResults = results.filter((r) => r.filename.startsWith(`${subfolder}/`));
5487
- const indexContent = this.generateSubfolderIndex(subfolderResults, subfolder);
5488
- const indexPath = join11(this.options.outputDir, subfolder, "index.ts");
5489
- await writeFile5(indexPath, indexContent, "utf-8");
5500
+ if (subfolder === "profiles") {
5501
+ await this.generateProfileIndexFiles(generatedFiles);
5502
+ } else {
5503
+ const subfolderResults = results.filter((r) => r.filename.startsWith(`${subfolder}/`));
5504
+ const indexContent = this.generateSubfolderIndex(subfolderResults, subfolder);
5505
+ const indexPath = join11(this.options.outputDir, subfolder, "index.ts");
5506
+ await writeFile5(indexPath, indexContent, "utf-8");
5507
+ generatedFiles.push({
5508
+ path: indexPath,
5509
+ filename: `${subfolder}/index.ts`,
5510
+ content: indexContent,
5511
+ exports: subfolderResults.flatMap((r) => r.exports)
5512
+ });
5513
+ }
5514
+ }
5515
+ }
5516
+ async generateProfileIndexFiles(generatedFiles) {
5517
+ for (const [
5518
+ packageName,
5519
+ profileNames
5520
+ ] of this.profilesByPackage.entries()) {
5521
+ const packageIndexContent = this.generatePackageIndex(packageName, profileNames);
5522
+ const packageIndexPath = join11(this.options.outputDir, "profiles", packageName, "index.ts");
5523
+ await writeFile5(packageIndexPath, packageIndexContent, "utf-8");
5490
5524
  generatedFiles.push({
5491
- path: indexPath,
5492
- filename: `${subfolder}/index.ts`,
5493
- content: indexContent,
5494
- exports: subfolderResults.flatMap((r) => r.exports)
5525
+ path: packageIndexPath,
5526
+ filename: `profiles/${packageName}/index.ts`,
5527
+ content: packageIndexContent,
5528
+ exports: profileNames
5495
5529
  });
5496
5530
  }
5531
+ const mainProfilesIndex = this.generateMainProfilesIndex();
5532
+ const mainIndexPath = join11(this.options.outputDir, "profiles", "index.ts");
5533
+ await writeFile5(mainIndexPath, mainProfilesIndex, "utf-8");
5534
+ generatedFiles.push({
5535
+ path: mainIndexPath,
5536
+ filename: "profiles/index.ts",
5537
+ content: mainProfilesIndex,
5538
+ exports: Array.from(this.profilesByPackage.keys())
5539
+ });
5540
+ }
5541
+ generatePackageIndex(packageName, profileNames) {
5542
+ const lines = [];
5543
+ lines.push("/**");
5544
+ lines.push(` * ${packageName} Profiles Index`);
5545
+ lines.push(" * ");
5546
+ lines.push(" * Auto-generated exports for all profile types in this package.");
5547
+ lines.push(" */");
5548
+ lines.push("");
5549
+ if (profileNames.length === 0) {
5550
+ lines.push("// No profiles in this package");
5551
+ lines.push("export {};");
5552
+ return lines.join(`
5553
+ `);
5554
+ }
5555
+ for (const profileName of profileNames) {
5556
+ lines.push(`export type { ${profileName} } from './${profileName}';`);
5557
+ }
5558
+ return lines.join(`
5559
+ `);
5560
+ }
5561
+ generateMainProfilesIndex() {
5562
+ const lines = [];
5563
+ lines.push("/**");
5564
+ lines.push(" * Profiles Index");
5565
+ lines.push(" * ");
5566
+ lines.push(" * Auto-generated namespace exports for all profile packages.");
5567
+ lines.push(" */");
5568
+ lines.push("");
5569
+ if (this.profilesByPackage.size === 0) {
5570
+ lines.push("// No profile packages found");
5571
+ lines.push("export {};");
5572
+ return lines.join(`
5573
+ `);
5574
+ }
5575
+ for (const sanitizedPackageName of this.profilesByPackage.keys()) {
5576
+ const originalPackageName = this.packageNameMap.get(sanitizedPackageName);
5577
+ const namespaceNameForExport = this.generateNamespaceName(originalPackageName);
5578
+ lines.push(`export * as ${namespaceNameForExport} from './${sanitizedPackageName}';`);
5579
+ }
5580
+ return lines.join(`
5581
+ `);
5497
5582
  }
5498
5583
  generateSubfolderIndex(results, subfolder) {
5499
5584
  const lines = [];
@@ -5543,18 +5628,49 @@ ${result.content}` : result.content;
5543
5628
  }
5544
5629
  getBaseInterface(schema) {
5545
5630
  if ((isTypeSchemaForResourceComplexTypeLogical(schema) || schema.identifier.kind === "profile") && schema.base) {
5546
- return this.getType(schema.base);
5631
+ const baseIdentifier = schema.base;
5632
+ const typeInfo = this.getType(baseIdentifier);
5633
+ return {
5634
+ ...typeInfo,
5635
+ baseIdentifier
5636
+ };
5547
5637
  }
5548
5638
  return null;
5549
5639
  }
5550
5640
  getFilename(identifier) {
5551
5641
  const name = toPascalCase(identifier.name);
5552
5642
  if (identifier.kind === "profile" && this.options.includeProfiles) {
5553
- const subfolder = "profiles";
5643
+ const originalPackageName = identifier.package;
5644
+ const sanitizedPackageName = this.sanitizePackageName(originalPackageName);
5645
+ const subfolder = `profiles/${sanitizedPackageName}`;
5646
+ if (!this.profilesByPackage.has(sanitizedPackageName)) {
5647
+ this.profilesByPackage.set(sanitizedPackageName, []);
5648
+ this.packageNameMap.set(sanitizedPackageName, originalPackageName);
5649
+ }
5650
+ this.profilesByPackage.get(sanitizedPackageName).push(name);
5554
5651
  return `${subfolder}/${name}.ts`;
5555
5652
  }
5556
5653
  return `${name}.ts`;
5557
5654
  }
5655
+ sanitizePackageName(packageName) {
5656
+ return packageName.replace(/[@/.]/g, "-").replace(/[^a-zA-Z0-9\-_]/g, "").toLowerCase();
5657
+ }
5658
+ generateNamespaceName(originalPackageName) {
5659
+ return originalPackageName.split(".").map((segment) => this.toPascalCase(segment)).join("");
5660
+ }
5661
+ calculateImportPath(currentSchema, baseIdentifier) {
5662
+ if (baseIdentifier.kind === "profile") {
5663
+ const currentPackage = this.sanitizePackageName(currentSchema.identifier.package);
5664
+ const basePackage = this.sanitizePackageName(baseIdentifier.package);
5665
+ if (currentPackage === basePackage) {
5666
+ return `./${this.formatTypeName(baseIdentifier.name)}`;
5667
+ } else {
5668
+ return `../${basePackage}/${this.formatTypeName(baseIdentifier.name)}`;
5669
+ }
5670
+ } else {
5671
+ return `../../${this.formatTypeName(baseIdentifier.name)}`;
5672
+ }
5673
+ }
5558
5674
  async generateProfile(schema) {
5559
5675
  this.imports.clear();
5560
5676
  this.exports.clear();
@@ -5582,9 +5698,9 @@ ${result.content}` : result.content;
5582
5698
  }
5583
5699
  this.exports.add(interfaceName);
5584
5700
  const baseInterface = this.getBaseInterface(schema);
5585
- if (baseInterface && !baseInterface.isPrimitive) {
5586
- const importPath = baseInterface.value;
5587
- this.imports.set(baseInterface.value, `../${importPath}`);
5701
+ if (baseInterface && !baseInterface.isPrimitive && baseInterface.baseIdentifier) {
5702
+ const importPath = this.calculateImportPath(schema, baseInterface.baseIdentifier);
5703
+ this.imports.set(baseInterface.value, importPath);
5588
5704
  lines.push(`export interface ${interfaceName} extends ${baseInterface.value} {`);
5589
5705
  } else {
5590
5706
  lines.push(`export interface ${interfaceName} {`);
@@ -5616,12 +5732,6 @@ ${result.content}` : result.content;
5616
5732
  } else {
5617
5733
  lines.push("}");
5618
5734
  }
5619
- if (this.options.includeProfiles) {
5620
- lines.push("");
5621
- lines.push(this.generateProfileValidator(interfaceName, schema));
5622
- }
5623
- lines.push("");
5624
- lines.push(this.generateProfileTypeGuard(interfaceName, schema));
5625
5735
  return lines.join(`
5626
5736
  `);
5627
5737
  }
@@ -5640,7 +5750,8 @@ ${result.content}` : result.content;
5640
5750
  } else if (field.type) {
5641
5751
  const subType = this.getType(field.type);
5642
5752
  if (!subType.isPrimitive) {
5643
- this.imports.set(subType.value, `../${subType.value}`);
5753
+ const importPath = this.calculateImportPath(schema, field.type);
5754
+ this.imports.set(subType.value, importPath);
5644
5755
  }
5645
5756
  typeString = subType.value;
5646
5757
  }
@@ -5652,7 +5763,8 @@ ${result.content}` : result.content;
5652
5763
  } else if (field.type) {
5653
5764
  const subType = this.getType(field.type);
5654
5765
  if (!subType.isPrimitive) {
5655
- this.imports.set(subType.value, `../${subType.value}`);
5766
+ const importPath = this.calculateImportPath(schema, field.type);
5767
+ this.imports.set(subType.value, importPath);
5656
5768
  }
5657
5769
  typeString = subType.value;
5658
5770
  }
@@ -5674,144 +5786,6 @@ ${result.content}` : result.content;
5674
5786
  const arrayType = array ? "[]" : "";
5675
5787
  return `${fieldName}${optional}: ${typeString}${arrayType};`;
5676
5788
  }
5677
- generateProfileValidator(interfaceName, schema) {
5678
- const lines = [];
5679
- const validatorName = `validate${interfaceName}`;
5680
- lines.push("/**");
5681
- lines.push(` * Validate a resource against the ${interfaceName} profile`);
5682
- lines.push(" */");
5683
- lines.push(`export function ${validatorName}(resource: unknown): ValidationResult {`);
5684
- lines.push("\tconst errors: string[] = [];");
5685
- lines.push("");
5686
- const baseInterface = this.getBaseInterface(schema);
5687
- if (baseInterface && !baseInterface.isPrimitive) {
5688
- this.imports.set(`is${baseInterface.value}`, `../${baseInterface.value}`);
5689
- lines.push(` // Validate base resource`);
5690
- lines.push(` if (!is${baseInterface.value}(resource)) {`);
5691
- lines.push(` return { valid: false, errors: ['Not a valid ${baseInterface.value} resource'] };`);
5692
- lines.push("\t}");
5693
- lines.push("");
5694
- lines.push(` const typed = resource as ${baseInterface.value};`);
5695
- lines.push("");
5696
- }
5697
- if (schema.constraints) {
5698
- lines.push("\t// Profile constraint validation");
5699
- for (const [path9, constraint] of Object.entries(schema.constraints)) {
5700
- this.generateConstraintValidation(lines, path9, constraint);
5701
- }
5702
- lines.push("");
5703
- }
5704
- if (schema.constraints) {
5705
- const mustSupportFields = [];
5706
- for (const [path9, constraint] of Object.entries(schema.constraints)) {
5707
- if (constraint.mustSupport) {
5708
- mustSupportFields.push(path9);
5709
- }
5710
- }
5711
- if (mustSupportFields.length > 0) {
5712
- lines.push("\t// Must Support elements validation");
5713
- for (const field of mustSupportFields) {
5714
- lines.push(` // Must support: ${field}`);
5715
- lines.push(` // Note: Must Support validation is context-dependent`);
5716
- }
5717
- lines.push("");
5718
- }
5719
- }
5720
- lines.push("\treturn {");
5721
- lines.push("\t\tvalid: errors.length === 0,");
5722
- lines.push("\t\terrors");
5723
- lines.push("\t};");
5724
- lines.push("}");
5725
- this.imports.set("ValidationResult", "../types");
5726
- return lines.join(`
5727
- `);
5728
- }
5729
- generateConstrainedProfileField(path9, constraint, schema) {
5730
- const fieldPath = path9.includes(".") ? path9.split(".").pop() : path9;
5731
- if (!fieldPath)
5732
- return "";
5733
- let typeString = "any";
5734
- let required = false;
5735
- let array = false;
5736
- if (constraint.min !== undefined && constraint.min > 0) {
5737
- required = true;
5738
- }
5739
- if (constraint.max === "*") {
5740
- array = true;
5741
- }
5742
- switch (fieldPath) {
5743
- case "status":
5744
- typeString = "string";
5745
- break;
5746
- case "category":
5747
- typeString = "CodeableConcept";
5748
- array = true;
5749
- this.imports.set("CodeableConcept", "../CodeableConcept");
5750
- break;
5751
- case "code":
5752
- typeString = "CodeableConcept";
5753
- this.imports.set("CodeableConcept", "../CodeableConcept");
5754
- break;
5755
- case "subject":
5756
- typeString = "Reference";
5757
- this.imports.set("Reference", "../Reference");
5758
- break;
5759
- case "effective":
5760
- case "effectiveDateTime":
5761
- typeString = "string";
5762
- break;
5763
- case "effectivePeriod":
5764
- typeString = "Period";
5765
- this.imports.set("Period", "../Period");
5766
- break;
5767
- case "dataAbsentReason":
5768
- typeString = "CodeableConcept";
5769
- this.imports.set("CodeableConcept", "../CodeableConcept");
5770
- break;
5771
- case "component":
5772
- typeString = "any";
5773
- array = true;
5774
- break;
5775
- default:
5776
- if (constraint.binding && constraint.binding.strength === "required") {
5777
- typeString = "string";
5778
- }
5779
- }
5780
- if (constraint.fixedValue !== undefined) {
5781
- if (typeof constraint.fixedValue === "string") {
5782
- typeString = `'${constraint.fixedValue}'`;
5783
- } else {
5784
- typeString = JSON.stringify(constraint.fixedValue);
5785
- }
5786
- }
5787
- const optional = !required ? "?" : "";
5788
- const arrayType = array ? "[]" : "";
5789
- return `${fieldPath}${optional}: ${typeString}${arrayType};`;
5790
- }
5791
- generateConstraintValidation(lines, path9, constraint) {
5792
- const fieldPath = path9.includes(".") ? path9.split(".").pop() : path9;
5793
- if (constraint.min !== undefined && constraint.min > 0) {
5794
- if (constraint.min === 1) {
5795
- lines.push(` if (!typed.${fieldPath}) {`);
5796
- lines.push(` errors.push('${fieldPath} is required for this profile');`);
5797
- lines.push("\t}");
5798
- } else {
5799
- lines.push(` if (!typed.${fieldPath} || (Array.isArray(typed.${fieldPath}) && typed.${fieldPath}.length < ${constraint.min})) {`);
5800
- lines.push(` errors.push('${fieldPath} must have at least ${constraint.min} item(s)');`);
5801
- lines.push("\t}");
5802
- }
5803
- }
5804
- if (constraint.fixedValue !== undefined) {
5805
- const fixedValue = typeof constraint.fixedValue === "string" ? `'${constraint.fixedValue}'` : JSON.stringify(constraint.fixedValue);
5806
- lines.push(` if (typed.${fieldPath} !== ${fixedValue}) {`);
5807
- lines.push(` errors.push('${fieldPath} must have fixed value ${fixedValue}');`);
5808
- lines.push("\t}");
5809
- }
5810
- if (constraint.binding && constraint.binding.strength === "required") {
5811
- lines.push(` // Required binding validation for ${fieldPath}`);
5812
- lines.push(` // Note: Full value set validation requires external value set service`);
5813
- }
5814
- }
5815
5789
  generateEnumType(fieldName, enumValues, baseName) {
5816
5790
  const prefix = baseName || this.currentSchemaName || "";
5817
5791
  const enumTypeName = `${prefix}${this.toPascalCase(fieldName)}Values`;
@@ -5852,62 +5826,6 @@ ${result.content}` : result.content;
5852
5826
  toPascalCase(str) {
5853
5827
  return str.charAt(0).toUpperCase() + str.slice(1);
5854
5828
  }
5855
- generateProfileTypeGuard(interfaceName, schema) {
5856
- const lines = [];
5857
- const guardName = `is${interfaceName}`;
5858
- lines.push("/**");
5859
- lines.push(` * Type guard for ${interfaceName} profile`);
5860
- lines.push(" */");
5861
- lines.push(`export function ${guardName}(resource: unknown): resource is ${interfaceName} {`);
5862
- const baseInterface = this.getBaseInterface(schema);
5863
- if (baseInterface && !baseInterface.isPrimitive) {
5864
- this.imports.set(`is${baseInterface.value}`, `../${baseInterface.value}`);
5865
- lines.push(` if (!is${baseInterface.value}(resource)) return false;`);
5866
- lines.push("");
5867
- lines.push(` const typed = resource as ${baseInterface.value};`);
5868
- } else {
5869
- lines.push(` if (!resource || typeof resource !== 'object') return false;`);
5870
- lines.push("");
5871
- lines.push("\tconst typed = resource as any;");
5872
- }
5873
- if (schema.constraints) {
5874
- lines.push("\t// Profile constraint checks");
5875
- let hasRequiredChecks = false;
5876
- for (const [path9, constraint] of Object.entries(schema.constraints)) {
5877
- const fieldPath = path9.includes(".") ? path9.split(".").pop() : path9;
5878
- if (constraint.min !== undefined && constraint.min > 0) {
5879
- hasRequiredChecks = true;
5880
- if (constraint.min === 1) {
5881
- lines.push(` if (!typed.${fieldPath}) return false;`);
5882
- } else {
5883
- lines.push(` if (!typed.${fieldPath} || (Array.isArray(typed.${fieldPath}) && typed.${fieldPath}.length < ${constraint.min})) return false;`);
5884
- }
5885
- }
5886
- if (constraint.fixedValue !== undefined) {
5887
- hasRequiredChecks = true;
5888
- const fixedValue = typeof constraint.fixedValue === "string" ? `'${constraint.fixedValue}'` : JSON.stringify(constraint.fixedValue);
5889
- lines.push(` if (typed.${fieldPath} !== ${fixedValue}) return false;`);
5890
- }
5891
- }
5892
- if (hasRequiredChecks) {
5893
- lines.push("");
5894
- }
5895
- }
5896
- if (schema.extensions && schema.extensions.length > 0) {
5897
- lines.push("\t// Extension presence checks (simplified)");
5898
- for (const ext of schema.extensions) {
5899
- if (ext.min && ext.min > 0) {
5900
- lines.push(` // Required extension: ${ext.profile}`);
5901
- lines.push(` // Note: Full extension validation requires examining extension array`);
5902
- }
5903
- }
5904
- lines.push("");
5905
- }
5906
- lines.push("\treturn true;");
5907
- lines.push("}");
5908
- return lines.join(`
5909
- `);
5910
- }
5911
5829
  }
5912
5830
 
5913
5831
  // src/api/builder.ts
@@ -6215,8 +6133,6 @@ var DEFAULT_CONFIG = {
6215
6133
  includeDocuments: false,
6216
6134
  namingConvention: "PascalCase",
6217
6135
  strictMode: true,
6218
- generateValidators: true,
6219
- generateGuards: true,
6220
6136
  includeProfiles: true,
6221
6137
  includeExtensions: false,
6222
6138
  includeValueSets: true,
@@ -6229,7 +6145,6 @@ var DEFAULT_CONFIG = {
6229
6145
  generateKind: "interface",
6230
6146
  includeConstraints: true,
6231
6147
  includeDocumentation: true,
6232
- generateValidators: true,
6233
6148
  strictMode: false,
6234
6149
  subfolder: "profiles"
6235
6150
  },
@@ -6423,8 +6338,6 @@ class ConfigValidator {
6423
6338
  "generateIndex",
6424
6339
  "includeDocuments",
6425
6340
  "strictMode",
6426
- "generateValidators",
6427
- "generateGuards",
6428
6341
  "includeProfiles",
6429
6342
  "includeExtensions"
6430
6343
  ];
@@ -6625,7 +6538,6 @@ class ConfigValidator {
6625
6538
  const booleanFields = [
6626
6539
  "includeConstraints",
6627
6540
  "includeDocumentation",
6628
- "generateValidators",
6629
6541
  "strictMode"
6630
6542
  ];
6631
6543
  for (const field of booleanFields) {
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  generateTypesFromPackage,
17
17
  isConfig,
18
18
  loadConfig
19
- } from "./index-ggpfvj56.js";
19
+ } from "./index-m60p8fkc.js";
20
20
  export {
21
21
  loadConfig,
22
22
  isConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomic-ehr/codegen",
3
- "version": "0.0.1-canary.20250811151625.dc70a39",
3
+ "version": "0.0.1-canary.20250811235950.67a72a5",
4
4
  "description": "Code generation tools for FHIR resources and TypeSchema definitions",
5
5
  "keywords": [
6
6
  "fhir",