peachsim 0.1.935 → 0.1.937

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 (80) hide show
  1. package/dist-lib/agent-daemon-client.cjs +1 -1
  2. package/dist-lib/agent-events.cjs +1 -1
  3. package/dist-lib/agent-identity.cjs +1 -1
  4. package/dist-lib/agent-sessions.cjs +1 -1
  5. package/dist-lib/attached-projects.cjs +1 -1
  6. package/dist-lib/auth/shared-session.cjs +1 -1
  7. package/dist-lib/backend-origin.cjs +1 -1
  8. package/dist-lib/beta.cjs +1 -1
  9. package/dist-lib/beta.mjs +1 -1
  10. package/dist-lib/bridge-constants.cjs +1 -1
  11. package/dist-lib/bridge-contract-input.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.mjs +1 -1
  13. package/dist-lib/bridge-contract.cjs +1 -1
  14. package/dist-lib/bridge-contract.mjs +1 -1
  15. package/dist-lib/bundle-channel.cjs +48 -11
  16. package/dist-lib/capture-contract.cjs +1 -1
  17. package/dist-lib/capture-contract.mjs +1 -1
  18. package/dist-lib/cli-constants.cjs +1 -1
  19. package/dist-lib/cloud-contract.cjs +1 -1
  20. package/dist-lib/cloud-contract.mjs +1 -1
  21. package/dist-lib/cloud-test-args.cjs +1 -1
  22. package/dist-lib/cloud-test-args.mjs +1 -1
  23. package/dist-lib/cloud.cjs +1 -1
  24. package/dist-lib/cloud.mjs +1 -1
  25. package/dist-lib/config.cjs +1 -1
  26. package/dist-lib/detox/index.cjs +1 -1
  27. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  28. package/dist-lib/expo-swift-bundle.cjs +48 -11
  29. package/dist-lib/expo-swift-metadata.cjs +1 -1
  30. package/dist-lib/expo-swift-metadata.mjs +1 -1
  31. package/dist-lib/home-paths.cjs +1 -1
  32. package/dist-lib/host/bridge-host.cjs +48 -11
  33. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  34. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  35. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  36. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  37. package/dist-lib/host/websocket-proxy.cjs +1 -1
  38. package/dist-lib/index.cjs +5 -4
  39. package/dist-lib/jump-to-source-babel.cjs +1 -1
  40. package/dist-lib/jump-to-source-native.cjs +1 -1
  41. package/dist-lib/kotlin-host.cjs +1 -1
  42. package/dist-lib/menu.cjs +1 -1
  43. package/dist-lib/menu.mjs +1 -1
  44. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  45. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  46. package/dist-lib/metro-production-bundle.cjs +1 -1
  47. package/dist-lib/metro-production-bundle.mjs +1 -1
  48. package/dist-lib/metro.cjs +5 -4
  49. package/dist-lib/native-app-identity.cjs +40 -3
  50. package/dist-lib/native-app-identity.mjs +36 -2
  51. package/dist-lib/native-firebase-metadata.cjs +1 -1
  52. package/dist-lib/native-firebase-metadata.mjs +1 -1
  53. package/dist-lib/plist.cjs +1 -1
  54. package/dist-lib/plist.mjs +1 -1
  55. package/dist-lib/profiles.cjs +1 -1
  56. package/dist-lib/public-brand.cjs +1 -1
  57. package/dist-lib/react-native-host-modules.cjs +1 -1
  58. package/dist-lib/react-native-host-modules.mjs +1 -1
  59. package/dist-lib/render-mode.cjs +1 -1
  60. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  61. package/dist-lib/sdk.cjs +1 -1
  62. package/dist-lib/sdk.mjs +1 -1
  63. package/dist-lib/skills.cjs +48 -11
  64. package/dist-lib/swift-compile.cjs +1 -1
  65. package/dist-lib/swift-compile.mjs +1 -1
  66. package/dist-lib/swift-package.cjs +1 -1
  67. package/dist-lib/swift-package.mjs +1 -1
  68. package/dist-lib/swift-submit.cjs +1 -1
  69. package/dist-lib/swift-submit.mjs +1 -1
  70. package/dist-lib/swift-toolchain.cjs +1 -1
  71. package/dist-lib/swift.cjs +1 -1
  72. package/dist-lib/vite-swift.cjs +48 -11
  73. package/dist-lib/vite.cjs +1 -1
  74. package/dist-lib/worklet-executable.cjs +1 -1
  75. package/dist-lib/worklet-executable.mjs +1 -1
  76. package/package.json +1 -1
  77. package/src/native-app-identity.ts +47 -5
  78. package/src/swift-host.ts +45 -7
  79. package/src/swift-standins.ts +18 -1
  80. package/src/xcode-project.ts +8 -5
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -10191,7 +10191,7 @@ function readXcodeAppTarget(input, targetName) {
10191
10191
  )
10192
10192
  ];
10193
10193
  const linkedProducts = [];
10194
- const binaryFrameworks = /* @__PURE__ */ new Set();
10194
+ const binaryFrameworks = /* @__PURE__ */ new Map();
10195
10195
  for (const { project, target } of order) {
10196
10196
  const productDependencies = [
10197
10197
  ...list(target.packageProductDependencies),
@@ -10228,7 +10228,8 @@ function readXcodeAppTarget(input, targetName) {
10228
10228
  if (file?.isa !== "PBXFileReference" || !name2) continue;
10229
10229
  if (tree === "BUILT_PRODUCTS_DIR" || tree === "SDKROOT" || tree === "DEVELOPER_DIR")
10230
10230
  continue;
10231
- binaryFrameworks.add(name2);
10231
+ const resolved = fileId ? project.resolvePath(fileId) : null;
10232
+ if (resolved && !binaryFrameworks.has(name2)) binaryFrameworks.set(name2, resolved);
10232
10233
  }
10233
10234
  }
10234
10235
  }
@@ -10260,7 +10261,7 @@ function readXcodeAppTarget(input, targetName) {
10260
10261
  localPackageDirs: [
10261
10262
  ...new Set(localPackageDirs.map((dir) => import_node_fs9.default.realpathSync(dir)))
10262
10263
  ].sort(),
10263
- binaryFrameworks: [...binaryFrameworks].sort(),
10264
+ binaryFrameworks: [...binaryFrameworks].map(([name2, file]) => ({ name: name2, path: file })).sort((left, right) => left.name.localeCompare(right.name)),
10264
10265
  packageResolved: import_node_fs9.default.existsSync(resolvedFile) ? resolvedFile : null,
10265
10266
  appTargets: appTargetNames
10266
10267
  };
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/menu.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/menu.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/public-brand.ts
4
4
  var name = "Peach";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/is-record.ts
4
4
  function isRecord(value) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/metro-production-bundle.ts
4
4
  var RNXSIM_METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -3520,7 +3520,7 @@ function readXcodeAppTarget(input, targetName) {
3520
3520
  )
3521
3521
  ];
3522
3522
  const linkedProducts = [];
3523
- const binaryFrameworks = /* @__PURE__ */ new Set();
3523
+ const binaryFrameworks = /* @__PURE__ */ new Map();
3524
3524
  for (const { project, target } of order) {
3525
3525
  const productDependencies = [
3526
3526
  ...list(target.packageProductDependencies),
@@ -3557,7 +3557,8 @@ function readXcodeAppTarget(input, targetName) {
3557
3557
  if (file?.isa !== "PBXFileReference" || !name2) continue;
3558
3558
  if (tree === "BUILT_PRODUCTS_DIR" || tree === "SDKROOT" || tree === "DEVELOPER_DIR")
3559
3559
  continue;
3560
- binaryFrameworks.add(name2);
3560
+ const resolved = fileId ? project.resolvePath(fileId) : null;
3561
+ if (resolved && !binaryFrameworks.has(name2)) binaryFrameworks.set(name2, resolved);
3561
3562
  }
3562
3563
  }
3563
3564
  }
@@ -3589,7 +3590,7 @@ function readXcodeAppTarget(input, targetName) {
3589
3590
  localPackageDirs: [
3590
3591
  ...new Set(localPackageDirs.map((dir) => import_node_fs4.default.realpathSync(dir)))
3591
3592
  ].sort(),
3592
- binaryFrameworks: [...binaryFrameworks].sort(),
3593
+ binaryFrameworks: [...binaryFrameworks].map(([name2, file]) => ({ name: name2, path: file })).sort((left, right) => left.name.localeCompare(right.name)),
3593
3594
  packageResolved: import_node_fs4.default.existsSync(resolvedFile) ? resolvedFile : null,
3594
3595
  appTargets: appTargetNames
3595
3596
  };
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -22,20 +22,24 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
22
22
  // src/native-app-identity.ts
23
23
  var native_app_identity_exports = {};
24
24
  __export(native_app_identity_exports, {
25
+ NATIVE_APP_IDENTITY_HEADER: () => NATIVE_APP_IDENTITY_HEADER,
25
26
  applyNativeAppIdentity: () => applyNativeAppIdentity,
26
27
  canExtractNativeAppIdentity: () => canExtractNativeAppIdentity,
27
28
  createNativeAppIdentityFooter: () => createNativeAppIdentityFooter,
29
+ createNativeAppIdentityHeader: () => createNativeAppIdentityHeader,
28
30
  detachNativeAppIdentityFooter: () => detachNativeAppIdentityFooter,
29
31
  extractNativeAppIdentityFromFiles: () => extractNativeAppIdentityFromFiles,
30
32
  getAppliedNativeAppIdentity: () => getAppliedNativeAppIdentity,
31
33
  insertNativeAppIdentityFooter: () => insertNativeAppIdentityFooter,
32
34
  isNativeAppIdentity: () => isNativeAppIdentity,
33
35
  readNativeAppIdentity: () => readNativeAppIdentity,
34
- readNativeAppIdentityFooter: () => readNativeAppIdentityFooter
36
+ readNativeAppIdentityFooter: () => readNativeAppIdentityFooter,
37
+ readNativeAppIdentityFromBundle: () => readNativeAppIdentityFromBundle
35
38
  });
36
39
  module.exports = __toCommonJS(native_app_identity_exports);
37
40
  var NATIVE_APP_IDENTITY_PREFIX = "globalThis.__sootsimNativeAppIdentity=";
38
41
  var METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
42
+ var NATIVE_APP_IDENTITY_HEADER = "Peach-Native-App-Identity";
39
43
  function isRecord(value) {
40
44
  return typeof value === "object" && value !== null && !Array.isArray(value);
41
45
  }
@@ -82,6 +86,36 @@ function readNativeAppIdentity(value) {
82
86
  ...value.urlQuerySchemes === void 0 ? {} : { urlQuerySchemes: [...value.urlQuerySchemes] }
83
87
  };
84
88
  }
89
+ function createNativeAppIdentityHeader(identity) {
90
+ return encodeURIComponent(JSON.stringify(readNativeAppIdentity(identity)));
91
+ }
92
+ function equalIdentityValues(left, right) {
93
+ if (left === right) return true;
94
+ if (Array.isArray(left) && Array.isArray(right)) {
95
+ return left.length === right.length && left.every((value, index) => equalIdentityValues(value, right[index]));
96
+ }
97
+ if (!isRecord(left) || !isRecord(right)) return false;
98
+ const keys = Object.keys(left);
99
+ return keys.length === Object.keys(right).length && keys.every(
100
+ (key) => Object.hasOwn(right, key) && equalIdentityValues(left[key], right[key])
101
+ );
102
+ }
103
+ function readNativeAppIdentityFromBundle(source, header) {
104
+ const footer = readNativeAppIdentityFooter(source);
105
+ if (header === null) return readNativeAppIdentity(footer);
106
+ let value;
107
+ try {
108
+ value = JSON.parse(decodeURIComponent(header));
109
+ } catch {
110
+ throw new Error("native app identity response header is malformed");
111
+ }
112
+ const identity = readNativeAppIdentity(value);
113
+ if (!identity) throw new Error("native app identity response header is malformed");
114
+ if (footer && !equalIdentityValues(identity, readNativeAppIdentity(footer))) {
115
+ throw new Error("native app identity response header conflicts with bundle footer");
116
+ }
117
+ return identity;
118
+ }
85
119
  function applyNativeAppIdentity(identity) {
86
120
  const globals = globalThis;
87
121
  if (identity) globals.__sootsim_native_app_identity = identity;
@@ -324,14 +358,17 @@ function extractNativeAppIdentityFromFiles(files, platform, parseInfoPlist) {
324
358
  }
325
359
  // Annotate the CommonJS export names for ESM import in node:
326
360
  0 && (module.exports = {
361
+ NATIVE_APP_IDENTITY_HEADER,
327
362
  applyNativeAppIdentity,
328
363
  canExtractNativeAppIdentity,
329
364
  createNativeAppIdentityFooter,
365
+ createNativeAppIdentityHeader,
330
366
  detachNativeAppIdentityFooter,
331
367
  extractNativeAppIdentityFromFiles,
332
368
  getAppliedNativeAppIdentity,
333
369
  insertNativeAppIdentityFooter,
334
370
  isNativeAppIdentity,
335
371
  readNativeAppIdentity,
336
- readNativeAppIdentityFooter
372
+ readNativeAppIdentityFooter,
373
+ readNativeAppIdentityFromBundle
337
374
  });
@@ -1,8 +1,9 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/native-app-identity.ts
4
4
  var NATIVE_APP_IDENTITY_PREFIX = "globalThis.__sootsimNativeAppIdentity=";
5
5
  var METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
6
+ var NATIVE_APP_IDENTITY_HEADER = "Peach-Native-App-Identity";
6
7
  function isRecord(value) {
7
8
  return typeof value === "object" && value !== null && !Array.isArray(value);
8
9
  }
@@ -49,6 +50,36 @@ function readNativeAppIdentity(value) {
49
50
  ...value.urlQuerySchemes === void 0 ? {} : { urlQuerySchemes: [...value.urlQuerySchemes] }
50
51
  };
51
52
  }
53
+ function createNativeAppIdentityHeader(identity) {
54
+ return encodeURIComponent(JSON.stringify(readNativeAppIdentity(identity)));
55
+ }
56
+ function equalIdentityValues(left, right) {
57
+ if (left === right) return true;
58
+ if (Array.isArray(left) && Array.isArray(right)) {
59
+ return left.length === right.length && left.every((value, index) => equalIdentityValues(value, right[index]));
60
+ }
61
+ if (!isRecord(left) || !isRecord(right)) return false;
62
+ const keys = Object.keys(left);
63
+ return keys.length === Object.keys(right).length && keys.every(
64
+ (key) => Object.hasOwn(right, key) && equalIdentityValues(left[key], right[key])
65
+ );
66
+ }
67
+ function readNativeAppIdentityFromBundle(source, header) {
68
+ const footer = readNativeAppIdentityFooter(source);
69
+ if (header === null) return readNativeAppIdentity(footer);
70
+ let value;
71
+ try {
72
+ value = JSON.parse(decodeURIComponent(header));
73
+ } catch {
74
+ throw new Error("native app identity response header is malformed");
75
+ }
76
+ const identity = readNativeAppIdentity(value);
77
+ if (!identity) throw new Error("native app identity response header is malformed");
78
+ if (footer && !equalIdentityValues(identity, readNativeAppIdentity(footer))) {
79
+ throw new Error("native app identity response header conflicts with bundle footer");
80
+ }
81
+ return identity;
82
+ }
52
83
  function applyNativeAppIdentity(identity) {
53
84
  const globals = globalThis;
54
85
  if (identity) globals.__sootsim_native_app_identity = identity;
@@ -290,14 +321,17 @@ function extractNativeAppIdentityFromFiles(files, platform, parseInfoPlist) {
290
321
  return canExtractNativeAppIdentity(platform) ? nativeAppIdentityFromIos(files, parseInfoPlist) : null;
291
322
  }
292
323
  export {
324
+ NATIVE_APP_IDENTITY_HEADER,
293
325
  applyNativeAppIdentity,
294
326
  canExtractNativeAppIdentity,
295
327
  createNativeAppIdentityFooter,
328
+ createNativeAppIdentityHeader,
296
329
  detachNativeAppIdentityFooter,
297
330
  extractNativeAppIdentityFromFiles,
298
331
  getAppliedNativeAppIdentity,
299
332
  insertNativeAppIdentityFooter,
300
333
  isNativeAppIdentity,
301
334
  readNativeAppIdentity,
302
- readNativeAppIdentityFooter
335
+ readNativeAppIdentityFooter,
336
+ readNativeAppIdentityFromBundle
303
337
  };
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/native-firebase-metadata.ts
4
4
  var PREFIX = "globalThis.__peachNativeFirebaseConfig=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/plist.ts
4
4
  import plist from "plist";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/react-native-host-modules.ts
4
4
  var REACT_NATIVE_PASSTHROUGH_SPECIFIERS = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/sdk.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -34154,7 +34154,13 @@ function peachModuleDirs(toolchain, imports) {
34154
34154
  ],
34155
34155
  moduleRoot
34156
34156
  );
34157
- return [import_node_path17.default.join(moduleRoot, ".build", TRIPLE, "release", "Modules")];
34157
+ const release = import_node_path17.default.join(moduleRoot, ".build", TRIPLE, "release");
34158
+ return [
34159
+ import_node_path17.default.join(release, "Modules"),
34160
+ ...import_node_fs17.default.readdirSync(release).filter(
34161
+ (name2) => name2.endsWith(".build") && import_node_fs17.default.existsSync(import_node_path17.default.join(release, name2, "module.modulemap"))
34162
+ ).sort().map((name2) => import_node_path17.default.join(release, name2))
34163
+ ];
34158
34164
  }
34159
34165
  function swiftInterfaceForWasm(text3) {
34160
34166
  return text3.replace(
@@ -34509,6 +34515,8 @@ function standinGenerationInputs(binaries, toolchain) {
34509
34515
  }
34510
34516
  function binaryStandins(binary2, toolchain, provided) {
34511
34517
  if (provided.has(binary2.target)) return [];
34518
+ if (!binary2.url && !import_node_fs17.default.existsSync(binary2.dir))
34519
+ return `${import_node_path17.default.basename(binary2.dir)} is not on disk; build or fetch it, then run again`;
34512
34520
  let all;
34513
34521
  let digest;
34514
34522
  try {
@@ -36796,7 +36804,7 @@ function readXcodeAppTarget(input, targetName) {
36796
36804
  )
36797
36805
  ];
36798
36806
  const linkedProducts = [];
36799
- const binaryFrameworks = /* @__PURE__ */ new Set();
36807
+ const binaryFrameworks = /* @__PURE__ */ new Map();
36800
36808
  for (const { project, target } of order) {
36801
36809
  const productDependencies = [
36802
36810
  ...list(target.packageProductDependencies),
@@ -36833,7 +36841,8 @@ function readXcodeAppTarget(input, targetName) {
36833
36841
  if (file?.isa !== "PBXFileReference" || !name2) continue;
36834
36842
  if (tree === "BUILT_PRODUCTS_DIR" || tree === "SDKROOT" || tree === "DEVELOPER_DIR")
36835
36843
  continue;
36836
- binaryFrameworks.add(name2);
36844
+ const resolved = fileId ? project.resolvePath(fileId) : null;
36845
+ if (resolved && !binaryFrameworks.has(name2)) binaryFrameworks.set(name2, resolved);
36837
36846
  }
36838
36847
  }
36839
36848
  }
@@ -36865,7 +36874,7 @@ function readXcodeAppTarget(input, targetName) {
36865
36874
  localPackageDirs: [
36866
36875
  ...new Set(localPackageDirs.map((dir) => import_node_fs18.default.realpathSync(dir)))
36867
36876
  ].sort(),
36868
- binaryFrameworks: [...binaryFrameworks].sort(),
36877
+ binaryFrameworks: [...binaryFrameworks].map(([name2, file]) => ({ name: name2, path: file })).sort((left, right) => left.name.localeCompare(right.name)),
36869
36878
  packageResolved: import_node_fs18.default.existsSync(resolvedFile) ? resolvedFile : null,
36870
36879
  appTargets: appTargetNames
36871
36880
  };
@@ -36965,11 +36974,25 @@ function swiftPackages(entry, app) {
36965
36974
  localDirs: app.localPackageDirs,
36966
36975
  provided: entry.provided
36967
36976
  }),
36968
- standins: []
36977
+ standins: [],
36978
+ projectGaps: /* @__PURE__ */ new Map()
36969
36979
  };
36970
36980
  entry.packages = cached4;
36971
36981
  }
36972
- const reached = cached4.packages.binaries.filter((binary2) => binary2.reached);
36982
+ const vendored = app.binaryFrameworks.map(
36983
+ ({ name: name2, path: dir }) => ({
36984
+ target: name2,
36985
+ source: "the project",
36986
+ url: null,
36987
+ checksum: null,
36988
+ dir,
36989
+ reached: true
36990
+ })
36991
+ );
36992
+ const reached = [
36993
+ ...cached4.packages.binaries.filter((binary2) => binary2.reached),
36994
+ ...vendored
36995
+ ];
36973
36996
  if (entry.moduleRoot && entry.provided && reached.length > 0) {
36974
36997
  const resolved = swiftModuleToolchain(entry.moduleRoot);
36975
36998
  const toolchain = {
@@ -36992,6 +37015,12 @@ function swiftPackages(entry, app) {
36992
37015
  binaryGaps: built2.gaps
36993
37016
  });
36994
37017
  cached4.standins = built2.standins;
37018
+ cached4.projectGaps = new Map(
37019
+ vendored.flatMap(({ target }) => {
37020
+ const gap = built2.gaps.get(target);
37021
+ return gap ? [[target, gap]] : [];
37022
+ })
37023
+ );
36995
37024
  cached4.standinKey = generation;
36996
37025
  }
36997
37026
  }
@@ -37027,7 +37056,7 @@ function xcodeLayout(root) {
37027
37056
  mainActorIsolation: framework.mainActorIsolation
37028
37057
  });
37029
37058
  }
37030
- const { packages, standins } = swiftPackages(registered, app);
37059
+ const { packages, standins, projectGaps } = swiftPackages(registered, app);
37031
37060
  for (const standin of standins)
37032
37061
  targets.push({
37033
37062
  name: standin.module,
@@ -37062,6 +37091,7 @@ function xcodeLayout(root) {
37062
37091
  targets,
37063
37092
  packages,
37064
37093
  standins,
37094
+ projectGaps,
37065
37095
  targetDirs,
37066
37096
  files: [...files2].sort()
37067
37097
  };
@@ -37414,9 +37444,16 @@ function swiftApiGapReport(output) {
37414
37444
  async function missingModulesMessage(packagePath, missing) {
37415
37445
  const layout = xcodeLayout(packagePath);
37416
37446
  const gaps = new Map([
37417
- ...(layout?.app.binaryFrameworks ?? []).map(
37418
- (name2) => [name2, { source: "the project", reason: "a vendored binary framework" }]
37419
- ),
37447
+ ...(layout?.app.binaryFrameworks ?? []).map(({ name: name2 }) => {
37448
+ const gap = layout?.projectGaps.get(name2);
37449
+ return [
37450
+ name2,
37451
+ {
37452
+ source: "the project",
37453
+ reason: `a vendored binary framework${gap ? `; no stand-in: ${gap}` : ""}`
37454
+ }
37455
+ ];
37456
+ }),
37420
37457
  ...[...missing.keys()].flatMap(
37421
37458
  (name2) => UNPROVIDED_PLATFORM_MODULES[name2] ? [
37422
37459
  [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import { execFile as execFile2, execFileSync } from "node:child_process";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-package.ts
4
4
  function isSwiftManifestFile(file) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-submit.ts
4
4
  var SWIFT_COMPILE_PATH = "/api/swift-compile";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.935 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.937 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;