react-native-mcp-kit 4.2.0 → 4.3.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 (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 +129 -0
  115. package/dist/server/helpers.d.ts.map +1 -0
  116. package/dist/server/helpers.js +250 -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 +89 -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 +103 -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 +48 -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 +149 -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 +116 -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 +169 -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":"index.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/index.ts"],"names":[],"mappings":";;AAoBA,+BAgNC;AAlOD,iDAAoD;AACpD,2CAA4D;AAC5D,uCAMmB;AACnB,2CAA6E;AAC7E,qCAKkB;AAGlB,SAAwB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAgC;IAC7E,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE;YACP,+CAA+C;YAC/C,iDAAiD;YACjD,qEAAqE;YACrE,0EAA0E;YAC1E,kDAAkD;YAClD,sEAAsE;YACtE,wEAAwE;YACxE,6BAA6B;YAC7B,mBAAmB,CAAC,IAAI,EAAE,KAAK;gBAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE;oBAAE,OAAO;gBAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,WAAW,GAAG,KAA4B,CAAC;gBACjD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAkB,CAAC;gBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;gBACxC,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE/C,qEAAqE;gBACrE,kEAAkE;gBAClE,wDAAwD;gBACxD,6DAA6D;gBAC7D,+DAA+D;gBAC/D,yDAAyD;gBACzD,IAAI,IAAA,uBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,IAAI,IAAA,uBAAa,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF,MAAM,KAAK,GAAG,IAAA,iCAAkB,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBACpE,IAAA,6BAAoB,EAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACxD,OAAO;gBACT,CAAC;gBAED,qEAAqE;gBACrE,IAAI,IAAA,0BAAgB,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAA,uBAAa,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAG,IAAA,iCAAkB,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBACpE,IAAA,6BAAoB,EAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAED,iEAAiE;YACjE,iBAAiB,CAAC,IAAI,EAAE,KAAK;gBAC3B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAkB,CAAC;gBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,wBAAY,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,2BAAe,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,aAAqB,CAAC;gBAE1B,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC;qBAAM,IAAI,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,aAAa,GAAG,GAAI,QAAQ,CAAC,MAAmC,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpG,CAAC;qBAAM,CAAC;oBACN,OAAO;gBACT,CAAC;gBAED,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;oBAAE,OAAO;gBAEjE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAAE,OAAO;gBACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAAE,OAAO;gBAE5C,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBAE5C,MAAM,WAAW,GAAG,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;gBAElF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtD,OAAO,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;gBAEH,IAAI,YAAY,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;oBACnD,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;wBAC1C,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAClC,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,EAAE,CACzD,CAAC;oBACJ,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CACvB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CACxE,CAAC;YACJ,CAAC;YAED,gEAAgE;YAChE,wEAAwE;YACxE,oEAAoE;YACpE,qEAAqE;YACrE,kEAAkE;YAClE,sEAAsE;YACtE,sEAAsE;YACtE,qEAAqE;YACrE,gFAAgF;YAChF,gEAAgE;YAChE,mEAAmE;YACnE,OAAO,EAAE;gBACP,IAAI,CAAC,WAAW,EAAE,KAAK;oBACrB,MAAM,WAAW,GAAG,KAA4B,CAAC;oBACjD,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC;oBACzC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO;oBACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;oBAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;wBAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;4BAAE,SAAS;wBACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACtB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;4BAChC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,IAAA,4BAAmB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;wBACtF,CAAC;6BAAM,CAAC;4BACN,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,IAAA,6BAAoB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;wBACvF,CAAC;oBACH,CAAC;oBACD,WAAW,CAAC,cAAc,GAAG,EAAE,CAAC;gBAClC,CAAC;aACF;YAED,kBAAkB,CAAC,IAAI,EAAE,KAAK;gBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;oBAAE,OAAO;gBAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9B,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,MAAM,WAAW,GAAG,KAA4B,CAAC;gBAEjD,kEAAkE;gBAClE,iEAAiE;gBACjE,gEAAgE;gBAChE,uEAAuE;gBACvE,yDAAyD;gBACzD,+DAA+D;gBAC/D,mDAAmD;gBACnD,IAAI,iBAAiB,GAA8B,IAAI,CAAC,GAAG,CACzD,MAAM,CACsB,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,IACE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC;wBAC5B,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;wBAC7B,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC;wBACnC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EACjC,CAAC;wBACD,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAA8B,CAAC;wBACrF,QAAQ,GAAG,iBAAiB,CAAC,IAA6B,CAAC;wBAC3D,SAAS;oBACX,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,MAAM,IAAI,GAAG,QAAQ,CAAC;gBAEtB,sDAAsD;gBACtD,oEAAoE;gBACpE,kEAAkE;gBAClE,mEAAmE;gBACnE,qEAAqE;gBACrE,kEAAkE;gBAClE,oEAAoE;gBACpE,+DAA+D;gBAC/D,iEAAiE;gBACjE,mEAAmE;gBACnE,IAAI,QAAQ,GAAqC,IAAI,CAAC;gBACtD,IAAI,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtE,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAA8B,CAAC;gBACxE,CAAC;qBAAM,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,QAAQ,GAAG,IAAA,qCAAyB,EAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;oBAE3D,kEAAkE;oBAClE,iEAAiE;oBACjE,8DAA8D;oBAC9D,gDAAgD;oBAChD,IAAI,CAAC,QAAQ,IAAI,IAAA,uBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,MAAM,KAAK,GAAG,IAAA,+BAAmB,EAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;wBACxD,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;4BACvC,IAAI,IAAI,EAAE,CAAC;gCACT,IAAA,yBAAgB,EAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAChE,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAE,OAAO;gBAExC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAkB,CAAC;gBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;gBACxC,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE/C,6DAA6D;gBAC7D,gEAAgE;gBAChE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,IAAI,IAAA,uBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,IAAI,IAAA,uBAAa,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF,MAAM,KAAK,GAAG,IAAA,iCAAkB,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBACpE,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5C,IAAI,CAAC,SAAS;wBAAE,OAAO;oBACvB,IAAA,6BAAoB,EAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC7D,OAAO;gBACT,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,IAAA,0BAAgB,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAA,uBAAa,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAG,IAAA,iCAAkB,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBACpE,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5C,IAAI,CAAC,SAAS;wBAAE,OAAO;oBACvB,IAAA,6BAAoB,EAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type NodePath, type types as BabelTypes } from '@babel/core';
2
+ import { type CollectedHook, type PluginPassWithQueue } from './types';
3
+ export declare const buildHooksGetterStmt: (outer: string, inner: string, t: typeof BabelTypes) => BabelTypes.TryStatement;
4
+ export declare const buildAssignmentStmt: (componentName: string, hooks: CollectedHook[], t: typeof BabelTypes) => BabelTypes.TryStatement;
5
+ export declare const queueHooksAssignment: (state: PluginPassWithQueue, statementPath: NodePath<BabelTypes.Node>, componentName: string, hooks: CollectedHook[]) => void;
6
+ export declare const queueHooksGetter: (state: PluginPassWithQueue, statementPath: NodePath<BabelTypes.Node>, outer: string, inner: string) => void;
7
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA4CvE,eAAO,MAAM,oBAAoB,UACxB,MAAM,SACN,MAAM,KACV,OAAO,UAAU,KACnB,UAAU,CAAC,YAmBb,CAAC;AAWF,eAAO,MAAM,mBAAmB,kBACf,MAAM,SACd,aAAa,EAAE,KACnB,OAAO,UAAU,KACnB,UAAU,CAAC,YAUb,CAAC;AASF,eAAO,MAAM,oBAAoB,UACxB,mBAAmB,iBACX,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBACzB,MAAM,SACd,aAAa,EAAE,KACrB,IAIF,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,iBACX,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SACjC,MAAM,SACN,MAAM,KACZ,IAGF,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queueHooksGetter = exports.queueHooksAssignment = exports.buildAssignmentStmt = exports.buildHooksGetterStmt = void 0;
4
+ const buildHooksArrayExpr = (hooks, t) => {
5
+ return t.arrayExpression(hooks.map((h) => {
6
+ const props = [
7
+ t.objectProperty(t.identifier('name'), t.stringLiteral(h.name)),
8
+ t.objectProperty(t.identifier('kind'), t.stringLiteral(h.kind)),
9
+ t.objectProperty(t.identifier('hook'), t.stringLiteral(h.hook)),
10
+ ];
11
+ if (h.mcpId) {
12
+ props.push(t.objectProperty(t.identifier('mcpId'), t.stringLiteral(h.mcpId)));
13
+ }
14
+ if (h.fnIdent) {
15
+ // fn: useAuth (runtime reads .__mcp_hooks off this identifier)
16
+ props.push(t.objectProperty(t.identifier('fn'), t.identifier(h.fnIdent)));
17
+ }
18
+ return t.objectExpression(props);
19
+ }));
20
+ };
21
+ // Build:
22
+ // try {
23
+ // Object.defineProperty(Outer, '__mcp_hooks', {
24
+ // configurable: true,
25
+ // get: () => Inner.__mcp_hooks,
26
+ // });
27
+ // } catch {}
28
+ // Used for the identifier-ref HOC case (`const Outer = memo(Inner)`) where
29
+ // we can't statically collect hooks from the wrapped function. The getter
30
+ // forwards to the inner binding's metadata at read time, sidestepping
31
+ // declaration order, hoisting, scope, and custom-HOC return shape.
32
+ //
33
+ // The try/catch is mandatory: the HOC's return value is statically unknown
34
+ // — it could be a primitive (number / string), `null`/`undefined`, or a
35
+ // frozen / sealed object. Any of those make `Object.defineProperty` throw
36
+ // `TypeError` in strict mode (which ES modules always are). A throw at
37
+ // module-init kills the bundle. Swallowing here is harmless: the worst
38
+ // outcome is metadata not being attached to that one binding, exactly as
39
+ // if the plugin had skipped it.
40
+ const buildHooksGetterStmt = (outer, inner, t) => {
41
+ const defineCall = t.expressionStatement(t.callExpression(t.memberExpression(t.identifier('Object'), t.identifier('defineProperty')), [
42
+ t.identifier(outer),
43
+ t.stringLiteral('__mcp_hooks'),
44
+ t.objectExpression([
45
+ t.objectProperty(t.identifier('configurable'), t.booleanLiteral(true)),
46
+ t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([], t.memberExpression(t.identifier(inner), t.identifier('__mcp_hooks')))),
47
+ ]),
48
+ ]));
49
+ // Optional-catch-binding (ES2019): `catch {}` — supported by Hermes.
50
+ return t.tryStatement(t.blockStatement([defineCall]), t.catchClause(null, t.blockStatement([])));
51
+ };
52
+ exports.buildHooksGetterStmt = buildHooksGetterStmt;
53
+ // Build the `ComponentName.__mcp_hooks = [...]` statement, wrapped in a
54
+ // `try { ... } catch {}` so a stale binding can't crash module-init. We
55
+ // place these at the END of the program body — by the time they run, every
56
+ // `var X = ...` in the file has been initialized. Without that placement,
57
+ // react-compiler + react-native preset rewrite `const Foo = ...` to a
58
+ // hoisted `var Foo = ...` whose binding is `undefined` until its source-line
59
+ // is reached, and a worklets-extracted `var _worklet_..._init_data` slips
60
+ // between our queued insertAfter target and the rebuilt declaration —
61
+ // `Foo.__mcp_hooks = [...]` then runs against `undefined` and throws.
62
+ const buildAssignmentStmt = (componentName, hooks, t) => {
63
+ const assignment = t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.identifier(componentName), t.identifier('__mcp_hooks')), buildHooksArrayExpr(hooks, t)));
64
+ return t.tryStatement(t.blockStatement([assignment]), t.catchClause(null, t.blockStatement([])));
65
+ };
66
+ exports.buildAssignmentStmt = buildAssignmentStmt;
67
+ // Queue a `ComponentName.__mcp_hooks = [...]` insertion for `Program:exit`.
68
+ // Inserting during the main traversal is unsafe: react-refresh's babel
69
+ // plugin replaces HOC-wrapped function expressions via `replaceWith`, which
70
+ // re-traverses the rebuilt subtree and (in our experience) drops sibling
71
+ // statements we'd inserted via `insertAfter` on the original declarator.
72
+ // Deferring to `Program:exit` keeps our writes visible to the final output
73
+ // without interfering with replaceWith semantics.
74
+ const queueHooksAssignment = (state, statementPath, componentName, hooks) => {
75
+ if (hooks.length === 0)
76
+ return;
77
+ const queue = (state.pendingInjects ??= []);
78
+ queue.push({ hooks, kind: 'assignment', outer: componentName, statementPath });
79
+ };
80
+ exports.queueHooksAssignment = queueHooksAssignment;
81
+ const queueHooksGetter = (state, statementPath, outer, inner) => {
82
+ const queue = (state.pendingInjects ??= []);
83
+ queue.push({ inner, kind: 'getter', outer, statementPath });
84
+ };
85
+ exports.queueHooksGetter = queueHooksGetter;
86
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/inject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { type NodePath, type PluginPass, type types as BabelTypes } from '@babel/core';
2
+ /**
3
+ * Per-file plugin state with deferred-injection queue. Babel instantiates
4
+ * `PluginPass` per file, so this naturally scopes the queue to a single
5
+ * transformation. We collect all the metadata assignments during the main
6
+ * traversal, then flush them at `Program:exit` — that runs AFTER other
7
+ * plugins' replaceWith calls (e.g. react-refresh wrapping HOC chains in
8
+ * `_s(...)` signature calls), so our injected statements aren't dropped by
9
+ * babel's re-traversal of the rebuilt subtrees.
10
+ */
11
+ export type DeferredInsert = {
12
+ hooks: CollectedHook[];
13
+ kind: 'assignment';
14
+ outer: string;
15
+ statementPath: NodePath<BabelTypes.Node>;
16
+ } | {
17
+ inner: string;
18
+ kind: 'getter';
19
+ outer: string;
20
+ statementPath: NodePath<BabelTypes.Node>;
21
+ };
22
+ export interface PluginPassWithQueue extends PluginPass {
23
+ pendingInjects?: DeferredInsert[];
24
+ }
25
+ export interface PluginOptions {
26
+ /** Attribute name to use. Default: "data-mcp-id" */
27
+ attr?: string;
28
+ /** Components to skip. Default: common wrappers */
29
+ exclude?: string[];
30
+ /** Components to add id to. Default: all capitalized JSX elements */
31
+ include?: string[];
32
+ /** Separator between parts. Default: ":" */
33
+ separator?: string;
34
+ }
35
+ export interface CollectedHook {
36
+ /** Source-level hook function name (`useState`, `useAnimatedStyle`, etc.).
37
+ * Surfaced to the agent alongside `name` (the consuming binding) so it
38
+ * can tell e.g. `count (useState)` from `count (useReducer)` without
39
+ * inferring from `kind`. For React.useXxx member-call form we still
40
+ * record just the property name (`useState`). */
41
+ hook: string;
42
+ kind: string;
43
+ name: string;
44
+ /**
45
+ * For Custom-kind entries: the source identifier of the hook function being
46
+ * called. Runtime reads `identifierRef.__mcp_hooks` to recursively expand
47
+ * sub-hooks, keeping slot alignment exact even when custom hooks span
48
+ * multiple built-in slots. Built-in hooks (State/Memo/...) don't need this.
49
+ */
50
+ fnIdent?: string;
51
+ /**
52
+ * Call-site identity in the same shape as JSX `data-mcp-id`:
53
+ * `<name>:<shortFile>:<line>`. Lets an agent `Read(<file>, <line>)`
54
+ * straight from a hook entry without grepping for the variable name.
55
+ * Empty when source location isn't available (synthetic AST nodes).
56
+ */
57
+ mcpId?: string;
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CAC1C,GACD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE/F,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;qDAIiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -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/babel/testIdPlugin/types.ts"],"names":[],"mappings":""}
package/dist/bin/ios-hid CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { McpClient, McpContext, McpProvider, useMcpModule, useMcpTool } from './client/index';
2
2
  export { type McpContextValue, type McpModule, type McpProviderProps, type ToolHandler, } from './client/index';
3
- export { alertModule, fiberTreeModule, consoleModule, deviceModule, errorsModule, i18nextModule, navigationModule, networkModule, reactQueryModule, storageModule, } from './modules/index';
3
+ export { alertModule, fiberTreeModule, consoleModule, deviceModule, errorsModule, i18nextModule, logBoxModule, navigationModule, networkModule, reactQueryModule, storageModule, } from './modules/index';
4
4
  export { type ClientMessage, type ModuleDescriptor, type ModuleToolDescriptor, type RegistrationMessage, type ServerMessage, type ToolRegisterMessage, type ToolRequest, type ToolResponse, type ToolUnregisterMessage, } from './shared/protocol';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.storageModule = exports.reactQueryModule = exports.networkModule = exports.navigationModule = exports.i18nextModule = exports.errorsModule = exports.deviceModule = exports.consoleModule = exports.fiberTreeModule = exports.alertModule = exports.useMcpTool = exports.useMcpModule = exports.McpProvider = exports.McpContext = exports.McpClient = void 0;
3
+ exports.storageModule = exports.reactQueryModule = exports.networkModule = exports.navigationModule = exports.logBoxModule = exports.i18nextModule = exports.errorsModule = exports.deviceModule = exports.consoleModule = exports.fiberTreeModule = exports.alertModule = exports.useMcpTool = exports.useMcpModule = exports.McpProvider = exports.McpContext = exports.McpClient = void 0;
4
4
  // Client (safe for React Native)
5
5
  var index_1 = require("./client/index");
6
6
  Object.defineProperty(exports, "McpClient", { enumerable: true, get: function () { return index_1.McpClient; } });
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "consoleModule", { enumerable: true, get: functio
16
16
  Object.defineProperty(exports, "deviceModule", { enumerable: true, get: function () { return index_2.deviceModule; } });
17
17
  Object.defineProperty(exports, "errorsModule", { enumerable: true, get: function () { return index_2.errorsModule; } });
18
18
  Object.defineProperty(exports, "i18nextModule", { enumerable: true, get: function () { return index_2.i18nextModule; } });
19
+ Object.defineProperty(exports, "logBoxModule", { enumerable: true, get: function () { return index_2.logBoxModule; } });
19
20
  Object.defineProperty(exports, "navigationModule", { enumerable: true, get: function () { return index_2.navigationModule; } });
20
21
  Object.defineProperty(exports, "networkModule", { enumerable: true, get: function () { return index_2.networkModule; } });
21
22
  Object.defineProperty(exports, "reactQueryModule", { enumerable: true, get: function () { return index_2.reactQueryModule; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,wCAA8F;AAArF,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,mGAAA,UAAU,OAAA;AAQrE,kCAAkC;AAClC,yCAWyB;AAVvB,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AACf,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,wCAA8F;AAArF,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,mGAAA,UAAU,OAAA;AAQrE,kCAAkC;AAClC,yCAYyB;AAXvB,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AACf,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA"}
@@ -0,0 +1,6 @@
1
+ import { type Fiber } from '../../../modules/fiberTree/types';
2
+ import { type FlatHookEntry, type HooksOptions, type HookTreeNode } from './types';
3
+ export declare const extractHooks: (fiber: Fiber, filter: HooksOptions & {
4
+ redactPatterns: RegExp[];
5
+ }) => FlatHookEntry[] | HookTreeNode[] | null;
6
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/extract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAMvD,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,YAAY,UAChB,KAAK,UACJ,YAAY,GAAG;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,KAClD,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,IA2LrC,CAAC"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractHooks = void 0;
4
+ const redact_1 = require("../../../modules/fiberTree/redact");
5
+ const utils_1 = require("../../../modules/fiberTree/utils");
6
+ const flatten_1 = require("./flatten");
7
+ const shape_1 = require("./shape");
8
+ const slotCount_1 = require("./slotCount");
9
+ const value_1 = require("./value");
10
+ const extractHooks = (fiber, filter) => {
11
+ // React's wrapper machinery makes "where does metadata live" depend on
12
+ // the exact HOC chain. We try the most likely homes in order:
13
+ //
14
+ // 1. `fiber.type.__mcp_hooks` — bare components, FunctionDeclarations,
15
+ // and the outer memo fiber when the chain is just memo(fn).
16
+ // 2. `fiber.elementType.__mcp_hooks` — memo(fn) without compare.
17
+ // React converts the fiber to SimpleMemoComponent and rewrites
18
+ // `fiber.type` to the inner function (see `updateMemoComponent` in
19
+ // ReactFabric); our metadata sits on the outer memo wrapper, which
20
+ // survives only on `elementType`.
21
+ // 3. `fiber.type.render.__mcp_hooks` — forwardRef wrapper. React lays
22
+ // out memo(forwardRef(fn)) as three fibers (memo → forwardRef →
23
+ // function). When the user queries by displayName they tend to
24
+ // match the middle ForwardRef fiber (whose displayName resolves
25
+ // via `render.displayName`); fiber.type there is the forwardRef
26
+ // wrapper, which holds the inner fn at `.render`. The babel plugin
27
+ // put plain metadata on that fn via the FunctionDecl visitor.
28
+ // 4. `fiber.type.type.__mcp_hooks` — memo wrapper around forwardRef
29
+ // (or any non-function inner). Not the SimpleMemoComponent path,
30
+ // so `fiber.type` stays as the memo wrapper and `.type` is the
31
+ // inner forwardRef / class / etc. This catches getter installations
32
+ // on the wrapper layer too.
33
+ const candidates = [
34
+ fiber.type,
35
+ fiber.elementType,
36
+ fiber.type?.render,
37
+ fiber.type?.type,
38
+ ];
39
+ let rawMeta;
40
+ for (const c of candidates) {
41
+ const m = c?.__mcp_hooks;
42
+ if (Array.isArray(m)) {
43
+ rawMeta = m;
44
+ break;
45
+ }
46
+ }
47
+ if (!Array.isArray(rawMeta))
48
+ return null;
49
+ const meta = (0, flatten_1.flattenHookMeta)(rawMeta, [], new WeakSet(), filter.expansionDepth);
50
+ const out = [];
51
+ let state = fiber.memoizedState;
52
+ let metaIdx = 0;
53
+ // Walk the fiber's hook chain and pair each slot with the next metadata
54
+ // entry whose `kind` is shape-compatible with the slot. Strongly-shaped
55
+ // kinds (Ref / Memo / Callback / Effect) match only the corresponding
56
+ // React hook shape. Permissive kinds (State / Reducer / Context / Custom)
57
+ // reject obvious mismatches (effect-record, ref-shape) so they don't
58
+ // swallow slots belonging to preceding custom hooks.
59
+ //
60
+ // For Custom-leaf entries — typically black-box library hooks
61
+ // (`useSelector`, `useQuery`, etc.) where flattenHookMeta couldn't expand
62
+ // because `fn.__mcp_hooks` was missing — we estimate slot count via
63
+ // `countHookSlots` and advance the fiber chain by that many slots in one
64
+ // step. Without this, a hook that consumes 3 internal slots only
65
+ // advances by 1 in the walker, drifting all trailing entries off the end
66
+ // of the chain.
67
+ const emitEntry = (entry, rawValueSlot) => {
68
+ const { hook, kind, mcpId, name, via } = entry;
69
+ const passesKind = !filter.kindsSet || filter.kindsSet.has(kind);
70
+ const passesName = !filter.nameMatchers ||
71
+ filter.nameMatchers.some((m) => {
72
+ return m(name);
73
+ });
74
+ const passesMcpId = !filter.mcpIdMatchers ||
75
+ (mcpId !== undefined &&
76
+ filter.mcpIdMatchers.some((m) => {
77
+ return m(mcpId);
78
+ }));
79
+ if (!(passesKind && passesName && passesMcpId))
80
+ return;
81
+ const record = { kind, name };
82
+ // Prefer the babel-emitted hook name; fall back to fn.name for entries
83
+ // produced by older bundles that predate the `hook` field.
84
+ const resolvedHook = hook ?? (typeof entry.fn === 'function' ? entry.fn.name : undefined);
85
+ if (resolvedHook)
86
+ record.hook = resolvedHook;
87
+ if (mcpId)
88
+ record.mcpId = mcpId;
89
+ if (filter.withValues && rawValueSlot !== undefined) {
90
+ // Redaction guard: mask the value (but keep kind/name/hook visible)
91
+ // when the entry's name OR any ancestor in `via` matches a redact
92
+ // pattern. Catches both direct sensitive hooks (`password` State)
93
+ // and leaves nested under sensitive customs (a `value` field of
94
+ // `useCredentials()` won't slip through).
95
+ const isRedacted = (0, redact_1.matchesAnyRedactPattern)(name, filter.redactPatterns) ||
96
+ (via?.some((v) => {
97
+ return (0, redact_1.matchesAnyRedactPattern)(v, filter.redactPatterns);
98
+ }) ??
99
+ false);
100
+ if (isRedacted) {
101
+ record.value = redact_1.REDACTED_VALUE;
102
+ }
103
+ else {
104
+ let value;
105
+ try {
106
+ // Kind-aware extraction (Ref's .current, Memo's first slot, ...)
107
+ // returns RAW. Then project with the user-given hook-value options
108
+ // (path / depth / maxBytes from select.hooks). Default depth=1 so
109
+ // each hook value stays compact even when withValues:true.
110
+ const extracted = (0, value_1.serializeHookValue)(rawValueSlot, kind);
111
+ value = (0, utils_1.projectFiberValue)(extracted, {
112
+ depth: filter.valueDepth ?? 1,
113
+ maxBytes: filter.valueMaxBytes,
114
+ path: filter.valuePath,
115
+ });
116
+ // Final cycle / non-serialisable check — the MCP bridge will
117
+ // stringify this for transport, so bail now rather than killing
118
+ // the whole response if one stray value carries a cycle past our
119
+ // WeakSet (e.g. Proxy, lazy getter, native-bridged object).
120
+ JSON.stringify(value);
121
+ }
122
+ catch {
123
+ value = '[Unserialisable value]';
124
+ }
125
+ record.value = value;
126
+ }
127
+ }
128
+ if (via && via.length > 0)
129
+ record.via = via;
130
+ if (entry.expanded)
131
+ record.expanded = true;
132
+ out.push(record);
133
+ };
134
+ const advanceState = (steps) => {
135
+ for (let i = 0; i < steps && state; i++)
136
+ state = state.next;
137
+ };
138
+ while (state && metaIdx < meta.length) {
139
+ const entry = meta[metaIdx];
140
+ if (!entry) {
141
+ metaIdx++;
142
+ continue;
143
+ }
144
+ // Expanded parent (synthetic, marks the call-site of a recursively
145
+ // expanded custom hook). Emit without consuming any fiber slot — the
146
+ // children that follow are the real slot-bearing entries.
147
+ if (entry.expanded) {
148
+ emitEntry(entry, undefined);
149
+ metaIdx++;
150
+ continue;
151
+ }
152
+ // Custom-leaf with a known fn → recurse into source to estimate slot
153
+ // count, then consume that many slots at once. The first slot's value
154
+ // is exposed (best approximation of "this hook's value"); the rest are
155
+ // skipped silently as internals of the library hook.
156
+ if (entry.kind === 'Custom' && typeof entry.fn === 'function') {
157
+ const slots = (0, slotCount_1.countHookSlots)(entry.fn);
158
+ if (slots > 1) {
159
+ emitEntry(entry, state.memoizedState);
160
+ advanceState(slots);
161
+ metaIdx++;
162
+ continue;
163
+ }
164
+ }
165
+ if (!(0, shape_1.shapeMatchesKind)(state.memoizedState, entry.kind)) {
166
+ state = state.next;
167
+ continue;
168
+ }
169
+ emitEntry(entry, state.memoizedState);
170
+ metaIdx++;
171
+ state = state.next;
172
+ }
173
+ // Any metadata entries left after the fiber chain ran dry didn't get a
174
+ // slot match. Emit them anyway (without value) so the agent at least
175
+ // sees the hook exists — this is strictly better than silently dropping,
176
+ // and helps debug alignment issues. Common cause: a preceding Custom
177
+ // hook consumed more slots than countHookSlots estimated.
178
+ while (metaIdx < meta.length) {
179
+ const entry = meta[metaIdx];
180
+ if (entry)
181
+ emitEntry(entry, undefined);
182
+ metaIdx++;
183
+ }
184
+ return filter.format === 'tree' ? (0, flatten_1.flatHooksToTree)(out) : out;
185
+ };
186
+ exports.extractHooks = extractHooks;
187
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/extract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type FlatHookEntry, type FlattenedHook, type HookMeta, type HookTreeNode } from './types';
2
+ export declare const flattenHookMeta: (meta: HookMeta[], via?: string[], seen?: WeakSet<object>, maxDepth?: number) => FlattenedHook[];
3
+ export declare const flatHooksToTree: (flat: FlatHookEntry[]) => HookTreeNode[];
4
+ //# sourceMappingURL=flatten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/flatten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAcnG,eAAO,MAAM,eAAe,SACpB,QAAQ,EAAE,QACX,MAAM,EAAE,SACP,OAAO,CAAC,MAAM,CAAC,wBAEpB,aAAa,EAoBf,CAAC;AAOF,eAAO,MAAM,eAAe,SAAU,aAAa,EAAE,KAAG,YAAY,EA8BnE,CAAC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flatHooksToTree = exports.flattenHookMeta = void 0;
4
+ // Flatten a metadata array by recursively inlining custom-hook sub-metadata.
5
+ // Stops on cycles (hook references itself) and on Custom entries whose `fn`
6
+ // isn't annotated (library hooks that bypassed the babel plugin — usually
7
+ // pre-compiled node_modules). Such unannotated entries stay as single
8
+ // records and rely on shape-check for alignment.
9
+ //
10
+ // Custom entries with annotated `fn` produce TWO records: a parent (marked
11
+ // `expanded: true`, no slot consumption) followed by all flattened
12
+ // children. This keeps the call-site visible in the output — without it
13
+ // the agent would see e.g. `wrapperAnimStyle.areAnimationsActive` deep
14
+ // in `via:` but never the `wrapperAnimStyle = useAnimatedStyle(...)`
15
+ // invocation that owns those slots.
16
+ const flattenHookMeta = (meta, via = [], seen = new WeakSet(), maxDepth = Infinity) => {
17
+ const out = [];
18
+ for (const entry of meta) {
19
+ const fn = entry.fn;
20
+ const sub = fn && typeof fn === 'function' && Array.isArray(fn.__mcp_hooks) ? fn.__mcp_hooks : undefined;
21
+ // Stop expanding once `via.length` would reach the cap — at that point
22
+ // the current entry is treated as a leaf (Custom record without
23
+ // children). The slot-walker still pairs it with one slot, so output
24
+ // stays internally consistent.
25
+ if (sub && !seen.has(fn) && via.length < maxDepth) {
26
+ seen.add(fn);
27
+ out.push({ ...entry, expanded: true, via });
28
+ out.push(...(0, exports.flattenHookMeta)(sub, [...via, entry.name], seen, maxDepth));
29
+ seen.delete(fn);
30
+ }
31
+ else {
32
+ out.push({ ...entry, via });
33
+ }
34
+ }
35
+ return out;
36
+ };
37
+ exports.flattenHookMeta = flattenHookMeta;
38
+ // Convert the flat output of the slot walker into a nested tree using the
39
+ // `via` prefix as the parent chain. Each `expanded: true` entry becomes a
40
+ // node that owns subsequent entries whose `via` extends the parent's path.
41
+ // Stack-based single pass — no recursion. Strips `expanded` from the
42
+ // returned shape since structure makes the parent obvious.
43
+ const flatHooksToTree = (flat) => {
44
+ const root = [];
45
+ // Stack of currently-open parents, indexed by their depth (= via.length
46
+ // of THEIR own entry, since their children sit at via.length + 1).
47
+ const parents = [];
48
+ for (const entry of flat) {
49
+ const depth = entry.via?.length ?? 0;
50
+ while (parents.length > depth)
51
+ parents.pop();
52
+ const node = { kind: entry.kind, name: entry.name };
53
+ if (entry.hook !== undefined)
54
+ node.hook = entry.hook;
55
+ if (entry.mcpId !== undefined)
56
+ node.mcpId = entry.mcpId;
57
+ if (entry.value !== undefined)
58
+ node.value = entry.value;
59
+ if (parents.length === 0) {
60
+ root.push(node);
61
+ }
62
+ else {
63
+ const parent = parents[parents.length - 1];
64
+ if (parent) {
65
+ parent.children = parent.children ?? [];
66
+ parent.children.push(node);
67
+ }
68
+ else {
69
+ root.push(node);
70
+ }
71
+ }
72
+ if (entry.expanded) {
73
+ // Push as the new active parent at this depth. Subsequent entries
74
+ // with via.length > depth become this node's descendants.
75
+ parents.push(node);
76
+ }
77
+ }
78
+ return root;
79
+ };
80
+ exports.flatHooksToTree = flatHooksToTree;
81
+ //# sourceMappingURL=flatten.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/flatten.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { extractHooks } from './extract';
2
+ export { buildHooksOptions } from './options';
3
+ export { parseNamePattern } from './patterns';
4
+ export { type FlatHookEntry, type HookMeta, type HooksOptions, type HooksRawOptions, type HookTreeNode, } from './types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseNamePattern = exports.buildHooksOptions = exports.extractHooks = void 0;
4
+ var extract_1 = require("./extract");
5
+ Object.defineProperty(exports, "extractHooks", { enumerable: true, get: function () { return extract_1.extractHooks; } });
6
+ var options_1 = require("./options");
7
+ Object.defineProperty(exports, "buildHooksOptions", { enumerable: true, get: function () { return options_1.buildHooksOptions; } });
8
+ var patterns_1 = require("./patterns");
9
+ Object.defineProperty(exports, "parseNamePattern", { enumerable: true, get: function () { return patterns_1.parseNamePattern; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/index.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,9 @@
1
+ import { type HooksOptions, type HooksRawOptions } from './types';
2
+ /**
3
+ * Normalise a raw `select.hooks` object into the strict `HooksOptions`
4
+ * shape the extractor walks against. Splits ambiguous fields (`depth` →
5
+ * `valueDepth`, etc.) and compiles name-pattern strings via
6
+ * `parseNamePattern`. Used by `parseProjection`.
7
+ */
8
+ export declare const buildHooksOptions: (raw: HooksRawOptions | undefined) => HooksOptions;
9
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAS,eAAe,GAAG,SAAS,KAAG,YAgBpE,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildHooksOptions = void 0;
4
+ const patterns_1 = require("./patterns");
5
+ /**
6
+ * Normalise a raw `select.hooks` object into the strict `HooksOptions`
7
+ * shape the extractor walks against. Splits ambiguous fields (`depth` →
8
+ * `valueDepth`, etc.) and compiles name-pattern strings via
9
+ * `parseNamePattern`. Used by `parseProjection`.
10
+ */
11
+ const buildHooksOptions = (raw) => {
12
+ return {
13
+ expansionDepth: typeof raw?.expansionDepth === 'number' && raw.expansionDepth >= 0
14
+ ? Math.floor(raw.expansionDepth)
15
+ : Infinity,
16
+ format: raw?.format === 'tree' ? 'tree' : 'flat',
17
+ kindsSet: Array.isArray(raw?.kinds) ? new Set(raw.kinds) : null,
18
+ mcpIdMatchers: Array.isArray(raw?.mcpIds) ? raw.mcpIds.map(patterns_1.parseNamePattern) : null,
19
+ nameMatchers: Array.isArray(raw?.names) ? raw.names.map(patterns_1.parseNamePattern) : null,
20
+ valueDepth: typeof raw?.depth === 'number' && raw.depth >= 0 ? raw.depth : undefined,
21
+ valueMaxBytes: typeof raw?.maxBytes === 'number' && raw.maxBytes >= 0 ? raw.maxBytes : undefined,
22
+ valuePath: typeof raw?.path === 'string' ? raw.path : undefined,
23
+ withValues: raw?.withValues === true,
24
+ };
25
+ };
26
+ exports.buildHooksOptions = buildHooksOptions;
27
+ //# sourceMappingURL=options.js.map