peachsim 0.1.1619 → 0.1.1620

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 (85) hide show
  1. package/cli/bridge-flow-runner.ts +39 -63
  2. package/cli/cloud-client.ts +26 -4
  3. package/cli/commands/platform.ts +29 -7
  4. package/cli/commands/record.ts +20 -15
  5. package/cli/drivers/playwright-sim-host.ts +12 -1
  6. package/cli/outbound-endpoints.ts +5 -3
  7. package/dist-lib/agent-daemon-client.cjs +1 -1
  8. package/dist-lib/agent-events.cjs +1 -1
  9. package/dist-lib/attached-projects.cjs +1 -1
  10. package/dist-lib/auth/shared-session.cjs +1 -1
  11. package/dist-lib/backend-origin.cjs +1 -1
  12. package/dist-lib/beta.cjs +1 -1
  13. package/dist-lib/beta.mjs +1 -1
  14. package/dist-lib/bridge-constants.cjs +1 -1
  15. package/dist-lib/bridge-contract-input.cjs +1 -1
  16. package/dist-lib/bridge-contract-input.mjs +1 -1
  17. package/dist-lib/bridge-contract.cjs +1 -1
  18. package/dist-lib/bridge-contract.mjs +1 -1
  19. package/dist-lib/bundle-channel.cjs +10 -5
  20. package/dist-lib/capture-contract.cjs +1 -1
  21. package/dist-lib/capture-contract.mjs +1 -1
  22. package/dist-lib/cloud-contract.cjs +1 -1
  23. package/dist-lib/cloud-contract.mjs +1 -1
  24. package/dist-lib/cloud-test-args.cjs +1 -1
  25. package/dist-lib/cloud-test-args.mjs +1 -1
  26. package/dist-lib/cloud.cjs +2 -2
  27. package/dist-lib/cloud.mjs +2 -2
  28. package/dist-lib/config.cjs +1 -1
  29. package/dist-lib/config.mjs +1 -1
  30. package/dist-lib/detox/index.cjs +1 -1
  31. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  32. package/dist-lib/expo-swift-bundle.cjs +10 -5
  33. package/dist-lib/expo-swift-metadata.cjs +1 -1
  34. package/dist-lib/expo-swift-metadata.mjs +1 -1
  35. package/dist-lib/home-paths.cjs +1 -1
  36. package/dist-lib/host/bridge-host.cjs +10 -5
  37. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  38. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  39. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  40. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  41. package/dist-lib/host/websocket-proxy.cjs +1 -1
  42. package/dist-lib/index.cjs +8 -1
  43. package/dist-lib/jump-to-source-babel.cjs +1 -1
  44. package/dist-lib/jump-to-source-native.cjs +1 -1
  45. package/dist-lib/kotlin-host.cjs +1 -1
  46. package/dist-lib/menu.cjs +1 -1
  47. package/dist-lib/menu.mjs +1 -1
  48. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  49. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  50. package/dist-lib/metro-production-bundle.cjs +1 -1
  51. package/dist-lib/metro-production-bundle.mjs +1 -1
  52. package/dist-lib/metro.cjs +8 -1
  53. package/dist-lib/native-app-identity-project.cjs +3 -1
  54. package/dist-lib/native-app-identity-project.mjs +3 -1
  55. package/dist-lib/native-app-identity.cjs +9 -1
  56. package/dist-lib/native-app-identity.mjs +9 -1
  57. package/dist-lib/native-firebase-metadata.cjs +1 -1
  58. package/dist-lib/native-firebase-metadata.mjs +1 -1
  59. package/dist-lib/plist.cjs +1 -1
  60. package/dist-lib/plist.mjs +1 -1
  61. package/dist-lib/profiles.cjs +1 -1
  62. package/dist-lib/public-brand.cjs +1 -1
  63. package/dist-lib/react-native-host-modules.cjs +1 -1
  64. package/dist-lib/react-native-host-modules.mjs +1 -1
  65. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  66. package/dist-lib/sdk.cjs +1 -1
  67. package/dist-lib/sdk.mjs +1 -1
  68. package/dist-lib/skills.cjs +85 -49
  69. package/dist-lib/swift-compile.cjs +10 -5
  70. package/dist-lib/swift-compile.mjs +10 -5
  71. package/dist-lib/swift-package.cjs +1 -1
  72. package/dist-lib/swift-package.mjs +1 -1
  73. package/dist-lib/swift-submit.cjs +1 -1
  74. package/dist-lib/swift-submit.mjs +1 -1
  75. package/dist-lib/swift-toolchain.cjs +1 -1
  76. package/dist-lib/swift.cjs +1 -1
  77. package/dist-lib/vite-swift.cjs +10 -5
  78. package/dist-lib/vite.cjs +1 -1
  79. package/dist-lib/worklet-executable.cjs +1 -1
  80. package/dist-lib/worklet-executable.mjs +1 -1
  81. package/package.json +1 -1
  82. package/src/cloud.ts +2 -2
  83. package/src/native-app-identity-project.ts +2 -0
  84. package/src/native-app-identity.ts +17 -0
  85. package/src/swift-compile.ts +10 -4
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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;
@@ -2996,7 +2996,7 @@ var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
2996
2996
  var MULTI_MANIFEST_VERSION = 38;
2997
2997
  function swiftArtifactHash(input, release, moduleRoot) {
2998
2998
  const hash = (0, import_node_crypto2.createHash)("sha256");
2999
- hash.update(`swift-compile/v46
2999
+ hash.update(`swift-compile/v47
3000
3000
  ${release}
3001
3001
  `);
3002
3002
  if (input.oneModule) hash.update("one-module\n");
@@ -3543,9 +3543,14 @@ function compiledSwiftSources(files2, targets) {
3543
3543
  const orderedTargets = [...targets].sort((a, b) => b.path.length - a.path.length);
3544
3544
  for (const [file, contents] of Object.entries(files2)) {
3545
3545
  if (!file.endsWith(".swift")) continue;
3546
- const owner = orderedTargets.find(
3547
- (candidate) => candidate.path === "." || file.startsWith(`${candidate.path}/`)
3548
- );
3546
+ const owner = orderedTargets.find((candidate) => {
3547
+ const prefix = candidate.path === "." ? "" : `${candidate.path}/`;
3548
+ if (!file.startsWith(prefix)) return false;
3549
+ const relative = file.slice(prefix.length);
3550
+ return !candidate.exclude?.some(
3551
+ (excluded) => relative === excluded || relative.startsWith(`${excluded}/`)
3552
+ );
3553
+ });
3549
3554
  if (/(?:^|\/)Package(?:@swift-[\d.]+)?\.swift$/.test(file) && (!owner || /^Package(?:@swift-[\d.]+)?\.swift$/.test(file))) {
3550
3555
  compiled.set(file, contents);
3551
3556
  continue;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/bundleGlobalFooter.ts
4
4
  function findBundleFooter(source, prefix) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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;
@@ -12947,7 +12947,7 @@ var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12947
12947
  var MULTI_MANIFEST_VERSION = 38;
12948
12948
  function swiftArtifactHash(input, release, moduleRoot) {
12949
12949
  const hash = (0, import_node_crypto4.createHash)("sha256");
12950
- hash.update(`swift-compile/v46
12950
+ hash.update(`swift-compile/v47
12951
12951
  ${release}
12952
12952
  `);
12953
12953
  if (input.oneModule) hash.update("one-module\n");
@@ -13494,9 +13494,14 @@ function compiledSwiftSources(files2, targets) {
13494
13494
  const orderedTargets = [...targets].sort((a, b) => b.path.length - a.path.length);
13495
13495
  for (const [file, contents] of Object.entries(files2)) {
13496
13496
  if (!file.endsWith(".swift")) continue;
13497
- const owner = orderedTargets.find(
13498
- (candidate) => candidate.path === "." || file.startsWith(`${candidate.path}/`)
13499
- );
13497
+ const owner = orderedTargets.find((candidate) => {
13498
+ const prefix = candidate.path === "." ? "" : `${candidate.path}/`;
13499
+ if (!file.startsWith(prefix)) return false;
13500
+ const relative2 = file.slice(prefix.length);
13501
+ return !candidate.exclude?.some(
13502
+ (excluded) => relative2 === excluded || relative2.startsWith(`${excluded}/`)
13503
+ );
13504
+ });
13500
13505
  if (/(?:^|\/)Package(?:@swift-[\d.]+)?\.swift$/.test(file) && (!owner || /^Package(?:@swift-[\d.]+)?\.swift$/.test(file))) {
13501
13506
  compiled.set(file, contents);
13502
13507
  continue;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/host/fetch-proxy-overrides.ts
4
4
  var FETCH_PROXY_NATIVE_USER_AGENT_HEADER = "x-sootsim-native-user-agent";
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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;
@@ -11635,6 +11635,10 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
11635
11635
  const shareIntoAppGroupId = typeof declaredShareGroup === "string" ? resolveBuildSetting(declaredShareGroup, settings) : void 0;
11636
11636
  if (shareIntoAppGroupId === null)
11637
11637
  throw new Error("native app Info.plist ExpoShareIntoAppGroupId is unresolved");
11638
+ const declaredRtcGroup = dictionary.RTCAppGroupIdentifier;
11639
+ const rtcAppGroupIdentifier = typeof declaredRtcGroup === "string" ? resolveBuildSetting(declaredRtcGroup, settings) : void 0;
11640
+ if (rtcAppGroupIdentifier === null)
11641
+ throw new Error("native app Info.plist RTCAppGroupIdentifier is unresolved");
11638
11642
  const querySchemes = dictionary.LSApplicationQueriesSchemes;
11639
11643
  if (querySchemes !== void 0 && !Array.isArray(querySchemes)) {
11640
11644
  throw new Error("native app Info.plist LSApplicationQueriesSchemes is not an array");
@@ -11747,6 +11751,7 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
11747
11751
  permissionUsageDescriptions,
11748
11752
  urlQuerySchemes,
11749
11753
  ...shareIntoAppGroupId === void 0 ? {} : { shareIntoAppGroupId },
11754
+ ...rtcAppGroupIdentifier === void 0 ? {} : { rtcAppGroupIdentifier },
11750
11755
  backgroundTaskIdentifiers: backgroundTaskIdentifiers.every((value) => value !== null) ? backgroundTaskIdentifiers : [],
11751
11756
  backgroundModes: backgroundModes.every((value) => value !== null) ? backgroundModes : [],
11752
11757
  appIntentIdentifiers: appIntentIdentifiers.every((value) => value !== null) ? appIntentIdentifiers : []
@@ -12802,6 +12807,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
12802
12807
  dictionary.EXDefaultScreenOrientationMask
12803
12808
  );
12804
12809
  const shareIntoAppGroupId = nonEmptyString2(dictionary.ExpoShareIntoAppGroupId);
12810
+ const rtcAppGroupIdentifier = nonEmptyString2(dictionary.RTCAppGroupIdentifier);
12805
12811
  const rootModuleName = readRootModuleName(
12806
12812
  app.allSources.filter((file) => /\.(?:swift|mm|m)$/.test(file) && import_node_fs12.default.existsSync(file)).map((file) => import_node_fs12.default.readFileSync(file, "utf8"))
12807
12813
  );
@@ -12837,6 +12843,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
12837
12843
  permissionUsageDescriptions,
12838
12844
  urlQuerySchemes,
12839
12845
  ...shareIntoAppGroupId ? { shareIntoAppGroupId } : {},
12846
+ ...rtcAppGroupIdentifier ? { rtcAppGroupIdentifier } : {},
12840
12847
  backgroundTaskIdentifiers,
12841
12848
  backgroundModes,
12842
12849
  appIntentIdentifiers
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __esm = (fn, res) => function __init() {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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;
@@ -6505,6 +6505,10 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
6505
6505
  const shareIntoAppGroupId = typeof declaredShareGroup === "string" ? resolveBuildSetting(declaredShareGroup, settings) : void 0;
6506
6506
  if (shareIntoAppGroupId === null)
6507
6507
  throw new Error("native app Info.plist ExpoShareIntoAppGroupId is unresolved");
6508
+ const declaredRtcGroup = dictionary.RTCAppGroupIdentifier;
6509
+ const rtcAppGroupIdentifier = typeof declaredRtcGroup === "string" ? resolveBuildSetting(declaredRtcGroup, settings) : void 0;
6510
+ if (rtcAppGroupIdentifier === null)
6511
+ throw new Error("native app Info.plist RTCAppGroupIdentifier is unresolved");
6508
6512
  const querySchemes = dictionary.LSApplicationQueriesSchemes;
6509
6513
  if (querySchemes !== void 0 && !Array.isArray(querySchemes)) {
6510
6514
  throw new Error("native app Info.plist LSApplicationQueriesSchemes is not an array");
@@ -6617,6 +6621,7 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
6617
6621
  permissionUsageDescriptions,
6618
6622
  urlQuerySchemes,
6619
6623
  ...shareIntoAppGroupId === void 0 ? {} : { shareIntoAppGroupId },
6624
+ ...rtcAppGroupIdentifier === void 0 ? {} : { rtcAppGroupIdentifier },
6620
6625
  backgroundTaskIdentifiers: backgroundTaskIdentifiers.every((value) => value !== null) ? backgroundTaskIdentifiers : [],
6621
6626
  backgroundModes: backgroundModes.every((value) => value !== null) ? backgroundModes : [],
6622
6627
  appIntentIdentifiers: appIntentIdentifiers.every((value) => value !== null) ? appIntentIdentifiers : []
@@ -7672,6 +7677,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
7672
7677
  dictionary.EXDefaultScreenOrientationMask
7673
7678
  );
7674
7679
  const shareIntoAppGroupId = nonEmptyString2(dictionary.ExpoShareIntoAppGroupId);
7680
+ const rtcAppGroupIdentifier = nonEmptyString2(dictionary.RTCAppGroupIdentifier);
7675
7681
  const rootModuleName = readRootModuleName(
7676
7682
  app.allSources.filter((file) => /\.(?:swift|mm|m)$/.test(file) && import_node_fs5.default.existsSync(file)).map((file) => import_node_fs5.default.readFileSync(file, "utf8"))
7677
7683
  );
@@ -7707,6 +7713,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
7707
7713
  permissionUsageDescriptions,
7708
7714
  urlQuerySchemes,
7709
7715
  ...shareIntoAppGroupId ? { shareIntoAppGroupId } : {},
7716
+ ...rtcAppGroupIdentifier ? { rtcAppGroupIdentifier } : {},
7710
7717
  backgroundTaskIdentifiers,
7711
7718
  backgroundModes,
7712
7719
  appIntentIdentifiers
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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;
@@ -2694,6 +2694,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
2694
2694
  dictionary.EXDefaultScreenOrientationMask
2695
2695
  );
2696
2696
  const shareIntoAppGroupId = nonEmptyString(dictionary.ExpoShareIntoAppGroupId);
2697
+ const rtcAppGroupIdentifier = nonEmptyString(dictionary.RTCAppGroupIdentifier);
2697
2698
  const rootModuleName = readRootModuleName(
2698
2699
  app.allSources.filter((file) => /\.(?:swift|mm|m)$/.test(file) && import_node_fs2.default.existsSync(file)).map((file) => import_node_fs2.default.readFileSync(file, "utf8"))
2699
2700
  );
@@ -2729,6 +2730,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
2729
2730
  permissionUsageDescriptions,
2730
2731
  urlQuerySchemes,
2731
2732
  ...shareIntoAppGroupId ? { shareIntoAppGroupId } : {},
2733
+ ...rtcAppGroupIdentifier ? { rtcAppGroupIdentifier } : {},
2732
2734
  backgroundTaskIdentifiers,
2733
2735
  backgroundModes,
2734
2736
  appIntentIdentifiers
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/native-app-identity-project.ts
4
4
  import fs2 from "node:fs";
@@ -1304,6 +1304,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
1304
1304
  dictionary.EXDefaultScreenOrientationMask
1305
1305
  );
1306
1306
  const shareIntoAppGroupId = nonEmptyString(dictionary.ExpoShareIntoAppGroupId);
1307
+ const rtcAppGroupIdentifier = nonEmptyString(dictionary.RTCAppGroupIdentifier);
1307
1308
  const rootModuleName = readRootModuleName(
1308
1309
  app.allSources.filter((file) => /\.(?:swift|mm|m)$/.test(file) && fs2.existsSync(file)).map((file) => fs2.readFileSync(file, "utf8"))
1309
1310
  );
@@ -1339,6 +1340,7 @@ function readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist = parsePlistSo
1339
1340
  permissionUsageDescriptions,
1340
1341
  urlQuerySchemes,
1341
1342
  ...shareIntoAppGroupId ? { shareIntoAppGroupId } : {},
1343
+ ...rtcAppGroupIdentifier ? { rtcAppGroupIdentifier } : {},
1342
1344
  backgroundTaskIdentifiers,
1343
1345
  backgroundModes,
1344
1346
  appIntentIdentifiers
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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;
@@ -372,6 +372,8 @@ function isNativeAppIdentity(value) {
372
372
  return false;
373
373
  if (value.shareIntoAppGroupId !== void 0 && typeof value.shareIntoAppGroupId !== "string")
374
374
  return false;
375
+ if (value.rtcAppGroupIdentifier !== void 0 && typeof value.rtcAppGroupIdentifier !== "string")
376
+ return false;
375
377
  if (value.applicationDisplayName !== void 0 && typeof value.applicationDisplayName !== "string")
376
378
  return false;
377
379
  if (value.rootModuleName !== void 0 && typeof value.rootModuleName !== "string")
@@ -442,6 +444,7 @@ function readNativeAppIdentity(value) {
442
444
  ...value.defaultScreenOrientationMask === void 0 ? {} : { defaultScreenOrientationMask: value.defaultScreenOrientationMask },
443
445
  ...value.backgroundModes === void 0 ? {} : { backgroundModes: [...value.backgroundModes] },
444
446
  ...value.shareIntoAppGroupId === void 0 ? {} : { shareIntoAppGroupId: value.shareIntoAppGroupId },
447
+ ...value.rtcAppGroupIdentifier === void 0 ? {} : { rtcAppGroupIdentifier: value.rtcAppGroupIdentifier },
445
448
  ...value.urlQuerySchemes === void 0 ? {} : { urlQuerySchemes: [...value.urlQuerySchemes] },
446
449
  ...value.oneUpdates === void 0 ? {} : {
447
450
  oneUpdates: {
@@ -826,6 +829,10 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
826
829
  const shareIntoAppGroupId = typeof declaredShareGroup === "string" ? resolveBuildSetting(declaredShareGroup, settings) : void 0;
827
830
  if (shareIntoAppGroupId === null)
828
831
  throw new Error("native app Info.plist ExpoShareIntoAppGroupId is unresolved");
832
+ const declaredRtcGroup = dictionary.RTCAppGroupIdentifier;
833
+ const rtcAppGroupIdentifier = typeof declaredRtcGroup === "string" ? resolveBuildSetting(declaredRtcGroup, settings) : void 0;
834
+ if (rtcAppGroupIdentifier === null)
835
+ throw new Error("native app Info.plist RTCAppGroupIdentifier is unresolved");
829
836
  const querySchemes = dictionary.LSApplicationQueriesSchemes;
830
837
  if (querySchemes !== void 0 && !Array.isArray(querySchemes)) {
831
838
  throw new Error("native app Info.plist LSApplicationQueriesSchemes is not an array");
@@ -938,6 +945,7 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
938
945
  permissionUsageDescriptions,
939
946
  urlQuerySchemes,
940
947
  ...shareIntoAppGroupId === void 0 ? {} : { shareIntoAppGroupId },
948
+ ...rtcAppGroupIdentifier === void 0 ? {} : { rtcAppGroupIdentifier },
941
949
  backgroundTaskIdentifiers: backgroundTaskIdentifiers.every((value) => value !== null) ? backgroundTaskIdentifiers : [],
942
950
  backgroundModes: backgroundModes.every((value) => value !== null) ? backgroundModes : [],
943
951
  appIntentIdentifiers: appIntentIdentifiers.every((value) => value !== null) ? appIntentIdentifiers : []
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/bundleGlobalFooter.ts
4
4
  function findBundleFooter(source, prefix) {
@@ -332,6 +332,8 @@ function isNativeAppIdentity(value) {
332
332
  return false;
333
333
  if (value.shareIntoAppGroupId !== void 0 && typeof value.shareIntoAppGroupId !== "string")
334
334
  return false;
335
+ if (value.rtcAppGroupIdentifier !== void 0 && typeof value.rtcAppGroupIdentifier !== "string")
336
+ return false;
335
337
  if (value.applicationDisplayName !== void 0 && typeof value.applicationDisplayName !== "string")
336
338
  return false;
337
339
  if (value.rootModuleName !== void 0 && typeof value.rootModuleName !== "string")
@@ -402,6 +404,7 @@ function readNativeAppIdentity(value) {
402
404
  ...value.defaultScreenOrientationMask === void 0 ? {} : { defaultScreenOrientationMask: value.defaultScreenOrientationMask },
403
405
  ...value.backgroundModes === void 0 ? {} : { backgroundModes: [...value.backgroundModes] },
404
406
  ...value.shareIntoAppGroupId === void 0 ? {} : { shareIntoAppGroupId: value.shareIntoAppGroupId },
407
+ ...value.rtcAppGroupIdentifier === void 0 ? {} : { rtcAppGroupIdentifier: value.rtcAppGroupIdentifier },
405
408
  ...value.urlQuerySchemes === void 0 ? {} : { urlQuerySchemes: [...value.urlQuerySchemes] },
406
409
  ...value.oneUpdates === void 0 ? {} : {
407
410
  oneUpdates: {
@@ -786,6 +789,10 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
786
789
  const shareIntoAppGroupId = typeof declaredShareGroup === "string" ? resolveBuildSetting(declaredShareGroup, settings) : void 0;
787
790
  if (shareIntoAppGroupId === null)
788
791
  throw new Error("native app Info.plist ExpoShareIntoAppGroupId is unresolved");
792
+ const declaredRtcGroup = dictionary.RTCAppGroupIdentifier;
793
+ const rtcAppGroupIdentifier = typeof declaredRtcGroup === "string" ? resolveBuildSetting(declaredRtcGroup, settings) : void 0;
794
+ if (rtcAppGroupIdentifier === null)
795
+ throw new Error("native app Info.plist RTCAppGroupIdentifier is unresolved");
789
796
  const querySchemes = dictionary.LSApplicationQueriesSchemes;
790
797
  if (querySchemes !== void 0 && !Array.isArray(querySchemes)) {
791
798
  throw new Error("native app Info.plist LSApplicationQueriesSchemes is not an array");
@@ -898,6 +905,7 @@ function nativeAppIdentityFromIos(files, parseInfoPlist, iosTarget, resourceUri)
898
905
  permissionUsageDescriptions,
899
906
  urlQuerySchemes,
900
907
  ...shareIntoAppGroupId === void 0 ? {} : { shareIntoAppGroupId },
908
+ ...rtcAppGroupIdentifier === void 0 ? {} : { rtcAppGroupIdentifier },
901
909
  backgroundTaskIdentifiers: backgroundTaskIdentifiers.every((value) => value !== null) ? backgroundTaskIdentifiers : [],
902
910
  backgroundModes: backgroundModes.every((value) => value !== null) ? backgroundModes : [],
903
911
  appIntentIdentifiers: appIntentIdentifiers.every((value) => value !== null) ? appIntentIdentifiers : []
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/bundleGlobalFooter.ts
4
4
  function findBundleFooter(source, prefix) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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
- /*! peach v0.1.1619 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1620 | (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);