@react-native-ohos/react-native-reanimated 3.18.1-rc.6 → 4.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/compatibility.json +161 -0
  2. package/harmony/reanimated/BuildProfile.ets +1 -1
  3. package/harmony/reanimated/build-profile.json5 +8 -1
  4. package/harmony/reanimated/oh-package.json5 +3 -2
  5. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
  6. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +11 -16
  7. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +3 -4
  8. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +93 -0
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +44 -0
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +110 -0
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +51 -39
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +13 -15
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +0 -3
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +22 -53
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +12 -8
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +46 -37
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +3 -10
  164. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
  165. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
  166. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
  167. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
  168. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
  169. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
  170. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +4 -2
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +62 -157
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +38 -46
  173. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
  174. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
  175. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
  176. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
  177. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +303 -276
  178. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
  179. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +5 -65
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +52 -82
  181. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
  182. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
  183. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
  184. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
  185. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
  186. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +957 -552
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +87 -111
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +115 -163
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +38 -54
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +34 -36
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +8 -0
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +46 -58
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +5 -9
  194. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
  195. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
  196. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +26 -57
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +12 -33
  198. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
  199. package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +3 -4
  200. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +60 -85
  201. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
  202. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
  203. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
  204. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
  205. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
  206. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
  207. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
  208. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +12 -1
  209. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
  210. package/harmony/reanimated.har +0 -0
  211. package/package.json +36 -18
  212. package/scripts/deploy.js +191 -0
  213. package/scripts/set-reanimated-version.js +37 -0
  214. package/scripts/update-version.js +119 -0
  215. package/scripts/validate-react-native-version.js +46 -0
  216. package/scripts/validate-worklets-build.js +17 -0
  217. package/scripts/validate-worklets-version.js +79 -0
  218. package/scripts/worklets-version.json +4 -0
  219. package/LICENSE +0 -21
  220. package/README.OpenSource +0 -11
  221. package/README.md +0 -10
  222. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
  223. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
  224. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
  225. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
  226. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
  227. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
  228. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
  229. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
  230. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
  231. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
  232. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
  233. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
  234. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
  235. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
  236. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
  237. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
  238. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
  239. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
  240. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
  241. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
  242. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
  243. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
  244. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
  245. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
  246. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
  247. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
  248. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
  249. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
  250. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
  251. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
  252. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
  253. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
  254. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
  255. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
  256. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
  257. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
  258. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
  259. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
  260. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
  261. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
  262. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
  263. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
  264. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -155
  265. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
  266. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
  267. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -182
  268. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
  269. package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
  270. package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
  271. package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
  272. package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
  273. package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
  274. package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
  275. package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
@@ -14,44 +14,21 @@ namespace reanimated {
14
14
 
15
15
  class JSI_EXPORT ReanimatedModuleProxySpec : public TurboModule {
16
16
  protected:
17
- explicit ReanimatedModuleProxySpec(
18
- const std::shared_ptr<CallInvoker> &jsInvoker);
17
+ explicit ReanimatedModuleProxySpec(const std::shared_ptr<CallInvoker> &jsInvoker);
19
18
 
20
19
  public:
21
- // Scheduling
22
- virtual void scheduleOnUI(jsi::Runtime &rt, const jsi::Value &worklet) = 0;
23
- virtual jsi::Value executeOnUIRuntimeSync(
24
- jsi::Runtime &rt,
25
- const jsi::Value &worklet) = 0;
26
-
27
- // Worklet runtime
28
- virtual jsi::Value createWorkletRuntime(
29
- jsi::Runtime &rt,
30
- const jsi::Value &name,
31
- const jsi::Value &initializer) = 0;
32
- virtual jsi::Value scheduleOnRuntime(
33
- jsi::Runtime &rt,
34
- const jsi::Value &workletRuntimeValue,
35
- const jsi::Value &shareableWorkletValue) = 0;
36
-
37
20
  // events
38
21
  virtual jsi::Value registerEventHandler(
39
22
  jsi::Runtime &rt,
40
23
  const jsi::Value &worklet,
41
24
  const jsi::Value &eventName,
42
25
  const jsi::Value &emitterReactTag) = 0;
43
- virtual void unregisterEventHandler(
44
- jsi::Runtime &rt,
45
- const jsi::Value &registrationId) = 0;
26
+ virtual void unregisterEventHandler(jsi::Runtime &rt, const jsi::Value &registrationId) = 0;
46
27
 
47
28
  // views
48
29
  virtual jsi::Value getViewProp(
49
30
  jsi::Runtime &rt,
50
- #ifdef RCT_NEW_ARCH_ENABLED
51
31
  const jsi::Value &shadowNodeWrapper,
52
- #else
53
- const jsi::Value &viewTag,
54
- #endif
55
32
  const jsi::Value &propName,
56
33
  const jsi::Value &callback) = 0;
57
34
 
@@ -62,9 +39,7 @@ class JSI_EXPORT ReanimatedModuleProxySpec : public TurboModule {
62
39
  const jsi::Value &interval,
63
40
  const jsi::Value &iosReferenceFrame,
64
41
  const jsi::Value &sensorDataContainer) = 0;
65
- virtual void unregisterSensor(
66
- jsi::Runtime &rt,
67
- const jsi::Value &sensorId) = 0;
42
+ virtual void unregisterSensor(jsi::Runtime &rt, const jsi::Value &sensorId) = 0;
68
43
 
69
44
  // keyboard
70
45
  virtual jsi::Value subscribeForKeyboardEvents(
@@ -72,38 +47,47 @@ class JSI_EXPORT ReanimatedModuleProxySpec : public TurboModule {
72
47
  const jsi::Value &keyboardEventContainer,
73
48
  const jsi::Value &isStatusBarTranslucent,
74
49
  const jsi::Value &isNavigationBarTranslucent) = 0;
75
- virtual void unsubscribeFromKeyboardEvents(
76
- jsi::Runtime &rt,
77
- const jsi::Value &listenerId) = 0;
50
+ virtual void unsubscribeFromKeyboardEvents(jsi::Runtime &rt, const jsi::Value &listenerId) = 0;
78
51
 
79
- // other
80
- virtual jsi::Value enableLayoutAnimations(
81
- jsi::Runtime &rt,
82
- const jsi::Value &config) = 0;
83
- virtual jsi::Value configureProps(
84
- jsi::Runtime &rt,
85
- const jsi::Value &uiProps,
86
- const jsi::Value &nativeProps) = 0;
52
+ // feature flags
53
+ virtual jsi::Value getStaticFeatureFlag(jsi::Runtime &rt, const jsi::Value &name) = 0;
54
+
55
+ virtual jsi::Value setDynamicFeatureFlag(jsi::Runtime &rt, const jsi::Value &name, const jsi::Value &value) = 0;
87
56
 
88
57
  // layout animations
89
- virtual jsi::Value configureLayoutAnimationBatch(
90
- jsi::Runtime &rt,
91
- const jsi::Value &layoutAnimationsBatch) = 0;
58
+ virtual jsi::Value configureLayoutAnimationBatch(jsi::Runtime &rt, const jsi::Value &layoutAnimationsBatch) = 0;
92
59
 
93
- virtual void setShouldAnimateExiting(
94
- jsi::Runtime &rt,
95
- const jsi::Value &viewTag,
96
- const jsi::Value &shouldAnimate) = 0;
60
+ virtual void
61
+ setShouldAnimateExiting(jsi::Runtime &rt, const jsi::Value &viewTag, const jsi::Value &shouldAnimate) = 0;
62
+
63
+ // JS View style
64
+ virtual void setViewStyle(jsi::Runtime &rt, const jsi::Value &viewTag, const jsi::Value &viewStyle) = 0;
97
65
 
98
- #ifdef RCT_NEW_ARCH_ENABLED
99
66
  // Cleanup
100
- virtual void markNodeAsRemovable(
101
- jsi::Runtime &rt,
102
- const jsi::Value &shadowNodeWrapper) = 0;
103
- virtual void unmarkNodeAsRemovable(
104
- jsi::Runtime &rt,
105
- const jsi::Value &viewTag) = 0;
106
- #endif // RCT_NEW_ARCH_ENABLED
67
+ virtual void markNodeAsRemovable(jsi::Runtime &rt, const jsi::Value &shadowNodeWrapper) = 0;
68
+ virtual void unmarkNodeAsRemovable(jsi::Runtime &rt, const jsi::Value &viewTag) = 0;
69
+
70
+ // CSS animation keyframes
71
+ virtual void registerCSSKeyframes(
72
+ jsi::Runtime &rt,
73
+ const jsi::Value &animationName,
74
+ const jsi::Value &viewName,
75
+ const jsi::Value &keyframesConfig) = 0;
76
+ virtual void
77
+ unregisterCSSKeyframes(jsi::Runtime &rt, const jsi::Value &animationName, const jsi::Value &viewName) = 0;
78
+
79
+ // CSS animations
80
+ virtual void
81
+ applyCSSAnimations(jsi::Runtime &rt, const jsi::Value &shadowNodeWrapper, const jsi::Value &animationUpdates) = 0;
82
+ virtual void unregisterCSSAnimations(const jsi::Value &viewTag) = 0;
83
+
84
+ // CSS transitions
85
+ virtual void
86
+ registerCSSTransition(jsi::Runtime &rt, const jsi::Value &shadowNodeWrapper, const jsi::Value &transitionConfig) = 0;
87
+ virtual void updateCSSTransition(jsi::Runtime &rt, const jsi::Value &viewTag, const jsi::Value &configUpdates) = 0;
88
+ virtual void unregisterCSSTransition(jsi::Runtime &rt, const jsi::Value &viewTag) = 0;
89
+
90
+ virtual jsi::Value getSettledUpdates(jsi::Runtime &rt) = 0;
107
91
  };
108
92
 
109
93
  } // namespace reanimated
@@ -1,56 +1,54 @@
1
1
  #include <reanimated/RuntimeDecorators/RNRuntimeDecorator.h>
2
- #include <worklets/Tools/ReanimatedJSIUtils.h>
3
- #include <worklets/Tools/ReanimatedVersion.h>
2
+ #include <reanimated/Tools/ReanimatedVersion.h>
3
+ #include <worklets/Tools/WorkletsJSIUtils.h>
4
+
5
+ #include <memory>
4
6
 
5
7
  namespace reanimated {
6
8
 
7
9
  void RNRuntimeDecorator::decorate(
8
10
  jsi::Runtime &rnRuntime,
11
+ jsi::Runtime &uiRuntime,
9
12
  const std::shared_ptr<ReanimatedModuleProxy> &reanimatedModuleProxy) {
10
- jsi::Runtime &uiRuntime = reanimatedModuleProxy->getUIRuntime();
11
- auto workletRuntimeValue =
12
- rnRuntime.global()
13
- .getPropertyAsObject(rnRuntime, "ArrayBuffer")
14
- .asFunction(rnRuntime)
15
- .callAsConstructor(rnRuntime, {static_cast<double>(sizeof(void *))});
16
- uintptr_t *workletRuntimeData = reinterpret_cast<uintptr_t *>(
17
- workletRuntimeValue.getObject(rnRuntime).getArrayBuffer(rnRuntime).data(
18
- rnRuntime));
13
+ auto workletRuntimeValue = rnRuntime.global()
14
+ .getPropertyAsObject(rnRuntime, "ArrayBuffer")
15
+ .asFunction(rnRuntime)
16
+ .callAsConstructor(rnRuntime, {static_cast<double>(sizeof(void *))});
17
+ uintptr_t *workletRuntimeData =
18
+ reinterpret_cast<uintptr_t *>(workletRuntimeValue.getObject(rnRuntime).getArrayBuffer(rnRuntime).data(rnRuntime));
19
19
  workletRuntimeData[0] = reinterpret_cast<uintptr_t>(&uiRuntime);
20
- rnRuntime.global().setProperty(
21
- rnRuntime, "_WORKLET_RUNTIME", workletRuntimeValue);
22
-
23
- #ifdef RCT_NEW_ARCH_ENABLED
24
- constexpr auto isFabric = true;
25
- #else
26
- constexpr auto isFabric = false;
27
- #endif // RCT_NEW_ARCH_ENABLED
28
- rnRuntime.global().setProperty(rnRuntime, "_IS_FABRIC", isFabric);
29
-
30
- rnRuntime.global().setProperty(
31
- rnRuntime, "_IS_BRIDGELESS", reanimatedModuleProxy->isBridgeless());
20
+ rnRuntime.global().setProperty(rnRuntime, "_WORKLET_RUNTIME", workletRuntimeValue);
32
21
 
33
22
  #ifndef NDEBUG
34
23
  checkJSVersion(rnRuntime, reanimatedModuleProxy->getJSLogger());
35
24
  #endif // NDEBUG
36
25
 
37
- #if defined(IS_REANIMATED_EXAMPLE_APP) && defined(RCT_NEW_ARCH_ENABLED)
38
- jsi_utils::installJsiFunction(
39
- rnRuntime,
40
- "_registriesLeakCheck",
41
- reanimatedModuleProxy->createRegistriesLeakCheck());
42
- #endif // defined(IS_REANIMATED_EXAMPLE_APP) && defined(RCT_NEW_ARCH_ENABLED)
26
+ #ifdef IS_REANIMATED_EXAMPLE_APP
27
+ installDebugBindings(rnRuntime, reanimatedModuleProxy);
28
+ #endif // IS_REANIMATED_EXAMPLE_APP
29
+
43
30
  injectReanimatedCppVersion(rnRuntime);
44
31
 
45
- rnRuntime.global().setProperty(
46
- rnRuntime,
47
- "_REANIMATED_IS_REDUCED_MOTION",
48
- reanimatedModuleProxy->isReducedMotion());
32
+ rnRuntime.global().setProperty(rnRuntime, "_REANIMATED_IS_REDUCED_MOTION", reanimatedModuleProxy->isReducedMotion());
49
33
 
50
34
  rnRuntime.global().setProperty(
51
- rnRuntime,
52
- "__reanimatedModuleProxy",
53
- jsi::Object::createFromHostObject(rnRuntime, reanimatedModuleProxy));
35
+ rnRuntime, "__reanimatedModuleProxy", jsi::Object::createFromHostObject(rnRuntime, reanimatedModuleProxy));
36
+ }
37
+
38
+ #ifdef IS_REANIMATED_EXAMPLE_APP
39
+ void RNRuntimeDecorator::installDebugBindings(
40
+ jsi::Runtime &rnRuntime,
41
+ const std::shared_ptr<ReanimatedModuleProxy> &reanimatedModuleProxy) {
42
+ #if TARGET_OS_X
43
+ jsi_utils::installJsiFunction(
44
+ rnRuntime, "__getTagFromShadowNodeWrapper", [](jsi::Runtime &rt, const jsi::Value &shadowNodeWrapper) {
45
+ auto node = Bridging<std::shared_ptr<const ShadowNode>>::fromJs(rt, shadowNodeWrapper);
46
+ return jsi::Value(rt, static_cast<double>(node->getTag()));
47
+ });
48
+ #endif // TARGET_OS_X
49
+
50
+ jsi_utils::installJsiFunction(rnRuntime, "_registriesLeakCheck", reanimatedModuleProxy->createRegistriesLeakCheck());
54
51
  }
52
+ #endif // IS_REANIMATED_EXAMPLE_APP
55
53
 
56
54
  } // namespace reanimated
@@ -14,7 +14,15 @@ class RNRuntimeDecorator {
14
14
  public:
15
15
  static void decorate(
16
16
  jsi::Runtime &rnRuntime,
17
+ jsi::Runtime &uiRuntime,
17
18
  const std::shared_ptr<ReanimatedModuleProxy> &reanimatedModuleProxy);
19
+
20
+ #ifdef IS_REANIMATED_EXAMPLE_APP
21
+ private:
22
+ static void installDebugBindings(
23
+ jsi::Runtime &rnRuntime,
24
+ const std::shared_ptr<ReanimatedModuleProxy> &reanimatedModuleProxy);
25
+ #endif // IS_REANIMATED_EXAMPLE_APP
18
26
  };
19
27
 
20
28
  } // namespace reanimated
@@ -1,5 +1,7 @@
1
1
  #include <reanimated/RuntimeDecorators/UIRuntimeDecorator.h>
2
- #include <worklets/Tools/ReanimatedJSIUtils.h>
2
+ #include <worklets/Tools/WorkletsJSIUtils.h>
3
+
4
+ #include <utility>
3
5
 
4
6
  namespace reanimated {
5
7
 
@@ -7,64 +9,50 @@ using namespace worklets;
7
9
 
8
10
  void UIRuntimeDecorator::decorate(
9
11
  jsi::Runtime &uiRuntime,
10
- #ifdef RCT_NEW_ARCH_ENABLED
11
- // nothing
12
- #else
13
- const ScrollToFunction scrollTo,
14
- #endif
15
- const ObtainPropFunction obtainPropFunction,
16
- const UpdatePropsFunction updateProps,
17
- const MeasureFunction measure,
18
- const DispatchCommandFunction dispatchCommand,
19
- const RequestAnimationFrameFunction requestAnimationFrame,
20
- const GetAnimationTimestampFunction getAnimationTimestamp,
21
- const SetGestureStateFunction setGestureState,
22
- const ProgressLayoutAnimationFunction progressLayoutAnimation,
23
- const EndLayoutAnimationFunction endLayoutAnimation,
24
- const MaybeFlushUIUpdatesQueueFunction maybeFlushUIUpdatesQueue) {
25
- uiRuntime.global().setProperty(uiRuntime, "_UI", true);
26
-
27
- #ifdef RCT_NEW_ARCH_ENABLED
28
- jsi_utils::installJsiFunction(uiRuntime, "_updatePropsFabric", updateProps);
29
- jsi_utils::installJsiFunction(
30
- uiRuntime, "_dispatchCommandFabric", dispatchCommand);
31
- jsi_utils::installJsiFunction(uiRuntime, "_measureFabric", measure);
32
- #else
33
- jsi_utils::installJsiFunction(uiRuntime, "_updatePropsPaper", updateProps);
34
- jsi_utils::installJsiFunction(
35
- uiRuntime, "_dispatchCommandPaper", dispatchCommand);
36
- jsi_utils::installJsiFunction(uiRuntime, "_scrollToPaper", scrollTo);
37
- jsi_utils::installJsiFunction(
38
- uiRuntime,
39
- "_measurePaper",
40
- [measure](jsi::Runtime &rt, int viewTag) -> jsi::Value {
41
- auto result = measure(viewTag);
42
- jsi::Object resultObject(rt);
43
- for (const auto &item : result) {
44
- resultObject.setProperty(rt, item.first.c_str(), item.second);
45
- }
46
- return resultObject;
47
- });
48
- jsi_utils::installJsiFunction(
49
- uiRuntime, "_obtainPropPaper", obtainPropFunction);
50
- #endif // RCT_NEW_ARCH_ENABLED
51
-
52
- jsi_utils::installJsiFunction(
53
- uiRuntime, "requestAnimationFrame", requestAnimationFrame);
54
- jsi_utils::installJsiFunction(
55
- uiRuntime, "_getAnimationTimestamp", getAnimationTimestamp);
56
-
57
- jsi_utils::installJsiFunction(
58
- uiRuntime, "_notifyAboutProgress", progressLayoutAnimation);
59
- jsi_utils::installJsiFunction(
60
- uiRuntime, "_notifyAboutEnd", endLayoutAnimation);
61
-
62
- jsi_utils::installJsiFunction(uiRuntime, "_setGestureState", setGestureState);
63
- jsi_utils::installJsiFunction(
64
- uiRuntime, "_maybeFlushUIUpdatesQueue", maybeFlushUIUpdatesQueue);
12
+ ObtainPropFunction obtainPropFunction,
13
+ UpdatePropsFunction updateProps,
14
+ MeasureFunction measure,
15
+ DispatchCommandFunction dispatchCommand,
16
+ GetAnimationTimestampFunction getAnimationTimestamp,
17
+ SetGestureStateFunction setGestureState,
18
+ ProgressLayoutAnimationFunction progressLayoutAnimation,
19
+ EndLayoutAnimationFunction endLayoutAnimation,
20
+ MaybeFlushUIUpdatesQueueFunction maybeFlushUIUpdatesQueue) {
21
+
22
+ jsi_utils::installJsiFunction(uiRuntime, "_updateProps", std::move(updateProps));
23
+ jsi_utils::installJsiFunction(uiRuntime, "_dispatchCommand", std::move(dispatchCommand));
24
+ jsi_utils::installJsiFunction(uiRuntime, "_measure", std::move(measure));
25
+ jsi_utils::installJsiFunction(uiRuntime, "_getAnimationTimestamp", std::move(getAnimationTimestamp));
26
+ jsi_utils::installJsiFunction(uiRuntime, "_notifyAboutProgress", std::move(progressLayoutAnimation));
27
+ jsi_utils::installJsiFunction(uiRuntime, "_notifyAboutEnd", std::move(endLayoutAnimation));
28
+ jsi_utils::installJsiFunction(uiRuntime, "_setGestureState", std::move(setGestureState));
29
+ jsi_utils::installJsiFunction(uiRuntime, "_obtainProp", std::move(obtainPropFunction));
30
+
31
+ subscribeForMicrotasksFinalization(uiRuntime, std::move(maybeFlushUIUpdatesQueue));
32
+ }
65
33
 
66
- jsi_utils::installJsiFunction(
67
- uiRuntime, "_obtainPropFabric", obtainPropFunction);
34
+ void UIRuntimeDecorator::subscribeForMicrotasksFinalization(
35
+ jsi::Runtime &uiRuntime,
36
+ MaybeFlushUIUpdatesQueueFunction maybeFlushUIUpdatesQueue) {
37
+ auto maybeMicrotaskQueueFinalizers = uiRuntime.global().getProperty(uiRuntime, "_microtaskQueueFinalizers");
38
+
39
+ if (maybeMicrotaskQueueFinalizers.isUndefined()) {
40
+ throw std::runtime_error(
41
+ "[Reanimated] Expected microtaskQueueFinalizers to be defined. "
42
+ "Perhaps Worklets failed to initialize the UI Runtime?");
43
+ }
44
+
45
+ const auto microtaskQueueFinalizers = maybeMicrotaskQueueFinalizers.asObject(uiRuntime).asArray(uiRuntime);
46
+
47
+ microtaskQueueFinalizers.getPropertyAsFunction(uiRuntime, "push")
48
+ .callWithThis(
49
+ uiRuntime,
50
+ microtaskQueueFinalizers,
51
+ jsi::Function::createFromHostFunction(
52
+ uiRuntime,
53
+ jsi::PropNameID::forAscii(uiRuntime, "_maybeFlushUIUpdatesQueue"),
54
+ 0,
55
+ jsi_utils::createHostFunction(std::move(maybeFlushUIUpdatesQueue))));
68
56
  }
69
57
 
70
58
  } // namespace reanimated
@@ -8,28 +8,24 @@ using namespace facebook;
8
8
 
9
9
  namespace reanimated {
10
10
 
11
- using RequestAnimationFrameFunction =
12
- std::function<void(jsi::Runtime &, const jsi::Value &)>;
13
-
14
11
  class UIRuntimeDecorator {
15
12
  public:
16
13
  static void decorate(
17
14
  jsi::Runtime &uiRuntime,
18
- #ifdef RCT_NEW_ARCH_ENABLED
19
- // nothing
20
- #else
21
- const ScrollToFunction scrollTo,
22
- #endif
23
15
  const ObtainPropFunction obtainPropFunction,
24
16
  const UpdatePropsFunction updateProps,
25
17
  const MeasureFunction measure,
26
18
  const DispatchCommandFunction dispatchCommand,
27
- const RequestAnimationFrameFunction requestAnimationFrame,
28
19
  const GetAnimationTimestampFunction getAnimationTimestamp,
29
20
  const SetGestureStateFunction setGestureState,
30
21
  const ProgressLayoutAnimationFunction progressLayoutAnimation,
31
22
  const EndLayoutAnimationFunction endLayoutAnimation,
32
23
  const MaybeFlushUIUpdatesQueueFunction maybeFlushUIUpdatesQueue);
24
+
25
+ private:
26
+ static void subscribeForMicrotasksFinalization(
27
+ jsi::Runtime &uiRuntime,
28
+ MaybeFlushUIUpdatesQueueFunction maybeFlushUIUpdatesQueue);
33
29
  };
34
30
 
35
31
  } // namespace reanimated
@@ -0,0 +1,18 @@
1
+ #include <reanimated/Tools/FeatureFlags.h>
2
+
3
+ #include <string>
4
+ #include <unordered_map>
5
+
6
+ namespace reanimated {
7
+
8
+ std::unordered_map<std::string, bool> DynamicFeatureFlags::flags_;
9
+
10
+ bool DynamicFeatureFlags::getFlag(const std::string &name) {
11
+ return flags_.contains(name) && flags_[name];
12
+ }
13
+
14
+ void DynamicFeatureFlags::setFlag(const std::string &name, bool value) {
15
+ flags_[name] = value;
16
+ }
17
+
18
+ } // namespace reanimated
@@ -0,0 +1,44 @@
1
+ #pragma once
2
+ #include <string>
3
+ #include <unordered_map>
4
+
5
+ namespace reanimated {
6
+
7
+ class StaticFeatureFlags {
8
+ public:
9
+ #ifdef REANIMATED_FEATURE_FLAGS
10
+
11
+ // Convert the value under x into a string
12
+ #define XTOSTRING(x) #x
13
+ // Evaluate the flag value; without this step, it would stringify the flag name
14
+ // itself instead of the flag value
15
+ #define TOSTRING(x) XTOSTRING(x)
16
+
17
+ static constexpr bool getFlag(const std::string_view &name) {
18
+ std::string nameStr = name.data();
19
+ std::string featureFlags = TOSTRING(REANIMATED_FEATURE_FLAGS);
20
+ if (featureFlags.find("[" + nameStr + ":") == std::string::npos) {
21
+ throw std::logic_error("Unable to recognize flag: " + nameStr);
22
+ }
23
+ return featureFlags.find("[" + nameStr + ":true]") != std::string::npos;
24
+ }
25
+
26
+ #else
27
+
28
+ static constexpr bool getFlag(const std::string_view &) {
29
+ return false;
30
+ }
31
+
32
+ #endif
33
+ };
34
+
35
+ class DynamicFeatureFlags {
36
+ public:
37
+ static bool getFlag(const std::string &name);
38
+ static void setFlag(const std::string &name, bool value);
39
+
40
+ private:
41
+ static std::unordered_map<std::string, bool> flags_;
42
+ };
43
+
44
+ } // namespace reanimated
@@ -1,92 +1,61 @@
1
1
  #pragma once
2
2
 
3
+ #include <folly/dynamic.h>
3
4
  #include <jsi/jsi.h>
4
-
5
- #ifdef RCT_NEW_ARCH_ENABLED
6
5
  #include <react/renderer/core/ReactPrimitives.h>
7
- #endif
8
6
 
7
+ #include <memory>
9
8
  #include <string>
10
9
  #include <utility>
11
10
  #include <vector>
12
11
 
13
12
  using namespace facebook;
14
-
15
- #ifdef RCT_NEW_ARCH_ENABLED
16
13
  using namespace react;
17
- #endif
18
14
 
19
15
  namespace reanimated {
20
16
 
21
- #ifdef RCT_NEW_ARCH_ENABLED
22
-
23
- using UpdatePropsFunction =
24
- std::function<void(jsi::Runtime &rt, const jsi::Value &operations)>;
25
- using ObtainPropFunction = std::function<jsi::Value(
26
- jsi::Runtime &rt,
27
- const jsi::Value &shadowNodeWrapper,
28
- const jsi::Value &propName)>;
17
+ using UpdatePropsFunction = std::function<void(jsi::Runtime &rt, const jsi::Value &operations)>;
18
+ using ObtainPropFunction =
19
+ std::function<jsi::Value(jsi::Runtime &rt, const jsi::Value &shadowNodeWrapper, const jsi::Value &propName)>;
29
20
  using DispatchCommandFunction = std::function<void(
30
21
  jsi::Runtime &rt,
31
22
  const jsi::Value &shadowNodeValue,
32
23
  const jsi::Value &commandNameValue,
33
24
  const jsi::Value &argsValue)>;
34
- using MeasureFunction = std::function<
35
- jsi::Value(jsi::Runtime &rt, const jsi::Value &shadowNodeValue)>;
36
-
37
- #else
38
-
39
- using UpdatePropsFunction =
40
- std::function<void(jsi::Runtime &rt, const jsi::Value &operations)>;
41
- using ScrollToFunction = std::function<void(int, double, double, bool)>;
42
- using DispatchCommandFunction = std::function<void(
43
- jsi::Runtime &rt,
44
- const int viewTag,
45
- const jsi::Value &commandNameValue,
46
- const jsi::Value &argsValue)>;
47
- using MeasureFunction =
48
- std::function<std::vector<std::pair<std::string, double>>(int)>;
49
- using ObtainPropFunction =
50
- std::function<jsi::Value(jsi::Runtime &, const int, const jsi::Value &)>;
51
-
52
- #endif // RCT_NEW_ARCH_ENABLED
53
-
54
- using RequestRenderFunction =
55
- std::function<void(std::function<void(const double)>)>;
25
+ using MeasureFunction = std::function<jsi::Value(jsi::Runtime &rt, const jsi::Value &shadowNodeValue)>;
26
+
27
+ using RequestRenderFunction = std::function<void(std::function<void(const double)>)>;
28
+ #ifdef ANDROID
29
+ using SynchronouslyUpdateUIPropsFunction = std::function<void(const std::vector<int> &, const std::vector<double> &)>;
30
+ #elif __APPLE__
31
+ using SynchronouslyUpdateUIPropsFunction = std::function<void(const int, const folly::dynamic &)>;
32
+ #endif // ANDROID
33
+ //TODO
34
+ using SynchronouslyUpdateUIPropsFunction = std::function<void(const int, const folly::dynamic &)>;
35
+ using PreserveMountedTagsFunction = std::function<std::optional<std::unique_ptr<int[]>>(std::vector<int> &)>;
56
36
  using GetAnimationTimestampFunction = std::function<double(void)>;
57
37
 
58
- using ProgressLayoutAnimationFunction =
59
- std::function<void(jsi::Runtime &, int, jsi::Object, bool)>;
38
+ using ProgressLayoutAnimationFunction = std::function<void(jsi::Runtime &, int, jsi::Object)>;
60
39
  using EndLayoutAnimationFunction = std::function<void(int, bool)>;
61
40
 
62
- using RegisterSensorFunction =
63
- std::function<int(int, int, int, std::function<void(double[], int)>)>;
41
+ using RegisterSensorFunction = std::function<int(int, int, int, std::function<void(double[], int)>)>;
64
42
  using UnregisterSensorFunction = std::function<void(int)>;
65
43
  using SetGestureStateFunction = std::function<void(int, int)>;
66
- using ConfigurePropsFunction = std::function<void(
67
- jsi::Runtime &rt,
68
- const jsi::Value &uiProps,
69
- const jsi::Value &nativeProps)>;
70
- using KeyboardEventSubscribeFunction =
71
- std::function<int(std::function<void(int, int)>, bool, bool)>;
44
+ using KeyboardEventSubscribeFunction = std::function<int(std::function<void(int, int)>, bool, bool)>;
72
45
  using KeyboardEventUnsubscribeFunction = std::function<void(int)>;
73
46
  using MaybeFlushUIUpdatesQueueFunction = std::function<void()>;
74
47
 
48
+ using ForceScreenSnapshotFunction = std::function<void(Tag tag)>;
75
49
  struct PlatformDepMethodsHolder {
76
50
  RequestRenderFunction requestRender;
77
- #ifdef RCT_NEW_ARCH_ENABLED
78
- // nothing
79
- #else
80
- UpdatePropsFunction updatePropsFunction;
81
- ScrollToFunction scrollToFunction;
82
- DispatchCommandFunction dispatchCommandFunction;
83
- MeasureFunction measureFunction;
84
- ConfigurePropsFunction configurePropsFunction;
85
- ObtainPropFunction obtainPropFunction;
51
+ #ifdef ANDROID
52
+ PreserveMountedTagsFunction filterUnmountedTagsFunction;
53
+ #endif // ANDROID
54
+ #ifdef __APPLE__
55
+ ForceScreenSnapshotFunction forceScreenSnapshotFunction;
86
56
  #endif
57
+ SynchronouslyUpdateUIPropsFunction synchronouslyUpdateUIPropsFunction;
87
58
  GetAnimationTimestampFunction getAnimationTimestamp;
88
- ProgressLayoutAnimationFunction progressLayoutAnimation;
89
- EndLayoutAnimationFunction endLayoutAnimation;
90
59
  RegisterSensorFunction registerSensor;
91
60
  UnregisterSensorFunction unregisterSensor;
92
61
  SetGestureStateFunction setGestureStateFunction;