@userflow-tech/react-native 0.3.0 → 0.4.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 (253) hide show
  1. package/README.md +360 -70
  2. package/docs/anchoring.md +58 -42
  3. package/docs/troubleshooting.md +69 -27
  4. package/expo-plugin/hostDependencyWarnings.d.ts +21 -0
  5. package/expo-plugin/hostDependencyWarnings.d.ts.map +1 -0
  6. package/expo-plugin/hostDependencyWarnings.js +101 -0
  7. package/expo-plugin/hostDependencyWarnings.js.map +1 -0
  8. package/expo-plugin/withUserflow.d.ts.map +1 -1
  9. package/expo-plugin/withUserflow.js +16 -0
  10. package/expo-plugin/withUserflow.js.map +1 -1
  11. package/lib/commonjs/anchors/AnchorRegistry.js +7 -0
  12. package/lib/commonjs/anchors/AnchorRegistry.js.map +1 -1
  13. package/lib/commonjs/anchors/elementConditionEvaluator.js +189 -55
  14. package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
  15. package/lib/commonjs/anchors/elementTapMonitor.js +92 -0
  16. package/lib/commonjs/anchors/elementTapMonitor.js.map +1 -0
  17. package/lib/commonjs/anchors/elementTargetMatch.js +85 -0
  18. package/lib/commonjs/anchors/elementTargetMatch.js.map +1 -0
  19. package/lib/commonjs/anchors/fiber/findAnchorFiber.js +64 -39
  20. package/lib/commonjs/anchors/fiber/findAnchorFiber.js.map +1 -1
  21. package/lib/commonjs/anchors/fiber/touchTargetFiber.js +105 -0
  22. package/lib/commonjs/anchors/fiber/touchTargetFiber.js.map +1 -0
  23. package/lib/commonjs/anchors/resolveAnchorHost.js +2 -1
  24. package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
  25. package/lib/commonjs/anchors/resolveAutoAnchorHost.js +4 -2
  26. package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -1
  27. package/lib/commonjs/anchors/resolveElementTargets.js +158 -0
  28. package/lib/commonjs/anchors/resolveElementTargets.js.map +1 -0
  29. package/lib/commonjs/anchors/targetPressMonitor.js +9 -3
  30. package/lib/commonjs/anchors/targetPressMonitor.js.map +1 -1
  31. package/lib/commonjs/anchors/useUserflowAnchor.js +1 -0
  32. package/lib/commonjs/anchors/useUserflowAnchor.js.map +1 -1
  33. package/lib/commonjs/anonymousId.js +16 -7
  34. package/lib/commonjs/anonymousId.js.map +1 -1
  35. package/lib/commonjs/authoring/capturePickerScreenshot.js +9 -1
  36. package/lib/commonjs/authoring/capturePickerScreenshot.js.map +1 -1
  37. package/lib/commonjs/evalJs/getWebView.js +5 -13
  38. package/lib/commonjs/evalJs/getWebView.js.map +1 -1
  39. package/lib/commonjs/hostAppVersion.js +6 -1
  40. package/lib/commonjs/hostAppVersion.js.map +1 -1
  41. package/lib/commonjs/index.js +5 -0
  42. package/lib/commonjs/index.js.map +1 -1
  43. package/lib/commonjs/installCheck.js +183 -0
  44. package/lib/commonjs/installCheck.js.map +1 -0
  45. package/lib/commonjs/nativeModules.js +44 -0
  46. package/lib/commonjs/nativeModules.js.map +1 -0
  47. package/lib/commonjs/network.js +20 -7
  48. package/lib/commonjs/network.js.map +1 -1
  49. package/lib/commonjs/pairing/deviceId.js +14 -11
  50. package/lib/commonjs/pairing/deviceId.js.map +1 -1
  51. package/lib/commonjs/pairing/tokenStorage.js +17 -4
  52. package/lib/commonjs/pairing/tokenStorage.js.map +1 -1
  53. package/lib/commonjs/runtime/TargetPressBridge.js +12 -1
  54. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  55. package/lib/commonjs/runtime/UserflowProvider.js +6 -3
  56. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  57. package/lib/commonjs/storage/asyncStorage.js +67 -0
  58. package/lib/commonjs/storage/asyncStorage.js.map +1 -0
  59. package/lib/commonjs/surfaces/BannerSurface.js +3 -1
  60. package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
  61. package/lib/commonjs/surfaces/safeArea.js +74 -28
  62. package/lib/commonjs/surfaces/safeArea.js.map +1 -1
  63. package/lib/commonjs/version.js +1 -1
  64. package/lib/module/anchors/AnchorRegistry.js +7 -0
  65. package/lib/module/anchors/AnchorRegistry.js.map +1 -1
  66. package/lib/module/anchors/elementConditionEvaluator.js +189 -55
  67. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  68. package/lib/module/anchors/elementTapMonitor.js +87 -0
  69. package/lib/module/anchors/elementTapMonitor.js.map +1 -0
  70. package/lib/module/anchors/elementTargetMatch.js +78 -0
  71. package/lib/module/anchors/elementTargetMatch.js.map +1 -0
  72. package/lib/module/anchors/fiber/findAnchorFiber.js +62 -39
  73. package/lib/module/anchors/fiber/findAnchorFiber.js.map +1 -1
  74. package/lib/module/anchors/fiber/touchTargetFiber.js +100 -0
  75. package/lib/module/anchors/fiber/touchTargetFiber.js.map +1 -0
  76. package/lib/module/anchors/resolveAnchorHost.js +2 -1
  77. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  78. package/lib/module/anchors/resolveAutoAnchorHost.js +3 -3
  79. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
  80. package/lib/module/anchors/resolveElementTargets.js +152 -0
  81. package/lib/module/anchors/resolveElementTargets.js.map +1 -0
  82. package/lib/module/anchors/targetPressMonitor.js +8 -3
  83. package/lib/module/anchors/targetPressMonitor.js.map +1 -1
  84. package/lib/module/anchors/useUserflowAnchor.js +1 -0
  85. package/lib/module/anchors/useUserflowAnchor.js.map +1 -1
  86. package/lib/module/anonymousId.js +15 -5
  87. package/lib/module/anonymousId.js.map +1 -1
  88. package/lib/module/authoring/capturePickerScreenshot.js +9 -1
  89. package/lib/module/authoring/capturePickerScreenshot.js.map +1 -1
  90. package/lib/module/evalJs/getWebView.js +5 -13
  91. package/lib/module/evalJs/getWebView.js.map +1 -1
  92. package/lib/module/hostAppVersion.js +6 -1
  93. package/lib/module/hostAppVersion.js.map +1 -1
  94. package/lib/module/index.js +5 -0
  95. package/lib/module/index.js.map +1 -1
  96. package/lib/module/installCheck.js +169 -0
  97. package/lib/module/installCheck.js.map +1 -0
  98. package/lib/module/nativeModules.js +40 -0
  99. package/lib/module/nativeModules.js.map +1 -0
  100. package/lib/module/network.js +20 -7
  101. package/lib/module/network.js.map +1 -1
  102. package/lib/module/pairing/deviceId.js +14 -10
  103. package/lib/module/pairing/deviceId.js.map +1 -1
  104. package/lib/module/pairing/tokenStorage.js +17 -4
  105. package/lib/module/pairing/tokenStorage.js.map +1 -1
  106. package/lib/module/runtime/TargetPressBridge.js +12 -1
  107. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  108. package/lib/module/runtime/UserflowProvider.js +7 -4
  109. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  110. package/lib/module/storage/asyncStorage.js +61 -0
  111. package/lib/module/storage/asyncStorage.js.map +1 -0
  112. package/lib/module/surfaces/BannerSurface.js +3 -1
  113. package/lib/module/surfaces/BannerSurface.js.map +1 -1
  114. package/lib/module/surfaces/safeArea.js +70 -28
  115. package/lib/module/surfaces/safeArea.js.map +1 -1
  116. package/lib/module/version.js +1 -1
  117. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts +7 -0
  118. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts +12 -16
  120. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +36 -0
  122. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +20 -0
  124. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/src/anchors/fiber/findAnchorFiber.d.ts +17 -5
  126. package/lib/typescript/commonjs/src/anchors/fiber/findAnchorFiber.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/anchors/fiber/touchTargetFiber.d.ts +24 -0
  128. package/lib/typescript/commonjs/src/anchors/fiber/touchTargetFiber.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +2 -1
  130. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +10 -1
  132. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts +39 -0
  134. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +2 -0
  136. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/src/anonymousId.d.ts +2 -0
  139. package/lib/typescript/commonjs/src/anonymousId.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/src/evalJs/getWebView.d.ts +2 -1
  142. package/lib/typescript/commonjs/src/evalJs/getWebView.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/src/hostAppVersion.d.ts +1 -1
  144. package/lib/typescript/commonjs/src/hostAppVersion.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/src/installCheck.d.ts +48 -0
  147. package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/src/nativeModules.d.ts +13 -0
  149. package/lib/typescript/commonjs/src/nativeModules.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/src/network.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/src/pairing/deviceId.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +2 -1
  154. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/src/storage/asyncStorage.d.ts +15 -0
  157. package/lib/typescript/commonjs/src/storage/asyncStorage.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts +6 -2
  160. package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  162. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts +7 -0
  163. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts.map +1 -1
  164. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts +12 -16
  165. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  166. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +36 -0
  167. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -0
  168. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +20 -0
  169. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -0
  170. package/lib/typescript/module/src/anchors/fiber/findAnchorFiber.d.ts +17 -5
  171. package/lib/typescript/module/src/anchors/fiber/findAnchorFiber.d.ts.map +1 -1
  172. package/lib/typescript/module/src/anchors/fiber/touchTargetFiber.d.ts +24 -0
  173. package/lib/typescript/module/src/anchors/fiber/touchTargetFiber.d.ts.map +1 -0
  174. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +2 -1
  175. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  176. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +10 -1
  177. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  178. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts +39 -0
  179. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -0
  180. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +2 -0
  181. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
  182. package/lib/typescript/module/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  183. package/lib/typescript/module/src/anonymousId.d.ts +2 -0
  184. package/lib/typescript/module/src/anonymousId.d.ts.map +1 -1
  185. package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts.map +1 -1
  186. package/lib/typescript/module/src/evalJs/getWebView.d.ts +2 -1
  187. package/lib/typescript/module/src/evalJs/getWebView.d.ts.map +1 -1
  188. package/lib/typescript/module/src/hostAppVersion.d.ts +1 -1
  189. package/lib/typescript/module/src/hostAppVersion.d.ts.map +1 -1
  190. package/lib/typescript/module/src/index.d.ts.map +1 -1
  191. package/lib/typescript/module/src/installCheck.d.ts +48 -0
  192. package/lib/typescript/module/src/installCheck.d.ts.map +1 -0
  193. package/lib/typescript/module/src/nativeModules.d.ts +13 -0
  194. package/lib/typescript/module/src/nativeModules.d.ts.map +1 -0
  195. package/lib/typescript/module/src/network.d.ts.map +1 -1
  196. package/lib/typescript/module/src/pairing/deviceId.d.ts.map +1 -1
  197. package/lib/typescript/module/src/pairing/tokenStorage.d.ts.map +1 -1
  198. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +2 -1
  199. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  200. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  201. package/lib/typescript/module/src/storage/asyncStorage.d.ts +15 -0
  202. package/lib/typescript/module/src/storage/asyncStorage.d.ts.map +1 -0
  203. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
  204. package/lib/typescript/module/src/surfaces/safeArea.d.ts +6 -2
  205. package/lib/typescript/module/src/surfaces/safeArea.d.ts.map +1 -1
  206. package/lib/typescript/module/src/version.d.ts +1 -1
  207. package/package.json +25 -8
  208. package/src/anchors/AnchorRegistry.ts +12 -0
  209. package/src/anchors/elementConditionEvaluator.ts +235 -70
  210. package/src/anchors/elementTapMonitor.ts +95 -0
  211. package/src/anchors/elementTargetMatch.ts +90 -0
  212. package/src/anchors/fiber/findAnchorFiber.ts +66 -35
  213. package/src/anchors/fiber/touchTargetFiber.ts +125 -0
  214. package/src/anchors/resolveAnchorHost.ts +2 -1
  215. package/src/anchors/resolveAutoAnchorHost.ts +3 -3
  216. package/src/anchors/resolveElementTargets.ts +165 -0
  217. package/src/anchors/targetPressMonitor.ts +12 -3
  218. package/src/anchors/useUserflowAnchor.ts +1 -0
  219. package/src/anonymousId.ts +19 -8
  220. package/src/authoring/capturePickerScreenshot.ts +10 -1
  221. package/src/evalJs/getWebView.ts +6 -13
  222. package/src/hostAppVersion.ts +7 -1
  223. package/src/index.ts +10 -0
  224. package/src/installCheck.ts +225 -0
  225. package/src/nativeModules.ts +48 -0
  226. package/src/network.ts +27 -11
  227. package/src/pairing/deviceId.ts +14 -11
  228. package/src/pairing/tokenStorage.ts +23 -7
  229. package/src/runtime/TargetPressBridge.tsx +17 -1
  230. package/src/runtime/UserflowProvider.tsx +11 -4
  231. package/src/storage/asyncStorage.ts +88 -0
  232. package/src/surfaces/BannerSurface.tsx +7 -5
  233. package/src/surfaces/safeArea.ts +85 -40
  234. package/src/version.ts +1 -1
  235. package/vendor/core/dist/constants.d.ts +2 -0
  236. package/vendor/core/dist/constants.d.ts.map +1 -1
  237. package/vendor/core/dist/constants.js +2 -0
  238. package/vendor/core/dist/constants.js.map +1 -1
  239. package/vendor/core/dist/engine/ClientConditionEngine.d.ts +20 -1
  240. package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
  241. package/vendor/core/dist/engine/ClientConditionEngine.js +13 -10
  242. package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
  243. package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -1
  244. package/vendor/core/dist/engine/UserflowCore.js +21 -2
  245. package/vendor/core/dist/engine/UserflowCore.js.map +1 -1
  246. package/vendor/core/dist/index.d.ts +1 -1
  247. package/vendor/core/dist/index.d.ts.map +1 -1
  248. package/vendor/core/dist/index.js.map +1 -1
  249. package/vendor/core/dist/version.d.ts +1 -1
  250. package/vendor/core/dist/version.js +1 -1
  251. package/vendor/core/package.json +1 -1
  252. package/vendor/protocol/package.json +1 -1
  253. package/docs/webview-custom-banner-poc.md +0 -64
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.ANCHOR_PROP_TIERS = void 0;
6
7
  exports.findAnchorFiber = findAnchorFiber;
8
+ exports.findAnchorFibers = findAnchorFibers;
7
9
  exports.nearestHostDescendant = nearestHostDescendant;
8
10
  var _fiberInternals = require("./fiberInternals.js");
9
11
  var _walkVisibleFibers = require("./walkVisibleFibers.js");
@@ -16,28 +18,62 @@ const MAX_NODES = 60_000;
16
18
 
17
19
  /** One production warning per process — truncation must not look like "missing". */
18
20
  let maxNodesWarned = false;
19
- const TIER_ORDER = ['testID', 'nativeID', 'accessibilityLabel'];
21
+ /** Props an anchor id can sit on, strongest first. */
22
+ const ANCHOR_PROP_TIERS = exports.ANCHOR_PROP_TIERS = ['userflowId', 'testID', 'nativeID', 'accessibilityLabel'];
23
+
24
+ /** Every collapsed host of the winning tier. Duplicates stay in the list. */
25
+
20
26
  /**
21
27
  * Bounded DFS under `rootFiber` looking for fibers whose memoizedProps match
22
- * `id` on testID, then nativeID, then accessibilityLabel. Uses the highest
23
- * tier that has any match so a testID hit is never made ambiguous by an
24
- * unrelated accessibilityLabel.
28
+ * `id` on userflowId, then testID, then nativeID, then accessibilityLabel.
29
+ * Uses the highest tier that has any match so a testID hit is never made
30
+ * ambiguous by an unrelated accessibilityLabel.
25
31
  *
26
32
  * A composite match resolves to the host beneath it that carries the same id
27
33
  * (e.g. a tab item that wraps its button in a View and forwards testID to the
28
34
  * button), else to its shallowest host descendant. Multiple matches on a single
29
35
  * root-to-leaf chain (e.g. Pressable forwarding testID to its inner View)
30
- * collapse to the outermost host. Disjoint matches fail closed as ambiguous.
36
+ * collapse to the outermost host. Disjoint matches stay in the list returned by
37
+ * {@link findAnchorFibers}; {@link findAnchorFiber} fails closed on those.
31
38
  *
32
39
  * The walk never follows `rootFiber.sibling` so the Userflow overlay (a sibling
33
40
  * of {@link FiberScanRoot} in UserflowProvider) cannot self-match SDK testIDs.
34
41
  */
35
- function findAnchorFiber(rootFiber, id) {
42
+ function findAnchorFibers(rootFiber, id) {
36
43
  if (!rootFiber || !id) return {
37
44
  status: 'missing'
38
45
  };
46
+ const won = winningTier(rootFiber, id);
47
+ if (!won) return {
48
+ status: 'missing'
49
+ };
50
+ return {
51
+ status: 'found',
52
+ fibers: won.hosts,
53
+ tier: won.tier
54
+ };
55
+ }
56
+ function findAnchorFiber(rootFiber, id) {
57
+ const many = findAnchorFibers(rootFiber, id);
58
+ if (many.status === 'missing') return {
59
+ status: 'missing'
60
+ };
61
+ if (many.fibers.length === 1) {
62
+ return {
63
+ status: 'found',
64
+ fiber: many.fibers[0],
65
+ tier: many.tier
66
+ };
67
+ }
68
+ return {
69
+ status: 'ambiguous',
70
+ tier: many.tier
71
+ };
72
+ }
73
+ function winningTier(rootFiber, id) {
39
74
  try {
40
75
  const byTier = {
76
+ userflowId: [],
41
77
  testID: [],
42
78
  nativeID: [],
43
79
  accessibilityLabel: []
@@ -48,6 +84,9 @@ function findAnchorFiber(rootFiber, id) {
48
84
  } = (0, _walkVisibleFibers.walkVisibleFibers)(rootFiber, fiber => {
49
85
  const props = (0, _fiberInternals.getMemoizedProps)(fiber);
50
86
  if (!props) return;
87
+ if (typeof props.userflowId === 'string' && props.userflowId === id) {
88
+ byTier.userflowId.push(fiber);
89
+ }
51
90
  if (typeof props.testID === 'string' && props.testID === id) {
52
91
  byTier.testID.push(fiber);
53
92
  }
@@ -59,48 +98,34 @@ function findAnchorFiber(rootFiber, id) {
59
98
  }
60
99
  }, MAX_NODES);
61
100
  if (truncated || visited >= MAX_NODES) {
62
- // Truncation would otherwise look exactly like "the anchor isn't there".
63
- // eslint-disable-next-line no-console -- actionable: the anchor may exist but was not reached
64
- const warn = message => console.warn(message);
65
- if (__DEV__) {
66
- warn(`[Userflow] Anchor scan for "${id}" stopped after ${MAX_NODES} nodes. ` + `The element may exist but was not reached. Register it explicitly with ` + `useUserflowAnchor("${id}") to skip the scan.`);
67
- } else if (!maxNodesWarned) {
68
- maxNodesWarned = true;
69
- warn(`[Userflow] Anchor scan stopped after ${MAX_NODES} nodes; some anchors may ` + `be missed. Prefer useUserflowAnchor for deep or dense trees.`);
70
- }
101
+ warnScanTruncated(id);
71
102
  }
72
- for (const tier of TIER_ORDER) {
103
+ for (const tier of ANCHOR_PROP_TIERS) {
73
104
  const matches = byTier[tier];
74
105
  if (matches.length === 0) continue;
75
106
  const hosts = uniqueHosts(matches);
76
107
  if (hosts.length === 0) continue;
77
- if (hosts.length === 1) {
78
- return {
79
- status: 'found',
80
- fiber: hosts[0],
81
- tier
82
- };
83
- }
84
- const collapsed = collapseToChains(hosts);
85
- if (collapsed.length === 1) {
86
- return {
87
- status: 'found',
88
- fiber: collapsed[0],
89
- tier
90
- };
91
- }
92
108
  return {
93
- status: 'ambiguous',
94
- tier
109
+ tier,
110
+ hosts: collapseToChains(hosts)
95
111
  };
96
112
  }
97
- return {
98
- status: 'missing'
99
- };
113
+ return null;
100
114
  } catch {
101
- return {
102
- status: 'missing'
103
- };
115
+ return null;
116
+ }
117
+ }
118
+ function warnScanTruncated(id) {
119
+ // Truncation would otherwise look exactly like "the anchor isn't there".
120
+ // eslint-disable-next-line no-console -- actionable: the anchor may exist but was not reached
121
+ const warn = message => console.warn(message);
122
+ if (__DEV__) {
123
+ warn(`[Userflow] Anchor scan for "${id}" stopped after ${MAX_NODES} nodes. ` + `The element may exist but was not reached. Register it explicitly with ` + `useUserflowAnchor("${id}") to skip the scan.`);
124
+ return;
125
+ }
126
+ if (!maxNodesWarned) {
127
+ maxNodesWarned = true;
128
+ warn(`[Userflow] Anchor scan stopped after ${MAX_NODES} nodes; some anchors may ` + `be missed. Prefer useUserflowAnchor for deep or dense trees.`);
104
129
  }
105
130
  }
106
131
 
@@ -1 +1 @@
1
- {"version":3,"names":["_fiberInternals","require","_walkVisibleFibers","MAX_NODES","maxNodesWarned","TIER_ORDER","findAnchorFiber","rootFiber","id","status","byTier","testID","nativeID","accessibilityLabel","visited","truncated","walkVisibleFibers","fiber","props","getMemoizedProps","push","warn","message","console","__DEV__","tier","matches","length","hosts","uniqueHosts","collapsed","collapseToChains","forwarded","forwardedHostMatches","seen","Set","out","match","host","isHostFiber","compositeHost","get","identity","alternate","has","add","composite","carriers","chains","nearestHostDescendant","composites","Map","set","size","cur","getReturn","depth","MAX_ANCESTOR_WALK","maxNodes","queue","f","shift","child","getChild","getSibling","survivors","candidate","dominated","i","other","isAncestorOf","splice","ancestor","descendant"],"sourceRoot":"../../../../src","sources":["anchors/fiber/findAnchorFiber.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fiberInternals","require","_walkVisibleFibers","MAX_NODES","maxNodesWarned","ANCHOR_PROP_TIERS","exports","findAnchorFibers","rootFiber","id","status","won","winningTier","fibers","hosts","tier","findAnchorFiber","many","length","fiber","byTier","userflowId","testID","nativeID","accessibilityLabel","visited","truncated","walkVisibleFibers","props","getMemoizedProps","push","warnScanTruncated","matches","uniqueHosts","collapseToChains","warn","message","console","__DEV__","forwarded","forwardedHostMatches","seen","Set","out","match","host","isHostFiber","compositeHost","get","identity","alternate","has","add","composite","carriers","chains","nearestHostDescendant","composites","Map","set","size","cur","getReturn","depth","MAX_ANCESTOR_WALK","maxNodes","queue","f","shift","child","getChild","getSibling","survivors","candidate","dominated","i","other","isAncestorOf","splice","ancestor","descendant"],"sourceRoot":"../../../../src","sources":["anchors/fiber/findAnchorFiber.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.touchBelongsToEvent = touchBelongsToEvent;
7
+ exports.touchTargetFiber = touchTargetFiber;
8
+ var _fiberInternals = require("./fiberInternals.js");
9
+ var _findAnchorFiber = require("./findAnchorFiber.js");
10
+ var _indexHostFibers = require("./indexHostFibers.js");
11
+ /**
12
+ * Host fiber under a touch, resolved synchronously from the responder event.
13
+ *
14
+ * Feature-detected and never throws. A renderer that does not expose any of
15
+ * these pointers degrades to "no target", so a click condition simply does not
16
+ * latch.
17
+ *
18
+ * Order:
19
+ * 1. `event._targetInst` (React's fiber for the touched component)
20
+ * 2. `event.target` public instance via {@link lookupHostFiber}
21
+ * 3. The touch's native tag (`changedTouches[].target`, else `nativeEvent.target`)
22
+ * via the scan-root host index
23
+ */
24
+
25
+ function touchTargetFiber(event, identifier) {
26
+ try {
27
+ const tag = nativeTagForTouch(event, identifier);
28
+ const fromInst = hostFromFiber(readTargetInst(event));
29
+ if (fromInst && tagMatches(fromInst, tag)) return fromInst;
30
+ const fromInstance = hostFromInstance(event.target);
31
+ if (fromInstance && tagMatches(fromInstance, tag)) return fromInstance;
32
+ if (tag === undefined) return null;
33
+ // The event-level fibers belong to another finger's view, so only the
34
+ // index can name this one. A miss must not fall back to theirs.
35
+ return (0, _indexHostFibers.createLazyHostFiberIndex)()().byNativeTag.get(tag) ?? null;
36
+ } catch {
37
+ return null;
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Fabric sends one touch event per touched view, and each lists every finger
43
+ * that changed. True when `identifier`'s finger is on this event's own view,
44
+ * so a caller can record each finger once, from its own event, instead of
45
+ * overwriting it from another finger's. Unreadable tags count as this event's.
46
+ */
47
+ function touchBelongsToEvent(event, identifier) {
48
+ try {
49
+ const tag = nativeTagForTouch(event, identifier);
50
+ if (tag === undefined) return true;
51
+ const own = hostFromFiber(readTargetInst(event)) ?? hostFromInstance(event.target);
52
+ return own == null || tagMatches(own, tag);
53
+ } catch {
54
+ return true;
55
+ }
56
+ }
57
+ function readTargetInst(event) {
58
+ return event._targetInst;
59
+ }
60
+ function nativeTagForTouch(event, identifier) {
61
+ const native = event.nativeEvent;
62
+ if (identifier != null && native.changedTouches) {
63
+ const touch = native.changedTouches.find(entry => entry.identifier === identifier);
64
+ const touchTag = asTag(touch?.target);
65
+ if (touchTag !== undefined) return touchTag;
66
+ }
67
+ return asTag(native.target);
68
+ }
69
+ function asTag(value) {
70
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
71
+ }
72
+
73
+ /**
74
+ * Accept a host whose tag we cannot read (test renderer, older Paper). Reject
75
+ * only when both sides have a tag and they differ — that event-level fiber
76
+ * belongs to a different finger.
77
+ */
78
+ function tagMatches(fiber, tag) {
79
+ if (tag === undefined) return true;
80
+ const fiberTag = (0, _fiberInternals.nativeTagFromHostFiber)(fiber);
81
+ if (fiberTag === undefined) return true;
82
+ return fiberTag === tag;
83
+ }
84
+ function hostFromFiber(value) {
85
+ if (!(0, _fiberInternals.isReactFiber)(value)) return null;
86
+ try {
87
+ const current = (0, _fiberInternals.resolveCurrentFiber)(value);
88
+ if ((0, _fiberInternals.isHostFiber)(current)) return current;
89
+ return (0, _findAnchorFiber.nearestHostDescendant)(current);
90
+ } catch {
91
+ return null;
92
+ }
93
+ }
94
+ function hostFromInstance(value) {
95
+ if (!value || typeof value !== 'object') return null;
96
+ try {
97
+ const fiber = (0, _indexHostFibers.lookupHostFiber)((0, _indexHostFibers.createLazyHostFiberIndex)(), value);
98
+ if (!fiber) return null;
99
+ if ((0, _fiberInternals.isHostFiber)(fiber)) return fiber;
100
+ return (0, _findAnchorFiber.nearestHostDescendant)(fiber);
101
+ } catch {
102
+ return null;
103
+ }
104
+ }
105
+ //# sourceMappingURL=touchTargetFiber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_fiberInternals","require","_findAnchorFiber","_indexHostFibers","touchTargetFiber","event","identifier","tag","nativeTagForTouch","fromInst","hostFromFiber","readTargetInst","tagMatches","fromInstance","hostFromInstance","target","undefined","createLazyHostFiberIndex","byNativeTag","get","touchBelongsToEvent","own","_targetInst","native","nativeEvent","changedTouches","touch","find","entry","touchTag","asTag","value","Number","isFinite","fiber","fiberTag","nativeTagFromHostFiber","isReactFiber","current","resolveCurrentFiber","isHostFiber","nearestHostDescendant","lookupHostFiber"],"sourceRoot":"../../../../src","sources":["anchors/fiber/touchTargetFiber.ts"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,8 @@ function invalidateFiberAnchor(id) {
37
37
  *
38
38
  * Tier 0: {@link anchorRegistry} (`useUserflowAnchor`) — higher priority, fails
39
39
  * closed on ambiguous registry keys.
40
- * Tier 1+: fiber scan for `testID`, then `nativeID`, then `accessibilityLabel`.
40
+ * Tier 1+: fiber scan for `userflowId`, then `testID`, then `nativeID`, then
41
+ * `accessibilityLabel`.
41
42
  *
42
43
  * Synchronous (the walk is pure JS; only measurement is async via the returned
43
44
  * host). Caches the resolved fiber per id and revalidates cheaply before reuse.
@@ -1 +1 @@
1
- {"version":3,"names":["_AnchorRegistry","require","_FiberScanRoot","_fiberInternals","_findAnchorFiber","_measureHostFiber","_visibleScreens","_fiberAnchorCache","notifyAnchorScreenChange","screenKey","onAnchorScreenChange","clearFiberAnchorCache","clearCache","invalidateFiberAnchor","id","dropCachedFiberAnchor","resolveAnchorHost","status","anchorRegistry","isAmbiguous","registered","get","host","cached","getCachedFiberAnchor","currentScreenKey","getFiberAnchorScreenKey","isFiberMounted","fiber","isFiberOnVisibleScreen","measureInWindow","createFiberMeasureInWindow","deleteCachedFiberAnchor","root","fiberScanRoot","getFiber","result","findAnchorFiber","setCachedFiberAnchor"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AAeA;AACO,SAASO,wBAAwBA,CAACC,SAAwB,EAAQ;EACvE,IAAAC,0CAAoB,EAACD,SAAS,CAAC;AACjC;;AAEA;AACO,SAASE,qBAAqBA,CAAA,EAAS;EAC5C,IAAAC,uCAAU,EAAC,CAAC;AACd;;AAEA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,EAAU,EAAQ;EACtD,IAAAC,uCAAqB,EAACD,EAAE,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAACF,EAAU,EAAoB;EAC9D,IAAI,CAACA,EAAE,EAAE,OAAO;IAAEG,MAAM,EAAE;EAAU,CAAC;;EAErC;EACA,IAAIC,8BAAc,CAACC,WAAW,CAACL,EAAE,CAAC,EAAE;IAClC,OAAO;MAAEG,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,MAAMG,UAAU,GAAGF,8BAAc,CAACG,GAAG,CAACP,EAAE,CAAC;EACzC,IAAIM,UAAU,EAAE;IACd,OAAO;MAAEH,MAAM,EAAE,OAAO;MAAEK,IAAI,EAAEF;IAAW,CAAC;EAC9C;;EAEA;EACA;EACA,MAAMG,MAAM,GAAG,IAAAC,sCAAoB,EAACV,EAAE,CAAC;EACvC,MAAMW,gBAAgB,GAAG,IAAAC,yCAAuB,EAAC,CAAC;EAClD,IACEH,MAAM,IACNA,MAAM,CAACd,SAAS,KAAKgB,gBAAgB,IACrC,IAAAE,8BAAc,EAACJ,MAAM,CAACK,KAAK,CAAC,IAC5B,IAAAC,sCAAsB,EAACN,MAAM,CAACK,KAAK,CAAC,EACpC;IACA,OAAO;MACLX,MAAM,EAAE,OAAO;MACfK,IAAI,EAAE;QAAEQ,eAAe,EAAE,IAAAC,4CAA0B,EAACR,MAAM,CAACK,KAAK;MAAE,CAAC;MACnEA,KAAK,EAAEL,MAAM,CAACK;IAChB,CAAC;EACH;EACA,IAAIL,MAAM,EAAE;IACV,IAAAS,yCAAuB,EAAClB,EAAE,CAAC;EAC7B;EAEA,MAAMmB,IAAI,GAAGC,4BAAa,CAACC,QAAQ,CAAC,CAAC;EACrC,IAAI,CAACF,IAAI,EAAE;IACT,OAAO;MAAEhB,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,MAAMmB,MAAM,GAAG,IAAAC,gCAAe,EAACJ,IAAI,EAAEnB,EAAE,CAAC;EACxC,IAAIsB,MAAM,CAACnB,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO;MAAEA,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,IAAImB,MAAM,CAACnB,MAAM,KAAK,SAAS,EAAE;IAC/B,OAAO;MAAEA,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,IAAAqB,sCAAoB,EAACxB,EAAE,EAAEsB,MAAM,CAACR,KAAK,CAAC;EACtC,OAAO;IACLX,MAAM,EAAE,OAAO;IACfK,IAAI,EAAE;MAAEQ,eAAe,EAAE,IAAAC,4CAA0B,EAACK,MAAM,CAACR,KAAK;IAAE,CAAC;IACnEA,KAAK,EAAEQ,MAAM,CAACR;EAChB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_AnchorRegistry","require","_FiberScanRoot","_fiberInternals","_findAnchorFiber","_measureHostFiber","_visibleScreens","_fiberAnchorCache","notifyAnchorScreenChange","screenKey","onAnchorScreenChange","clearFiberAnchorCache","clearCache","invalidateFiberAnchor","id","dropCachedFiberAnchor","resolveAnchorHost","status","anchorRegistry","isAmbiguous","registered","get","host","cached","getCachedFiberAnchor","currentScreenKey","getFiberAnchorScreenKey","isFiberMounted","fiber","isFiberOnVisibleScreen","measureInWindow","createFiberMeasureInWindow","deleteCachedFiberAnchor","root","fiberScanRoot","getFiber","result","findAnchorFiber","setCachedFiberAnchor"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AAeA;AACO,SAASO,wBAAwBA,CAACC,SAAwB,EAAQ;EACvE,IAAAC,0CAAoB,EAACD,SAAS,CAAC;AACjC;;AAEA;AACO,SAASE,qBAAqBA,CAAA,EAAS;EAC5C,IAAAC,uCAAU,EAAC,CAAC;AACd;;AAEA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,EAAU,EAAQ;EACtD,IAAAC,uCAAqB,EAACD,EAAE,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAACF,EAAU,EAAoB;EAC9D,IAAI,CAACA,EAAE,EAAE,OAAO;IAAEG,MAAM,EAAE;EAAU,CAAC;;EAErC;EACA,IAAIC,8BAAc,CAACC,WAAW,CAACL,EAAE,CAAC,EAAE;IAClC,OAAO;MAAEG,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,MAAMG,UAAU,GAAGF,8BAAc,CAACG,GAAG,CAACP,EAAE,CAAC;EACzC,IAAIM,UAAU,EAAE;IACd,OAAO;MAAEH,MAAM,EAAE,OAAO;MAAEK,IAAI,EAAEF;IAAW,CAAC;EAC9C;;EAEA;EACA;EACA,MAAMG,MAAM,GAAG,IAAAC,sCAAoB,EAACV,EAAE,CAAC;EACvC,MAAMW,gBAAgB,GAAG,IAAAC,yCAAuB,EAAC,CAAC;EAClD,IACEH,MAAM,IACNA,MAAM,CAACd,SAAS,KAAKgB,gBAAgB,IACrC,IAAAE,8BAAc,EAACJ,MAAM,CAACK,KAAK,CAAC,IAC5B,IAAAC,sCAAsB,EAACN,MAAM,CAACK,KAAK,CAAC,EACpC;IACA,OAAO;MACLX,MAAM,EAAE,OAAO;MACfK,IAAI,EAAE;QAAEQ,eAAe,EAAE,IAAAC,4CAA0B,EAACR,MAAM,CAACK,KAAK;MAAE,CAAC;MACnEA,KAAK,EAAEL,MAAM,CAACK;IAChB,CAAC;EACH;EACA,IAAIL,MAAM,EAAE;IACV,IAAAS,yCAAuB,EAAClB,EAAE,CAAC;EAC7B;EAEA,MAAMmB,IAAI,GAAGC,4BAAa,CAACC,QAAQ,CAAC,CAAC;EACrC,IAAI,CAACF,IAAI,EAAE;IACT,OAAO;MAAEhB,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,MAAMmB,MAAM,GAAG,IAAAC,gCAAe,EAACJ,IAAI,EAAEnB,EAAE,CAAC;EACxC,IAAIsB,MAAM,CAACnB,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO;MAAEA,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,IAAImB,MAAM,CAACnB,MAAM,KAAK,SAAS,EAAE;IAC/B,OAAO;MAAEA,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,IAAAqB,sCAAoB,EAACxB,EAAE,EAAEsB,MAAM,CAACR,KAAK,CAAC;EACtC,OAAO;IACLX,MAAM,EAAE,OAAO;IACfK,IAAI,EAAE;MAAEQ,eAAe,EAAE,IAAAC,4CAA0B,EAACK,MAAM,CAACR,KAAK;IAAE,CAAC;IACnEA,KAAK,EAAEQ,MAAM,CAACR;EAChB,CAAC;AACH","ignoreList":[]}
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.exactIdFromFingerprint = exactIdFromFingerprint;
6
7
  exports.resolveAutoAnchorHost = resolveAutoAnchorHost;
8
+ exports.resolveScoredAutoAnchor = resolveScoredAutoAnchor;
7
9
  var _protocol = require("@userflow-tech/protocol");
8
10
  var _fiberInternals = require("./fiber/fiberInternals.js");
9
11
  var _measureHostFiber = require("./fiber/measureHostFiber.js");
@@ -101,7 +103,7 @@ function mapMatch(match) {
101
103
  * scored and the unfiltered pool still has a hit, that hit is on a covered
102
104
  * screen — `absent`, matching MANUAL covered-screen semantics.
103
105
  */
104
- function mapScored(fp) {
106
+ function resolveScoredAutoAnchor(fp) {
105
107
  const visible = (0, _semanticMatcher.matchFingerprint)(fp, {
106
108
  instanceFilter: (0, _isInstanceOnVisibleScreen.createVisibleInstanceFilter)()
107
109
  });
@@ -173,6 +175,6 @@ function resolveAutoAnchorHost(autoData) {
173
175
  };
174
176
  }
175
177
  }
176
- return mapScored(fp);
178
+ return resolveScoredAutoAnchor(fp);
177
179
  }
178
180
  //# sourceMappingURL=resolveAutoAnchorHost.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_protocol","require","_fiberInternals","_measureHostFiber","_resolveFiberPath","_isInstanceOnVisibleScreen","_resolveAnchorHost","_semanticMatcher","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","createFiberMeasureInWindow","fiberFromPublicInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","decodeMobileAutoData","mapMatch","match","instance","host","status","reason","mapScored","visible","matchFingerprint","instanceFilter","createVisibleInstanceFilter","any","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","resolveFiberPath","fiberCacheId","cacheId","exactId","exact","resolveAnchorHost"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_protocol","require","_fiberInternals","_measureHostFiber","_resolveFiberPath","_isInstanceOnVisibleScreen","_resolveAnchorHost","_semanticMatcher","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","createFiberMeasureInWindow","fiberFromPublicInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","decodeMobileAutoData","mapMatch","match","instance","host","status","reason","resolveScoredAutoAnchor","visible","matchFingerprint","instanceFilter","createVisibleInstanceFilter","any","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","resolveFiberPath","fiberCacheId","cacheId","exactId","exact","resolveAnchorHost"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveElementTargets = resolveElementTargets;
7
+ exports.tapMayHitSelector = tapMayHitSelector;
8
+ var _protocol = require("@userflow-tech/protocol");
9
+ var _AnchorRegistry = require("./AnchorRegistry.js");
10
+ var _elementTargetMatch = require("./elementTargetMatch.js");
11
+ var _FiberScanRoot = require("./fiber/FiberScanRoot.js");
12
+ var _fiberInternals = require("./fiber/fiberInternals.js");
13
+ var _findAnchorFiber = require("./fiber/findAnchorFiber.js");
14
+ var _indexHostFibers = require("./fiber/indexHostFibers.js");
15
+ var _measureHostFiber = require("./fiber/measureHostFiber.js");
16
+ var _visibleScreens = require("./fiber/visibleScreens.js");
17
+ var _resolveAutoAnchorHost = require("./resolveAutoAnchorHost.js");
18
+ var _resolveManualAnchorId = require("./resolveManualAnchorId.js");
19
+ /**
20
+ * Resolve every host an ELEMENT condition should consider.
21
+ *
22
+ * Tooltips fail closed when an id matches more than one view. Conditions follow
23
+ * the web SDK instead: any match counts. AUTO exact ids (`userflowId`, then
24
+ * `testID`, then a real `nativeID`) use that same multi-host lookup, and fall
25
+ * through to scoring only when nothing matched.
26
+ */
27
+
28
+ function resolveElementTargets(selector) {
29
+ if (selector == null) return {
30
+ status: 'unknown'
31
+ };
32
+ if (selector.type === 'AUTO') {
33
+ return resolveAutoTargets(selector.autoData);
34
+ }
35
+ const anchorId = (0, _resolveManualAnchorId.resolveManualAnchorId)(selector.css);
36
+ if (anchorId == null) return {
37
+ status: 'unknown'
38
+ };
39
+ return resolveManualTargets(anchorId);
40
+ }
41
+
42
+ /**
43
+ * False when no target of `selector` can contain `tap`, decided without a tree
44
+ * scan. A fiber-scan target carries its id itself or sits under a composite
45
+ * that does, so a MANUAL id that is neither registered nor on the tap's
46
+ * ancestor chain cannot match. AUTO selectors are not gated: only a scan tells
47
+ * whether the exact id or a scored match applies.
48
+ */
49
+ function tapMayHitSelector(selector, tap) {
50
+ if (selector == null) return false;
51
+ if (selector.type === 'AUTO') return true;
52
+ const anchorId = (0, _resolveManualAnchorId.resolveManualAnchorId)(selector.css);
53
+ if (anchorId == null) return false;
54
+ return _AnchorRegistry.anchorRegistry.get(anchorId) != null || (0, _elementTargetMatch.anchorIdsAboveTap)(tap).has(anchorId);
55
+ }
56
+ function resolveAutoTargets(autoData) {
57
+ const decoded = (0, _protocol.decodeMobileAutoData)(autoData);
58
+ const fingerprint = decoded?.fingerprint;
59
+ if (!decoded || !fingerprint) return {
60
+ status: 'unknown'
61
+ };
62
+ if (decoded.resolver === 'fiber' && decoded.fiberPath) {
63
+ return fromAutoResolution((0, _resolveAutoAnchorHost.resolveAutoAnchorHost)(decoded));
64
+ }
65
+ const exactId = (0, _resolveAutoAnchorHost.exactIdFromFingerprint)(fingerprint);
66
+ if (exactId) {
67
+ const manual = resolveManualTargets(exactId);
68
+ if (manual.status === 'found') return manual;
69
+ }
70
+
71
+ // The exact id already missed above, so go straight to scoring rather than
72
+ // letting resolveAutoAnchorHost scan for it again.
73
+ return fromAutoResolution((0, _resolveAutoAnchorHost.resolveScoredAutoAnchor)(fingerprint));
74
+ }
75
+ function fromAutoResolution(resolution) {
76
+ if (resolution.status === 'found') {
77
+ // Scored matches only try the direct ref pointer, which Paper release
78
+ // builds null out. Without the index fallback a tap could never match.
79
+ const fiber = resolution.fiber ?? fiberForNode((0, _indexHostFibers.createLazyHostFiberIndex)(), resolution.match?.instance?.ref.current);
80
+ return {
81
+ status: 'found',
82
+ targets: [{
83
+ host: resolution.host,
84
+ ...(fiber ? {
85
+ fiber
86
+ } : {})
87
+ }]
88
+ };
89
+ }
90
+ if (resolution.status === 'absent') return {
91
+ status: 'absent'
92
+ };
93
+ // Ambiguous and unknown both fail closed. Ambiguous is a real tie, not a
94
+ // broken selector, so it does not warn.
95
+ if (resolution.status === 'ambiguous') return {
96
+ status: 'unknown',
97
+ silent: true
98
+ };
99
+ return {
100
+ status: 'unknown'
101
+ };
102
+ }
103
+ function resolveManualTargets(id) {
104
+ const registered = _AnchorRegistry.anchorRegistry.getAll(id);
105
+ if (registered.length > 0) {
106
+ const index = (0, _indexHostFibers.createLazyHostFiberIndex)();
107
+ // Registered views on a covered navigator screen still measure non-zero,
108
+ // so drop them here the way the fiber scan skips covered screens. A host
109
+ // whose fiber cannot be found is kept.
110
+ const targets = registered.map(host => {
111
+ const fiber = fiberForNode(index, host.node);
112
+ return fiber ? {
113
+ host,
114
+ fiber
115
+ } : {
116
+ host
117
+ };
118
+ }).filter(target => !target.fiber || (0, _visibleScreens.isFiberOnVisibleScreen)(target.fiber));
119
+ return targets.length > 0 ? {
120
+ status: 'found',
121
+ targets
122
+ } : {
123
+ status: 'absent'
124
+ };
125
+ }
126
+ const root = _FiberScanRoot.fiberScanRoot.getFiber();
127
+ if (!root) return {
128
+ status: 'absent'
129
+ };
130
+ const found = (0, _findAnchorFiber.findAnchorFibers)(root, id);
131
+ if (found.status === 'missing') return {
132
+ status: 'absent'
133
+ };
134
+ return {
135
+ status: 'found',
136
+ targets: found.fibers.map(fiber => {
137
+ const node = (0, _fiberInternals.publicInstanceFromHostFiber)(fiber);
138
+ return {
139
+ host: {
140
+ measureInWindow: (0, _measureHostFiber.createFiberMeasureInWindow)(fiber),
141
+ ...(node ? {
142
+ node
143
+ } : {})
144
+ },
145
+ fiber
146
+ };
147
+ })
148
+ };
149
+ }
150
+ function fiberForNode(index, node) {
151
+ if (!node) return undefined;
152
+ try {
153
+ return (0, _indexHostFibers.lookupHostFiber)(index, node) ?? undefined;
154
+ } catch {
155
+ return undefined;
156
+ }
157
+ }
158
+ //# sourceMappingURL=resolveElementTargets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_protocol","require","_AnchorRegistry","_elementTargetMatch","_FiberScanRoot","_fiberInternals","_findAnchorFiber","_indexHostFibers","_measureHostFiber","_visibleScreens","_resolveAutoAnchorHost","_resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","resolveManualAnchorId","css","resolveManualTargets","tapMayHitSelector","tap","anchorRegistry","get","anchorIdsAboveTap","has","decoded","decodeMobileAutoData","fingerprint","resolver","fiberPath","fromAutoResolution","resolveAutoAnchorHost","exactId","exactIdFromFingerprint","manual","resolveScoredAutoAnchor","resolution","fiber","fiberForNode","createLazyHostFiberIndex","match","instance","ref","current","targets","host","silent","id","registered","getAll","length","index","map","node","filter","target","isFiberOnVisibleScreen","root","fiberScanRoot","getFiber","found","findAnchorFibers","fibers","publicInstanceFromHostFiber","measureInWindow","createFiberMeasureInWindow","undefined","lookupHostFiber"],"sourceRoot":"../../../src","sources":["anchors/resolveElementTargets.ts"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.TargetPressMonitor = exports.TARGET_PRESS_TAP_SLOP = void 0;
7
7
  exports.isTargetTap = isTargetTap;
8
8
  exports.pointInRect = pointInRect;
9
9
  exports.targetPressMonitor = void 0;
10
+ exports.withinTapSlop = withinTapSlop;
10
11
  /**
11
12
  * Active tooltip target-press subscription.
12
13
  *
@@ -20,6 +21,13 @@ const TARGET_PRESS_TAP_SLOP = exports.TARGET_PRESS_TAP_SLOP = 10;
20
21
  function pointInRect(x, y, rect) {
21
22
  return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height;
22
23
  }
24
+ /** True when the finger moved no more than `slop` between start and end. */
25
+ function withinTapSlop(start, end, slop = TARGET_PRESS_TAP_SLOP) {
26
+ const dx = end.pageX - start.pageX;
27
+ const dy = end.pageY - start.pageY;
28
+ return dx * dx + dy * dy <= slop * slop;
29
+ }
30
+
23
31
  /**
24
32
  * True when start and end both land in `rect` and movement stays within tap
25
33
  * slop — mirrors a DOM click on the target without claiming the responder.
@@ -27,9 +35,7 @@ function pointInRect(x, y, rect) {
27
35
  function isTargetTap(start, end, rect, slop = TARGET_PRESS_TAP_SLOP) {
28
36
  if (!pointInRect(start.pageX, start.pageY, rect)) return false;
29
37
  if (!pointInRect(end.pageX, end.pageY, rect)) return false;
30
- const dx = end.pageX - start.pageX;
31
- const dy = end.pageY - start.pageY;
32
- return dx * dx + dy * dy <= slop * slop;
38
+ return withinTapSlop(start, end, slop);
33
39
  }
34
40
 
35
41
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["TARGET_PRESS_TAP_SLOP","exports","pointInRect","x","y","rect","width","height","isTargetTap","start","end","slop","pageX","pageY","dx","dy","TargetPressMonitor","subscription","touchStarts","Map","set","clear","get","handleTouchStart","identifier","handleTouchEnd","delete","sub","getRect","onPress","cancelTouch","resetForTests","targetPressMonitor"],"sourceRoot":"../../../src","sources":["anchors/targetPressMonitor.ts"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAEhC,SAASE,WAAWA,CAACC,CAAS,EAAEC,CAAS,EAAEC,IAAqB,EAAW;EAChF,OAAOF,CAAC,IAAIE,IAAI,CAACF,CAAC,IAAIA,CAAC,IAAIE,IAAI,CAACF,CAAC,GAAGE,IAAI,CAACC,KAAK,IAAIF,CAAC,IAAIC,IAAI,CAACD,CAAC,IAAIA,CAAC,IAAIC,IAAI,CAACD,CAAC,GAAGC,IAAI,CAACE,MAAM;AAC5F;AAOA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CACzBC,KAAiB,EACjBC,GAAe,EACfL,IAAqB,EACrBM,IAAY,GAAGX,qBAAqB,EAC3B;EACT,IAAI,CAACE,WAAW,CAACO,KAAK,CAACG,KAAK,EAAEH,KAAK,CAACI,KAAK,EAAER,IAAI,CAAC,EAAE,OAAO,KAAK;EAC9D,IAAI,CAACH,WAAW,CAACQ,GAAG,CAACE,KAAK,EAAEF,GAAG,CAACG,KAAK,EAAER,IAAI,CAAC,EAAE,OAAO,KAAK;EAC1D,MAAMS,EAAE,GAAGJ,GAAG,CAACE,KAAK,GAAGH,KAAK,CAACG,KAAK;EAClC,MAAMG,EAAE,GAAGL,GAAG,CAACG,KAAK,GAAGJ,KAAK,CAACI,KAAK;EAClC,OAAOC,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,IAAIJ,IAAI,GAAGA,IAAI;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGO,MAAMK,kBAAkB,CAAC;EACtBC,YAAY,GAAmC,IAAI;EACnDC,WAAW,GAAG,IAAIC,GAAG,CAA8B,CAAC;EAE5DC,GAAGA,CAACH,YAA4C,EAAQ;IACtD,IAAI,CAACA,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACA,YAAY,EAAE;MACjB,IAAI,CAACC,WAAW,CAACG,KAAK,CAAC,CAAC;IAC1B;EACF;EAEAA,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACD,GAAG,CAAC,IAAI,CAAC;EAChB;EAEAE,GAAGA,CAAA,EAAmC;IACpC,OAAO,IAAI,CAACL,YAAY;EAC1B;;EAEA;EACAM,gBAAgBA,CAACC,UAA2B,EAAEZ,KAAa,EAAEC,KAAa,EAAQ;IAChF,IAAI,CAAC,IAAI,CAACI,YAAY,EAAE;MACtB,IAAI,CAACC,WAAW,CAACG,KAAK,CAAC,CAAC;MACxB;IACF;IACA,IAAI,CAACH,WAAW,CAACE,GAAG,CAACI,UAAU,EAAE;MAAEZ,KAAK;MAAEC;IAAM,CAAC,CAAC;EACpD;;EAEA;AACF;AACA;AACA;EACEY,cAAcA,CAACD,UAA2B,EAAEZ,KAAa,EAAEC,KAAa,EAAQ;IAC9E,MAAMJ,KAAK,GAAG,IAAI,CAACS,WAAW,CAACI,GAAG,CAACE,UAAU,CAAC,IAAI,IAAI;IACtD,IAAI,CAACN,WAAW,CAACQ,MAAM,CAACF,UAAU,CAAC;IACnC,MAAMG,GAAG,GAAG,IAAI,CAACV,YAAY;IAC7B,IAAI,CAACR,KAAK,IAAI,CAACkB,GAAG,EAAE;IAEpB,MAAMtB,IAAI,GAAGsB,GAAG,CAACC,OAAO,CAAC,CAAC;IAC1B,IAAI,CAACvB,IAAI,IAAIA,IAAI,CAACC,KAAK,IAAI,CAAC,IAAID,IAAI,CAACE,MAAM,IAAI,CAAC,EAAE;IAElD,IAAIC,WAAW,CAACC,KAAK,EAAE;MAAEG,KAAK;MAAEC;IAAM,CAAC,EAAER,IAAI,CAAC,EAAE;MAC9CsB,GAAG,CAACE,OAAO,CAAC,CAAC;IACf;EACF;;EAEA;AACF;AACA;AACA;EACEC,WAAWA,CAACN,UAA4B,EAAQ;IAC9C,IAAIA,UAAU,IAAI,IAAI,EAAE;MACtB,IAAI,CAACN,WAAW,CAACG,KAAK,CAAC,CAAC;MACxB;IACF;IACA,IAAI,CAACH,WAAW,CAACQ,MAAM,CAACF,UAAU,CAAC;EACrC;;EAEA;EACAO,aAAaA,CAAA,EAAS;IACpB,IAAI,CAACd,YAAY,GAAG,IAAI;IACxB,IAAI,CAACC,WAAW,CAACG,KAAK,CAAC,CAAC;EAC1B;AACF;;AAEA;AAAApB,OAAA,CAAAe,kBAAA,GAAAA,kBAAA;AACO,MAAMgB,kBAAkB,GAAA/B,OAAA,CAAA+B,kBAAA,GAAG,IAAIhB,kBAAkB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TARGET_PRESS_TAP_SLOP","exports","pointInRect","x","y","rect","width","height","withinTapSlop","start","end","slop","dx","pageX","dy","pageY","isTargetTap","TargetPressMonitor","subscription","touchStarts","Map","set","clear","get","handleTouchStart","identifier","handleTouchEnd","delete","sub","getRect","onPress","cancelTouch","resetForTests","targetPressMonitor"],"sourceRoot":"../../../src","sources":["anchors/targetPressMonitor.ts"],"mappings":"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","ignoreList":[]}
@@ -72,6 +72,7 @@ function useUserflowAnchor(id) {
72
72
  measureInWindow: callback => {
73
73
  node.measureInWindow(callback);
74
74
  },
75
+ node,
75
76
  scrollIntoView: () => {
76
77
  const scrollable = node;
77
78
  if (typeof scrollable.scrollIntoView === 'function') {