ugly-app 0.1.228 → 0.1.229

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.
@@ -33,7 +33,7 @@ export declare function readUglyAppConfig(cwd: string): UglyAppConfig | null;
33
33
  export declare function writeUglyAppConfig(cwd: string, config: UglyAppConfig): void;
34
34
  /**
35
35
  * Import a TypeScript file at runtime using tsx's ESM loader.
36
- * Falls back to plain dynamic import if tsx is unavailable.
36
+ * Falls back to esbuild transpilation, then plain dynamic import.
37
37
  */
38
38
  export declare function importTs(filePath: string): Promise<unknown>;
39
39
  export declare function printPortTable(portStart: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"uglyappConfig.d.ts","sourceRoot":"","sources":["../../src/cli/uglyappConfig.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAItD,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CA6BzD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAS7D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwB5E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA4CnE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAQ3E;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYjE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAetD"}
1
+ {"version":3,"file":"uglyappConfig.d.ts","sourceRoot":"","sources":["../../src/cli/uglyappConfig.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAItD,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CA6BzD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAS7D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwB5E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA4CnE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAQ3E;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCjE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAetD"}
@@ -124,19 +124,47 @@ export function writeUglyAppConfig(cwd, config) {
124
124
  }
125
125
  /**
126
126
  * Import a TypeScript file at runtime using tsx's ESM loader.
127
- * Falls back to plain dynamic import if tsx is unavailable.
127
+ * Falls back to esbuild transpilation, then plain dynamic import.
128
128
  */
129
129
  export async function importTs(filePath) {
130
130
  const fileUrl = pathToFileURL(filePath).href;
131
+ // Strategy 1: tsx's tsImport API (registers a temporary loader hook)
131
132
  try {
132
- // tsx provides tsImport for loading TS files at runtime
133
133
  const tsxModuleName = 'tsx/esm/api';
134
134
  const tsxApi = await Function('m', 'return import(m)')(tsxModuleName);
135
- return await tsxApi.tsImport(filePath, import.meta.url);
135
+ return await tsxApi.tsImport(fileUrl, import.meta.url);
136
136
  }
137
137
  catch {
138
- return import(fileUrl);
138
+ // tsx unavailable or tsImport failed (common on Windows)
139
139
  }
140
+ // Strategy 2: esbuild transpile to temp .mjs, then import
141
+ // esbuild is always available as a Vite dependency.
142
+ try {
143
+ const esbuildName = 'esbuild';
144
+ const esbuild = await Function('m', 'return import(m)')(esbuildName);
145
+ const source = fs.readFileSync(filePath, 'utf-8');
146
+ const result = await esbuild.transform(source, {
147
+ loader: 'ts',
148
+ format: 'esm',
149
+ target: 'node18',
150
+ });
151
+ const tmpFile = filePath.replace(/\.ts$/, '.tmp.mjs');
152
+ fs.writeFileSync(tmpFile, result.code);
153
+ try {
154
+ return await import(pathToFileURL(tmpFile).href);
155
+ }
156
+ finally {
157
+ try {
158
+ fs.unlinkSync(tmpFile);
159
+ }
160
+ catch { /* best-effort cleanup */ }
161
+ }
162
+ }
163
+ catch {
164
+ // esbuild also unavailable
165
+ }
166
+ // Strategy 3: plain import (works if running under tsx loader or for .js files)
167
+ return import(fileUrl);
140
168
  }
141
169
  export function printPortTable(portStart) {
142
170
  const ports = computePorts(portStart);
@@ -1 +1 @@
1
- {"version":3,"file":"uglyappConfig.js","sourceRoot":"","sources":["../../src/cli/uglyappConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uglyappConfig.js","sourceRoot":"","sources":["../../src/cli/uglyappConfig.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.228";
1
+ export declare const CLI_VERSION = "0.1.229";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.228";
2
+ export const CLI_VERSION = "0.1.229";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.228",
3
+ "version": "0.1.229",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -1 +1,18 @@
1
- {}
1
+ {
2
+ "user": {
3
+ "fields": {
4
+ "name": {
5
+ "type": "string",
6
+ "required": true
7
+ }
8
+ }
9
+ },
10
+ "post": {
11
+ "fields": {
12
+ "title": {
13
+ "type": "string",
14
+ "required": true
15
+ }
16
+ }
17
+ }
18
+ }
@@ -165,20 +165,48 @@ export function writeUglyAppConfig(cwd: string, config: UglyAppConfig): void {
165
165
 
166
166
  /**
167
167
  * Import a TypeScript file at runtime using tsx's ESM loader.
168
- * Falls back to plain dynamic import if tsx is unavailable.
168
+ * Falls back to esbuild transpilation, then plain dynamic import.
169
169
  */
170
170
  export async function importTs(filePath: string): Promise<unknown> {
171
171
  const fileUrl = pathToFileURL(filePath).href;
172
+
173
+ // Strategy 1: tsx's tsImport API (registers a temporary loader hook)
172
174
  try {
173
- // tsx provides tsImport for loading TS files at runtime
174
175
  const tsxModuleName = 'tsx/esm/api';
175
176
  const tsxApi = await (Function('m', 'return import(m)') as (m: string) => Promise<{
176
177
  tsImport: (specifier: string, parentUrl: string) => Promise<unknown>;
177
178
  }>)(tsxModuleName);
178
- return await tsxApi.tsImport(filePath, import.meta.url);
179
+ return await tsxApi.tsImport(fileUrl, import.meta.url);
179
180
  } catch {
180
- return import(fileUrl);
181
+ // tsx unavailable or tsImport failed (common on Windows)
181
182
  }
183
+
184
+ // Strategy 2: esbuild transpile to temp .mjs, then import
185
+ // esbuild is always available as a Vite dependency.
186
+ try {
187
+ const esbuildName = 'esbuild';
188
+ const esbuild = await (Function('m', 'return import(m)') as (m: string) => Promise<
189
+ { transform: (code: string, opts: Record<string, string>) => Promise<{ code: string }> }
190
+ >)(esbuildName);
191
+ const source = fs.readFileSync(filePath, 'utf-8');
192
+ const result = await esbuild.transform(source, {
193
+ loader: 'ts',
194
+ format: 'esm',
195
+ target: 'node18',
196
+ });
197
+ const tmpFile = filePath.replace(/\.ts$/, '.tmp.mjs');
198
+ fs.writeFileSync(tmpFile, result.code);
199
+ try {
200
+ return await import(pathToFileURL(tmpFile).href);
201
+ } finally {
202
+ try { fs.unlinkSync(tmpFile); } catch { /* best-effort cleanup */ }
203
+ }
204
+ } catch {
205
+ // esbuild also unavailable
206
+ }
207
+
208
+ // Strategy 3: plain import (works if running under tsx loader or for .js files)
209
+ return import(fileUrl);
182
210
  }
183
211
 
184
212
  export function printPortTable(portStart: number): void {
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.228";
2
+ export const CLI_VERSION = "0.1.229";