react-native-ai-debugger 1.8.0 → 1.9.0
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 +73 -66
- package/build/__tests__/integration/auto-reconnect.test.d.ts +2 -0
- package/build/__tests__/integration/auto-reconnect.test.d.ts.map +1 -0
- package/build/__tests__/integration/auto-reconnect.test.js +118 -0
- package/build/__tests__/integration/auto-reconnect.test.js.map +1 -0
- package/build/__tests__/integration/per-call-timeout.test.d.ts +2 -0
- package/build/__tests__/integration/per-call-timeout.test.d.ts.map +1 -0
- package/build/__tests__/integration/per-call-timeout.test.js +103 -0
- package/build/__tests__/integration/per-call-timeout.test.js.map +1 -0
- package/build/__tests__/setup.js +3 -5
- package/build/__tests__/setup.js.map +1 -1
- package/build/__tests__/unit/debugGlobals.test.d.ts +2 -0
- package/build/__tests__/unit/debugGlobals.test.d.ts.map +1 -0
- package/build/__tests__/unit/debugGlobals.test.js +14 -0
- package/build/__tests__/unit/debugGlobals.test.js.map +1 -0
- package/build/__tests__/unit/escapeNonAscii.test.d.ts +2 -0
- package/build/__tests__/unit/escapeNonAscii.test.d.ts.map +1 -0
- package/build/__tests__/unit/escapeNonAscii.test.js +76 -0
- package/build/__tests__/unit/escapeNonAscii.test.js.map +1 -0
- package/build/__tests__/unit/executor.test.js +59 -7
- package/build/__tests__/unit/executor.test.js.map +1 -1
- package/build/__tests__/unit/fastRefreshRecorder.test.d.ts +2 -0
- package/build/__tests__/unit/fastRefreshRecorder.test.d.ts.map +1 -0
- package/build/__tests__/unit/fastRefreshRecorder.test.js +68 -0
- package/build/__tests__/unit/fastRefreshRecorder.test.js.map +1 -0
- package/build/__tests__/unit/fastRefreshTools.test.d.ts +2 -0
- package/build/__tests__/unit/fastRefreshTools.test.d.ts.map +1 -0
- package/build/__tests__/unit/fastRefreshTools.test.js +112 -0
- package/build/__tests__/unit/fastRefreshTools.test.js.map +1 -0
- package/build/__tests__/unit/fingerprint.test.js +10 -0
- package/build/__tests__/unit/fingerprint.test.js.map +1 -1
- package/build/__tests__/unit/measureComponent.test.d.ts +2 -0
- package/build/__tests__/unit/measureComponent.test.d.ts.map +1 -0
- package/build/__tests__/unit/measureComponent.test.js +66 -0
- package/build/__tests__/unit/measureComponent.test.js.map +1 -0
- package/build/__tests__/unit/measureComponentTools.test.d.ts +2 -0
- package/build/__tests__/unit/measureComponentTools.test.d.ts.map +1 -0
- package/build/__tests__/unit/measureComponentTools.test.js +94 -0
- package/build/__tests__/unit/measureComponentTools.test.js.map +1 -0
- package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts +2 -0
- package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts.map +1 -0
- package/build/__tests__/unit/rnGlobalsBootstrap.test.js +29 -0
- package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -0
- package/build/__tests__/unit/timeoutClamp.test.d.ts +2 -0
- package/build/__tests__/unit/timeoutClamp.test.d.ts.map +1 -0
- package/build/__tests__/unit/timeoutClamp.test.js +17 -0
- package/build/__tests__/unit/timeoutClamp.test.js.map +1 -0
- package/build/__tests__/unit/transportClassify.test.d.ts +2 -0
- package/build/__tests__/unit/transportClassify.test.d.ts.map +1 -0
- package/build/__tests__/unit/transportClassify.test.js +60 -0
- package/build/__tests__/unit/transportClassify.test.js.map +1 -0
- package/build/core/appDetection.d.ts +7 -0
- package/build/core/appDetection.d.ts.map +1 -1
- package/build/core/appDetection.js +38 -17
- package/build/core/appDetection.js.map +1 -1
- package/build/core/bundle.d.ts +1 -1
- package/build/core/bundle.d.ts.map +1 -1
- package/build/core/bundle.js +6 -10
- package/build/core/bundle.js.map +1 -1
- package/build/core/componentSearch.d.ts +41 -0
- package/build/core/componentSearch.d.ts.map +1 -0
- package/build/core/componentSearch.js +484 -0
- package/build/core/componentSearch.js.map +1 -0
- package/build/core/componentTree.d.ts +13 -0
- package/build/core/componentTree.d.ts.map +1 -0
- package/build/core/componentTree.js +275 -0
- package/build/core/componentTree.js.map +1 -0
- package/build/core/connection.d.ts +1 -0
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +97 -88
- package/build/core/connection.js.map +1 -1
- package/build/core/debugGlobals.d.ts +6 -0
- package/build/core/debugGlobals.d.ts.map +1 -0
- package/build/core/debugGlobals.js +336 -0
- package/build/core/debugGlobals.js.map +1 -0
- package/build/core/escapeNonAscii.d.ts +18 -0
- package/build/core/escapeNonAscii.d.ts.map +1 -0
- package/build/core/escapeNonAscii.js +352 -0
- package/build/core/escapeNonAscii.js.map +1 -0
- package/build/core/executor.d.ts +7 -206
- package/build/core/executor.d.ts.map +1 -1
- package/build/core/executor.js +10 -4333
- package/build/core/executor.js.map +1 -1
- package/build/core/fastRefreshRecorder.d.ts +23 -0
- package/build/core/fastRefreshRecorder.d.ts.map +1 -0
- package/build/core/fastRefreshRecorder.js +83 -0
- package/build/core/fastRefreshRecorder.js.map +1 -0
- package/build/core/fastRefreshTools.d.ts +19 -0
- package/build/core/fastRefreshTools.d.ts.map +1 -0
- package/build/core/fastRefreshTools.js +71 -0
- package/build/core/fastRefreshTools.js.map +1 -0
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +2 -1
- package/build/core/guides.js.map +1 -1
- package/build/core/index.d.ts +5 -2
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +5 -2
- package/build/core/index.js.map +1 -1
- package/build/core/inspector.d.ts +50 -0
- package/build/core/inspector.d.ts.map +1 -0
- package/build/core/inspector.js +604 -0
- package/build/core/inspector.js.map +1 -0
- package/build/core/jsExecute.d.ts +61 -0
- package/build/core/jsExecute.d.ts.map +1 -0
- package/build/core/jsExecute.js +679 -0
- package/build/core/jsExecute.js.map +1 -0
- package/build/core/measureComponent.d.ts +19 -0
- package/build/core/measureComponent.d.ts.map +1 -0
- package/build/core/measureComponent.js +94 -0
- package/build/core/measureComponent.js.map +1 -0
- package/build/core/measureComponentTools.d.ts +6 -0
- package/build/core/measureComponentTools.d.ts.map +1 -0
- package/build/core/measureComponentTools.js +43 -0
- package/build/core/measureComponentTools.js.map +1 -0
- package/build/core/pressables.d.ts +44 -0
- package/build/core/pressables.d.ts.map +1 -0
- package/build/core/pressables.js +1480 -0
- package/build/core/pressables.js.map +1 -0
- package/build/core/register.d.ts +8 -0
- package/build/core/register.d.ts.map +1 -0
- package/build/core/register.js +216 -0
- package/build/core/register.js.map +1 -0
- package/build/core/rnGlobalsBootstrap.d.ts +16 -0
- package/build/core/rnGlobalsBootstrap.d.ts.map +1 -0
- package/build/core/rnGlobalsBootstrap.js +101 -0
- package/build/core/rnGlobalsBootstrap.js.map +1 -0
- package/build/core/screenLayout.d.ts +53 -0
- package/build/core/screenLayout.d.ts.map +1 -0
- package/build/core/screenLayout.js +828 -0
- package/build/core/screenLayout.js.map +1 -0
- package/build/core/state.d.ts +2 -2
- package/build/core/state.d.ts.map +1 -1
- package/build/core/state.js +10 -5
- package/build/core/state.js.map +1 -1
- package/build/core/telemetry.d.ts +23 -0
- package/build/core/telemetry.d.ts.map +1 -1
- package/build/core/telemetry.js +67 -0
- package/build/core/telemetry.js.map +1 -1
- package/build/core/toolHelpers.d.ts +24 -0
- package/build/core/toolHelpers.d.ts.map +1 -0
- package/build/core/toolHelpers.js +118 -0
- package/build/core/toolHelpers.js.map +1 -0
- package/build/core/types.d.ts +18 -6
- package/build/core/types.d.ts.map +1 -1
- package/build/index.d.ts +2 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +37 -4440
- package/build/index.js.map +1 -1
- package/build/tools/accountTools.d.ts +2 -0
- package/build/tools/accountTools.d.ts.map +1 -1
- package/build/tools/accountTools.js +5 -0
- package/build/tools/accountTools.js.map +1 -1
- package/build/tools/bundleTools.d.ts +3 -0
- package/build/tools/bundleTools.d.ts.map +1 -0
- package/build/tools/bundleTools.js +368 -0
- package/build/tools/bundleTools.js.map +1 -0
- package/build/tools/componentTools.d.ts +3 -0
- package/build/tools/componentTools.d.ts.map +1 -0
- package/build/tools/componentTools.js +704 -0
- package/build/tools/componentTools.js.map +1 -0
- package/build/tools/connectionTools.d.ts +3 -0
- package/build/tools/connectionTools.d.ts.map +1 -0
- package/build/tools/connectionTools.js +564 -0
- package/build/tools/connectionTools.js.map +1 -0
- package/build/tools/deviceTools.d.ts +3 -0
- package/build/tools/deviceTools.d.ts.map +1 -0
- package/build/tools/deviceTools.js +296 -0
- package/build/tools/deviceTools.js.map +1 -0
- package/build/tools/executionTools.d.ts +3 -0
- package/build/tools/executionTools.d.ts.map +1 -0
- package/build/tools/executionTools.js +245 -0
- package/build/tools/executionTools.js.map +1 -0
- package/build/tools/interactionTools.d.ts +3 -0
- package/build/tools/interactionTools.d.ts.map +1 -0
- package/build/tools/interactionTools.js +558 -0
- package/build/tools/interactionTools.js.map +1 -0
- package/build/tools/logTools.d.ts +3 -0
- package/build/tools/logTools.d.ts.map +1 -0
- package/build/tools/logTools.js +371 -0
- package/build/tools/logTools.js.map +1 -0
- package/build/tools/metaTools.d.ts +7 -0
- package/build/tools/metaTools.d.ts.map +1 -0
- package/build/tools/metaTools.js +205 -0
- package/build/tools/metaTools.js.map +1 -0
- package/build/tools/networkTools.d.ts +3 -0
- package/build/tools/networkTools.d.ts.map +1 -0
- package/build/tools/networkTools.js +478 -0
- package/build/tools/networkTools.js.map +1 -0
- package/build/tools/reduxTools.d.ts +3 -0
- package/build/tools/reduxTools.d.ts.map +1 -0
- package/build/tools/reduxTools.js +83 -0
- package/build/tools/reduxTools.js.map +1 -0
- package/build/tools/screenshotTools.d.ts +3 -0
- package/build/tools/screenshotTools.d.ts.map +1 -0
- package/build/tools/screenshotTools.js +606 -0
- package/build/tools/screenshotTools.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
const ASCII_PRINTABLE_MIN = 0x20;
|
|
2
|
+
const ASCII_PRINTABLE_MAX = 0x7e;
|
|
3
|
+
function isAsciiPrintable(cp) {
|
|
4
|
+
return (cp >= ASCII_PRINTABLE_MIN && cp <= ASCII_PRINTABLE_MAX) || cp === 0x09 || cp === 0x0a || cp === 0x0d;
|
|
5
|
+
}
|
|
6
|
+
function escapeCodePoint(cp) {
|
|
7
|
+
if (cp <= 0xffff)
|
|
8
|
+
return "\\u" + cp.toString(16).toUpperCase().padStart(4, "0");
|
|
9
|
+
return "\\u{" + cp.toString(16).toUpperCase() + "}";
|
|
10
|
+
}
|
|
11
|
+
function isIdentStart(ch) {
|
|
12
|
+
return /[A-Za-z_$]/.test(ch);
|
|
13
|
+
}
|
|
14
|
+
function isIdentChar(ch) {
|
|
15
|
+
return /[A-Za-z0-9_$]/.test(ch);
|
|
16
|
+
}
|
|
17
|
+
// Identifier tokens after which a following `/` should be treated as the
|
|
18
|
+
// start of a regex literal rather than a division operator.
|
|
19
|
+
const REGEX_FOLLOWING_TOKENS = new Set([
|
|
20
|
+
"return", "typeof", "in", "of", "delete", "void", "instanceof",
|
|
21
|
+
"new", "throw", "yield", "await", "case", "do", "else",
|
|
22
|
+
]);
|
|
23
|
+
/**
|
|
24
|
+
* Walk a JS source string and rewrite non-ASCII-printable code points that
|
|
25
|
+
* occur inside string literals (single quote, double quote, template literal
|
|
26
|
+
* cooked body) to \uXXXX or \u{XXXXX} escape sequences. Code in regular
|
|
27
|
+
* expression bodies, comments, identifiers, and template-literal `${...}`
|
|
28
|
+
* substitution expressions is left untouched.
|
|
29
|
+
*
|
|
30
|
+
* Returns a structured error on unbalanced quotes / unterminated literals.
|
|
31
|
+
*/
|
|
32
|
+
export function escapeNonAsciiInStringLiterals(src) {
|
|
33
|
+
let i = 0;
|
|
34
|
+
const out = [];
|
|
35
|
+
// Track previous significant token kind so we can disambiguate `/` between
|
|
36
|
+
// regex literal and division operator.
|
|
37
|
+
let prevSig = "none";
|
|
38
|
+
let prevIdent = "";
|
|
39
|
+
// Stack of brace depths for `${...}` substitution expressions currently
|
|
40
|
+
// open. When we see `${` we push 0. Each `{` inside increments the top,
|
|
41
|
+
// each `}` decrements. When `}` would take the top to -1, we instead pop
|
|
42
|
+
// and resume the surrounding template literal body.
|
|
43
|
+
const tplStack = [];
|
|
44
|
+
function emit(s) {
|
|
45
|
+
out.push(s);
|
|
46
|
+
}
|
|
47
|
+
function emitCodePoint(cp) {
|
|
48
|
+
if (isAsciiPrintable(cp)) {
|
|
49
|
+
emit(String.fromCodePoint(cp));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
emit(escapeCodePoint(cp));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Read a quoted string starting at `i` (which points at the opening quote).
|
|
56
|
+
// On success: appends to `out`, advances `i` past closing quote, returns null.
|
|
57
|
+
// On failure: returns { ok: false, reason }.
|
|
58
|
+
function readStringLiteral(quote) {
|
|
59
|
+
emit(quote);
|
|
60
|
+
i++;
|
|
61
|
+
while (i < src.length) {
|
|
62
|
+
const ch = src[i];
|
|
63
|
+
if (ch === "\\") {
|
|
64
|
+
if (i + 1 >= src.length) {
|
|
65
|
+
return { ok: false, reason: "unterminated string literal (trailing backslash)" };
|
|
66
|
+
}
|
|
67
|
+
emit(src[i]);
|
|
68
|
+
emit(src[i + 1]);
|
|
69
|
+
i += 2;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (ch === quote) {
|
|
73
|
+
emit(quote);
|
|
74
|
+
i++;
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
if (ch === "\n" || ch === "\r") {
|
|
78
|
+
return { ok: false, reason: "unterminated string literal (line break)" };
|
|
79
|
+
}
|
|
80
|
+
const cp = src.codePointAt(i);
|
|
81
|
+
emitCodePoint(cp);
|
|
82
|
+
i += cp > 0xffff ? 2 : 1;
|
|
83
|
+
}
|
|
84
|
+
return { ok: false, reason: "unterminated string literal" };
|
|
85
|
+
}
|
|
86
|
+
// Read a template-literal body. On encountering `${`, returns "expr" so
|
|
87
|
+
// caller resumes code scanning; on closing backtick returns "done".
|
|
88
|
+
function readTemplateBody() {
|
|
89
|
+
while (i < src.length) {
|
|
90
|
+
const ch = src[i];
|
|
91
|
+
if (ch === "\\") {
|
|
92
|
+
if (i + 1 >= src.length) {
|
|
93
|
+
return { ok: false, reason: "unterminated template literal (trailing backslash)" };
|
|
94
|
+
}
|
|
95
|
+
emit(src[i]);
|
|
96
|
+
emit(src[i + 1]);
|
|
97
|
+
i += 2;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (ch === "`") {
|
|
101
|
+
emit("`");
|
|
102
|
+
i++;
|
|
103
|
+
return "done";
|
|
104
|
+
}
|
|
105
|
+
if (ch === "$" && src[i + 1] === "{") {
|
|
106
|
+
emit("${");
|
|
107
|
+
i += 2;
|
|
108
|
+
tplStack.push(0);
|
|
109
|
+
return "expr";
|
|
110
|
+
}
|
|
111
|
+
const cp = src.codePointAt(i);
|
|
112
|
+
emitCodePoint(cp);
|
|
113
|
+
i += cp > 0xffff ? 2 : 1;
|
|
114
|
+
}
|
|
115
|
+
return { ok: false, reason: "unterminated template literal" };
|
|
116
|
+
}
|
|
117
|
+
function readLineComment() {
|
|
118
|
+
while (i < src.length && src[i] !== "\n") {
|
|
119
|
+
emit(src[i]);
|
|
120
|
+
i++;
|
|
121
|
+
}
|
|
122
|
+
if (i < src.length) {
|
|
123
|
+
emit(src[i]);
|
|
124
|
+
i++;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function readBlockComment() {
|
|
128
|
+
emit("/*");
|
|
129
|
+
i += 2;
|
|
130
|
+
while (i < src.length) {
|
|
131
|
+
if (src[i] === "*" && src[i + 1] === "/") {
|
|
132
|
+
emit("*/");
|
|
133
|
+
i += 2;
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
emit(src[i]);
|
|
137
|
+
i++;
|
|
138
|
+
}
|
|
139
|
+
return { ok: false, reason: "unterminated block comment" };
|
|
140
|
+
}
|
|
141
|
+
function readRegexLiteral() {
|
|
142
|
+
emit("/");
|
|
143
|
+
i++;
|
|
144
|
+
let inClass = false;
|
|
145
|
+
while (i < src.length) {
|
|
146
|
+
const ch = src[i];
|
|
147
|
+
if (ch === "\\") {
|
|
148
|
+
if (i + 1 >= src.length) {
|
|
149
|
+
return { ok: false, reason: "unterminated regex literal" };
|
|
150
|
+
}
|
|
151
|
+
emit(src[i]);
|
|
152
|
+
emit(src[i + 1]);
|
|
153
|
+
i += 2;
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if (ch === "[")
|
|
157
|
+
inClass = true;
|
|
158
|
+
else if (ch === "]")
|
|
159
|
+
inClass = false;
|
|
160
|
+
if (ch === "/" && !inClass) {
|
|
161
|
+
emit("/");
|
|
162
|
+
i++;
|
|
163
|
+
while (i < src.length && /[a-zA-Z]/.test(src[i])) {
|
|
164
|
+
emit(src[i]);
|
|
165
|
+
i++;
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
emit(src[i]);
|
|
170
|
+
i++;
|
|
171
|
+
}
|
|
172
|
+
return { ok: false, reason: "unterminated regex literal" };
|
|
173
|
+
}
|
|
174
|
+
// Helper: after we've just emitted a template-literal token (opened with `,
|
|
175
|
+
// or resumed from }), drive readTemplateBody and handle nested ${ ... }
|
|
176
|
+
// expressions iteratively. Returns null on success (template fully closed
|
|
177
|
+
// or we re-entered code via ${), or an error result.
|
|
178
|
+
function enterTemplate() {
|
|
179
|
+
const r = readTemplateBody();
|
|
180
|
+
if (typeof r === "object")
|
|
181
|
+
return r; // error
|
|
182
|
+
// r is "expr" → tplStack pushed, caller loop will scan code until matching }
|
|
183
|
+
// r is "done" → template literal closed
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
while (i < src.length) {
|
|
187
|
+
const ch = src[i];
|
|
188
|
+
// Whitespace
|
|
189
|
+
if (ch === " " || ch === "\t" || ch === "\n" || ch === "\r") {
|
|
190
|
+
emit(ch);
|
|
191
|
+
i++;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
// Comments
|
|
195
|
+
if (ch === "/" && src[i + 1] === "/") {
|
|
196
|
+
readLineComment();
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (ch === "/" && src[i + 1] === "*") {
|
|
200
|
+
const e = readBlockComment();
|
|
201
|
+
if (e)
|
|
202
|
+
return e;
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
// String literals
|
|
206
|
+
if (ch === "'" || ch === '"') {
|
|
207
|
+
const e = readStringLiteral(ch);
|
|
208
|
+
if (e)
|
|
209
|
+
return e;
|
|
210
|
+
prevSig = "string";
|
|
211
|
+
prevIdent = "";
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
// Template literal start
|
|
215
|
+
if (ch === "`") {
|
|
216
|
+
emit("`");
|
|
217
|
+
i++;
|
|
218
|
+
const e = enterTemplate();
|
|
219
|
+
if (e)
|
|
220
|
+
return e;
|
|
221
|
+
// If tplStack pushed, we are now inside ${...} (code context).
|
|
222
|
+
// Otherwise the template closed; treat as string-like token.
|
|
223
|
+
if (tplStack.length === 0) {
|
|
224
|
+
prevSig = "string";
|
|
225
|
+
prevIdent = "";
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
// Reset prevSig at start of expression context.
|
|
229
|
+
prevSig = "op";
|
|
230
|
+
prevIdent = "";
|
|
231
|
+
}
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
// Inside a ${...} expression — watch for the matching closing `}`.
|
|
235
|
+
if (tplStack.length > 0) {
|
|
236
|
+
if (ch === "{") {
|
|
237
|
+
tplStack[tplStack.length - 1]++;
|
|
238
|
+
emit("{");
|
|
239
|
+
i++;
|
|
240
|
+
prevSig = "op";
|
|
241
|
+
prevIdent = "";
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
if (ch === "}") {
|
|
245
|
+
if (tplStack[tplStack.length - 1] === 0) {
|
|
246
|
+
// End of substitution expression — resume template body.
|
|
247
|
+
tplStack.pop();
|
|
248
|
+
emit("}");
|
|
249
|
+
i++;
|
|
250
|
+
const e = enterTemplate();
|
|
251
|
+
if (e)
|
|
252
|
+
return e;
|
|
253
|
+
if (tplStack.length === 0) {
|
|
254
|
+
prevSig = "string";
|
|
255
|
+
prevIdent = "";
|
|
256
|
+
}
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
tplStack[tplStack.length - 1]--;
|
|
260
|
+
emit("}");
|
|
261
|
+
i++;
|
|
262
|
+
prevSig = "brace-close";
|
|
263
|
+
prevIdent = "";
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// Regex literal vs division
|
|
268
|
+
if (ch === "/") {
|
|
269
|
+
const isRegex = prevSig === "op" ||
|
|
270
|
+
prevSig === "none" ||
|
|
271
|
+
(prevSig === "ident" && REGEX_FOLLOWING_TOKENS.has(prevIdent));
|
|
272
|
+
if (isRegex) {
|
|
273
|
+
const e = readRegexLiteral();
|
|
274
|
+
if (e)
|
|
275
|
+
return e;
|
|
276
|
+
prevSig = "regex";
|
|
277
|
+
prevIdent = "";
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
emit("/");
|
|
281
|
+
i++;
|
|
282
|
+
prevSig = "op";
|
|
283
|
+
prevIdent = "";
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
// Identifier
|
|
287
|
+
if (isIdentStart(ch)) {
|
|
288
|
+
let j = i;
|
|
289
|
+
while (j < src.length && isIdentChar(src[j]))
|
|
290
|
+
j++;
|
|
291
|
+
const ident = src.slice(i, j);
|
|
292
|
+
emit(ident);
|
|
293
|
+
i = j;
|
|
294
|
+
prevSig = "ident";
|
|
295
|
+
prevIdent = ident;
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
// Number
|
|
299
|
+
if (/[0-9]/.test(ch)) {
|
|
300
|
+
while (i < src.length && /[0-9._a-fA-FxXeE]/.test(src[i])) {
|
|
301
|
+
emit(src[i]);
|
|
302
|
+
i++;
|
|
303
|
+
}
|
|
304
|
+
prevSig = "number";
|
|
305
|
+
prevIdent = "";
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
// Punctuation and operators
|
|
309
|
+
if (ch === "(" || ch === "[" || ch === "{" || ch === "," || ch === ";" ||
|
|
310
|
+
ch === ":" || ch === "?" || ch === "=" || ch === "!" || ch === "<" ||
|
|
311
|
+
ch === ">" || ch === "+" || ch === "-" || ch === "*" || ch === "%" ||
|
|
312
|
+
ch === "&" || ch === "|" || ch === "^" || ch === "~" || ch === ".") {
|
|
313
|
+
emit(ch);
|
|
314
|
+
i++;
|
|
315
|
+
prevSig = "op";
|
|
316
|
+
prevIdent = "";
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
if (ch === ")") {
|
|
320
|
+
emit(ch);
|
|
321
|
+
i++;
|
|
322
|
+
prevSig = "paren-close";
|
|
323
|
+
prevIdent = "";
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
if (ch === "]") {
|
|
327
|
+
emit(ch);
|
|
328
|
+
i++;
|
|
329
|
+
prevSig = "bracket-close";
|
|
330
|
+
prevIdent = "";
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
if (ch === "}") {
|
|
334
|
+
emit(ch);
|
|
335
|
+
i++;
|
|
336
|
+
prevSig = "brace-close";
|
|
337
|
+
prevIdent = "";
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
// Anything else (non-ASCII in code position) — emit verbatim.
|
|
341
|
+
const cp = src.codePointAt(i);
|
|
342
|
+
emit(String.fromCodePoint(cp));
|
|
343
|
+
i += cp > 0xffff ? 2 : 1;
|
|
344
|
+
prevSig = "ident";
|
|
345
|
+
prevIdent = "";
|
|
346
|
+
}
|
|
347
|
+
if (tplStack.length > 0) {
|
|
348
|
+
return { ok: false, reason: "unterminated template literal" };
|
|
349
|
+
}
|
|
350
|
+
return { ok: true, expression: out.join("") };
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=escapeNonAscii.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escapeNonAscii.js","sourceRoot":"","sources":["../../src/core/escapeNonAscii.ts"],"names":[],"mappings":"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"}
|
package/build/core/executor.d.ts
CHANGED
|
@@ -1,207 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* Check if a string contains emoji or other problematic Unicode characters
|
|
9
|
-
* Hermes has issues with certain UTF-16 surrogate pairs (like emoji)
|
|
10
|
-
*/
|
|
11
|
-
export declare function containsProblematicUnicode(str: string): boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Strip leading comments from an expression
|
|
14
|
-
* Users often start with // comments which break the (return expr) wrapping
|
|
15
|
-
*/
|
|
16
|
-
export declare function stripLeadingComments(expression: string): string;
|
|
17
|
-
/**
|
|
18
|
-
* Validate and preprocess an expression before execution
|
|
19
|
-
* Returns cleaned expression or error with helpful message
|
|
20
|
-
*/
|
|
21
|
-
export declare function validateAndPreprocessExpression(expression: string): ExpressionValidation;
|
|
22
|
-
export declare function executeInApp(expression: string, awaitPromise?: boolean, options?: ExecuteOptions, device?: string): Promise<ExecutionResult>;
|
|
23
|
-
export declare function listDebugGlobals(device?: string): Promise<ExecutionResult>;
|
|
24
|
-
export declare function inspectGlobal(objectName: string, device?: string): Promise<ExecutionResult>;
|
|
25
|
-
export declare function reloadApp(device?: string): Promise<ExecutionResult>;
|
|
26
|
-
interface ScreenElement {
|
|
27
|
-
component: string;
|
|
28
|
-
path: string;
|
|
29
|
-
depth: number;
|
|
30
|
-
frame?: {
|
|
31
|
-
x: number;
|
|
32
|
-
y: number;
|
|
33
|
-
width: number;
|
|
34
|
-
height: number;
|
|
35
|
-
};
|
|
36
|
-
layout?: Record<string, unknown>;
|
|
37
|
-
text?: string;
|
|
38
|
-
identifiers?: Record<string, string>;
|
|
39
|
-
parentIndex?: number;
|
|
40
|
-
originalIndex?: number;
|
|
41
|
-
}
|
|
42
|
-
export declare function formatScreenLayoutTree(elements: ScreenElement[], extended?: boolean, offScreen?: {
|
|
43
|
-
offScreenBelow?: string[];
|
|
44
|
-
offScreenAbove?: string[];
|
|
45
|
-
}): string;
|
|
46
|
-
/**
|
|
47
|
-
* Get the React component tree from the running app.
|
|
48
|
-
* This traverses the fiber tree to extract component hierarchy with names.
|
|
49
|
-
*/
|
|
50
|
-
export declare function getComponentTree(options?: {
|
|
51
|
-
maxDepth?: number;
|
|
52
|
-
includeProps?: boolean;
|
|
53
|
-
includeStyles?: boolean;
|
|
54
|
-
hideInternals?: boolean;
|
|
55
|
-
format?: "json" | "tonl";
|
|
56
|
-
structureOnly?: boolean;
|
|
57
|
-
focusedOnly?: boolean;
|
|
58
|
-
device?: string;
|
|
59
|
-
}): Promise<ExecutionResult>;
|
|
60
|
-
/**
|
|
61
|
-
* Get layout data for visible components on the current screen.
|
|
62
|
-
* Uses measureInWindow to get actual screen positions and filters
|
|
63
|
-
* to only components within the viewport.
|
|
64
|
-
*
|
|
65
|
-
* Two-step approach (same as inspectAtPoint):
|
|
66
|
-
* Step 1: Walk fiber tree, dispatch measureInWindow on host components
|
|
67
|
-
* Step 2: After 300ms, read measurements, filter by viewport, build results
|
|
68
|
-
*/
|
|
69
|
-
export declare function getScreenLayout(options?: {
|
|
70
|
-
extended?: boolean;
|
|
71
|
-
summary?: boolean;
|
|
72
|
-
device?: string;
|
|
73
|
-
raw?: boolean;
|
|
74
|
-
}): Promise<ExecutionResult & {
|
|
75
|
-
parsedElements?: ScreenElement[];
|
|
76
|
-
viewport?: {
|
|
77
|
-
width: number;
|
|
78
|
-
height: number;
|
|
79
|
-
};
|
|
80
|
-
offScreenBelow?: string[];
|
|
81
|
-
offScreenAbove?: string[];
|
|
82
|
-
}>;
|
|
83
|
-
interface PressableElement {
|
|
84
|
-
component: string;
|
|
85
|
-
path: string;
|
|
86
|
-
center: {
|
|
87
|
-
x: number;
|
|
88
|
-
y: number;
|
|
89
|
-
};
|
|
90
|
-
frame: {
|
|
91
|
-
x: number;
|
|
92
|
-
y: number;
|
|
93
|
-
width: number;
|
|
94
|
-
height: number;
|
|
95
|
-
};
|
|
96
|
-
text: string;
|
|
97
|
-
testID: string | null;
|
|
98
|
-
accessibilityLabel: string | null;
|
|
99
|
-
hasLabel: boolean;
|
|
100
|
-
isInput: boolean;
|
|
101
|
-
isWrapper?: boolean;
|
|
102
|
-
intent?: string;
|
|
103
|
-
nearbyText?: string;
|
|
104
|
-
}
|
|
105
|
-
export declare function getPressableElements(options?: {
|
|
106
|
-
device?: string;
|
|
107
|
-
platform?: "ios" | "android";
|
|
108
|
-
udid?: string;
|
|
109
|
-
}): Promise<ExecutionResult & {
|
|
110
|
-
parsedElements?: PressableElement[];
|
|
111
|
-
}>;
|
|
112
|
-
/**
|
|
113
|
-
* Enrich screen layout data with tap-ready pixel coordinates for bundling with screenshots.
|
|
114
|
-
* Converts points/dp frame coordinates to pixels using the device pixel ratio,
|
|
115
|
-
* computes center-point tapX/tapY for each element.
|
|
116
|
-
*
|
|
117
|
-
* @param pixelRatio - device pixel ratio (e.g., 3 for @3x iPhone)
|
|
118
|
-
* @param screenshotScaleFactor - if the screenshot image was scaled down, this factor adjusts coordinates
|
|
119
|
-
* @param device - optional target device name
|
|
120
|
-
* @returns formatted tree string with pixel coordinates, or null if unavailable
|
|
121
|
-
*/
|
|
122
|
-
export declare function enrichScreenshotWithLayout(pixelRatio: number, screenshotScaleFactor: number, device?: string, safeAreaTopPoints?: number): Promise<string | null>;
|
|
123
|
-
/**
|
|
124
|
-
* Inspect a specific component by name, returning its props, state, and layout.
|
|
125
|
-
*/
|
|
126
|
-
export declare function inspectComponent(componentName: string, options?: {
|
|
127
|
-
index?: number;
|
|
128
|
-
includeState?: boolean;
|
|
129
|
-
includeChildren?: boolean;
|
|
130
|
-
childrenDepth?: number;
|
|
131
|
-
shortPath?: boolean;
|
|
132
|
-
simplifyHooks?: boolean;
|
|
133
|
-
device?: string;
|
|
134
|
-
}): Promise<ExecutionResult>;
|
|
135
|
-
/**
|
|
136
|
-
* Find all components matching a name pattern and return summary info.
|
|
137
|
-
*/
|
|
138
|
-
export declare function findComponents(pattern: string, options?: {
|
|
139
|
-
maxResults?: number;
|
|
140
|
-
includeLayout?: boolean;
|
|
141
|
-
shortPath?: boolean;
|
|
142
|
-
summary?: boolean;
|
|
143
|
-
format?: "json" | "tonl";
|
|
144
|
-
device?: string;
|
|
145
|
-
}): Promise<ExecutionResult>;
|
|
146
|
-
/**
|
|
147
|
-
* Find a pressable element in the React fiber tree and invoke its onPress handler.
|
|
148
|
-
* Matches by text content, testID, or component name.
|
|
149
|
-
*/
|
|
150
|
-
export declare function pressElement(options: {
|
|
151
|
-
text?: string;
|
|
152
|
-
testID?: string;
|
|
153
|
-
component?: string;
|
|
154
|
-
index?: number;
|
|
155
|
-
maxTraversalDepth?: number;
|
|
156
|
-
device?: string;
|
|
157
|
-
}): Promise<ExecutionResult>;
|
|
158
|
-
/**
|
|
159
|
-
* Toggle the Element Inspector via DevSettings native module.
|
|
160
|
-
* This enables the inspector overlay programmatically.
|
|
161
|
-
*/
|
|
162
|
-
export declare function toggleElementInspector(device?: string): Promise<ExecutionResult>;
|
|
163
|
-
/**
|
|
164
|
-
* Check if the Element Inspector overlay is currently active.
|
|
165
|
-
*/
|
|
166
|
-
export declare function isInspectorActive(device?: string): Promise<boolean>;
|
|
167
|
-
/**
|
|
168
|
-
* Get the currently selected element from the Element Inspector overlay.
|
|
169
|
-
* This reads the InspectorPanel component's props to get the hierarchy, frame, and style.
|
|
170
|
-
* Requires the Element Inspector to be enabled and an element to be selected.
|
|
171
|
-
*/
|
|
172
|
-
export declare function getInspectorSelection(device?: string): Promise<ExecutionResult>;
|
|
173
|
-
/**
|
|
174
|
-
* Resolve the component at (x, y) using RN's built-in Element Inspector.
|
|
175
|
-
*
|
|
176
|
-
* Strategy: programmatically toggle the inspector overlay on (if needed),
|
|
177
|
-
* then call InspectorOverlay.props.onTouchPoint(x, y) directly — bypassing
|
|
178
|
-
* the broken adb-tap → PanResponder route on Bridgeless / new-arch RN.
|
|
179
|
-
* This populates InspectorPanel with RN's full curated hierarchy, the
|
|
180
|
-
* inspected element's frame, and per-component style data (margin, padding,
|
|
181
|
-
* border, layout) — exactly what the on-device overlay shows.
|
|
182
|
-
*
|
|
183
|
-
* Returns the rich hierarchy with style merged from each entry's
|
|
184
|
-
* getInspectorData(...).props.style, plus the inspected frame and style.
|
|
185
|
-
*
|
|
186
|
-
* Auto-hides the overlay after capture so subsequent screenshots stay clean.
|
|
187
|
-
*/
|
|
188
|
-
export declare function getInspectorSelectionAtPoint(x: number, y: number, device?: string): Promise<ExecutionResult>;
|
|
189
|
-
/**
|
|
190
|
-
* Inspect the React component at a specific (x, y) coordinate.
|
|
191
|
-
*
|
|
192
|
-
* Works on both Paper and Fabric (New Architecture). Uses a two-step approach
|
|
193
|
-
* because measureInWindow callbacks fire in a future native event loop tick
|
|
194
|
-
* (not microtasks), so awaitPromise cannot be used to collect them:
|
|
195
|
-
*
|
|
196
|
-
* Step 1 — dispatch: walk the fiber tree, call measureInWindow on each host
|
|
197
|
-
* component, store fiber refs and results in app globals.
|
|
198
|
-
* Step 2 — resolve (after 300ms): read the globals, hit-test against target
|
|
199
|
-
* coordinates, return the innermost matching React component.
|
|
200
|
-
*/
|
|
201
|
-
export declare function inspectAtPoint(x: number, y: number, options?: {
|
|
202
|
-
includeProps?: boolean;
|
|
203
|
-
includeFrame?: boolean;
|
|
204
|
-
device?: string;
|
|
205
|
-
}): Promise<ExecutionResult>;
|
|
206
|
-
export {};
|
|
1
|
+
export * from "./jsExecute.js";
|
|
2
|
+
export * from "./debugGlobals.js";
|
|
3
|
+
export * from "./componentTree.js";
|
|
4
|
+
export * from "./screenLayout.js";
|
|
5
|
+
export * from "./pressables.js";
|
|
6
|
+
export * from "./componentSearch.js";
|
|
7
|
+
export * from "./inspector.js";
|
|
207
8
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|