react-native-reanimated 3.0.2 → 3.1.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 (473) hide show
  1. package/Common/cpp/Fabric/FabricUtils.h +1 -1
  2. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +38 -27
  3. package/Common/cpp/SharedItems/Shareables.h +22 -0
  4. package/Common/cpp/Tools/PlatformDepMethodsHolder.h +2 -0
  5. package/Common/cpp/Tools/RuntimeDecorator.cpp +4 -1
  6. package/Common/cpp/Tools/RuntimeDecorator.h +2 -1
  7. package/Common/cpp/Tools/SingleInstanceChecker.h +14 -2
  8. package/RNReanimated.podspec +5 -2
  9. package/android/CMakeLists.txt +4 -0
  10. package/android/build.gradle +18 -10
  11. package/android/src/main/cpp/NativeProxy.cpp +316 -337
  12. package/android/src/main/cpp/NativeProxy.h +53 -11
  13. package/android/src/main/java/com/swmansion/reanimated/NativeMethodsHelper.java +7 -12
  14. package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +11 -8
  15. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java +21 -14
  16. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +0 -3
  17. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +1 -0
  18. package/ios/REANodesManager.h +1 -0
  19. package/ios/REANodesManager.mm +30 -4
  20. package/ios/keyboardObserver/REAKeyboardEventObserver.m +51 -130
  21. package/ios/native/NativeMethods.mm +1 -1
  22. package/ios/native/NativeProxy.mm +4 -1
  23. package/ios/native/REAIOSErrorHandler.mm +1 -1
  24. package/ios/native/REAIOSLogger.mm +1 -1
  25. package/ios/native/REAIOSScheduler.mm +1 -1
  26. package/ios/native/REAInitializer.mm +1 -1
  27. package/ios/native/REAMessageThread.mm +2 -2
  28. package/lib/commonjs/Animated.js +0 -8
  29. package/lib/commonjs/Animated.js.map +1 -1
  30. package/lib/commonjs/ConfigHelper.js +8 -19
  31. package/lib/commonjs/ConfigHelper.js.map +1 -1
  32. package/lib/commonjs/createAnimatedComponent.js +20 -158
  33. package/lib/commonjs/createAnimatedComponent.js.map +1 -1
  34. package/lib/commonjs/index.js +0 -9
  35. package/lib/commonjs/index.js.map +1 -1
  36. package/lib/commonjs/index.web.js +0 -7
  37. package/lib/commonjs/index.web.js.map +1 -1
  38. package/lib/commonjs/reanimated2/Bezier.js +14 -34
  39. package/lib/commonjs/reanimated2/Bezier.js.map +1 -1
  40. package/lib/commonjs/reanimated2/Colors.js +60 -132
  41. package/lib/commonjs/reanimated2/Colors.js.map +1 -1
  42. package/lib/commonjs/reanimated2/Easing.js +81 -34
  43. package/lib/commonjs/reanimated2/Easing.js.map +1 -1
  44. package/lib/commonjs/reanimated2/NativeMethods.js +8 -20
  45. package/lib/commonjs/reanimated2/NativeMethods.js.map +1 -1
  46. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js +5 -31
  47. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  48. package/lib/commonjs/reanimated2/NativeReanimated/index.js +0 -7
  49. package/lib/commonjs/reanimated2/NativeReanimated/index.js.map +1 -1
  50. package/lib/commonjs/reanimated2/PlatformChecker.js +0 -6
  51. package/lib/commonjs/reanimated2/PlatformChecker.js.map +1 -1
  52. package/lib/commonjs/reanimated2/PropAdapters.js +10 -12
  53. package/lib/commonjs/reanimated2/PropAdapters.js.map +1 -1
  54. package/lib/commonjs/reanimated2/UpdateProps.js +3 -12
  55. package/lib/commonjs/reanimated2/UpdateProps.js.map +1 -1
  56. package/lib/commonjs/reanimated2/ViewDescriptorsSet.js +0 -10
  57. package/lib/commonjs/reanimated2/ViewDescriptorsSet.js.map +1 -1
  58. package/lib/commonjs/reanimated2/WorkletEventHandler.js +5 -22
  59. package/lib/commonjs/reanimated2/WorkletEventHandler.js.map +1 -1
  60. package/lib/commonjs/reanimated2/animation/decay.js +7 -18
  61. package/lib/commonjs/reanimated2/animation/decay.js.map +1 -1
  62. package/lib/commonjs/reanimated2/animation/delay.js +0 -11
  63. package/lib/commonjs/reanimated2/animation/delay.js.map +1 -1
  64. package/lib/commonjs/reanimated2/animation/index.js +0 -8
  65. package/lib/commonjs/reanimated2/animation/index.js.map +1 -1
  66. package/lib/commonjs/reanimated2/animation/repeat.js +6 -22
  67. package/lib/commonjs/reanimated2/animation/repeat.js.map +1 -1
  68. package/lib/commonjs/reanimated2/animation/sequence.js +3 -20
  69. package/lib/commonjs/reanimated2/animation/sequence.js.map +1 -1
  70. package/lib/commonjs/reanimated2/animation/spring.js +11 -23
  71. package/lib/commonjs/reanimated2/animation/spring.js.map +1 -1
  72. package/lib/commonjs/reanimated2/animation/styleAnimation.js +3 -35
  73. package/lib/commonjs/reanimated2/animation/styleAnimation.js.map +1 -1
  74. package/lib/commonjs/reanimated2/animation/timing.js +0 -11
  75. package/lib/commonjs/reanimated2/animation/timing.js.map +1 -1
  76. package/lib/commonjs/reanimated2/animation/util.js +11 -41
  77. package/lib/commonjs/reanimated2/animation/util.js.map +1 -1
  78. package/lib/commonjs/reanimated2/commonTypes.js +16 -23
  79. package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
  80. package/lib/commonjs/reanimated2/component/FlatList.js +0 -16
  81. package/lib/commonjs/reanimated2/component/FlatList.js.map +1 -1
  82. package/lib/commonjs/reanimated2/component/Image.js +0 -4
  83. package/lib/commonjs/reanimated2/component/Image.js.map +1 -1
  84. package/lib/commonjs/reanimated2/component/ScrollView.js +0 -4
  85. package/lib/commonjs/reanimated2/component/ScrollView.js.map +1 -1
  86. package/lib/commonjs/reanimated2/component/Text.js +0 -4
  87. package/lib/commonjs/reanimated2/component/Text.js.map +1 -1
  88. package/lib/commonjs/reanimated2/component/View.js +0 -4
  89. package/lib/commonjs/reanimated2/component/View.js.map +1 -1
  90. package/lib/commonjs/reanimated2/core.js +6 -48
  91. package/lib/commonjs/reanimated2/core.js.map +1 -1
  92. package/lib/commonjs/reanimated2/errors.js +3 -14
  93. package/lib/commonjs/reanimated2/errors.js.map +1 -1
  94. package/lib/commonjs/reanimated2/fabricUtils.js +3 -5
  95. package/lib/commonjs/reanimated2/fabricUtils.js.map +1 -1
  96. package/lib/commonjs/reanimated2/fabricUtils.web.js +1 -3
  97. package/lib/commonjs/reanimated2/fabricUtils.web.js.map +1 -1
  98. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -12
  99. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  100. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -17
  101. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  102. package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
  103. package/lib/commonjs/reanimated2/hook/Hooks.js +0 -5
  104. package/lib/commonjs/reanimated2/hook/Hooks.js.map +1 -1
  105. package/lib/commonjs/reanimated2/hook/commonTypes.js.map +1 -1
  106. package/lib/commonjs/reanimated2/hook/index.js +0 -12
  107. package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
  108. package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js +4 -17
  109. package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
  110. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js +2 -9
  111. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  112. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js +1 -11
  113. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  114. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js +0 -12
  115. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js.map +1 -1
  116. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js +2 -9
  117. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  118. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js +8 -23
  119. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  120. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js +13 -71
  121. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  122. package/lib/commonjs/reanimated2/hook/useDerivedValue.js +4 -13
  123. package/lib/commonjs/reanimated2/hook/useDerivedValue.js.map +1 -1
  124. package/lib/commonjs/reanimated2/hook/useFrameCallback.js +0 -5
  125. package/lib/commonjs/reanimated2/hook/useFrameCallback.js.map +1 -1
  126. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +0 -7
  127. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  128. package/lib/commonjs/reanimated2/hook/useSharedValue.js +2 -7
  129. package/lib/commonjs/reanimated2/hook/useSharedValue.js.map +1 -1
  130. package/lib/commonjs/reanimated2/hook/utils.js +8 -39
  131. package/lib/commonjs/reanimated2/hook/utils.js.map +1 -1
  132. package/lib/commonjs/reanimated2/index.js +0 -26
  133. package/lib/commonjs/reanimated2/index.js.map +1 -1
  134. package/lib/commonjs/reanimated2/initializers.js +21 -43
  135. package/lib/commonjs/reanimated2/initializers.js.map +1 -1
  136. package/lib/commonjs/reanimated2/interpolateColor.js +6 -43
  137. package/lib/commonjs/reanimated2/interpolateColor.js.map +1 -1
  138. package/lib/commonjs/reanimated2/interpolation.js +14 -29
  139. package/lib/commonjs/reanimated2/interpolation.js.map +1 -1
  140. package/lib/commonjs/reanimated2/jestUtils.js +11 -44
  141. package/lib/commonjs/reanimated2/jestUtils.js.map +1 -1
  142. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js +15 -39
  143. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  144. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js +9 -28
  145. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js.map +1 -1
  146. package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js +7 -37
  147. package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
  148. package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js +5 -18
  149. package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js.map +1 -1
  150. package/lib/commonjs/reanimated2/js-reanimated/global.js +2 -9
  151. package/lib/commonjs/reanimated2/js-reanimated/global.js.map +1 -1
  152. package/lib/commonjs/reanimated2/js-reanimated/index.js +3 -14
  153. package/lib/commonjs/reanimated2/js-reanimated/index.js.map +1 -1
  154. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -26
  155. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
  156. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -49
  157. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
  158. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -43
  159. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
  160. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +4 -5
  161. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  162. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js +0 -4
  163. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  164. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js +4 -23
  165. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  166. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -74
  167. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  168. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -53
  169. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
  170. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -63
  171. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
  172. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -26
  173. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  174. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -13
  175. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
  176. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -23
  177. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  178. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -43
  179. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
  180. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -43
  181. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  182. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -23
  183. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
  184. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -83
  185. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  186. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js +0 -20
  187. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
  188. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -22
  189. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  190. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -29
  191. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
  192. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -9
  193. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
  194. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -11
  195. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
  196. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -8
  197. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
  198. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -12
  199. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
  200. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js +0 -12
  201. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
  202. package/lib/commonjs/reanimated2/layoutReanimation/index.js +0 -9
  203. package/lib/commonjs/reanimated2/layoutReanimation/index.js.map +1 -1
  204. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -17
  205. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
  206. package/lib/commonjs/reanimated2/mappers.js +26 -32
  207. package/lib/commonjs/reanimated2/mappers.js.map +1 -1
  208. package/lib/commonjs/reanimated2/mock.js +5 -15
  209. package/lib/commonjs/reanimated2/mock.js.map +1 -1
  210. package/lib/commonjs/reanimated2/mutables.js +2 -28
  211. package/lib/commonjs/reanimated2/mutables.js.map +1 -1
  212. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js +0 -2
  213. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js.map +1 -1
  214. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
  215. package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js +31 -0
  216. package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
  217. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js +0 -2
  218. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
  219. package/lib/commonjs/reanimated2/platform-specific/jsVersion.js +14 -0
  220. package/lib/commonjs/reanimated2/platform-specific/jsVersion.js.map +1 -0
  221. package/lib/commonjs/reanimated2/pluginUtils.js +0 -1
  222. package/lib/commonjs/reanimated2/pluginUtils.js.map +1 -1
  223. package/lib/commonjs/reanimated2/shareables.js +92 -49
  224. package/lib/commonjs/reanimated2/shareables.js.map +1 -1
  225. package/lib/commonjs/reanimated2/threads.js +42 -46
  226. package/lib/commonjs/reanimated2/threads.js.map +1 -1
  227. package/lib/commonjs/reanimated2/utils.js +0 -5
  228. package/lib/commonjs/reanimated2/utils.js.map +1 -1
  229. package/lib/commonjs/reanimated2/valueSetter.js +6 -21
  230. package/lib/commonjs/reanimated2/valueSetter.js.map +1 -1
  231. package/lib/commonjs/setAndForwardRef.js +3 -3
  232. package/lib/commonjs/setAndForwardRef.js.map +1 -1
  233. package/lib/module/Animated.js.map +1 -1
  234. package/lib/module/ConfigHelper.js +9 -15
  235. package/lib/module/ConfigHelper.js.map +1 -1
  236. package/lib/module/createAnimatedComponent.js +20 -139
  237. package/lib/module/createAnimatedComponent.js.map +1 -1
  238. package/lib/module/index.js +0 -2
  239. package/lib/module/index.js.map +1 -1
  240. package/lib/module/index.web.js.map +1 -1
  241. package/lib/module/reanimated2/Bezier.js +14 -33
  242. package/lib/module/reanimated2/Bezier.js.map +1 -1
  243. package/lib/module/reanimated2/Colors.js +59 -109
  244. package/lib/module/reanimated2/Colors.js.map +1 -1
  245. package/lib/module/reanimated2/Easing.js +37 -33
  246. package/lib/module/reanimated2/Easing.js.map +1 -1
  247. package/lib/module/reanimated2/NativeMethods.js +8 -15
  248. package/lib/module/reanimated2/NativeMethods.js.map +1 -1
  249. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +5 -27
  250. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  251. package/lib/module/reanimated2/NativeReanimated/index.js +0 -2
  252. package/lib/module/reanimated2/NativeReanimated/index.js.map +1 -1
  253. package/lib/module/reanimated2/PlatformChecker.js.map +1 -1
  254. package/lib/module/reanimated2/PropAdapters.js +12 -10
  255. package/lib/module/reanimated2/PropAdapters.js.map +1 -1
  256. package/lib/module/reanimated2/UpdateProps.js +3 -5
  257. package/lib/module/reanimated2/UpdateProps.js.map +1 -1
  258. package/lib/module/reanimated2/ViewDescriptorsSet.js +0 -6
  259. package/lib/module/reanimated2/ViewDescriptorsSet.js.map +1 -1
  260. package/lib/module/reanimated2/WorkletEventHandler.js +5 -18
  261. package/lib/module/reanimated2/WorkletEventHandler.js.map +1 -1
  262. package/lib/module/reanimated2/animation/decay.js +7 -15
  263. package/lib/module/reanimated2/animation/decay.js.map +1 -1
  264. package/lib/module/reanimated2/animation/delay.js +0 -9
  265. package/lib/module/reanimated2/animation/delay.js.map +1 -1
  266. package/lib/module/reanimated2/animation/index.js.map +1 -1
  267. package/lib/module/reanimated2/animation/repeat.js +6 -20
  268. package/lib/module/reanimated2/animation/repeat.js.map +1 -1
  269. package/lib/module/reanimated2/animation/sequence.js +3 -18
  270. package/lib/module/reanimated2/animation/sequence.js.map +1 -1
  271. package/lib/module/reanimated2/animation/spring.js +11 -21
  272. package/lib/module/reanimated2/animation/spring.js.map +1 -1
  273. package/lib/module/reanimated2/animation/styleAnimation.js +7 -31
  274. package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
  275. package/lib/module/reanimated2/animation/timing.js +0 -8
  276. package/lib/module/reanimated2/animation/timing.js.map +1 -1
  277. package/lib/module/reanimated2/animation/util.js +10 -33
  278. package/lib/module/reanimated2/animation/util.js.map +1 -1
  279. package/lib/module/reanimated2/commonTypes.js +12 -19
  280. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  281. package/lib/module/reanimated2/component/FlatList.js +0 -4
  282. package/lib/module/reanimated2/component/FlatList.js.map +1 -1
  283. package/lib/module/reanimated2/component/Image.js.map +1 -1
  284. package/lib/module/reanimated2/component/ScrollView.js.map +1 -1
  285. package/lib/module/reanimated2/component/Text.js.map +1 -1
  286. package/lib/module/reanimated2/component/View.js.map +1 -1
  287. package/lib/module/reanimated2/core.js +6 -22
  288. package/lib/module/reanimated2/core.js.map +1 -1
  289. package/lib/module/reanimated2/errors.js +3 -13
  290. package/lib/module/reanimated2/errors.js.map +1 -1
  291. package/lib/module/reanimated2/fabricUtils.js +3 -3
  292. package/lib/module/reanimated2/fabricUtils.js.map +1 -1
  293. package/lib/module/reanimated2/fabricUtils.web.js +1 -1
  294. package/lib/module/reanimated2/fabricUtils.web.js.map +1 -1
  295. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -8
  296. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  297. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -15
  298. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  299. package/lib/module/reanimated2/globals.d.js.map +1 -1
  300. package/lib/module/reanimated2/hook/Hooks.js +3 -2
  301. package/lib/module/reanimated2/hook/Hooks.js.map +1 -1
  302. package/lib/module/reanimated2/hook/commonTypes.js.map +1 -1
  303. package/lib/module/reanimated2/hook/index.js.map +1 -1
  304. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js +3 -14
  305. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
  306. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +2 -5
  307. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  308. package/lib/module/reanimated2/hook/useAnimatedReaction.js +1 -7
  309. package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  310. package/lib/module/reanimated2/hook/useAnimatedRef.js +0 -6
  311. package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
  312. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js +2 -7
  313. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  314. package/lib/module/reanimated2/hook/useAnimatedSensor.js +9 -20
  315. package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  316. package/lib/module/reanimated2/hook/useAnimatedStyle.js +13 -59
  317. package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  318. package/lib/module/reanimated2/hook/useDerivedValue.js +4 -8
  319. package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
  320. package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
  321. package/lib/module/reanimated2/hook/useScrollViewOffset.js +0 -1
  322. package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  323. package/lib/module/reanimated2/hook/useSharedValue.js +2 -3
  324. package/lib/module/reanimated2/hook/useSharedValue.js.map +1 -1
  325. package/lib/module/reanimated2/hook/utils.js +8 -21
  326. package/lib/module/reanimated2/hook/utils.js.map +1 -1
  327. package/lib/module/reanimated2/index.js.map +1 -1
  328. package/lib/module/reanimated2/initializers.js +23 -37
  329. package/lib/module/reanimated2/initializers.js.map +1 -1
  330. package/lib/module/reanimated2/interpolateColor.js +5 -34
  331. package/lib/module/reanimated2/interpolateColor.js.map +1 -1
  332. package/lib/module/reanimated2/interpolation.js +13 -28
  333. package/lib/module/reanimated2/interpolation.js.map +1 -1
  334. package/lib/module/reanimated2/jestUtils.js +11 -35
  335. package/lib/module/reanimated2/jestUtils.js.map +1 -1
  336. package/lib/module/reanimated2/js-reanimated/JSReanimated.js +15 -35
  337. package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  338. package/lib/module/reanimated2/js-reanimated/Mapper.js +9 -23
  339. package/lib/module/reanimated2/js-reanimated/Mapper.js.map +1 -1
  340. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js +7 -35
  341. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
  342. package/lib/module/reanimated2/js-reanimated/MutableValue.js +5 -16
  343. package/lib/module/reanimated2/js-reanimated/MutableValue.js.map +1 -1
  344. package/lib/module/reanimated2/js-reanimated/global.js +2 -6
  345. package/lib/module/reanimated2/js-reanimated/global.js.map +1 -1
  346. package/lib/module/reanimated2/js-reanimated/index.js +3 -9
  347. package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
  348. package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -23
  349. package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
  350. package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -45
  351. package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
  352. package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -39
  353. package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
  354. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +3 -3
  355. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  356. package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  357. package/lib/module/reanimated2/layoutReanimation/animationsManager.js +4 -19
  358. package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  359. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -52
  360. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  361. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -32
  362. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
  363. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -38
  364. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
  365. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -16
  366. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  367. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -8
  368. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
  369. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -14
  370. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  371. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -26
  372. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
  373. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -26
  374. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  375. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -14
  376. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
  377. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -50
  378. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  379. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
  380. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -17
  381. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  382. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -23
  383. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
  384. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -5
  385. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
  386. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -6
  387. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
  388. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -5
  389. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
  390. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -8
  391. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
  392. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
  393. package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
  394. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -13
  395. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
  396. package/lib/module/reanimated2/mappers.js +26 -25
  397. package/lib/module/reanimated2/mappers.js.map +1 -1
  398. package/lib/module/reanimated2/mock.js +5 -15
  399. package/lib/module/reanimated2/mock.js.map +1 -1
  400. package/lib/module/reanimated2/mutables.js +2 -19
  401. package/lib/module/reanimated2/mutables.js.map +1 -1
  402. package/lib/module/reanimated2/platform-specific/RNRenderer.js.map +1 -1
  403. package/lib/module/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
  404. package/lib/module/reanimated2/platform-specific/checkCppVersion.js +24 -0
  405. package/lib/module/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
  406. package/lib/module/reanimated2/platform-specific/checkVersion.web.js +0 -1
  407. package/lib/module/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
  408. package/lib/module/reanimated2/platform-specific/jsVersion.js +7 -0
  409. package/lib/module/reanimated2/platform-specific/jsVersion.js.map +1 -0
  410. package/lib/module/reanimated2/pluginUtils.js.map +1 -1
  411. package/lib/module/reanimated2/shareables.js +96 -44
  412. package/lib/module/reanimated2/shareables.js.map +1 -1
  413. package/lib/module/reanimated2/threads.js +39 -33
  414. package/lib/module/reanimated2/threads.js.map +1 -1
  415. package/lib/module/reanimated2/utils.js +0 -3
  416. package/lib/module/reanimated2/utils.js.map +1 -1
  417. package/lib/module/reanimated2/valueSetter.js +6 -19
  418. package/lib/module/reanimated2/valueSetter.js.map +1 -1
  419. package/lib/module/setAndForwardRef.js +3 -2
  420. package/lib/module/setAndForwardRef.js.map +1 -1
  421. package/package.json +46 -40
  422. package/plugin/.eslintrc.js +7 -0
  423. package/plugin/README.md +241 -0
  424. package/plugin/build/plugin.js +714 -0
  425. package/plugin/build/plugin.js.map +7 -0
  426. package/plugin/index.js +1 -807
  427. package/plugin/package.json +23 -0
  428. package/plugin/src/buildWorkletString.ts +213 -0
  429. package/plugin/src/commonObjects.ts +60 -0
  430. package/plugin/src/injectVersion.ts +37 -0
  431. package/plugin/src/makeWorklet.ts +375 -0
  432. package/plugin/src/plugin.ts +49 -0
  433. package/plugin/src/processForCalleesWorklets.ts +106 -0
  434. package/plugin/src/processIfGestureHandlerEventCallbackFunctionNode.ts +156 -0
  435. package/plugin/src/processIfWorkletFunction.ts +55 -0
  436. package/plugin/src/processIfWorkletNode.ts +44 -0
  437. package/plugin/src/processInlineStylesWarning.ts +129 -0
  438. package/plugin/src/processWorkletObjectMethod.ts +31 -0
  439. package/plugin/src/types.ts +15 -0
  440. package/plugin/src/utils.ts +6 -0
  441. package/plugin/tsconfig.json +15 -0
  442. package/plugin/yarn.lock +2193 -0
  443. package/react-native-reanimated.d.ts +1 -0
  444. package/scripts/reanimated_utils.rb +2 -2
  445. package/src/createAnimatedComponent.tsx +2 -3
  446. package/src/reanimated2/Easing.ts +19 -0
  447. package/src/reanimated2/NativeMethods.ts +9 -4
  448. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +2 -2
  449. package/src/reanimated2/UpdateProps.ts +2 -2
  450. package/src/reanimated2/animation/decay.ts +7 -1
  451. package/src/reanimated2/animation/styleAnimation.ts +5 -1
  452. package/src/reanimated2/core.ts +4 -4
  453. package/src/reanimated2/errors.ts +1 -0
  454. package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +12 -4
  455. package/src/reanimated2/globals.d.ts +71 -112
  456. package/src/reanimated2/hook/commonTypes.ts +1 -1
  457. package/src/reanimated2/hook/useAnimatedReaction.ts +2 -2
  458. package/src/reanimated2/hook/useAnimatedSensor.ts +2 -2
  459. package/src/reanimated2/initializers.ts +11 -8
  460. package/src/reanimated2/jestUtils.ts +0 -1
  461. package/src/reanimated2/js-reanimated/JSReanimated.ts +5 -1
  462. package/src/reanimated2/js-reanimated/index.ts +1 -1
  463. package/src/reanimated2/mappers.ts +26 -4
  464. package/src/reanimated2/mock.ts +1 -0
  465. package/src/reanimated2/platform-specific/checkCppVersion.ts +29 -0
  466. package/src/reanimated2/platform-specific/jsVersion.ts +6 -0
  467. package/src/reanimated2/shareables.ts +107 -8
  468. package/src/reanimated2/threads.ts +36 -17
  469. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js +0 -42
  470. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js.map +0 -1
  471. package/lib/module/reanimated2/platform-specific/checkVersion.js +0 -35
  472. package/lib/module/reanimated2/platform-specific/checkVersion.js.map +0 -1
  473. package/src/reanimated2/platform-specific/checkVersion.ts +0 -39
@@ -34,58 +34,39 @@ exports.subscribeForKeyboardEvents = subscribeForKeyboardEvents;
34
34
  exports.unregisterEventHandler = unregisterEventHandler;
35
35
  exports.unregisterSensor = unregisterSensor;
36
36
  exports.unsubscribeFromKeyboardEvents = unsubscribeFromKeyboardEvents;
37
-
38
37
  var _NativeReanimated = _interopRequireDefault(require("./NativeReanimated"));
39
-
40
38
  var _PlatformChecker = require("./PlatformChecker");
41
-
42
39
  var _shareables = require("./shareables");
43
-
44
40
  var _mappers = require("./mappers");
45
-
46
41
  var _mutables = require("./mutables");
47
-
48
42
  var _initializers = require("./initializers");
49
-
50
43
  var _threads = require("./threads");
51
-
52
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
-
54
45
  const testWorklet = () => {
55
46
  'worklet';
56
47
  };
57
-
58
48
  const throwUninitializedReanimatedException = () => {
59
49
  throw new Error("Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache");
60
50
  };
61
-
62
51
  const checkPluginState = function () {
63
52
  let throwError = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
64
-
65
53
  if (!testWorklet.__workletHash && !(0, _PlatformChecker.shouldBeUseWeb)()) {
66
54
  if (throwError) {
67
55
  throwUninitializedReanimatedException();
68
56
  }
69
-
70
57
  return false;
71
58
  }
72
-
73
59
  return true;
74
60
  };
75
-
76
61
  exports.checkPluginState = checkPluginState;
77
-
78
62
  const isConfigured = function () {
79
63
  let throwError = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
80
64
  return checkPluginState(throwError);
81
65
  };
82
-
83
66
  exports.isConfigured = isConfigured;
84
-
85
67
  const isConfiguredCheck = () => {
86
68
  checkPluginState(true);
87
69
  };
88
-
89
70
  exports.isConfiguredCheck = isConfiguredCheck;
90
71
  const configurationCheckWrapper = __DEV__ ? fn => {
91
72
  return function () {
@@ -102,16 +83,13 @@ exports.makeMutable = makeMutable;
102
83
  const makeRemote = __DEV__ ? configurationCheckWrapper(_mutables.makeRemote) : _mutables.makeRemote;
103
84
  exports.makeRemote = makeRemote;
104
85
  global._WORKLET = false;
105
-
106
86
  global._log = function (s) {
107
87
  console.log(s);
108
88
  };
109
-
110
89
  function getViewProp(viewTag, propName) {
111
90
  if (global._IS_FABRIC) {
112
91
  throw new Error('[react-native-reanimated] `getViewProp` is not supported on Fabric yet');
113
92
  }
114
-
115
93
  return new Promise((resolve, reject) => {
116
94
  return _NativeReanimated.default.getViewProp(viewTag, propName, result => {
117
95
  if (typeof result === 'string' && result.substr(0, 6) === 'error:') {
@@ -122,89 +100,69 @@ function getViewProp(viewTag, propName) {
122
100
  });
123
101
  });
124
102
  }
125
-
126
103
  function registerEventHandler(eventHash, eventHandler) {
127
- function handleAndFlushImmediates(eventTimestamp, event) {
104
+ function handleAndFlushAnimationFrame(eventTimestamp, event) {
128
105
  'worklet';
129
106
 
130
107
  global.__frameTimestamp = eventTimestamp;
131
108
  eventHandler(event);
132
-
133
109
  global.__flushAnimationFrame(eventTimestamp);
134
-
135
110
  global.__frameTimestamp = undefined;
136
111
  }
137
-
138
- return _NativeReanimated.default.registerEventHandler(eventHash, (0, _shareables.makeShareableCloneRecursive)(handleAndFlushImmediates));
112
+ return _NativeReanimated.default.registerEventHandler(eventHash, (0, _shareables.makeShareableCloneRecursive)(handleAndFlushAnimationFrame));
139
113
  }
140
-
141
114
  function unregisterEventHandler(id) {
142
115
  return _NativeReanimated.default.unregisterEventHandler(id);
143
116
  }
144
-
145
117
  function subscribeForKeyboardEvents(eventHandler, options) {
146
118
  // TODO: this should really go with the same code path as other events, that is
147
119
  // via registerEventHandler. For now we are copying the code from there.
148
- function handleAndFlushImmediates(state, height) {
120
+ function handleAndFlushAnimationFrame(state, height) {
149
121
  'worklet';
150
122
 
151
123
  const now = performance.now();
152
124
  global.__frameTimestamp = now;
153
125
  eventHandler(state, height);
154
-
155
126
  global.__flushAnimationFrame(now);
156
-
157
127
  global.__frameTimestamp = undefined;
158
128
  }
159
-
160
- return _NativeReanimated.default.subscribeForKeyboardEvents((0, _shareables.makeShareableCloneRecursive)(handleAndFlushImmediates), options.isStatusBarTranslucentAndroid ?? false);
129
+ return _NativeReanimated.default.subscribeForKeyboardEvents((0, _shareables.makeShareableCloneRecursive)(handleAndFlushAnimationFrame), options.isStatusBarTranslucentAndroid ?? false);
161
130
  }
162
-
163
131
  function unsubscribeFromKeyboardEvents(listenerId) {
164
132
  return _NativeReanimated.default.unsubscribeFromKeyboardEvents(listenerId);
165
133
  }
166
-
167
134
  function registerSensor(sensorType, interval, iosReferenceFrame, eventHandler) {
168
135
  return _NativeReanimated.default.registerSensor(sensorType, interval, iosReferenceFrame, (0, _shareables.makeShareableCloneRecursive)(eventHandler));
169
136
  }
170
-
171
137
  function unregisterSensor(listenerId) {
172
138
  return _NativeReanimated.default.unregisterSensor(listenerId);
173
- } // initialize UI runtime if applicable
174
-
139
+ }
175
140
 
141
+ // initialize UI runtime if applicable
176
142
  if (!(0, _PlatformChecker.isWeb)() && isConfigured()) {
177
143
  (0, _initializers.initializeUIRuntime)();
178
144
  }
179
-
180
145
  let featuresConfig = {
181
146
  enableLayoutAnimations: false,
182
147
  setByUser: false
183
148
  };
184
-
185
149
  function enableLayoutAnimations(flag) {
186
150
  let isCallByUser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
187
-
188
151
  if (isCallByUser) {
189
152
  featuresConfig = {
190
153
  enableLayoutAnimations: flag,
191
154
  setByUser: true
192
155
  };
193
-
194
156
  _NativeReanimated.default.enableLayoutAnimations(flag);
195
157
  } else if (!featuresConfig.setByUser && featuresConfig.enableLayoutAnimations !== flag) {
196
158
  featuresConfig.enableLayoutAnimations = flag;
197
-
198
159
  _NativeReanimated.default.enableLayoutAnimations(flag);
199
160
  }
200
161
  }
201
-
202
162
  function configureLayoutAnimations(viewTag, type, config) {
203
163
  let sharedTransitionTag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
204
-
205
164
  _NativeReanimated.default.configureLayoutAnimation(viewTag, type, sharedTransitionTag, (0, _shareables.makeShareableCloneRecursive)(config));
206
165
  }
207
-
208
166
  function configureProps(uiProps, nativeProps) {
209
167
  if (!(0, _PlatformChecker.nativeShouldBeMock)()) {
210
168
  _NativeReanimated.default.configureProps(uiProps, nativeProps);
@@ -1 +1 @@
1
- {"version":3,"names":["testWorklet","throwUninitializedReanimatedException","Error","checkPluginState","throwError","__workletHash","shouldBeUseWeb","isConfigured","isConfiguredCheck","configurationCheckWrapper","__DEV__","fn","startMapper","startMapperUnwrapped","makeShareable","makeShareableUnwrapped","makeMutable","makeMutableUnwrapped","makeRemote","makeRemoteUnwrapped","global","_WORKLET","_log","s","console","log","getViewProp","viewTag","propName","_IS_FABRIC","Promise","resolve","reject","NativeReanimatedModule","result","substr","registerEventHandler","eventHash","eventHandler","handleAndFlushImmediates","eventTimestamp","event","__frameTimestamp","__flushAnimationFrame","undefined","makeShareableCloneRecursive","unregisterEventHandler","id","subscribeForKeyboardEvents","options","state","height","now","performance","isStatusBarTranslucentAndroid","unsubscribeFromKeyboardEvents","listenerId","registerSensor","sensorType","interval","iosReferenceFrame","unregisterSensor","isWeb","initializeUIRuntime","featuresConfig","enableLayoutAnimations","setByUser","flag","isCallByUser","configureLayoutAnimations","type","config","sharedTransitionTag","configureLayoutAnimation","configureProps","uiProps","nativeProps","nativeShouldBeMock"],"sources":["core.ts"],"sourcesContent":["import NativeReanimatedModule from './NativeReanimated';\nimport { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';\nimport {\n AnimatedKeyboardOptions,\n BasicWorkletFunction,\n Value3D,\n ValueRotation,\n} from './commonTypes';\nimport {\n makeShareableCloneRecursive,\n makeShareable as makeShareableUnwrapped,\n} from './shareables';\nimport { startMapper as startMapperUnwrapped } from './mappers';\nimport {\n makeMutable as makeMutableUnwrapped,\n makeRemote as makeRemoteUnwrapped,\n} from './mutables';\nimport {\n LayoutAnimationFunction,\n LayoutAnimationType,\n} from './layoutReanimation';\nimport { initializeUIRuntime } from './initializers';\n\nexport { stopMapper } from './mappers';\nexport { runOnJS, runOnUI } from './threads';\n\nexport type ReanimatedConsole = Pick<\n Console,\n 'debug' | 'log' | 'warn' | 'info' | 'error'\n>;\n\nconst testWorklet: BasicWorkletFunction<void> = () => {\n 'worklet';\n};\n\nconst throwUninitializedReanimatedException = () => {\n throw new Error(\n \"Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \\n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \\n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache\"\n );\n};\n\nexport const checkPluginState: (throwError: boolean) => boolean = (\n throwError = true\n) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throwUninitializedReanimatedException();\n }\n return false;\n }\n return true;\n};\n\nexport const isConfigured: (throwError?: boolean) => boolean = (\n throwError = false\n) => {\n return checkPluginState(throwError);\n};\n\nexport const isConfiguredCheck: () => void = () => {\n checkPluginState(true);\n};\n\nconst configurationCheckWrapper = __DEV__\n ? <T extends Array<any>, U>(fn: (...args: T) => U) => {\n return (...args: T): U => {\n isConfigured(true);\n return fn(...args);\n };\n }\n : <T extends Array<any>, U>(fn: (...args: T) => U) => fn;\n\nexport const startMapper = __DEV__\n ? configurationCheckWrapper(startMapperUnwrapped)\n : startMapperUnwrapped;\n\nexport const makeShareable = __DEV__\n ? configurationCheckWrapper(makeShareableUnwrapped)\n : makeShareableUnwrapped;\n\nexport const makeMutable = __DEV__\n ? configurationCheckWrapper(makeMutableUnwrapped)\n : makeMutableUnwrapped;\n\nexport const makeRemote = __DEV__\n ? configurationCheckWrapper(makeRemoteUnwrapped)\n : makeRemoteUnwrapped;\n\nglobal._WORKLET = false;\nglobal._log = function (s: string) {\n console.log(s);\n};\n\nexport function getViewProp<T>(viewTag: string, propName: string): Promise<T> {\n if (global._IS_FABRIC) {\n throw new Error(\n '[react-native-reanimated] `getViewProp` is not supported on Fabric yet'\n );\n }\n\n return new Promise((resolve, reject) => {\n return NativeReanimatedModule.getViewProp(\n viewTag,\n propName,\n (result: T) => {\n if (typeof result === 'string' && result.substr(0, 6) === 'error:') {\n reject(result);\n } else {\n resolve(result);\n }\n }\n );\n });\n}\n\nexport function registerEventHandler<T>(\n eventHash: string,\n eventHandler: (event: T) => void\n): string {\n function handleAndFlushImmediates(eventTimestamp: number, event: T) {\n 'worklet';\n global.__frameTimestamp = eventTimestamp;\n eventHandler(event);\n global.__flushAnimationFrame(eventTimestamp);\n global.__frameTimestamp = undefined;\n }\n return NativeReanimatedModule.registerEventHandler(\n eventHash,\n makeShareableCloneRecursive(handleAndFlushImmediates)\n );\n}\n\nexport function unregisterEventHandler(id: string): void {\n return NativeReanimatedModule.unregisterEventHandler(id);\n}\n\nexport function subscribeForKeyboardEvents(\n eventHandler: (state: number, height: number) => void,\n options: AnimatedKeyboardOptions\n): number {\n // TODO: this should really go with the same code path as other events, that is\n // via registerEventHandler. For now we are copying the code from there.\n function handleAndFlushImmediates(state: number, height: number) {\n 'worklet';\n const now = performance.now();\n global.__frameTimestamp = now;\n eventHandler(state, height);\n global.__flushAnimationFrame(now);\n global.__frameTimestamp = undefined;\n }\n return NativeReanimatedModule.subscribeForKeyboardEvents(\n makeShareableCloneRecursive(handleAndFlushImmediates),\n options.isStatusBarTranslucentAndroid ?? false\n );\n}\n\nexport function unsubscribeFromKeyboardEvents(listenerId: number): void {\n return NativeReanimatedModule.unsubscribeFromKeyboardEvents(listenerId);\n}\n\nexport function registerSensor(\n sensorType: number,\n interval: number,\n iosReferenceFrame: number,\n eventHandler: (\n data: Value3D | ValueRotation,\n orientationDegrees: number\n ) => void\n): number {\n return NativeReanimatedModule.registerSensor(\n sensorType,\n interval,\n iosReferenceFrame,\n makeShareableCloneRecursive(eventHandler)\n );\n}\n\nexport function unregisterSensor(listenerId: number): void {\n return NativeReanimatedModule.unregisterSensor(listenerId);\n}\n\n// initialize UI runtime if applicable\nif (!isWeb() && isConfigured()) {\n initializeUIRuntime();\n}\n\ntype FeaturesConfig = {\n enableLayoutAnimations: boolean;\n setByUser: boolean;\n};\n\nlet featuresConfig: FeaturesConfig = {\n enableLayoutAnimations: false,\n setByUser: false,\n};\n\nexport function enableLayoutAnimations(\n flag: boolean,\n isCallByUser = true\n): void {\n if (isCallByUser) {\n featuresConfig = {\n enableLayoutAnimations: flag,\n setByUser: true,\n };\n NativeReanimatedModule.enableLayoutAnimations(flag);\n } else if (\n !featuresConfig.setByUser &&\n featuresConfig.enableLayoutAnimations !== flag\n ) {\n featuresConfig.enableLayoutAnimations = flag;\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n}\n\nexport function configureLayoutAnimations(\n viewTag: number,\n type: LayoutAnimationType,\n config: LayoutAnimationFunction | Keyframe,\n sharedTransitionTag = ''\n): void {\n NativeReanimatedModule.configureLayoutAnimation(\n viewTag,\n type,\n sharedTransitionTag,\n makeShareableCloneRecursive(config)\n );\n}\n\nexport function configureProps(uiProps: string[], nativeProps: string[]): void {\n if (!nativeShouldBeMock()) {\n NativeReanimatedModule.configureProps(uiProps, nativeProps);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_NativeReanimated","_interopRequireDefault","require","_PlatformChecker","_shareables","_mappers","_mutables","_initializers","_threads","obj","__esModule","default","testWorklet","throwUninitializedReanimatedException","Error","checkPluginState","throwError","arguments","length","undefined","__workletHash","shouldBeUseWeb","exports","isConfigured","isConfiguredCheck","configurationCheckWrapper","__DEV__","fn","startMapper","startMapperUnwrapped","makeShareable","makeShareableUnwrapped","makeMutable","makeMutableUnwrapped","makeRemote","makeRemoteUnwrapped","global","_WORKLET","_log","s","console","log","getViewProp","viewTag","propName","_IS_FABRIC","Promise","resolve","reject","NativeReanimatedModule","result","substr","registerEventHandler","eventHash","eventHandler","handleAndFlushAnimationFrame","eventTimestamp","event","__frameTimestamp","__flushAnimationFrame","makeShareableCloneRecursive","unregisterEventHandler","id","subscribeForKeyboardEvents","options","state","height","now","performance","isStatusBarTranslucentAndroid","unsubscribeFromKeyboardEvents","listenerId","registerSensor","sensorType","interval","iosReferenceFrame","unregisterSensor","isWeb","initializeUIRuntime","featuresConfig","enableLayoutAnimations","setByUser","flag","isCallByUser","configureLayoutAnimations","type","config","sharedTransitionTag","configureLayoutAnimation","configureProps","uiProps","nativeProps","nativeShouldBeMock"],"sources":["core.ts"],"sourcesContent":["import NativeReanimatedModule from './NativeReanimated';\nimport { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';\nimport {\n AnimatedKeyboardOptions,\n BasicWorkletFunction,\n Value3D,\n ValueRotation,\n} from './commonTypes';\nimport {\n makeShareableCloneRecursive,\n makeShareable as makeShareableUnwrapped,\n} from './shareables';\nimport { startMapper as startMapperUnwrapped } from './mappers';\nimport {\n makeMutable as makeMutableUnwrapped,\n makeRemote as makeRemoteUnwrapped,\n} from './mutables';\nimport {\n LayoutAnimationFunction,\n LayoutAnimationType,\n} from './layoutReanimation';\nimport { initializeUIRuntime } from './initializers';\n\nexport { stopMapper } from './mappers';\nexport { runOnJS, runOnUI } from './threads';\n\nexport type ReanimatedConsole = Pick<\n Console,\n 'debug' | 'log' | 'warn' | 'info' | 'error'\n>;\n\nconst testWorklet: BasicWorkletFunction<void> = () => {\n 'worklet';\n};\n\nconst throwUninitializedReanimatedException = () => {\n throw new Error(\n \"Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \\n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \\n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache\"\n );\n};\n\nexport const checkPluginState: (throwError: boolean) => boolean = (\n throwError = true\n) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throwUninitializedReanimatedException();\n }\n return false;\n }\n return true;\n};\n\nexport const isConfigured: (throwError?: boolean) => boolean = (\n throwError = false\n) => {\n return checkPluginState(throwError);\n};\n\nexport const isConfiguredCheck: () => void = () => {\n checkPluginState(true);\n};\n\nconst configurationCheckWrapper = __DEV__\n ? <T extends Array<any>, U>(fn: (...args: T) => U) => {\n return (...args: T): U => {\n isConfigured(true);\n return fn(...args);\n };\n }\n : <T extends Array<any>, U>(fn: (...args: T) => U) => fn;\n\nexport const startMapper = __DEV__\n ? configurationCheckWrapper(startMapperUnwrapped)\n : startMapperUnwrapped;\n\nexport const makeShareable = __DEV__\n ? configurationCheckWrapper(makeShareableUnwrapped)\n : makeShareableUnwrapped;\n\nexport const makeMutable = __DEV__\n ? configurationCheckWrapper(makeMutableUnwrapped)\n : makeMutableUnwrapped;\n\nexport const makeRemote = __DEV__\n ? configurationCheckWrapper(makeRemoteUnwrapped)\n : makeRemoteUnwrapped;\n\nglobal._WORKLET = false;\nglobal._log = function (s: string) {\n console.log(s);\n};\n\nexport function getViewProp<T>(viewTag: string, propName: string): Promise<T> {\n if (global._IS_FABRIC) {\n throw new Error(\n '[react-native-reanimated] `getViewProp` is not supported on Fabric yet'\n );\n }\n\n return new Promise((resolve, reject) => {\n return NativeReanimatedModule.getViewProp(\n viewTag,\n propName,\n (result: T) => {\n if (typeof result === 'string' && result.substr(0, 6) === 'error:') {\n reject(result);\n } else {\n resolve(result);\n }\n }\n );\n });\n}\n\nexport function registerEventHandler<T>(\n eventHash: string,\n eventHandler: (event: T) => void\n): string {\n function handleAndFlushAnimationFrame(eventTimestamp: number, event: T) {\n 'worklet';\n global.__frameTimestamp = eventTimestamp;\n eventHandler(event);\n global.__flushAnimationFrame(eventTimestamp);\n global.__frameTimestamp = undefined;\n }\n return NativeReanimatedModule.registerEventHandler(\n eventHash,\n makeShareableCloneRecursive(handleAndFlushAnimationFrame)\n );\n}\n\nexport function unregisterEventHandler(id: string): void {\n return NativeReanimatedModule.unregisterEventHandler(id);\n}\n\nexport function subscribeForKeyboardEvents(\n eventHandler: (state: number, height: number) => void,\n options: AnimatedKeyboardOptions\n): number {\n // TODO: this should really go with the same code path as other events, that is\n // via registerEventHandler. For now we are copying the code from there.\n function handleAndFlushAnimationFrame(state: number, height: number) {\n 'worklet';\n const now = performance.now();\n global.__frameTimestamp = now;\n eventHandler(state, height);\n global.__flushAnimationFrame(now);\n global.__frameTimestamp = undefined;\n }\n return NativeReanimatedModule.subscribeForKeyboardEvents(\n makeShareableCloneRecursive(handleAndFlushAnimationFrame),\n options.isStatusBarTranslucentAndroid ?? false\n );\n}\n\nexport function unsubscribeFromKeyboardEvents(listenerId: number): void {\n return NativeReanimatedModule.unsubscribeFromKeyboardEvents(listenerId);\n}\n\nexport function registerSensor(\n sensorType: number,\n interval: number,\n iosReferenceFrame: number,\n eventHandler: (\n data: Value3D | ValueRotation,\n orientationDegrees: number\n ) => void\n): number {\n return NativeReanimatedModule.registerSensor(\n sensorType,\n interval,\n iosReferenceFrame,\n makeShareableCloneRecursive(eventHandler)\n );\n}\n\nexport function unregisterSensor(listenerId: number): void {\n return NativeReanimatedModule.unregisterSensor(listenerId);\n}\n\n// initialize UI runtime if applicable\nif (!isWeb() && isConfigured()) {\n initializeUIRuntime();\n}\n\ntype FeaturesConfig = {\n enableLayoutAnimations: boolean;\n setByUser: boolean;\n};\n\nlet featuresConfig: FeaturesConfig = {\n enableLayoutAnimations: false,\n setByUser: false,\n};\n\nexport function enableLayoutAnimations(\n flag: boolean,\n isCallByUser = true\n): void {\n if (isCallByUser) {\n featuresConfig = {\n enableLayoutAnimations: flag,\n setByUser: true,\n };\n NativeReanimatedModule.enableLayoutAnimations(flag);\n } else if (\n !featuresConfig.setByUser &&\n featuresConfig.enableLayoutAnimations !== flag\n ) {\n featuresConfig.enableLayoutAnimations = flag;\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n}\n\nexport function configureLayoutAnimations(\n viewTag: number,\n type: LayoutAnimationType,\n config: LayoutAnimationFunction | Keyframe,\n sharedTransitionTag = ''\n): void {\n NativeReanimatedModule.configureLayoutAnimation(\n viewTag,\n type,\n sharedTransitionTag,\n makeShareableCloneRecursive(config)\n );\n}\n\nexport function configureProps(uiProps: string[], nativeProps: string[]): void {\n if (!nativeShouldBeMock()) {\n NativeReanimatedModule.configureProps(uiProps, nativeProps);\n }\n}\n"],"mappings":"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"}
@@ -5,42 +5,31 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.registerWorkletStackDetails = registerWorkletStackDetails;
7
7
  exports.reportFatalErrorOnJS = reportFatalErrorOnJS;
8
-
9
8
  const _workletStackDetails = new Map();
10
-
11
9
  function registerWorkletStackDetails(hash, stackDetails) {
12
10
  _workletStackDetails.set(hash, stackDetails);
13
11
  }
14
-
15
12
  function getBundleOffset(error) {
16
13
  var _error$stack, _error$stack$split;
17
-
18
14
  const frame = (_error$stack = error.stack) === null || _error$stack === void 0 ? void 0 : (_error$stack$split = _error$stack.split('\n')) === null || _error$stack$split === void 0 ? void 0 : _error$stack$split[0];
19
-
20
15
  if (frame) {
21
16
  const parsedFrame = /@([^@]+):(\d+):(\d+)/.exec(frame);
22
-
23
17
  if (parsedFrame) {
24
18
  const [, file, line, col] = parsedFrame;
25
19
  return [file, Number(line), Number(col)];
26
20
  }
27
21
  }
28
-
29
22
  return ['unknown', 0, 0];
30
23
  }
31
-
32
24
  function processStack(stack) {
33
25
  const workletStackEntries = stack.match(/worklet_(\d+):(\d+):(\d+)/g);
34
26
  let result = stack;
35
27
  workletStackEntries === null || workletStackEntries === void 0 ? void 0 : workletStackEntries.forEach(match => {
36
28
  const [, hash, origLine, origCol] = match.split(/:|_/).map(Number);
37
-
38
29
  const errorDetails = _workletStackDetails.get(hash);
39
-
40
30
  if (!errorDetails) {
41
31
  return;
42
32
  }
43
-
44
33
  const [error, lineOffset, colOffset] = errorDetails;
45
34
  const [bundleFile, bundleLine, bundleCol] = getBundleOffset(error);
46
35
  const line = origLine + bundleLine + lineOffset;
@@ -49,7 +38,6 @@ function processStack(stack) {
49
38
  });
50
39
  return result;
51
40
  }
52
-
53
41
  function reportFatalErrorOnJS(_ref) {
54
42
  let {
55
43
  message,
@@ -58,9 +46,10 @@ function reportFatalErrorOnJS(_ref) {
58
46
  const error = new Error();
59
47
  error.message = message;
60
48
  error.stack = stack ? processStack(stack) : undefined;
61
- error.name = 'ReanimatedError'; // @ts-ignore React Native's ErrorUtils implementation extends the Error type with jsEngine field
62
-
49
+ error.name = 'ReanimatedError';
50
+ // @ts-ignore React Native's ErrorUtils implementation extends the Error type with jsEngine field
63
51
  error.jsEngine = 'reanimated';
52
+ // @ts-ignore the reportFatalError method is an internal method of ErrorUtils not exposed in the type definitions
64
53
  global.ErrorUtils.reportFatalError(error);
65
54
  }
66
55
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_workletStackDetails","Map","registerWorkletStackDetails","hash","stackDetails","set","getBundleOffset","error","frame","stack","split","parsedFrame","exec","file","line","col","Number","processStack","workletStackEntries","match","result","forEach","origLine","origCol","map","errorDetails","get","lineOffset","colOffset","bundleFile","bundleLine","bundleCol","replace","reportFatalErrorOnJS","message","Error","undefined","name","jsEngine","global","ErrorUtils","reportFatalError"],"sources":["errors.ts"],"sourcesContent":["type StackDetails = [Error, number, number];\n\nconst _workletStackDetails = new Map<number, StackDetails>();\n\nexport function registerWorkletStackDetails(\n hash: number,\n stackDetails: StackDetails\n) {\n _workletStackDetails.set(hash, stackDetails);\n}\n\nfunction getBundleOffset(error: Error): [string, number, number] {\n const frame = error.stack?.split('\\n')?.[0];\n if (frame) {\n const parsedFrame = /@([^@]+):(\\d+):(\\d+)/.exec(frame);\n if (parsedFrame) {\n const [, file, line, col] = parsedFrame;\n return [file, Number(line), Number(col)];\n }\n }\n return ['unknown', 0, 0];\n}\n\nfunction processStack(stack: string): string {\n const workletStackEntries = stack.match(/worklet_(\\d+):(\\d+):(\\d+)/g);\n let result = stack;\n workletStackEntries?.forEach((match) => {\n const [, hash, origLine, origCol] = match.split(/:|_/).map(Number);\n const errorDetails = _workletStackDetails.get(hash);\n if (!errorDetails) {\n return;\n }\n const [error, lineOffset, colOffset] = errorDetails;\n const [bundleFile, bundleLine, bundleCol] = getBundleOffset(error);\n const line = origLine + bundleLine + lineOffset;\n const col = origCol + bundleCol + colOffset;\n\n result = result.replace(match, `${bundleFile}:${line}:${col}`);\n });\n return result;\n}\n\nexport function reportFatalErrorOnJS({\n message,\n stack,\n}: {\n message: string;\n stack?: string;\n}) {\n const error = new Error();\n error.message = message;\n error.stack = stack ? processStack(stack) : undefined;\n error.name = 'ReanimatedError';\n // @ts-ignore React Native's ErrorUtils implementation extends the Error type with jsEngine field\n error.jsEngine = 'reanimated';\n global.ErrorUtils.reportFatalError(error);\n}\n"],"mappings":";;;;;;;;AAEA,MAAMA,oBAAoB,GAAG,IAAIC,GAAJ,EAA7B;;AAEO,SAASC,2BAAT,CACLC,IADK,EAELC,YAFK,EAGL;EACAJ,oBAAoB,CAACK,GAArB,CAAyBF,IAAzB,EAA+BC,YAA/B;AACD;;AAED,SAASE,eAAT,CAAyBC,KAAzB,EAAiE;EAAA;;EAC/D,MAAMC,KAAK,mBAAGD,KAAK,CAACE,KAAT,uEAAG,aAAaC,KAAb,CAAmB,IAAnB,CAAH,uDAAG,mBAA2B,CAA3B,CAAd;;EACA,IAAIF,KAAJ,EAAW;IACT,MAAMG,WAAW,GAAG,uBAAuBC,IAAvB,CAA4BJ,KAA5B,CAApB;;IACA,IAAIG,WAAJ,EAAiB;MACf,MAAM,GAAGE,IAAH,EAASC,IAAT,EAAeC,GAAf,IAAsBJ,WAA5B;MACA,OAAO,CAACE,IAAD,EAAOG,MAAM,CAACF,IAAD,CAAb,EAAqBE,MAAM,CAACD,GAAD,CAA3B,CAAP;IACD;EACF;;EACD,OAAO,CAAC,SAAD,EAAY,CAAZ,EAAe,CAAf,CAAP;AACD;;AAED,SAASE,YAAT,CAAsBR,KAAtB,EAA6C;EAC3C,MAAMS,mBAAmB,GAAGT,KAAK,CAACU,KAAN,CAAY,4BAAZ,CAA5B;EACA,IAAIC,MAAM,GAAGX,KAAb;EACAS,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEG,OAArB,CAA8BF,KAAD,IAAW;IACtC,MAAM,GAAGhB,IAAH,EAASmB,QAAT,EAAmBC,OAAnB,IAA8BJ,KAAK,CAACT,KAAN,CAAY,KAAZ,EAAmBc,GAAnB,CAAuBR,MAAvB,CAApC;;IACA,MAAMS,YAAY,GAAGzB,oBAAoB,CAAC0B,GAArB,CAAyBvB,IAAzB,CAArB;;IACA,IAAI,CAACsB,YAAL,EAAmB;MACjB;IACD;;IACD,MAAM,CAAClB,KAAD,EAAQoB,UAAR,EAAoBC,SAApB,IAAiCH,YAAvC;IACA,MAAM,CAACI,UAAD,EAAaC,UAAb,EAAyBC,SAAzB,IAAsCzB,eAAe,CAACC,KAAD,CAA3D;IACA,MAAMO,IAAI,GAAGQ,QAAQ,GAAGQ,UAAX,GAAwBH,UAArC;IACA,MAAMZ,GAAG,GAAGQ,OAAO,GAAGQ,SAAV,GAAsBH,SAAlC;IAEAR,MAAM,GAAGA,MAAM,CAACY,OAAP,CAAeb,KAAf,EAAuB,GAAEU,UAAW,IAAGf,IAAK,IAAGC,GAAI,EAAnD,CAAT;EACD,CAZD;EAaA,OAAOK,MAAP;AACD;;AAEM,SAASa,oBAAT,OAMJ;EAAA,IANkC;IACnCC,OADmC;IAEnCzB;EAFmC,CAMlC;EACD,MAAMF,KAAK,GAAG,IAAI4B,KAAJ,EAAd;EACA5B,KAAK,CAAC2B,OAAN,GAAgBA,OAAhB;EACA3B,KAAK,CAACE,KAAN,GAAcA,KAAK,GAAGQ,YAAY,CAACR,KAAD,CAAf,GAAyB2B,SAA5C;EACA7B,KAAK,CAAC8B,IAAN,GAAa,iBAAb,CAJC,CAKD;;EACA9B,KAAK,CAAC+B,QAAN,GAAiB,YAAjB;EACAC,MAAM,CAACC,UAAP,CAAkBC,gBAAlB,CAAmClC,KAAnC;AACD"}
1
+ {"version":3,"names":["_workletStackDetails","Map","registerWorkletStackDetails","hash","stackDetails","set","getBundleOffset","error","_error$stack","_error$stack$split","frame","stack","split","parsedFrame","exec","file","line","col","Number","processStack","workletStackEntries","match","result","forEach","origLine","origCol","map","errorDetails","get","lineOffset","colOffset","bundleFile","bundleLine","bundleCol","replace","reportFatalErrorOnJS","_ref","message","Error","undefined","name","jsEngine","global","ErrorUtils","reportFatalError"],"sources":["errors.ts"],"sourcesContent":["type StackDetails = [Error, number, number];\n\nconst _workletStackDetails = new Map<number, StackDetails>();\n\nexport function registerWorkletStackDetails(\n hash: number,\n stackDetails: StackDetails\n) {\n _workletStackDetails.set(hash, stackDetails);\n}\n\nfunction getBundleOffset(error: Error): [string, number, number] {\n const frame = error.stack?.split('\\n')?.[0];\n if (frame) {\n const parsedFrame = /@([^@]+):(\\d+):(\\d+)/.exec(frame);\n if (parsedFrame) {\n const [, file, line, col] = parsedFrame;\n return [file, Number(line), Number(col)];\n }\n }\n return ['unknown', 0, 0];\n}\n\nfunction processStack(stack: string): string {\n const workletStackEntries = stack.match(/worklet_(\\d+):(\\d+):(\\d+)/g);\n let result = stack;\n workletStackEntries?.forEach((match) => {\n const [, hash, origLine, origCol] = match.split(/:|_/).map(Number);\n const errorDetails = _workletStackDetails.get(hash);\n if (!errorDetails) {\n return;\n }\n const [error, lineOffset, colOffset] = errorDetails;\n const [bundleFile, bundleLine, bundleCol] = getBundleOffset(error);\n const line = origLine + bundleLine + lineOffset;\n const col = origCol + bundleCol + colOffset;\n\n result = result.replace(match, `${bundleFile}:${line}:${col}`);\n });\n return result;\n}\n\nexport function reportFatalErrorOnJS({\n message,\n stack,\n}: {\n message: string;\n stack?: string;\n}) {\n const error = new Error();\n error.message = message;\n error.stack = stack ? processStack(stack) : undefined;\n error.name = 'ReanimatedError';\n // @ts-ignore React Native's ErrorUtils implementation extends the Error type with jsEngine field\n error.jsEngine = 'reanimated';\n // @ts-ignore the reportFatalError method is an internal method of ErrorUtils not exposed in the type definitions\n global.ErrorUtils.reportFatalError(error);\n}\n"],"mappings":";;;;;;;AAEA,MAAMA,oBAAoB,GAAG,IAAIC,GAAG,EAAwB;AAErD,SAASC,2BAA2BA,CACzCC,IAAY,EACZC,YAA0B,EAC1B;EACAJ,oBAAoB,CAACK,GAAG,CAACF,IAAI,EAAEC,YAAY,CAAC;AAC9C;AAEA,SAASE,eAAeA,CAACC,KAAY,EAA4B;EAAA,IAAAC,YAAA,EAAAC,kBAAA;EAC/D,MAAMC,KAAK,IAAAF,YAAA,GAAGD,KAAK,CAACI,KAAK,cAAAH,YAAA,wBAAAC,kBAAA,GAAXD,YAAA,CAAaI,KAAK,CAAC,IAAI,CAAC,cAAAH,kBAAA,uBAAxBA,kBAAA,CAA2B,CAAC,CAAC;EAC3C,IAAIC,KAAK,EAAE;IACT,MAAMG,WAAW,GAAG,sBAAsB,CAACC,IAAI,CAACJ,KAAK,CAAC;IACtD,IAAIG,WAAW,EAAE;MACf,MAAM,GAAGE,IAAI,EAAEC,IAAI,EAAEC,GAAG,CAAC,GAAGJ,WAAW;MACvC,OAAO,CAACE,IAAI,EAAEG,MAAM,CAACF,IAAI,CAAC,EAAEE,MAAM,CAACD,GAAG,CAAC,CAAC;IAC1C;EACF;EACA,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1B;AAEA,SAASE,YAAYA,CAACR,KAAa,EAAU;EAC3C,MAAMS,mBAAmB,GAAGT,KAAK,CAACU,KAAK,CAAC,4BAA4B,CAAC;EACrE,IAAIC,MAAM,GAAGX,KAAK;EAClBS,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEG,OAAO,CAAEF,KAAK,IAAK;IACtC,MAAM,GAAGlB,IAAI,EAAEqB,QAAQ,EAAEC,OAAO,CAAC,GAAGJ,KAAK,CAACT,KAAK,CAAC,KAAK,CAAC,CAACc,GAAG,CAACR,MAAM,CAAC;IAClE,MAAMS,YAAY,GAAG3B,oBAAoB,CAAC4B,GAAG,CAACzB,IAAI,CAAC;IACnD,IAAI,CAACwB,YAAY,EAAE;MACjB;IACF;IACA,MAAM,CAACpB,KAAK,EAAEsB,UAAU,EAAEC,SAAS,CAAC,GAAGH,YAAY;IACnD,MAAM,CAACI,UAAU,EAAEC,UAAU,EAAEC,SAAS,CAAC,GAAG3B,eAAe,CAACC,KAAK,CAAC;IAClE,MAAMS,IAAI,GAAGQ,QAAQ,GAAGQ,UAAU,GAAGH,UAAU;IAC/C,MAAMZ,GAAG,GAAGQ,OAAO,GAAGQ,SAAS,GAAGH,SAAS;IAE3CR,MAAM,GAAGA,MAAM,CAACY,OAAO,CAACb,KAAK,EAAG,GAAEU,UAAW,IAAGf,IAAK,IAAGC,GAAI,EAAC,CAAC;EAChE,CAAC,CAAC;EACF,OAAOK,MAAM;AACf;AAEO,SAASa,oBAAoBA,CAAAC,IAAA,EAMjC;EAAA,IANkC;IACnCC,OAAO;IACP1B;EAIF,CAAC,GAAAyB,IAAA;EACC,MAAM7B,KAAK,GAAG,IAAI+B,KAAK,EAAE;EACzB/B,KAAK,CAAC8B,OAAO,GAAGA,OAAO;EACvB9B,KAAK,CAACI,KAAK,GAAGA,KAAK,GAAGQ,YAAY,CAACR,KAAK,CAAC,GAAG4B,SAAS;EACrDhC,KAAK,CAACiC,IAAI,GAAG,iBAAiB;EAC9B;EACAjC,KAAK,CAACkC,QAAQ,GAAG,YAAY;EAC7B;EACAC,MAAM,CAACC,UAAU,CAACC,gBAAgB,CAACrC,KAAK,CAAC;AAC3C"}
@@ -5,22 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getShadowNodeWrapperFromHostInstance = getShadowNodeWrapperFromHostInstance;
7
7
  exports.getShadowNodeWrapperFromRef = getShadowNodeWrapperFromRef;
8
-
9
8
  /* eslint-disable camelcase */
9
+
10
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
11
  let findHostInstance_DEPRECATED = _ref => null;
12
-
13
12
  try {
14
13
  // eslint-disable-next-line @typescript-eslint/no-var-requires
15
14
  findHostInstance_DEPRECATED = require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
16
- } catch (e) {// do nothing
15
+ } catch (e) {
16
+ // do nothing
17
17
  }
18
-
19
18
  function getShadowNodeWrapperFromHostInstance(hostInstance) {
20
19
  // @ts-ignore Fabric
21
20
  return hostInstance._internalInstanceHandle.stateNode.node;
22
21
  }
23
-
24
22
  function getShadowNodeWrapperFromRef(ref) {
25
23
  return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));
26
24
  }
@@ -1 +1 @@
1
- {"version":3,"names":["findHostInstance_DEPRECATED","_ref","require","e","getShadowNodeWrapperFromHostInstance","hostInstance","_internalInstanceHandle","stateNode","node","getShadowNodeWrapperFromRef","ref"],"sources":["fabricUtils.ts"],"sourcesContent":["/* eslint-disable camelcase */\n\nimport { ShadowNodeWrapper } from './commonTypes';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet findHostInstance_DEPRECATED = (_ref: React.Component) => null;\n\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n findHostInstance_DEPRECATED =\n require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;\n} catch (e) {\n // do nothing\n}\n\nexport function getShadowNodeWrapperFromHostInstance(\n hostInstance: unknown\n): ShadowNodeWrapper {\n // @ts-ignore Fabric\n return hostInstance._internalInstanceHandle.stateNode.node;\n}\n\nexport function getShadowNodeWrapperFromRef(\n ref: React.Component\n): ShadowNodeWrapper {\n return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));\n}\n"],"mappings":";;;;;;;;AAAA;AAIA;AACA,IAAIA,2BAA2B,GAAIC,IAAD,IAA2B,IAA7D;;AAEA,IAAI;EACF;EACAD,2BAA2B,GACzBE,OAAO,CAAC,mDAAD,CAAP,CAA6DF,2BAD/D;AAED,CAJD,CAIE,OAAOG,CAAP,EAAU,CACV;AACD;;AAEM,SAASC,oCAAT,CACLC,YADK,EAEc;EACnB;EACA,OAAOA,YAAY,CAACC,uBAAb,CAAqCC,SAArC,CAA+CC,IAAtD;AACD;;AAEM,SAASC,2BAAT,CACLC,GADK,EAEc;EACnB,OAAON,oCAAoC,CAACJ,2BAA2B,CAACU,GAAD,CAA5B,CAA3C;AACD"}
1
+ {"version":3,"names":["findHostInstance_DEPRECATED","_ref","require","e","getShadowNodeWrapperFromHostInstance","hostInstance","_internalInstanceHandle","stateNode","node","getShadowNodeWrapperFromRef","ref"],"sources":["fabricUtils.ts"],"sourcesContent":["/* eslint-disable camelcase */\n\nimport { ShadowNodeWrapper } from './commonTypes';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet findHostInstance_DEPRECATED = (_ref: React.Component) => null;\n\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n findHostInstance_DEPRECATED =\n require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;\n} catch (e) {\n // do nothing\n}\n\nexport function getShadowNodeWrapperFromHostInstance(\n hostInstance: unknown\n): ShadowNodeWrapper {\n // @ts-ignore Fabric\n return hostInstance._internalInstanceHandle.stateNode.node;\n}\n\nexport function getShadowNodeWrapperFromRef(\n ref: React.Component\n): ShadowNodeWrapper {\n return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));\n}\n"],"mappings":";;;;;;;AAAA;;AAIA;AACA,IAAIA,2BAA2B,GAAIC,IAAqB,IAAK,IAAI;AAEjE,IAAI;EACF;EACAD,2BAA2B,GACzBE,OAAO,CAAC,mDAAmD,CAAC,CAACF,2BAA2B;AAC5F,CAAC,CAAC,OAAOG,CAAC,EAAE;EACV;AAAA;AAGK,SAASC,oCAAoCA,CAClDC,YAAqB,EACF;EACnB;EACA,OAAOA,YAAY,CAACC,uBAAuB,CAACC,SAAS,CAACC,IAAI;AAC5D;AAEO,SAASC,2BAA2BA,CACzCC,GAAoB,EACD;EACnB,OAAON,oCAAoC,CAACJ,2BAA2B,CAACU,GAAG,CAAC,CAAC;AAC/E"}
@@ -5,16 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getShadowNodeWrapperFromHostInstance = getShadowNodeWrapperFromHostInstance;
7
7
  exports.getShadowNodeWrapperFromRef = getShadowNodeWrapperFromRef;
8
-
9
8
  /* eslint-disable camelcase */
9
+
10
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
11
  const findHostInstance_DEPRECATED = _ref => null;
12
-
13
12
  function getShadowNodeWrapperFromHostInstance(hostInstance) {
14
13
  // @ts-ignore Fabric
15
14
  return hostInstance._internalInstanceHandle.stateNode.node;
16
15
  }
17
-
18
16
  function getShadowNodeWrapperFromRef(ref) {
19
17
  return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));
20
18
  }
@@ -1 +1 @@
1
- {"version":3,"names":["findHostInstance_DEPRECATED","_ref","getShadowNodeWrapperFromHostInstance","hostInstance","_internalInstanceHandle","stateNode","node","getShadowNodeWrapperFromRef","ref"],"sources":["fabricUtils.web.ts"],"sourcesContent":["/* eslint-disable camelcase */\n\nimport { ShadowNodeWrapper } from './commonTypes';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst findHostInstance_DEPRECATED = (_ref: React.Component) => null;\n\nexport function getShadowNodeWrapperFromHostInstance(\n hostInstance: unknown\n): ShadowNodeWrapper {\n // @ts-ignore Fabric\n return hostInstance._internalInstanceHandle.stateNode.node;\n}\n\nexport function getShadowNodeWrapperFromRef(\n ref: React.Component\n): ShadowNodeWrapper {\n return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));\n}\n"],"mappings":";;;;;;;;AAAA;AAIA;AACA,MAAMA,2BAA2B,GAAIC,IAAD,IAA2B,IAA/D;;AAEO,SAASC,oCAAT,CACLC,YADK,EAEc;EACnB;EACA,OAAOA,YAAY,CAACC,uBAAb,CAAqCC,SAArC,CAA+CC,IAAtD;AACD;;AAEM,SAASC,2BAAT,CACLC,GADK,EAEc;EACnB,OAAON,oCAAoC,CAACF,2BAA2B,CAACQ,GAAD,CAA5B,CAA3C;AACD"}
1
+ {"version":3,"names":["findHostInstance_DEPRECATED","_ref","getShadowNodeWrapperFromHostInstance","hostInstance","_internalInstanceHandle","stateNode","node","getShadowNodeWrapperFromRef","ref"],"sources":["fabricUtils.web.ts"],"sourcesContent":["/* eslint-disable camelcase */\n\nimport { ShadowNodeWrapper } from './commonTypes';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst findHostInstance_DEPRECATED = (_ref: React.Component) => null;\n\nexport function getShadowNodeWrapperFromHostInstance(\n hostInstance: unknown\n): ShadowNodeWrapper {\n // @ts-ignore Fabric\n return hostInstance._internalInstanceHandle.stateNode.node;\n}\n\nexport function getShadowNodeWrapperFromRef(\n ref: React.Component\n): ShadowNodeWrapper {\n return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));\n}\n"],"mappings":";;;;;;;AAAA;;AAIA;AACA,MAAMA,2BAA2B,GAAIC,IAAqB,IAAK,IAAI;AAE5D,SAASC,oCAAoCA,CAClDC,YAAqB,EACF;EACnB;EACA,OAAOA,YAAY,CAACC,uBAAuB,CAACC,SAAS,CAACC,IAAI;AAC5D;AAEO,SAASC,2BAA2BA,CACzCC,GAAoB,EACD;EACnB,OAAON,oCAAoC,CAACF,2BAA2B,CAACQ,GAAG,CAAC,CAAC;AAC/E"}
@@ -4,25 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _core = require("../core");
9
-
10
8
  var _FrameCallbackRegistryUI = require("./FrameCallbackRegistryUI");
11
-
12
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
-
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
12
  class FrameCallbackRegistryJS {
15
13
  constructor() {
16
14
  _defineProperty(this, "nextCallbackId", 0);
17
-
18
15
  (0, _FrameCallbackRegistryUI.prepareUIRegistry)();
19
16
  }
20
-
21
17
  registerFrameCallback(callback) {
22
18
  if (!callback) {
23
19
  return -1;
24
20
  }
25
-
26
21
  const callbackId = this.nextCallbackId;
27
22
  this.nextCallbackId++;
28
23
  (0, _core.runOnUI)(() => {
@@ -32,7 +27,6 @@ class FrameCallbackRegistryJS {
32
27
  })();
33
28
  return callbackId;
34
29
  }
35
-
36
30
  unregisterFrameCallback(callbackId) {
37
31
  (0, _core.runOnUI)(() => {
38
32
  'worklet';
@@ -40,7 +34,6 @@ class FrameCallbackRegistryJS {
40
34
  global._frameCallbackRegistry.unregisterFrameCallback(callbackId);
41
35
  })();
42
36
  }
43
-
44
37
  manageStateFrameCallback(callbackId, state) {
45
38
  (0, _core.runOnUI)(() => {
46
39
  'worklet';
@@ -48,8 +41,6 @@ class FrameCallbackRegistryJS {
48
41
  global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);
49
42
  })();
50
43
  }
51
-
52
44
  }
53
-
54
45
  exports.default = FrameCallbackRegistryJS;
55
46
  //# sourceMappingURL=FrameCallbackRegistryJS.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FrameCallbackRegistryJS","constructor","prepareUIRegistry","registerFrameCallback","callback","callbackId","nextCallbackId","runOnUI","global","_frameCallbackRegistry","unregisterFrameCallback","manageStateFrameCallback","state"],"sources":["FrameCallbackRegistryJS.ts"],"sourcesContent":["import { runOnUI } from '../core';\nimport { FrameInfo, prepareUIRegistry } from './FrameCallbackRegistryUI';\n\nexport default class FrameCallbackRegistryJS {\n private nextCallbackId = 0;\n\n constructor() {\n prepareUIRegistry();\n }\n\n registerFrameCallback(callback: (frameInfo: FrameInfo) => void): number {\n if (!callback) {\n return -1;\n }\n\n const callbackId = this.nextCallbackId;\n this.nextCallbackId++;\n\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.registerFrameCallback(callback, callbackId);\n })();\n\n return callbackId;\n }\n\n unregisterFrameCallback(callbackId: number): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.unregisterFrameCallback(callbackId);\n })();\n }\n\n manageStateFrameCallback(callbackId: number, state: boolean): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);\n })();\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEe,MAAMA,uBAAN,CAA8B;EAG3CC,WAAW,GAAG;IAAA,wCAFW,CAEX;;IACZ,IAAAC,0CAAA;EACD;;EAEDC,qBAAqB,CAACC,QAAD,EAAmD;IACtE,IAAI,CAACA,QAAL,EAAe;MACb,OAAO,CAAC,CAAR;IACD;;IAED,MAAMC,UAAU,GAAG,KAAKC,cAAxB;IACA,KAAKA,cAAL;IAEA,IAAAC,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BN,qBAA9B,CAAoDC,QAApD,EAA8DC,UAA9D;IACD,CAHD;IAKA,OAAOA,UAAP;EACD;;EAEDK,uBAAuB,CAACL,UAAD,EAA2B;IAChD,IAAAE,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BC,uBAA9B,CAAsDL,UAAtD;IACD,CAHD;EAID;;EAEDM,wBAAwB,CAACN,UAAD,EAAqBO,KAArB,EAA2C;IACjE,IAAAL,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BE,wBAA9B,CAAuDN,UAAvD,EAAmEO,KAAnE;IACD,CAHD;EAID;;AAnC0C"}
1
+ {"version":3,"names":["_core","require","_FrameCallbackRegistryUI","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","FrameCallbackRegistryJS","constructor","prepareUIRegistry","registerFrameCallback","callback","callbackId","nextCallbackId","runOnUI","global","_frameCallbackRegistry","unregisterFrameCallback","manageStateFrameCallback","state","exports","default"],"sources":["FrameCallbackRegistryJS.ts"],"sourcesContent":["import { runOnUI } from '../core';\nimport { FrameInfo, prepareUIRegistry } from './FrameCallbackRegistryUI';\n\nexport default class FrameCallbackRegistryJS {\n private nextCallbackId = 0;\n\n constructor() {\n prepareUIRegistry();\n }\n\n registerFrameCallback(callback: (frameInfo: FrameInfo) => void): number {\n if (!callback) {\n return -1;\n }\n\n const callbackId = this.nextCallbackId;\n this.nextCallbackId++;\n\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.registerFrameCallback(callback, callbackId);\n })();\n\n return callbackId;\n }\n\n unregisterFrameCallback(callbackId: number): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.unregisterFrameCallback(callbackId);\n })();\n }\n\n manageStateFrameCallback(callbackId: number, state: boolean): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);\n })();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAAyE,SAAAE,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAE1D,MAAMU,uBAAuB,CAAC;EAG3CC,WAAWA,CAAA,EAAG;IAAAxB,eAAA,yBAFW,CAAC;IAGxB,IAAAyB,0CAAiB,GAAE;EACrB;EAEAC,qBAAqBA,CAACC,QAAwC,EAAU;IACtE,IAAI,CAACA,QAAQ,EAAE;MACb,OAAO,CAAC,CAAC;IACX;IAEA,MAAMC,UAAU,GAAG,IAAI,CAACC,cAAc;IACtC,IAAI,CAACA,cAAc,EAAE;IAErB,IAAAC,aAAO,EAAC,MAAM;MACZ,SAAS;;MACTC,MAAM,CAACC,sBAAsB,CAACN,qBAAqB,CAACC,QAAQ,EAAEC,UAAU,CAAC;IAC3E,CAAC,CAAC,EAAE;IAEJ,OAAOA,UAAU;EACnB;EAEAK,uBAAuBA,CAACL,UAAkB,EAAQ;IAChD,IAAAE,aAAO,EAAC,MAAM;MACZ,SAAS;;MACTC,MAAM,CAACC,sBAAsB,CAACC,uBAAuB,CAACL,UAAU,CAAC;IACnE,CAAC,CAAC,EAAE;EACN;EAEAM,wBAAwBA,CAACN,UAAkB,EAAEO,KAAc,EAAQ;IACjE,IAAAL,aAAO,EAAC,MAAM;MACZ,SAAS;;MACTC,MAAM,CAACC,sBAAsB,CAACE,wBAAwB,CAACN,UAAU,EAAEO,KAAK,CAAC;IAC3E,CAAC,CAAC,EAAE;EACN;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAd,uBAAA"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.prepareUIRegistry = void 0;
7
-
8
7
  var _threads = require("../threads");
9
-
10
8
  const prepareUIRegistry = (0, _threads.runOnUIImmediately)(() => {
11
9
  'worklet';
12
10
 
@@ -14,20 +12,21 @@ const prepareUIRegistry = (0, _threads.runOnUIImmediately)(() => {
14
12
  frameCallbackRegistry: new Map(),
15
13
  activeFrameCallbacks: new Set(),
16
14
  previousFrameTimestamp: null,
17
-
18
- runCallbacks() {
15
+ nextCallId: 0,
16
+ runCallbacks(callId) {
19
17
  const loop = timestamp => {
18
+ if (callId !== this.nextCallId) {
19
+ return;
20
+ }
20
21
  if (this.previousFrameTimestamp === null) {
21
22
  this.previousFrameTimestamp = timestamp;
22
23
  }
23
-
24
24
  const delta = timestamp - this.previousFrameTimestamp;
25
25
  this.activeFrameCallbacks.forEach(callbackId => {
26
26
  const callbackDetails = this.frameCallbackRegistry.get(callbackId);
27
27
  const {
28
28
  startTime
29
29
  } = callbackDetails;
30
-
31
30
  if (startTime === null) {
32
31
  // First frame
33
32
  callbackDetails.startTime = timestamp;
@@ -45,50 +44,47 @@ const prepareUIRegistry = (0, _threads.runOnUIImmediately)(() => {
45
44
  });
46
45
  }
47
46
  });
48
-
49
47
  if (this.activeFrameCallbacks.size > 0) {
50
48
  this.previousFrameTimestamp = timestamp;
51
49
  requestAnimationFrame(loop);
52
50
  } else {
53
51
  this.previousFrameTimestamp = null;
54
52
  }
55
- }; // runCallback() should only be called after registering a callback,
53
+ };
54
+
55
+ // runCallback() should only be called after registering a callback,
56
56
  // so if there is only one active callback, then it means that there were
57
57
  // zero previously and the loop isn't running yet.
58
-
59
-
60
- if (this.activeFrameCallbacks.size === 1) {
58
+ if (this.activeFrameCallbacks.size === 1 && callId === this.nextCallId) {
61
59
  requestAnimationFrame(loop);
62
60
  }
63
61
  },
64
-
65
62
  registerFrameCallback(callback, callbackId) {
66
63
  this.frameCallbackRegistry.set(callbackId, {
67
64
  callback: callback,
68
65
  startTime: null
69
66
  });
70
67
  },
71
-
72
68
  unregisterFrameCallback(callbackId) {
73
69
  this.manageStateFrameCallback(callbackId, false);
74
70
  this.frameCallbackRegistry.delete(callbackId);
75
71
  },
76
-
77
72
  manageStateFrameCallback(callbackId, state) {
78
73
  if (callbackId === -1) {
79
74
  return;
80
75
  }
81
-
82
76
  if (state) {
83
77
  this.activeFrameCallbacks.add(callbackId);
84
- this.runCallbacks();
78
+ this.runCallbacks(this.nextCallId);
85
79
  } else {
86
80
  const callback = this.frameCallbackRegistry.get(callbackId);
87
81
  callback.startTime = null;
88
82
  this.activeFrameCallbacks.delete(callbackId);
83
+ if (this.activeFrameCallbacks.size === 0) {
84
+ this.nextCallId += 1;
85
+ }
89
86
  }
90
87
  }
91
-
92
88
  };
93
89
  global._frameCallbackRegistry = frameCallbackRegistry;
94
90
  });
@@ -1 +1 @@
1
- {"version":3,"names":["prepareUIRegistry","runOnUIImmediately","frameCallbackRegistry","Map","activeFrameCallbacks","Set","previousFrameTimestamp","runCallbacks","loop","timestamp","delta","forEach","callbackId","callbackDetails","get","startTime","callback","timeSincePreviousFrame","timeSinceFirstFrame","size","requestAnimationFrame","registerFrameCallback","set","unregisterFrameCallback","manageStateFrameCallback","delete","state","add","global","_frameCallbackRegistry"],"sources":["FrameCallbackRegistryUI.ts"],"sourcesContent":["import { runOnUIImmediately } from '../threads';\n\ntype CallbackDetails = {\n callback: (frameInfo: FrameInfo) => void;\n startTime: number | null;\n};\n\nexport type FrameInfo = {\n timestamp: number;\n timeSincePreviousFrame: number | null;\n timeSinceFirstFrame: number;\n};\n\nexport interface FrameCallbackRegistryUI {\n frameCallbackRegistry: Map<number, CallbackDetails>;\n activeFrameCallbacks: Set<number>;\n previousFrameTimestamp: number | null;\n runCallbacks: () => void;\n registerFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) => void;\n unregisterFrameCallback: (callbackId: number) => void;\n manageStateFrameCallback: (callbackId: number, state: boolean) => void;\n}\n\nexport const prepareUIRegistry = runOnUIImmediately(() => {\n 'worklet';\n\n const frameCallbackRegistry: FrameCallbackRegistryUI = {\n frameCallbackRegistry: new Map<number, CallbackDetails>(),\n activeFrameCallbacks: new Set<number>(),\n previousFrameTimestamp: null,\n\n runCallbacks() {\n const loop = (timestamp: number) => {\n if (this.previousFrameTimestamp === null) {\n this.previousFrameTimestamp = timestamp;\n }\n\n const delta = timestamp - this.previousFrameTimestamp;\n\n this.activeFrameCallbacks.forEach((callbackId: number) => {\n const callbackDetails = this.frameCallbackRegistry.get(callbackId)!;\n\n const { startTime } = callbackDetails;\n\n if (startTime === null) {\n // First frame\n callbackDetails.startTime = timestamp;\n\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: null,\n timeSinceFirstFrame: 0,\n });\n } else {\n // Next frame\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: delta,\n timeSinceFirstFrame: timestamp - startTime,\n });\n }\n });\n\n if (this.activeFrameCallbacks.size > 0) {\n this.previousFrameTimestamp = timestamp;\n requestAnimationFrame(loop);\n } else {\n this.previousFrameTimestamp = null;\n }\n };\n\n // runCallback() should only be called after registering a callback,\n // so if there is only one active callback, then it means that there were\n // zero previously and the loop isn't running yet.\n if (this.activeFrameCallbacks.size === 1) {\n requestAnimationFrame(loop);\n }\n },\n\n registerFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) {\n this.frameCallbackRegistry.set(callbackId, {\n callback: callback,\n startTime: null,\n });\n },\n\n unregisterFrameCallback(callbackId: number) {\n this.manageStateFrameCallback(callbackId, false);\n this.frameCallbackRegistry.delete(callbackId);\n },\n\n manageStateFrameCallback(callbackId: number, state: boolean) {\n if (callbackId === -1) {\n return;\n }\n if (state) {\n this.activeFrameCallbacks.add(callbackId);\n this.runCallbacks();\n } else {\n const callback = this.frameCallbackRegistry.get(callbackId)!;\n callback.startTime = null;\n\n this.activeFrameCallbacks.delete(callbackId);\n }\n },\n };\n\n global._frameCallbackRegistry = frameCallbackRegistry;\n});\n"],"mappings":";;;;;;;AAAA;;AA0BO,MAAMA,iBAAiB,GAAG,IAAAC,2BAAA,EAAmB,MAAM;EACxD;;EAEA,MAAMC,qBAA8C,GAAG;IACrDA,qBAAqB,EAAE,IAAIC,GAAJ,EAD8B;IAErDC,oBAAoB,EAAE,IAAIC,GAAJ,EAF+B;IAGrDC,sBAAsB,EAAE,IAH6B;;IAKrDC,YAAY,GAAG;MACb,MAAMC,IAAI,GAAIC,SAAD,IAAuB;QAClC,IAAI,KAAKH,sBAAL,KAAgC,IAApC,EAA0C;UACxC,KAAKA,sBAAL,GAA8BG,SAA9B;QACD;;QAED,MAAMC,KAAK,GAAGD,SAAS,GAAG,KAAKH,sBAA/B;QAEA,KAAKF,oBAAL,CAA0BO,OAA1B,CAAmCC,UAAD,IAAwB;UACxD,MAAMC,eAAe,GAAG,KAAKX,qBAAL,CAA2BY,GAA3B,CAA+BF,UAA/B,CAAxB;UAEA,MAAM;YAAEG;UAAF,IAAgBF,eAAtB;;UAEA,IAAIE,SAAS,KAAK,IAAlB,EAAwB;YACtB;YACAF,eAAe,CAACE,SAAhB,GAA4BN,SAA5B;YAEAI,eAAe,CAACG,QAAhB,CAAyB;cACvBP,SADuB;cAEvBQ,sBAAsB,EAAE,IAFD;cAGvBC,mBAAmB,EAAE;YAHE,CAAzB;UAKD,CATD,MASO;YACL;YACAL,eAAe,CAACG,QAAhB,CAAyB;cACvBP,SADuB;cAEvBQ,sBAAsB,EAAEP,KAFD;cAGvBQ,mBAAmB,EAAET,SAAS,GAAGM;YAHV,CAAzB;UAKD;QACF,CAtBD;;QAwBA,IAAI,KAAKX,oBAAL,CAA0Be,IAA1B,GAAiC,CAArC,EAAwC;UACtC,KAAKb,sBAAL,GAA8BG,SAA9B;UACAW,qBAAqB,CAACZ,IAAD,CAArB;QACD,CAHD,MAGO;UACL,KAAKF,sBAAL,GAA8B,IAA9B;QACD;MACF,CArCD,CADa,CAwCb;MACA;MACA;;;MACA,IAAI,KAAKF,oBAAL,CAA0Be,IAA1B,KAAmC,CAAvC,EAA0C;QACxCC,qBAAqB,CAACZ,IAAD,CAArB;MACD;IACF,CAnDoD;;IAqDrDa,qBAAqB,CACnBL,QADmB,EAEnBJ,UAFmB,EAGnB;MACA,KAAKV,qBAAL,CAA2BoB,GAA3B,CAA+BV,UAA/B,EAA2C;QACzCI,QAAQ,EAAEA,QAD+B;QAEzCD,SAAS,EAAE;MAF8B,CAA3C;IAID,CA7DoD;;IA+DrDQ,uBAAuB,CAACX,UAAD,EAAqB;MAC1C,KAAKY,wBAAL,CAA8BZ,UAA9B,EAA0C,KAA1C;MACA,KAAKV,qBAAL,CAA2BuB,MAA3B,CAAkCb,UAAlC;IACD,CAlEoD;;IAoErDY,wBAAwB,CAACZ,UAAD,EAAqBc,KAArB,EAAqC;MAC3D,IAAId,UAAU,KAAK,CAAC,CAApB,EAAuB;QACrB;MACD;;MACD,IAAIc,KAAJ,EAAW;QACT,KAAKtB,oBAAL,CAA0BuB,GAA1B,CAA8Bf,UAA9B;QACA,KAAKL,YAAL;MACD,CAHD,MAGO;QACL,MAAMS,QAAQ,GAAG,KAAKd,qBAAL,CAA2BY,GAA3B,CAA+BF,UAA/B,CAAjB;QACAI,QAAQ,CAACD,SAAT,GAAqB,IAArB;QAEA,KAAKX,oBAAL,CAA0BqB,MAA1B,CAAiCb,UAAjC;MACD;IACF;;EAjFoD,CAAvD;EAoFAgB,MAAM,CAACC,sBAAP,GAAgC3B,qBAAhC;AACD,CAxFgC,CAA1B"}
1
+ {"version":3,"names":["_threads","require","prepareUIRegistry","runOnUIImmediately","frameCallbackRegistry","Map","activeFrameCallbacks","Set","previousFrameTimestamp","nextCallId","runCallbacks","callId","loop","timestamp","delta","forEach","callbackId","callbackDetails","get","startTime","callback","timeSincePreviousFrame","timeSinceFirstFrame","size","requestAnimationFrame","registerFrameCallback","set","unregisterFrameCallback","manageStateFrameCallback","delete","state","add","global","_frameCallbackRegistry","exports"],"sources":["FrameCallbackRegistryUI.ts"],"sourcesContent":["import { runOnUIImmediately } from '../threads';\n\ntype CallbackDetails = {\n callback: (frameInfo: FrameInfo) => void;\n startTime: number | null;\n};\n\nexport type FrameInfo = {\n timestamp: number;\n timeSincePreviousFrame: number | null;\n timeSinceFirstFrame: number;\n};\n\nexport interface FrameCallbackRegistryUI {\n frameCallbackRegistry: Map<number, CallbackDetails>;\n activeFrameCallbacks: Set<number>;\n previousFrameTimestamp: number | null;\n runCallbacks: (callId: number) => void;\n nextCallId: number;\n registerFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) => void;\n unregisterFrameCallback: (callbackId: number) => void;\n manageStateFrameCallback: (callbackId: number, state: boolean) => void;\n}\n\nexport const prepareUIRegistry = runOnUIImmediately(() => {\n 'worklet';\n\n const frameCallbackRegistry: FrameCallbackRegistryUI = {\n frameCallbackRegistry: new Map<number, CallbackDetails>(),\n activeFrameCallbacks: new Set<number>(),\n previousFrameTimestamp: null,\n nextCallId: 0,\n\n runCallbacks(callId) {\n const loop = (timestamp: number) => {\n if (callId !== this.nextCallId) {\n return;\n }\n if (this.previousFrameTimestamp === null) {\n this.previousFrameTimestamp = timestamp;\n }\n\n const delta = timestamp - this.previousFrameTimestamp;\n\n this.activeFrameCallbacks.forEach((callbackId: number) => {\n const callbackDetails = this.frameCallbackRegistry.get(callbackId)!;\n\n const { startTime } = callbackDetails;\n\n if (startTime === null) {\n // First frame\n callbackDetails.startTime = timestamp;\n\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: null,\n timeSinceFirstFrame: 0,\n });\n } else {\n // Next frame\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: delta,\n timeSinceFirstFrame: timestamp - startTime,\n });\n }\n });\n\n if (this.activeFrameCallbacks.size > 0) {\n this.previousFrameTimestamp = timestamp;\n requestAnimationFrame(loop);\n } else {\n this.previousFrameTimestamp = null;\n }\n };\n\n // runCallback() should only be called after registering a callback,\n // so if there is only one active callback, then it means that there were\n // zero previously and the loop isn't running yet.\n if (this.activeFrameCallbacks.size === 1 && callId === this.nextCallId) {\n requestAnimationFrame(loop);\n }\n },\n\n registerFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) {\n this.frameCallbackRegistry.set(callbackId, {\n callback: callback,\n startTime: null,\n });\n },\n\n unregisterFrameCallback(callbackId: number) {\n this.manageStateFrameCallback(callbackId, false);\n this.frameCallbackRegistry.delete(callbackId);\n },\n\n manageStateFrameCallback(callbackId: number, state: boolean) {\n if (callbackId === -1) {\n return;\n }\n if (state) {\n this.activeFrameCallbacks.add(callbackId);\n this.runCallbacks(this.nextCallId);\n } else {\n const callback = this.frameCallbackRegistry.get(callbackId)!;\n callback.startTime = null;\n\n this.activeFrameCallbacks.delete(callbackId);\n if (this.activeFrameCallbacks.size === 0) {\n this.nextCallId += 1;\n }\n }\n },\n };\n\n global._frameCallbackRegistry = frameCallbackRegistry;\n});\n"],"mappings":"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"}