@userflow-tech/react-native 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/README.md +325 -63
  2. package/docs/anchoring.md +58 -42
  3. package/docs/troubleshooting.md +63 -27
  4. package/expo-plugin/hostDependencyWarnings.d.ts +18 -0
  5. package/expo-plugin/hostDependencyWarnings.d.ts.map +1 -0
  6. package/expo-plugin/hostDependencyWarnings.js +91 -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/index.js +5 -0
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/installCheck.js +151 -0
  38. package/lib/commonjs/installCheck.js.map +1 -0
  39. package/lib/commonjs/pairing/deviceId.js +14 -11
  40. package/lib/commonjs/pairing/deviceId.js.map +1 -1
  41. package/lib/commonjs/runtime/TargetPressBridge.js +12 -1
  42. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  43. package/lib/commonjs/runtime/UserflowProvider.js +6 -3
  44. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  45. package/lib/commonjs/storage/asyncStorage.js +67 -0
  46. package/lib/commonjs/storage/asyncStorage.js.map +1 -0
  47. package/lib/commonjs/surfaces/safeArea.js +68 -28
  48. package/lib/commonjs/surfaces/safeArea.js.map +1 -1
  49. package/lib/commonjs/version.js +1 -1
  50. package/lib/module/anchors/AnchorRegistry.js +7 -0
  51. package/lib/module/anchors/AnchorRegistry.js.map +1 -1
  52. package/lib/module/anchors/elementConditionEvaluator.js +189 -55
  53. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  54. package/lib/module/anchors/elementTapMonitor.js +87 -0
  55. package/lib/module/anchors/elementTapMonitor.js.map +1 -0
  56. package/lib/module/anchors/elementTargetMatch.js +78 -0
  57. package/lib/module/anchors/elementTargetMatch.js.map +1 -0
  58. package/lib/module/anchors/fiber/findAnchorFiber.js +62 -39
  59. package/lib/module/anchors/fiber/findAnchorFiber.js.map +1 -1
  60. package/lib/module/anchors/fiber/touchTargetFiber.js +100 -0
  61. package/lib/module/anchors/fiber/touchTargetFiber.js.map +1 -0
  62. package/lib/module/anchors/resolveAnchorHost.js +2 -1
  63. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  64. package/lib/module/anchors/resolveAutoAnchorHost.js +3 -3
  65. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
  66. package/lib/module/anchors/resolveElementTargets.js +152 -0
  67. package/lib/module/anchors/resolveElementTargets.js.map +1 -0
  68. package/lib/module/anchors/targetPressMonitor.js +8 -3
  69. package/lib/module/anchors/targetPressMonitor.js.map +1 -1
  70. package/lib/module/anchors/useUserflowAnchor.js +1 -0
  71. package/lib/module/anchors/useUserflowAnchor.js.map +1 -1
  72. package/lib/module/anonymousId.js +15 -5
  73. package/lib/module/anonymousId.js.map +1 -1
  74. package/lib/module/index.js +5 -0
  75. package/lib/module/index.js.map +1 -1
  76. package/lib/module/installCheck.js +139 -0
  77. package/lib/module/installCheck.js.map +1 -0
  78. package/lib/module/pairing/deviceId.js +14 -10
  79. package/lib/module/pairing/deviceId.js.map +1 -1
  80. package/lib/module/runtime/TargetPressBridge.js +12 -1
  81. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  82. package/lib/module/runtime/UserflowProvider.js +7 -4
  83. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  84. package/lib/module/storage/asyncStorage.js +61 -0
  85. package/lib/module/storage/asyncStorage.js.map +1 -0
  86. package/lib/module/surfaces/safeArea.js +65 -28
  87. package/lib/module/surfaces/safeArea.js.map +1 -1
  88. package/lib/module/version.js +1 -1
  89. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts +7 -0
  90. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts +12 -16
  92. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +36 -0
  94. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -0
  95. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +20 -0
  96. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -0
  97. package/lib/typescript/commonjs/src/anchors/fiber/findAnchorFiber.d.ts +17 -5
  98. package/lib/typescript/commonjs/src/anchors/fiber/findAnchorFiber.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/src/anchors/fiber/touchTargetFiber.d.ts +24 -0
  100. package/lib/typescript/commonjs/src/anchors/fiber/touchTargetFiber.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +2 -1
  102. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +10 -1
  104. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts +39 -0
  106. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +2 -0
  108. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/src/anonymousId.d.ts +2 -0
  111. package/lib/typescript/commonjs/src/anonymousId.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/src/installCheck.d.ts +33 -0
  114. package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/src/pairing/deviceId.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +2 -1
  117. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/src/storage/asyncStorage.d.ts +15 -0
  120. package/lib/typescript/commonjs/src/storage/asyncStorage.d.ts.map +1 -0
  121. package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts +4 -2
  122. package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  124. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts +7 -0
  125. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts.map +1 -1
  126. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts +12 -16
  127. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  128. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +36 -0
  129. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -0
  130. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +20 -0
  131. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -0
  132. package/lib/typescript/module/src/anchors/fiber/findAnchorFiber.d.ts +17 -5
  133. package/lib/typescript/module/src/anchors/fiber/findAnchorFiber.d.ts.map +1 -1
  134. package/lib/typescript/module/src/anchors/fiber/touchTargetFiber.d.ts +24 -0
  135. package/lib/typescript/module/src/anchors/fiber/touchTargetFiber.d.ts.map +1 -0
  136. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +2 -1
  137. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  138. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +10 -1
  139. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  140. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts +39 -0
  141. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -0
  142. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +2 -0
  143. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
  144. package/lib/typescript/module/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  145. package/lib/typescript/module/src/anonymousId.d.ts +2 -0
  146. package/lib/typescript/module/src/anonymousId.d.ts.map +1 -1
  147. package/lib/typescript/module/src/index.d.ts.map +1 -1
  148. package/lib/typescript/module/src/installCheck.d.ts +33 -0
  149. package/lib/typescript/module/src/installCheck.d.ts.map +1 -0
  150. package/lib/typescript/module/src/pairing/deviceId.d.ts.map +1 -1
  151. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +2 -1
  152. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  153. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  154. package/lib/typescript/module/src/storage/asyncStorage.d.ts +15 -0
  155. package/lib/typescript/module/src/storage/asyncStorage.d.ts.map +1 -0
  156. package/lib/typescript/module/src/surfaces/safeArea.d.ts +4 -2
  157. package/lib/typescript/module/src/surfaces/safeArea.d.ts.map +1 -1
  158. package/lib/typescript/module/src/version.d.ts +1 -1
  159. package/package.json +13 -1
  160. package/src/anchors/AnchorRegistry.ts +12 -0
  161. package/src/anchors/elementConditionEvaluator.ts +235 -70
  162. package/src/anchors/elementTapMonitor.ts +95 -0
  163. package/src/anchors/elementTargetMatch.ts +90 -0
  164. package/src/anchors/fiber/findAnchorFiber.ts +66 -35
  165. package/src/anchors/fiber/touchTargetFiber.ts +125 -0
  166. package/src/anchors/resolveAnchorHost.ts +2 -1
  167. package/src/anchors/resolveAutoAnchorHost.ts +3 -3
  168. package/src/anchors/resolveElementTargets.ts +165 -0
  169. package/src/anchors/targetPressMonitor.ts +12 -3
  170. package/src/anchors/useUserflowAnchor.ts +1 -0
  171. package/src/anonymousId.ts +19 -8
  172. package/src/index.ts +10 -0
  173. package/src/installCheck.ts +191 -0
  174. package/src/pairing/deviceId.ts +14 -11
  175. package/src/runtime/TargetPressBridge.tsx +17 -1
  176. package/src/runtime/UserflowProvider.tsx +11 -4
  177. package/src/storage/asyncStorage.ts +88 -0
  178. package/src/surfaces/safeArea.ts +80 -40
  179. package/src/version.ts +1 -1
  180. package/vendor/core/dist/constants.d.ts +2 -0
  181. package/vendor/core/dist/constants.d.ts.map +1 -1
  182. package/vendor/core/dist/constants.js +2 -0
  183. package/vendor/core/dist/constants.js.map +1 -1
  184. package/vendor/core/dist/engine/ClientConditionEngine.d.ts +20 -1
  185. package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
  186. package/vendor/core/dist/engine/ClientConditionEngine.js +13 -10
  187. package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
  188. package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -1
  189. package/vendor/core/dist/engine/UserflowCore.js +21 -2
  190. package/vendor/core/dist/engine/UserflowCore.js.map +1 -1
  191. package/vendor/core/dist/index.d.ts +1 -1
  192. package/vendor/core/dist/index.d.ts.map +1 -1
  193. package/vendor/core/dist/index.js.map +1 -1
  194. package/vendor/core/dist/version.d.ts +1 -1
  195. package/vendor/core/dist/version.js +1 -1
  196. package/vendor/core/package.json +1 -1
  197. package/vendor/protocol/package.json +1 -1
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Resolve every host an ELEMENT condition should consider.
5
+ *
6
+ * Tooltips fail closed when an id matches more than one view. Conditions follow
7
+ * the web SDK instead: any match counts. AUTO exact ids (`userflowId`, then
8
+ * `testID`, then a real `nativeID`) use that same multi-host lookup, and fall
9
+ * through to scoring only when nothing matched.
10
+ */
11
+ import { decodeMobileAutoData } from '@userflow-tech/protocol';
12
+ import { anchorRegistry } from "./AnchorRegistry.js";
13
+ import { anchorIdsAboveTap } from "./elementTargetMatch.js";
14
+ import { fiberScanRoot } from "./fiber/FiberScanRoot.js";
15
+ import { publicInstanceFromHostFiber } from "./fiber/fiberInternals.js";
16
+ import { findAnchorFibers } from "./fiber/findAnchorFiber.js";
17
+ import { createLazyHostFiberIndex, lookupHostFiber } from "./fiber/indexHostFibers.js";
18
+ import { createFiberMeasureInWindow } from "./fiber/measureHostFiber.js";
19
+ import { isFiberOnVisibleScreen } from "./fiber/visibleScreens.js";
20
+ import { exactIdFromFingerprint, resolveAutoAnchorHost, resolveScoredAutoAnchor } from "./resolveAutoAnchorHost.js";
21
+ import { resolveManualAnchorId } from "./resolveManualAnchorId.js";
22
+ export function resolveElementTargets(selector) {
23
+ if (selector == null) return {
24
+ status: 'unknown'
25
+ };
26
+ if (selector.type === 'AUTO') {
27
+ return resolveAutoTargets(selector.autoData);
28
+ }
29
+ const anchorId = resolveManualAnchorId(selector.css);
30
+ if (anchorId == null) return {
31
+ status: 'unknown'
32
+ };
33
+ return resolveManualTargets(anchorId);
34
+ }
35
+
36
+ /**
37
+ * False when no target of `selector` can contain `tap`, decided without a tree
38
+ * scan. A fiber-scan target carries its id itself or sits under a composite
39
+ * that does, so a MANUAL id that is neither registered nor on the tap's
40
+ * ancestor chain cannot match. AUTO selectors are not gated: only a scan tells
41
+ * whether the exact id or a scored match applies.
42
+ */
43
+ export function tapMayHitSelector(selector, tap) {
44
+ if (selector == null) return false;
45
+ if (selector.type === 'AUTO') return true;
46
+ const anchorId = resolveManualAnchorId(selector.css);
47
+ if (anchorId == null) return false;
48
+ return anchorRegistry.get(anchorId) != null || anchorIdsAboveTap(tap).has(anchorId);
49
+ }
50
+ function resolveAutoTargets(autoData) {
51
+ const decoded = decodeMobileAutoData(autoData);
52
+ const fingerprint = decoded?.fingerprint;
53
+ if (!decoded || !fingerprint) return {
54
+ status: 'unknown'
55
+ };
56
+ if (decoded.resolver === 'fiber' && decoded.fiberPath) {
57
+ return fromAutoResolution(resolveAutoAnchorHost(decoded));
58
+ }
59
+ const exactId = exactIdFromFingerprint(fingerprint);
60
+ if (exactId) {
61
+ const manual = resolveManualTargets(exactId);
62
+ if (manual.status === 'found') return manual;
63
+ }
64
+
65
+ // The exact id already missed above, so go straight to scoring rather than
66
+ // letting resolveAutoAnchorHost scan for it again.
67
+ return fromAutoResolution(resolveScoredAutoAnchor(fingerprint));
68
+ }
69
+ function fromAutoResolution(resolution) {
70
+ if (resolution.status === 'found') {
71
+ // Scored matches only try the direct ref pointer, which Paper release
72
+ // builds null out. Without the index fallback a tap could never match.
73
+ const fiber = resolution.fiber ?? fiberForNode(createLazyHostFiberIndex(), resolution.match?.instance?.ref.current);
74
+ return {
75
+ status: 'found',
76
+ targets: [{
77
+ host: resolution.host,
78
+ ...(fiber ? {
79
+ fiber
80
+ } : {})
81
+ }]
82
+ };
83
+ }
84
+ if (resolution.status === 'absent') return {
85
+ status: 'absent'
86
+ };
87
+ // Ambiguous and unknown both fail closed. Ambiguous is a real tie, not a
88
+ // broken selector, so it does not warn.
89
+ if (resolution.status === 'ambiguous') return {
90
+ status: 'unknown',
91
+ silent: true
92
+ };
93
+ return {
94
+ status: 'unknown'
95
+ };
96
+ }
97
+ function resolveManualTargets(id) {
98
+ const registered = anchorRegistry.getAll(id);
99
+ if (registered.length > 0) {
100
+ const index = createLazyHostFiberIndex();
101
+ // Registered views on a covered navigator screen still measure non-zero,
102
+ // so drop them here the way the fiber scan skips covered screens. A host
103
+ // whose fiber cannot be found is kept.
104
+ const targets = registered.map(host => {
105
+ const fiber = fiberForNode(index, host.node);
106
+ return fiber ? {
107
+ host,
108
+ fiber
109
+ } : {
110
+ host
111
+ };
112
+ }).filter(target => !target.fiber || isFiberOnVisibleScreen(target.fiber));
113
+ return targets.length > 0 ? {
114
+ status: 'found',
115
+ targets
116
+ } : {
117
+ status: 'absent'
118
+ };
119
+ }
120
+ const root = fiberScanRoot.getFiber();
121
+ if (!root) return {
122
+ status: 'absent'
123
+ };
124
+ const found = findAnchorFibers(root, id);
125
+ if (found.status === 'missing') return {
126
+ status: 'absent'
127
+ };
128
+ return {
129
+ status: 'found',
130
+ targets: found.fibers.map(fiber => {
131
+ const node = publicInstanceFromHostFiber(fiber);
132
+ return {
133
+ host: {
134
+ measureInWindow: createFiberMeasureInWindow(fiber),
135
+ ...(node ? {
136
+ node
137
+ } : {})
138
+ },
139
+ fiber
140
+ };
141
+ })
142
+ };
143
+ }
144
+ function fiberForNode(index, node) {
145
+ if (!node) return undefined;
146
+ try {
147
+ return lookupHostFiber(index, node) ?? undefined;
148
+ } catch {
149
+ return undefined;
150
+ }
151
+ }
152
+ //# sourceMappingURL=resolveElementTargets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["decodeMobileAutoData","anchorRegistry","anchorIdsAboveTap","fiberScanRoot","publicInstanceFromHostFiber","findAnchorFibers","createLazyHostFiberIndex","lookupHostFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","exactIdFromFingerprint","resolveAutoAnchorHost","resolveScoredAutoAnchor","resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","css","resolveManualTargets","tapMayHitSelector","tap","get","has","decoded","fingerprint","resolver","fiberPath","fromAutoResolution","exactId","manual","resolution","fiber","fiberForNode","match","instance","ref","current","targets","host","silent","id","registered","getAll","length","index","map","node","filter","target","root","getFiber","found","fibers","measureInWindow","undefined"],"sourceRoot":"../../../src","sources":["anchors/resolveElementTargets.ts"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,13 @@ export const TARGET_PRESS_TAP_SLOP = 10;
13
13
  export function pointInRect(x, y, rect) {
14
14
  return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height;
15
15
  }
16
+ /** True when the finger moved no more than `slop` between start and end. */
17
+ export function withinTapSlop(start, end, slop = TARGET_PRESS_TAP_SLOP) {
18
+ const dx = end.pageX - start.pageX;
19
+ const dy = end.pageY - start.pageY;
20
+ return dx * dx + dy * dy <= slop * slop;
21
+ }
22
+
16
23
  /**
17
24
  * True when start and end both land in `rect` and movement stays within tap
18
25
  * slop — mirrors a DOM click on the target without claiming the responder.
@@ -20,9 +27,7 @@ export function pointInRect(x, y, rect) {
20
27
  export function isTargetTap(start, end, rect, slop = TARGET_PRESS_TAP_SLOP) {
21
28
  if (!pointInRect(start.pageX, start.pageY, rect)) return false;
22
29
  if (!pointInRect(end.pageX, end.pageY, rect)) return false;
23
- const dx = end.pageX - start.pageX;
24
- const dy = end.pageY - start.pageY;
25
- return dx * dx + dy * dy <= slop * slop;
30
+ return withinTapSlop(start, end, slop);
26
31
  }
27
32
 
28
33
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["TARGET_PRESS_TAP_SLOP","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;AACA,OAAO,MAAMA,qBAAqB,GAAG,EAAE;AAEvC,OAAO,SAASC,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;AACA,OAAO,SAASC,WAAWA,CACzBC,KAAiB,EACjBC,GAAe,EACfL,IAAqB,EACrBM,IAAY,GAAGV,qBAAqB,EAC3B;EACT,IAAI,CAACC,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;;AAGA,OAAO,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;AACA,OAAO,MAAMW,kBAAkB,GAAG,IAAIhB,kBAAkB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TARGET_PRESS_TAP_SLOP","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":[]}
@@ -68,6 +68,7 @@ export function useUserflowAnchor(id) {
68
68
  measureInWindow: callback => {
69
69
  node.measureInWindow(callback);
70
70
  },
71
+ node,
71
72
  scrollIntoView: () => {
72
73
  const scrollable = node;
73
74
  if (typeof scrollable.scrollIntoView === 'function') {
@@ -1 +1 @@
1
- {"version":3,"names":["React","anchorRegistry","useUserflowAnchor","id","hostRef","useRef","idRef","useEffect","previousId","current","host","unregister","register","useCallback","node","previous","currentId","measureInWindow","callback","scrollIntoView","scrollable","block","inline"],"sourceRoot":"../../../src","sources":["anchors/useUserflowAnchor.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,cAAc,QAAyB,qBAAkB;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,EAAU,EAA2B;EACrE,MAAMC,OAAO,GAAGJ,KAAK,CAACK,MAAM,CAAoB,IAAI,CAAC;EACrD,MAAMC,KAAK,GAAGN,KAAK,CAACK,MAAM,CAACF,EAAE,CAAC;EAE9BH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,MAAMC,UAAU,GAAGF,KAAK,CAACG,OAAO;IAChC,MAAMC,IAAI,GAAGN,OAAO,CAACK,OAAO;IAC5B,IAAID,UAAU,KAAKL,EAAE,IAAIO,IAAI,EAAE;MAC7BT,cAAc,CAACU,UAAU,CAACH,UAAU,EAAEE,IAAI,CAAC;MAC3C,IAAIP,EAAE,EAAE;QACNF,cAAc,CAACW,QAAQ,CAACT,EAAE,EAAEO,IAAI,CAAC;MACnC;IACF;IACAJ,KAAK,CAACG,OAAO,GAAGN,EAAE;EACpB,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC;EAERH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,MAAMG,IAAI,GAAGN,OAAO,CAACK,OAAO;MAC5B,IAAIC,IAAI,EAAE;QACRT,cAAc,CAACU,UAAU,CAACL,KAAK,CAACG,OAAO,EAAEC,IAAI,CAAC;QAC9CN,OAAO,CAACK,OAAO,GAAG,IAAI;MACxB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOT,KAAK,CAACa,WAAW,CAAEC,IAAiB,IAAK;IAC9C,MAAMC,QAAQ,GAAGX,OAAO,CAACK,OAAO;IAChC,MAAMO,SAAS,GAAGV,KAAK,CAACG,OAAO;IAC/B,IAAIM,QAAQ,EAAE;MACZd,cAAc,CAACU,UAAU,CAACK,SAAS,EAAED,QAAQ,CAAC;IAChD;IACA,IAAI,CAACD,IAAI,EAAE;MACTV,OAAO,CAACK,OAAO,GAAG,IAAI;MACtB;IACF;;IAEA;IACA,MAAMC,IAAgB,GAAG;MACvBO,eAAe,EAAGC,QAAQ,IAAK;QAC7BJ,IAAI,CAACG,eAAe,CAACC,QAAQ,CAAC;MAChC,CAAC;MACDC,cAAc,EAAEA,CAAA,KAAM;QACpB,MAAMC,UAAU,GAAGN,IAElB;QACD,IAAI,OAAOM,UAAU,CAACD,cAAc,KAAK,UAAU,EAAE;UACnDC,UAAU,CAACD,cAAc,CAAC;YAAEE,KAAK,EAAE,SAAS;YAAEC,MAAM,EAAE;UAAU,CAAC,CAAC;QACpE;MACF;IACF,CAAC;IACDlB,OAAO,CAACK,OAAO,GAAGC,IAAI;IACtB,IAAIM,SAAS,EAAE;MACbf,cAAc,CAACW,QAAQ,CAACI,SAAS,EAAEN,IAAI,CAAC;IAC1C;EACF,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
1
+ {"version":3,"names":["React","anchorRegistry","useUserflowAnchor","id","hostRef","useRef","idRef","useEffect","previousId","current","host","unregister","register","useCallback","node","previous","currentId","measureInWindow","callback","scrollIntoView","scrollable","block","inline"],"sourceRoot":"../../../src","sources":["anchors/useUserflowAnchor.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,cAAc,QAAyB,qBAAkB;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,EAAU,EAA2B;EACrE,MAAMC,OAAO,GAAGJ,KAAK,CAACK,MAAM,CAAoB,IAAI,CAAC;EACrD,MAAMC,KAAK,GAAGN,KAAK,CAACK,MAAM,CAACF,EAAE,CAAC;EAE9BH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,MAAMC,UAAU,GAAGF,KAAK,CAACG,OAAO;IAChC,MAAMC,IAAI,GAAGN,OAAO,CAACK,OAAO;IAC5B,IAAID,UAAU,KAAKL,EAAE,IAAIO,IAAI,EAAE;MAC7BT,cAAc,CAACU,UAAU,CAACH,UAAU,EAAEE,IAAI,CAAC;MAC3C,IAAIP,EAAE,EAAE;QACNF,cAAc,CAACW,QAAQ,CAACT,EAAE,EAAEO,IAAI,CAAC;MACnC;IACF;IACAJ,KAAK,CAACG,OAAO,GAAGN,EAAE;EACpB,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC;EAERH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,MAAMG,IAAI,GAAGN,OAAO,CAACK,OAAO;MAC5B,IAAIC,IAAI,EAAE;QACRT,cAAc,CAACU,UAAU,CAACL,KAAK,CAACG,OAAO,EAAEC,IAAI,CAAC;QAC9CN,OAAO,CAACK,OAAO,GAAG,IAAI;MACxB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOT,KAAK,CAACa,WAAW,CAAEC,IAAiB,IAAK;IAC9C,MAAMC,QAAQ,GAAGX,OAAO,CAACK,OAAO;IAChC,MAAMO,SAAS,GAAGV,KAAK,CAACG,OAAO;IAC/B,IAAIM,QAAQ,EAAE;MACZd,cAAc,CAACU,UAAU,CAACK,SAAS,EAAED,QAAQ,CAAC;IAChD;IACA,IAAI,CAACD,IAAI,EAAE;MACTV,OAAO,CAACK,OAAO,GAAG,IAAI;MACtB;IACF;;IAEA;IACA,MAAMC,IAAgB,GAAG;MACvBO,eAAe,EAAGC,QAAQ,IAAK;QAC7BJ,IAAI,CAACG,eAAe,CAACC,QAAQ,CAAC;MAChC,CAAC;MACDJ,IAAI;MACJK,cAAc,EAAEA,CAAA,KAAM;QACpB,MAAMC,UAAU,GAAGN,IAElB;QACD,IAAI,OAAOM,UAAU,CAACD,cAAc,KAAK,UAAU,EAAE;UACnDC,UAAU,CAACD,cAAc,CAAC;YAAEE,KAAK,EAAE,SAAS;YAAEC,MAAM,EAAE;UAAU,CAAC,CAAC;QACpE;MACF;IACF,CAAC;IACDlB,OAAO,CAACK,OAAO,GAAGC,IAAI;IACtB,IAAIM,SAAS,EAAE;MACbf,cAAc,CAACW,QAAQ,CAACI,SAAS,EAAEN,IAAI,CAAC;IAC1C;EACF,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import AsyncStorage from '@react-native-async-storage/async-storage';
4
3
  import { UserflowAuthError } from '@userflow-tech/core';
4
+ import { getAsyncStorage } from "./storage/asyncStorage.js";
5
5
 
6
6
  /** Matches the web SDK's `userflow:anonymousId` localStorage key. */
7
7
  export const ANONYMOUS_ID_STORAGE_KEY = 'userflow:anonymousId';
8
+ export const ANONYMOUS_STORAGE_UNAVAILABLE = 'Userflow.identifyAnonymous() is not supported when persistent storage is unavailable.';
9
+ export const ANONYMOUS_STORAGE_NOT_LINKED = 'Userflow.identifyAnonymous() needs @react-native-async-storage/async-storage, which is not ' + "linked in this native build. Add it to your app's package.json, run pod install, and rebuild.";
8
10
  export function uuid() {
9
11
  const webcrypto = globalThis.crypto;
10
12
  if (webcrypto?.randomUUID) return webcrypto.randomUUID();
@@ -15,22 +17,30 @@ export function uuid() {
15
17
  });
16
18
  }
17
19
  export async function getOrCreateAnonymousId() {
20
+ const storage = getAsyncStorage();
21
+ if (!storage) {
22
+ throw new UserflowAuthError(ANONYMOUS_STORAGE_NOT_LINKED, {
23
+ isHostContract: true
24
+ });
25
+ }
18
26
  try {
19
- let externalId = await AsyncStorage.getItem(ANONYMOUS_ID_STORAGE_KEY);
27
+ let externalId = await storage.getItem(ANONYMOUS_ID_STORAGE_KEY);
20
28
  if (!externalId) {
21
29
  externalId = `anon-${uuid()}`;
22
- await AsyncStorage.setItem(ANONYMOUS_ID_STORAGE_KEY, externalId);
30
+ await storage.setItem(ANONYMOUS_ID_STORAGE_KEY, externalId);
23
31
  }
24
32
  return externalId;
25
33
  } catch {
26
- throw new UserflowAuthError('Userflow.identifyAnonymous() is not supported when persistent storage is unavailable.', {
34
+ throw new UserflowAuthError(ANONYMOUS_STORAGE_UNAVAILABLE, {
27
35
  isHostContract: true
28
36
  });
29
37
  }
30
38
  }
31
39
  export async function clearAnonymousId() {
40
+ const storage = getAsyncStorage();
41
+ if (!storage) return;
32
42
  try {
33
- await AsyncStorage.removeItem(ANONYMOUS_ID_STORAGE_KEY);
43
+ await storage.removeItem(ANONYMOUS_ID_STORAGE_KEY);
34
44
  } catch {
35
45
  // Best-effort clear, mirroring the web SDK when storage access is denied.
36
46
  }
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncStorage","UserflowAuthError","ANONYMOUS_ID_STORAGE_KEY","uuid","webcrypto","globalThis","crypto","randomUUID","replace","char","rand","Math","random","value","toString","getOrCreateAnonymousId","externalId","getItem","setItem","isHostContract","clearAnonymousId","removeItem"],"sourceRoot":"../../src","sources":["anonymousId.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AACpE,SAASC,iBAAiB,QAAQ,qBAAqB;;AAEvD;AACA,OAAO,MAAMC,wBAAwB,GAAG,sBAAsB;AAE9D,OAAO,SAASC,IAAIA,CAAA,EAAW;EAC7B,MAAMC,SAAS,GAAGC,UAAU,CAACC,MAAM;EACnC,IAAIF,SAAS,EAAEG,UAAU,EAAE,OAAOH,SAAS,CAACG,UAAU,CAAC,CAAC;EACxD,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,IAAI,IAAK;IACvE,MAAMC,IAAI,GAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC;IACrC,MAAMC,KAAK,GAAGJ,IAAI,KAAK,GAAG,GAAGC,IAAI,GAAIA,IAAI,GAAG,GAAG,GAAI,GAAG;IACtD,OAAOG,KAAK,CAACC,QAAQ,CAAC,EAAE,CAAC;EAC3B,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeC,sBAAsBA,CAAA,EAAoB;EAC9D,IAAI;IACF,IAAIC,UAAU,GAAG,MAAMhB,YAAY,CAACiB,OAAO,CAACf,wBAAwB,CAAC;IACrE,IAAI,CAACc,UAAU,EAAE;MACfA,UAAU,GAAG,QAAQb,IAAI,CAAC,CAAC,EAAE;MAC7B,MAAMH,YAAY,CAACkB,OAAO,CAAChB,wBAAwB,EAAEc,UAAU,CAAC;IAClE;IACA,OAAOA,UAAU;EACnB,CAAC,CAAC,MAAM;IACN,MAAM,IAAIf,iBAAiB,CACzB,uFAAuF,EACvF;MAAEkB,cAAc,EAAE;IAAK,CACzB,CAAC;EACH;AACF;AAEA,OAAO,eAAeC,gBAAgBA,CAAA,EAAkB;EACtD,IAAI;IACF,MAAMpB,YAAY,CAACqB,UAAU,CAACnB,wBAAwB,CAAC;EACzD,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["UserflowAuthError","getAsyncStorage","ANONYMOUS_ID_STORAGE_KEY","ANONYMOUS_STORAGE_UNAVAILABLE","ANONYMOUS_STORAGE_NOT_LINKED","uuid","webcrypto","globalThis","crypto","randomUUID","replace","char","rand","Math","random","value","toString","getOrCreateAnonymousId","storage","isHostContract","externalId","getItem","setItem","clearAnonymousId","removeItem"],"sourceRoot":"../../src","sources":["anonymousId.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,eAAe,QAAQ,2BAAwB;;AAExD;AACA,OAAO,MAAMC,wBAAwB,GAAG,sBAAsB;AAE9D,OAAO,MAAMC,6BAA6B,GACxC,uFAAuF;AAEzF,OAAO,MAAMC,4BAA4B,GACvC,6FAA6F,GAC7F,+FAA+F;AAEjG,OAAO,SAASC,IAAIA,CAAA,EAAW;EAC7B,MAAMC,SAAS,GAAGC,UAAU,CAACC,MAAM;EACnC,IAAIF,SAAS,EAAEG,UAAU,EAAE,OAAOH,SAAS,CAACG,UAAU,CAAC,CAAC;EACxD,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,IAAI,IAAK;IACvE,MAAMC,IAAI,GAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC;IACrC,MAAMC,KAAK,GAAGJ,IAAI,KAAK,GAAG,GAAGC,IAAI,GAAIA,IAAI,GAAG,GAAG,GAAI,GAAG;IACtD,OAAOG,KAAK,CAACC,QAAQ,CAAC,EAAE,CAAC;EAC3B,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeC,sBAAsBA,CAAA,EAAoB;EAC9D,MAAMC,OAAO,GAAGjB,eAAe,CAAC,CAAC;EACjC,IAAI,CAACiB,OAAO,EAAE;IACZ,MAAM,IAAIlB,iBAAiB,CAACI,4BAA4B,EAAE;MAAEe,cAAc,EAAE;IAAK,CAAC,CAAC;EACrF;EACA,IAAI;IACF,IAAIC,UAAU,GAAG,MAAMF,OAAO,CAACG,OAAO,CAACnB,wBAAwB,CAAC;IAChE,IAAI,CAACkB,UAAU,EAAE;MACfA,UAAU,GAAG,QAAQf,IAAI,CAAC,CAAC,EAAE;MAC7B,MAAMa,OAAO,CAACI,OAAO,CAACpB,wBAAwB,EAAEkB,UAAU,CAAC;IAC7D;IACA,OAAOA,UAAU;EACnB,CAAC,CAAC,MAAM;IACN,MAAM,IAAIpB,iBAAiB,CAACG,6BAA6B,EAAE;MAAEgB,cAAc,EAAE;IAAK,CAAC,CAAC;EACtF;AACF;AAEA,OAAO,eAAeI,gBAAgBA,CAAA,EAAkB;EACtD,MAAML,OAAO,GAAGjB,eAAe,CAAC,CAAC;EACjC,IAAI,CAACiB,OAAO,EAAE;EACd,IAAI;IACF,MAAMA,OAAO,CAACM,UAAU,CAACtB,wBAAwB,CAAC;EACpD,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ","ignoreList":[]}
@@ -20,6 +20,7 @@ import { cacheDeviceContextAtInit, getCachedDeviceContext, logDeviceContext as l
20
20
  import { setEvalJsBridgeHandlers } from "./evalJs/evalJsBridge.js";
21
21
  import { evalJsController } from "./evalJs/evalJsController.js";
22
22
  import { cacheHostAppVersionAtInit, getCachedHostAppVersion, logHostAppVersion as logHostAppVersionToConsole, mergeHostAppVersionUserAttributes } from "./hostAppVersion.js";
23
+ import { commitInitOptions, releaseFailedInitOptions, warnIfInitOptionsIgnored, warnIfInstallIncomplete } from "./installCheck.js";
23
24
  import { LifecycleController } from "./lifecycle.js";
24
25
  import { openFlowNavigateUrl, setHostOnNavigate } from "./navigation/openFlowNavigateUrl.js";
25
26
  import { NetworkController } from "./network.js";
@@ -148,6 +149,7 @@ async function afterIdentify() {
148
149
  export const Userflow = {
149
150
  /** Validate credentials, store configuration, and wire app-lifecycle handling. */
150
151
  init(config) {
152
+ warnIfInitOptionsIgnored(config);
151
153
  cacheHostAppVersionAtInit({
152
154
  ...(config.appVersion !== undefined ? {
153
155
  appVersion: config.appVersion
@@ -156,6 +158,7 @@ export const Userflow = {
156
158
  appBuild: config.appBuild
157
159
  } : {})
158
160
  });
161
+ warnIfInstallIncomplete();
159
162
  cacheDeviceContextAtInit();
160
163
  setHostOnNavigate(config.onNavigate);
161
164
  lifecycle.start();
@@ -185,6 +188,7 @@ export const Userflow = {
185
188
  pairing.notifyInitStarted();
186
189
  void pairing.start();
187
190
  return core.init(config).then(resolved => {
191
+ commitInitOptions();
188
192
  enableScreenTracking();
189
193
  // Pairing connect can take the full socket timeout. Identify, and the
190
194
  // end-user socket that delivers the preview, must not wait on it.
@@ -192,6 +196,7 @@ export const Userflow = {
192
196
  void pairing.notifyInitialized();
193
197
  return resolved;
194
198
  }, error => {
199
+ releaseFailedInitOptions();
195
200
  pairing.notifyInitFailed(error);
196
201
  throw error;
197
202
  });
@@ -1 +1 @@
1
- {"version":3,"names":["anchorChangeTicker","notifyAnchorScreenChange","setCustomScrollIntoView","setCustomScrollIntoViewConfig","setScrollPadding","setScrollPaddingConfig","clearAnonymousId","getOrCreateAnonymousId","didHandleURL","flushPendingPreviewToken","startDeepLinking","stopDeepLinking","cacheDeviceContextAtInit","getCachedDeviceContext","logDeviceContext","logDeviceContextToConsole","mergeDeviceContextUserAttributes","setEvalJsBridgeHandlers","evalJsController","cacheHostAppVersionAtInit","getCachedHostAppVersion","logHostAppVersion","logHostAppVersionToConsole","mergeHostAppVersionUserAttributes","LifecycleController","openFlowNavigateUrl","setHostOnNavigate","NetworkController","getPairingController","installPairingController","attachBannerSessionEngine","clearBannerSessionEngineLocalSession","getBannerSessionEngine","resetBannerSessionEngine","attachClientConditionEngine","resetClientConditionEngine","attachFlowSessionEngine","cancelPendingDraftEnd","clearFlowSessionEngineLocalSession","endDraftFlowSession","endEvalJsFlowSession","getFlowSessionEngine","hasActiveFlowSession","resetFlowSessionEngine","isolateAsync","isolateSync","getUserflowCore","disableScreenTracking","enableScreenTracking","getCurrentScreenLocation","handleScreenChange","reportCurrentScreen","SCREEN_VIEWED_EVENT","screenViewedAttributes","setScreenChangeReporter","setSurfaceInteractionBlocking","setSurfaceInteractionBlockingConfig","SDK_VERSION","EmbedBannerPlaceholder","UserflowProvider","useUserflow","useFlowSessionState","useUserflowScreen","useUserflowAnchor","__userflowAutoAnchor","useUserflowScrollContainer","INACTIVITY_TIMEOUT_MS","SESSION_STALE_AFTER_BACKGROUND_MS","SUSPEND_GRACE_MS","inspectPairingDeepLink","isPairingAttempt","parsePairingDeepLink","isUserflowPairingUrl","PreviewModeBanner","core","lifecycle","suspend","resume","flushPendingSends","clearLocalSession","setFlowSessionId","setBannerSessionId","ensureAlive","hasActiveSession","onScreenResume","network","screenViewedAwaitingIdentify","armScreenViewedForNextIdentify","wireScreenChangeReporter","location","reportActivity","screenKey","path","screen","notify","identified","getUserId","__DEV__","console","log","updateScreen","rethrowHostContract","attrs","track","wireDeepLinking","isIdentified","startFlowWithToken","token","mergeSystemUserAttributes","attributes","afterIdentify","notifyIdentified","Userflow","init","config","appVersion","undefined","appBuild","onNavigate","start","pairing","pairingEndpoint","reset","endDraftSession","notifyInitStarted","then","resolved","notifyInitialized","error","notifyInitFailed","handlePairingUrl","url","handleUrl","exitPreview","setOnNavigate","handler","identify","userId","options","previousId","setClientConditions","identifyAnonymous","anonymousId","group","groupId","updateUser","updateGroup","name","getAttributes","getHostAppVersion","getDeviceContext","teardown","stop","screenName","padding","fn","enabled","setEvalJsContext","values","setHostContext","membership","openUrl","endFlow","sessionIds","warn","message"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["anchorChangeTicker","notifyAnchorScreenChange","setCustomScrollIntoView","setCustomScrollIntoViewConfig","setScrollPadding","setScrollPaddingConfig","clearAnonymousId","getOrCreateAnonymousId","didHandleURL","flushPendingPreviewToken","startDeepLinking","stopDeepLinking","cacheDeviceContextAtInit","getCachedDeviceContext","logDeviceContext","logDeviceContextToConsole","mergeDeviceContextUserAttributes","setEvalJsBridgeHandlers","evalJsController","cacheHostAppVersionAtInit","getCachedHostAppVersion","logHostAppVersion","logHostAppVersionToConsole","mergeHostAppVersionUserAttributes","commitInitOptions","releaseFailedInitOptions","warnIfInitOptionsIgnored","warnIfInstallIncomplete","LifecycleController","openFlowNavigateUrl","setHostOnNavigate","NetworkController","getPairingController","installPairingController","attachBannerSessionEngine","clearBannerSessionEngineLocalSession","getBannerSessionEngine","resetBannerSessionEngine","attachClientConditionEngine","resetClientConditionEngine","attachFlowSessionEngine","cancelPendingDraftEnd","clearFlowSessionEngineLocalSession","endDraftFlowSession","endEvalJsFlowSession","getFlowSessionEngine","hasActiveFlowSession","resetFlowSessionEngine","isolateAsync","isolateSync","getUserflowCore","disableScreenTracking","enableScreenTracking","getCurrentScreenLocation","handleScreenChange","reportCurrentScreen","SCREEN_VIEWED_EVENT","screenViewedAttributes","setScreenChangeReporter","setSurfaceInteractionBlocking","setSurfaceInteractionBlockingConfig","SDK_VERSION","EmbedBannerPlaceholder","UserflowProvider","useUserflow","useFlowSessionState","useUserflowScreen","useUserflowAnchor","__userflowAutoAnchor","useUserflowScrollContainer","INACTIVITY_TIMEOUT_MS","SESSION_STALE_AFTER_BACKGROUND_MS","SUSPEND_GRACE_MS","inspectPairingDeepLink","isPairingAttempt","parsePairingDeepLink","isUserflowPairingUrl","PreviewModeBanner","core","lifecycle","suspend","resume","flushPendingSends","clearLocalSession","setFlowSessionId","setBannerSessionId","ensureAlive","hasActiveSession","onScreenResume","network","screenViewedAwaitingIdentify","armScreenViewedForNextIdentify","wireScreenChangeReporter","location","reportActivity","screenKey","path","screen","notify","identified","getUserId","__DEV__","console","log","updateScreen","rethrowHostContract","attrs","track","wireDeepLinking","isIdentified","startFlowWithToken","token","mergeSystemUserAttributes","attributes","afterIdentify","notifyIdentified","Userflow","init","config","appVersion","undefined","appBuild","onNavigate","start","pairing","pairingEndpoint","reset","endDraftSession","notifyInitStarted","then","resolved","notifyInitialized","error","notifyInitFailed","handlePairingUrl","url","handleUrl","exitPreview","setOnNavigate","handler","identify","userId","options","previousId","setClientConditions","identifyAnonymous","anonymousId","group","groupId","updateUser","updateGroup","name","getAttributes","getHostAppVersion","getDeviceContext","teardown","stop","screenName","padding","fn","enabled","setEvalJsContext","values","setHostContext","membership","openUrl","endFlow","sessionIds","warn","message"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ import { isEvalJsWebViewNativeLinked } from "./evalJs/getWebView.js";
4
+ import { isAsyncStorageLinked } from "./storage/asyncStorage.js";
5
+ export const INSTALL_CHECK_HEADER = '[Userflow] Native setup is incomplete. Flows may not run until you fix the following, then rebuild the app (a Metro reload is not enough):';
6
+ export const INSTALL_ASYNC_STORAGE_LINE = '- @react-native-async-storage/async-storage is not linked. Anonymous users and Builder pairing will not persist. Add it to the app package.json (npx expo install @react-native-async-storage/async-storage), run pod install on iOS, and rebuild.';
7
+ export const INSTALL_VIEW_SHOT_LINE = '- react-native-view-shot is not linked, so Builder element selection gets no screenshot. Install react-native-view-shot@^5.0.0 and rebuild. On Expo SDK 54, pin ^5.0.0; an unpinned npx expo install resolves 4.0.3.';
8
+ export const INSTALL_WEBVIEW_LINE = '- react-native-webview is not linked. Evaluate JavaScript and WebView banners will not run. Install it (npx expo install react-native-webview) and rebuild.';
9
+ export const INSTALL_DEVICE_INFO_LINE = '- react-native-device-info is not linked, so app_version and app_build are not sent. npm install react-native-device-info, then rebuild.';
10
+ export const INSTALL_CHECK_FOOTER = 'See docs/troubleshooting.md.';
11
+ export const EXPO_GO_WARNING = '[Userflow] This app is running in Expo Go, which cannot load the SDK native modules. Builder preview links will not open the app. Use a development build (npx expo run:ios / npx expo run:android).';
12
+ export const INIT_OPTIONS_IGNORED_WARNING = '[Userflow] Userflow.init() already ran with different options. The new clientToken, serverEndpoint, and pairingEndpoint are ignored because init runs once per process. Userflow.reset() does not apply new credentials. Restart the app to change them.';
13
+ const VIEW_SHOT_MODULE = 'RNViewShot';
14
+ const DEVICE_INFO_MODULE = 'RNDeviceInfo';
15
+ let didWarn = false;
16
+ function loadReactNative() {
17
+ try {
18
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
19
+ return require('react-native');
20
+ } catch {
21
+ return null;
22
+ }
23
+ }
24
+ function isNativeModuleLinked(name) {
25
+ const reactNative = loadReactNative();
26
+ if (!reactNative) return false;
27
+ try {
28
+ const turbo = reactNative.TurboModuleRegistry;
29
+ if (typeof turbo?.get === 'function' && turbo.get(name) != null) return true;
30
+ } catch {
31
+ // Fall through to the legacy registry.
32
+ }
33
+ try {
34
+ return reactNative.NativeModules?.[name] != null;
35
+ } catch {
36
+ return false;
37
+ }
38
+ }
39
+ function readExpoConstants() {
40
+ try {
41
+ // Optional. Bare React Native does not have this package.
42
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
43
+ const mod = require('expo-constants');
44
+ const record = mod?.default ?? mod;
45
+ if (record == null || typeof record !== 'object') return null;
46
+ // Touch the field so a throwing getter (missing package stand-in) is caught.
47
+ void record.executionEnvironment;
48
+ return record;
49
+ } catch {
50
+ return null;
51
+ }
52
+ }
53
+
54
+ /** Lines for missing native modules. Empty when the build looks complete. */
55
+ export function collectInstallFindings() {
56
+ const findings = [];
57
+ if (!isAsyncStorageLinked()) findings.push(INSTALL_ASYNC_STORAGE_LINE);
58
+ if (!isNativeModuleLinked(VIEW_SHOT_MODULE)) findings.push(INSTALL_VIEW_SHOT_LINE);
59
+ if (!isEvalJsWebViewNativeLinked()) findings.push(INSTALL_WEBVIEW_LINE);
60
+ // Expo reads the store version from expo-constants / expo-application.
61
+ // device-info is the bare React Native path.
62
+ if (readExpoConstants() == null && !isNativeModuleLinked(DEVICE_INFO_MODULE)) {
63
+ findings.push(INSTALL_DEVICE_INFO_LINE);
64
+ }
65
+ return findings;
66
+ }
67
+ export function expoGoWarning() {
68
+ const constants = readExpoConstants();
69
+ const environment = constants?.executionEnvironment;
70
+ return environment === 'storeClient' ? EXPO_GO_WARNING : null;
71
+ }
72
+ export function formatInstallWarning(findings) {
73
+ return [INSTALL_CHECK_HEADER, ...findings, INSTALL_CHECK_FOOTER].join('\n');
74
+ }
75
+
76
+ /**
77
+ * One development warning for missing native modules, plus a separate warning
78
+ * when the host is Expo Go. Release builds stay quiet.
79
+ */
80
+ export function warnIfInstallIncomplete() {
81
+ if (!__DEV__ || didWarn) return;
82
+ didWarn = true;
83
+ const findings = collectInstallFindings();
84
+ if (findings.length > 0) {
85
+ // eslint-disable-next-line no-console -- intentional install diagnostic
86
+ console.warn(formatInstallWarning(findings));
87
+ }
88
+ const expoGo = expoGoWarning();
89
+ if (expoGo) {
90
+ // eslint-disable-next-line no-console -- intentional install diagnostic
91
+ console.warn(expoGo);
92
+ }
93
+ }
94
+
95
+ /** @internal */
96
+ export function resetInstallCheckForTests() {
97
+ didWarn = false;
98
+ recordedInitOptions = null;
99
+ initOptionsCommitted = false;
100
+ }
101
+ let recordedInitOptions = null;
102
+ /** True once an `init` promise has resolved. A rejection before that clears the record. */
103
+ let initOptionsCommitted = false;
104
+ function recordInitOptions(config) {
105
+ return {
106
+ clientToken: config.clientToken,
107
+ serverEndpoint: config.serverEndpoint ?? '',
108
+ pairingEndpoint: config.pairingEndpoint ?? ''
109
+ };
110
+ }
111
+ export function warnIfInitOptionsIgnored(config) {
112
+ const next = recordInitOptions(config);
113
+ if (!recordedInitOptions) {
114
+ recordedInitOptions = next;
115
+ return;
116
+ }
117
+ if (recordedInitOptions.clientToken === next.clientToken && recordedInitOptions.serverEndpoint === next.serverEndpoint && recordedInitOptions.pairingEndpoint === next.pairingEndpoint) {
118
+ return;
119
+ }
120
+ if (!__DEV__) return;
121
+ // eslint-disable-next-line no-console -- intentional install diagnostic
122
+ console.warn(INIT_OPTIONS_IGNORED_WARNING);
123
+ }
124
+
125
+ /** The in-flight `init` resolved, so later calls really are ignored. */
126
+ export function commitInitOptions() {
127
+ initOptionsCommitted = true;
128
+ }
129
+
130
+ /**
131
+ * The in-flight `init` rejected. Core drops its cached promise and will run
132
+ * the next call, so a corrected token or endpoint must not warn.
133
+ * A rejection after a successful init does not forget that success.
134
+ */
135
+ export function releaseFailedInitOptions() {
136
+ if (initOptionsCommitted) return;
137
+ recordedInitOptions = null;
138
+ }
139
+ //# sourceMappingURL=installCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isEvalJsWebViewNativeLinked","isAsyncStorageLinked","INSTALL_CHECK_HEADER","INSTALL_ASYNC_STORAGE_LINE","INSTALL_VIEW_SHOT_LINE","INSTALL_WEBVIEW_LINE","INSTALL_DEVICE_INFO_LINE","INSTALL_CHECK_FOOTER","EXPO_GO_WARNING","INIT_OPTIONS_IGNORED_WARNING","VIEW_SHOT_MODULE","DEVICE_INFO_MODULE","didWarn","loadReactNative","require","isNativeModuleLinked","name","reactNative","turbo","TurboModuleRegistry","get","NativeModules","readExpoConstants","mod","record","default","executionEnvironment","collectInstallFindings","findings","push","expoGoWarning","constants","environment","formatInstallWarning","join","warnIfInstallIncomplete","__DEV__","length","console","warn","expoGo","resetInstallCheckForTests","recordedInitOptions","initOptionsCommitted","recordInitOptions","config","clientToken","serverEndpoint","pairingEndpoint","warnIfInitOptionsIgnored","next","commitInitOptions","releaseFailedInitOptions"],"sourceRoot":"../../src","sources":["installCheck.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import AsyncStorage from '@react-native-async-storage/async-storage';
4
3
  import { uuid } from "../anonymousId.js";
4
+ import { getAsyncStorage } from "../storage/asyncStorage.js";
5
5
 
6
6
  /**
7
7
  * Stable id for this install on the pairing channel.
@@ -14,20 +14,24 @@ export const PAIRING_DEVICE_ID_STORAGE_KEY = 'userflow:pairingDeviceId';
14
14
  let memoized = null;
15
15
  export async function getOrCreatePairingDeviceId() {
16
16
  if (memoized !== null) return memoized;
17
- try {
18
- const stored = await AsyncStorage.getItem(PAIRING_DEVICE_ID_STORAGE_KEY);
19
- if (typeof stored === 'string' && stored.length > 0) {
20
- memoized = stored;
21
- return stored;
17
+ const storage = getAsyncStorage();
18
+ if (storage) {
19
+ try {
20
+ const stored = await storage.getItem(PAIRING_DEVICE_ID_STORAGE_KEY);
21
+ if (typeof stored === 'string' && stored.length > 0) {
22
+ memoized = stored;
23
+ return stored;
24
+ }
25
+ } catch {
26
+ memoized = uuid();
27
+ return memoized;
22
28
  }
23
- } catch {
24
- memoized = uuid();
25
- return memoized;
26
29
  }
27
30
  const created = uuid();
28
31
  memoized = created;
32
+ if (!storage) return created;
29
33
  try {
30
- await AsyncStorage.setItem(PAIRING_DEVICE_ID_STORAGE_KEY, created);
34
+ await storage.setItem(PAIRING_DEVICE_ID_STORAGE_KEY, created);
31
35
  } catch {
32
36
  // Keep the in-memory id for this process. A later launch may mint another.
33
37
  }
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncStorage","uuid","PAIRING_DEVICE_ID_STORAGE_KEY","memoized","getOrCreatePairingDeviceId","stored","getItem","length","created","setItem","resetPairingDeviceIdForTests"],"sourceRoot":"../../../src","sources":["pairing/deviceId.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AAEpE,SAASC,IAAI,QAAQ,mBAAgB;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,6BAA6B,GAAG,0BAA0B;AAEvE,IAAIC,QAAuB,GAAG,IAAI;AAElC,OAAO,eAAeC,0BAA0BA,CAAA,EAAoB;EAClE,IAAID,QAAQ,KAAK,IAAI,EAAE,OAAOA,QAAQ;EAEtC,IAAI;IACF,MAAME,MAAM,GAAG,MAAML,YAAY,CAACM,OAAO,CAACJ,6BAA6B,CAAC;IACxE,IAAI,OAAOG,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE;MACnDJ,QAAQ,GAAGE,MAAM;MACjB,OAAOA,MAAM;IACf;EACF,CAAC,CAAC,MAAM;IACNF,QAAQ,GAAGF,IAAI,CAAC,CAAC;IACjB,OAAOE,QAAQ;EACjB;EAEA,MAAMK,OAAO,GAAGP,IAAI,CAAC,CAAC;EACtBE,QAAQ,GAAGK,OAAO;EAClB,IAAI;IACF,MAAMR,YAAY,CAACS,OAAO,CAACP,6BAA6B,EAAEM,OAAO,CAAC;EACpE,CAAC,CAAC,MAAM;IACN;EAAA;EAEF,OAAOA,OAAO;AAChB;;AAEA;AACA,OAAO,SAASE,4BAA4BA,CAAA,EAAS;EACnDP,QAAQ,GAAG,IAAI;AACjB","ignoreList":[]}
1
+ {"version":3,"names":["uuid","getAsyncStorage","PAIRING_DEVICE_ID_STORAGE_KEY","memoized","getOrCreatePairingDeviceId","storage","stored","getItem","length","created","setItem","resetPairingDeviceIdForTests"],"sourceRoot":"../../../src","sources":["pairing/deviceId.ts"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,mBAAgB;AACrC,SAASC,eAAe,QAAQ,4BAAyB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,6BAA6B,GAAG,0BAA0B;AAEvE,IAAIC,QAAuB,GAAG,IAAI;AAElC,OAAO,eAAeC,0BAA0BA,CAAA,EAAoB;EAClE,IAAID,QAAQ,KAAK,IAAI,EAAE,OAAOA,QAAQ;EAEtC,MAAME,OAAO,GAAGJ,eAAe,CAAC,CAAC;EACjC,IAAII,OAAO,EAAE;IACX,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMD,OAAO,CAACE,OAAO,CAACL,6BAA6B,CAAC;MACnE,IAAI,OAAOI,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE;QACnDL,QAAQ,GAAGG,MAAM;QACjB,OAAOA,MAAM;MACf;IACF,CAAC,CAAC,MAAM;MACNH,QAAQ,GAAGH,IAAI,CAAC,CAAC;MACjB,OAAOG,QAAQ;IACjB;EACF;EAEA,MAAMM,OAAO,GAAGT,IAAI,CAAC,CAAC;EACtBG,QAAQ,GAAGM,OAAO;EAClB,IAAI,CAACJ,OAAO,EAAE,OAAOI,OAAO;EAC5B,IAAI;IACF,MAAMJ,OAAO,CAACK,OAAO,CAACR,6BAA6B,EAAEO,OAAO,CAAC;EAC/D,CAAC,CAAC,MAAM;IACN;EAAA;EAEF,OAAOA,OAAO;AAChB;;AAEA;AACA,OAAO,SAASE,4BAA4BA,CAAA,EAAS;EACnDR,QAAQ,GAAG,IAAI;AACjB","ignoreList":[]}