react-native-mcp-kit 4.2.0 → 4.2.1

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 (239) hide show
  1. package/dist/babel/testIdPlugin/collectHooks.d.ts +13 -0
  2. package/dist/babel/testIdPlugin/collectHooks.d.ts.map +1 -0
  3. package/dist/babel/testIdPlugin/collectHooks.js +112 -0
  4. package/dist/babel/testIdPlugin/collectHooks.js.map +1 -0
  5. package/dist/babel/testIdPlugin/constants.d.ts +6 -0
  6. package/dist/babel/testIdPlugin/constants.d.ts.map +1 -0
  7. package/dist/babel/testIdPlugin/constants.js +49 -0
  8. package/dist/babel/testIdPlugin/constants.js.map +1 -0
  9. package/dist/babel/testIdPlugin/helpers.d.ts +7 -0
  10. package/dist/babel/testIdPlugin/helpers.d.ts.map +1 -0
  11. package/dist/babel/testIdPlugin/helpers.js +77 -0
  12. package/dist/babel/testIdPlugin/helpers.js.map +1 -0
  13. package/dist/babel/testIdPlugin/hocUnwrap.d.ts +4 -0
  14. package/dist/babel/testIdPlugin/hocUnwrap.d.ts.map +1 -0
  15. package/dist/babel/testIdPlugin/hocUnwrap.js +94 -0
  16. package/dist/babel/testIdPlugin/hocUnwrap.js.map +1 -0
  17. package/dist/babel/{testIdPlugin.d.ts → testIdPlugin/index.d.ts} +1 -1
  18. package/dist/babel/testIdPlugin/index.d.ts.map +1 -0
  19. package/dist/babel/testIdPlugin/index.js +205 -0
  20. package/dist/babel/testIdPlugin/index.js.map +1 -0
  21. package/dist/babel/testIdPlugin/inject.d.ts +7 -0
  22. package/dist/babel/testIdPlugin/inject.d.ts.map +1 -0
  23. package/dist/babel/testIdPlugin/inject.js +86 -0
  24. package/dist/babel/testIdPlugin/inject.js.map +1 -0
  25. package/dist/babel/testIdPlugin/types.d.ts +59 -0
  26. package/dist/babel/testIdPlugin/types.d.ts.map +1 -0
  27. package/dist/babel/testIdPlugin/types.js +3 -0
  28. package/dist/babel/testIdPlugin/types.js.map +1 -0
  29. package/dist/bin/ios-hid +0 -0
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/modules/fiberTree/hooks/extract.d.ts +6 -0
  35. package/dist/modules/fiberTree/hooks/extract.d.ts.map +1 -0
  36. package/dist/modules/fiberTree/hooks/extract.js +187 -0
  37. package/dist/modules/fiberTree/hooks/extract.js.map +1 -0
  38. package/dist/modules/fiberTree/hooks/flatten.d.ts +4 -0
  39. package/dist/modules/fiberTree/hooks/flatten.d.ts.map +1 -0
  40. package/dist/modules/fiberTree/hooks/flatten.js +81 -0
  41. package/dist/modules/fiberTree/hooks/flatten.js.map +1 -0
  42. package/dist/modules/fiberTree/hooks/index.d.ts +5 -0
  43. package/dist/modules/fiberTree/hooks/index.d.ts.map +1 -0
  44. package/dist/modules/fiberTree/hooks/index.js +10 -0
  45. package/dist/modules/fiberTree/hooks/index.js.map +1 -0
  46. package/dist/modules/fiberTree/hooks/options.d.ts +9 -0
  47. package/dist/modules/fiberTree/hooks/options.d.ts.map +1 -0
  48. package/dist/modules/fiberTree/hooks/options.js +27 -0
  49. package/dist/modules/fiberTree/hooks/options.js.map +1 -0
  50. package/dist/modules/fiberTree/hooks/patterns.d.ts +2 -0
  51. package/dist/modules/fiberTree/hooks/patterns.d.ts.map +1 -0
  52. package/dist/modules/fiberTree/hooks/patterns.js +26 -0
  53. package/dist/modules/fiberTree/hooks/patterns.js.map +1 -0
  54. package/dist/modules/fiberTree/hooks/shape.d.ts +3 -0
  55. package/dist/modules/fiberTree/hooks/shape.d.ts.map +1 -0
  56. package/dist/modules/fiberTree/hooks/shape.js +66 -0
  57. package/dist/modules/fiberTree/hooks/shape.js.map +1 -0
  58. package/dist/modules/fiberTree/hooks/slotCount.d.ts +2 -0
  59. package/dist/modules/fiberTree/hooks/slotCount.d.ts.map +1 -0
  60. package/dist/modules/fiberTree/hooks/slotCount.js +93 -0
  61. package/dist/modules/fiberTree/hooks/slotCount.js.map +1 -0
  62. package/dist/modules/fiberTree/{hooks.d.ts → hooks/types.d.ts} +1 -34
  63. package/dist/modules/fiberTree/hooks/types.d.ts.map +1 -0
  64. package/dist/modules/fiberTree/hooks/types.js +3 -0
  65. package/dist/modules/fiberTree/hooks/types.js.map +1 -0
  66. package/dist/modules/fiberTree/hooks/value.d.ts +2 -0
  67. package/dist/modules/fiberTree/hooks/value.d.ts.map +1 -0
  68. package/dist/modules/fiberTree/hooks/value.js +89 -0
  69. package/dist/modules/fiberTree/hooks/value.js.map +1 -0
  70. package/dist/modules/fiberTree/utils/constants.d.ts +8 -0
  71. package/dist/modules/fiberTree/utils/constants.d.ts.map +1 -0
  72. package/dist/modules/fiberTree/utils/constants.js +15 -0
  73. package/dist/modules/fiberTree/utils/constants.js.map +1 -0
  74. package/dist/modules/fiberTree/utils/index.d.ts +9 -0
  75. package/dist/modules/fiberTree/utils/index.d.ts.map +1 -0
  76. package/dist/modules/fiberTree/utils/index.js +34 -0
  77. package/dist/modules/fiberTree/utils/index.js.map +1 -0
  78. package/dist/modules/fiberTree/utils/match.d.ts +4 -0
  79. package/dist/modules/fiberTree/utils/match.d.ts.map +1 -0
  80. package/dist/modules/fiberTree/utils/match.js +169 -0
  81. package/dist/modules/fiberTree/utils/match.js.map +1 -0
  82. package/dist/modules/fiberTree/utils/naming.d.ts +4 -0
  83. package/dist/modules/fiberTree/utils/naming.d.ts.map +1 -0
  84. package/dist/modules/fiberTree/utils/naming.js +52 -0
  85. package/dist/modules/fiberTree/utils/naming.js.map +1 -0
  86. package/dist/modules/fiberTree/utils/native.d.ts +5 -0
  87. package/dist/modules/fiberTree/utils/native.d.ts.map +1 -0
  88. package/dist/modules/fiberTree/utils/native.js +101 -0
  89. package/dist/modules/fiberTree/utils/native.js.map +1 -0
  90. package/dist/modules/fiberTree/utils/projection.d.ts +9 -0
  91. package/dist/modules/fiberTree/utils/projection.d.ts.map +1 -0
  92. package/dist/modules/fiberTree/utils/projection.js +75 -0
  93. package/dist/modules/fiberTree/utils/projection.js.map +1 -0
  94. package/dist/modules/fiberTree/utils/root.d.ts +4 -0
  95. package/dist/modules/fiberTree/utils/root.d.ts.map +1 -0
  96. package/dist/modules/fiberTree/utils/root.js +30 -0
  97. package/dist/modules/fiberTree/utils/root.js.map +1 -0
  98. package/dist/modules/fiberTree/utils/screen.d.ts +10 -0
  99. package/dist/modules/fiberTree/utils/screen.d.ts.map +1 -0
  100. package/dist/modules/fiberTree/utils/screen.js +39 -0
  101. package/dist/modules/fiberTree/utils/screen.js.map +1 -0
  102. package/dist/modules/fiberTree/utils/serialize.d.ts +4 -0
  103. package/dist/modules/fiberTree/utils/serialize.d.ts.map +1 -0
  104. package/dist/modules/fiberTree/utils/serialize.js +102 -0
  105. package/dist/modules/fiberTree/utils/serialize.js.map +1 -0
  106. package/dist/modules/fiberTree/utils/traverse.d.ts +12 -0
  107. package/dist/modules/fiberTree/utils/traverse.d.ts.map +1 -0
  108. package/dist/modules/fiberTree/utils/traverse.js +107 -0
  109. package/dist/modules/fiberTree/utils/traverse.js.map +1 -0
  110. package/dist/server/dispatch.d.ts +15 -0
  111. package/dist/server/dispatch.d.ts.map +1 -0
  112. package/dist/server/dispatch.js +121 -0
  113. package/dist/server/dispatch.js.map +1 -0
  114. package/dist/server/helpers.d.ts +97 -0
  115. package/dist/server/helpers.d.ts.map +1 -0
  116. package/dist/server/helpers.js +162 -0
  117. package/dist/server/helpers.js.map +1 -0
  118. package/dist/server/host/deviceResolver/byClient.d.ts +5 -0
  119. package/dist/server/host/deviceResolver/byClient.d.ts.map +1 -0
  120. package/dist/server/host/deviceResolver/byClient.js +171 -0
  121. package/dist/server/host/deviceResolver/byClient.js.map +1 -0
  122. package/dist/server/host/deviceResolver/byId.d.ts +5 -0
  123. package/dist/server/host/deviceResolver/byId.d.ts.map +1 -0
  124. package/dist/server/host/deviceResolver/byId.js +81 -0
  125. package/dist/server/host/deviceResolver/byId.js.map +1 -0
  126. package/dist/server/host/deviceResolver/enrich.d.ts +5 -0
  127. package/dist/server/host/deviceResolver/enrich.d.ts.map +1 -0
  128. package/dist/server/host/deviceResolver/enrich.js +123 -0
  129. package/dist/server/host/deviceResolver/enrich.js.map +1 -0
  130. package/dist/server/host/deviceResolver/index.d.ts +13 -0
  131. package/dist/server/host/deviceResolver/index.d.ts.map +1 -0
  132. package/dist/server/host/deviceResolver/index.js +65 -0
  133. package/dist/server/host/deviceResolver/index.js.map +1 -0
  134. package/dist/server/host/deviceResolver/list.d.ts +10 -0
  135. package/dist/server/host/deviceResolver/list.d.ts.map +1 -0
  136. package/dist/server/host/deviceResolver/list.js +119 -0
  137. package/dist/server/host/deviceResolver/list.js.map +1 -0
  138. package/dist/server/host/deviceResolver/scan.d.ts +4 -0
  139. package/dist/server/host/deviceResolver/scan.d.ts.map +1 -0
  140. package/dist/server/host/deviceResolver/scan.js +102 -0
  141. package/dist/server/host/deviceResolver/scan.js.map +1 -0
  142. package/dist/server/host/{deviceResolver.d.ts → deviceResolver/types.d.ts} +1 -16
  143. package/dist/server/host/deviceResolver/types.d.ts.map +1 -0
  144. package/dist/server/host/deviceResolver/types.js +3 -0
  145. package/dist/server/host/deviceResolver/types.js.map +1 -0
  146. package/dist/server/host/tools/input/android.d.ts +15 -0
  147. package/dist/server/host/tools/input/android.d.ts.map +1 -0
  148. package/dist/server/host/tools/input/android.js +88 -0
  149. package/dist/server/host/tools/input/android.js.map +1 -0
  150. package/dist/server/host/tools/input/constants.d.ts +14 -0
  151. package/dist/server/host/tools/input/constants.d.ts.map +1 -0
  152. package/dist/server/host/tools/input/constants.js +41 -0
  153. package/dist/server/host/tools/input/constants.js.map +1 -0
  154. package/dist/server/host/tools/input/drag.d.ts +4 -0
  155. package/dist/server/host/tools/input/drag.d.ts.map +1 -0
  156. package/dist/server/host/tools/input/drag.js +76 -0
  157. package/dist/server/host/tools/input/drag.js.map +1 -0
  158. package/dist/server/host/tools/input/index.d.ts +8 -0
  159. package/dist/server/host/tools/input/index.d.ts.map +1 -0
  160. package/dist/server/host/tools/input/index.js +18 -0
  161. package/dist/server/host/tools/input/index.js.map +1 -0
  162. package/dist/server/host/tools/input/longPress.d.ts +4 -0
  163. package/dist/server/host/tools/input/longPress.d.ts.map +1 -0
  164. package/dist/server/host/tools/input/longPress.js +49 -0
  165. package/dist/server/host/tools/input/longPress.js.map +1 -0
  166. package/dist/server/host/tools/input/pressKey.d.ts +4 -0
  167. package/dist/server/host/tools/input/pressKey.d.ts.map +1 -0
  168. package/dist/server/host/tools/input/pressKey.js +42 -0
  169. package/dist/server/host/tools/input/pressKey.js.map +1 -0
  170. package/dist/server/host/tools/input/swipe.d.ts +4 -0
  171. package/dist/server/host/tools/input/swipe.d.ts.map +1 -0
  172. package/dist/server/host/tools/input/swipe.js +71 -0
  173. package/dist/server/host/tools/input/swipe.js.map +1 -0
  174. package/dist/server/host/tools/input/tap.d.ts +4 -0
  175. package/dist/server/host/tools/input/tap.d.ts.map +1 -0
  176. package/dist/server/host/tools/input/tap.js +49 -0
  177. package/dist/server/host/tools/input/tap.js.map +1 -0
  178. package/dist/server/host/tools/input/typeText.d.ts +4 -0
  179. package/dist/server/host/tools/input/typeText.d.ts.map +1 -0
  180. package/dist/server/host/tools/input/typeText.js +52 -0
  181. package/dist/server/host/tools/input/typeText.js.map +1 -0
  182. package/dist/server/host/tools/input/typeTextBatch.d.ts +4 -0
  183. package/dist/server/host/tools/input/typeTextBatch.d.ts.map +1 -0
  184. package/dist/server/host/tools/input/typeTextBatch.js +106 -0
  185. package/dist/server/host/tools/input/typeTextBatch.js.map +1 -0
  186. package/dist/server/instructions.d.ts +2 -0
  187. package/dist/server/instructions.d.ts.map +1 -0
  188. package/dist/server/instructions.js +74 -0
  189. package/dist/server/instructions.js.map +1 -0
  190. package/dist/server/mcpServer.d.ts +0 -12
  191. package/dist/server/mcpServer.d.ts.map +1 -1
  192. package/dist/server/mcpServer.js +26 -877
  193. package/dist/server/mcpServer.js.map +1 -1
  194. package/dist/server/predicate.d.ts +31 -0
  195. package/dist/server/predicate.d.ts.map +1 -0
  196. package/dist/server/predicate.js +104 -0
  197. package/dist/server/predicate.js.map +1 -0
  198. package/dist/server/tools/assert.d.ts +4 -0
  199. package/dist/server/tools/assert.d.ts.map +1 -0
  200. package/dist/server/tools/assert.js +79 -0
  201. package/dist/server/tools/assert.js.map +1 -0
  202. package/dist/server/tools/call.d.ts +4 -0
  203. package/dist/server/tools/call.d.ts.map +1 -0
  204. package/dist/server/tools/call.js +38 -0
  205. package/dist/server/tools/call.js.map +1 -0
  206. package/dist/server/tools/connectionStatus.d.ts +4 -0
  207. package/dist/server/tools/connectionStatus.d.ts.map +1 -0
  208. package/dist/server/tools/connectionStatus.js +41 -0
  209. package/dist/server/tools/connectionStatus.js.map +1 -0
  210. package/dist/server/tools/describeTool.d.ts +4 -0
  211. package/dist/server/tools/describeTool.d.ts.map +1 -0
  212. package/dist/server/tools/describeTool.js +130 -0
  213. package/dist/server/tools/describeTool.js.map +1 -0
  214. package/dist/server/tools/listTools.d.ts +4 -0
  215. package/dist/server/tools/listTools.d.ts.map +1 -0
  216. package/dist/server/tools/listTools.js +109 -0
  217. package/dist/server/tools/listTools.js.map +1 -0
  218. package/dist/server/tools/waitUntil.d.ts +4 -0
  219. package/dist/server/tools/waitUntil.d.ts.map +1 -0
  220. package/dist/server/tools/waitUntil.js +119 -0
  221. package/dist/server/tools/waitUntil.js.map +1 -0
  222. package/package.json +2 -2
  223. package/dist/babel/testIdPlugin.d.ts.map +0 -1
  224. package/dist/babel/testIdPlugin.js +0 -585
  225. package/dist/babel/testIdPlugin.js.map +0 -1
  226. package/dist/modules/fiberTree/hooks.d.ts.map +0 -1
  227. package/dist/modules/fiberTree/hooks.js +0 -550
  228. package/dist/modules/fiberTree/hooks.js.map +0 -1
  229. package/dist/modules/fiberTree/utils.d.ts +0 -39
  230. package/dist/modules/fiberTree/utils.d.ts.map +0 -1
  231. package/dist/modules/fiberTree/utils.js +0 -641
  232. package/dist/modules/fiberTree/utils.js.map +0 -1
  233. package/dist/server/host/deviceResolver.d.ts.map +0 -1
  234. package/dist/server/host/deviceResolver.js +0 -621
  235. package/dist/server/host/deviceResolver.js.map +0 -1
  236. package/dist/server/host/tools/input.d.ts +0 -10
  237. package/dist/server/host/tools/input.d.ts.map +0 -1
  238. package/dist/server/host/tools/input.js +0 -503
  239. package/dist/server/host/tools/input.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/options.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAG9C;;;;;GAKG;AACI,MAAM,iBAAiB,GAAG,CAAC,GAAgC,EAAgB,EAAE;IAClF,OAAO;QACL,cAAc,EACZ,OAAO,GAAG,EAAE,cAAc,KAAK,QAAQ,IAAI,GAAG,CAAC,cAAc,IAAI,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;YAChC,CAAC,CAAC,QAAQ;QACd,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAChD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/D,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,2BAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;QACnF,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;QAChF,UAAU,EAAE,OAAO,GAAG,EAAE,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACpF,aAAa,EACX,OAAO,GAAG,EAAE,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACnF,SAAS,EAAE,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC/D,UAAU,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI;KACrC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B"}
@@ -0,0 +1,2 @@
1
+ export declare const parseNamePattern: (raw: string) => ((n: string) => boolean);
2
+ //# sourceMappingURL=patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/patterns.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAiBrE,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseNamePattern = void 0;
4
+ // Parse a name pattern: `/regex/flags` → RegExp matcher; anything else →
5
+ // exact-string matcher. Same convention as log_box__ignore.
6
+ const parseNamePattern = (raw) => {
7
+ const m = raw.match(/^\/(.+)\/([gimsuy]*)$/);
8
+ if (m && m[1] !== undefined) {
9
+ try {
10
+ const rx = new RegExp(m[1], m[2] ?? '');
11
+ return (n) => {
12
+ return rx.test(n);
13
+ };
14
+ }
15
+ catch {
16
+ return (n) => {
17
+ return n === raw;
18
+ };
19
+ }
20
+ }
21
+ return (n) => {
22
+ return n === raw;
23
+ };
24
+ };
25
+ exports.parseNamePattern = parseNamePattern;
26
+ //# sourceMappingURL=patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/patterns.ts"],"names":[],"mappings":";;;AAAA,yEAAyE;AACzE,4DAA4D;AACrD,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAA4B,EAAE;IACxE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC,EAAE,EAAE;gBACX,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,EAAE,EAAE;gBACX,OAAO,CAAC,KAAK,GAAG,CAAC;YACnB,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,EAAE;QACX,OAAO,CAAC,KAAK,GAAG,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,gBAAgB,oBAiB3B"}
@@ -0,0 +1,3 @@
1
+ export declare const looksLikeEffectRecord: (raw: unknown) => boolean;
2
+ export declare const shapeMatchesKind: (raw: unknown, kind: string) => boolean;
3
+ //# sourceMappingURL=shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/shape.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,QAAS,OAAO,KAAG,OAQpD,CAAC;AAoBF,eAAO,MAAM,gBAAgB,QAAS,OAAO,QAAQ,MAAM,KAAG,OA4B7D,CAAC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shapeMatchesKind = exports.looksLikeEffectRecord = void 0;
4
+ // Recognise React's effect-record shape: `{ tag: number, create: function,
5
+ // deps: null | unknown[] }` with optional `inst` / `destroy` / `next`.
6
+ // useState / useReducer / useContext memoizedState values of this exact
7
+ // shape in real user code are astronomically unlikely, so we treat this as
8
+ // a reliable "definitely not a state slot" signal.
9
+ const looksLikeEffectRecord = (raw) => {
10
+ if (!raw || typeof raw !== 'object')
11
+ return false;
12
+ const r = raw;
13
+ return (typeof r.tag === 'number' &&
14
+ typeof r.create === 'function' &&
15
+ (r.deps === null || r.deps === undefined || Array.isArray(r.deps)));
16
+ };
17
+ exports.looksLikeEffectRecord = looksLikeEffectRecord;
18
+ // Recognise the useRef shape: `{ current: X }` with NO other keys. A useState
19
+ // value that is literally an object whose sole own-key is "current" is so
20
+ // improbable in real code that we treat it as a reliable "this slot is a
21
+ // ref, not a state" signal — lets State/Custom skip ref slots that leaked in
22
+ // through custom-hook internals.
23
+ const looksLikeRefShape = (raw) => {
24
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
25
+ return false;
26
+ const keys = Object.keys(raw);
27
+ return keys.length === 1 && keys[0] === 'current';
28
+ };
29
+ // Shape-verify a hook slot's memoizedState against its expected kind. When
30
+ // a custom hook internally uses multiple built-in hooks, our static metadata
31
+ // understates the number of slots — every subsequent pairing drifts. By
32
+ // requiring a structural match before consuming a metadata entry we can
33
+ // swallow "internal" slots and keep the rest aligned. Permissive kinds
34
+ // (State / Reducer / Context / Custom) reject only obvious mis-matches
35
+ // (currently: the effect-record shape).
36
+ const shapeMatchesKind = (raw, kind) => {
37
+ switch (kind) {
38
+ case 'Ref':
39
+ return !!raw && typeof raw === 'object' && 'current' in raw;
40
+ case 'Memo':
41
+ case 'Callback':
42
+ return Array.isArray(raw) && raw.length === 2 && (raw[1] === null || Array.isArray(raw[1]));
43
+ case 'Effect':
44
+ case 'LayoutEffect':
45
+ case 'InsertionEffect':
46
+ return (0, exports.looksLikeEffectRecord)(raw);
47
+ case 'Transition':
48
+ return Array.isArray(raw) && raw.length === 2;
49
+ case 'State':
50
+ case 'Reducer':
51
+ case 'Context':
52
+ case 'Optimistic': // useOptimistic — state-like slot, internally a useReducer variant.
53
+ case 'ActionState': // useActionState — [state, dispatch, isPending]; slot is state-like.
54
+ case 'Use': // use(promise | context) — thenable-state or context-read slot, both state-like.
55
+ case 'Custom':
56
+ // Permissive but not blind — drop obvious effect-node and ref-shape
57
+ // slots so State/Custom metadata doesn't swallow internals of
58
+ // preceding custom hooks. React 19 hooks fall into this bucket
59
+ // because their slot shape is state-like (not Effect/Memo/Ref).
60
+ return !(0, exports.looksLikeEffectRecord)(raw) && !looksLikeRefShape(raw);
61
+ default:
62
+ return true;
63
+ }
64
+ };
65
+ exports.shapeMatchesKind = shapeMatchesKind;
66
+ //# sourceMappingURL=shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/shape.ts"],"names":[],"mappings":";;;AAAA,2EAA2E;AAC3E,uEAAuE;AACvE,wEAAwE;AACxE,2EAA2E;AAC3E,mDAAmD;AAC5C,MAAM,qBAAqB,GAAG,CAAC,GAAY,EAAW,EAAE;IAC7D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO,CACL,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;QACzB,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU;QAC9B,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEF,8EAA8E;AAC9E,0EAA0E;AAC1E,yEAAyE;AACzE,6EAA6E;AAC7E,iCAAiC;AACjC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAW,EAAE;IAClD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;AACpD,CAAC,CAAC;AAEF,2EAA2E;AAC3E,6EAA6E;AAC7E,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,wCAAwC;AACjC,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAAE,IAAY,EAAW,EAAE;IACtE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAK,GAAc,CAAC;QAC1E,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,iBAAiB;YACpB,OAAO,IAAA,6BAAqB,EAAC,GAAG,CAAC,CAAC;QACpC,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;QAChD,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,YAAY,CAAC,CAAC,oEAAoE;QACvF,KAAK,aAAa,CAAC,CAAC,qEAAqE;QACzF,KAAK,KAAK,CAAC,CAAC,iFAAiF;QAC7F,KAAK,QAAQ;YACX,oEAAoE;YACpE,8DAA8D;YAC9D,+DAA+D;YAC/D,gEAAgE;YAChE,OAAO,CAAC,IAAA,6BAAqB,EAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChE;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AA5BW,QAAA,gBAAgB,oBA4B3B"}
@@ -0,0 +1,2 @@
1
+ export declare const countHookSlots: (fn: unknown, depth?: number, seen?: WeakSet<object>) => number;
2
+ //# sourceMappingURL=slotCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotCount.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/slotCount.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,cAAc,OAAQ,OAAO,yBAAoB,OAAO,CAAC,MAAM,CAAC,KAAG,MAwD/E,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.countHookSlots = void 0;
4
+ // Estimate how many slots in fiber.memoizedState a hook function consumes.
5
+ // Used by the slot-walker to advance past unannotated black-box library
6
+ // hooks (e.g. `useSelector` from react-redux) which our babel plugin couldn't
7
+ // expand statically — without this they'd consume only one fiber slot during
8
+ // alignment, drifting the rest of the metadata out of sync.
9
+ //
10
+ // Three cascading strategies, falling through on miss:
11
+ // 1. `fn.__mcp_hooks` recursive — accurate for any hook our plugin saw.
12
+ // Custom sub-entries recurse; built-in entries count as 1.
13
+ // 2. `fn.toString()` regex — counts `useXxx(` calls in the source. Works
14
+ // even after Metro bundling because hook references survive as
15
+ // property accesses (`(0, _react.useState)(...)`) — property names
16
+ // aren't mangled. Underestimates when nested customs themselves expand
17
+ // to multiple slots, but better than 1.
18
+ // 3. Default 1 — native functions, bound functions, or sources we can't
19
+ // parse. Same as the original behavior.
20
+ //
21
+ // Cached per-function via WeakMap so cost is paid once per hook fn per
22
+ // session.
23
+ const HOOK_SLOTS_CACHE = new WeakMap();
24
+ // Counts hook-call occurrences inside a function's source text. Matches
25
+ // `useXxx(` (classic) and bare `use(` (React 19's `use`). Negative
26
+ // lookbehind on the bare-`use` arm filters out `.use(` method calls so
27
+ // `database.use(middleware)` / `app.use(...)` don't inflate the count.
28
+ const HOOK_NAME_RE = /\b(?<!\.)use(?:[A-Z]\w*)?\s*\(/g;
29
+ const STRING_LITERAL_RE = /(['"`])(?:\\.|(?!\1).)*\1/g;
30
+ const BLOCK_COMMENT_RE = /\/\*[\s\S]*?\*\//g;
31
+ const LINE_COMMENT_RE = /\/\/[^\n]*/g;
32
+ const countHookSlots = (fn, depth = 0, seen) => {
33
+ if (depth > 8)
34
+ return 1;
35
+ if (typeof fn !== 'function')
36
+ return 1;
37
+ const fnObj = fn;
38
+ const cached = HOOK_SLOTS_CACHE.get(fnObj);
39
+ if (cached !== undefined)
40
+ return cached;
41
+ const localSeen = seen ?? new WeakSet();
42
+ if (localSeen.has(fnObj))
43
+ return 1;
44
+ localSeen.add(fnObj);
45
+ // (1) Annotated metadata: recurse into sub-entries, summing their slot
46
+ // counts. Each built-in entry contributes 1; each Custom contributes
47
+ // however many its own fn does (recurse).
48
+ const annotated = fn.__mcp_hooks;
49
+ if (Array.isArray(annotated)) {
50
+ let total = 0;
51
+ for (const entry of annotated) {
52
+ if (entry && entry.kind === 'Custom' && typeof entry.fn === 'function') {
53
+ total += (0, exports.countHookSlots)(entry.fn, depth + 1, localSeen);
54
+ }
55
+ else {
56
+ total += 1;
57
+ }
58
+ }
59
+ const result = Math.max(total, 1);
60
+ HOOK_SLOTS_CACHE.set(fnObj, result);
61
+ return result;
62
+ }
63
+ // (2) toString-based parsing. Strip strings/comments first to avoid
64
+ // matching `'useState'` inside literals. Each `useXxx(` occurrence in
65
+ // remaining source counts as one hook call (≥ 1 slot). Custom hook calls
66
+ // we encounter here can't be resolved further (no scope binding from the
67
+ // outer function), so we bottom out at 1 slot per occurrence — still
68
+ // beats the original constant-1 fallback when the source has multiple
69
+ // hook calls (e.g. `useSyncExternalStoreWithSelector` internals).
70
+ let src;
71
+ try {
72
+ src = Function.prototype.toString.call(fn);
73
+ }
74
+ catch {
75
+ HOOK_SLOTS_CACHE.set(fnObj, 1);
76
+ return 1;
77
+ }
78
+ if (!src || src.includes('[native code]')) {
79
+ HOOK_SLOTS_CACHE.set(fnObj, 1);
80
+ return 1;
81
+ }
82
+ const stripped = src
83
+ .replace(STRING_LITERAL_RE, '""')
84
+ .replace(BLOCK_COMMENT_RE, '')
85
+ .replace(LINE_COMMENT_RE, '');
86
+ HOOK_NAME_RE.lastIndex = 0;
87
+ const matches = stripped.match(HOOK_NAME_RE);
88
+ const result = matches ? matches.length : 1;
89
+ HOOK_SLOTS_CACHE.set(fnObj, result);
90
+ return result;
91
+ };
92
+ exports.countHookSlots = countHookSlots;
93
+ //# sourceMappingURL=slotCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotCount.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/slotCount.ts"],"names":[],"mappings":";;;AAEA,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,6EAA6E;AAC7E,4DAA4D;AAC5D,EAAE;AACF,uDAAuD;AACvD,0EAA0E;AAC1E,gEAAgE;AAChE,2EAA2E;AAC3E,oEAAoE;AACpE,wEAAwE;AACxE,4EAA4E;AAC5E,6CAA6C;AAC7C,0EAA0E;AAC1E,6CAA6C;AAC7C,EAAE;AACF,uEAAuE;AACvE,WAAW;AACX,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAkB,CAAC;AAEvD,wEAAwE;AACxE,mEAAmE;AACnE,uEAAuE;AACvE,uEAAuE;AACvE,MAAM,YAAY,GAAG,iCAAiC,CAAC;AACvD,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AACvD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,eAAe,GAAG,aAAa,CAAC;AAE/B,MAAM,cAAc,GAAG,CAAC,EAAW,EAAE,KAAK,GAAG,CAAC,EAAE,IAAsB,EAAU,EAAE;IACvF,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACxB,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,EAAY,CAAC;IAC3B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,OAAO,EAAU,CAAC;IAChD,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAErB,uEAAuE;IACvE,qEAAqE;IACrE,0CAA0C;IAC1C,MAAM,SAAS,GAAI,EAAmC,CAAC,WAAW,CAAC;IACnE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;gBACvE,KAAK,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,yEAAyE;IACzE,yEAAyE;IACzE,qEAAqE;IACrE,sEAAsE;IACtE,kEAAkE;IAClE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1C,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG;SACjB,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;SAChC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAChC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxDW,QAAA,cAAc,kBAwDzB"}
@@ -1,25 +1,3 @@
1
- /**
2
- * Hook introspection — pairs a fiber's `memoizedState` chain with the
3
- * `__mcp_hooks` metadata array emitted by the test-id-plugin. The metadata
4
- * holds the source-level identity of each hook call (`kind` + variable
5
- * name); React itself only stores the runtime slot. Walking both in
6
- * lockstep recovers names like `useState count` instead of `State[0]`.
7
- *
8
- * Two cross-cutting concerns live alongside the walker:
9
- * - Slot-count estimation for unannotated library hooks (`countHookSlots`)
10
- * so a custom hook that internally consumes 3 slots advances the walker
11
- * by 3, not 1 — keeps trailing metadata aligned.
12
- * - Custom-hook recursion (`flattenHookMeta`) so nested `__mcp_hooks` on
13
- * a custom hook's `fn` get inlined into the metadata stream, with the
14
- * parent emitted as an `expanded: true` synthetic record.
15
- *
16
- * Inputs come through `extractHooks` as a single `filter` bag — kinds /
17
- * names / withValues / projection knobs / compiled redact patterns. The
18
- * walker emits a flat array of `{ kind, name, hook?, via?, expanded?,
19
- * value? }`; `format: "tree"` post-processes into a nested shape by
20
- * tracking the `expanded` parents on a small stack.
21
- */
22
- import { type Fiber } from './types';
23
1
  export interface HookMeta {
24
2
  kind: string;
25
3
  name: string;
@@ -89,7 +67,6 @@ export interface HooksRawOptions {
89
67
  path?: string;
90
68
  withValues?: boolean;
91
69
  }
92
- export declare const parseNamePattern: (raw: string) => ((n: string) => boolean);
93
70
  export interface HookTreeNode {
94
71
  kind: string;
95
72
  name: string;
@@ -107,14 +84,4 @@ export type FlatHookEntry = {
107
84
  value?: unknown;
108
85
  via?: string[];
109
86
  };
110
- export declare const extractHooks: (fiber: Fiber, filter: HooksOptions & {
111
- redactPatterns: RegExp[];
112
- }) => FlatHookEntry[] | HookTreeNode[] | null;
113
- /**
114
- * Normalise a raw `select.hooks` object into the strict `HooksOptions`
115
- * shape the extractor walks against. Splits ambiguous fields (`depth` →
116
- * `valueDepth`, etc.) and compiles name-pattern strings via
117
- * `parseNamePattern`. Used by `parseProjection`.
118
- */
119
- export declare const buildHooksOptions: (raw: HooksRawOptions | undefined) => HooksOptions;
120
- //# sourceMappingURL=hooks.d.ts.map
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IAEH,EAAE,CAAC,EAAE,GAAG,CAAC;IACT;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;IACrD,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;IACnD,UAAU,EAAE,OAAO,CAAC;IAIpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const serializeHookValue: (raw: unknown, kind: string) => unknown;
2
+ //# sourceMappingURL=value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/value.ts"],"names":[],"mappings":"AAoDA,eAAO,MAAM,kBAAkB,QAAS,OAAO,QAAQ,MAAM,KAAG,OAmC/D,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeHookValue = void 0;
4
+ // Try to treat `current` as a React component / native view instance and
5
+ // collapse it to a compact identifier. Native views expose
6
+ // `_internalFiberInstanceHandleDEV` / `_reactInternals`; class instances
7
+ // expose `_reactInternals`. If we find a fiber, we surface its mcpId /
8
+ // testID / component name so the agent can follow up via `query` if needed.
9
+ // If it doesn't look like a component, return null to signal "serialize
10
+ // normally".
11
+ const resolveComponentRef = (current) => {
12
+ if (current === null || current === undefined)
13
+ return null;
14
+ if (typeof current !== 'object')
15
+ return null;
16
+ const obj = current;
17
+ // Pick up a fiber from the typical internal fields used by RN / React.
18
+ const fiber = obj._reactInternals ??
19
+ obj._reactInternalFiber ??
20
+ obj._internalFiberInstanceHandleDEV ??
21
+ obj._internalInstanceHandle;
22
+ const hasNativeTag = '_nativeTag' in obj;
23
+ if (!fiber && !hasNativeTag)
24
+ return null;
25
+ const out = { __componentRef: true };
26
+ if (fiber) {
27
+ const props = fiber.memoizedProps;
28
+ const mcpId = props?.['data-mcp-id'];
29
+ const testID = props?.testID;
30
+ if (mcpId)
31
+ out.mcpId = mcpId;
32
+ if (testID)
33
+ out.testID = testID;
34
+ const typeName = fiber.type?.displayName ??
35
+ fiber.type?.name;
36
+ if (typeName)
37
+ out.componentName = typeName;
38
+ }
39
+ if (hasNativeTag) {
40
+ out.nativeTag = obj._nativeTag;
41
+ const viewConfig = obj.viewConfig;
42
+ if (viewConfig?.uiViewClassName)
43
+ out.viewClass = viewConfig.uiViewClassName;
44
+ }
45
+ return out;
46
+ };
47
+ // Pull a "useful" raw value out of a hook's memoizedState by kind. Does NOT
48
+ // project — leaves the result raw so the final `applyProjection` sees the
49
+ // real value tree (so `path` drill into hook values works). The shape here
50
+ // is purely about *which slot field* to expose for each kind (e.g. Ref's
51
+ // `.current`, Memo/Callback's first element of `[value, deps]`).
52
+ const serializeHookValue = (raw, kind) => {
53
+ const walk = (v) => {
54
+ return v;
55
+ };
56
+ switch (kind) {
57
+ case 'Ref': {
58
+ if (!raw || typeof raw !== 'object' || !('current' in raw)) {
59
+ return walk(raw);
60
+ }
61
+ const current = raw.current;
62
+ const componentRef = resolveComponentRef(current);
63
+ if (componentRef) {
64
+ return { current: componentRef };
65
+ }
66
+ return { current: walk(current) };
67
+ }
68
+ case 'Memo':
69
+ case 'Callback':
70
+ if (Array.isArray(raw) && raw.length === 2) {
71
+ return { deps: raw[1], value: walk(raw[0]) };
72
+ }
73
+ return walk(raw);
74
+ case 'Effect':
75
+ case 'LayoutEffect':
76
+ case 'InsertionEffect': {
77
+ // React's hook slot for effects holds { tag, create, destroy, deps, next }.
78
+ // Only `deps` is safe and useful to surface.
79
+ const effect = raw;
80
+ return effect && typeof effect === 'object' && 'deps' in effect
81
+ ? { deps: effect.deps ?? null }
82
+ : null;
83
+ }
84
+ default:
85
+ return walk(raw);
86
+ }
87
+ };
88
+ exports.serializeHookValue = serializeHookValue;
89
+ //# sourceMappingURL=value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const HOST_COMPONENT = 5;
2
+ export declare const HOST_TEXT = 6;
3
+ export declare const FUNCTION_COMPONENT = 0;
4
+ export declare const CLASS_COMPONENT = 1;
5
+ export declare const FORWARD_REF = 11;
6
+ export declare const MEMO = 14;
7
+ export declare const SIMPLE_MEMO = 15;
8
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/utils/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,IAAI,KAAK,CAAC;AACvB,eAAO,MAAM,WAAW,KAAK,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ // React internal fiber tag values. We poke them via `fiber.tag === HOST_COMPONENT`
3
+ // etc. rather than importing from `react-reconciler` because the package isn't
4
+ // part of RN's runtime export surface, and the constants are stable across the
5
+ // supported React 18 / 19 line.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SIMPLE_MEMO = exports.MEMO = exports.FORWARD_REF = exports.CLASS_COMPONENT = exports.FUNCTION_COMPONENT = exports.HOST_TEXT = exports.HOST_COMPONENT = void 0;
8
+ exports.HOST_COMPONENT = 5;
9
+ exports.HOST_TEXT = 6;
10
+ exports.FUNCTION_COMPONENT = 0;
11
+ exports.CLASS_COMPONENT = 1;
12
+ exports.FORWARD_REF = 11;
13
+ exports.MEMO = 14;
14
+ exports.SIMPLE_MEMO = 15;
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/utils/constants.ts"],"names":[],"mappings":";AAAA,mFAAmF;AACnF,+EAA+E;AAC/E,+EAA+E;AAC/E,gCAAgC;;;AAEnB,QAAA,cAAc,GAAG,CAAC,CAAC;AACnB,QAAA,SAAS,GAAG,CAAC,CAAC;AACd,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,eAAe,GAAG,CAAC,CAAC;AACpB,QAAA,WAAW,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,GAAG,EAAE,CAAC;AACV,QAAA,WAAW,GAAG,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { findAllByQuery, matchesQuery } from './match';
2
+ export { getComponentName, getComponentType } from './naming';
3
+ export { getAvailableMethods, getNativeInstance, measureFiber } from './native';
4
+ export { projectFiberValue } from './projection';
5
+ export { getFiberRoot, setRootRef } from './root';
6
+ export { findScreenFiberByRouteKey } from './screen';
7
+ export { serializeFiber } from './serialize';
8
+ export { findAllFibers, findByMcpId, findByName, findByTestID, findByText, findFiber, findHostFiber, getAncestors, getDirectChildren, getSiblings, } from './traverse';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSiblings = exports.getDirectChildren = exports.getAncestors = exports.findHostFiber = exports.findFiber = exports.findByText = exports.findByTestID = exports.findByName = exports.findByMcpId = exports.findAllFibers = exports.serializeFiber = exports.findScreenFiberByRouteKey = exports.setRootRef = exports.getFiberRoot = exports.projectFiberValue = exports.measureFiber = exports.getNativeInstance = exports.getAvailableMethods = exports.getComponentType = exports.getComponentName = exports.matchesQuery = exports.findAllByQuery = void 0;
4
+ var match_1 = require("./match");
5
+ Object.defineProperty(exports, "findAllByQuery", { enumerable: true, get: function () { return match_1.findAllByQuery; } });
6
+ Object.defineProperty(exports, "matchesQuery", { enumerable: true, get: function () { return match_1.matchesQuery; } });
7
+ var naming_1 = require("./naming");
8
+ Object.defineProperty(exports, "getComponentName", { enumerable: true, get: function () { return naming_1.getComponentName; } });
9
+ Object.defineProperty(exports, "getComponentType", { enumerable: true, get: function () { return naming_1.getComponentType; } });
10
+ var native_1 = require("./native");
11
+ Object.defineProperty(exports, "getAvailableMethods", { enumerable: true, get: function () { return native_1.getAvailableMethods; } });
12
+ Object.defineProperty(exports, "getNativeInstance", { enumerable: true, get: function () { return native_1.getNativeInstance; } });
13
+ Object.defineProperty(exports, "measureFiber", { enumerable: true, get: function () { return native_1.measureFiber; } });
14
+ var projection_1 = require("./projection");
15
+ Object.defineProperty(exports, "projectFiberValue", { enumerable: true, get: function () { return projection_1.projectFiberValue; } });
16
+ var root_1 = require("./root");
17
+ Object.defineProperty(exports, "getFiberRoot", { enumerable: true, get: function () { return root_1.getFiberRoot; } });
18
+ Object.defineProperty(exports, "setRootRef", { enumerable: true, get: function () { return root_1.setRootRef; } });
19
+ var screen_1 = require("./screen");
20
+ Object.defineProperty(exports, "findScreenFiberByRouteKey", { enumerable: true, get: function () { return screen_1.findScreenFiberByRouteKey; } });
21
+ var serialize_1 = require("./serialize");
22
+ Object.defineProperty(exports, "serializeFiber", { enumerable: true, get: function () { return serialize_1.serializeFiber; } });
23
+ var traverse_1 = require("./traverse");
24
+ Object.defineProperty(exports, "findAllFibers", { enumerable: true, get: function () { return traverse_1.findAllFibers; } });
25
+ Object.defineProperty(exports, "findByMcpId", { enumerable: true, get: function () { return traverse_1.findByMcpId; } });
26
+ Object.defineProperty(exports, "findByName", { enumerable: true, get: function () { return traverse_1.findByName; } });
27
+ Object.defineProperty(exports, "findByTestID", { enumerable: true, get: function () { return traverse_1.findByTestID; } });
28
+ Object.defineProperty(exports, "findByText", { enumerable: true, get: function () { return traverse_1.findByText; } });
29
+ Object.defineProperty(exports, "findFiber", { enumerable: true, get: function () { return traverse_1.findFiber; } });
30
+ Object.defineProperty(exports, "findHostFiber", { enumerable: true, get: function () { return traverse_1.findHostFiber; } });
31
+ Object.defineProperty(exports, "getAncestors", { enumerable: true, get: function () { return traverse_1.getAncestors; } });
32
+ Object.defineProperty(exports, "getDirectChildren", { enumerable: true, get: function () { return traverse_1.getDirectChildren; } });
33
+ Object.defineProperty(exports, "getSiblings", { enumerable: true, get: function () { return traverse_1.getSiblings; } });
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/utils/index.ts"],"names":[],"mappings":";;;AAAA,iCAAuD;AAA9C,uGAAA,cAAc,OAAA;AAAE,qGAAA,YAAY,OAAA;AACrC,mCAA8D;AAArD,0GAAA,gBAAgB,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAC3C,mCAAgF;AAAvE,6GAAA,mBAAmB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,sGAAA,YAAY,OAAA;AAC7D,2CAAiD;AAAxC,+GAAA,iBAAiB,OAAA;AAC1B,+BAAkD;AAAzC,oGAAA,YAAY,OAAA;AAAE,kGAAA,UAAU,OAAA;AACjC,mCAAqD;AAA5C,mHAAA,yBAAyB,OAAA;AAClC,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,uCAWoB;AAVlB,yGAAA,aAAa,OAAA;AACb,uGAAA,WAAW,OAAA;AACX,sGAAA,UAAU,OAAA;AACV,wGAAA,YAAY,OAAA;AACZ,sGAAA,UAAU,OAAA;AACV,qGAAA,SAAS,OAAA;AACT,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AACZ,6GAAA,iBAAiB,OAAA;AACjB,uGAAA,WAAW,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { type ComponentQuery, type Fiber } from '../../../modules/fiberTree/types';
2
+ export declare const matchesQuery: (fiber: Fiber, query: ComponentQuery) => boolean;
3
+ export declare const findAllByQuery: (root: Fiber, query: ComponentQuery) => Fiber[];
4
+ //# sourceMappingURL=match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/utils/match.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,KAAK,EAAoB,MAAM,2BAA2B,CAAC;AAgG9F,eAAO,MAAM,YAAY,UAAW,KAAK,SAAS,cAAc,KAAG,OA8DlE,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,KAAK,SAAS,cAAc,KAAG,KAAK,EAIxE,CAAC"}