rnxsim 0.1.491 → 0.1.493
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/cli/app-state-reset.ts +11 -9
- package/cli/outbound-endpoints.ts +132 -99
- package/detox/jest-preset.cjs +1 -17
- 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 +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/detox/jest-preset.cjs +1 -17
- 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 +1 -1
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- 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 +1 -1
- package/dist-lib/vite.cjs +1 -1
- package/package.json +3 -2
- package/src/bridge-contract.ts +4 -5
package/cli/app-state-reset.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
// resets the
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// metro re-fetch of every lazy chunk, and the sim id does NOT rotate. when
|
|
5
|
-
// `resetStorage` is set it clears the guest app's tenant-scoped storage via the
|
|
6
|
-
// engine's own clear path (scoped localStorage + open-and-clear of the known
|
|
7
|
-
// tenant IndexedDBs / secure-store) — the maestro `clearState` contract.
|
|
1
|
+
// resets the guest app through the engine lifecycle bridge. a storage reset
|
|
2
|
+
// replaces the tenant worker before clearing its scoped stores, which is the
|
|
3
|
+
// maestro `clearState` contract. a plain reload keeps the faster reload path.
|
|
8
4
|
//
|
|
9
5
|
// this replaces a host-realm `localStorage.clear()` + `indexedDB.deleteDatabase`
|
|
10
6
|
// loop that was wrong twice: (1) `localStorage.clear()` wiped engine settings
|
|
@@ -17,8 +13,14 @@
|
|
|
17
13
|
export function resetGuestAppStateEval(resetStorage: boolean): string {
|
|
18
14
|
return `(async () => {
|
|
19
15
|
const bridge = globalThis.SootSim && globalThis.SootSim.bridges && globalThis.SootSim.bridges.hotRemount
|
|
20
|
-
if (!bridge
|
|
21
|
-
|
|
16
|
+
if (!bridge) return false
|
|
17
|
+
if (${resetStorage ? 'true' : 'false'}) {
|
|
18
|
+
if (typeof bridge.resetExternalApp !== 'function') return false
|
|
19
|
+
const result = await bridge.resetExternalApp({ strategy: 'full' })
|
|
20
|
+
return result.failures.length === 0 && result.relaunched
|
|
21
|
+
}
|
|
22
|
+
if (typeof bridge.reloadExternalApp !== 'function') return false
|
|
23
|
+
await bridge.reloadExternalApp()
|
|
22
24
|
return true
|
|
23
25
|
})()`
|
|
24
26
|
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import fs from 'node:fs'
|
|
2
2
|
import path from 'node:path'
|
|
3
|
-
import
|
|
3
|
+
import {
|
|
4
|
+
parseSync,
|
|
5
|
+
Visitor,
|
|
6
|
+
type CallExpression,
|
|
7
|
+
type Expression,
|
|
8
|
+
type NewExpression,
|
|
9
|
+
type ParamPattern,
|
|
10
|
+
type Program,
|
|
11
|
+
} from 'oxc-parser'
|
|
4
12
|
|
|
5
13
|
export type OutboundCategory =
|
|
6
14
|
| 'runtime-delivery'
|
|
@@ -565,7 +573,7 @@ interface NetworkNames {
|
|
|
565
573
|
nodeGet: Set<string>
|
|
566
574
|
}
|
|
567
575
|
|
|
568
|
-
function networkNames(source:
|
|
576
|
+
function networkNames(source: Program): NetworkNames {
|
|
569
577
|
const names: NetworkNames = {
|
|
570
578
|
fetch: new Set(['fetch']),
|
|
571
579
|
httpClient: new Set(['http', 'https']),
|
|
@@ -574,113 +582,139 @@ function networkNames(source: ts.SourceFile): NetworkNames {
|
|
|
574
582
|
nodeRequest: new Set(),
|
|
575
583
|
nodeGet: new Set(),
|
|
576
584
|
}
|
|
577
|
-
const isClientExpression = (node:
|
|
578
|
-
if (
|
|
579
|
-
if (
|
|
585
|
+
const isClientExpression = (node: Expression, clients: Set<string>): boolean => {
|
|
586
|
+
if (node.type === 'Identifier') return clients.has(node.name)
|
|
587
|
+
if (node.type === 'ParenthesizedExpression')
|
|
580
588
|
return isClientExpression(node.expression, clients)
|
|
581
589
|
return (
|
|
582
|
-
|
|
583
|
-
isClientExpression(node.
|
|
584
|
-
isClientExpression(node.
|
|
590
|
+
node.type === 'ConditionalExpression' &&
|
|
591
|
+
isClientExpression(node.consequent, clients) &&
|
|
592
|
+
isClientExpression(node.alternate, clients)
|
|
585
593
|
)
|
|
586
594
|
}
|
|
587
|
-
const
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
595
|
+
const collectFetchParameters = (parameters: ParamPattern[]): void => {
|
|
596
|
+
for (const parameter of parameters) {
|
|
597
|
+
if (
|
|
598
|
+
parameter.type === 'AssignmentPattern' &&
|
|
599
|
+
parameter.left.type === 'Identifier' &&
|
|
600
|
+
parameter.right.type === 'Identifier' &&
|
|
601
|
+
names.fetch.has(parameter.right.name)
|
|
602
|
+
) {
|
|
603
|
+
names.fetch.add(parameter.left.name)
|
|
604
|
+
}
|
|
596
605
|
}
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
606
|
+
}
|
|
607
|
+
new Visitor({
|
|
608
|
+
ArrowFunctionExpression(node) {
|
|
609
|
+
collectFetchParameters(node.params)
|
|
610
|
+
},
|
|
611
|
+
FunctionDeclaration(node) {
|
|
612
|
+
collectFetchParameters(node.params)
|
|
613
|
+
},
|
|
614
|
+
FunctionExpression(node) {
|
|
615
|
+
collectFetchParameters(node.params)
|
|
616
|
+
},
|
|
617
|
+
ImportDeclaration(node) {
|
|
618
|
+
const moduleName = node.source.value.replace(/^node:/, '')
|
|
619
|
+
if (moduleName === 'http' || moduleName === 'https') {
|
|
620
|
+
for (const specifier of node.specifiers) {
|
|
621
|
+
if (specifier.type === 'ImportSpecifier') {
|
|
622
|
+
const imported =
|
|
623
|
+
specifier.imported.type === 'Identifier'
|
|
624
|
+
? specifier.imported.name
|
|
625
|
+
: specifier.imported.value
|
|
626
|
+
if (imported === 'request') names.nodeRequest.add(specifier.local.name)
|
|
627
|
+
if (imported === 'get') names.nodeGet.add(specifier.local.name)
|
|
628
|
+
}
|
|
629
|
+
if (
|
|
630
|
+
specifier.type === 'ImportDefaultSpecifier' ||
|
|
631
|
+
specifier.type === 'ImportNamespaceSpecifier'
|
|
632
|
+
) {
|
|
633
|
+
names.httpClient.add(specifier.local.name)
|
|
608
634
|
}
|
|
609
|
-
if (imported === 'get') names.nodeGet.add(element.name.text)
|
|
610
635
|
}
|
|
611
636
|
}
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
if (local && (moduleName === 'http' || moduleName === 'https')) {
|
|
622
|
-
names.httpClient.add(local.text)
|
|
637
|
+
if (moduleName === 'net') {
|
|
638
|
+
for (const specifier of node.specifiers) {
|
|
639
|
+
if (
|
|
640
|
+
specifier.type === 'ImportDefaultSpecifier' ||
|
|
641
|
+
specifier.type === 'ImportNamespaceSpecifier'
|
|
642
|
+
) {
|
|
643
|
+
names.netClient.add(specifier.local.name)
|
|
644
|
+
}
|
|
645
|
+
}
|
|
623
646
|
}
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
names.httpClient.add(node.name.text)
|
|
647
|
+
},
|
|
648
|
+
VariableDeclarator(node) {
|
|
649
|
+
if (node.id.type !== 'Identifier' || !node.init) return
|
|
650
|
+
if (node.init.type === 'Identifier' && names.fetch.has(node.init.name)) {
|
|
651
|
+
names.fetch.add(node.id.name)
|
|
652
|
+
}
|
|
653
|
+
if (isClientExpression(node.init, names.httpClient)) {
|
|
654
|
+
names.httpClient.add(node.id.name)
|
|
633
655
|
}
|
|
634
|
-
if (isClientExpression(node.
|
|
635
|
-
names.netClient.add(node.name
|
|
656
|
+
if (isClientExpression(node.init, names.netClient)) {
|
|
657
|
+
names.netClient.add(node.id.name)
|
|
636
658
|
}
|
|
637
|
-
if (isClientExpression(node.
|
|
638
|
-
names.nodeRequest.add(node.name
|
|
659
|
+
if (isClientExpression(node.init, names.nodeRequest)) {
|
|
660
|
+
names.nodeRequest.add(node.id.name)
|
|
639
661
|
}
|
|
640
662
|
if (
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
node.
|
|
644
|
-
|
|
663
|
+
node.init.type === 'NewExpression' &&
|
|
664
|
+
node.init.callee.type === 'MemberExpression' &&
|
|
665
|
+
!node.init.callee.computed &&
|
|
666
|
+
node.init.callee.property.type === 'Identifier' &&
|
|
667
|
+
node.init.callee.property.name === 'Socket' &&
|
|
668
|
+
isClientExpression(node.init.callee.object, names.netClient)
|
|
645
669
|
) {
|
|
646
|
-
names.socket.add(node.name
|
|
670
|
+
names.socket.add(node.id.name)
|
|
647
671
|
}
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
}
|
|
651
|
-
visit(source)
|
|
672
|
+
},
|
|
673
|
+
}).visit(source)
|
|
652
674
|
return names
|
|
653
675
|
}
|
|
654
676
|
|
|
655
|
-
function callKind(
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
677
|
+
function callKind(
|
|
678
|
+
node: CallExpression | NewExpression,
|
|
679
|
+
names: NetworkNames,
|
|
680
|
+
source: string,
|
|
681
|
+
): string | null {
|
|
682
|
+
if (node.type === 'NewExpression' && node.callee.type === 'Identifier') {
|
|
683
|
+
if (node.callee.name === 'WebSocket') return 'websocket'
|
|
684
|
+
if (node.callee.name === 'EventSource') return 'event-source'
|
|
685
|
+
if (node.callee.name === 'XMLHttpRequest') return 'xml-http-request'
|
|
660
686
|
return null
|
|
661
687
|
}
|
|
662
|
-
if (
|
|
663
|
-
const expression = node.
|
|
664
|
-
if (
|
|
665
|
-
if (names.fetch.has(expression.
|
|
666
|
-
return expression.
|
|
688
|
+
if (node.type !== 'CallExpression') return null
|
|
689
|
+
const expression = node.callee
|
|
690
|
+
if (expression.type === 'Identifier') {
|
|
691
|
+
if (names.fetch.has(expression.name)) {
|
|
692
|
+
return expression.name === 'fetch' ? 'fetch' : 'fetch-alias'
|
|
667
693
|
}
|
|
668
|
-
if (names.nodeRequest.has(expression.
|
|
669
|
-
if (names.nodeGet.has(expression.
|
|
694
|
+
if (names.nodeRequest.has(expression.name)) return 'node-request'
|
|
695
|
+
if (names.nodeGet.has(expression.name)) return 'node-get'
|
|
670
696
|
return null
|
|
671
697
|
}
|
|
672
|
-
if (
|
|
673
|
-
|
|
698
|
+
if (
|
|
699
|
+
expression.type !== 'MemberExpression' ||
|
|
700
|
+
expression.computed ||
|
|
701
|
+
expression.property.type !== 'Identifier'
|
|
702
|
+
) {
|
|
703
|
+
return null
|
|
704
|
+
}
|
|
705
|
+
const method = expression.property.name
|
|
674
706
|
if (method === 'fetch') return 'fetch'
|
|
675
707
|
if (method === 'sendBeacon') return 'send-beacon'
|
|
676
|
-
const ownerExpression = expression.
|
|
677
|
-
const owner =
|
|
708
|
+
const ownerExpression = expression.object
|
|
709
|
+
const owner = source
|
|
710
|
+
.slice(ownerExpression.start, ownerExpression.end)
|
|
711
|
+
.replace(/\s+/g, ' ')
|
|
678
712
|
const knownHttpClient =
|
|
679
|
-
|
|
713
|
+
ownerExpression.type === 'Identifier' && names.httpClient.has(ownerExpression.name)
|
|
680
714
|
const knownNetClient =
|
|
681
|
-
|
|
715
|
+
ownerExpression.type === 'Identifier' && names.netClient.has(ownerExpression.name)
|
|
682
716
|
const knownSocket =
|
|
683
|
-
|
|
717
|
+
ownerExpression.type === 'Identifier' && names.socket.has(ownerExpression.name)
|
|
684
718
|
if (method === 'request' && (knownHttpClient || owner === 'transport')) {
|
|
685
719
|
return `${owner}.request`
|
|
686
720
|
}
|
|
@@ -694,11 +728,11 @@ function callKind(node: ts.Node, names: NetworkNames): string | null {
|
|
|
694
728
|
return null
|
|
695
729
|
}
|
|
696
730
|
|
|
697
|
-
function firstArgument(node:
|
|
698
|
-
const
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
731
|
+
function firstArgument(node: CallExpression | NewExpression, source: string): string {
|
|
732
|
+
const first = node.arguments[0]
|
|
733
|
+
return first
|
|
734
|
+
? source.slice(first.start, first.end).replace(/\s+/g, ' ').trim()
|
|
735
|
+
: '<none>'
|
|
702
736
|
}
|
|
703
737
|
|
|
704
738
|
export function detectOutboundCalls(repositoryRoot: string): DetectedOutboundCall[] {
|
|
@@ -714,24 +748,23 @@ export function detectOutboundCalls(repositoryRoot: string): DetectedOutboundCal
|
|
|
714
748
|
const counts = new Map<string, number>()
|
|
715
749
|
for (const file of roots.flatMap(sourceFilesUnder)) {
|
|
716
750
|
if (file.endsWith('/outbound-endpoints.ts')) continue
|
|
717
|
-
const source =
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
file.endsWith('.tsx') ? ts.ScriptKind.TSX : ts.ScriptKind.TS,
|
|
723
|
-
)
|
|
724
|
-
const names = networkNames(source)
|
|
751
|
+
const source = fs.readFileSync(file, 'utf8')
|
|
752
|
+
const program = parseSync(file, source, {
|
|
753
|
+
lang: file.endsWith('.tsx') ? 'tsx' : 'ts',
|
|
754
|
+
}).program
|
|
755
|
+
const names = networkNames(program)
|
|
725
756
|
const relative = path.relative(repositoryRoot, file).split(path.sep).join('/')
|
|
726
|
-
const
|
|
727
|
-
const kind = callKind(node, names)
|
|
757
|
+
const recordCall = (node: CallExpression | NewExpression): void => {
|
|
758
|
+
const kind = callKind(node, names, source)
|
|
728
759
|
if (kind) {
|
|
729
|
-
const key = `${relative} :: ${kind} :: ${firstArgument(node)}`
|
|
760
|
+
const key = `${relative} :: ${kind} :: ${firstArgument(node, source)}`
|
|
730
761
|
counts.set(key, (counts.get(key) ?? 0) + 1)
|
|
731
762
|
}
|
|
732
|
-
ts.forEachChild(node, visit)
|
|
733
763
|
}
|
|
734
|
-
|
|
764
|
+
new Visitor({
|
|
765
|
+
CallExpression: recordCall,
|
|
766
|
+
NewExpression: recordCall,
|
|
767
|
+
}).visit(program)
|
|
735
768
|
}
|
|
736
769
|
return [...counts.entries()]
|
|
737
770
|
.map(([key, count]) => ({ key, count }))
|
package/detox/jest-preset.cjs
CHANGED
|
@@ -21,23 +21,7 @@ module.exports = {
|
|
|
21
21
|
testEnvironment: 'node',
|
|
22
22
|
setupFilesAfterEnv: [path.join(PACKAGE_ROOT, 'detox', 'jest-setup-after-env.cjs')],
|
|
23
23
|
transform: {
|
|
24
|
-
'^.+\\.
|
|
25
|
-
'ts-jest',
|
|
26
|
-
{
|
|
27
|
-
isolatedModules: true,
|
|
28
|
-
tsconfig: {
|
|
29
|
-
module: 'commonjs',
|
|
30
|
-
target: 'es2020',
|
|
31
|
-
esModuleInterop: true,
|
|
32
|
-
jsx: 'react-jsx',
|
|
33
|
-
strict: false,
|
|
34
|
-
skipLibCheck: true,
|
|
35
|
-
moduleResolution: 'node',
|
|
36
|
-
allowJs: true,
|
|
37
|
-
resolveJsonModule: true,
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
],
|
|
24
|
+
'^.+\\.[jt]sx?$': ['@sucrase/jest-plugin', { jsxRuntime: 'automatic' }],
|
|
41
25
|
},
|
|
42
26
|
moduleNameMapper: {
|
|
43
27
|
'^detox$': DRIVER_ENTRY,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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);
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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.493 | (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;
|
|
@@ -21,23 +21,7 @@ module.exports = {
|
|
|
21
21
|
testEnvironment: 'node',
|
|
22
22
|
setupFilesAfterEnv: [path.join(PACKAGE_ROOT, 'detox', 'jest-setup-after-env.cjs')],
|
|
23
23
|
transform: {
|
|
24
|
-
'^.+\\.
|
|
25
|
-
'ts-jest',
|
|
26
|
-
{
|
|
27
|
-
isolatedModules: true,
|
|
28
|
-
tsconfig: {
|
|
29
|
-
module: 'commonjs',
|
|
30
|
-
target: 'es2020',
|
|
31
|
-
esModuleInterop: true,
|
|
32
|
-
jsx: 'react-jsx',
|
|
33
|
-
strict: false,
|
|
34
|
-
skipLibCheck: true,
|
|
35
|
-
moduleResolution: 'node',
|
|
36
|
-
allowJs: true,
|
|
37
|
-
resolveJsonModule: true,
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
],
|
|
24
|
+
'^.+\\.[jt]sx?$': ['@sucrase/jest-plugin', { jsxRuntime: 'automatic' }],
|
|
41
25
|
},
|
|
42
26
|
moduleNameMapper: {
|
|
43
27
|
'^detox$': DRIVER_ENTRY,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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.493 | (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/dist-lib/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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.493 | (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/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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.493 | (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.493 | (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/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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.493 | (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/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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);
|
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.493 | (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.
|
|
3
|
+
"version": "0.1.493",
|
|
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",
|
|
@@ -243,6 +243,7 @@
|
|
|
243
243
|
},
|
|
244
244
|
"dependencies": {
|
|
245
245
|
"@expo/plist": "^0.5.4",
|
|
246
|
+
"@sucrase/jest-plugin": "3.0.0",
|
|
246
247
|
"jiti": "2.7.0",
|
|
247
248
|
"magic-string": "^0.30.21",
|
|
248
249
|
"oxc-parser": "^0.112.0",
|
|
@@ -268,7 +269,7 @@
|
|
|
268
269
|
"@types/ws": "^8.5.13",
|
|
269
270
|
"rnx-cloud-box": "workspace:*",
|
|
270
271
|
"sootsim-engine": "workspace:*",
|
|
271
|
-
"typescript": "
|
|
272
|
+
"typescript": "7.0.2",
|
|
272
273
|
"vite": "^8.2.2",
|
|
273
274
|
"yaml": "^2.8.3"
|
|
274
275
|
}
|
package/src/bridge-contract.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type {
|
|
|
12
12
|
SootSimAgentActionDetail,
|
|
13
13
|
SootSimCaptureFilter,
|
|
14
14
|
SootSimExternalAppLifecycleOptions,
|
|
15
|
+
SootSimStorageResetStrategy,
|
|
15
16
|
} from '@rnx/globals'
|
|
16
17
|
|
|
17
18
|
export type BridgeCommandType =
|
|
@@ -387,11 +388,9 @@ export interface SimSemanticResolveResult {
|
|
|
387
388
|
// MMKV, sqlite, cache dirs. 'full' also clears what only a fresh install would:
|
|
388
389
|
// simulated keychain, user defaults, granted permissions.
|
|
389
390
|
//
|
|
390
|
-
//
|
|
391
|
-
//
|
|
392
|
-
|
|
393
|
-
// claiming the fast path.
|
|
394
|
-
export type ResetStrategy = 'data' | 'full'
|
|
391
|
+
// reset replaces the tenant worker before clearing storage, so background app
|
|
392
|
+
// work cannot refill a store between its clear and verification.
|
|
393
|
+
export type ResetStrategy = SootSimStorageResetStrategy
|
|
395
394
|
|
|
396
395
|
export interface ResetOptions extends Pick<
|
|
397
396
|
SootSimExternalAppLifecycleOptions,
|