rnxsim 0.1.514 → 0.1.516
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/cloud-client.ts +18 -8
- package/cli/commands/inspect/get-layout.ts +2 -1
- package/cli/outbound-endpoints.ts +1 -1
- 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 +64 -1
- package/dist-lib/bridge-contract-input.mjs +63 -1
- package/dist-lib/bridge-contract.cjs +73 -3
- package/dist-lib/bridge-contract.mjs +69 -2
- 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 +63 -22
- package/dist-lib/cloud-contract.mjs +57 -21
- package/dist-lib/cloud.cjs +56 -20
- package/dist-lib/cloud.mjs +56 -20
- 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 +45 -20
- 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 +62 -24
- 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 +62 -24
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite.cjs +1 -1
- package/package.json +2 -1
- package/src/bridge-contract-input.ts +74 -0
- package/src/bridge-contract.ts +103 -0
- package/src/cloud-contract.ts +71 -19
- package/src/cloud.ts +10 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.516 | (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;
|
|
@@ -22,6 +22,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
22
22
|
// src/cloud-contract.ts
|
|
23
23
|
var cloud_contract_exports = {};
|
|
24
24
|
__export(cloud_contract_exports, {
|
|
25
|
+
RNX_CLOUD_ALL_COMMAND_SCOPES: () => RNX_CLOUD_ALL_COMMAND_SCOPES,
|
|
26
|
+
RNX_CLOUD_COMMAND_SCOPES: () => RNX_CLOUD_COMMAND_SCOPES,
|
|
25
27
|
RNX_CLOUD_COMMAND_TYPES: () => RNX_CLOUD_COMMAND_TYPES,
|
|
26
28
|
RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES: () => RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES,
|
|
27
29
|
RNX_CLOUD_DESIGN_MAX_STORAGE_ENTRIES: () => RNX_CLOUD_DESIGN_MAX_STORAGE_ENTRIES,
|
|
@@ -30,12 +32,15 @@ __export(cloud_contract_exports, {
|
|
|
30
32
|
RNX_CLOUD_MAX_ARTIFACT_BYTES: () => RNX_CLOUD_MAX_ARTIFACT_BYTES,
|
|
31
33
|
RNX_CLOUD_TEST_FILES_MAX_BYTES: () => RNX_CLOUD_TEST_FILES_MAX_BYTES,
|
|
32
34
|
RNX_CLOUD_TEST_FILES_MAX_COUNT: () => RNX_CLOUD_TEST_FILES_MAX_COUNT,
|
|
35
|
+
RNX_CLOUD_TOKEN_SCOPES: () => RNX_CLOUD_TOKEN_SCOPES,
|
|
33
36
|
isRnxCloudCommandType: () => isRnxCloudCommandType,
|
|
34
37
|
isRnxCloudSimStatus: () => isRnxCloudSimStatus,
|
|
35
38
|
isValidRnxCloudLabel: () => isValidRnxCloudLabel,
|
|
36
39
|
matchesRnxCloudLabels: () => matchesRnxCloudLabels,
|
|
37
40
|
parseRnxCloudLabels: () => parseRnxCloudLabels,
|
|
38
|
-
readRnxCloudLabels: () => readRnxCloudLabels
|
|
41
|
+
readRnxCloudLabels: () => readRnxCloudLabels,
|
|
42
|
+
rnxCloudCommandScope: () => rnxCloudCommandScope,
|
|
43
|
+
rnxCloudScopesAllowCommand: () => rnxCloudScopesAllowCommand
|
|
39
44
|
});
|
|
40
45
|
module.exports = __toCommonJS(cloud_contract_exports);
|
|
41
46
|
var RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
|
|
@@ -43,29 +48,60 @@ var RNX_CLOUD_DESIGN_MAX_STORAGE_ENTRIES = 256;
|
|
|
43
48
|
var RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES = 1024 * 1024;
|
|
44
49
|
var RNX_CLOUD_TEST_FILES_MAX_COUNT = 256;
|
|
45
50
|
var RNX_CLOUD_TEST_FILES_MAX_BYTES = 5e5;
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
|
|
51
|
+
var RNX_CLOUD_COMMAND_SCOPES = {
|
|
52
|
+
state: "read",
|
|
53
|
+
tree: "read",
|
|
54
|
+
query: "read",
|
|
55
|
+
resolve: "read",
|
|
56
|
+
screenshot: "read",
|
|
57
|
+
capture: "read",
|
|
58
|
+
captureRegions: "read",
|
|
59
|
+
memory: "read",
|
|
60
|
+
diagnostics: "read",
|
|
61
|
+
storageSnapshot: "read",
|
|
62
|
+
perform: "drive",
|
|
63
|
+
waitFor: "drive",
|
|
64
|
+
tap: "drive",
|
|
65
|
+
longPress: "drive",
|
|
66
|
+
settle: "drive",
|
|
67
|
+
openUrl: "drive",
|
|
68
|
+
setAppearance: "drive",
|
|
69
|
+
keyboard: "drive",
|
|
70
|
+
focus: "drive",
|
|
71
|
+
flowStatus: "drive",
|
|
72
|
+
reset: "reset",
|
|
73
|
+
camera: "media",
|
|
74
|
+
// string evaluation and arbitrary bridge calls are maestro's boundary: the
|
|
75
|
+
// customer sdk never carries this scope, and the service grants it only to
|
|
76
|
+
// the account api key caller. close rides along, since ending the page ends
|
|
77
|
+
// the sim and belongs to the sim's owner rather than any driver.
|
|
78
|
+
evaluate: "debug",
|
|
79
|
+
call: "debug",
|
|
80
|
+
close: "debug"
|
|
81
|
+
};
|
|
82
|
+
function scopeTableKeys() {
|
|
83
|
+
return Object.keys(RNX_CLOUD_COMMAND_SCOPES).filter(
|
|
84
|
+
(key) => Object.prototype.hasOwnProperty.call(RNX_CLOUD_COMMAND_SCOPES, key)
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
var RNX_CLOUD_COMMAND_TYPES = Object.freeze(scopeTableKeys());
|
|
65
88
|
var RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
66
89
|
function isRnxCloudCommandType(value) {
|
|
67
90
|
return RNX_CLOUD_COMMAND_TYPE_SET.has(value);
|
|
68
91
|
}
|
|
92
|
+
function rnxCloudCommandScope(type) {
|
|
93
|
+
return RNX_CLOUD_COMMAND_SCOPES[type];
|
|
94
|
+
}
|
|
95
|
+
var RNX_CLOUD_TOKEN_SCOPES = Object.freeze([
|
|
96
|
+
"read",
|
|
97
|
+
"drive",
|
|
98
|
+
"reset",
|
|
99
|
+
"media"
|
|
100
|
+
]);
|
|
101
|
+
var RNX_CLOUD_ALL_COMMAND_SCOPES = Object.freeze(["read", "drive", "reset", "media", "debug"]);
|
|
102
|
+
function rnxCloudScopesAllowCommand(scopes, type) {
|
|
103
|
+
return scopes.includes(RNX_CLOUD_COMMAND_SCOPES[type]);
|
|
104
|
+
}
|
|
69
105
|
var RNX_CLOUD_LABELS_MAX_COUNT = 16;
|
|
70
106
|
var RNX_CLOUD_LABEL_MAX_LENGTH = 63;
|
|
71
107
|
var RNX_CLOUD_LABEL_CONTROL = /[\u0000-\u001f\u007f]/;
|
|
@@ -108,6 +144,8 @@ function isRnxCloudSimStatus(value) {
|
|
|
108
144
|
}
|
|
109
145
|
// Annotate the CommonJS export names for ESM import in node:
|
|
110
146
|
0 && (module.exports = {
|
|
147
|
+
RNX_CLOUD_ALL_COMMAND_SCOPES,
|
|
148
|
+
RNX_CLOUD_COMMAND_SCOPES,
|
|
111
149
|
RNX_CLOUD_COMMAND_TYPES,
|
|
112
150
|
RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES,
|
|
113
151
|
RNX_CLOUD_DESIGN_MAX_STORAGE_ENTRIES,
|
|
@@ -116,10 +154,13 @@ function isRnxCloudSimStatus(value) {
|
|
|
116
154
|
RNX_CLOUD_MAX_ARTIFACT_BYTES,
|
|
117
155
|
RNX_CLOUD_TEST_FILES_MAX_BYTES,
|
|
118
156
|
RNX_CLOUD_TEST_FILES_MAX_COUNT,
|
|
157
|
+
RNX_CLOUD_TOKEN_SCOPES,
|
|
119
158
|
isRnxCloudCommandType,
|
|
120
159
|
isRnxCloudSimStatus,
|
|
121
160
|
isValidRnxCloudLabel,
|
|
122
161
|
matchesRnxCloudLabels,
|
|
123
162
|
parseRnxCloudLabels,
|
|
124
|
-
readRnxCloudLabels
|
|
163
|
+
readRnxCloudLabels,
|
|
164
|
+
rnxCloudCommandScope,
|
|
165
|
+
rnxCloudScopesAllowCommand
|
|
125
166
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.516 | (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;
|
|
@@ -6,29 +6,60 @@ var RNX_CLOUD_DESIGN_MAX_STORAGE_ENTRIES = 256;
|
|
|
6
6
|
var RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES = 1024 * 1024;
|
|
7
7
|
var RNX_CLOUD_TEST_FILES_MAX_COUNT = 256;
|
|
8
8
|
var RNX_CLOUD_TEST_FILES_MAX_BYTES = 5e5;
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
9
|
+
var RNX_CLOUD_COMMAND_SCOPES = {
|
|
10
|
+
state: "read",
|
|
11
|
+
tree: "read",
|
|
12
|
+
query: "read",
|
|
13
|
+
resolve: "read",
|
|
14
|
+
screenshot: "read",
|
|
15
|
+
capture: "read",
|
|
16
|
+
captureRegions: "read",
|
|
17
|
+
memory: "read",
|
|
18
|
+
diagnostics: "read",
|
|
19
|
+
storageSnapshot: "read",
|
|
20
|
+
perform: "drive",
|
|
21
|
+
waitFor: "drive",
|
|
22
|
+
tap: "drive",
|
|
23
|
+
longPress: "drive",
|
|
24
|
+
settle: "drive",
|
|
25
|
+
openUrl: "drive",
|
|
26
|
+
setAppearance: "drive",
|
|
27
|
+
keyboard: "drive",
|
|
28
|
+
focus: "drive",
|
|
29
|
+
flowStatus: "drive",
|
|
30
|
+
reset: "reset",
|
|
31
|
+
camera: "media",
|
|
32
|
+
// string evaluation and arbitrary bridge calls are maestro's boundary: the
|
|
33
|
+
// customer sdk never carries this scope, and the service grants it only to
|
|
34
|
+
// the account api key caller. close rides along, since ending the page ends
|
|
35
|
+
// the sim and belongs to the sim's owner rather than any driver.
|
|
36
|
+
evaluate: "debug",
|
|
37
|
+
call: "debug",
|
|
38
|
+
close: "debug"
|
|
39
|
+
};
|
|
40
|
+
function scopeTableKeys() {
|
|
41
|
+
return Object.keys(RNX_CLOUD_COMMAND_SCOPES).filter(
|
|
42
|
+
(key) => Object.prototype.hasOwnProperty.call(RNX_CLOUD_COMMAND_SCOPES, key)
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
var RNX_CLOUD_COMMAND_TYPES = Object.freeze(scopeTableKeys());
|
|
28
46
|
var RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
29
47
|
function isRnxCloudCommandType(value) {
|
|
30
48
|
return RNX_CLOUD_COMMAND_TYPE_SET.has(value);
|
|
31
49
|
}
|
|
50
|
+
function rnxCloudCommandScope(type) {
|
|
51
|
+
return RNX_CLOUD_COMMAND_SCOPES[type];
|
|
52
|
+
}
|
|
53
|
+
var RNX_CLOUD_TOKEN_SCOPES = Object.freeze([
|
|
54
|
+
"read",
|
|
55
|
+
"drive",
|
|
56
|
+
"reset",
|
|
57
|
+
"media"
|
|
58
|
+
]);
|
|
59
|
+
var RNX_CLOUD_ALL_COMMAND_SCOPES = Object.freeze(["read", "drive", "reset", "media", "debug"]);
|
|
60
|
+
function rnxCloudScopesAllowCommand(scopes, type) {
|
|
61
|
+
return scopes.includes(RNX_CLOUD_COMMAND_SCOPES[type]);
|
|
62
|
+
}
|
|
32
63
|
var RNX_CLOUD_LABELS_MAX_COUNT = 16;
|
|
33
64
|
var RNX_CLOUD_LABEL_MAX_LENGTH = 63;
|
|
34
65
|
var RNX_CLOUD_LABEL_CONTROL = /[\u0000-\u001f\u007f]/;
|
|
@@ -70,6 +101,8 @@ function isRnxCloudSimStatus(value) {
|
|
|
70
101
|
return value === "creating" || value === "open" || value === "hibernated" || value === "deleting" || value === "deleted";
|
|
71
102
|
}
|
|
72
103
|
export {
|
|
104
|
+
RNX_CLOUD_ALL_COMMAND_SCOPES,
|
|
105
|
+
RNX_CLOUD_COMMAND_SCOPES,
|
|
73
106
|
RNX_CLOUD_COMMAND_TYPES,
|
|
74
107
|
RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES,
|
|
75
108
|
RNX_CLOUD_DESIGN_MAX_STORAGE_ENTRIES,
|
|
@@ -78,10 +111,13 @@ export {
|
|
|
78
111
|
RNX_CLOUD_MAX_ARTIFACT_BYTES,
|
|
79
112
|
RNX_CLOUD_TEST_FILES_MAX_BYTES,
|
|
80
113
|
RNX_CLOUD_TEST_FILES_MAX_COUNT,
|
|
114
|
+
RNX_CLOUD_TOKEN_SCOPES,
|
|
81
115
|
isRnxCloudCommandType,
|
|
82
116
|
isRnxCloudSimStatus,
|
|
83
117
|
isValidRnxCloudLabel,
|
|
84
118
|
matchesRnxCloudLabels,
|
|
85
119
|
parseRnxCloudLabels,
|
|
86
|
-
readRnxCloudLabels
|
|
120
|
+
readRnxCloudLabels,
|
|
121
|
+
rnxCloudCommandScope,
|
|
122
|
+
rnxCloudScopesAllowCommand
|
|
87
123
|
};
|
package/dist-lib/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.516 | (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;
|
|
@@ -99,29 +99,60 @@ function isRnxScreenCapture(value) {
|
|
|
99
99
|
// src/cloud-contract.ts
|
|
100
100
|
var RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
|
|
101
101
|
var RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES = 1024 * 1024;
|
|
102
|
-
var
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
|
|
102
|
+
var RNX_CLOUD_COMMAND_SCOPES = {
|
|
103
|
+
state: "read",
|
|
104
|
+
tree: "read",
|
|
105
|
+
query: "read",
|
|
106
|
+
resolve: "read",
|
|
107
|
+
screenshot: "read",
|
|
108
|
+
capture: "read",
|
|
109
|
+
captureRegions: "read",
|
|
110
|
+
memory: "read",
|
|
111
|
+
diagnostics: "read",
|
|
112
|
+
storageSnapshot: "read",
|
|
113
|
+
perform: "drive",
|
|
114
|
+
waitFor: "drive",
|
|
115
|
+
tap: "drive",
|
|
116
|
+
longPress: "drive",
|
|
117
|
+
settle: "drive",
|
|
118
|
+
openUrl: "drive",
|
|
119
|
+
setAppearance: "drive",
|
|
120
|
+
keyboard: "drive",
|
|
121
|
+
focus: "drive",
|
|
122
|
+
flowStatus: "drive",
|
|
123
|
+
reset: "reset",
|
|
124
|
+
camera: "media",
|
|
125
|
+
// string evaluation and arbitrary bridge calls are maestro's boundary: the
|
|
126
|
+
// customer sdk never carries this scope, and the service grants it only to
|
|
127
|
+
// the account api key caller. close rides along, since ending the page ends
|
|
128
|
+
// the sim and belongs to the sim's owner rather than any driver.
|
|
129
|
+
evaluate: "debug",
|
|
130
|
+
call: "debug",
|
|
131
|
+
close: "debug"
|
|
132
|
+
};
|
|
133
|
+
function scopeTableKeys() {
|
|
134
|
+
return Object.keys(RNX_CLOUD_COMMAND_SCOPES).filter(
|
|
135
|
+
(key) => Object.prototype.hasOwnProperty.call(RNX_CLOUD_COMMAND_SCOPES, key)
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
var RNX_CLOUD_COMMAND_TYPES = Object.freeze(scopeTableKeys());
|
|
121
139
|
var RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
122
140
|
function isRnxCloudCommandType(value) {
|
|
123
141
|
return RNX_CLOUD_COMMAND_TYPE_SET.has(value);
|
|
124
142
|
}
|
|
143
|
+
function rnxCloudCommandScope(type) {
|
|
144
|
+
return RNX_CLOUD_COMMAND_SCOPES[type];
|
|
145
|
+
}
|
|
146
|
+
var RNX_CLOUD_TOKEN_SCOPES = Object.freeze([
|
|
147
|
+
"read",
|
|
148
|
+
"drive",
|
|
149
|
+
"reset",
|
|
150
|
+
"media"
|
|
151
|
+
]);
|
|
152
|
+
var RNX_CLOUD_ALL_COMMAND_SCOPES = Object.freeze(["read", "drive", "reset", "media", "debug"]);
|
|
153
|
+
function rnxCloudScopesAllowCommand(scopes, type) {
|
|
154
|
+
return scopes.includes(RNX_CLOUD_COMMAND_SCOPES[type]);
|
|
155
|
+
}
|
|
125
156
|
|
|
126
157
|
// src/public-brand.ts
|
|
127
158
|
var name = "rnx";
|
|
@@ -313,6 +344,11 @@ function cloudCommand(command) {
|
|
|
313
344
|
if (!isRnxCloudCommandType(command.type)) {
|
|
314
345
|
throw new Error(`RNX Cloud does not support bridge command type ${command.type}`);
|
|
315
346
|
}
|
|
347
|
+
if (!rnxCloudScopesAllowCommand(RNX_CLOUD_TOKEN_SCOPES, command.type)) {
|
|
348
|
+
throw new Error(
|
|
349
|
+
`RNX Cloud command ${command.type} requires the ${rnxCloudCommandScope(command.type)} scope`
|
|
350
|
+
);
|
|
351
|
+
}
|
|
316
352
|
return { ...clean, type: command.type };
|
|
317
353
|
}
|
|
318
354
|
var RemoteSimulator = class {
|
package/dist-lib/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.516 | (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);
|
|
@@ -72,29 +72,60 @@ function isRnxScreenCapture(value) {
|
|
|
72
72
|
// src/cloud-contract.ts
|
|
73
73
|
var RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
|
|
74
74
|
var RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES = 1024 * 1024;
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
|
|
75
|
+
var RNX_CLOUD_COMMAND_SCOPES = {
|
|
76
|
+
state: "read",
|
|
77
|
+
tree: "read",
|
|
78
|
+
query: "read",
|
|
79
|
+
resolve: "read",
|
|
80
|
+
screenshot: "read",
|
|
81
|
+
capture: "read",
|
|
82
|
+
captureRegions: "read",
|
|
83
|
+
memory: "read",
|
|
84
|
+
diagnostics: "read",
|
|
85
|
+
storageSnapshot: "read",
|
|
86
|
+
perform: "drive",
|
|
87
|
+
waitFor: "drive",
|
|
88
|
+
tap: "drive",
|
|
89
|
+
longPress: "drive",
|
|
90
|
+
settle: "drive",
|
|
91
|
+
openUrl: "drive",
|
|
92
|
+
setAppearance: "drive",
|
|
93
|
+
keyboard: "drive",
|
|
94
|
+
focus: "drive",
|
|
95
|
+
flowStatus: "drive",
|
|
96
|
+
reset: "reset",
|
|
97
|
+
camera: "media",
|
|
98
|
+
// string evaluation and arbitrary bridge calls are maestro's boundary: the
|
|
99
|
+
// customer sdk never carries this scope, and the service grants it only to
|
|
100
|
+
// the account api key caller. close rides along, since ending the page ends
|
|
101
|
+
// the sim and belongs to the sim's owner rather than any driver.
|
|
102
|
+
evaluate: "debug",
|
|
103
|
+
call: "debug",
|
|
104
|
+
close: "debug"
|
|
105
|
+
};
|
|
106
|
+
function scopeTableKeys() {
|
|
107
|
+
return Object.keys(RNX_CLOUD_COMMAND_SCOPES).filter(
|
|
108
|
+
(key) => Object.prototype.hasOwnProperty.call(RNX_CLOUD_COMMAND_SCOPES, key)
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
var RNX_CLOUD_COMMAND_TYPES = Object.freeze(scopeTableKeys());
|
|
94
112
|
var RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
95
113
|
function isRnxCloudCommandType(value) {
|
|
96
114
|
return RNX_CLOUD_COMMAND_TYPE_SET.has(value);
|
|
97
115
|
}
|
|
116
|
+
function rnxCloudCommandScope(type) {
|
|
117
|
+
return RNX_CLOUD_COMMAND_SCOPES[type];
|
|
118
|
+
}
|
|
119
|
+
var RNX_CLOUD_TOKEN_SCOPES = Object.freeze([
|
|
120
|
+
"read",
|
|
121
|
+
"drive",
|
|
122
|
+
"reset",
|
|
123
|
+
"media"
|
|
124
|
+
]);
|
|
125
|
+
var RNX_CLOUD_ALL_COMMAND_SCOPES = Object.freeze(["read", "drive", "reset", "media", "debug"]);
|
|
126
|
+
function rnxCloudScopesAllowCommand(scopes, type) {
|
|
127
|
+
return scopes.includes(RNX_CLOUD_COMMAND_SCOPES[type]);
|
|
128
|
+
}
|
|
98
129
|
|
|
99
130
|
// src/public-brand.ts
|
|
100
131
|
var name = "rnx";
|
|
@@ -286,6 +317,11 @@ function cloudCommand(command) {
|
|
|
286
317
|
if (!isRnxCloudCommandType(command.type)) {
|
|
287
318
|
throw new Error(`RNX Cloud does not support bridge command type ${command.type}`);
|
|
288
319
|
}
|
|
320
|
+
if (!rnxCloudScopesAllowCommand(RNX_CLOUD_TOKEN_SCOPES, command.type)) {
|
|
321
|
+
throw new Error(
|
|
322
|
+
`RNX Cloud command ${command.type} requires the ${rnxCloudCommandScope(command.type)} scope`
|
|
323
|
+
);
|
|
324
|
+
}
|
|
289
325
|
return { ...clean, type: command.type };
|
|
290
326
|
}
|
|
291
327
|
var RemoteSimulator = class {
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.516 | (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.516 | (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.516 | (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.516 | (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.516 | (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;
|
|
@@ -3488,32 +3488,57 @@ var init_metro_fingerprint = __esm({
|
|
|
3488
3488
|
});
|
|
3489
3489
|
|
|
3490
3490
|
// src/cloud-contract.ts
|
|
3491
|
-
|
|
3491
|
+
function scopeTableKeys() {
|
|
3492
|
+
return Object.keys(RNX_CLOUD_COMMAND_SCOPES).filter(
|
|
3493
|
+
(key) => Object.prototype.hasOwnProperty.call(RNX_CLOUD_COMMAND_SCOPES, key)
|
|
3494
|
+
);
|
|
3495
|
+
}
|
|
3496
|
+
var RNX_CLOUD_MAX_ARTIFACT_BYTES, RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES, RNX_CLOUD_COMMAND_SCOPES, RNX_CLOUD_COMMAND_TYPES, RNX_CLOUD_COMMAND_TYPE_SET, RNX_CLOUD_TOKEN_SCOPES, RNX_CLOUD_ALL_COMMAND_SCOPES;
|
|
3492
3497
|
var init_cloud_contract = __esm({
|
|
3493
3498
|
"src/cloud-contract.ts"() {
|
|
3494
3499
|
"use strict";
|
|
3495
3500
|
RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
|
|
3496
3501
|
RNX_CLOUD_DESIGN_MAX_STORAGE_BYTES = 1024 * 1024;
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
"
|
|
3500
|
-
"
|
|
3501
|
-
"
|
|
3502
|
-
"
|
|
3502
|
+
RNX_CLOUD_COMMAND_SCOPES = {
|
|
3503
|
+
state: "read",
|
|
3504
|
+
tree: "read",
|
|
3505
|
+
query: "read",
|
|
3506
|
+
resolve: "read",
|
|
3507
|
+
screenshot: "read",
|
|
3508
|
+
capture: "read",
|
|
3509
|
+
captureRegions: "read",
|
|
3510
|
+
memory: "read",
|
|
3511
|
+
diagnostics: "read",
|
|
3512
|
+
storageSnapshot: "read",
|
|
3513
|
+
perform: "drive",
|
|
3514
|
+
waitFor: "drive",
|
|
3515
|
+
tap: "drive",
|
|
3516
|
+
longPress: "drive",
|
|
3517
|
+
settle: "drive",
|
|
3518
|
+
openUrl: "drive",
|
|
3519
|
+
setAppearance: "drive",
|
|
3520
|
+
keyboard: "drive",
|
|
3521
|
+
focus: "drive",
|
|
3522
|
+
flowStatus: "drive",
|
|
3523
|
+
reset: "reset",
|
|
3524
|
+
camera: "media",
|
|
3525
|
+
// string evaluation and arbitrary bridge calls are maestro's boundary: the
|
|
3526
|
+
// customer sdk never carries this scope, and the service grants it only to
|
|
3527
|
+
// the account api key caller. close rides along, since ending the page ends
|
|
3528
|
+
// the sim and belongs to the sim's owner rather than any driver.
|
|
3529
|
+
evaluate: "debug",
|
|
3530
|
+
call: "debug",
|
|
3531
|
+
close: "debug"
|
|
3532
|
+
};
|
|
3533
|
+
RNX_CLOUD_COMMAND_TYPES = Object.freeze(scopeTableKeys());
|
|
3534
|
+
RNX_CLOUD_COMMAND_TYPE_SET = new Set(RNX_CLOUD_COMMAND_TYPES);
|
|
3535
|
+
RNX_CLOUD_TOKEN_SCOPES = Object.freeze([
|
|
3536
|
+
"read",
|
|
3537
|
+
"drive",
|
|
3503
3538
|
"reset",
|
|
3504
|
-
"
|
|
3505
|
-
"capture",
|
|
3506
|
-
"captureRegions",
|
|
3507
|
-
"settle",
|
|
3508
|
-
"setAppearance",
|
|
3509
|
-
"openUrl",
|
|
3510
|
-
"tree",
|
|
3511
|
-
"tap",
|
|
3512
|
-
"longPress",
|
|
3513
|
-
"memory",
|
|
3514
|
-
"diagnostics"
|
|
3539
|
+
"media"
|
|
3515
3540
|
]);
|
|
3516
|
-
|
|
3541
|
+
RNX_CLOUD_ALL_COMMAND_SCOPES = Object.freeze(["read", "drive", "reset", "media", "debug"]);
|
|
3517
3542
|
}
|
|
3518
3543
|
});
|
|
3519
3544
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.516 | (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.516 | (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.516 | (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.516 | (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.516 | (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;
|