peachsim 0.1.2221 → 0.1.2223

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 (127) hide show
  1. package/cli/commands/compat.ts +4 -4
  2. package/cli/commands/report-issue.ts +1 -1
  3. package/cli/runtime-compat.ts +7 -2
  4. package/dist-lib/agent-daemon-client.cjs +1 -1
  5. package/dist-lib/agent-events.cjs +1 -1
  6. package/dist-lib/attached-projects.cjs +1 -1
  7. package/dist-lib/auth/shared-session.cjs +1 -1
  8. package/dist-lib/backend-origin.cjs +1 -1
  9. package/dist-lib/beta.cjs +1 -1
  10. package/dist-lib/beta.mjs +1 -1
  11. package/dist-lib/bridge-constants.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.cjs +1 -1
  13. package/dist-lib/bridge-contract-input.mjs +1 -1
  14. package/dist-lib/bridge-contract.cjs +1 -1
  15. package/dist-lib/bridge-contract.mjs +1 -1
  16. package/dist-lib/bundle-channel.cjs +461 -369
  17. package/dist-lib/capture-contract.cjs +1 -1
  18. package/dist-lib/capture-contract.mjs +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/config.mjs +1 -1
  27. package/dist-lib/detox/index.cjs +3 -2
  28. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  29. package/dist-lib/expo-swift-bundle.cjs +458 -367
  30. package/dist-lib/expo-swift-metadata.cjs +1 -1
  31. package/dist-lib/expo-swift-metadata.mjs +1 -1
  32. package/dist-lib/home-paths.cjs +1 -1
  33. package/dist-lib/host/bridge-host.cjs +681 -562
  34. package/dist-lib/host/fetch-proxy-handler.cjs +10 -7
  35. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  36. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  37. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  38. package/dist-lib/host/websocket-proxy.cjs +1 -1
  39. package/dist-lib/index.cjs +8232 -7815
  40. package/dist-lib/jump-to-source-babel.cjs +1 -1
  41. package/dist-lib/jump-to-source-native.cjs +1 -1
  42. package/dist-lib/kotlin-host.cjs +1 -1
  43. package/dist-lib/menu.cjs +1 -1
  44. package/dist-lib/menu.mjs +1 -1
  45. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  46. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  47. package/dist-lib/metro-production-bundle.cjs +1 -1
  48. package/dist-lib/metro-production-bundle.mjs +1 -1
  49. package/dist-lib/metro.cjs +8146 -7737
  50. package/dist-lib/native-app-identity-project.cjs +331 -13
  51. package/dist-lib/native-app-identity-project.mjs +331 -13
  52. package/dist-lib/native-app-identity.cjs +16 -3
  53. package/dist-lib/native-app-identity.mjs +16 -3
  54. package/dist-lib/native-firebase-metadata.cjs +1 -1
  55. package/dist-lib/native-firebase-metadata.mjs +1 -1
  56. package/dist-lib/pdfium-raster.cjs +1 -1
  57. package/dist-lib/pdfium-raster.mjs +1 -1
  58. package/dist-lib/plist.cjs +1 -1
  59. package/dist-lib/plist.mjs +1 -1
  60. package/dist-lib/profiles.cjs +1 -1
  61. package/dist-lib/public-brand.cjs +1 -1
  62. package/dist-lib/public-origins-lib-esm.json +25 -24
  63. package/dist-lib/public-origins-lib.json +99 -96
  64. package/dist-lib/react-native-host-modules.cjs +1 -1
  65. package/dist-lib/react-native-host-modules.mjs +1 -1
  66. package/dist-lib/reap-browser.cjs +1 -1
  67. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  68. package/dist-lib/sdk.cjs +1 -1
  69. package/dist-lib/sdk.mjs +1 -1
  70. package/dist-lib/skills.cjs +518 -408
  71. package/dist-lib/swift-compile.cjs +69 -36
  72. package/dist-lib/swift-compile.mjs +69 -36
  73. package/dist-lib/swift-package.cjs +1 -1
  74. package/dist-lib/swift-package.mjs +1 -1
  75. package/dist-lib/swift-submit.cjs +1 -1
  76. package/dist-lib/swift-submit.mjs +1 -1
  77. package/dist-lib/swift-toolchain.cjs +1 -1
  78. package/dist-lib/swift.cjs +1 -1
  79. package/dist-lib/vite-swift.cjs +143 -56
  80. package/dist-lib/vite.cjs +2930 -2800
  81. package/dist-lib/worklet-executable.cjs +1 -1
  82. package/dist-lib/worklet-executable.mjs +1 -1
  83. package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-cookies.d.ts +2 -1
  84. package/dist-types/packages/peach-engine/src/cli-companion.d.ts +1 -0
  85. package/dist-types/packages/peach-engine/src/cli-host-terser.d.ts +7 -0
  86. package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +1 -1
  87. package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +1 -0
  88. package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +1 -0
  89. package/dist-types/packages/peach-engine/src/engine/node.d.ts +5 -0
  90. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +8 -1
  91. package/dist-types/packages/peach-engine/src/engine/types.d.ts +3 -0
  92. package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +1 -1
  93. package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +2 -2
  94. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +1 -2
  95. package/dist-types/packages/peach-globals/src/browser-object-url.d.ts +10 -0
  96. package/dist-types/packages/peach-kit/src/internal.d.ts +1 -0
  97. package/dist-types/packages/peach-kit/src/ios-tint.d.ts +1 -0
  98. package/dist-types/packages/peach-kit/src/transitions/screen-transition-math.d.ts +25 -0
  99. package/kotlin/sdk.tar.gz +0 -0
  100. package/package.json +1 -1
  101. package/runtime-companion.json +1 -1
  102. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNAnimation.h +4 -4
  103. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNCameraController.h +1 -1
  104. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNConstraint.h +5 -5
  105. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNGeometry.h +1 -1
  106. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNLevelOfDetail.h +1 -1
  107. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParametricGeometry.h +9 -9
  108. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParticleSystem.h +1 -1
  109. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNPhysicsBehavior.h +7 -7
  110. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNRenderer.h +1 -1
  111. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNShadable.h +1 -1
  112. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNTechnique.h +1 -1
  113. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UISegmentedControl.h +1 -1
  114. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UITabBar.h +1 -1
  115. package/src/cli-runtime.ts +1 -0
  116. package/src/conformance-pixel-comparison.ts +16 -3
  117. package/src/expo-native-workspace.ts +14 -10
  118. package/src/expo-workspace-exclusion.ts +10 -7
  119. package/src/react-native-autolinking.ts +2 -1
  120. package/src/runtime-delivery.ts +7 -0
  121. package/src/swift-compile.ts +51 -35
  122. package/src/swift-coverage/xcode-assets.ts +4 -2
  123. package/src/swift-host.ts +53 -14
  124. package/src/swift-root-lock.ts +27 -4
  125. package/src/wasm-optimize.ts +5 -1
  126. package/src/xcode-project.ts +26 -5
  127. package/src/xcode-target-members.ts +25 -3
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2223 | (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.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2223 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/worklet-executable.ts
4
4
  import { parse } from "acorn";
@@ -1,3 +1,4 @@
1
+ import { BrowserURL } from '../../../../peach-globals/src/browser-object-url.d.ts';
1
2
  import type { NativeEvaluationLease } from '../../../../peach-engine/src/guest/native-evaluation-lease.d.ts';
2
3
  export type NativeCookie = {
3
4
  name: string;
@@ -39,7 +40,7 @@ export declare const cookieStores: {
39
40
  readonly native: NativeCookieJar;
40
41
  readonly webKit: NativeCookieJar;
41
42
  };
42
- export declare function createCookieOperations(): {
43
+ export declare function createCookieOperations(URLConstructor: typeof BrowserURL): {
43
44
  storeResponseCookies: (store: CookieStore, url: string, headers: readonly string[]) => void;
44
45
  restore: (cookies: unknown) => CookieStore;
45
46
  cookiesMatching: (store: CookieStore, parsed: URL) => StoredCookie[];
@@ -1,4 +1,5 @@
1
1
  export declare const cliCompanionAbi = 1;
2
+ export { provideTerser } from './cli-host-terser.d.ts';
2
3
  export * as billing_plans from './billing/plans.d.ts';
3
4
  export * as browser_page_target from './browser-page-target.d.ts';
4
5
  export * as bundle_platform_url from './bundle-platform-url.d.ts';
@@ -0,0 +1,7 @@
1
+ import type { minify as terserMinify } from 'terser';
2
+ type Terser = {
3
+ minify: typeof terserMinify;
4
+ };
5
+ export declare function provideTerser(loader: () => Promise<Terser>): void;
6
+ export declare const minify: typeof terserMinify;
7
+ export {};
@@ -1,4 +1,4 @@
1
- declare const GLASS_STYLES: readonly ['regular', 'clear', 'home-dock', 'home-search', 'switch-thumb', 'slider-thumb', 'sidebar', 'keyboard'];
1
+ declare const GLASS_STYLES: readonly ['regular', 'clear', 'home-dock', 'home-search', 'switch-thumb', 'slider-thumb', 'sidebar', 'keyboard', 'sheet'];
2
2
  export type GlassStyle = (typeof GLASS_STYLES)[number];
3
3
  export declare function glassMaterialCode(style: GlassStyle): number;
4
4
  export type GlassScheme = 'light' | 'dark';
@@ -65,6 +65,7 @@ export interface LiquidGlassConfig {
65
65
  cornerRadii?: [number, number, number, number];
66
66
  shapeArrow?: GlassShapeArrow;
67
67
  clipToStyleCorners?: boolean;
68
+ materialStyleCorners?: boolean;
68
69
  outerRim?: {
69
70
  width: number;
70
71
  wallOpacity: number;
@@ -18,6 +18,7 @@ export interface NativeLayoutExports {
18
18
  _peach_layout_freed_nodes(): number;
19
19
  _peach_layout_bind(slot: number, tag: number, observers: number, scale: number): void;
20
20
  _peach_layout_apply(slot: number): void;
21
+ _peach_layout_alignment(slot: number, alignmentAxis: number, alignmentGuide: number, alignmentFraction: number, alignmentScale: number): void;
21
22
  _peach_layout_attach(parent: number, child: number, index: number): void;
22
23
  _peach_layout_detach(parent: number, child: number): void;
23
24
  _peach_layout_children_input(count: number): number;
@@ -390,6 +390,11 @@ export declare class SootSimNode {
390
390
  set parent(parent: SootSimNode | null);
391
391
  get layout(): SootSimLayout;
392
392
  set layout(layout: SootSimLayout);
393
+ _styleRecord: Uint8Array;
394
+ _styleScene: Float64Array | null;
395
+ _styleSceneStale: boolean;
396
+ noteStyleScene(record: Float64Array): void;
397
+ get styleRecord(): Uint8Array;
393
398
  get style(): SootSimStyle;
394
399
  get rawStyle(): Readonly<SootSimStyle>;
395
400
  set style(nextStyle: SootSimStyle);
@@ -25,11 +25,16 @@ export declare const SCENE_FLAG_MASK_SLOT = 512;
25
25
  export declare const SCENE_FLAG_STICKY_HEADER = 1024;
26
26
  export declare const SCENE_FLAG_VERTICAL_SCROLL = 2048;
27
27
  export declare const SCENE_FLAG_TEXT = 4096;
28
+ export declare const SCENE_FLAG_LIVE_EXTENT_STYLE = 65536;
28
29
  export declare const SCENE_FLAG_IMAGE = 524288;
29
30
  export declare const SCENE_FLAG_HOISTED = 2097152;
30
31
  export declare const SCENE_FLAG_HOIST_HOST = 4194304;
31
32
  export declare const SCENE_FLAG_STICKY_INVERTED = 8388608;
32
33
  export declare const SCENE_FLAG_PORTAL_HOST = 536870912;
34
+ export declare const STYLE_RECORD_STYLE_FLAGS = 0;
35
+ export declare const STYLE_RECORD_PRESERVE = 1;
36
+ export declare const STYLE_RECORD_OP_COUNT = 7;
37
+ export declare const STYLE_RECORD_Z_OBJECT = 13;
33
38
  export declare const SCROLL_INDICATOR_EVENT: {
34
39
  readonly clear: 0;
35
40
  readonly flash: 1;
@@ -76,6 +81,7 @@ export declare const SCENE_PAINT_SIZE_FREE = 268435456;
76
81
  export declare const SCENE_PAINT_MATERIAL = 536870912;
77
82
  export declare const SCENE_PAINT_VIEW_MASK = 1073741824;
78
83
  export declare const SCENE_PAINT_SWIFTUI_FRAME = -2147483648;
84
+ export declare const STYLE_RECORD_LENGTH: number;
79
85
  export declare const SCENE_D_SELF_GEN = 38;
80
86
  export declare const SCENE_D_SUB_GEN = 39;
81
87
  export declare const SCENE_D_KIND_STAMP = 53;
@@ -366,7 +372,8 @@ export declare class SceneTable {
366
372
  writeScroll(slot: number, x: number, y: number): void;
367
373
  writeStickyHidden(slot: number, offset: number): void;
368
374
  writeZoom(slot: number, zoom: number | undefined): void;
369
- writeStyle(slot: number, style: SootSimStyle, resolve: (value: unknown) => unknown, owned?: Readonly<Record<string, unknown>> | null): void;
375
+ writeStyle(slot: number, style: SootSimStyle, resolve: (value: unknown) => unknown, owned?: Readonly<Record<string, unknown>> | null): Float64Array | undefined;
376
+ applyStyleRecord(slot: number, record: Float64Array, style: SootSimStyle, resolve: (value: unknown) => unknown, owned?: Readonly<Record<string, unknown>> | null): void;
370
377
  writeExtentStyle(slot: number, style: SootSimStyle, resolve: (value: unknown) => unknown): void;
371
378
  writeLayoutMatrix(slot: number, transform: SootSimStyle['transform'], transformOrigin: SootSimStyle['transformOrigin'], resolve: (value: unknown) => unknown): void;
372
379
  writeTransform(slot: number, transform: SootSimStyle['transform'], transformOrigin: SootSimStyle['transformOrigin'], resolve: (value: unknown) => unknown): void;
@@ -464,6 +464,9 @@ export interface SootSimStyle {
464
464
  _swiftUIFrame?: true;
465
465
  _pixelSnapped?: true;
466
466
  _swiftUIVerticalGuide?: 'firstTextLineCenter' | 'firstTextBaseline' | 'lastTextBaseline';
467
+ _swiftUIAlignmentAxis?: 'row' | 'column';
468
+ _swiftUIAlignmentGuide?: number;
469
+ _swiftUIAlignmentFraction?: number;
467
470
  _swiftUIPlatformView?: true;
468
471
  _swiftUIFrameSnapped?: true;
469
472
  _uikitControlContent?: true;
@@ -61,4 +61,4 @@ export declare function releaseYogaRoot(root: SootSimNode): void;
61
61
  export declare function nestsInParkedYogaTree(root: SootSimNode, owner: SootSimNode): boolean;
62
62
  export declare function parkYogaRoot(root: SootSimNode): boolean;
63
63
  export declare function freeYogaTree(node: SootSimNode): void;
64
- export declare function measureText(text: string, sourceStyle: SootSimStyle, maxWidth: number, ctx: MeasureContext, props?: Record<string, any>, node?: SootSimNode, includeInk?: boolean): MeasuredTextResult;
64
+ export declare function measureText(text: string, sourceStyle: SootSimStyle, maxWidth: number, ctx: MeasureContext, props?: Record<string, any>, node?: SootSimNode, includeInk?: boolean, maxHeight?: number): MeasuredTextResult;
@@ -1,7 +1,7 @@
1
- export declare const DISPLAY_SERVER_VERSION = 12;
1
+ export declare const DISPLAY_SERVER_VERSION = 13;
2
2
  export declare const DISPLAY_SERVER_MAJOR = 2;
3
3
  export declare const DISPLAY_SERVER_MINOR = 30;
4
- export declare const DISPLAY_SERVER_SUBPROTOCOL = "rnx.display-server.v2.wire12.minor30";
4
+ export declare const DISPLAY_SERVER_SUBPROTOCOL = "rnx.display-server.v2.wire13.minor30";
5
5
  export declare const DISPLAY_SERVER_TOKEN_SUBPROTOCOL_PREFIX = "rnx.sim-token.";
6
6
  export declare const RNX_CLOUD_DISPLAY_GRANT_TTL_MS: number;
7
7
  export declare const RNX_CLOUD_DISPLAY_CLOSE: {
@@ -11,7 +11,7 @@ export interface WireElementNode {
11
11
  id: number;
12
12
  type: SootSimNodeType;
13
13
  props: Record<string, unknown>;
14
- style?: Record<string, unknown>;
14
+ styleRecord: Uint8Array;
15
15
  layoutPlacement?: LayoutHookPlacement;
16
16
  animDriven?: readonly AnimatedDrivenStyleLease[];
17
17
  animDrivenRetired?: readonly AnimatedDrivenStyleRetirement[];
@@ -68,7 +68,6 @@ export type WireSurfaceUpdate = WireDelta & {
68
68
  unwrappedMeasurements?: UnwrappedTextMeasurement[];
69
69
  };
70
70
  export declare function sanitizeProps(props: Record<string, unknown>, nodeType?: SootSimNodeType): Record<string, unknown>;
71
- export declare function sanitizeStyle(style: Record<string, unknown>): Record<string, unknown>;
72
71
  interface ImageFetchMemo {
73
72
  from: string;
74
73
  to: string;
@@ -0,0 +1,10 @@
1
+ export declare const BrowserURL: {
2
+ new (url: string | URL, base?: string | URL): URL;
3
+ prototype: URL;
4
+ canParse(url: string | URL, base?: string | URL): boolean;
5
+ createObjectURL(obj: Blob | MediaSource): string;
6
+ parse(url: string | URL, base?: string | URL): URL | null;
7
+ revokeObjectURL(url: string): void;
8
+ };
9
+ export declare const createBrowserObjectURL: (obj: Blob | MediaSource) => string;
10
+ export declare const revokeBrowserObjectURL: (url: string) => void;
@@ -3,3 +3,4 @@ export { bindReact } from './react-bridge.d.ts';
3
3
  export { POPOVER_ARROWS, POPOVER_ARROW_DEPTH, POPOVER_CORNER_RADIUS, placePopover, centerArrowlessPopover, popoverGlassArrow, popoverRegion, } from './ui/popover-placement.d.ts';
4
4
  export { KeyboardToolbarAccessoryContext, type KeyboardToolbarAccessory, } from './ui/keyboard-toolbar.d.ts';
5
5
  export { childControllerLayoutMargin, HostingSafeAreaContext, systemLayoutMargin, type HostingSafeAreaContainer, } from './ui/hosting-safe-area.d.ts';
6
+ export { dimmedIOSTint } from './ios-tint.d.ts';
@@ -0,0 +1 @@
1
+ export declare function dimmedIOSTint(color: string): string;
@@ -608,7 +608,30 @@ export interface FormSheetLargeMorph {
608
608
  };
609
609
  clipTag?: number;
610
610
  opaqueTag?: number;
611
+ materials?: FormSheetMaterialTarget[];
611
612
  }
613
+ export interface FormSheetMaterialFill {
614
+ color: readonly [number, number, number, number];
615
+ glassMatrix?: readonly number[];
616
+ glassColor?: readonly [number, number, number, number];
617
+ }
618
+ export interface FormSheetMaterialTarget extends FormSheetMaterialFill {
619
+ viewTag: number;
620
+ }
621
+ export declare function formSheetMaterialOpacity(morph: FormSheetLargeMorph, sheetTop: number): 0 | 1;
622
+ export declare function formSheetMaterialStyle(fill: FormSheetMaterialFill, opaqueAlpha: number): {
623
+ color: string;
624
+ backgroundColor?: undefined;
625
+ _backdropColorMatrix?: undefined;
626
+ } | {
627
+ color?: undefined;
628
+ backgroundColor: string;
629
+ _backdropColorMatrix?: undefined;
630
+ } | {
631
+ color?: undefined;
632
+ backgroundColor?: undefined;
633
+ _backdropColorMatrix: number[];
634
+ };
612
635
  export declare function formSheetLargeMorphShare(morph: FormSheetLargeMorph, sheetTop: number): number;
613
636
  export interface FormSheetCornerRadii {
614
637
  topLeft: number;
@@ -627,6 +650,7 @@ export interface ShellInteractiveFormSheetSpec {
627
650
  flexGlowContainerTag?: number;
628
651
  detents: ShellFormSheetDetent[];
629
652
  selectedIndex: number;
653
+ overDragDimension: number;
630
654
  expandsWhenScrolledToEdge: boolean;
631
655
  preventNativeDismiss: boolean;
632
656
  defersUserDismissal?: boolean;
@@ -670,6 +694,7 @@ export declare function consumeFormSheetPointerDelta(input: {
670
694
  screenHeight: number;
671
695
  startTop: number;
672
696
  translationY: number;
697
+ coordinateSpace: 'window' | 'content';
673
698
  };
674
699
  }): {
675
700
  consumedY: number;
package/kotlin/sdk.tar.gz CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peachsim",
3
- "version": "0.1.2221",
3
+ "version": "0.1.2223",
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":"c3cfa87c38bca3be3b225d514efe1b9e2ab9119227137e7190dfa25eccf43fe7","file":"node/cli-c3cfa87c38bca3be3b225d514efe1b9e2ab9119227137e7190dfa25eccf43fe7.cjs"}
1
+ {"abi":1,"sha256":"ec96dcaf1a90c0295f3ea5be7ec176c04c0714e27eda99ca6b2ba0a2e3394fd0","file":"node/cli-ec96dcaf1a90c0295f3ea5be7ec176c04c0714e27eda99ca6b2ba0a2e3394fd0.cjs"}
@@ -23,7 +23,7 @@ typedef void (^SCNAnimationDidStartBlock)(SCNAnimation *animation, id <SCNAnimat
23
23
  typedef void (^SCNAnimationDidStopBlock)(SCNAnimation *animation, id <SCNAnimatable> receiver, BOOL completed);
24
24
 
25
25
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
26
- @interface SCNTimingFunction : NSObject <NSSecureCoding>
26
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNTimingFunction : NSObject <NSSecureCoding>
27
27
  + (SCNTimingFunction *)functionWithTimingMode:(SCNActionTimingMode)timingMode;
28
28
  + (SCNTimingFunction *)functionWithCAMediaTimingFunction:(CAMediaTimingFunction *)caTimingFunction;
29
29
  @end
@@ -155,7 +155,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
155
155
  SCNAnimation represents an animation that targets a specific key path.
156
156
  */
157
157
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
158
- @interface SCNAnimation : NSObject <SCNAnimation, NSCopying, NSSecureCoding>
158
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNAnimation : NSObject <SCNAnimation, NSCopying, NSSecureCoding>
159
159
 
160
160
 
161
161
  /*!
@@ -352,7 +352,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
352
352
  SCNAnimationPlayer let you control when and how to play and blend an animation
353
353
  */
354
354
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
355
- @interface SCNAnimationPlayer : NSObject <SCNAnimatable, NSCopying, NSSecureCoding>
355
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNAnimationPlayer : NSObject <SCNAnimatable, NSCopying, NSSecureCoding>
356
356
 
357
357
  /**
358
358
  Initialize an animation player with an animation
@@ -412,7 +412,7 @@ typedef void (^SCNAnimationEventBlock)(id <SCNAnimation> animation, id animatedO
412
412
  SCNAnimationEvent encapsulates a block to trigger at a specific time.
413
413
  */
414
414
  SCN_EXPORT API_AVAILABLE(macos(10.9))
415
- @interface SCNAnimationEvent : NSObject
415
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNAnimationEvent : NSObject
416
416
 
417
417
  /*!
418
418
  @method animationEventWithKeyTime:block:
@@ -36,7 +36,7 @@ API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
36
36
  @end
37
37
 
38
38
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
39
- @interface SCNCameraController : NSObject
39
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNCameraController : NSObject
40
40
 
41
41
  @property(nonatomic, assign, nullable) id <SCNCameraControllerDelegate> delegate;
42
42
 
@@ -103,7 +103,7 @@ typedef NS_OPTIONS(NSUInteger, SCNBillboardAxis) {
103
103
  };
104
104
 
105
105
  SCN_EXPORT API_AVAILABLE(macos(10.11), ios(9.0))
106
- @interface SCNBillboardConstraint : SCNConstraint
106
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNBillboardConstraint : SCNConstraint
107
107
 
108
108
  /*!
109
109
  @method billboardConstraint:
@@ -165,7 +165,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.9))
165
165
  @abstract A SCNIKConstraint applies an inverse kinematics constraint
166
166
  */
167
167
  SCN_EXPORT API_AVAILABLE(macos(10.10))
168
- @interface SCNIKConstraint : SCNConstraint
168
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNIKConstraint : SCNConstraint
169
169
 
170
170
  /*!
171
171
  @method initWithChainRootNode:
@@ -246,7 +246,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
246
246
  @abstract A SCNReplicatorConstraint replicates the position/orientation/scale of a target node
247
247
  */
248
248
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
249
- @interface SCNReplicatorConstraint : SCNConstraint
249
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNReplicatorConstraint : SCNConstraint
250
250
 
251
251
  /*!
252
252
  @method replicatorWithTargetNode
@@ -348,7 +348,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
348
348
  @abstract A SCNSliderConstraint constraint makes a node to collide and slide against a category of nodes
349
349
  */
350
350
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
351
- @interface SCNSliderConstraint : SCNConstraint
351
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNSliderConstraint : SCNConstraint
352
352
 
353
353
  /*!
354
354
  @method accelerationConstraint
@@ -393,7 +393,7 @@ API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
393
393
  @discussion The target node and it's children are ignored as potential occluders.
394
394
  */
395
395
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
396
- @interface SCNAvoidOccluderConstraint : SCNConstraint
396
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNAvoidOccluderConstraint : SCNConstraint
397
397
 
398
398
  /*!
399
399
  @method avoidOccluderConstraintWithTarget
@@ -531,7 +531,7 @@ typedef NS_ENUM(NSInteger, SCNTessellationSmoothingMode) {
531
531
  */
532
532
 
533
533
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(12.0)) API_UNAVAILABLE(watchos)
534
- @interface SCNGeometryTessellator : NSObject <NSCopying, NSSecureCoding>
534
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNGeometryTessellator : NSObject <NSCopying, NSSecureCoding>
535
535
 
536
536
  /*!
537
537
  @property tessellationFactorScale
@@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
15
15
  @abstract SCNLevelOfDetail represents a level of detail of a geometry.
16
16
  */
17
17
  SCN_EXPORT API_AVAILABLE(macos(10.9))
18
- @interface SCNLevelOfDetail : NSObject <NSCopying, NSSecureCoding>
18
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNLevelOfDetail : NSObject <NSCopying, NSSecureCoding>
19
19
 
20
20
  /*!
21
21
  @method levelOfDetailWithGeometry:screenSpaceRadius:
@@ -157,7 +157,7 @@ SCN_EXPORT
157
157
  */
158
158
 
159
159
  SCN_EXPORT
160
- @interface SCNPyramid : SCNGeometry
160
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPyramid : SCNGeometry
161
161
 
162
162
  /*!
163
163
  @method pyramidWithWidth:height:length:
@@ -258,7 +258,7 @@ SCN_EXPORT
258
258
  */
259
259
 
260
260
  SCN_EXPORT
261
- @interface SCNCylinder : SCNGeometry
261
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNCylinder : SCNGeometry
262
262
 
263
263
  /*!
264
264
  @method cylinderWithRadius:height:
@@ -305,7 +305,7 @@ SCN_EXPORT
305
305
  */
306
306
 
307
307
  SCN_EXPORT
308
- @interface SCNCone : SCNGeometry
308
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNCone : SCNGeometry
309
309
 
310
310
  /*!
311
311
  @method coneWithTopRadius:bottomRadius:height:
@@ -360,7 +360,7 @@ SCN_EXPORT
360
360
  */
361
361
 
362
362
  SCN_EXPORT
363
- @interface SCNTube : SCNGeometry
363
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNTube : SCNGeometry
364
364
 
365
365
  /*!
366
366
  @method tubeWithInnerRadius:outerRadius:height:
@@ -415,7 +415,7 @@ SCN_EXPORT
415
415
  */
416
416
 
417
417
  SCN_EXPORT
418
- @interface SCNCapsule : SCNGeometry
418
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNCapsule : SCNGeometry
419
419
 
420
420
  /*!
421
421
  @method capsuleWithCapRadius:height:
@@ -469,7 +469,7 @@ SCN_EXPORT
469
469
  */
470
470
 
471
471
  SCN_EXPORT
472
- @interface SCNTorus : SCNGeometry
472
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNTorus : SCNGeometry
473
473
 
474
474
  /*!
475
475
  @method torusWithRingRadius:pipeRadius:
@@ -516,7 +516,7 @@ SCN_EXPORT
516
516
  */
517
517
 
518
518
  SCN_EXPORT
519
- @interface SCNFloor : SCNGeometry
519
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNFloor : SCNGeometry
520
520
 
521
521
  /*!
522
522
  @method floor
@@ -583,7 +583,7 @@ SCN_EXPORT
583
583
  */
584
584
 
585
585
  SCN_EXPORT
586
- @interface SCNText : SCNGeometry
586
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNText : SCNGeometry
587
587
 
588
588
  /*!
589
589
  @method textWithString:extrusionDepth:
@@ -677,7 +677,7 @@ typedef NS_ENUM(NSInteger, SCNChamferMode) {
677
677
  @abstract SCNShape represents a 2D shape (cubic Bezier spline) than can be extruded.
678
678
  */
679
679
  SCN_EXPORT API_AVAILABLE(macos(10.9))
680
- @interface SCNShape : SCNGeometry
680
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNShape : SCNGeometry
681
681
 
682
682
  /*!
683
683
  @method shapeWithPath:extrusionDepth:
@@ -155,7 +155,7 @@ typedef NS_ENUM(NSInteger, SCNParticleEvent) {
155
155
  @abstract The SCNParticlePropertyController class controls the variation over time or over distance of a particle property.
156
156
  */
157
157
  SCN_EXPORT API_AVAILABLE(macos(10.10))
158
- @interface SCNParticlePropertyController: NSObject <NSSecureCoding, NSCopying>
158
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNParticlePropertyController: NSObject <NSSecureCoding, NSCopying>
159
159
 
160
160
  // Creates and initializes a particle property controller with the specified animation.
161
161
  + (instancetype)controllerWithAnimation:(CAAnimation *)animation API_UNAVAILABLE(watchos);
@@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
17
17
  @abstract SCNPhysicsBehavior is an abstract class that represents a behavior in the physics world.
18
18
  */
19
19
  SCN_EXPORT API_AVAILABLE(macos(10.10))
20
- @interface SCNPhysicsBehavior : NSObject <NSSecureCoding>
20
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPhysicsBehavior : NSObject <NSSecureCoding>
21
21
  @end
22
22
 
23
23
  /*!
@@ -25,7 +25,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.10))
25
25
  @abstract SCNPhysicsHingeJoint makes two bodies to move like they are connected by a hinge. It is for example suitable for doors, chains...
26
26
  */
27
27
  SCN_EXPORT API_AVAILABLE(macos(10.10))
28
- @interface SCNPhysicsHingeJoint : SCNPhysicsBehavior
28
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPhysicsHingeJoint : SCNPhysicsBehavior
29
29
 
30
30
  //Initializes and returns a physics hinge joint.
31
31
  //The hinge attaches bodyA and bodyB on anchorA and anchorB respectively. "axisA" and "axisB" specify the axis of rotation for bodyA and bodyB.
@@ -50,7 +50,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.10))
50
50
  @abstract SCNPhysicsBallSocketJoint makes two bodies to move like they are connected by a ball-and-socket joint (i.e it allows rotations around all axes).
51
51
  */
52
52
  SCN_EXPORT API_AVAILABLE(macos(10.10))
53
- @interface SCNPhysicsBallSocketJoint : SCNPhysicsBehavior
53
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPhysicsBallSocketJoint : SCNPhysicsBehavior
54
54
 
55
55
  //Initializes and returns a physics ball-and-socket joint.
56
56
  //The joint attaches bodyA and bodyB on anchorA and anchorB respectively.
@@ -73,7 +73,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.10))
73
73
  @abstract SCNPhysicsSliderJoint provides a linear sliding joint between two bodies.
74
74
  */
75
75
  SCN_EXPORT API_AVAILABLE(macos(10.10))
76
- @interface SCNPhysicsSliderJoint : SCNPhysicsBehavior
76
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPhysicsSliderJoint : SCNPhysicsBehavior
77
77
 
78
78
  //Initializes and returns a physics slider joint.
79
79
  //The joint attaches bodyA and bodyB on anchorA and anchorB respectively.
@@ -111,7 +111,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.10))
111
111
  @class SCNPhysicsConeTwistJoint
112
112
  */
113
113
  SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
114
- @interface SCNPhysicsConeTwistJoint : SCNPhysicsBehavior
114
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPhysicsConeTwistJoint : SCNPhysicsBehavior
115
115
 
116
116
  //Initializes and returns a physics cone-twist joint.
117
117
  //The joint attaches bodyA and bodyB on frameA and frameB respectively.
@@ -141,7 +141,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
141
141
  @abstract SCNPhysicsVehicleWheel represents a wheel that can be attached to a SCNPhysicsVehicle instance.
142
142
  */
143
143
  SCN_EXPORT API_AVAILABLE(macos(10.10))
144
- @interface SCNPhysicsVehicleWheel : NSObject <NSCopying, NSSecureCoding>
144
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPhysicsVehicleWheel : NSObject <NSCopying, NSSecureCoding>
145
145
 
146
146
  //Initializes and returns a wheel.
147
147
  + (instancetype)wheelWithNode:(SCNNode *)node;
@@ -189,7 +189,7 @@ SCN_EXPORT API_AVAILABLE(macos(10.10))
189
189
  @abstract SCNPhysicsVehicle provides a vehicle behavior.
190
190
  */
191
191
  SCN_EXPORT API_AVAILABLE(macos(10.10))
192
- @interface SCNPhysicsVehicle : SCNPhysicsBehavior
192
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNPhysicsVehicle : SCNPhysicsBehavior
193
193
 
194
194
  // Initializes and returns a physics vehicle that applies on the physics body "chassisBody" with the given wheels.
195
195
  //The wheel properties can be modified at anytime by calling setValue:forKeyPath: on each wheel with the format 'wheel[n].property', where n if the zero based wheel index.
@@ -21,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN
21
21
  */
22
22
  API_UNAVAILABLE(watchos)
23
23
  SCN_EXPORT
24
- @interface SCNRenderer : NSObject <SCNSceneRenderer, SCNTechniqueSupport>
24
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNRenderer : NSObject <SCNSceneRenderer, SCNTechniqueSupport>
25
25
 
26
26
  #if SCN_ENABLE_OPENGL
27
27
 
@@ -244,7 +244,7 @@ SCN_EXPORT NSString * const SCNProgramMappingChannelKey API_UNAVAILABLE(watchos)
244
244
  */
245
245
  API_UNAVAILABLE(watchos)
246
246
  SCN_EXPORT
247
- @interface SCNProgram : NSObject <NSCopying, NSSecureCoding>
247
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNProgram : NSObject <NSCopying, NSSecureCoding>
248
248
 
249
249
  /*!
250
250
  @method program
@@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
16
16
  @discussion A technique is generally initialized from a Property List file. It can be set to any object that conforms to the SCNTechniqueSupport protocol.
17
17
  */
18
18
  SCN_EXPORT API_AVAILABLE(macos(10.10))
19
- @interface SCNTechnique : NSObject <SCNAnimatable, NSCopying, NSSecureCoding>
19
+ PEACH_SWIFT_CLASS(SceneKit) @interface SCNTechnique : NSObject <SCNAnimatable, NSCopying, NSSecureCoding>
20
20
 
21
21
  /*!
22
22
  @method techniqueWithDictionary:
@@ -40,7 +40,7 @@ typedef NS_ENUM(NSInteger, UISegmentedControlSegment) {
40
40
  @class UIImage, UIColor;
41
41
 
42
42
  UIKIT_EXTERN API_AVAILABLE(ios(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
43
- @interface UISegmentedControl : UIControl <NSCoding>
43
+ PEACH_SWIFT_CLASS(UIKitCore) @interface UISegmentedControl : UIControl <NSCoding>
44
44
 
45
45
  - (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
46
46
  - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
@@ -22,7 +22,7 @@ NS_HEADER_AUDIT_BEGIN(nullability, sendability)
22
22
  @protocol UITabBarDelegate;
23
23
 
24
24
  UIKIT_EXTERN API_AVAILABLE(ios(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
25
- @interface UITabBar : UIView
25
+ PEACH_SWIFT_CLASS(UIKitCore) @interface UITabBar : UIView
26
26
 
27
27
  @property(nullable, nonatomic, weak) id<UITabBarDelegate> delegate; // weak reference. default is nil
28
28
  @property(nullable, nonatomic, copy) NSArray<UITabBarItem *> *items; // get/set visible UITabBarItems. default is nil. changes not animated. shown in order
@@ -79,6 +79,7 @@ export function getCliRuntime(): typeof CliRuntime {
79
79
  'Incompatible Peach runtime companion ABI; run `peach runtime install`',
80
80
  )
81
81
  }
82
+ runtime.provideTerser(() => import('terser'))
82
83
  loaded = { root, runtime }
83
84
  return runtime
84
85
  }
@@ -132,11 +132,24 @@ export function compareConformancePixels(options: {
132
132
  }
133
133
  if (identical) {
134
134
  options.diff?.fill(0)
135
+ const columns = Math.ceil(options.width)
136
+ const excludedColumns =
137
+ region.cornerRadius > 0
138
+ ? Math.min(
139
+ columns,
140
+ Math.ceil(region.cornerRadius) +
141
+ columns -
142
+ Math.max(0, Math.ceil(options.width - region.cornerRadius)),
143
+ )
144
+ : 0
135
145
  let totalPixels = 0
136
146
  for (let y = region.yStart; y < region.yEnd; y++) {
137
- for (let x = 0; x < options.width; x++) {
138
- if (!excluded(x, y)) totalPixels++
139
- }
147
+ const globalY = region.globalYStart + y
148
+ totalPixels +=
149
+ globalY < region.cornerRadius ||
150
+ globalY >= region.fullHeight - region.cornerRadius
151
+ ? columns - excludedColumns
152
+ : columns
140
153
  }
141
154
  return { differingPixels: 0, totalPixels }
142
155
  }