react-native-grab 0.0.4 → 0.0.6

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 (183) hide show
  1. package/README.md +23 -21
  2. package/dist/cjs/metro/withReactNativeGrab.js +0 -48
  3. package/dist/cjs/metro/withReactNativeGrab.js.map +1 -1
  4. package/dist/cjs/react-native/containers.js +41 -0
  5. package/dist/cjs/react-native/containers.js.map +1 -0
  6. package/dist/cjs/react-native/copy.js +27 -0
  7. package/dist/cjs/react-native/copy.js.map +1 -0
  8. package/dist/cjs/react-native/description.js +160 -0
  9. package/dist/cjs/react-native/description.js.map +1 -0
  10. package/dist/cjs/react-native/dev-menu.js +34 -0
  11. package/dist/cjs/react-native/dev-menu.js.map +1 -0
  12. package/dist/cjs/react-native/fabric.js +11 -0
  13. package/dist/cjs/react-native/fabric.js.map +1 -0
  14. package/dist/cjs/react-native/full-screen-overlay.js +24 -0
  15. package/dist/cjs/react-native/full-screen-overlay.js.map +1 -0
  16. package/dist/cjs/react-native/get-rendered-by.js +169 -0
  17. package/dist/cjs/react-native/get-rendered-by.js.map +1 -0
  18. package/dist/cjs/react-native/grab-overlay.js +180 -0
  19. package/dist/cjs/react-native/grab-overlay.js.map +1 -0
  20. package/dist/cjs/react-native/grab-root.js +21 -0
  21. package/dist/cjs/react-native/grab-root.js.map +1 -0
  22. package/dist/cjs/react-native/grab-root.web.js +9 -0
  23. package/dist/cjs/react-native/grab-root.web.js.map +1 -0
  24. package/dist/cjs/react-native/grab-screen.js +35 -0
  25. package/dist/cjs/react-native/grab-screen.js.map +1 -0
  26. package/dist/cjs/react-native/grab-screen.web.js +9 -0
  27. package/dist/cjs/react-native/grab-screen.web.js.map +1 -0
  28. package/dist/cjs/react-native/index.js +7 -535
  29. package/dist/cjs/react-native/index.js.map +1 -1
  30. package/dist/cjs/react-native/measure.js +23 -0
  31. package/dist/cjs/react-native/measure.js.map +1 -0
  32. package/dist/cjs/react-native/utils.js +13 -0
  33. package/dist/cjs/react-native/utils.js.map +1 -0
  34. package/dist/esm/metro/withReactNativeGrab.js +0 -48
  35. package/dist/esm/metro/withReactNativeGrab.js.map +1 -1
  36. package/dist/esm/react-native/containers.js +34 -0
  37. package/dist/esm/react-native/containers.js.map +1 -0
  38. package/dist/esm/react-native/copy.js +23 -0
  39. package/dist/esm/react-native/copy.js.map +1 -0
  40. package/dist/esm/react-native/description.js +156 -0
  41. package/dist/esm/react-native/description.js.map +1 -0
  42. package/dist/esm/react-native/dev-menu.js +30 -0
  43. package/dist/esm/react-native/dev-menu.js.map +1 -0
  44. package/dist/esm/react-native/fabric.js +7 -0
  45. package/dist/esm/react-native/fabric.js.map +1 -0
  46. package/dist/esm/react-native/full-screen-overlay.js +20 -0
  47. package/dist/esm/react-native/full-screen-overlay.js.map +1 -0
  48. package/dist/esm/react-native/get-rendered-by.js +162 -0
  49. package/dist/esm/react-native/get-rendered-by.js.map +1 -0
  50. package/dist/esm/react-native/grab-overlay.js +176 -0
  51. package/dist/esm/react-native/grab-overlay.js.map +1 -0
  52. package/dist/esm/react-native/grab-root.js +17 -0
  53. package/dist/esm/react-native/grab-root.js.map +1 -0
  54. package/dist/esm/react-native/grab-root.web.js +5 -0
  55. package/dist/esm/react-native/grab-root.web.js.map +1 -0
  56. package/dist/esm/react-native/grab-screen.js +31 -0
  57. package/dist/esm/react-native/grab-screen.js.map +1 -0
  58. package/dist/esm/react-native/grab-screen.web.js +5 -0
  59. package/dist/esm/react-native/grab-screen.web.js.map +1 -0
  60. package/dist/esm/react-native/index.js +3 -533
  61. package/dist/esm/react-native/index.js.map +1 -1
  62. package/dist/esm/react-native/measure.js +18 -0
  63. package/dist/esm/react-native/measure.js.map +1 -0
  64. package/dist/esm/react-native/utils.js +9 -0
  65. package/dist/esm/react-native/utils.js.map +1 -0
  66. package/dist/types/metro/withReactNativeGrab.d.ts.map +1 -1
  67. package/dist/types/react-native/containers.d.ts +7 -0
  68. package/dist/types/react-native/containers.d.ts.map +1 -0
  69. package/dist/types/react-native/copy.d.ts +7 -0
  70. package/dist/types/react-native/copy.d.ts.map +1 -0
  71. package/dist/types/react-native/description.d.ts +3 -0
  72. package/dist/types/react-native/description.d.ts.map +1 -0
  73. package/dist/types/react-native/dev-menu.d.ts +2 -0
  74. package/dist/types/react-native/dev-menu.d.ts.map +1 -0
  75. package/dist/types/react-native/fabric.d.ts +12 -0
  76. package/dist/types/react-native/fabric.d.ts.map +1 -0
  77. package/dist/types/react-native/full-screen-overlay.d.ts +6 -0
  78. package/dist/types/react-native/full-screen-overlay.d.ts.map +1 -0
  79. package/dist/types/react-native/get-rendered-by.d.ts +10 -0
  80. package/dist/types/react-native/get-rendered-by.d.ts.map +1 -0
  81. package/dist/types/react-native/grab-overlay.d.ts +2 -0
  82. package/dist/types/react-native/grab-overlay.d.ts.map +1 -0
  83. package/dist/types/react-native/grab-root.d.ts +4 -0
  84. package/dist/types/react-native/grab-root.d.ts.map +1 -0
  85. package/dist/types/react-native/grab-root.web.d.ts +2 -0
  86. package/dist/types/react-native/grab-root.web.d.ts.map +1 -0
  87. package/dist/types/react-native/grab-screen.d.ts +4 -0
  88. package/dist/types/react-native/grab-screen.d.ts.map +1 -0
  89. package/dist/types/react-native/grab-screen.web.d.ts +2 -0
  90. package/dist/types/react-native/grab-screen.web.d.ts.map +1 -0
  91. package/dist/types/react-native/index.d.ts +3 -1
  92. package/dist/types/react-native/index.d.ts.map +1 -1
  93. package/dist/types/react-native/measure.d.ts +4 -0
  94. package/dist/types/react-native/measure.d.ts.map +1 -0
  95. package/dist/types/react-native/types.d.ts +11 -43
  96. package/dist/types/react-native/types.d.ts.map +1 -1
  97. package/dist/types/react-native/utils.d.ts +2 -0
  98. package/dist/types/react-native/utils.d.ts.map +1 -0
  99. package/package.json +16 -2
  100. package/dist/cjs/react-native/__tests__/dom-traversal.test.js +0 -160
  101. package/dist/cjs/react-native/__tests__/dom-traversal.test.js.map +0 -1
  102. package/dist/cjs/react-native/__tests__/mock-dom.js +0 -65
  103. package/dist/cjs/react-native/__tests__/mock-dom.js.map +0 -1
  104. package/dist/cjs/react-native/__tests__/setup.js +0 -43
  105. package/dist/cjs/react-native/__tests__/setup.js.map +0 -1
  106. package/dist/cjs/react-native/__tests__/z-index.test.js +0 -106
  107. package/dist/cjs/react-native/__tests__/z-index.test.js.map +0 -1
  108. package/dist/cjs/react-native/copy-payload.js +0 -336
  109. package/dist/cjs/react-native/copy-payload.js.map +0 -1
  110. package/dist/cjs/react-native/dom-traversal.js +0 -254
  111. package/dist/cjs/react-native/dom-traversal.js.map +0 -1
  112. package/dist/cjs/react-native/fiber.js +0 -142
  113. package/dist/cjs/react-native/fiber.js.map +0 -1
  114. package/dist/cjs/react-native/get-dev-server.js +0 -9
  115. package/dist/cjs/react-native/get-dev-server.js.map +0 -1
  116. package/dist/cjs/react-native/index.web.js +0 -8
  117. package/dist/cjs/react-native/index.web.js.map +0 -1
  118. package/dist/cjs/react-native/pointer-events.js +0 -114
  119. package/dist/cjs/react-native/pointer-events.js.map +0 -1
  120. package/dist/cjs/react-native/selection-trigger.js +0 -19
  121. package/dist/cjs/react-native/selection-trigger.js.map +0 -1
  122. package/dist/cjs/react-native/settings.js +0 -98
  123. package/dist/cjs/react-native/settings.js.map +0 -1
  124. package/dist/cjs/react-native/symbolicate.js +0 -15
  125. package/dist/cjs/react-native/symbolicate.js.map +0 -1
  126. package/dist/cjs/react-native/z-index.js +0 -65
  127. package/dist/cjs/react-native/z-index.js.map +0 -1
  128. package/dist/esm/react-native/__tests__/dom-traversal.test.js +0 -158
  129. package/dist/esm/react-native/__tests__/dom-traversal.test.js.map +0 -1
  130. package/dist/esm/react-native/__tests__/mock-dom.js +0 -58
  131. package/dist/esm/react-native/__tests__/mock-dom.js.map +0 -1
  132. package/dist/esm/react-native/__tests__/setup.js +0 -41
  133. package/dist/esm/react-native/__tests__/setup.js.map +0 -1
  134. package/dist/esm/react-native/__tests__/z-index.test.js +0 -104
  135. package/dist/esm/react-native/__tests__/z-index.test.js.map +0 -1
  136. package/dist/esm/react-native/copy-payload.js +0 -329
  137. package/dist/esm/react-native/copy-payload.js.map +0 -1
  138. package/dist/esm/react-native/dom-traversal.js +0 -247
  139. package/dist/esm/react-native/dom-traversal.js.map +0 -1
  140. package/dist/esm/react-native/fiber.js +0 -133
  141. package/dist/esm/react-native/fiber.js.map +0 -1
  142. package/dist/esm/react-native/get-dev-server.js +0 -3
  143. package/dist/esm/react-native/get-dev-server.js.map +0 -1
  144. package/dist/esm/react-native/index.web.js +0 -4
  145. package/dist/esm/react-native/index.web.js.map +0 -1
  146. package/dist/esm/react-native/pointer-events.js +0 -106
  147. package/dist/esm/react-native/pointer-events.js.map +0 -1
  148. package/dist/esm/react-native/selection-trigger.js +0 -14
  149. package/dist/esm/react-native/selection-trigger.js.map +0 -1
  150. package/dist/esm/react-native/settings.js +0 -91
  151. package/dist/esm/react-native/settings.js.map +0 -1
  152. package/dist/esm/react-native/symbolicate.js +0 -8
  153. package/dist/esm/react-native/symbolicate.js.map +0 -1
  154. package/dist/esm/react-native/z-index.js +0 -61
  155. package/dist/esm/react-native/z-index.js.map +0 -1
  156. package/dist/types/react-native/__tests__/dom-traversal.test.d.ts +0 -2
  157. package/dist/types/react-native/__tests__/dom-traversal.test.d.ts.map +0 -1
  158. package/dist/types/react-native/__tests__/mock-dom.d.ts +0 -24
  159. package/dist/types/react-native/__tests__/mock-dom.d.ts.map +0 -1
  160. package/dist/types/react-native/__tests__/setup.d.ts +0 -2
  161. package/dist/types/react-native/__tests__/setup.d.ts.map +0 -1
  162. package/dist/types/react-native/__tests__/z-index.test.d.ts +0 -2
  163. package/dist/types/react-native/__tests__/z-index.test.d.ts.map +0 -1
  164. package/dist/types/react-native/copy-payload.d.ts +0 -22
  165. package/dist/types/react-native/copy-payload.d.ts.map +0 -1
  166. package/dist/types/react-native/dom-traversal.d.ts +0 -21
  167. package/dist/types/react-native/dom-traversal.d.ts.map +0 -1
  168. package/dist/types/react-native/fiber.d.ts +0 -22
  169. package/dist/types/react-native/fiber.d.ts.map +0 -1
  170. package/dist/types/react-native/get-dev-server.d.ts +0 -3
  171. package/dist/types/react-native/get-dev-server.d.ts.map +0 -1
  172. package/dist/types/react-native/index.web.d.ts +0 -2
  173. package/dist/types/react-native/index.web.d.ts.map +0 -1
  174. package/dist/types/react-native/pointer-events.d.ts +0 -13
  175. package/dist/types/react-native/pointer-events.d.ts.map +0 -1
  176. package/dist/types/react-native/selection-trigger.d.ts +0 -3
  177. package/dist/types/react-native/selection-trigger.d.ts.map +0 -1
  178. package/dist/types/react-native/settings.d.ts +0 -8
  179. package/dist/types/react-native/settings.d.ts.map +0 -1
  180. package/dist/types/react-native/symbolicate.d.ts +0 -3
  181. package/dist/types/react-native/symbolicate.d.ts.map +0 -1
  182. package/dist/types/react-native/z-index.d.ts +0 -3
  183. package/dist/types/react-native/z-index.d.ts.map +0 -1
@@ -1,336 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildInspectorCopyPayload = exports.buildInspectorContextPayload = exports.buildElementPreview = exports.normalizeInspectorPath = void 0;
4
- const fiber_1 = require("./fiber");
5
- const symbolicate_1 = require("./symbolicate");
6
- const MAX_CLIPBOARD_LEN = 1200;
7
- const MAX_OWNER_DEPTH = 30;
8
- const MAX_SYMBOLICATION_TASKS = 24;
9
- const MAX_FIELD_LEN = 60;
10
- const REACT_NATIVE_PRIMITIVE_NAMES = new Set([
11
- "Text",
12
- "View",
13
- "Image",
14
- "TextInput",
15
- "ScrollView",
16
- "Switch",
17
- "Modal",
18
- "SafeAreaView",
19
- "Pressable",
20
- "TouchableOpacity",
21
- "TouchableHighlight",
22
- "TouchableWithoutFeedback",
23
- ]);
24
- const truncate = (value, max) => {
25
- if (value.length <= max)
26
- return value;
27
- return `${value.slice(0, Math.max(0, max - 3))}...`;
28
- };
29
- const sanitizeLine = (value, max = MAX_FIELD_LEN) => {
30
- if (value == null)
31
- return "";
32
- const raw = String(value).replace(/\s+/g, " ").trim();
33
- if (!raw)
34
- return "";
35
- return truncate(raw, max);
36
- };
37
- const escapeAttribute = (value) => {
38
- return String(value)
39
- .replace(/&/g, "&amp;")
40
- .replace(/"/g, "&quot;")
41
- .replace(/</g, "&lt;")
42
- .replace(/>/g, "&gt;");
43
- };
44
- const isRecord = (value) => {
45
- return typeof value === "object" && value !== null;
46
- };
47
- const asErrorWithStack = (debugStack) => {
48
- if (debugStack instanceof Error)
49
- return debugStack;
50
- const stackString = typeof debugStack === "string"
51
- ? debugStack
52
- : isRecord(debugStack) && typeof debugStack.stack === "string"
53
- ? debugStack.stack
54
- : null;
55
- if (!stackString)
56
- return null;
57
- const error = new Error("Inspector debug stack");
58
- error.stack = stackString;
59
- return error;
60
- };
61
- const toFiberNode = (node) => {
62
- if (!node || !node.__internalInstanceHandle)
63
- return null;
64
- return node.__internalInstanceHandle;
65
- };
66
- const toPathSlashes = (value) => {
67
- return value.replace(/\\/g, "/");
68
- };
69
- const trimProjectRootSlashes = (value) => {
70
- return toPathSlashes(value).replace(/\/+$/, "");
71
- };
72
- const maybeDecodeURIComponent = (value) => {
73
- try {
74
- return decodeURIComponent(value);
75
- }
76
- catch {
77
- return value;
78
- }
79
- };
80
- const normalizeInspectorPath = (filePath, pathRootHint) => {
81
- const raw = sanitizeLine(filePath, 2000);
82
- if (!raw)
83
- return "-";
84
- let normalized = raw.replace(/[?#].*$/, "");
85
- if (normalized.startsWith("file://")) {
86
- normalized = normalized.replace(/^file:\/\//, "");
87
- }
88
- else if (/^[a-zA-Z]+:\/\//.test(normalized)) {
89
- try {
90
- const url = new URL(normalized);
91
- normalized = url.pathname;
92
- }
93
- catch {
94
- // keep raw when URL parsing fails
95
- }
96
- }
97
- normalized = maybeDecodeURIComponent(toPathSlashes(normalized));
98
- if (!normalized)
99
- return "-";
100
- if (normalized.startsWith("/[project]/")) {
101
- return normalized;
102
- }
103
- if (normalized.startsWith("/[metro-project]/")) {
104
- return normalized.replace("/[metro-project]/", "/[project]/");
105
- }
106
- if (!normalized.startsWith("/")) {
107
- return normalized;
108
- }
109
- const rootHint = pathRootHint ? trimProjectRootSlashes(pathRootHint) : "";
110
- if (rootHint && normalized.startsWith(`${rootHint}/`)) {
111
- return `/[project]/${normalized.slice(rootHint.length + 1)}`;
112
- }
113
- return normalized;
114
- };
115
- exports.normalizeInspectorPath = normalizeInspectorPath;
116
- const toInspectorSourceFrame = (frame, pathRootHint) => {
117
- if (frame.collapse === true)
118
- return null;
119
- const file = frame.file?.trim() ?? "";
120
- if (!file)
121
- return null;
122
- const filePath = (0, exports.normalizeInspectorPath)(file, pathRootHint);
123
- if (!filePath || filePath === "-")
124
- return null;
125
- const method = sanitizeLine(frame.methodName ?? "", 100);
126
- const componentName = method || null;
127
- const line = typeof frame.lineNumber === "number" && Number.isFinite(frame.lineNumber)
128
- ? frame.lineNumber
129
- : null;
130
- const column = typeof frame.column === "number" && Number.isFinite(frame.column) ? frame.column : null;
131
- return {
132
- componentName,
133
- filePath,
134
- line,
135
- column,
136
- };
137
- };
138
- const dedupeConsecutiveFrames = (frames) => {
139
- if (frames.length <= 1)
140
- return frames;
141
- const deduped = [];
142
- let previousKey = "";
143
- for (const frame of frames) {
144
- const key = `${frame.componentName ?? ""}|${frame.filePath}|${frame.line ?? ""}|${frame.column ?? ""}`;
145
- if (key === previousKey)
146
- continue;
147
- deduped.push(frame);
148
- previousKey = key;
149
- }
150
- return deduped;
151
- };
152
- const extractSourceFramesFromFiberChain = async (fiber, maxStackLines, symbolicateStack, pathRootHint) => {
153
- const debugStackErrors = [];
154
- let cursor = fiber?.return ?? null;
155
- let depth = 0;
156
- while (cursor && depth < MAX_OWNER_DEPTH && debugStackErrors.length < MAX_SYMBOLICATION_TASKS) {
157
- const error = asErrorWithStack(cursor._debugStack);
158
- if (error) {
159
- debugStackErrors.push(error);
160
- }
161
- cursor = cursor.return ?? null;
162
- depth += 1;
163
- }
164
- const perOwnerFrames = await Promise.all(debugStackErrors.map(async (error) => {
165
- try {
166
- const symbolicated = await symbolicateStack(error);
167
- for (const frame of symbolicated.stack) {
168
- const formatted = toInspectorSourceFrame(frame, pathRootHint);
169
- if (formatted) {
170
- return formatted;
171
- }
172
- }
173
- }
174
- catch {
175
- // keep walking owner chain on symbolication failures
176
- }
177
- return null;
178
- }));
179
- const frames = [];
180
- for (const frame of perOwnerFrames) {
181
- if (!frame)
182
- continue;
183
- frames.push(frame);
184
- if (frames.length >= maxStackLines) {
185
- break;
186
- }
187
- }
188
- return dedupeConsecutiveFrames(frames).slice(0, maxStackLines);
189
- };
190
- const extractPrimitiveNameFromDisplayName = (displayName) => {
191
- if (!displayName)
192
- return null;
193
- if (REACT_NATIVE_PRIMITIVE_NAMES.has(displayName)) {
194
- return displayName;
195
- }
196
- const wrappedMatch = /^(ForwardRef|Memo)\((.+)\)$/.exec(displayName);
197
- if (!wrappedMatch)
198
- return null;
199
- const inner = sanitizeLine(wrappedMatch[2], 80);
200
- if (!inner)
201
- return null;
202
- return REACT_NATIVE_PRIMITIVE_NAMES.has(inner) ? inner : null;
203
- };
204
- const getReactNativePrimitiveFromFiberChain = (fiber) => {
205
- let cursor = fiber;
206
- let depth = 0;
207
- while (cursor && depth < MAX_OWNER_DEPTH) {
208
- const displayName = (0, fiber_1.getDisplayNameForFiber)(cursor);
209
- const primitiveName = extractPrimitiveNameFromDisplayName(displayName);
210
- if (primitiveName)
211
- return primitiveName;
212
- cursor = cursor.return ?? null;
213
- depth += 1;
214
- }
215
- return null;
216
- };
217
- const resolveTagName = (node, overrideTagName) => {
218
- if (overrideTagName) {
219
- const normalizedOverride = sanitizeLine(overrideTagName, 50);
220
- if (normalizedOverride)
221
- return normalizedOverride;
222
- }
223
- const raw = sanitizeLine(node.tagName ?? "", 50);
224
- if (!raw)
225
- return "View";
226
- return raw;
227
- };
228
- const extractTextPreview = (props, maxPreviewText) => {
229
- if (!props || !("children" in props))
230
- return "";
231
- const children = props.children;
232
- if (typeof children === "string" || typeof children === "number") {
233
- return truncate(String(children).replace(/\s+/g, " ").trim(), maxPreviewText);
234
- }
235
- if (Array.isArray(children)) {
236
- const joined = children
237
- .filter((item) => typeof item === "string" || typeof item === "number")
238
- .map((item) => String(item))
239
- .join(" ")
240
- .replace(/\s+/g, " ")
241
- .trim();
242
- if (!joined)
243
- return "";
244
- return truncate(joined, maxPreviewText);
245
- }
246
- return "";
247
- };
248
- const buildAttributePreview = (props) => {
249
- if (!props)
250
- return "";
251
- const attributes = [];
252
- const pairs = [
253
- ["testID", "testID"],
254
- ["accessibilityLabel", "accessibilityLabel"],
255
- ["id", "id"],
256
- ["className", "className"],
257
- ];
258
- for (const [propKey, attrName] of pairs) {
259
- const value = props[propKey];
260
- if (typeof value === "string" || typeof value === "number") {
261
- attributes.push(`${attrName}="${escapeAttribute(value)}"`);
262
- }
263
- }
264
- return attributes.length > 0 ? ` ${attributes.join(" ")}` : "";
265
- };
266
- const buildElementPreview = (node, maxPreviewText, overrideTagName) => {
267
- const tagName = resolveTagName(node, overrideTagName);
268
- const props = (0, fiber_1.getMemoizedProps)(node);
269
- const attrs = buildAttributePreview(props);
270
- const text = extractTextPreview(props, maxPreviewText);
271
- const hasChildren = (node.children?.length ?? 0) > 0;
272
- if (text) {
273
- return `<${tagName}${attrs}>\n ${escapeAttribute(text)}\n</${tagName}>`;
274
- }
275
- if (hasChildren) {
276
- return `<${tagName}${attrs}>\n ...\n</${tagName}>`;
277
- }
278
- return `<${tagName}${attrs} />`;
279
- };
280
- exports.buildElementPreview = buildElementPreview;
281
- const formatStackLine = (frame) => {
282
- let fileRef = frame.filePath;
283
- if (frame.line != null) {
284
- fileRef += `:${frame.line}`;
285
- if (frame.column != null) {
286
- fileRef += `:${frame.column}`;
287
- }
288
- }
289
- if (frame.componentName) {
290
- return `in ${frame.componentName} (at ${fileRef})`;
291
- }
292
- return `in ${fileRef}`;
293
- };
294
- const composePayloadText = (payload) => {
295
- const lines = [payload.mention, "", payload.preview, ...payload.stackLines];
296
- return lines.join("\n").trim();
297
- };
298
- const getDefaultPathRootHint = () => {
299
- const processValue = globalThis.process;
300
- if (!processValue || typeof processValue.cwd !== "function") {
301
- return null;
302
- }
303
- try {
304
- return processValue.cwd();
305
- }
306
- catch {
307
- return null;
308
- }
309
- };
310
- const buildInspectorContextPayload = async (hitTarget, options = {}) => {
311
- const maxStackLines = Math.max(0, options.maxStackLines ?? 3);
312
- const maxPreviewText = Math.max(16, options.maxPreviewText ?? 120);
313
- const pathRootHint = options.pathRootHint ?? getDefaultPathRootHint();
314
- const symbolicateStack = options.symbolicateStack ?? symbolicate_1.symbolicate;
315
- const fiber = toFiberNode(hitTarget.node);
316
- const sourceFrames = await extractSourceFramesFromFiberChain(fiber, maxStackLines, symbolicateStack, pathRootHint);
317
- const primitiveName = getReactNativePrimitiveFromFiberChain(fiber);
318
- const stackLines = sourceFrames.map(formatStackLine);
319
- const resolvedName = sourceFrames[0]?.componentName || resolveTagName(hitTarget.node);
320
- const mention = `@<${resolvedName}>`;
321
- const preview = (0, exports.buildElementPreview)(hitTarget.node, maxPreviewText, primitiveName);
322
- const plainText = truncate(composePayloadText({ mention, preview, stackLines, plainText: "" }), MAX_CLIPBOARD_LEN);
323
- return {
324
- mention,
325
- preview,
326
- stackLines,
327
- plainText,
328
- };
329
- };
330
- exports.buildInspectorContextPayload = buildInspectorContextPayload;
331
- const buildInspectorCopyPayload = async (hitTarget, options = {}) => {
332
- const payload = await (0, exports.buildInspectorContextPayload)(hitTarget, options);
333
- return payload.plainText;
334
- };
335
- exports.buildInspectorCopyPayload = buildInspectorCopyPayload;
336
- //# sourceMappingURL=copy-payload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-payload.js","sourceRoot":"","sources":["../../../src/react-native/copy-payload.ts"],"names":[],"mappings":"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"}
@@ -1,254 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.startSession = void 0;
7
- const DebuggingOverlayRegistry_1 = __importDefault(require("react-native/Libraries/Debugging/DebuggingOverlayRegistry"));
8
- const fiber_1 = require("./fiber");
9
- const pointer_events_1 = require("./pointer-events");
10
- const z_index_1 = require("./z-index");
11
- const key = Object.getOwnPropertyNames(DebuggingOverlayRegistry_1.default).find((key) => key.endsWith("findLowestParentFromRegistryForInstance"));
12
- const findLowestParentFromRegistryForInstance = DebuggingOverlayRegistry_1.default[key].bind(DebuggingOverlayRegistry_1.default);
13
- const RULE_REJECT = 1 << 0;
14
- const getRootNode = (anchorRef) => {
15
- const anchor = anchorRef.current;
16
- return anchor?.ownerDocument?.documentElement ?? null;
17
- };
18
- const buildSkipSet = (skipRefs) => {
19
- return new Set(skipRefs
20
- .map((r) => r.current)
21
- .filter((n) => n != null));
22
- };
23
- const hasPointInBounds = (rectX, rectY, rectWidth, rectHeight, x, y) => {
24
- if (rectWidth <= 0 || rectHeight <= 0) {
25
- return false;
26
- }
27
- return x >= rectX && x < rectX + rectWidth && y >= rectY && y < rectY + rectHeight;
28
- };
29
- const getElementHighlightRect = (element, rootViewInstance) => {
30
- const { x, y, width, height } = element.getBoundingClientRect();
31
- const { x: parentX, y: parentY } = rootViewInstance.getBoundingClientRect();
32
- return {
33
- x: x + parentX,
34
- y: y + parentY,
35
- width,
36
- height,
37
- };
38
- };
39
- const getEffectiveRectBase = (node) => {
40
- const lowestParent = findLowestParentFromRegistryForInstance(node);
41
- if (!lowestParent) {
42
- return { x: 0, y: 0, width: 0, height: 0 };
43
- }
44
- return getElementHighlightRect(node, lowestParent.rootViewRef.current);
45
- };
46
- const toFiniteNumber = (value) => {
47
- if (typeof value === "number" && Number.isFinite(value)) {
48
- return value;
49
- }
50
- if (typeof value === "string") {
51
- const parsed = Number(value);
52
- if (Number.isFinite(parsed)) {
53
- return parsed;
54
- }
55
- }
56
- return null;
57
- };
58
- const toBoolean = (value) => {
59
- if (typeof value === "boolean") {
60
- return value;
61
- }
62
- if (typeof value === "string") {
63
- if (value === "true") {
64
- return true;
65
- }
66
- if (value === "false") {
67
- return false;
68
- }
69
- }
70
- return null;
71
- };
72
- const getRNSTabsScreenFocusedState = (node) => {
73
- if (node.tagName !== "RN:RNSTabsScreen") {
74
- return null;
75
- }
76
- const props = (0, fiber_1.getMemoizedProps)(node);
77
- return toBoolean(props?.isFocused);
78
- };
79
- const getRNSScreenActivityState = (node) => {
80
- if (node.tagName !== "RN:RNSScreen") {
81
- return null;
82
- }
83
- const props = (0, fiber_1.getMemoizedProps)(node);
84
- return toFiniteNumber(props?.activityState);
85
- };
86
- const skipRule = (node, runtime) => {
87
- if (runtime.skipSet.has(node)) {
88
- return RULE_REJECT;
89
- }
90
- if (runtime.skipPredicate(node)) {
91
- return RULE_REJECT;
92
- }
93
- return 0;
94
- };
95
- const rnsVisibilityRule = (node) => {
96
- const rnsScreenActivityState = getRNSScreenActivityState(node);
97
- if (rnsScreenActivityState !== null && rnsScreenActivityState !== 2) {
98
- return RULE_REJECT;
99
- }
100
- const rnsTabsScreenFocusedState = getRNSTabsScreenFocusedState(node);
101
- if (rnsTabsScreenFocusedState !== null && !rnsTabsScreenFocusedState) {
102
- return RULE_REJECT;
103
- }
104
- return 0;
105
- };
106
- const getHitTargetCapabilities = (node) => {
107
- if (!(0, pointer_events_1.isNodeDisplayed)(node)) {
108
- return null;
109
- }
110
- const pointerEvents = (0, pointer_events_1.getPointerEventsMode)(node);
111
- if (pointerEvents === "none") {
112
- return null;
113
- }
114
- const hasFiberNode = (0, fiber_1.hasFiberNodeInInternalInstanceHandle)(node);
115
- const canBeTouchTarget = hasFiberNode && (pointerEvents === "auto" || pointerEvents === "box-only");
116
- const canChildrenBeTouchTarget = pointerEvents === "auto" || pointerEvents === "box-none";
117
- if (!canBeTouchTarget && !canChildrenBeTouchTarget) {
118
- return null;
119
- }
120
- return {
121
- canBeTouchTarget,
122
- canChildrenBeTouchTarget,
123
- };
124
- };
125
- const shouldClipOverflow = (node) => {
126
- const style = (0, fiber_1.getNormalizedStyle)(node);
127
- const overflow = style?.overflow;
128
- // Fabric uses layout overflow insets in hit testing. Those insets are not exposed
129
- // in this DOM traversal API, so we approximate by clipping when explicit overflow
130
- // behavior is hidden/scroll and otherwise allow overflow hits.
131
- return overflow === "hidden" || overflow === "scroll";
132
- };
133
- const safeAreaStateRule = (node, rectHeight, runtime, state) => {
134
- if (node.tagName !== "RN:RNSSafeAreaView") {
135
- return;
136
- }
137
- const safeAreaParent = runtime.ancestorChain[runtime.ancestorChain.length - 1] ?? node.parentElement ?? null;
138
- if (!safeAreaParent || rectHeight < 0) {
139
- return;
140
- }
141
- const safeAreaParentRect = getEffectiveRectBase(safeAreaParent);
142
- if (safeAreaParentRect.height < 0) {
143
- return;
144
- }
145
- const heightDelta = rectHeight - safeAreaParentRect.height;
146
- state.yOffset += heightDelta;
147
- };
148
- const modalStateRule = (node, _rectHeight, _runtime, state) => {
149
- if (node.tagName === "RN:RNSModalScreen") {
150
- // Magic number - not sure why it's 8, but it is :shrug:
151
- state.yOffset -= 8;
152
- }
153
- };
154
- const NODE_RULES = [skipRule, rnsVisibilityRule];
155
- const STATE_RULES = [safeAreaStateRule, modalStateRule];
156
- const applyNodeRules = (node, runtime) => {
157
- let flags = 0;
158
- for (let i = 0; i < NODE_RULES.length; i++) {
159
- flags |= NODE_RULES[i](node, runtime);
160
- if ((flags & RULE_REJECT) !== 0) {
161
- return flags;
162
- }
163
- }
164
- return flags;
165
- };
166
- const applyStateRules = (node, rectHeight, runtime, state) => {
167
- for (let i = 0; i < STATE_RULES.length; i++) {
168
- STATE_RULES[i](node, rectHeight, runtime, state);
169
- }
170
- };
171
- const findHitTargetFromNode = (node, runtime, state, x, y) => {
172
- const baseRect = getEffectiveRectBase(node);
173
- const rectX = baseRect.x;
174
- const rectY = baseRect.y + state.yOffset;
175
- const rectWidth = baseRect.width;
176
- const rectHeight = baseRect.height;
177
- const nodeFlags = applyNodeRules(node, runtime);
178
- if ((nodeFlags & RULE_REJECT) !== 0) {
179
- return null;
180
- }
181
- const capabilities = getHitTargetCapabilities(node);
182
- if (!capabilities) {
183
- return null;
184
- }
185
- const isPointInside = hasPointInBounds(rectX, rectY, rectWidth, rectHeight, x, y);
186
- if (isPointInside && !capabilities.canChildrenBeTouchTarget) {
187
- if (!capabilities.canBeTouchTarget) {
188
- return null;
189
- }
190
- return {
191
- node,
192
- rect: { x: rectX, y: rectY, width: rectWidth, height: rectHeight },
193
- };
194
- }
195
- if (!isPointInside && shouldClipOverflow(node)) {
196
- return null;
197
- }
198
- if (capabilities.canChildrenBeTouchTarget) {
199
- const previousYOffset = state.yOffset;
200
- runtime.ancestorChain.push(node);
201
- applyStateRules(node, rectHeight, runtime, state);
202
- const orderedChildren = (0, z_index_1.getChildrenInHitTestOrder)(node);
203
- for (let i = orderedChildren.length - 1; i >= 0; i--) {
204
- const childHit = findHitTargetFromNode(orderedChildren[i], runtime, state, x, y);
205
- if (childHit) {
206
- runtime.ancestorChain.pop();
207
- state.yOffset = previousYOffset;
208
- return childHit;
209
- }
210
- }
211
- runtime.ancestorChain.pop();
212
- state.yOffset = previousYOffset;
213
- }
214
- if (!isPointInside || !capabilities.canBeTouchTarget) {
215
- return null;
216
- }
217
- return {
218
- node,
219
- rect: { x: rectX, y: rectY, width: rectWidth, height: rectHeight },
220
- };
221
- };
222
- const startSession = ({ anchorRef, skipRefs, skipPredicate = () => false, offset = 0, }) => {
223
- const context = {
224
- active: true,
225
- root: getRootNode(anchorRef),
226
- runtime: {
227
- skipSet: buildSkipSet(skipRefs),
228
- skipPredicate,
229
- ancestorChain: [],
230
- },
231
- state: {
232
- yOffset: offset,
233
- },
234
- defaultOffset: offset,
235
- };
236
- return {
237
- move: ({ x, y, offset: moveOffset }) => {
238
- if (!context.active || !context.root) {
239
- return null;
240
- }
241
- context.state.yOffset = moveOffset ?? context.defaultOffset;
242
- context.runtime.ancestorChain.length = 0;
243
- return findHitTargetFromNode(context.root, context.runtime, context.state, x, y);
244
- },
245
- stop: () => {
246
- context.active = false;
247
- context.root = null;
248
- context.runtime.ancestorChain.length = 0;
249
- context.runtime.skipSet.clear();
250
- },
251
- };
252
- };
253
- exports.startSession = startSession;
254
- //# sourceMappingURL=dom-traversal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom-traversal.js","sourceRoot":"","sources":["../../../src/react-native/dom-traversal.ts"],"names":[],"mappings":"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"}