rnxsim 0.1.401 → 0.1.403
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.
- package/README.md +16 -7
- package/cli/commands/box.ts +10 -3
- package/cli/outbound-endpoints.ts +2 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +5 -2
- package/dist-lib/capture-contract.mjs +5 -2
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +3 -2
- package/dist-lib/cloud-contract.mjs +3 -2
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +1 -1
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +37 -12
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +72 -7
- package/dist-lib/metro-production-bundle.mjs +69 -7
- package/dist-lib/metro.cjs +41 -10
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +3 -2
- package/dist-lib/vite.cjs +6 -1
- package/package.json +1 -1
- package/src/bridge-contract.ts +20 -0
- package/src/capture-contract.ts +8 -0
- package/src/cloud-contract.ts +1 -0
- package/src/metro-plugin.ts +29 -23
- package/src/metro-production-bundle.ts +124 -8
- package/src/runtime-assets.ts +5 -0
package/README.md
CHANGED
|
@@ -384,10 +384,12 @@ Electron is an opt-in desktop upgrade. The notarized CLI install did not produce
|
|
|
384
384
|
a Gatekeeper prompt on a clean profile. A Mac that previously ran an unsigned
|
|
385
385
|
development Electron build against the same user-data directory may ask for
|
|
386
386
|
one-time Keychain approval. `RNX_NO_OPEN=1` keeps the server headless. The
|
|
387
|
-
Metro wrapper also has
|
|
387
|
+
Metro wrapper also has three independent non-window opt-ins.
|
|
388
388
|
`devServer` serves the RNX shell from the Metro process. `productionBundles`
|
|
389
389
|
appends Metro's exact module-ID-to-source-path map to every production bundle,
|
|
390
390
|
as a trailing `globalThis.__sootsimModulePaths = { ... }` assignment.
|
|
391
|
+
`developmentBundles` appends the same identity to every ordinary development
|
|
392
|
+
bundle while keeping `__DEV__`, verbose module names, and the source map.
|
|
391
393
|
|
|
392
394
|
That footer is the only change. Metro drops the fourth `__d` argument when
|
|
393
395
|
`dev` is false, so a production bundle names none of its modules, and RNX needs
|
|
@@ -399,21 +401,28 @@ one unused global on a device, and Hermes drops it during bytecode compilation.
|
|
|
399
401
|
```js
|
|
400
402
|
module.exports = withRNX(config, { productionBundles: true })
|
|
401
403
|
|
|
402
|
-
// enable
|
|
404
|
+
// enable any combination when one Metro process should provide them
|
|
403
405
|
module.exports = withRNX(config, {
|
|
404
406
|
devServer: true,
|
|
405
407
|
productionBundles: true,
|
|
408
|
+
developmentBundles: true,
|
|
406
409
|
})
|
|
407
410
|
```
|
|
408
411
|
|
|
409
|
-
Calling `withRNX(config)` changes nothing.
|
|
410
|
-
|
|
411
|
-
`dev=
|
|
412
|
+
Calling `withRNX(config)` changes nothing. The URL helpers request ordinary
|
|
413
|
+
Metro graphs: `dev=false&minify=true` for production and
|
|
414
|
+
`dev=true&minify=false` for development.
|
|
412
415
|
|
|
413
416
|
```js
|
|
414
|
-
const {
|
|
417
|
+
const {
|
|
418
|
+
toRNXProductionBundleUrl,
|
|
419
|
+
toRNXDevelopmentBundleUrl,
|
|
420
|
+
} = require('rnxsim/metro')
|
|
415
421
|
|
|
416
|
-
const
|
|
422
|
+
const productionUrl = toRNXProductionBundleUrl(
|
|
423
|
+
'http://localhost:8081/index.bundle?platform=ios',
|
|
424
|
+
)
|
|
425
|
+
const developmentUrl = toRNXDevelopmentBundleUrl(
|
|
417
426
|
'http://localhost:8081/index.bundle?platform=ios',
|
|
418
427
|
)
|
|
419
428
|
```
|
package/cli/commands/box.ts
CHANGED
|
@@ -11,7 +11,11 @@ import { BoxClientError, createBoxClient } from '@rnx/box/client'
|
|
|
11
11
|
import { createBoxHostProvider } from '@rnx/box/host'
|
|
12
12
|
import { PROJECT_MOUNT } from '@rnx/box/shell'
|
|
13
13
|
import { terminalBoxStack } from '@rnx/box/stack'
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
BoxTemplateRegistry,
|
|
16
|
+
sourceControlBoxTemplate,
|
|
17
|
+
terminalBoxTemplate,
|
|
18
|
+
} from '@rnx/box/template'
|
|
15
19
|
import { createCloudBoxProvider, heartbeatSession } from 'rnx-cloud-box/client'
|
|
16
20
|
import { rnxPublicBrand } from '../../src/public-brand'
|
|
17
21
|
import { authHeaderOrExit } from '../auth'
|
|
@@ -34,7 +38,10 @@ interface BoxCommandOptions {
|
|
|
34
38
|
// that always fails.
|
|
35
39
|
const ENDPOINT_ENV = 'RNX_BOX_ENDPOINT'
|
|
36
40
|
const API_ORIGIN_ENV = 'RNX_API_ORIGIN'
|
|
37
|
-
const BOX_TEMPLATES = new BoxTemplateRegistry([
|
|
41
|
+
const BOX_TEMPLATES = new BoxTemplateRegistry([
|
|
42
|
+
terminalBoxTemplate,
|
|
43
|
+
sourceControlBoxTemplate,
|
|
44
|
+
])
|
|
38
45
|
|
|
39
46
|
function usage(): void {
|
|
40
47
|
const rnx = rnxPublicBrand.commandName
|
|
@@ -228,7 +235,7 @@ async function runCloudBoxCreate(
|
|
|
228
235
|
return 1
|
|
229
236
|
}
|
|
230
237
|
|
|
231
|
-
const templateName = flag(args, 'template') ??
|
|
238
|
+
const templateName = flag(args, 'template') ?? sourceControlBoxTemplate.name
|
|
232
239
|
let template: BoxTemplateResolution
|
|
233
240
|
try {
|
|
234
241
|
template = BOX_TEMPLATES.resolve({ name: templateName })
|
|
@@ -283,12 +283,12 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
283
283
|
category: 'same_origin_runtime',
|
|
284
284
|
count: 1,
|
|
285
285
|
},
|
|
286
|
+
'packages/sootsim-engine/src/render-worker/canvaskit-shared.ts :: fetch :: pipelineCacheUrl':
|
|
287
|
+
{ category: 'same_origin_runtime', count: 1 },
|
|
286
288
|
'packages/sootsim-engine/src/render-worker/canvaskit-shared.ts :: fetch :: wasmUrl': {
|
|
287
289
|
category: 'same_origin_runtime',
|
|
288
290
|
count: 1,
|
|
289
291
|
},
|
|
290
|
-
'packages/sootsim-engine/src/render-worker/compositor-worker.ts :: fetch :: `${engineDistBase}canvaskit-graphite-pipelines.bin`':
|
|
291
|
-
{ category: 'same_origin_runtime', count: 1 },
|
|
292
292
|
'packages/sootsim-engine/src/render-worker/host.ts :: fetch :: msg.url': {
|
|
293
293
|
category: 'guest_app_network',
|
|
294
294
|
count: 1,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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;
|
|
@@ -37,7 +37,9 @@ function selectRnxRasterNodeIds(tree) {
|
|
|
37
37
|
for (const node of tree.nodes) {
|
|
38
38
|
const visibleFrame = node.visibleFrame ?? node.frame;
|
|
39
39
|
if (!visibleFrame || visibleFrame.width <= 0 || visibleFrame.height <= 0) continue;
|
|
40
|
-
if (node.type === "masked-view" || node.
|
|
40
|
+
if (node.type === "masked-view" || node.type === "text" && typeof node.text === "string" && (new RegExp("\\p{Emoji_Presentation}", "u").test(node.text) || new RegExp("\\uFE0F|\\u200D|\\u20E3|\\p{Emoji_Modifier}|\\p{Regional_Indicator}", "u").test(
|
|
41
|
+
node.text
|
|
42
|
+
)) || node.style._liquidGlass !== void 0 || node.style._liquidGlassEdge !== void 0) {
|
|
41
43
|
unsupported.add(node.nodeId);
|
|
42
44
|
}
|
|
43
45
|
}
|
|
@@ -121,6 +123,7 @@ function rnxCaptureRasterRegions(capture) {
|
|
|
121
123
|
nodeId: node.nodeId,
|
|
122
124
|
parentNodeId: node.parentNodeId,
|
|
123
125
|
type: node.type,
|
|
126
|
+
text: node.text,
|
|
124
127
|
style: node.style.resolved,
|
|
125
128
|
layout: node.layout.local,
|
|
126
129
|
frame: node.layout.frame,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/capture-contract.ts
|
|
4
4
|
var RNX_SCREEN_CAPTURE_VERSION = 1;
|
|
@@ -8,7 +8,9 @@ function selectRnxRasterNodeIds(tree) {
|
|
|
8
8
|
for (const node of tree.nodes) {
|
|
9
9
|
const visibleFrame = node.visibleFrame ?? node.frame;
|
|
10
10
|
if (!visibleFrame || visibleFrame.width <= 0 || visibleFrame.height <= 0) continue;
|
|
11
|
-
if (node.type === "masked-view" || node.
|
|
11
|
+
if (node.type === "masked-view" || node.type === "text" && typeof node.text === "string" && (/\p{Emoji_Presentation}/u.test(node.text) || /\uFE0F|\u200D|\u20E3|\p{Emoji_Modifier}|\p{Regional_Indicator}/u.test(
|
|
12
|
+
node.text
|
|
13
|
+
)) || node.style._liquidGlass !== void 0 || node.style._liquidGlassEdge !== void 0) {
|
|
12
14
|
unsupported.add(node.nodeId);
|
|
13
15
|
}
|
|
14
16
|
}
|
|
@@ -92,6 +94,7 @@ function rnxCaptureRasterRegions(capture) {
|
|
|
92
94
|
nodeId: node.nodeId,
|
|
93
95
|
parentNodeId: node.parentNodeId,
|
|
94
96
|
type: node.type,
|
|
97
|
+
text: node.text,
|
|
95
98
|
style: node.style.resolved,
|
|
96
99
|
layout: node.layout.local,
|
|
97
100
|
frame: node.layout.frame,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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;
|
|
@@ -50,7 +50,8 @@ var RNX_CLOUD_COMMAND_TYPES = Object.freeze([
|
|
|
50
50
|
"tree",
|
|
51
51
|
"tap",
|
|
52
52
|
"longPress",
|
|
53
|
-
"memory"
|
|
53
|
+
"memory",
|
|
54
|
+
"diagnostics"
|
|
54
55
|
]);
|
|
55
56
|
var RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
56
57
|
function isRnxCloudCommandType(value) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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;
|
|
@@ -21,7 +21,8 @@ var RNX_CLOUD_COMMAND_TYPES = Object.freeze([
|
|
|
21
21
|
"tree",
|
|
22
22
|
"tap",
|
|
23
23
|
"longPress",
|
|
24
|
-
"memory"
|
|
24
|
+
"memory",
|
|
25
|
+
"diagnostics"
|
|
25
26
|
]);
|
|
26
27
|
var RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
27
28
|
function isRnxCloudCommandType(value) {
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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.
|
|
1
|
+
/*! rnx v0.1.403 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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;
|
|
@@ -522,7 +522,8 @@ var RNX_CLOUD_COMMAND_TYPES = Object.freeze([
|
|
|
522
522
|
"tree",
|
|
523
523
|
"tap",
|
|
524
524
|
"longPress",
|
|
525
|
-
"memory"
|
|
525
|
+
"memory",
|
|
526
|
+
"diagnostics"
|
|
526
527
|
]);
|
|
527
528
|
var RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
528
529
|
|
|
@@ -2676,7 +2677,9 @@ function selectRnxRasterNodeIds(tree) {
|
|
|
2676
2677
|
for (const node of tree.nodes) {
|
|
2677
2678
|
const visibleFrame = node.visibleFrame ?? node.frame;
|
|
2678
2679
|
if (!visibleFrame || visibleFrame.width <= 0 || visibleFrame.height <= 0) continue;
|
|
2679
|
-
if (node.type === "masked-view" || node.
|
|
2680
|
+
if (node.type === "masked-view" || node.type === "text" && typeof node.text === "string" && (new RegExp("\\p{Emoji_Presentation}", "u").test(node.text) || new RegExp("\\uFE0F|\\u200D|\\u20E3|\\p{Emoji_Modifier}|\\p{Regional_Indicator}", "u").test(
|
|
2681
|
+
node.text
|
|
2682
|
+
)) || node.style._liquidGlass !== void 0 || node.style._liquidGlassEdge !== void 0) {
|
|
2680
2683
|
unsupported.add(node.nodeId);
|
|
2681
2684
|
}
|
|
2682
2685
|
}
|
|
@@ -2760,6 +2763,7 @@ function rnxCaptureRasterRegions(capture) {
|
|
|
2760
2763
|
nodeId: node.nodeId,
|
|
2761
2764
|
parentNodeId: node.parentNodeId,
|
|
2762
2765
|
type: node.type,
|
|
2766
|
+
text: node.text,
|
|
2763
2767
|
style: node.style.resolved,
|
|
2764
2768
|
layout: node.layout.local,
|
|
2765
2769
|
frame: node.layout.frame,
|
|
@@ -3343,6 +3347,11 @@ function serveRuntimeFile(req, res, fullPath) {
|
|
|
3343
3347
|
const stat = import_fs3.default.statSync(fullPath);
|
|
3344
3348
|
const lastModified = stat.mtime.toUTCString();
|
|
3345
3349
|
res.setHeader("content-type", MIME_TYPES[ext] || "application/octet-stream");
|
|
3350
|
+
if (/^canvaskit-graphite-pipelines-[0-9a-f]{8}\.bin$/.test(import_path2.default.basename(fullPath))) {
|
|
3351
|
+
res.setHeader("cache-control", "public, max-age=31536000, immutable");
|
|
3352
|
+
import_fs3.default.createReadStream(fullPath).pipe(res);
|
|
3353
|
+
return;
|
|
3354
|
+
}
|
|
3346
3355
|
res.setHeader("cache-control", "no-cache");
|
|
3347
3356
|
res.setHeader("last-modified", lastModified);
|
|
3348
3357
|
if (req?.headers?.["if-modified-since"] === lastModified) {
|
|
@@ -3492,11 +3501,27 @@ var import_path4 = __toESM(require("path"), 1);
|
|
|
3492
3501
|
|
|
3493
3502
|
// src/metro-production-bundle.ts
|
|
3494
3503
|
var RNXSIM_METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
|
|
3504
|
+
var RNXSIM_METRO_SOURCE_MAP_COMMENT = "//# sourceMappingURL=";
|
|
3505
|
+
function detachRNXMetroSourceMapUrl(bundleText) {
|
|
3506
|
+
const trimmedEnd = bundleText.replace(/\s+$/, "");
|
|
3507
|
+
const commentStart = trimmedEnd.lastIndexOf(`
|
|
3508
|
+
${RNXSIM_METRO_SOURCE_MAP_COMMENT}`);
|
|
3509
|
+
if (commentStart < 0) return { source: bundleText, sourceMappingUrl: null };
|
|
3510
|
+
const url = trimmedEnd.slice(commentStart + 1 + RNXSIM_METRO_SOURCE_MAP_COMMENT.length);
|
|
3511
|
+
if (url.includes("\n")) return { source: bundleText, sourceMappingUrl: null };
|
|
3512
|
+
return { source: trimmedEnd.slice(0, commentStart), sourceMappingUrl: url };
|
|
3513
|
+
}
|
|
3495
3514
|
function createRNXMetroModulePathsFooter(modulePaths) {
|
|
3496
3515
|
const payload = JSON.stringify(modulePaths).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/<\//g, "<\\/");
|
|
3497
3516
|
return `
|
|
3498
3517
|
${RNXSIM_METRO_MODULE_PATHS_PREFIX}${payload};`;
|
|
3499
3518
|
}
|
|
3519
|
+
function appendRNXMetroModulePathsFooter(bundleText, modulePaths) {
|
|
3520
|
+
const footer = createRNXMetroModulePathsFooter(modulePaths);
|
|
3521
|
+
const detached = detachRNXMetroSourceMapUrl(bundleText);
|
|
3522
|
+
return detached.sourceMappingUrl === null ? bundleText + footer : `${detached.source}${footer}
|
|
3523
|
+
${RNXSIM_METRO_SOURCE_MAP_COMMENT}${detached.sourceMappingUrl}`;
|
|
3524
|
+
}
|
|
3500
3525
|
|
|
3501
3526
|
// src/metro-plugin.ts
|
|
3502
3527
|
var prefix = "/__soot";
|
|
@@ -3533,22 +3558,21 @@ function appendRNXModulePaths(result, graph, options, projectRoot) {
|
|
|
3533
3558
|
const dependencies = graph.dependencies;
|
|
3534
3559
|
const createModuleId = options.createModuleId;
|
|
3535
3560
|
if (!dependencies || !createModuleId) {
|
|
3536
|
-
throw new Error(
|
|
3537
|
-
"rnxsim: Metro did not provide the production module graph and createModuleId"
|
|
3538
|
-
);
|
|
3561
|
+
throw new Error("rnxsim: Metro did not provide the module graph and createModuleId");
|
|
3539
3562
|
}
|
|
3540
3563
|
const modulePaths = {};
|
|
3541
3564
|
for (const module2 of dependencies.values()) {
|
|
3542
3565
|
modulePaths[String(createModuleId(module2.path))] = import_path4.default.relative(projectRoot, module2.path).replaceAll(import_path4.default.sep, "/");
|
|
3543
3566
|
}
|
|
3544
3567
|
if (Object.keys(modulePaths).length !== dependencies.size) {
|
|
3545
|
-
throw new Error("rnxsim:
|
|
3568
|
+
throw new Error("rnxsim: bundle module IDs were not unique");
|
|
3546
3569
|
}
|
|
3547
|
-
|
|
3548
|
-
return typeof result === "string" ? result + footer : { ...result, code: result.code + footer };
|
|
3570
|
+
return typeof result === "string" ? appendRNXMetroModulePathsFooter(result, modulePaths) : { ...result, code: appendRNXMetroModulePathsFooter(result.code, modulePaths) };
|
|
3549
3571
|
}
|
|
3550
3572
|
function withRNX(config, options = {}) {
|
|
3551
|
-
if (!options.devServer && !options.open && !options.productionBundles)
|
|
3573
|
+
if (!options.devServer && !options.open && !options.productionBundles && !options.developmentBundles) {
|
|
3574
|
+
return config;
|
|
3575
|
+
}
|
|
3552
3576
|
const cfgProjectRoot = config.projectRoot || process.cwd();
|
|
3553
3577
|
const appName = resolveRnxDesktopAppName(options.open, cfgProjectRoot);
|
|
3554
3578
|
const configuredBundleUrl = options.bundleUrl || "/index.bundle?platform=ios&dev=true&hot=true&minify=false";
|
|
@@ -3566,7 +3590,7 @@ function withRNX(config, options = {}) {
|
|
|
3566
3590
|
const existingEnhance = cfgServer?.enhanceMiddleware;
|
|
3567
3591
|
const existingSerializer = cfgSerializer?.customSerializer;
|
|
3568
3592
|
let productionConfig = {};
|
|
3569
|
-
if (options.productionBundles) {
|
|
3593
|
+
if (options.productionBundles || options.developmentBundles) {
|
|
3570
3594
|
let defaultSerializer;
|
|
3571
3595
|
productionConfig = {
|
|
3572
3596
|
serializer: {
|
|
@@ -3579,7 +3603,8 @@ function withRNX(config, options = {}) {
|
|
|
3579
3603
|
graph,
|
|
3580
3604
|
serializerOptions
|
|
3581
3605
|
);
|
|
3582
|
-
|
|
3606
|
+
const dev = serializerOptions.dev;
|
|
3607
|
+
return dev === false && options.productionBundles === true || dev === true && options.developmentBundles === true ? appendRNXModulePaths(result, graph, serializerOptions, cfgProjectRoot) : result;
|
|
3583
3608
|
}
|
|
3584
3609
|
}
|
|
3585
3610
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.403 | (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/menu.mjs
CHANGED