rnxsim 0.1.444 → 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 (57) 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/send-to-box.ts +7 -7
  5. package/dist-lib/agent-daemon-client.cjs +1 -1
  6. package/dist-lib/agent-events.cjs +1 -1
  7. package/dist-lib/agent-identity.cjs +1 -1
  8. package/dist-lib/agent-sessions.cjs +1 -1
  9. package/dist-lib/attached-projects.cjs +1 -1
  10. package/dist-lib/auth/shared-session.cjs +1 -1
  11. package/dist-lib/backend-origin.cjs +1 -1
  12. package/dist-lib/beta.cjs +1 -1
  13. package/dist-lib/beta.mjs +1 -1
  14. package/dist-lib/bridge-constants.cjs +1 -1
  15. package/dist-lib/bridge-contract-input.cjs +1 -1
  16. package/dist-lib/bridge-contract-input.mjs +1 -1
  17. package/dist-lib/bridge-contract.cjs +1 -1
  18. package/dist-lib/bridge-contract.mjs +1 -1
  19. package/dist-lib/capture-contract.cjs +1 -1
  20. package/dist-lib/capture-contract.mjs +1 -1
  21. package/dist-lib/cli-constants.cjs +1 -1
  22. package/dist-lib/cloud-contract.cjs +1 -1
  23. package/dist-lib/cloud-contract.mjs +1 -1
  24. package/dist-lib/cloud.cjs +1 -1
  25. package/dist-lib/cloud.mjs +1 -1
  26. package/dist-lib/config.cjs +1 -1
  27. package/dist-lib/detox/index.cjs +1 -1
  28. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  29. package/dist-lib/home-paths.cjs +1 -1
  30. package/dist-lib/host/bridge-host.cjs +178 -178
  31. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  32. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  33. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  34. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  35. package/dist-lib/host/websocket-proxy.cjs +1 -1
  36. package/dist-lib/index.cjs +4 -4
  37. package/dist-lib/jump-to-source-babel.cjs +1 -1
  38. package/dist-lib/menu.cjs +1 -1
  39. package/dist-lib/menu.mjs +1 -1
  40. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  41. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  42. package/dist-lib/metro-production-bundle.cjs +1 -1
  43. package/dist-lib/metro-production-bundle.mjs +1 -1
  44. package/dist-lib/metro.cjs +1 -1
  45. package/dist-lib/profiles.cjs +1 -1
  46. package/dist-lib/public-brand.cjs +1 -1
  47. package/dist-lib/react-native-host-modules.cjs +1 -1
  48. package/dist-lib/react-native-host-modules.mjs +1 -1
  49. package/dist-lib/render-mode.cjs +1 -1
  50. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  51. package/dist-lib/sdk.cjs +1 -1
  52. package/dist-lib/sdk.mjs +1 -1
  53. package/dist-lib/skills.cjs +178 -178
  54. package/dist-lib/vite.cjs +1 -1
  55. package/package.json +1 -1
  56. package/src/auth/shared-session.ts +1 -1
  57. package/src/cloud-contract.ts +1 -1
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.444 | (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;
@@ -22036,6 +22036,180 @@ var init_metroCloudArtifact = __esm({
22036
22036
  }
22037
22037
  });
22038
22038
 
22039
+ // ../sootsim-engine/src/metro-fingerprint-registry-client.ts
22040
+ function pointerUrl(options) {
22041
+ return options.pointerUrl ?? new URL(import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_POINTER_PATH, DEFAULT_REGISTRY_ORIGIN).toString();
22042
+ }
22043
+ async function sha256Hex(bytes) {
22044
+ const input = new Uint8Array(bytes.byteLength);
22045
+ input.set(bytes);
22046
+ const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", input.buffer));
22047
+ return [...digest].map((byte) => byte.toString(16).padStart(2, "0")).join("");
22048
+ }
22049
+ async function openRegistryCache() {
22050
+ if (typeof globalThis.caches?.open !== "function") return null;
22051
+ try {
22052
+ return await globalThis.caches.open(REGISTRY_CACHE_NAME);
22053
+ } catch {
22054
+ return null;
22055
+ }
22056
+ }
22057
+ function cacheKey(baseUrl, suffix) {
22058
+ const url = new URL(baseUrl);
22059
+ url.pathname = `${url.pathname.replace(/\/[^/]*$/, "")}/.rnx-fingerprint-cache/${suffix}`;
22060
+ url.search = "";
22061
+ url.hash = "";
22062
+ return new Request(url.toString());
22063
+ }
22064
+ async function parseRegistryBytes(args) {
22065
+ if (args.bytes.byteLength > import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES) {
22066
+ throw new Error(
22067
+ `RNX Metro fingerprint registry exceeds ${import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES} bytes`
22068
+ );
22069
+ }
22070
+ const integrity = await sha256Hex(args.bytes);
22071
+ if (integrity !== args.expectedIntegrity) {
22072
+ throw new Error("RNX Metro fingerprint registry integrity mismatch");
22073
+ }
22074
+ let parsed;
22075
+ try {
22076
+ parsed = JSON.parse(new TextDecoder().decode(args.bytes));
22077
+ } catch {
22078
+ throw new Error("RNX Metro fingerprint registry is not valid JSON");
22079
+ }
22080
+ const registry = (0, import_metro_fingerprint_registry.parseRNXMetroFingerprintRegistry)(parsed);
22081
+ if (!registry) throw new Error("RNX Metro fingerprint registry is malformed");
22082
+ if (args.expectedRevision && registry.revision !== args.expectedRevision) {
22083
+ throw new Error("RNX Metro fingerprint registry revision does not match its pointer");
22084
+ }
22085
+ return { registry, integrity, source: args.source };
22086
+ }
22087
+ async function readCachedRegistry(cache, baseUrl, integrity, expectedRevision) {
22088
+ const response = await cache.match(cacheKey(baseUrl, integrity));
22089
+ if (!response?.ok) return null;
22090
+ try {
22091
+ return await parseRegistryBytes({
22092
+ bytes: new Uint8Array(await response.arrayBuffer()),
22093
+ expectedIntegrity: integrity,
22094
+ expectedRevision,
22095
+ source: "cache"
22096
+ });
22097
+ } catch {
22098
+ return null;
22099
+ }
22100
+ }
22101
+ async function readLastCachedRegistry(cache, baseUrl) {
22102
+ const memoryReceipt = memoryReceipts.get(baseUrl);
22103
+ if (!cache) return memoryReceipt ? { ...memoryReceipt, source: "cache" } : null;
22104
+ const latest = await cache.match(cacheKey(baseUrl, "latest"));
22105
+ if (!latest?.ok) return memoryReceipt ? { ...memoryReceipt, source: "cache" } : null;
22106
+ const integrity = latest.headers.get("x-rnx-registry-integrity");
22107
+ if (!integrity || !/^[a-f0-9]{64}$/.test(integrity)) {
22108
+ return memoryReceipt ? { ...memoryReceipt, source: "cache" } : null;
22109
+ }
22110
+ return await readCachedRegistry(cache, baseUrl, integrity) ?? (memoryReceipt ? { ...memoryReceipt, source: "cache" } : null);
22111
+ }
22112
+ async function writeCachedRegistry(cache, baseUrl, bytes, receipt) {
22113
+ memoryReceipts.set(baseUrl, receipt);
22114
+ if (!cache) return;
22115
+ const headers = {
22116
+ "content-type": "application/json",
22117
+ "x-rnx-registry-integrity": receipt.integrity
22118
+ };
22119
+ try {
22120
+ await cache.put(
22121
+ cacheKey(baseUrl, receipt.integrity),
22122
+ new Response(bytes.slice(), { headers })
22123
+ );
22124
+ await cache.put(cacheKey(baseUrl, "latest"), new Response("", { headers }));
22125
+ } catch {
22126
+ }
22127
+ }
22128
+ async function readPointer(response) {
22129
+ const bytes = new Uint8Array(await response.arrayBuffer());
22130
+ if (bytes.byteLength > import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_POINTER_BYTES) {
22131
+ throw new Error(
22132
+ `RNX Metro fingerprint pointer exceeds ${import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_POINTER_BYTES} bytes`
22133
+ );
22134
+ }
22135
+ let parsed;
22136
+ try {
22137
+ parsed = JSON.parse(new TextDecoder().decode(bytes));
22138
+ } catch {
22139
+ throw new Error("RNX Metro fingerprint pointer is not valid JSON");
22140
+ }
22141
+ const pointer = (0, import_metro_fingerprint_registry.parseRNXMetroFingerprintPointer)(parsed);
22142
+ if (!pointer) throw new Error("RNX Metro fingerprint pointer is malformed");
22143
+ return pointer;
22144
+ }
22145
+ async function loadMetroFingerprintRegistry(options = {}) {
22146
+ const baseUrl = pointerUrl(options);
22147
+ const request = options.fetch ?? globalThis.fetch;
22148
+ const cache = await openRegistryCache();
22149
+ let pointer;
22150
+ try {
22151
+ const response = await request(baseUrl, { cache: "no-store" });
22152
+ if (!response.ok) {
22153
+ throw new Error(`RNX Metro fingerprint pointer answered ${response.status}`);
22154
+ }
22155
+ pointer = await readPointer(response);
22156
+ } catch (error) {
22157
+ const fallback = await readLastCachedRegistry(cache, baseUrl);
22158
+ if (fallback) return fallback;
22159
+ throw error;
22160
+ }
22161
+ const memoryReceipt = memoryReceipts.get(baseUrl);
22162
+ if (memoryReceipt?.integrity === pointer.integrity && memoryReceipt.registry.revision === pointer.revision) {
22163
+ return { ...memoryReceipt, source: "cache" };
22164
+ }
22165
+ const cached4 = cache ? await readCachedRegistry(cache, baseUrl, pointer.integrity, pointer.revision) : null;
22166
+ if (cached4) {
22167
+ memoryReceipts.set(baseUrl, cached4);
22168
+ return cached4;
22169
+ }
22170
+ try {
22171
+ const payloadUrl = new URL(pointer.payloadUrl, baseUrl).toString();
22172
+ const response = await request(payloadUrl, { cache: "force-cache" });
22173
+ if (!response.ok) {
22174
+ throw new Error(`RNX Metro fingerprint registry answered ${response.status}`);
22175
+ }
22176
+ const declaredLength = Number(response.headers.get("content-length"));
22177
+ if (Number.isFinite(declaredLength) && declaredLength > import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES) {
22178
+ throw new Error(
22179
+ `RNX Metro fingerprint registry exceeds ${import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES} bytes`
22180
+ );
22181
+ }
22182
+ const bytes = new Uint8Array(await response.arrayBuffer());
22183
+ if (bytes.byteLength !== pointer.bytes) {
22184
+ throw new Error(
22185
+ "RNX Metro fingerprint registry byte length does not match its pointer"
22186
+ );
22187
+ }
22188
+ const receipt = await parseRegistryBytes({
22189
+ bytes,
22190
+ expectedIntegrity: pointer.integrity,
22191
+ expectedRevision: pointer.revision,
22192
+ source: "network"
22193
+ });
22194
+ await writeCachedRegistry(cache, baseUrl, bytes, receipt);
22195
+ return receipt;
22196
+ } catch (error) {
22197
+ const fallback = await readLastCachedRegistry(cache, baseUrl);
22198
+ if (fallback) return fallback;
22199
+ throw error;
22200
+ }
22201
+ }
22202
+ var import_metro_fingerprint_registry, REGISTRY_CACHE_NAME, DEFAULT_REGISTRY_ORIGIN, memoryReceipts;
22203
+ var init_metro_fingerprint_registry_client = __esm({
22204
+ "../sootsim-engine/src/metro-fingerprint-registry-client.ts"() {
22205
+ "use strict";
22206
+ import_metro_fingerprint_registry = require("rnxsim/metro-fingerprint-registry");
22207
+ REGISTRY_CACHE_NAME = "rnx-metro-fingerprints-v1";
22208
+ DEFAULT_REGISTRY_ORIGIN = "https://contrast.dev";
22209
+ memoryReceipts = /* @__PURE__ */ new Map();
22210
+ }
22211
+ });
22212
+
22039
22213
  // ../compat/src/stub-manifest.ts
22040
22214
  var COMPAT_REACT_NATIVE_DEEP_STUBS;
22041
22215
  var init_stub_manifest = __esm({
@@ -22376,7 +22550,7 @@ function metroFingerprintDiscriminators(input) {
22376
22550
  return { key: `${kind}:${fnv1a64(encoded)}`, cost: encoded.length };
22377
22551
  });
22378
22552
  }
22379
- async function sha256Hex(value) {
22553
+ async function sha256Hex2(value) {
22380
22554
  const bytes = new TextEncoder().encode(value);
22381
22555
  const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
22382
22556
  return [...digest].map((byte) => byte.toString(16).padStart(2, "0")).join("");
@@ -22428,7 +22602,7 @@ async function fingerprintBlindMetroBundle(source) {
22428
22602
  exports: exports2,
22429
22603
  literals,
22430
22604
  dependencyArity,
22431
- factoryDigest: await sha256Hex(canonicalFactoryForDigest(factory, literalTokens))
22605
+ factoryDigest: await sha256Hex2(canonicalFactoryForDigest(factory, literalTokens))
22432
22606
  };
22433
22607
  })
22434
22608
  );
@@ -22803,180 +22977,6 @@ var init_metro_fingerprint = __esm({
22803
22977
  }
22804
22978
  });
22805
22979
 
22806
- // ../sootsim-engine/src/metro-fingerprint-registry-client.ts
22807
- function pointerUrl(options) {
22808
- return options.pointerUrl ?? new URL(import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_POINTER_PATH, DEFAULT_REGISTRY_ORIGIN).toString();
22809
- }
22810
- async function sha256Hex2(bytes) {
22811
- const input = new Uint8Array(bytes.byteLength);
22812
- input.set(bytes);
22813
- const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", input.buffer));
22814
- return [...digest].map((byte) => byte.toString(16).padStart(2, "0")).join("");
22815
- }
22816
- async function openRegistryCache() {
22817
- if (typeof globalThis.caches?.open !== "function") return null;
22818
- try {
22819
- return await globalThis.caches.open(REGISTRY_CACHE_NAME);
22820
- } catch {
22821
- return null;
22822
- }
22823
- }
22824
- function cacheKey(baseUrl, suffix) {
22825
- const url = new URL(baseUrl);
22826
- url.pathname = `${url.pathname.replace(/\/[^/]*$/, "")}/.rnx-fingerprint-cache/${suffix}`;
22827
- url.search = "";
22828
- url.hash = "";
22829
- return new Request(url.toString());
22830
- }
22831
- async function parseRegistryBytes(args) {
22832
- if (args.bytes.byteLength > import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES) {
22833
- throw new Error(
22834
- `RNX Metro fingerprint registry exceeds ${import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES} bytes`
22835
- );
22836
- }
22837
- const integrity = await sha256Hex2(args.bytes);
22838
- if (integrity !== args.expectedIntegrity) {
22839
- throw new Error("RNX Metro fingerprint registry integrity mismatch");
22840
- }
22841
- let parsed;
22842
- try {
22843
- parsed = JSON.parse(new TextDecoder().decode(args.bytes));
22844
- } catch {
22845
- throw new Error("RNX Metro fingerprint registry is not valid JSON");
22846
- }
22847
- const registry = (0, import_metro_fingerprint_registry.parseRNXMetroFingerprintRegistry)(parsed);
22848
- if (!registry) throw new Error("RNX Metro fingerprint registry is malformed");
22849
- if (args.expectedRevision && registry.revision !== args.expectedRevision) {
22850
- throw new Error("RNX Metro fingerprint registry revision does not match its pointer");
22851
- }
22852
- return { registry, integrity, source: args.source };
22853
- }
22854
- async function readCachedRegistry(cache, baseUrl, integrity, expectedRevision) {
22855
- const response = await cache.match(cacheKey(baseUrl, integrity));
22856
- if (!response?.ok) return null;
22857
- try {
22858
- return await parseRegistryBytes({
22859
- bytes: new Uint8Array(await response.arrayBuffer()),
22860
- expectedIntegrity: integrity,
22861
- expectedRevision,
22862
- source: "cache"
22863
- });
22864
- } catch {
22865
- return null;
22866
- }
22867
- }
22868
- async function readLastCachedRegistry(cache, baseUrl) {
22869
- const memoryReceipt = memoryReceipts.get(baseUrl);
22870
- if (!cache) return memoryReceipt ? { ...memoryReceipt, source: "cache" } : null;
22871
- const latest = await cache.match(cacheKey(baseUrl, "latest"));
22872
- if (!latest?.ok) return memoryReceipt ? { ...memoryReceipt, source: "cache" } : null;
22873
- const integrity = latest.headers.get("x-rnx-registry-integrity");
22874
- if (!integrity || !/^[a-f0-9]{64}$/.test(integrity)) {
22875
- return memoryReceipt ? { ...memoryReceipt, source: "cache" } : null;
22876
- }
22877
- return await readCachedRegistry(cache, baseUrl, integrity) ?? (memoryReceipt ? { ...memoryReceipt, source: "cache" } : null);
22878
- }
22879
- async function writeCachedRegistry(cache, baseUrl, bytes, receipt) {
22880
- memoryReceipts.set(baseUrl, receipt);
22881
- if (!cache) return;
22882
- const headers = {
22883
- "content-type": "application/json",
22884
- "x-rnx-registry-integrity": receipt.integrity
22885
- };
22886
- try {
22887
- await cache.put(
22888
- cacheKey(baseUrl, receipt.integrity),
22889
- new Response(bytes.slice(), { headers })
22890
- );
22891
- await cache.put(cacheKey(baseUrl, "latest"), new Response("", { headers }));
22892
- } catch {
22893
- }
22894
- }
22895
- async function readPointer(response) {
22896
- const bytes = new Uint8Array(await response.arrayBuffer());
22897
- if (bytes.byteLength > import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_POINTER_BYTES) {
22898
- throw new Error(
22899
- `RNX Metro fingerprint pointer exceeds ${import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_POINTER_BYTES} bytes`
22900
- );
22901
- }
22902
- let parsed;
22903
- try {
22904
- parsed = JSON.parse(new TextDecoder().decode(bytes));
22905
- } catch {
22906
- throw new Error("RNX Metro fingerprint pointer is not valid JSON");
22907
- }
22908
- const pointer = (0, import_metro_fingerprint_registry.parseRNXMetroFingerprintPointer)(parsed);
22909
- if (!pointer) throw new Error("RNX Metro fingerprint pointer is malformed");
22910
- return pointer;
22911
- }
22912
- async function loadMetroFingerprintRegistry(options = {}) {
22913
- const baseUrl = pointerUrl(options);
22914
- const request = options.fetch ?? globalThis.fetch;
22915
- const cache = await openRegistryCache();
22916
- let pointer;
22917
- try {
22918
- const response = await request(baseUrl, { cache: "no-store" });
22919
- if (!response.ok) {
22920
- throw new Error(`RNX Metro fingerprint pointer answered ${response.status}`);
22921
- }
22922
- pointer = await readPointer(response);
22923
- } catch (error) {
22924
- const fallback = await readLastCachedRegistry(cache, baseUrl);
22925
- if (fallback) return fallback;
22926
- throw error;
22927
- }
22928
- const memoryReceipt = memoryReceipts.get(baseUrl);
22929
- if (memoryReceipt?.integrity === pointer.integrity && memoryReceipt.registry.revision === pointer.revision) {
22930
- return { ...memoryReceipt, source: "cache" };
22931
- }
22932
- const cached4 = cache ? await readCachedRegistry(cache, baseUrl, pointer.integrity, pointer.revision) : null;
22933
- if (cached4) {
22934
- memoryReceipts.set(baseUrl, cached4);
22935
- return cached4;
22936
- }
22937
- try {
22938
- const payloadUrl = new URL(pointer.payloadUrl, baseUrl).toString();
22939
- const response = await request(payloadUrl, { cache: "force-cache" });
22940
- if (!response.ok) {
22941
- throw new Error(`RNX Metro fingerprint registry answered ${response.status}`);
22942
- }
22943
- const declaredLength = Number(response.headers.get("content-length"));
22944
- if (Number.isFinite(declaredLength) && declaredLength > import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES) {
22945
- throw new Error(
22946
- `RNX Metro fingerprint registry exceeds ${import_metro_fingerprint_registry.RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES} bytes`
22947
- );
22948
- }
22949
- const bytes = new Uint8Array(await response.arrayBuffer());
22950
- if (bytes.byteLength !== pointer.bytes) {
22951
- throw new Error(
22952
- "RNX Metro fingerprint registry byte length does not match its pointer"
22953
- );
22954
- }
22955
- const receipt = await parseRegistryBytes({
22956
- bytes,
22957
- expectedIntegrity: pointer.integrity,
22958
- expectedRevision: pointer.revision,
22959
- source: "network"
22960
- });
22961
- await writeCachedRegistry(cache, baseUrl, bytes, receipt);
22962
- return receipt;
22963
- } catch (error) {
22964
- const fallback = await readLastCachedRegistry(cache, baseUrl);
22965
- if (fallback) return fallback;
22966
- throw error;
22967
- }
22968
- }
22969
- var import_metro_fingerprint_registry, REGISTRY_CACHE_NAME, DEFAULT_REGISTRY_ORIGIN, memoryReceipts;
22970
- var init_metro_fingerprint_registry_client = __esm({
22971
- "../sootsim-engine/src/metro-fingerprint-registry-client.ts"() {
22972
- "use strict";
22973
- import_metro_fingerprint_registry = require("rnxsim/metro-fingerprint-registry");
22974
- REGISTRY_CACHE_NAME = "rnx-metro-fingerprints-v1";
22975
- DEFAULT_REGISTRY_ORIGIN = "https://contrast.dev";
22976
- memoryReceipts = /* @__PURE__ */ new Map();
22977
- }
22978
- });
22979
-
22980
22980
  // src/cloud-contract.ts
22981
22981
  function isRnxCloudCommandType(value) {
22982
22982
  return RNX_CLOUD_COMMAND_TYPE_SET.has(value);
@@ -23724,8 +23724,8 @@ var init_cloud_client = __esm({
23724
23724
  import_node_path15 = require("node:path");
23725
23725
  init_metroAssetArtifact();
23726
23726
  init_metroCloudArtifact();
23727
- init_metro_fingerprint();
23728
23727
  init_metro_fingerprint_registry_client();
23728
+ init_metro_fingerprint();
23729
23729
  init_backend_origin();
23730
23730
  init_cloud_contract();
23731
23731
  init_metro_production_bundle();
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.444 | (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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rnxsim",
3
- "version": "0.1.444",
3
+ "version": "0.1.445",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for rnx.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -7,7 +7,7 @@ import {
7
7
  writeFileSync,
8
8
  } from 'node:fs'
9
9
  import { dirname, join, resolve } from 'node:path'
10
- import { electronUserDataDir } from '../home-paths'
10
+ import { electronUserDataDir } from '../home-paths.ts'
11
11
 
12
12
  export type SharedDesktopAuthTeamSummary = {
13
13
  id: string
@@ -1,4 +1,4 @@
1
- import type { BridgeCommandType } from './bridge-contract'
1
+ import type { BridgeCommandType } from './bridge-contract.ts'
2
2
 
3
3
  export const RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024
4
4
  export const RNX_CLOUD_DESIGN_MAX_STORAGE_ENTRIES = 256