peachsim 0.1.2228 → 0.1.2229

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 (93) hide show
  1. package/cli/commands/device.ts +1 -1
  2. package/cli/commands/flow.ts +1 -1
  3. package/dist-lib/agent-daemon-client.cjs +1 -1
  4. package/dist-lib/agent-events.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 +35 -9
  16. package/dist-lib/capture-contract.cjs +1 -1
  17. package/dist-lib/capture-contract.mjs +1 -1
  18. package/dist-lib/cloud-contract.cjs +1 -1
  19. package/dist-lib/cloud-contract.mjs +1 -1
  20. package/dist-lib/cloud-test-args.cjs +1 -1
  21. package/dist-lib/cloud-test-args.mjs +1 -1
  22. package/dist-lib/cloud.cjs +1 -1
  23. package/dist-lib/cloud.mjs +1 -1
  24. package/dist-lib/config.cjs +1 -1
  25. package/dist-lib/config.mjs +1 -1
  26. package/dist-lib/detox/index.cjs +5 -2
  27. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  28. package/dist-lib/expo-swift-bundle.cjs +33 -7
  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 +35 -9
  33. package/dist-lib/host/fetch-proxy-handler.cjs +4 -4
  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 +7 -5
  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 +16 -14
  43. package/dist-lib/menu.mjs +16 -14
  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 +7 -5
  49. package/dist-lib/native-app-identity-project.cjs +5 -3
  50. package/dist-lib/native-app-identity-project.mjs +5 -3
  51. package/dist-lib/native-app-identity.cjs +1 -1
  52. package/dist-lib/native-app-identity.mjs +1 -1
  53. package/dist-lib/native-firebase-metadata.cjs +1 -1
  54. package/dist-lib/native-firebase-metadata.mjs +1 -1
  55. package/dist-lib/pdfium-raster.cjs +1 -1
  56. package/dist-lib/pdfium-raster.mjs +1 -1
  57. package/dist-lib/plist.cjs +1 -1
  58. package/dist-lib/plist.mjs +1 -1
  59. package/dist-lib/profiles.cjs +1 -1
  60. package/dist-lib/public-brand.cjs +1 -1
  61. package/dist-lib/public-origins-lib-esm.json +25 -24
  62. package/dist-lib/public-origins-lib.json +55 -53
  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/reap-browser.cjs +1 -1
  66. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  67. package/dist-lib/sdk.cjs +1 -1
  68. package/dist-lib/sdk.mjs +1 -1
  69. package/dist-lib/skills.cjs +35 -9
  70. package/dist-lib/swift-compile.cjs +1 -1
  71. package/dist-lib/swift-compile.mjs +1 -1
  72. package/dist-lib/swift-package.cjs +1 -1
  73. package/dist-lib/swift-package.mjs +1 -1
  74. package/dist-lib/swift-submit.cjs +1 -1
  75. package/dist-lib/swift-submit.mjs +1 -1
  76. package/dist-lib/swift-toolchain.cjs +1 -1
  77. package/dist-lib/swift.cjs +1 -1
  78. package/dist-lib/vite-swift.cjs +32 -6
  79. package/dist-lib/vite.cjs +4 -4
  80. package/dist-lib/worklet-executable.cjs +1 -1
  81. package/dist-lib/worklet-executable.mjs +1 -1
  82. package/dist-types/packages/peach-engine/src/engine/canvaskit-api.d.ts +3 -0
  83. package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +10 -3
  84. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +1 -1
  85. package/dist-types/packages/peach-engine/src/engine/types.d.ts +2 -1
  86. package/package.json +1 -1
  87. package/runtime-companion.json +1 -1
  88. package/src/appPackageContract.ts +1 -1
  89. package/src/menu.ts +17 -99
  90. package/src/menuContract.ts +102 -0
  91. package/src/settingsContract.ts +8 -8
  92. package/src/swift-host.ts +27 -2
  93. package/src/xcode-project.ts +8 -2
package/dist-lib/sdk.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } 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.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (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
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -39,7 +39,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
39
39
  var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
40
40
  var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
41
41
  "<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
42
- define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "40ec039e7a2920e6b4e7610986eb3ba75c5811eed4ea41570c2a7e2424911721", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
42
+ define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "774c42f06f8d5c1f3f3a09f94379db2046af0016f1fcd6cbe595a9c2da5dcf95", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
43
43
  }
44
44
  });
45
45
 
@@ -63324,7 +63324,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
63324
63324
  const postBundleScripts = [];
63325
63325
  for (const id of [...list(app.target.buildPhases)].reverse()) {
63326
63326
  const phase = app.project.object(id);
63327
- if (phase?.isa !== "PBXShellScriptBuildPhase" || list(phase.inputPaths).length || list(phase.inputFileListPaths).length || list(phase.outputPaths).length || list(phase.outputFileListPaths).length)
63327
+ if (phase?.isa !== "PBXShellScriptBuildPhase" || list(phase.outputPaths).length || list(phase.outputFileListPaths).length)
63328
63328
  break;
63329
63329
  postBundleScripts.unshift({
63330
63330
  name: str(phase.name) ?? id,
@@ -63333,6 +63333,8 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
63333
63333
  str(phase.shellScript) ?? ""
63334
63334
  ),
63335
63335
  directory: app.project.projectDir,
63336
+ inputPaths: list(phase.inputPaths),
63337
+ inputFileListPaths: list(phase.inputFileListPaths),
63336
63338
  environment: Object.fromEntries(
63337
63339
  [...settingKeys].filter((key2) => /^[A-Za-z_][A-Za-z0-9_]*$/.test(key2)).map((key2) => [key2, settings(key2)])
63338
63340
  )
@@ -65818,7 +65820,7 @@ var init_swift_standin_digest = __esm({
65818
65820
  STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
65819
65821
  SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
65820
65822
  standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
65821
- STANDIN_SOURCE_DIGEST = true ? "c157dea0314bab3ba5af4145cc3ba5b8a4d824fa6677166162e49713afe384bb" : standinSourceDigest();
65823
+ STANDIN_SOURCE_DIGEST = true ? "f8700690d0cd621b5d9417ea570f1f45c7ec1ad54492b23aa9792102938e9e82" : standinSourceDigest();
65822
65824
  }
65823
65825
  });
65824
65826
 
@@ -66279,7 +66281,7 @@ var init_package_tree_digest = __esm({
66279
66281
 
66280
66282
  // src/expo-native-prebuilt.ts
66281
66283
  function expoNativeCompilerDigestValue() {
66282
- return true ? "52d8ecb0a37f0f7a5504161cecd2a17d59f6cff85fdc5cac0ae8f4353362ad1a" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
66284
+ return true ? "aab5589ba02cd96332e686f60153187e7357cc46c8a6ec5369f1400cea6f6da0" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
66283
66285
  }
66284
66286
  function readSources(value) {
66285
66287
  const sources = isRecord(value) ? value.sources : null;
@@ -76744,11 +76746,35 @@ function buildSwiftBundleFiles(packagePath, hosted, inputs, resourceBundles) {
76744
76746
  CONTENTS_FOLDER_PATH: wrapper,
76745
76747
  UNLOCALIZED_RESOURCES_FOLDER_PATH: wrapper,
76746
76748
  INFOPLIST_PATH: `${wrapper}/Info.plist`,
76747
- SCRIPT_INPUT_FILE_COUNT: "0",
76748
- SCRIPT_INPUT_FILE_LIST_COUNT: "0",
76749
+ SCRIPT_INPUT_FILE_COUNT: String(phase.inputPaths.length),
76750
+ SCRIPT_INPUT_FILE_LIST_COUNT: String(phase.inputFileListPaths.length),
76749
76751
  SCRIPT_OUTPUT_FILE_COUNT: "0",
76750
76752
  SCRIPT_OUTPUT_FILE_LIST_COUNT: "0"
76751
76753
  };
76754
+ const inputPath = (raw2) => {
76755
+ const file = import_node_path83.default.resolve(
76756
+ phase.directory,
76757
+ expand(raw2, (key2) => env[key2] ?? "")
76758
+ );
76759
+ if (!import_node_fs86.default.existsSync(file))
76760
+ throw new Error(
76761
+ `${xcode.app.name}: Run Script "${phase.name}" missing input ${file}`
76762
+ );
76763
+ if (!file.startsWith(`${dir}${import_node_path83.default.sep}`))
76764
+ watched.push(import_node_path83.default.relative(packagePath, file).split(import_node_path83.default.sep).join("/"));
76765
+ return file;
76766
+ };
76767
+ phase.inputPaths.forEach((raw2, index) => {
76768
+ env[`SCRIPT_INPUT_FILE_${index}`] = inputPath(raw2);
76769
+ });
76770
+ phase.inputFileListPaths.forEach((raw2, index) => {
76771
+ const source = inputPath(raw2);
76772
+ const entries = fileListEntries(source, inputPath);
76773
+ const expanded = import_node_path83.default.join(dir, `Input-${index}.xcfilelist`);
76774
+ import_node_fs86.default.writeFileSync(expanded, `${entries.join("\n")}
76775
+ `);
76776
+ env[`SCRIPT_INPUT_FILE_LIST_${index}`] = expanded;
76777
+ });
76752
76778
  try {
76753
76779
  const [shell, ...args] = phase.command;
76754
76780
  (0, import_node_child_process47.execFileSync)(shell, args, {
@@ -86990,7 +87016,7 @@ var init_nitro_superset = __esm({
86990
87016
  init_nitroContract();
86991
87017
  init_swift_standin_digest();
86992
87018
  NITRO_SUPERSET_ENTRY_NAME = "superset";
86993
- NITRO_COMPILER_DIGEST = true ? "02840899304cd9c2c7928baa6f7a13405d0142f29940e8d6fdbf2569fb60b262" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
87019
+ NITRO_COMPILER_DIGEST = true ? "b3ae355413a190ba1006db08b3fa373b79f99034163c936bd1ec2c89b9bce038" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
86994
87020
  nitroSupersetLock = parseLock(nitro_superset_lock_default);
86995
87021
  nitroSupersetKey = (inputs) => nativeEntryKey({ ...inputs, compiler: NITRO_COMPILER_DIGEST });
86996
87022
  published2 = /* @__PURE__ */ new Map();
@@ -87702,7 +87728,7 @@ var init_one_sdk_bundle = __esm({
87702
87728
  var runtime_companion_default;
87703
87729
  var init_runtime_companion = __esm({
87704
87730
  "runtime-companion.json"() {
87705
- runtime_companion_default = { abi: 1, sha256: "286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa", file: "node/cli-286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa.cjs" };
87731
+ runtime_companion_default = { abi: 1, sha256: "00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde", file: "node/cli-00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde.cjs" };
87706
87732
  }
87707
87733
  });
87708
87734
 
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/swift-package.ts
4
4
  function swiftManifestSettings(target) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (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.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -39,7 +39,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
39
39
  var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
40
40
  var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
41
41
  "<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
42
- define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "40ec039e7a2920e6b4e7610986eb3ba75c5811eed4ea41570c2a7e2424911721", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
42
+ define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "774c42f06f8d5c1f3f3a09f94379db2046af0016f1fcd6cbe595a9c2da5dcf95", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
43
43
  }
44
44
  });
45
45
 
@@ -29976,7 +29976,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
29976
29976
  const postBundleScripts = [];
29977
29977
  for (const id of [...list(app.target.buildPhases)].reverse()) {
29978
29978
  const phase = app.project.object(id);
29979
- if (phase?.isa !== "PBXShellScriptBuildPhase" || list(phase.inputPaths).length || list(phase.inputFileListPaths).length || list(phase.outputPaths).length || list(phase.outputFileListPaths).length)
29979
+ if (phase?.isa !== "PBXShellScriptBuildPhase" || list(phase.outputPaths).length || list(phase.outputFileListPaths).length)
29980
29980
  break;
29981
29981
  postBundleScripts.unshift({
29982
29982
  name: str(phase.name) ?? id,
@@ -29985,6 +29985,8 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
29985
29985
  str(phase.shellScript) ?? ""
29986
29986
  ),
29987
29987
  directory: app.project.projectDir,
29988
+ inputPaths: list(phase.inputPaths),
29989
+ inputFileListPaths: list(phase.inputFileListPaths),
29988
29990
  environment: Object.fromEntries(
29989
29991
  [...settingKeys].filter((key2) => /^[A-Za-z_][A-Za-z0-9_]*$/.test(key2)).map((key2) => [key2, settings(key2)])
29990
29992
  )
@@ -31440,7 +31442,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
31440
31442
  return hash.digest("hex");
31441
31443
  }
31442
31444
  var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
31443
- var STANDIN_SOURCE_DIGEST = true ? "c157dea0314bab3ba5af4145cc3ba5b8a4d824fa6677166162e49713afe384bb" : standinSourceDigest();
31445
+ var STANDIN_SOURCE_DIGEST = true ? "f8700690d0cd621b5d9417ea570f1f45c7ec1ad54492b23aa9792102938e9e82" : standinSourceDigest();
31444
31446
 
31445
31447
  // src/swift-standins.ts
31446
31448
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -38020,11 +38022,35 @@ function buildSwiftBundleFiles(packagePath, hosted, inputs, resourceBundles) {
38020
38022
  CONTENTS_FOLDER_PATH: wrapper,
38021
38023
  UNLOCALIZED_RESOURCES_FOLDER_PATH: wrapper,
38022
38024
  INFOPLIST_PATH: `${wrapper}/Info.plist`,
38023
- SCRIPT_INPUT_FILE_COUNT: "0",
38024
- SCRIPT_INPUT_FILE_LIST_COUNT: "0",
38025
+ SCRIPT_INPUT_FILE_COUNT: String(phase.inputPaths.length),
38026
+ SCRIPT_INPUT_FILE_LIST_COUNT: String(phase.inputFileListPaths.length),
38025
38027
  SCRIPT_OUTPUT_FILE_COUNT: "0",
38026
38028
  SCRIPT_OUTPUT_FILE_LIST_COUNT: "0"
38027
38029
  };
38030
+ const inputPath = (raw2) => {
38031
+ const file = import_node_path55.default.resolve(
38032
+ phase.directory,
38033
+ expand(raw2, (key2) => env[key2] ?? "")
38034
+ );
38035
+ if (!import_node_fs54.default.existsSync(file))
38036
+ throw new Error(
38037
+ `${xcode.app.name}: Run Script "${phase.name}" missing input ${file}`
38038
+ );
38039
+ if (!file.startsWith(`${dir}${import_node_path55.default.sep}`))
38040
+ watched.push(import_node_path55.default.relative(packagePath, file).split(import_node_path55.default.sep).join("/"));
38041
+ return file;
38042
+ };
38043
+ phase.inputPaths.forEach((raw2, index) => {
38044
+ env[`SCRIPT_INPUT_FILE_${index}`] = inputPath(raw2);
38045
+ });
38046
+ phase.inputFileListPaths.forEach((raw2, index) => {
38047
+ const source = inputPath(raw2);
38048
+ const entries = fileListEntries(source, inputPath);
38049
+ const expanded = import_node_path55.default.join(dir, `Input-${index}.xcfilelist`);
38050
+ import_node_fs54.default.writeFileSync(expanded, `${entries.join("\n")}
38051
+ `);
38052
+ env[`SCRIPT_INPUT_FILE_LIST_${index}`] = expanded;
38053
+ });
38028
38054
  try {
38029
38055
  const [shell, ...args] = phase.command;
38030
38056
  (0, import_node_child_process34.execFileSync)(shell, args, {
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -39,7 +39,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
39
39
  var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
40
40
  var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
41
41
  "<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
42
- define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "40ec039e7a2920e6b4e7610986eb3ba75c5811eed4ea41570c2a7e2424911721", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
42
+ define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "774c42f06f8d5c1f3f3a09f94379db2046af0016f1fcd6cbe595a9c2da5dcf95", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
43
43
  }
44
44
  });
45
45
 
@@ -1072,7 +1072,7 @@ var init_src = __esm({
1072
1072
  var runtime_companion_default;
1073
1073
  var init_runtime_companion = __esm({
1074
1074
  "runtime-companion.json"() {
1075
- runtime_companion_default = { abi: 1, sha256: "286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa", file: "node/cli-286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa.cjs" };
1075
+ runtime_companion_default = { abi: 1, sha256: "00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde", file: "node/cli-00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde.cjs" };
1076
1076
  }
1077
1077
  });
1078
1078
 
@@ -3228,7 +3228,7 @@ function readIosSdkTree(root) {
3228
3228
 
3229
3229
  // src/swift-standin-digest.ts
3230
3230
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
3231
- var STANDIN_SOURCE_DIGEST = true ? "c157dea0314bab3ba5af4145cc3ba5b8a4d824fa6677166162e49713afe384bb" : standinSourceDigest();
3231
+ var STANDIN_SOURCE_DIGEST = true ? "f8700690d0cd621b5d9417ea570f1f45c7ec1ad54492b23aa9792102938e9e82" : standinSourceDigest();
3232
3232
 
3233
3233
  // src/expo-native-workspace.ts
3234
3234
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2228 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/worklet-executable.ts
4
4
  import { parse } from "acorn";
@@ -50,6 +50,9 @@ export interface CanvasKitGifApi {
50
50
  _peachSkottieGifDemand(json: string, assets?: Record<string, ArrayBuffer | Uint8Array>): number;
51
51
  }
52
52
  export interface CanvasKitTextDataApi {
53
+ _peachRetainLayoutParagraph(slot: number, paragraph: Paragraph): void;
54
+ _peachLayoutParagraph(slot: number, width: number): Paragraph | null;
55
+ _peachReleaseLayoutParagraph(slot: number): void;
53
56
  _peachMakeParagraph(collection: FontCollection, pointer: number, length: number): Paragraph | null;
54
57
  HEAPU8: Uint8Array;
55
58
  _malloc(length: number): number;
@@ -11,7 +11,6 @@ export interface NativeLayoutExports {
11
11
  _peach_layout_values(): number;
12
12
  _peach_layout_units(): number;
13
13
  _peach_layout_enums(): number;
14
- _peach_layout_scratch(): number;
15
14
  _peach_layout_node_new(slot: number, pointScaleFactor: number, measured: number): void;
16
15
  _peach_layout_node_free(slot: number): void;
17
16
  _peach_layout_subtree_free(root: number): number;
@@ -31,6 +30,8 @@ export interface NativeLayoutExports {
31
30
  _peach_layout_owner(slot: number): number;
32
31
  _peach_layout_child_count(slot: number): number;
33
32
  _peach_layout_mark_dirty(slot: number): void;
33
+ _peach_layout_text_policy(slot: number, policy: number, scale: number): void;
34
+ _peach_layout_measure_result(width: number, height: number, cacheable: number): void;
34
35
  _peach_layout_force(slot: number): void;
35
36
  _peach_layout_force_subtree(slot: number): void;
36
37
  _peach_layout_seen(slot: number): void;
@@ -45,6 +46,7 @@ export interface NativeLayoutExports {
45
46
  readonly HEAP32: Int32Array;
46
47
  readonly HEAPF32: Float32Array;
47
48
  peachLayoutMeasure?: MeasureHook;
49
+ peachLayoutTextLines?: (slot: number) => void;
48
50
  peachLayoutExit?: (slot: number) => void;
49
51
  }
50
52
  export type MeasureHook = (slot: number, width: number, widthMode: number, height: number, heightMode: number) => void;
@@ -136,6 +138,12 @@ export declare const OVERFLOW_SCROLL = 2;
136
138
  export declare const DISPLAY_FLEX = 0;
137
139
  export declare const DISPLAY_NONE = 1;
138
140
  export declare const DISPLAY_CONTENTS = 2;
141
+ export declare const TEXT_MEASURE = 1;
142
+ export declare const TEXT_MEASURE_PAPER = 2;
143
+ export declare const TEXT_MEASURE_ZERO_PROPOSAL = 4;
144
+ export declare const TEXT_MEASURE_STRETCH = 8;
145
+ export declare const TEXT_MEASURE_LINE_EVENTS = 16;
146
+ export declare const TEXT_MEASURE_HEIGHT_PROPOSAL = 32;
139
147
  export declare const MEASURE_MODE_UNDEFINED = 0;
140
148
  export declare const MEASURE_MODE_EXACTLY = 1;
141
149
  export declare const MEASURE_MODE_AT_MOST = 2;
@@ -144,6 +152,5 @@ export interface NativeLayout {
144
152
  readonly values: number;
145
153
  readonly units: number;
146
154
  readonly enums: number;
147
- readonly scratch: number;
148
155
  }
149
- export declare function bindNativeLayout(ck: CanvasKit, measure: MeasureHook, exit: (slot: number) => void): NativeLayout;
156
+ export declare function bindNativeLayout(ck: CanvasKit, measure: MeasureHook, textLines: (slot: number) => void, exit: (slot: number) => void): NativeLayout;
@@ -177,7 +177,7 @@ export interface SceneNativeBinding {
177
177
  _peach_numeric_text_parameters(handle: number): number;
178
178
  _peach_numeric_text_draw(canvas: number, handle: number, x: number, y: number, elapsed: number): void;
179
179
  _peach_numeric_text_drop(handle: number): void;
180
- _peach_scene_set_image(slot: number, image: number, padLeft: number, padTop: number, padRight: number, padBottom: number, srcLeft: number, srcTop: number, srcRight: number, srcBottom: number, offsetX: number, adjustX: number, offsetY: number, adjustY: number, width: number, height: number, repeat: number, mipmaps: number, tintR: number, tintG: number, tintB: number, tintA: number, alpha: number, shape: number, sampling: number): void;
180
+ _peach_scene_set_image(slot: number, image: number, padLeft: number, padTop: number, padRight: number, padBottom: number, srcLeft: number, srcTop: number, srcRight: number, srcBottom: number, offsetX: number, adjustX: number, offsetY: number, adjustY: number, width: number, height: number, repeat: number, mipmaps: number, tintR: number, tintG: number, tintB: number, tintA: number, alpha: number, shape: number, sampling: number, swiftPixelOrigin: number): void;
181
181
  _peach_scene_set_picture(slot: number, picture: number, fontGeneration: number, drawnNodes: number): void;
182
182
  _peach_scene_set_ink(slot: number, glass: number, id: number, label: number): void;
183
183
  _peach_ink_draw_picture(canvas: number, picture: number, shader: number, text: number, left: number, top: number, right: number, bottom: number): void;
@@ -429,7 +429,7 @@ export interface SootSimStyle {
429
429
  _boxShadowOpacity?: SootSimAnimatedNumber;
430
430
  filter?: SootSimAnimatedFilter;
431
431
  _filter?: ParsedFilterOp[];
432
- mixBlendMode?: 'normal' | 'plus-lighter' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | 'destination-out';
432
+ mixBlendMode?: 'normal' | 'plus-lighter' | 'plus-darker' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | 'destination-out';
433
433
  isolation?: 'auto' | 'isolate';
434
434
  outlineWidth?: number;
435
435
  outlineStyle?: 'solid' | 'dashed' | 'dotted';
@@ -465,6 +465,7 @@ export interface SootSimStyle {
465
465
  _hyphenationLocale?: string;
466
466
  _hyphenationFactor?: number;
467
467
  _swiftUIText?: true;
468
+ _swiftUIPickerValue?: true;
468
469
  _composeText?: true;
469
470
  _androidTextView?: true;
470
471
  _androidTextSize?: 'dimension' | 'sp';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peachsim",
3
- "version": "0.1.2228",
3
+ "version": "0.1.2229",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for peach.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -1 +1 @@
1
- {"abi":1,"sha256":"286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa","file":"node/cli-286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa.cjs"}
1
+ {"abi":1,"sha256":"00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde","file":"node/cli-00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde.cjs"}
@@ -1,4 +1,4 @@
1
- import { DESKTOP_RENDER_RESOLUTION } from './menu'
1
+ import { DESKTOP_RENDER_RESOLUTION } from './menuContract'
2
2
  import {
3
3
  isSettingKey,
4
4
  isValidSettingValue,
package/src/menu.ts CHANGED
@@ -1,107 +1,25 @@
1
+ import {
2
+ type SootSimMenuPlatform,
3
+ type SootSimScaleMode,
4
+ type SootSimAmbientGlowLevel,
5
+ SOOTSIM_AMBIENT_GLOW_LEVELS,
6
+ SOOTSIM_AMBIENT_GLOW_LABELS,
7
+ type SootSimStageBackground,
8
+ SOOTSIM_STAGE_BACKGROUNDS,
9
+ SOOTSIM_STAGE_BACKGROUND_LABELS,
10
+ type SootSimRenderResolution,
11
+ SOOTSIM_RENDER_RESOLUTION_LEVELS,
12
+ SOOTSIM_RENDER_RESOLUTION_LABELS,
13
+ type SootSimScreenEffect,
14
+ SOOTSIM_SCREEN_EFFECTS,
15
+ SOOTSIM_SCREEN_EFFECT_LABELS,
16
+ } from './menuContract'
1
17
  import { rnxPublicBrand } from './public-brand'
2
18
 
3
19
  // public sootsim menu protocol. this file is deliberately pure data and pure
4
20
  // functions so hosts can import it without pulling the engine or canvaskit graph.
5
21
 
6
- export const SOOTSIM_ENGINE_EVENT_NAME = 'sootsim:engine-event'
7
- export const SOOTSIM_SHELL_COMMAND_NAME = 'sootsim:shell-command'
8
-
9
- export type SootSimMenuPlatform = 'browser' | 'electron'
10
- export type SootSimScaleMode = 'physical' | 'point' | 'pixel' | 'fit'
11
-
12
- // ambient glow strength. one setting with three states rather than an on/off
13
- // pair plus a separate strength: every host that carries the preference (the
14
- // menus, the persisted setting, the ?ambientGlow= boot seed, the live
15
- // set-ambient-glow push, electron's shared config) then carries exactly one
16
- // value and cannot end up half-configured.
17
- export type SootSimAmbientGlowLevel = 'off' | 'soft' | 'full'
18
- export const SOOTSIM_AMBIENT_GLOW_LEVELS = ['off', 'soft', 'full'] as const
19
-
20
- export function isSootSimAmbientGlowLevel(
21
- value: unknown,
22
- ): value is SootSimAmbientGlowLevel {
23
- return value === 'off' || value === 'soft' || value === 'full'
24
- }
25
-
26
- export const SOOTSIM_AMBIENT_GLOW_LABELS: Record<SootSimAmbientGlowLevel, string> = {
27
- off: 'Off',
28
- soft: 'Soft',
29
- full: 'Full',
30
- }
31
-
32
- // the stage behind the device: system follows the mac's appearance (white in
33
- // light mode, black in dark), or one pinned color. one value per host, like
34
- // the glow level above.
35
- export type SootSimStageBackground = 'system' | 'light' | 'dark' | 'gray'
36
- export const SOOTSIM_STAGE_BACKGROUNDS = ['system', 'light', 'dark', 'gray'] as const
37
-
38
- export function isSootSimStageBackground(
39
- value: unknown,
40
- ): value is SootSimStageBackground {
41
- return value === 'system' || value === 'light' || value === 'dark' || value === 'gray'
42
- }
43
-
44
- export const SOOTSIM_STAGE_BACKGROUND_LABELS: Record<SootSimStageBackground, string> = {
45
- system: 'System',
46
- light: 'Light',
47
- dark: 'Dark',
48
- gray: 'Gray',
49
- }
50
-
51
- // render resolution: how many pixels peach renders per iphone point. one
52
- // setting with three states, carried by every host exactly like the ambient
53
- // glow level above: the menus, the persisted setting, the ?renderResolution=
54
- // boot seed, the live set-render-resolution push, electron's shared config.
55
- export type SootSimRenderResolution = 'high' | 'medium' | 'low'
56
- export const SOOTSIM_RENDER_RESOLUTION_LEVELS = ['high', 'medium', 'low'] as const
57
-
58
- // the installed desktop app presents the phone scaled to fit its window, so a
59
- // fixed 2 px/pt canvas is browser-resampled and its icons read soft. its
60
- // default is the level that tracks the pixels on screen; browsers and capture
61
- // keep medium, whose 2 px/pt is the deterministic capture contract.
62
- export const DESKTOP_RENDER_RESOLUTION: SootSimRenderResolution = 'low'
63
-
64
- export function isSootSimRenderResolution(
65
- value: unknown,
66
- ): value is SootSimRenderResolution {
67
- return value === 'high' || value === 'medium' || value === 'low'
68
- }
69
-
70
- export const SOOTSIM_RENDER_RESOLUTION_LABELS: Record<SootSimRenderResolution, string> = {
71
- high: 'High',
72
- medium: 'Medium',
73
- low: 'Low',
74
- }
75
-
76
- // screen effect: the real rendering, or one of the presentation looks the
77
- // engine's wireframe store draws. 'wireframe' is the clean structural sketch;
78
- // the others are its screen-space styles that ship as named effects.
79
- export type SootSimScreenEffect = 'none' | 'wireframe' | 'blueprint' | 'panel' | 'green'
80
- export const SOOTSIM_SCREEN_EFFECTS = [
81
- 'none',
82
- 'wireframe',
83
- 'blueprint',
84
- 'panel',
85
- 'green',
86
- ] as const
87
-
88
- export function isSootSimScreenEffect(value: unknown): value is SootSimScreenEffect {
89
- return (
90
- value === 'none' ||
91
- value === 'wireframe' ||
92
- value === 'blueprint' ||
93
- value === 'panel' ||
94
- value === 'green'
95
- )
96
- }
97
-
98
- export const SOOTSIM_SCREEN_EFFECT_LABELS: Record<SootSimScreenEffect, string> = {
99
- none: 'None',
100
- wireframe: 'Wireframe',
101
- blueprint: 'Blueprint',
102
- panel: 'Panel',
103
- green: 'Green',
104
- }
22
+ export * from './menuContract'
105
23
 
106
24
  export type SootSimMenuItemDef =
107
25
  | { type: 'separator' }