ugly-app 0.1.458 → 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.458";
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.458";
2
+ export const CLI_VERSION = "0.1.460";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewFlipper.d.ts","sourceRoot":"","sources":["../../src/client/ViewFlipper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgD,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAEL,cAAc,EAEf,MAAM,8BAA8B,CAAC;AAYtC,gGAAgG;AAChG,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,KAAK,gBAAgB,GAAG,qBAAqB,CAAC;AAuB9C,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,UAAgB,EAChB,MAAgC,GACjC,EAAE,gBAAgB,2CA4KlB"}
1
+ {"version":3,"file":"ViewFlipper.d.ts","sourceRoot":"","sources":["../../src/client/ViewFlipper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgD,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAEL,cAAc,EAEf,MAAM,8BAA8B,CAAC;AAYtC,gGAAgG;AAChG,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,KAAK,gBAAgB,GAAG,qBAAqB,CAAC;AAuB9C,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,UAAgB,EAChB,MAAgC,GACjC,EAAE,gBAAgB,2CA4LlB"}
@@ -57,11 +57,17 @@ export function ViewFlipper({ contentId, children, type, durationMs = 300, easin
57
57
  const newAnim = createAnimatedValue(0);
58
58
  setStack((prev) => {
59
59
  const next = prev.map((item) => item.status === 'visible'
60
- ? {
61
- ...item,
62
- status: 'exiting',
63
- ...{ translateStart: 0, translateEnd: exitVals.end },
64
- }
60
+ ? (() => {
61
+ // Reset the exiting item's animValue to 0 so it animates
62
+ // from its current position to the exit position.
63
+ item.animValue.set(0);
64
+ return {
65
+ ...item,
66
+ status: 'exiting',
67
+ translateStart: 0,
68
+ translateEnd: exitVals.end,
69
+ };
70
+ })()
65
71
  : item);
66
72
  return [
67
73
  ...next,
@@ -106,17 +112,26 @@ export function ViewFlipper({ contentId, children, type, durationMs = 300, easin
106
112
  : queuedCount === 2
107
113
  ? durationMs * 0.7
108
114
  : durationMs;
109
- void queued.animValue.start(1, {
110
- duration: scaledDuration,
111
- easing,
112
- onRest: () => {
113
- setStack((prev) => prev
114
- .filter((item) => item.status !== 'exiting')
115
- .map((item) => item.id === queued.id
116
- ? { ...item, status: 'visible' }
117
- : item));
118
- },
119
- });
115
+ // Animate both the queued (entering) and exiting items together
116
+ const exitingItems = stack.filter((s) => s.status === 'exiting');
117
+ const allAnimating = [queued, ...exitingItems];
118
+ let completed = 0;
119
+ for (const item of allAnimating) {
120
+ void item.animValue.start(1, {
121
+ duration: scaledDuration,
122
+ easing,
123
+ onRest: () => {
124
+ completed++;
125
+ if (completed >= allAnimating.length) {
126
+ setStack((prev) => prev
127
+ .filter((item) => item.status !== 'exiting')
128
+ .map((item) => item.id === queued.id
129
+ ? { ...item, status: 'visible' }
130
+ : item));
131
+ }
132
+ },
133
+ });
134
+ }
120
135
  });
121
136
  return () => cancelAnimationFrame(inner);
122
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ViewFlipper.js","sourceRoot":"","sources":["../../src/client/ViewFlipper.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewFlipper.js","sourceRoot":"","sources":["../../src/client/ViewFlipper.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.458",
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.458";
2
+ export const CLI_VERSION = "0.1.460";
@@ -99,11 +99,17 @@ export function ViewFlipper({
99
99
  setStack((prev) => {
100
100
  const next = prev.map((item) =>
101
101
  item.status === 'visible'
102
- ? {
103
- ...item,
104
- status: 'exiting' as const,
105
- ...{ translateStart: 0, translateEnd: exitVals.end },
106
- }
102
+ ? (() => {
103
+ // Reset the exiting item's animValue to 0 so it animates
104
+ // from its current position to the exit position.
105
+ item.animValue.set(0);
106
+ return {
107
+ ...item,
108
+ status: 'exiting' as const,
109
+ translateStart: 0,
110
+ translateEnd: exitVals.end,
111
+ };
112
+ })()
107
113
  : item,
108
114
  );
109
115
  return [
@@ -158,21 +164,31 @@ export function ViewFlipper({
158
164
  ? durationMs * 0.7
159
165
  : durationMs;
160
166
 
161
- void queued.animValue.start(1, {
162
- duration: scaledDuration,
163
- easing,
164
- onRest: () => {
165
- setStack((prev) =>
166
- prev
167
- .filter((item) => item.status !== 'exiting')
168
- .map((item) =>
169
- item.id === queued.id
170
- ? { ...item, status: 'visible' as const }
171
- : item,
172
- ),
173
- );
174
- },
175
- });
167
+ // Animate both the queued (entering) and exiting items together
168
+ const exitingItems = stack.filter((s) => s.status === 'exiting');
169
+ const allAnimating = [queued, ...exitingItems];
170
+
171
+ let completed = 0;
172
+ for (const item of allAnimating) {
173
+ void item.animValue.start(1, {
174
+ duration: scaledDuration,
175
+ easing,
176
+ onRest: () => {
177
+ completed++;
178
+ if (completed >= allAnimating.length) {
179
+ setStack((prev) =>
180
+ prev
181
+ .filter((item) => item.status !== 'exiting')
182
+ .map((item) =>
183
+ item.id === queued.id
184
+ ? { ...item, status: 'visible' as const }
185
+ : item,
186
+ ),
187
+ );
188
+ }
189
+ },
190
+ });
191
+ }
176
192
  });
177
193
  return () => cancelAnimationFrame(inner);
178
194
  });