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.
Files changed (197) hide show
  1. package/README.md +73 -66
  2. package/build/__tests__/integration/auto-reconnect.test.d.ts +2 -0
  3. package/build/__tests__/integration/auto-reconnect.test.d.ts.map +1 -0
  4. package/build/__tests__/integration/auto-reconnect.test.js +118 -0
  5. package/build/__tests__/integration/auto-reconnect.test.js.map +1 -0
  6. package/build/__tests__/integration/per-call-timeout.test.d.ts +2 -0
  7. package/build/__tests__/integration/per-call-timeout.test.d.ts.map +1 -0
  8. package/build/__tests__/integration/per-call-timeout.test.js +103 -0
  9. package/build/__tests__/integration/per-call-timeout.test.js.map +1 -0
  10. package/build/__tests__/setup.js +3 -5
  11. package/build/__tests__/setup.js.map +1 -1
  12. package/build/__tests__/unit/debugGlobals.test.d.ts +2 -0
  13. package/build/__tests__/unit/debugGlobals.test.d.ts.map +1 -0
  14. package/build/__tests__/unit/debugGlobals.test.js +14 -0
  15. package/build/__tests__/unit/debugGlobals.test.js.map +1 -0
  16. package/build/__tests__/unit/escapeNonAscii.test.d.ts +2 -0
  17. package/build/__tests__/unit/escapeNonAscii.test.d.ts.map +1 -0
  18. package/build/__tests__/unit/escapeNonAscii.test.js +76 -0
  19. package/build/__tests__/unit/escapeNonAscii.test.js.map +1 -0
  20. package/build/__tests__/unit/executor.test.js +59 -7
  21. package/build/__tests__/unit/executor.test.js.map +1 -1
  22. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts +2 -0
  23. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts.map +1 -0
  24. package/build/__tests__/unit/fastRefreshRecorder.test.js +68 -0
  25. package/build/__tests__/unit/fastRefreshRecorder.test.js.map +1 -0
  26. package/build/__tests__/unit/fastRefreshTools.test.d.ts +2 -0
  27. package/build/__tests__/unit/fastRefreshTools.test.d.ts.map +1 -0
  28. package/build/__tests__/unit/fastRefreshTools.test.js +112 -0
  29. package/build/__tests__/unit/fastRefreshTools.test.js.map +1 -0
  30. package/build/__tests__/unit/fingerprint.test.js +10 -0
  31. package/build/__tests__/unit/fingerprint.test.js.map +1 -1
  32. package/build/__tests__/unit/measureComponent.test.d.ts +2 -0
  33. package/build/__tests__/unit/measureComponent.test.d.ts.map +1 -0
  34. package/build/__tests__/unit/measureComponent.test.js +66 -0
  35. package/build/__tests__/unit/measureComponent.test.js.map +1 -0
  36. package/build/__tests__/unit/measureComponentTools.test.d.ts +2 -0
  37. package/build/__tests__/unit/measureComponentTools.test.d.ts.map +1 -0
  38. package/build/__tests__/unit/measureComponentTools.test.js +94 -0
  39. package/build/__tests__/unit/measureComponentTools.test.js.map +1 -0
  40. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts +2 -0
  41. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts.map +1 -0
  42. package/build/__tests__/unit/rnGlobalsBootstrap.test.js +29 -0
  43. package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -0
  44. package/build/__tests__/unit/timeoutClamp.test.d.ts +2 -0
  45. package/build/__tests__/unit/timeoutClamp.test.d.ts.map +1 -0
  46. package/build/__tests__/unit/timeoutClamp.test.js +17 -0
  47. package/build/__tests__/unit/timeoutClamp.test.js.map +1 -0
  48. package/build/__tests__/unit/transportClassify.test.d.ts +2 -0
  49. package/build/__tests__/unit/transportClassify.test.d.ts.map +1 -0
  50. package/build/__tests__/unit/transportClassify.test.js +60 -0
  51. package/build/__tests__/unit/transportClassify.test.js.map +1 -0
  52. package/build/core/appDetection.d.ts +7 -0
  53. package/build/core/appDetection.d.ts.map +1 -1
  54. package/build/core/appDetection.js +38 -17
  55. package/build/core/appDetection.js.map +1 -1
  56. package/build/core/bundle.d.ts +1 -1
  57. package/build/core/bundle.d.ts.map +1 -1
  58. package/build/core/bundle.js +6 -10
  59. package/build/core/bundle.js.map +1 -1
  60. package/build/core/componentSearch.d.ts +41 -0
  61. package/build/core/componentSearch.d.ts.map +1 -0
  62. package/build/core/componentSearch.js +484 -0
  63. package/build/core/componentSearch.js.map +1 -0
  64. package/build/core/componentTree.d.ts +13 -0
  65. package/build/core/componentTree.d.ts.map +1 -0
  66. package/build/core/componentTree.js +275 -0
  67. package/build/core/componentTree.js.map +1 -0
  68. package/build/core/connection.d.ts +1 -0
  69. package/build/core/connection.d.ts.map +1 -1
  70. package/build/core/connection.js +97 -88
  71. package/build/core/connection.js.map +1 -1
  72. package/build/core/debugGlobals.d.ts +6 -0
  73. package/build/core/debugGlobals.d.ts.map +1 -0
  74. package/build/core/debugGlobals.js +336 -0
  75. package/build/core/debugGlobals.js.map +1 -0
  76. package/build/core/escapeNonAscii.d.ts +18 -0
  77. package/build/core/escapeNonAscii.d.ts.map +1 -0
  78. package/build/core/escapeNonAscii.js +352 -0
  79. package/build/core/escapeNonAscii.js.map +1 -0
  80. package/build/core/executor.d.ts +7 -206
  81. package/build/core/executor.d.ts.map +1 -1
  82. package/build/core/executor.js +10 -4333
  83. package/build/core/executor.js.map +1 -1
  84. package/build/core/fastRefreshRecorder.d.ts +23 -0
  85. package/build/core/fastRefreshRecorder.d.ts.map +1 -0
  86. package/build/core/fastRefreshRecorder.js +83 -0
  87. package/build/core/fastRefreshRecorder.js.map +1 -0
  88. package/build/core/fastRefreshTools.d.ts +19 -0
  89. package/build/core/fastRefreshTools.d.ts.map +1 -0
  90. package/build/core/fastRefreshTools.js +71 -0
  91. package/build/core/fastRefreshTools.js.map +1 -0
  92. package/build/core/guides.d.ts.map +1 -1
  93. package/build/core/guides.js +2 -1
  94. package/build/core/guides.js.map +1 -1
  95. package/build/core/index.d.ts +5 -2
  96. package/build/core/index.d.ts.map +1 -1
  97. package/build/core/index.js +5 -2
  98. package/build/core/index.js.map +1 -1
  99. package/build/core/inspector.d.ts +50 -0
  100. package/build/core/inspector.d.ts.map +1 -0
  101. package/build/core/inspector.js +604 -0
  102. package/build/core/inspector.js.map +1 -0
  103. package/build/core/jsExecute.d.ts +61 -0
  104. package/build/core/jsExecute.d.ts.map +1 -0
  105. package/build/core/jsExecute.js +679 -0
  106. package/build/core/jsExecute.js.map +1 -0
  107. package/build/core/measureComponent.d.ts +19 -0
  108. package/build/core/measureComponent.d.ts.map +1 -0
  109. package/build/core/measureComponent.js +94 -0
  110. package/build/core/measureComponent.js.map +1 -0
  111. package/build/core/measureComponentTools.d.ts +6 -0
  112. package/build/core/measureComponentTools.d.ts.map +1 -0
  113. package/build/core/measureComponentTools.js +43 -0
  114. package/build/core/measureComponentTools.js.map +1 -0
  115. package/build/core/pressables.d.ts +44 -0
  116. package/build/core/pressables.d.ts.map +1 -0
  117. package/build/core/pressables.js +1480 -0
  118. package/build/core/pressables.js.map +1 -0
  119. package/build/core/register.d.ts +8 -0
  120. package/build/core/register.d.ts.map +1 -0
  121. package/build/core/register.js +216 -0
  122. package/build/core/register.js.map +1 -0
  123. package/build/core/rnGlobalsBootstrap.d.ts +16 -0
  124. package/build/core/rnGlobalsBootstrap.d.ts.map +1 -0
  125. package/build/core/rnGlobalsBootstrap.js +101 -0
  126. package/build/core/rnGlobalsBootstrap.js.map +1 -0
  127. package/build/core/screenLayout.d.ts +53 -0
  128. package/build/core/screenLayout.d.ts.map +1 -0
  129. package/build/core/screenLayout.js +828 -0
  130. package/build/core/screenLayout.js.map +1 -0
  131. package/build/core/state.d.ts +2 -2
  132. package/build/core/state.d.ts.map +1 -1
  133. package/build/core/state.js +10 -5
  134. package/build/core/state.js.map +1 -1
  135. package/build/core/telemetry.d.ts +23 -0
  136. package/build/core/telemetry.d.ts.map +1 -1
  137. package/build/core/telemetry.js +67 -0
  138. package/build/core/telemetry.js.map +1 -1
  139. package/build/core/toolHelpers.d.ts +24 -0
  140. package/build/core/toolHelpers.d.ts.map +1 -0
  141. package/build/core/toolHelpers.js +118 -0
  142. package/build/core/toolHelpers.js.map +1 -0
  143. package/build/core/types.d.ts +18 -6
  144. package/build/core/types.d.ts.map +1 -1
  145. package/build/index.d.ts +2 -4
  146. package/build/index.d.ts.map +1 -1
  147. package/build/index.js +37 -4440
  148. package/build/index.js.map +1 -1
  149. package/build/tools/accountTools.d.ts +2 -0
  150. package/build/tools/accountTools.d.ts.map +1 -1
  151. package/build/tools/accountTools.js +5 -0
  152. package/build/tools/accountTools.js.map +1 -1
  153. package/build/tools/bundleTools.d.ts +3 -0
  154. package/build/tools/bundleTools.d.ts.map +1 -0
  155. package/build/tools/bundleTools.js +368 -0
  156. package/build/tools/bundleTools.js.map +1 -0
  157. package/build/tools/componentTools.d.ts +3 -0
  158. package/build/tools/componentTools.d.ts.map +1 -0
  159. package/build/tools/componentTools.js +704 -0
  160. package/build/tools/componentTools.js.map +1 -0
  161. package/build/tools/connectionTools.d.ts +3 -0
  162. package/build/tools/connectionTools.d.ts.map +1 -0
  163. package/build/tools/connectionTools.js +564 -0
  164. package/build/tools/connectionTools.js.map +1 -0
  165. package/build/tools/deviceTools.d.ts +3 -0
  166. package/build/tools/deviceTools.d.ts.map +1 -0
  167. package/build/tools/deviceTools.js +296 -0
  168. package/build/tools/deviceTools.js.map +1 -0
  169. package/build/tools/executionTools.d.ts +3 -0
  170. package/build/tools/executionTools.d.ts.map +1 -0
  171. package/build/tools/executionTools.js +245 -0
  172. package/build/tools/executionTools.js.map +1 -0
  173. package/build/tools/interactionTools.d.ts +3 -0
  174. package/build/tools/interactionTools.d.ts.map +1 -0
  175. package/build/tools/interactionTools.js +558 -0
  176. package/build/tools/interactionTools.js.map +1 -0
  177. package/build/tools/logTools.d.ts +3 -0
  178. package/build/tools/logTools.d.ts.map +1 -0
  179. package/build/tools/logTools.js +371 -0
  180. package/build/tools/logTools.js.map +1 -0
  181. package/build/tools/metaTools.d.ts +7 -0
  182. package/build/tools/metaTools.d.ts.map +1 -0
  183. package/build/tools/metaTools.js +205 -0
  184. package/build/tools/metaTools.js.map +1 -0
  185. package/build/tools/networkTools.d.ts +3 -0
  186. package/build/tools/networkTools.d.ts.map +1 -0
  187. package/build/tools/networkTools.js +478 -0
  188. package/build/tools/networkTools.js.map +1 -0
  189. package/build/tools/reduxTools.d.ts +3 -0
  190. package/build/tools/reduxTools.d.ts.map +1 -0
  191. package/build/tools/reduxTools.js +83 -0
  192. package/build/tools/reduxTools.js.map +1 -0
  193. package/build/tools/screenshotTools.d.ts +3 -0
  194. package/build/tools/screenshotTools.d.ts.map +1 -0
  195. package/build/tools/screenshotTools.js +606 -0
  196. package/build/tools/screenshotTools.js.map +1 -0
  197. 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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"}
@@ -1,207 +1,8 @@
1
- import { ExecutionResult, ExecuteOptions } from "./types.js";
2
- export interface ExpressionValidation {
3
- valid: boolean;
4
- expression: string;
5
- error?: string;
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":"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"}
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"}