rnxsim 0.1.443 → 0.1.445

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 (61) hide show
  1. package/cli/auth.ts +2 -2
  2. package/cli/cloud-client.ts +13 -13
  3. package/cli/cloud-session.ts +1 -1
  4. package/cli/outbound-endpoints.ts +2 -0
  5. package/cli/send-to-box.ts +7 -7
  6. package/detox/jest-setup-after-env.cjs +4 -0
  7. package/detox/record-block-execution.cjs +78 -0
  8. package/dist-lib/agent-daemon-client.cjs +1 -1
  9. package/dist-lib/agent-events.cjs +1 -1
  10. package/dist-lib/agent-identity.cjs +1 -1
  11. package/dist-lib/agent-sessions.cjs +1 -1
  12. package/dist-lib/attached-projects.cjs +1 -1
  13. package/dist-lib/auth/shared-session.cjs +1 -1
  14. package/dist-lib/backend-origin.cjs +1 -1
  15. package/dist-lib/beta.cjs +1 -1
  16. package/dist-lib/beta.mjs +1 -1
  17. package/dist-lib/bridge-constants.cjs +1 -1
  18. package/dist-lib/bridge-contract-input.cjs +1 -1
  19. package/dist-lib/bridge-contract-input.mjs +1 -1
  20. package/dist-lib/bridge-contract.cjs +1 -1
  21. package/dist-lib/bridge-contract.mjs +1 -1
  22. package/dist-lib/capture-contract.cjs +1 -1
  23. package/dist-lib/capture-contract.mjs +1 -1
  24. package/dist-lib/cli-constants.cjs +1 -1
  25. package/dist-lib/cloud-contract.cjs +1 -1
  26. package/dist-lib/cloud-contract.mjs +1 -1
  27. package/dist-lib/cloud.cjs +1 -1
  28. package/dist-lib/cloud.mjs +1 -1
  29. package/dist-lib/config.cjs +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/home-paths.cjs +1 -1
  33. package/dist-lib/host/bridge-host.cjs +197 -197
  34. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  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 +4 -4
  40. package/dist-lib/jump-to-source-babel.cjs +1 -1
  41. package/dist-lib/menu.cjs +5 -1
  42. package/dist-lib/menu.mjs +5 -1
  43. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  44. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  45. package/dist-lib/metro-production-bundle.cjs +1 -1
  46. package/dist-lib/metro-production-bundle.mjs +1 -1
  47. package/dist-lib/metro.cjs +1 -1
  48. package/dist-lib/profiles.cjs +1 -1
  49. package/dist-lib/public-brand.cjs +1 -1
  50. package/dist-lib/react-native-host-modules.cjs +1 -1
  51. package/dist-lib/react-native-host-modules.mjs +1 -1
  52. package/dist-lib/render-mode.cjs +1 -1
  53. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  54. package/dist-lib/sdk.cjs +1 -1
  55. package/dist-lib/sdk.mjs +1 -1
  56. package/dist-lib/skills.cjs +491 -253
  57. package/dist-lib/vite.cjs +1 -1
  58. package/package.json +1 -1
  59. package/src/auth/shared-session.ts +1 -1
  60. package/src/cloud-contract.ts +1 -1
  61. package/src/menu.ts +4 -0
package/cli/auth.ts CHANGED
@@ -11,8 +11,8 @@
11
11
  import {
12
12
  readSharedDesktopAuthSession,
13
13
  sharedDesktopAuthAccounts,
14
- } from '../src/auth/shared-session'
15
- import { rnxExit } from './run-rnx'
14
+ } from '../src/auth/shared-session.ts'
15
+ import { rnxExit } from './run-rnx.ts'
16
16
 
17
17
  export type CliApiKeyEnvName = 'RNX_API_KEY'
18
18
 
@@ -17,26 +17,26 @@ import {
17
17
  resolveMetroIosAssetDestFiles,
18
18
  type MetroArtifactAssetSize,
19
19
  type MetroAssetDescriptor,
20
- } from '../../contrast-bundler/src/metroAssetArtifact'
20
+ } from '../../contrast-bundler/src/metroAssetArtifact.ts'
21
21
  import {
22
22
  buildRnxCloudArtifact,
23
23
  type RnxCloudArtifactReceipt,
24
- } from '../../contrast-bundler/src/metroCloudArtifact'
25
- import { inferMetroModuleIdentity } from '../../sootsim-engine/src/metro-fingerprint'
26
- import { loadMetroFingerprintRegistry } from '../../sootsim-engine/src/metro-fingerprint-registry-client'
27
- import { isLoopbackHost } from '../src/backend-origin'
24
+ } from '../../contrast-bundler/src/metroCloudArtifact.ts'
25
+ import { loadMetroFingerprintRegistry } from '../../sootsim-engine/src/metro-fingerprint-registry-client.ts'
26
+ import { inferMetroModuleIdentity } from '../../sootsim-engine/src/metro-fingerprint.ts'
27
+ import { isLoopbackHost } from '../src/backend-origin.ts'
28
28
  import {
29
29
  isRnxCloudCommandType,
30
30
  RNX_CLOUD_MAX_ARTIFACT_BYTES,
31
31
  type RnxCloudBoxCreateReceipt,
32
32
  type RnxCloudCreateReceipt,
33
- } from '../src/cloud-contract'
33
+ } from '../src/cloud-contract.ts'
34
34
  import {
35
35
  RNX_METRO_MODULE_IDENTITY_VERSION,
36
36
  type RNXMetroModuleIdentityMetadata,
37
- } from '../src/metro-production-bundle'
38
- import { rnxPublicBrand } from '../src/public-brand'
39
- import { CHOOSE_ACCOUNT_HINT } from './auth'
37
+ } from '../src/metro-production-bundle.ts'
38
+ import { rnxPublicBrand } from '../src/public-brand.ts'
39
+ import { CHOOSE_ACCOUNT_HINT } from './auth.ts'
40
40
  import {
41
41
  createCloudSession,
42
42
  normalizeCloudOrigin,
@@ -44,15 +44,15 @@ import {
44
44
  type CloudBoxSession,
45
45
  type CloudSession,
46
46
  type CloudSimSession,
47
- } from './cloud-session'
48
- import { detectProject, findProjectRoot } from './commands/detect'
49
- import type { StorageSnapshot } from '../../sootsim-engine/src/preview/storage-snapshot-contract'
47
+ } from './cloud-session.ts'
48
+ import { detectProject, findProjectRoot } from './commands/detect.ts'
49
+ import type { StorageSnapshot } from '../../sootsim-engine/src/preview/storage-snapshot-contract.ts'
50
50
  import type {
51
51
  BridgeClaimResult,
52
52
  BridgeSimInfo,
53
53
  ParsedBridgeCliArgs,
54
54
  WsBridge,
55
- } from './ws-bridge'
55
+ } from './ws-bridge.ts'
56
56
 
57
57
  export const DEFAULT_RNX_CLOUD_ORIGIN = rnxPublicBrand.origin
58
58
  export const MAX_RNX_CLOUD_BUNDLE_BYTES = RNX_CLOUD_MAX_ARTIFACT_BYTES
@@ -1,5 +1,5 @@
1
1
  import { fstatSync, writeSync } from 'node:fs'
2
- import { isLoopbackHost } from '../src/backend-origin'
2
+ import { isLoopbackHost } from '../src/backend-origin.ts'
3
3
 
4
4
  const CLOUD_SESSION_VERSION = 3 as const
5
5
  const SHELL_UPDATE_FD_ENV = 'RNX_SHELL_UPDATE_FD'
@@ -382,6 +382,8 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
382
382
  category: 'same_origin_runtime',
383
383
  count: 1,
384
384
  },
385
+ 'packages/sootsim-engine/src/menu/menuActions.ts :: fetch :: `http://127.0.0.1:${port}/__send-to-box`':
386
+ { category: 'local_development', count: 1 },
385
387
  "packages/sootsim-engine/src/screenshots/capture-store.ts :: fetch :: captureApiUrl(ref, 'grid')":
386
388
  { category: 'contrast_user_action', count: 1 },
387
389
  'packages/sootsim-engine/src/screenshots/capture-store.ts :: fetch :: captureApiUrl(ref, variant)':
@@ -5,17 +5,17 @@
5
5
  // it directly; both hand it a way to run a bridge command against the sim that
6
6
  // is running the app, and both get the same simulator id and URL back.
7
7
 
8
- import { isStorageSnapshot } from '../../sootsim-engine/src/preview/storage-snapshot-contract'
8
+ import { isStorageSnapshot } from '../../sootsim-engine/src/preview/storage-snapshot-contract.ts'
9
9
  import {
10
10
  DEFAULT_DEVICE_BY_PLATFORM,
11
11
  getRuntimePlatform,
12
12
  listDeviceModels,
13
- } from '../../sootsim-engine/src/settings/devices'
14
- import { toRNXProductionBundleUrl } from '../src/metro-production-bundle'
15
- import { createCloudBox } from './cloud-client'
16
- import type { StorageSnapshot } from '../../sootsim-engine/src/preview/storage-snapshot-contract'
17
- import type { DeviceModel } from '../../sootsim-engine/src/settings/devices'
18
- import type { BridgeCommandType } from '../src/bridge-contract'
13
+ } from '../../sootsim-engine/src/settings/devices.ts'
14
+ import { toRNXProductionBundleUrl } from '../src/metro-production-bundle.ts'
15
+ import { createCloudBox } from './cloud-client.ts'
16
+ import type { StorageSnapshot } from '../../sootsim-engine/src/preview/storage-snapshot-contract.ts'
17
+ import type { DeviceModel } from '../../sootsim-engine/src/settings/devices.ts'
18
+ import type { BridgeCommandType } from '../src/bridge-contract.ts'
19
19
 
20
20
  export interface SendToBoxOptions {
21
21
  /** runs one bridge command against the sim running the app. */
@@ -11,6 +11,10 @@
11
11
  // force-reaps its tree. registering it here means no suite has to remember an
12
12
  // afterAll of its own.
13
13
 
14
+ // records which test bodies actually ran, so a downstream reader can tell a
15
+ // setup failure from a behavior failure. no-op unless the run asks for it.
16
+ require('./record-block-execution.cjs')
17
+
14
18
  const { cleanup } = require('rnxsim/detox')
15
19
 
16
20
  afterAll(async () => {
@@ -0,0 +1,78 @@
1
+ // producer half of the paired test-block execution contract. jest's own JSON
2
+ // reporter cannot say whether a failed block failed in its body or never got
3
+ // there: a `beforeAll`/`beforeEach` throw and a failed `expect` inside the body
4
+ // produce assertion results identical in status, duration, invocations,
5
+ // numPassingAsserts and retryReasons. only the failure message text differs, and
6
+ // attributing behavior on message text is the fuzzy join this whole bridge
7
+ // exists to remove.
8
+ //
9
+ // so the suite records it directly. this module wraps the globals the
10
+ // conformance catalogs register their blocks with, and appends one line per
11
+ // block whose body actually started, naming how that body finished. a block
12
+ // whose hooks failed produces no line at all, which is what makes a setup loss
13
+ // distinguishable from a behavior failure downstream.
14
+ //
15
+ // the rnx suites get it through `jest-setup-after-env.cjs`, which this preset
16
+ // already loads; the native detox suites name it in `setupFilesAfterEnv`
17
+ // directly. either way it does nothing until CONFORMANCE_BLOCK_EXECUTION_FILE
18
+ // is set, so an unwired run behaves exactly as before.
19
+ //
20
+ // `scripts/lib/paired-conformance-test-outcomes.ts` reads what this writes.
21
+
22
+ const { appendFileSync } = require('node:fs')
23
+ // the global `expect` is not jest's here: detox's core listener overwrites it
24
+ // with its own element matcher on the circus `setup` event, which fires before
25
+ // setup files are required. `@jest/globals` is served by the jest runtime
26
+ // itself and always hands back the same jest expect the runner set `testPath`
27
+ // on, whatever a runner did to the globals.
28
+ const { expect: jestExpect } = require('@jest/globals')
29
+
30
+ const outputFile = process.env.CONFORMANCE_BLOCK_EXECUTION_FILE
31
+
32
+ if (outputFile) {
33
+ const testFile = jestExpect.getState().testPath
34
+
35
+ // a retried block runs its body more than once. numbering the invocations
36
+ // makes the retry explicit, so a reader can take the last attempt instead of
37
+ // guessing which of two identical lines was terminal.
38
+ const attempts = new Map()
39
+
40
+ const record = (title, bodyOutcome) => {
41
+ const attempt = (attempts.get(title) ?? 0) + 1
42
+ attempts.set(title, attempt)
43
+ appendFileSync(
44
+ outputFile,
45
+ `${JSON.stringify({ attempt, bodyOutcome, testFile, title })}\n`,
46
+ )
47
+ }
48
+
49
+ // jest workers each append to the same file. these lines are far below the
50
+ // atomic-append size, so interleaving splits between lines, never inside one.
51
+ const wrap = (raw) => {
52
+ const wrapped = function wrapped(title, body, timeout) {
53
+ if (typeof body !== 'function') return raw(title, body, timeout)
54
+ return raw(
55
+ title,
56
+ async function recordedBody(...args) {
57
+ let bodyOutcome = 'failed'
58
+ try {
59
+ const value = await body.apply(this, args)
60
+ bodyOutcome = 'passed'
61
+ return value
62
+ } finally {
63
+ record(title, bodyOutcome)
64
+ }
65
+ },
66
+ timeout,
67
+ )
68
+ }
69
+ // carries over each/skip/todo/failing/concurrent; `only` is wrapped too so a
70
+ // focused run still records its bodies.
71
+ Object.assign(wrapped, raw)
72
+ if (typeof raw.only === 'function') wrapped.only = wrap(raw.only)
73
+ return wrapped
74
+ }
75
+
76
+ globalThis.it = wrap(globalThis.it)
77
+ globalThis.test = wrap(globalThis.test)
78
+ }
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/beta.ts
4
4
  var IS_BETA = true;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var SIM_LONG_PRESS_MAX_MS = 5e3;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var SIM_LONG_PRESS_DEFAULT_MS = 500;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/capture-contract.ts
4
4
  var RNX_SCREEN_CAPTURE_VERSION = 1;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/cloud-contract.ts
4
4
  var RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.443 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.445 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;