ugly-app 0.1.459 → 0.1.460

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.
@@ -54,6 +54,11 @@ export declare function resolveBinJs(pkg: string, binNameOrOpts?: string | Resol
54
54
  * binary is resolved via `resolveBinJs`; when it can't be found we
55
55
  * fall back to `npx <pkg> <args>` and let the user see the original
56
56
  * failure mode rather than a confusing error from this helper.
57
+ *
58
+ * Some packages ship a native executable as their bin (esbuild's
59
+ * `bin/esbuild` is a Mach-O / ELF / PE binary, not a JS wrapper). For
60
+ * those we must invoke the binary directly — prepending `node` makes
61
+ * Node parse the binary header as JavaScript and crash.
57
62
  */
58
63
  export declare function nodeBinCommand(pkg: string, args: string, binNameOrOpts?: string | ResolveOpts, cwd?: string): string;
59
64
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"resolveBin.d.ts","sourceRoot":"","sources":["../../src/cli/resolveBin.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,UAAU,CAAC;AAE/C,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAsCf;AAgFD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CASR"}
1
+ {"version":3,"file":"resolveBin.d.ts","sourceRoot":"","sources":["../../src/cli/resolveBin.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,UAAU,CAAC;AAE/C,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAsCf;AAgFD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAWR"}
@@ -146,14 +146,42 @@ function findPnpmStoreRoot(uglyAppDir) {
146
146
  * binary is resolved via `resolveBinJs`; when it can't be found we
147
147
  * fall back to `npx <pkg> <args>` and let the user see the original
148
148
  * failure mode rather than a confusing error from this helper.
149
+ *
150
+ * Some packages ship a native executable as their bin (esbuild's
151
+ * `bin/esbuild` is a Mach-O / ELF / PE binary, not a JS wrapper). For
152
+ * those we must invoke the binary directly — prepending `node` makes
153
+ * Node parse the binary header as JavaScript and crash.
149
154
  */
150
155
  export function nodeBinCommand(pkg, args, binNameOrOpts, cwd) {
151
156
  const bin = resolveBinJs(pkg, binNameOrOpts, cwd);
152
157
  const q = (s) => `"${s.replace(/"/g, '\\"')}"`;
153
158
  if (bin) {
154
- return `${q(process.execPath)} ${q(bin)} ${args}`;
159
+ return isJsScript(bin)
160
+ ? `${q(process.execPath)} ${q(bin)} ${args}`
161
+ : `${q(bin)} ${args}`;
155
162
  }
156
163
  const binName = typeof binNameOrOpts === 'string' ? binNameOrOpts : binNameOrOpts?.binName;
157
164
  return `npx ${binName ?? pkg} ${args}`;
158
165
  }
166
+ /**
167
+ * Detect whether a resolved bin is a JS script vs. a native binary.
168
+ * JS scripts either have a `.js`/`.mjs`/`.cjs` extension or start
169
+ * with a `#!` shebang. Anything else (Mach-O `cf fa ed fe`, ELF
170
+ * `7f 45 4c 46`, PE `4d 5a`) is invoked directly.
171
+ */
172
+ function isJsScript(absPath) {
173
+ const ext = path.extname(absPath).toLowerCase();
174
+ if (ext === '.js' || ext === '.mjs' || ext === '.cjs')
175
+ return true;
176
+ try {
177
+ const fd = fs.openSync(absPath, 'r');
178
+ const buf = Buffer.alloc(2);
179
+ fs.readSync(fd, buf, 0, 2, 0);
180
+ fs.closeSync(fd);
181
+ return buf[0] === 0x23 && buf[1] === 0x21; // '#!'
182
+ }
183
+ catch {
184
+ return false;
185
+ }
186
+ }
159
187
  //# sourceMappingURL=resolveBin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveBin.js","sourceRoot":"","sources":["../../src/cli/resolveBin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveBin.js","sourceRoot":"","sources":["../../src/cli/resolveBin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.459";
1
+ export declare const CLI_VERSION = "0.1.460";
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.459";
2
+ export const CLI_VERSION = "0.1.460";
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.459",
3
+ "version": "0.1.460",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -181,6 +181,11 @@ function findPnpmStoreRoot(uglyAppDir: string): string | null {
181
181
  * binary is resolved via `resolveBinJs`; when it can't be found we
182
182
  * fall back to `npx <pkg> <args>` and let the user see the original
183
183
  * failure mode rather than a confusing error from this helper.
184
+ *
185
+ * Some packages ship a native executable as their bin (esbuild's
186
+ * `bin/esbuild` is a Mach-O / ELF / PE binary, not a JS wrapper). For
187
+ * those we must invoke the binary directly — prepending `node` makes
188
+ * Node parse the binary header as JavaScript and crash.
184
189
  */
185
190
  export function nodeBinCommand(
186
191
  pkg: string,
@@ -191,9 +196,31 @@ export function nodeBinCommand(
191
196
  const bin = resolveBinJs(pkg, binNameOrOpts, cwd);
192
197
  const q = (s: string) => `"${s.replace(/"/g, '\\"')}"`;
193
198
  if (bin) {
194
- return `${q(process.execPath)} ${q(bin)} ${args}`;
199
+ return isJsScript(bin)
200
+ ? `${q(process.execPath)} ${q(bin)} ${args}`
201
+ : `${q(bin)} ${args}`;
195
202
  }
196
203
  const binName =
197
204
  typeof binNameOrOpts === 'string' ? binNameOrOpts : binNameOrOpts?.binName;
198
205
  return `npx ${binName ?? pkg} ${args}`;
199
206
  }
207
+
208
+ /**
209
+ * Detect whether a resolved bin is a JS script vs. a native binary.
210
+ * JS scripts either have a `.js`/`.mjs`/`.cjs` extension or start
211
+ * with a `#!` shebang. Anything else (Mach-O `cf fa ed fe`, ELF
212
+ * `7f 45 4c 46`, PE `4d 5a`) is invoked directly.
213
+ */
214
+ function isJsScript(absPath: string): boolean {
215
+ const ext = path.extname(absPath).toLowerCase();
216
+ if (ext === '.js' || ext === '.mjs' || ext === '.cjs') return true;
217
+ try {
218
+ const fd = fs.openSync(absPath, 'r');
219
+ const buf = Buffer.alloc(2);
220
+ fs.readSync(fd, buf, 0, 2, 0);
221
+ fs.closeSync(fd);
222
+ return buf[0] === 0x23 && buf[1] === 0x21; // '#!'
223
+ } catch {
224
+ return false;
225
+ }
226
+ }
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.459";
2
+ export const CLI_VERSION = "0.1.460";