@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
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * CLI Utilities - Re-exports from main utils with spinner support
3
3
  */
4
- import { createSpinner } from "./spinner";
5
- export { type CodegenLogger, complete, configure, createLogger, debug, dim, error, header, info, type LogOptions, list, plain, progress, section, step, success, table, warn, } from "../../utils/codegen-logger";
4
+ import { createSpinner } from "./spinner.js";
5
+ export { type CodegenLogger, complete, configure, createLogger, debug, dim, error, header, info, type LogOptions, list, plain, progress, section, step, success, table, warn, } from "../../utils/codegen-logger.js";
6
6
  export { createSpinner };
7
7
  /**
8
8
  * Run a task with a spinner
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/log.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EACN,KAAK,aAAa,EAClB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,EACL,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,KAAK,UAAU,EACf,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,IAAI,GACJ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAClC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,CAAC,CAAC,CAUZ"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/log.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EACN,KAAK,aAAa,EAClB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,EACL,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,KAAK,UAAU,EACf,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAO,EACP,KAAK,EACL,IAAI,GACJ,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAClC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,CAAC,CAAC,CAUZ"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CLI Utilities - Re-exports from main utils with spinner support
3
+ */
4
+ import { createSpinner } from "./spinner.js";
5
+ // Re-export all logger functions from the main utils
6
+ export { complete, configure, createLogger, debug, dim, error, header, info, list, plain, progress, section, step, success, table, warn, } from "../../utils/codegen-logger.js";
7
+ // Export CLI-specific utilities
8
+ export { createSpinner };
9
+ /**
10
+ * Run a task with a spinner
11
+ */
12
+ export async function withSpinner(promise, message, successMessage) {
13
+ const spinner = createSpinner(message).start();
14
+ try {
15
+ const result = await promise;
16
+ spinner.succeed(successMessage || message);
17
+ return result;
18
+ }
19
+ catch (error) {
20
+ spinner.fail(`Failed: ${message}`);
21
+ throw error;
22
+ }
23
+ }
@@ -0,0 +1,224 @@
1
+ /**
2
+ * CLI Prompts Utility
3
+ *
4
+ * Interactive prompts for better CLI user experience
5
+ */
6
+ import { checkbox, confirm, input, select } from "@inquirer/prompts";
7
+ import pc from "picocolors";
8
+ /**
9
+ * Prompt for project initialization
10
+ */
11
+ export async function promptInitConfig() {
12
+ console.log(pc.bold(pc.blue("\n🚀 Initialize Atomic Codegen Project\n")));
13
+ const projectName = await input({
14
+ message: "Project name:",
15
+ default: "my-fhir-types",
16
+ validate: (value) => {
17
+ if (!value.trim())
18
+ return "Project name is required";
19
+ if (!/^[a-z0-9-_]+$/i.test(value)) {
20
+ return "Project name can only contain letters, numbers, hyphens, and underscores";
21
+ }
22
+ return true;
23
+ },
24
+ });
25
+ const description = await input({
26
+ message: "Project description (optional):",
27
+ default: "",
28
+ });
29
+ const outputDir = await input({
30
+ message: "Output directory for generated code:",
31
+ default: "./generated",
32
+ });
33
+ const generators = await checkbox({
34
+ message: "Select generators to use:",
35
+ choices: [
36
+ { name: "TypeScript", value: "typescript", checked: true },
37
+ { name: "Python", value: "python" },
38
+ { name: "REST Client", value: "rest-client" },
39
+ ],
40
+ });
41
+ const packageManager = (await select({
42
+ message: "Package manager:",
43
+ choices: [
44
+ { name: "Bun", value: "bun" },
45
+ { name: "npm", value: "npm" },
46
+ { name: "Yarn", value: "yarn" },
47
+ { name: "pnpm", value: "pnpm" },
48
+ ],
49
+ default: "bun",
50
+ }));
51
+ const typescript = await confirm({
52
+ message: "Use TypeScript for configuration?",
53
+ default: true,
54
+ });
55
+ return {
56
+ projectName,
57
+ description,
58
+ outputDir,
59
+ generators,
60
+ packageManager,
61
+ typescript,
62
+ };
63
+ }
64
+ /**
65
+ * Prompt for FHIR package selection
66
+ */
67
+ export async function promptFHIRPackage() {
68
+ const packageId = await select({
69
+ message: "Select FHIR package:",
70
+ choices: [
71
+ { name: "FHIR R4 Core", value: "hl7.fhir.r4.core" },
72
+ { name: "FHIR R5 Core", value: "hl7.fhir.r5.core" },
73
+ { name: "US Core", value: "hl7.fhir.us.core" },
74
+ { name: "Custom package...", value: "custom" },
75
+ ],
76
+ });
77
+ let finalPackageId = packageId;
78
+ let version;
79
+ if (packageId === "custom") {
80
+ finalPackageId = await input({
81
+ message: "Enter package ID (e.g., hl7.fhir.us.core):",
82
+ validate: (value) => {
83
+ if (!value.trim())
84
+ return "Package ID is required";
85
+ return true;
86
+ },
87
+ });
88
+ version = await input({
89
+ message: "Package version (optional):",
90
+ default: "",
91
+ });
92
+ }
93
+ const includeProfiles = await confirm({
94
+ message: "Include profiles in generation?",
95
+ default: false,
96
+ });
97
+ let profiles = [];
98
+ if (includeProfiles) {
99
+ const profileSelection = await select({
100
+ message: "Profile selection:",
101
+ choices: [
102
+ { name: "All profiles", value: "all" },
103
+ { name: "None", value: "none" },
104
+ ],
105
+ default: "none",
106
+ });
107
+ if (profileSelection === "all") {
108
+ profiles = ["*"];
109
+ }
110
+ }
111
+ return {
112
+ packageId: finalPackageId,
113
+ version: version || undefined,
114
+ profiles,
115
+ };
116
+ }
117
+ /**
118
+ * Prompt for generator configuration
119
+ */
120
+ export async function promptGeneratorConfig(generatorId) {
121
+ const config = {};
122
+ switch (generatorId) {
123
+ case "typescript":
124
+ config.moduleFormat = await select({
125
+ message: "Module format:",
126
+ choices: [
127
+ { name: "ESM", value: "esm" },
128
+ { name: "CommonJS", value: "cjs" },
129
+ { name: "Both", value: "both" },
130
+ ],
131
+ default: "esm",
132
+ });
133
+ config.strict = await confirm({
134
+ message: "Enable strict TypeScript checks?",
135
+ default: true,
136
+ });
137
+ config.generateIndex = await confirm({
138
+ message: "Generate index files?",
139
+ default: true,
140
+ });
141
+ break;
142
+ case "python":
143
+ config.style = await select({
144
+ message: "Python style:",
145
+ choices: [
146
+ { name: "Dataclasses", value: "dataclass" },
147
+ { name: "Pydantic", value: "pydantic" },
148
+ { name: "Plain classes", value: "plain" },
149
+ ],
150
+ default: "dataclass",
151
+ });
152
+ config.typeHints = await confirm({
153
+ message: "Include type hints?",
154
+ default: true,
155
+ });
156
+ break;
157
+ case "rest-client":
158
+ config.httpClient = await select({
159
+ message: "HTTP client library:",
160
+ choices: [
161
+ { name: "Fetch (native)", value: "fetch" },
162
+ { name: "Axios", value: "axios" },
163
+ { name: "Node fetch", value: "node-fetch" },
164
+ ],
165
+ default: "fetch",
166
+ });
167
+ config.authentication = await select({
168
+ message: "Authentication type:",
169
+ choices: [
170
+ { name: "None", value: "none" },
171
+ { name: "Bearer token", value: "bearer" },
172
+ { name: "Basic auth", value: "basic" },
173
+ { name: "OAuth2", value: "oauth2" },
174
+ ],
175
+ default: "none",
176
+ });
177
+ break;
178
+ }
179
+ return config;
180
+ }
181
+ /**
182
+ * Prompt for confirmation with custom message
183
+ */
184
+ export async function promptConfirm(message, defaultValue = false) {
185
+ return await confirm({
186
+ message,
187
+ default: defaultValue,
188
+ });
189
+ }
190
+ /**
191
+ * Prompt for text input with validation
192
+ */
193
+ export async function promptInput(message, options) {
194
+ return await input({
195
+ message,
196
+ default: options?.default,
197
+ validate: options?.validate,
198
+ transformer: options?.transform,
199
+ });
200
+ }
201
+ /**
202
+ * Show success message
203
+ */
204
+ export function showSuccess(message) {
205
+ console.log(pc.green(`✅ ${message}`));
206
+ }
207
+ /**
208
+ * Show error message
209
+ */
210
+ export function showError(message) {
211
+ console.log(pc.red(`❌ ${message}`));
212
+ }
213
+ /**
214
+ * Show warning message
215
+ */
216
+ export function showWarning(message) {
217
+ console.log(pc.yellow(`⚠️ ${message}`));
218
+ }
219
+ /**
220
+ * Show info message
221
+ */
222
+ export function showInfo(message) {
223
+ console.log(pc.blue(`ℹ️ ${message}`));
224
+ }
@@ -0,0 +1,270 @@
1
+ /**
2
+ * CLI Spinner and Progress Utilities
3
+ *
4
+ * Visual progress indicators for long-running operations
5
+ */
6
+ import { performance } from "node:perf_hooks";
7
+ import ora from "ora";
8
+ import pc from "picocolors";
9
+ /**
10
+ * Task progress tracker
11
+ */
12
+ export class ProgressTracker {
13
+ tasks = new Map();
14
+ currentSpinner = null;
15
+ /**
16
+ * Start a new task
17
+ */
18
+ startTask(taskId, message) {
19
+ this.tasks.set(taskId, {
20
+ startTime: performance.now(),
21
+ status: "running",
22
+ });
23
+ if (this.currentSpinner) {
24
+ this.currentSpinner.stop();
25
+ }
26
+ this.currentSpinner = ora({
27
+ text: message,
28
+ spinner: "dots",
29
+ }).start();
30
+ }
31
+ /**
32
+ * Update task progress
33
+ */
34
+ updateTask(taskId, message) {
35
+ const task = this.tasks.get(taskId);
36
+ if (!task || task.status !== "running")
37
+ return;
38
+ if (this.currentSpinner) {
39
+ this.currentSpinner.text = message;
40
+ }
41
+ }
42
+ /**
43
+ * Complete a task successfully
44
+ */
45
+ completeTask(taskId, message) {
46
+ const task = this.tasks.get(taskId);
47
+ if (!task)
48
+ return;
49
+ const duration = Math.round(performance.now() - task.startTime);
50
+ task.status = "completed";
51
+ if (this.currentSpinner) {
52
+ const finalMessage = message || this.currentSpinner.text;
53
+ this.currentSpinner.succeed(`${finalMessage} ${pc.gray(`(${duration}ms)`)}`);
54
+ this.currentSpinner = null;
55
+ }
56
+ }
57
+ /**
58
+ * Fail a task
59
+ */
60
+ failTask(taskId, error) {
61
+ const task = this.tasks.get(taskId);
62
+ if (!task)
63
+ return;
64
+ task.status = "failed";
65
+ if (this.currentSpinner) {
66
+ const errorMessage = error ? `: ${error}` : "";
67
+ this.currentSpinner.fail(this.currentSpinner.text + errorMessage);
68
+ this.currentSpinner = null;
69
+ }
70
+ }
71
+ /**
72
+ * Stop all spinners
73
+ */
74
+ stop() {
75
+ if (this.currentSpinner) {
76
+ this.currentSpinner.stop();
77
+ this.currentSpinner = null;
78
+ }
79
+ }
80
+ /**
81
+ * Get task statistics
82
+ */
83
+ getStats() {
84
+ let completed = 0;
85
+ let failed = 0;
86
+ let running = 0;
87
+ let pending = 0;
88
+ for (const task of this.tasks.values()) {
89
+ switch (task.status) {
90
+ case "completed":
91
+ completed++;
92
+ break;
93
+ case "failed":
94
+ failed++;
95
+ break;
96
+ case "running":
97
+ running++;
98
+ break;
99
+ case "pending":
100
+ pending++;
101
+ break;
102
+ }
103
+ }
104
+ return {
105
+ total: this.tasks.size,
106
+ completed,
107
+ failed,
108
+ running,
109
+ pending,
110
+ };
111
+ }
112
+ }
113
+ /**
114
+ * Simple spinner for single operations
115
+ */
116
+ export class SimpleSpinner {
117
+ spinner;
118
+ constructor(message) {
119
+ this.spinner = ora({
120
+ text: message,
121
+ spinner: "dots",
122
+ });
123
+ }
124
+ start(message) {
125
+ if (message) {
126
+ this.spinner.text = message;
127
+ }
128
+ this.spinner.start();
129
+ return this;
130
+ }
131
+ update(message) {
132
+ this.spinner.text = message;
133
+ return this;
134
+ }
135
+ succeed(message) {
136
+ this.spinner.succeed(message);
137
+ }
138
+ fail(message) {
139
+ this.spinner.fail(message);
140
+ }
141
+ warn(message) {
142
+ this.spinner.warn(message);
143
+ }
144
+ info(message) {
145
+ this.spinner.info(message);
146
+ }
147
+ stop() {
148
+ this.spinner.stop();
149
+ }
150
+ }
151
+ /**
152
+ * Progress bar for batch operations
153
+ */
154
+ export class ProgressBar {
155
+ total;
156
+ message;
157
+ current = 0;
158
+ barLength = 30;
159
+ startTime = performance.now();
160
+ constructor(total, message) {
161
+ this.total = total;
162
+ this.message = message;
163
+ }
164
+ /**
165
+ * Update progress
166
+ */
167
+ update(current, additionalInfo) {
168
+ this.current = Math.min(current, this.total);
169
+ this.render(additionalInfo);
170
+ }
171
+ /**
172
+ * Increment progress by 1
173
+ */
174
+ increment(additionalInfo) {
175
+ this.update(this.current + 1, additionalInfo);
176
+ }
177
+ /**
178
+ * Complete the progress bar
179
+ */
180
+ complete(message) {
181
+ this.current = this.total;
182
+ this.render();
183
+ const duration = Math.round(performance.now() - this.startTime);
184
+ console.log(pc.green(`✅ ${message || this.message} ${pc.gray(`(${duration}ms)`)}`));
185
+ }
186
+ /**
187
+ * Render the progress bar
188
+ */
189
+ render(additionalInfo) {
190
+ const percentage = Math.round((this.current / this.total) * 100);
191
+ const filled = Math.round((this.current / this.total) * this.barLength);
192
+ const empty = this.barLength - filled;
193
+ const bar = pc.green("█".repeat(filled)) + pc.gray("░".repeat(empty));
194
+ const progress = `${this.current}/${this.total}`;
195
+ const info = additionalInfo ? pc.gray(` ${additionalInfo}`) : "";
196
+ // Clear line and write progress
197
+ process.stdout.clearLine(0);
198
+ process.stdout.cursorTo(0);
199
+ process.stdout.write(`${this.message} ${bar} ${pc.cyan(progress)} ${pc.yellow(`${percentage}%`)}${info}`);
200
+ // Add newline when complete
201
+ if (this.current === this.total) {
202
+ process.stdout.write("\n");
203
+ }
204
+ }
205
+ }
206
+ /**
207
+ * Create a simple spinner
208
+ */
209
+ export function createSpinner(message) {
210
+ return new SimpleSpinner(message);
211
+ }
212
+ /**
213
+ * Create a progress tracker for multiple tasks
214
+ */
215
+ export function createProgressTracker() {
216
+ return new ProgressTracker();
217
+ }
218
+ /**
219
+ * Create a progress bar
220
+ */
221
+ export function createProgressBar(total, message) {
222
+ return new ProgressBar(total, message);
223
+ }
224
+ /**
225
+ * Show a spinner for a promise
226
+ */
227
+ export async function withSpinner(promise, options) {
228
+ const spinner = ora({
229
+ text: options.start,
230
+ spinner: "dots",
231
+ }).start();
232
+ try {
233
+ const result = await promise;
234
+ const successMessage = typeof options.success === "function"
235
+ ? options.success(result)
236
+ : options.success || options.start;
237
+ spinner.succeed(successMessage);
238
+ return result;
239
+ }
240
+ catch (error) {
241
+ const failMessage = typeof options.fail === "function"
242
+ ? options.fail(error)
243
+ : options.fail || `Failed: ${options.start}`;
244
+ spinner.fail(failMessage);
245
+ throw error;
246
+ }
247
+ }
248
+ /**
249
+ * Multi-step task execution with progress
250
+ */
251
+ export async function executeSteps(steps) {
252
+ const results = [];
253
+ const progressBar = new ProgressBar(steps.length, "Executing tasks");
254
+ for (let i = 0; i < steps.length; i++) {
255
+ const step = steps[i];
256
+ progressBar.update(i, step?.name);
257
+ try {
258
+ const result = await step?.task();
259
+ if (result) {
260
+ results.push(result);
261
+ }
262
+ }
263
+ catch (error) {
264
+ progressBar.complete(`Failed at step: ${step?.name}`);
265
+ throw error;
266
+ }
267
+ }
268
+ progressBar.complete("All tasks completed");
269
+ return results;
270
+ }
package/dist/config.d.ts CHANGED
@@ -129,8 +129,6 @@ export interface TypeSchemaConfig {
129
129
  singleFile?: boolean;
130
130
  /** Profile packages configuration */
131
131
  profiles?: {
132
- /** Profile packages to include (e.g., "hl7.fhir.us.core@5.0.1") */
133
- packages?: string[];
134
132
  /** Auto-detect profiles in packages */
135
133
  autoDetect?: boolean;
136
134
  };
@@ -225,4 +223,26 @@ export declare function loadConfig(workingDir?: string): Promise<Config>;
225
223
  * Type guard to check if an object is a valid Config
226
224
  */
227
225
  export declare function isConfig(obj: unknown): obj is Config;
226
+ /**
227
+ * Define configuration with type safety and IntelliSense support.
228
+ * Similar to Vite's defineConfig function pattern.
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * import { defineConfig } from "@atomic-ehr/codegen";
233
+ *
234
+ * export default defineConfig({
235
+ * outputDir: "./generated",
236
+ * packages: [
237
+ * "hl7.fhir.r4.core@4.0.1",
238
+ * "hl7.fhir.us.core@6.1.0"
239
+ * ],
240
+ * typescript: {
241
+ * generateIndex: true,
242
+ * strictMode: true
243
+ * }
244
+ * });
245
+ * ```
246
+ */
247
+ export declare function defineConfig(config: Config): Config;
228
248
  //# sourceMappingURL=config.d.ts.map
@@ -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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"}